<?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>133665</bug_id>
          
          <creation_ts>2014-06-09 16:43:54 -0700</creation_ts>
          <short_desc>Work towards having frames in the scrolling tree</short_desc>
          <delta_ts>2017-06-15 23:01:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>133694</blocked>
    
    <blocked>149264</blocked>
    
    <blocked>173405</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>jamesr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1014281</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-09 16:43:54 -0700</bug_when>
    <thetext>Work towards having frames in the scrolling tree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014287</commentid>
    <comment_count>1</comment_count>
      <attachid>232750</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-09 17:10:54 -0700</bug_when>
    <thetext>Created attachment 232750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014289</commentid>
    <comment_count>2</comment_count>
      <attachid>232750</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-09 17:20:39 -0700</bug_when>
    <thetext>Comment on attachment 232750
Patch

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

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:3611
&gt; +    RenderElement* frameRenderer = ownerElement ? ownerElement-&gt;renderer() : 0;

nullptr

&gt; Source/WebCore/rendering/RenderView.cpp:842
&gt; +    // FIXME: view() is just *this here.

why the fixme instead of fixing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1014295</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-09 17:39:27 -0700</bug_when>
    <thetext>https://trac.webkit.org/r169733</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232750</attachid>
            <date>2014-06-09 17:10:54 -0700</date>
            <delta_ts>2014-06-09 17:20:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133665-20140609171030.patch</filename>
            <type>text/plain</type>
            <size>60814</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI5NmVjNzdmZDAwOWRj
NDY0MjY2NWE2ZWRhODA4ZTFjNGQyMDRmMi4uZTJmZGQ2ODdmNzc5ZTdhODVhNDQ0Yjc3MGE0N2Y1
N2U0Zjc1MjhjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDkyIEBACiAyMDE0LTA2LTA5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFdvcmsgdG93YXJk
cyBoYXZpbmcgZnJhbWVzIGluIHRoZSBzY3JvbGxpbmcgdHJlZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNjY1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBPcHRpb25hbGx5IChiYXNlZCBv
biBTZXR0aW5nKSBjcmVhdGUgbm9kZXMgaW4gdGhlIHNjcm9sbGluZyB0cmVlIGZvciBmcmFtZXMg
d2hpY2gKKyAgICAgICAgY29udGFpbiBhc3luYy1zY3JvbGxhYmxlIGNvbnRlbnQuIFRoaXMgd2ls
bCBiZSB1c2VkIG9uIGlPUy9XSzIgdG8gc3VwcG9ydCBhY2NlbGVyYXRlZAorICAgICAgICBvdmVy
Zmxvdy1zY3JvbGwgaW4gaWZyYW1lcy4gVGhlIHNldHRpbmcgYWxsb3dzIGZvciB0ZXN0aW5nIG9u
IE9TIFguCisgICAgICAgIAorICAgICAgICBUaGUgY2hhbmdlIGJyZWFrcyBhbiBhc3N1bXB0aW9u
IGluIFNjcm9sbGluZ0Nvb3JkaW5hdG9yL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IKKyAgICAg
ICAgdGhhdCB3ZSdyZSBhbHdheXMgZGVhbGluZyB3aXRoIHRoZSBtYWluIGZyYW1lLCBhbmQgY2hh
bmdlcyBsb2dpYyBpbiBSZW5kZXJMYXllckNvbXBvc2l0b3IKKyAgICAgICAgc28gdGhhdCB3ZSBj
YW4gY29ubmVjdCB0aGUgc2Nyb2xsaW5nIHRyZWUgYWNyb3NzIGZyYW1lIGJvdW5kYXJpZXMuIFJl
bmRlckxheWVyQ29tcG9zaXRvcgorICAgICAgICBtYWludGFpbnMgYSBtX3N1YmZyYW1lU2Nyb2xs
TGF5ZXJzTmVlZFJlYXR0YWNoIGZsYWcgdGhhdCBnZXRzIHNldCB3aGVuZXZlciB3ZSBhZGQgb3Ig
cmVtb3ZlCisgICAgICAgIHNjcm9sbC1jb29yZGluYXRlZCBsYXllcnMgaW4gdGhlIGN1cnJlbnQg
ZnJhbWUuIFdoZW4gc2V0LCBhZnRlciB1cGRhdGluZyBjb21wb3NpdGluZworICAgICAgICBsYXll
cnMgd2Ugd2FsayBjaGlsZCBmcmFtZXMsIGFuZCwgaWYgdGhleSBoYXZlIHNjcm9sbGluZyBub2Rl
cywgcmUtYXR0YWNoIHRoZW0gdG8gdGhlCisgICAgICAgIHNjcm9sbGluZyB0cmVlICh3aGljaCB3
aWxsIGZpbmQgdGhlIG5ldyBhbmNlc3RvciBub2RlKS4KKworICAgICAgICBUZXN0czogcGxhdGZv
cm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvY29vcmRpbmF0ZWQtZnJh
bWUtaW4tZml4ZWQuaHRtbAorICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1k
cmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvY29vcmRpbmF0ZWQtZnJhbWUuaHRtbAorCisgICAgICAg
ICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxMYXllcklEKTogVXNlIHRoZSBuZXcgImZvciBy
b2xlIiB3YXkgb2YgZ2V0dGluZyB0aGUgbm9kZSBJRC4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdz
LmNwcDoKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGQgc2Nyb2xsaW5nVHJlZUluY2x1
ZGVzRnJhbWVzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6
ZnJhbWVWaWV3TGF5b3V0VXBkYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbkNoYW5nZWQpOiBP
bmx5IHNldAorICAgICAgICB0aGUgcmVnaW9uIGZvciB0aGUgbWFpbiBmcmFtZS4KKyAgICAgICAg
KFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld0ZvclNjcm9sbGlu
Z05vZGUpOiB1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoKQorICAgICAgICBu
ZWVkcyB0byBrbm93IHdoaWNoIEZyYW1lVmlldyBhIGdpdmVuIG5vZGVJRCBpcyBob3N0ZWQgaW47
IGRvaW5nIGEgd2FsayBvZiB0aGUgZnJhbWUgdHJlZSBmb3IKKyAgICAgICAgbm9uLW1haW4gZnJh
bWVzIHNlZW1zIHRvIGJlIHRoZSBzYWZlc3Qgd2F5LgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xs
KToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNDaGls
ZFBvc2l0aW9ucyk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjb29yZGluYXRl
c1Njcm9sbGluZ0ZvckZyYW1lVmlldyk6IENvbnN1bHQgdGhlIG5ldyBzZXR0aW5nLgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld0hhc1Nsb3dSZXBhaW50
T2JqZWN0c0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRv
cjo6ZnJhbWVWaWV3Rml4ZWRPYmplY3RzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVh
c29ucyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU3lu
Y2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpzZXRGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3NpdGlvblVwZGF0ZXMp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNob3VsZFVwZGF0ZVNj
cm9sbExheWVyUG9zaXRpb25TeW5jaHJvbm91c2x5KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjpyZXBsYXlTZXNzaW9uU3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29u
c0FzVGV4dCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzaG91bGRVcGRhdGVT
Y3JvbGxMYXllclBvc2l0aW9uU3luY2hyb25vdXNseSk6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOiBSYXRoZXIgdGhhbiBzZXBhcmF0ZSBmdW5jdGlv
bnMgdG8gZ2V0IHRoZSB0d28gc2Nyb2xsaW5nCisgICAgICAgIG5vZGUgSURzLCBoYXZpbmcgb25l
IHNjcm9sbGluZ05vZGVJREZvclJvbGUoKSBtYWtlcyBjYWxsaW5nIGNvZGUgY2xlYW5lci4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdM
YXllcnMpOiAgY2FsbCByZWF0dGFjaFN1YmZyYW1lU2Nyb2xsTGF5ZXJzKCkKKyAgICAgICAgYWZ0
ZXIgYSBjb21wb3NpdGluZyB0cmVlIHVwZGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6aXNBc3luY1Njcm9sbGFibGVTdGlja3lMYXllcik6IERlYWxzIHdpdGgg
dGhlIHZhcmlvdXMgY29uZmlndXJhdGlvbnMKKyAgICAgICAgaW4gd2hpY2ggd2UgY2FuIGRvIGFz
eW5jIHNjcm9sbGluZyBvZiBzdGlja3kgZWxlbWVudHMuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OmlzVmlld3BvcnRDb25zdHJhaW5lZEZpeGVkT3JTdGlja3lMYXll
cik6CisgICAgICAgIChXZWJDb3JlOjp1c2VDb29yZGluYXRlZFNjcm9sbGluZ0ZvckxheWVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3Np
dGluZ0ZvclBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRv
cjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvclNjcm9sbGluZyk6IE1vdmVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpub3RpZnlJRnJhbWVzT2ZDb21wb3NpdGluZ0No
YW5nZSk6IFRoaXMgaXMgYSBidWcgZml4OworICAgICAgICB3ZSBvbmx5IG5lZWQgdG8gbm90aWZ5
IGNoaWxkIGZyYW1lcywgbm90IGFsbCBkZXNjZW5kYW50IGZyYW1lcy4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xsQ29vcmRpbmF0ZWRTdGF0dXMp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZW1vdmVGcm9tU2Ny
b2xsQ29vcmRpbmF0ZWRMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6ZW5jbG9zaW5nU2Nyb2xs
aW5nTm9kZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcm9sbENvb3JkaW5hdGVkQW5jZXN0b3JJ
blBhcmVudE9mRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpyZWF0dGFjaFN1YmZyYW1lU2Nyb2xsTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6YXR0YWNoU2Nyb2xsaW5nTm9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbENvb3JkaW5hdGlvbkZvclRoaXNG
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNj
cm9sbENvb3JkaW5hdGVkTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjpkZXRhY2hTY3JvbGxDb29yZGluYXRlZExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVnaXN0ZXJBbGxWaWV3cG9ydENvbnN0cmFpbmVkTGF5
ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6d2lsbFJlbW92
ZVNjcm9sbGluZ0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU3RpY2t5SW5BY2NlbGVyYXRl
ZFNjcm9sbGluZ0xheWVyT3JWaWV3cG9ydCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpp
c1ZpZXdwb3J0Q29uc3RyYWluZWRGaXhlZE9yU3RpY2t5TGF5ZXIpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6aXNNYWluRnJhbWVTY3JvbGxpbmdPck92ZXJmbG93U2Nyb2xsaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om5lYXJlc3RTY3JvbGxDb29yZGluYXRlZEFuY2VzdG9y
KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVmlldzo6c2V0U2VsZWN0aW9uKTogQWRkZWQgY29tbWVudC4KKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0
aW5nczo6c2V0U2Nyb2xsaW5nVHJlZUluY2x1ZGVzRnJhbWVzKToKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaDogUmVtb3ZlZCBzb21lIHVzZWxlc3MgcGFyYW1ldGVyIG5hbWVz
LgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6IEFkZGVkIHNldFNjcm9s
bGluZ1RyZWVJbmNsdWRlc0ZyYW1lcygpIHNldHRpbmcuCisKKzIwMTQtMDYtMDkgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgR3JvdXAgdGhlIG1ldGhv
ZHMgaW4gSW50ZXJuYWxTZXR0aW5ncy5pZGwKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMzY1MgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2JkMjYyZGI3ODdjOGY3
MTZmOTdmMWUwZjQ2Y2NhNmQ2MmQzYTc4NS4uNTM5OWIxYWUyZThmYTVlNzZjMzRiOGExNWViMzBk
YjRkYmNiMDRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTA2LTA5ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFdvcmsgdG93YXJk
cyBoYXZpbmcgZnJhbWVzIGluIHRoZSBzY3JvbGxpbmcgdHJlZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNjY1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBPdmVycmlkZSBjb29yZGluYXRl
c1Njcm9sbGluZ0ZvckZyYW1lVmlldygpIHRvIGFsd2F5cyByZXR1cm4gdHJ1ZSBmb3IgY29tcG9z
aXRlZAorICAgICAgICBmcmFtZXMsIGZvciBpT1MgV0syIChldmVudHVhbGx5IHRoaXMgY2xhc3Mg
d2lsbCBoYXZlIHRvIGJlIHNwZWNpYWxpemVkIGZvciBpT1MgYW5kIE9TIFgpLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5t
bToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNvb3JkaW5h
dGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KToKKwogMjAxNC0wNi0wOSAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIGRpZmZlcmVudCBBcHBLaXQgQVBJIGZv
ciBhbGwgc2VydmljZXMgbWVudXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYWY3MzE1ZTNhOTU0
ZjhkMTI1NDdjYzhmNjc5MzY2YTU5NmJmOTBmMS4uYjIyMmY5MmRkMWVmNzJjYTNlZTg4MjFlMmY0
MmZiMzJmZjMyMDVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE1MjEsNiArMTUyMSw3IEBA
IF9fWk5LN1dlYkNvcmUxMFBsdWdpbkRhdGExNnN1cHBvcnRzTWltZVR5cGVFUktOM1dURjZTdHJp
bmdFTlMwXzE4QWxsb3dlZFBsdWdpblR5CiBfX1pOSzdXZWJDb3JlMTBSZW5kZXJUZXh0MTZmaXJz
dFJ1bkxvY2F0aW9uRXYKIF9fWk5LN1dlYkNvcmUxMFJlbmRlclRleHQxNmxpbmVzQm91bmRpbmdC
b3hFdgogX19aTks3V2ViQ29yZTEwUmVuZGVyVmlldzEyZG9jdW1lbnRSZWN0RXYKK19fWk5LN1dl
YkNvcmUxMFJlbmRlclZpZXcxNXVzZXNDb21wb3NpdGluZ0V2CiBfX1pOSzdXZWJDb3JlMTBSZW5k
ZXJWaWV3MjB1bnNjYWxlZERvY3VtZW50UmVjdEV2CiBfX1pOSzdXZWJDb3JlMTBTY3JvbGxWaWV3
MTJjb250ZW50c1NpemVFdgogX19aTks3V2ViQ29yZTEwU2Nyb2xsVmlldzEyZG9jdW1lbnRWaWV3
RXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAwNjFmYmRmZDcwNWY4MGY2NDlhYjg5
M2E2ZTE0YTIyNThmMTZiOWYxLi5iZmE3N2IxZDUwMzNkODg4NjRmMDMzMDkzYTRiNTE2Y2Y0Nzk2
Njc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC04MDQsNyArODA0LDcgQEAgdWlu
dDY0X3QgRnJhbWVWaWV3OjpzY3JvbGxMYXllcklEKCkgY29uc3QKICAgICBpZiAoIWJhY2tpbmcp
CiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIGJhY2tpbmctPnNjcm9sbGluZ05vZGVJ
RCgpOworICAgIHJldHVybiBiYWNraW5nLT5zY3JvbGxpbmdOb2RlSURGb3JSb2xlKEZyYW1lU2Ny
b2xsaW5nTm9kZSk7CiB9CiAKIFNjcm9sbGFibGVBcmVhKiBGcmFtZVZpZXc6OnNjcm9sbGFibGVB
cmVhRm9yU2Nyb2xsTGF5ZXJJRCh1aW50NjRfdCBub2RlSUQpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuY3BwCmluZGV4IDUxNGE1YTEzYmNlZjU5NjE2NGM0MGRmM2VjNDdlM2ZkMzU1ZThlMTgu
LmQ3YjBiZWU3N2JhOWU0MDlhMzBlYTRiNmM2NDZlMGRkNTNiOGRiZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuY3BwCkBAIC0xMjcsNiArMTI3LDcgQEAgc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVs
dEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5hYmxlZCA9IHRydWU7CiBz
dGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFQbGF5YmFja0FsbG93c0lubGluZSA9IGZhbHNl
Owogc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0
dXJlID0gdHJ1ZTsKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTaG91bGRSZXNwZWN0SW1hZ2VP
cmllbnRhdGlvbiA9IHRydWU7CitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U2Nyb2xsaW5nVHJl
ZUluY2x1ZGVzRnJhbWVzID0gdHJ1ZTsKICNlbHNlCiBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0
Rml4ZWRQb3NpdGlvbkNyZWF0ZXNTdGFja2luZ0NvbnRleHQgPSBmYWxzZTsKIHN0YXRpYyBjb25z
dCBib29sIGRlZmF1bHRGaXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQgPSBm
YWxzZTsKQEAgLTEzNCw2ICsxMzUsNyBAQCBzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFibGVkID0gZmFsc2U7CiBzdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0TWVkaWFQbGF5YmFja0FsbG93c0lubGluZSA9IHRydWU7CiBzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSBm
YWxzZTsKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbiA9IGZhbHNlOworc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNjcm9sbGluZ1RyZWVJbmNs
dWRlc0ZyYW1lcyA9IGZhbHNlOwogI2VuZGlmCiAKIHN0YXRpYyBjb25zdCBkb3VibGUgZGVmYXVs
dEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0SW5TZWNvbmRzID0gNTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IGNmYTBlNzQ2YTk1MWRkNTQ0MDMyMzE2OTBhNjliYTM3
ZWZjODQ0NDkuLjc2ZTgwMDFhMmQ3NTQzM2ZlYmFjZTZhMWUxYWI5NWZjNWE3MzQ4YzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMTMyLDYgKzEzMiw3IEBAIHNob3VsZERpc3BsYXlTdWJ0
aXRsZXMgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9VklERU9fVFJBQ0sKIHNob3VsZERpc3Bs
YXlDYXB0aW9ucyBpbml0aWFsPWZhbHNlLCBjb25kaXRpb25hbD1WSURFT19UUkFDSwogc2hvdWxk
RGlzcGxheVRleHREZXNjcmlwdGlvbnMgaW5pdGlhbD1mYWxzZSwgY29uZGl0aW9uYWw9VklERU9f
VFJBQ0sKIHNjcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZCBpbml0aWFsPWZhbHNlCitzY3JvbGxp
bmdUcmVlSW5jbHVkZXNGcmFtZXMgaW5pdGlhbD1kZWZhdWx0U2Nyb2xsaW5nVHJlZUluY2x1ZGVz
RnJhbWVzCiBzY3JvbGxBbmltYXRvckVuYWJsZWQgaW5pdGlhbD10cnVlLCBjb25kaXRpb25hbD1T
TU9PVEhfU0NST0xMSU5HCiBub3RpZmljYXRpb25zRW5hYmxlZCBpbml0aWFsPXRydWUKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcAppbmRleCA3Nzk2NTJjNTA3MjY4ZTkzZjcxZGNmMGM2ZDA3OTZmZWQy
NWQ1YTQ0Li4zMWYwZGI5NDgxOTA0ZGFiNmMyYWQ2MTczYzI4YTkwYjc5NWM1MTk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmNwcApAQCAtNzIsNyArNzIsOCBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3I6OmZyYW1lVmlld0xheW91dFVwZGF0ZWQoRnJhbWVWaWV3KiBmcmFtZVZpZXcpCiAg
ICAgLy8gZnJhbWUgdmlldyB3aG9zZSBsYXlvdXQgd2FzIHVwZGF0ZWQgaXMgbm90IHRoZSBtYWlu
IGZyYW1lLgogICAgIC8vIEluIHRoZSBmdXR1cmUsIHdlIG1heSB3YW50IHRvIGhhdmUgdGhlIGFi
aWxpdHkgdG8gc2V0IG5vbi1mYXN0IHNjcm9sbGluZyByZWdpb25zIGZvciBtb3JlIHRoYW4KICAg
ICAvLyBqdXN0IHRoZSByb290IG5vZGUuIEJ1dCByaWdodCBub3csIHRoaXMgY29uY2VwdCBvbmx5
IGFwcGxpZXMgdG8gdGhlIHJvb3QuCi0gICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWUtPnJvb3RTdGF0
ZU5vZGUoKS0+c2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24oY29tcHV0ZU5vbkZhc3RTY3JvbGxh
YmxlUmVnaW9uKCZtX3BhZ2UtPm1haW5GcmFtZSgpLCBJbnRQb2ludCgpKSk7CisgICAgaWYgKGZy
YW1lVmlldy0+ZnJhbWUoKS5pc01haW5GcmFtZSgpKQorICAgICAgICBtX3Njcm9sbGluZ1N0YXRl
VHJlZS0+cm9vdFN0YXRlTm9kZSgpLT5zZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihjb21wdXRl
Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24oJmZyYW1lVmlldy0+ZnJhbWUoKSwgSW50UG9pbnQoKSkp
OwogCiAgICAgaWYgKCFjb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldyhmcmFtZVZpZXcp
KQogICAgICAgICByZXR1cm47CkBAIC0xMDUsMTIgKzEwNiwxMyBAQCB2b2lkIEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld0xheW91dFVwZGF0ZWQoRnJhbWVWaWV3KiBmcmFtZVZp
ZXcpCiAgICAgbm9kZS0+c2V0U2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKHNjcm9sbFBhcmFtZXRl
cnMpOwogfQogCi12b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld05vbkZh
c3RTY3JvbGxhYmxlUmVnaW9uQ2hhbmdlZChGcmFtZVZpZXcqKQordm9pZCBBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbkNoYW5nZWQoRnJh
bWVWaWV3KiBmcmFtZVZpZXcpCiB7CiAgICAgaWYgKCFtX3Njcm9sbGluZ1N0YXRlVHJlZS0+cm9v
dFN0YXRlTm9kZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Njcm9sbGluZ1N0YXRlVHJl
ZS0+cm9vdFN0YXRlTm9kZSgpLT5zZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihjb21wdXRlTm9u
RmFzdFNjcm9sbGFibGVSZWdpb24oJm1fcGFnZS0+bWFpbkZyYW1lKCksIEludFBvaW50KCkpKTsK
KyAgICBpZiAoZnJhbWVWaWV3LT5mcmFtZSgpLmlzTWFpbkZyYW1lKCkpCisgICAgICAgIG1fc2Ny
b2xsaW5nU3RhdGVUcmVlLT5yb290U3RhdGVOb2RlKCktPnNldE5vbkZhc3RTY3JvbGxhYmxlUmVn
aW9uKGNvbXB1dGVOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbigmZnJhbWVWaWV3LT5mcmFtZSgpLCBJ
bnRQb2ludCgpKSk7CiB9CiAKIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6ZnJhbWVW
aWV3Um9vdExheWVyRGlkQ2hhbmdlKEZyYW1lVmlldyogZnJhbWVWaWV3KQpAQCAtMTkzLDYgKzE5
NSwzNSBAQCB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0
aW9uQWZ0ZXJBc3luY1Njcm9sbFRpbWVyRmlyZWQoVAogICAgIHVwZGF0ZVNjcm9sbFBvc2l0aW9u
QWZ0ZXJBc3luY1Njcm9sbChtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5ub2RlSUQsIG1fc2NoZWR1
bGVkU2Nyb2xsVXBkYXRlLnNjcm9sbFBvc2l0aW9uLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS5p
c1Byb2dyYW1tYXRpY1Njcm9sbCwgbV9zY2hlZHVsZWRTY3JvbGxVcGRhdGUudXBkYXRlTGF5ZXJQ
b3NpdGlvbkFjdGlvbik7CiB9CiAKK0ZyYW1lVmlldyogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
cjo6ZnJhbWVWaWV3Rm9yU2Nyb2xsaW5nTm9kZShTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsaW5nTm9k
ZUlEKSBjb25zdAoreworICAgIGlmIChzY3JvbGxpbmdOb2RlSUQgPT0gbV9zY3JvbGxpbmdTdGF0
ZVRyZWUtPnJvb3RTdGF0ZU5vZGUoKS0+c2Nyb2xsaW5nTm9kZUlEKCkpCisgICAgICAgIHJldHVy
biBtX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKTsKKworICAgIFNjcm9sbGluZ1N0YXRlTm9kZSog
c3RhdGVOb2RlID0gbV9zY3JvbGxpbmdTdGF0ZVRyZWUtPnN0YXRlTm9kZUZvcklEKHNjcm9sbGlu
Z05vZGVJRCk7CisgICAgaWYgKCFzdGF0ZU5vZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgLy8gRmluZCB0aGUgZW5jbG9zaW5nIGZyYW1lIHNjcm9sbGluZyBub2RlLgorICAgIFNj
cm9sbGluZ1N0YXRlTm9kZSogcGFyZW50Tm9kZSA9IHN0YXRlTm9kZTsKKyAgICB3aGlsZSAocGFy
ZW50Tm9kZSAmJiBwYXJlbnROb2RlLT5ub2RlVHlwZSgpICE9IEZyYW1lU2Nyb2xsaW5nTm9kZSkK
KyAgICAgICAgcGFyZW50Tm9kZSA9IHBhcmVudE5vZGUtPnBhcmVudCgpOworICAgIAorICAgIGlm
ICghcGFyZW50Tm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgCisgICAgLy8gV2Fs
ayB0aGUgZnJhbWUgdHJlZSB0byBmaW5kIHRoZSBtYXRjaGluZyBGcmFtZVZpZXcuIFRoaXMgaXMg
bm90IGlkZWFsLCBidXQgYXZvaWRzIGJhY2sgcG9pbnRlcnMgdG8gRnJhbWVWaWV3cworICAgIC8v
IGZyb20gU2Nyb2xsaW5nVHJlZVN0YXRlTm9kZXMuCisgICAgZm9yIChGcmFtZSogZnJhbWUgPSAm
bV9wYWdlLT5tYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJz
ZU5leHQoKSkgeworICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKSkg
eworICAgICAgICAgICAgaWYgKHZpZXctPnNjcm9sbExheWVySUQoKSA9PSBwYXJlbnROb2RlLT5z
Y3JvbGxpbmdOb2RlSUQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdmlldzsKKyAgICAgICAg
fQorICAgIH0KKworICAgIHJldHVybiBudWxscHRyOworfQorCiB2b2lkIEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxp
bmdOb2RlSUQgc2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
biwgYm9vbCBwcm9ncmFtbWF0aWNTY3JvbGwsIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRp
b24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwpAQCAtMjAwLDExICsyMzEsMTAgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yOjp1cGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm8KICAg
ICBpZiAoIW1fcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmll
dyA9IGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUoc2Nyb2xsaW5nTm9kZUlEKTsKICAgICBpZiAo
IWZyYW1lVmlldykKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gTWFpbiBmcmFtZS4KICAgICBp
ZiAoc2Nyb2xsaW5nTm9kZUlEID09IGZyYW1lVmlldy0+c2Nyb2xsTGF5ZXJJRCgpKSB7CiAgICAg
ICAgIGJvb2wgb2xkUHJvZ3JhbW1hdGljU2Nyb2xsID0gZnJhbWVWaWV3LT5pblByb2dyYW1tYXRp
Y1Njcm9sbCgpOwogICAgICAgICBmcmFtZVZpZXctPnNldEluUHJvZ3JhbW1hdGljU2Nyb2xsKHBy
b2dyYW1tYXRpY1Njcm9sbCk7CkBAIC0zMTYsMTEgKzM0Niw4IEBAIHZvaWQgQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcjo6c3luY0NoaWxkUG9zaXRpb25zKGNvbnN0IExheW91dFJlY3QmIHZpZXdw
b3J0UmVjCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEZJWE1FOiBXZSdsbCBoYXZlIHRvIHRy
YXZlcnNlIGRlZXBlciBpbnRvIHRoZSB0cmVlIGF0IHNvbWUgcG9pbnQuCi0gICAgc2l6ZV90IHNp
emUgPSBjaGlsZHJlbi0+c2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsg
KytpKSB7Ci0gICAgICAgIFNjcm9sbGluZ1N0YXRlTm9kZSogY2hpbGQgPSBjaGlsZHJlbi0+YXQo
aSkuZ2V0KCk7CisgICAgZm9yIChhdXRvJiBjaGlsZCA6ICpjaGlsZHJlbikKICAgICAgICAgY2hp
bGQtPnN5bmNMYXllclBvc2l0aW9uRm9yVmlld3BvcnRSZWN0KHZpZXdwb3J0UmVjdCk7Ci0gICAg
fQogfQogCiB2b2lkIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmVuc3VyZVJvb3RTdGF0ZU5v
ZGVGb3JGcmFtZVZpZXcoRnJhbWVWaWV3KiBmcmFtZVZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5k
ZXggYTZlNzdhZWEzYjliM2Q2ZWQ4YzdmNmEwYmJlMDRhMTk2ZDU2ZjQ5Ny4uZjU0N2ZiMWZkYmY0
NTZhYjI5MDAxM2YxM2RmZjIxM2I4MTkxYWRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNzAs
NiArNzAsOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2b2lkIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0
ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBib29sIHBy
b2dyYW1tYXRpY1Njcm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CiAKKyAg
ICB2aXJ0dWFsIFN0cmluZyBzY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoKSBjb25zdCBvdmVycmlk
ZTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCkBAIC05MSw3ICs5Myw2IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZShTY3Jv
bGxpbmdOb2RlSUQsIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyLCBHcmFwaGljc0xheWVyKiBz
Y3JvbGxlZENvbnRlbnRzTGF5ZXIsIEdyYXBoaWNzTGF5ZXIqIGNvdW50ZXJTY3JvbGxpbmdMYXll
ciwgR3JhcGhpY3NMYXllciogaW5zZXRDbGlwTGF5ZXIsIGNvbnN0IFNjcm9sbGluZ0dlb21ldHJ5
KiA9IG51bGxwdHIpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVPdmVyZmxvd1Njcm9sbGluZ05v
ZGUoU2Nyb2xsaW5nTm9kZUlELCBHcmFwaGljc0xheWVyKiBzY3JvbGxMYXllciwgR3JhcGhpY3NM
YXllciogc2Nyb2xsZWRDb250ZW50c0xheWVyLCBjb25zdCBTY3JvbGxpbmdHZW9tZXRyeSogPSBu
dWxscHRyKTsKICAgICAKLSAgICB2aXJ0dWFsIFN0cmluZyBzY3JvbGxpbmdTdGF0ZVRyZWVBc1Rl
eHQoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9n
cmVzcygpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQaW5uaW5n
QmVoYXZpb3IoU2Nyb2xsUGlubmluZ0JlaGF2aW9yKSBvdmVycmlkZTsKIApAQCAtMTA3LDYgKzEw
OCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxMYXllclBvc2l0
aW9uKCk7CiAKICAgICB2b2lkIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbFRp
bWVyRmlyZWQoVGltZXI8QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcj4qKTsKKyAgICAKKyAgICBG
cmFtZVZpZXcqIGZyYW1lVmlld0ZvclNjcm9sbGluZ05vZGUoU2Nyb2xsaW5nTm9kZUlEKSBjb25z
dDsKIAogICAgIFRpbWVyPEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1fdXBkYXRlTm9kZVNj
cm9sbFBvc2l0aW9uVGltZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBlNzUxZjJkNjVjMTM4MjIzODc2
NWM5NjM1MjQ3NjQxNTNlNzUxZjcxLi42MWU3YmY5MWU2OTMwYmYxMDVkMzg2OTQxOTBlZmZlODFj
YmIzM2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNj
cm9sbEFuaW1hdG9yLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIApAQCAtODYs
MTEgKzg3LDkgQEAgYm9vbCBTY3JvbGxpbmdDb29yZGluYXRvcjo6Y29vcmRpbmF0ZXNTY3JvbGxp
bmdGb3JGcmFtZVZpZXcoRnJhbWVWaWV3KiBmcmFtZVZpZXcKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgIEFTU0VSVChtX3BhZ2UpOwogCi0gICAgLy8gV2UgY3VycmVudGx5IG9ubHkg
aGFuZGxlIHRoZSBtYWluIGZyYW1lLgotICAgIGlmICghZnJhbWVWaWV3LT5mcmFtZSgpLmlzTWFp
bkZyYW1lKCkpCisgICAgaWYgKCFmcmFtZVZpZXctPmZyYW1lKCkuaXNNYWluRnJhbWUoKSAmJiAh
bV9wYWdlLT5zZXR0aW5ncygpLnNjcm9sbGluZ1RyZWVJbmNsdWRlc0ZyYW1lcygpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICAvLyBXZSBjdXJyZW50bHkgb25seSBzdXBwb3J0IGNvbXBv
c2l0ZWQgbW9kZS4KICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gbV9wYWdlLT5tYWluRnJh
bWUoKS5jb250ZW50UmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTE4MSw3ICsxODAsNyBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
OjpmcmFtZVZpZXdIYXNTbG93UmVwYWludE9iamVjdHNEaWRDaGFuZ2UoRnJhbWVWaWV3KiBmcgog
ICAgIGlmICghY29vcmRpbmF0ZXNTY3JvbGxpbmdGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgdXBkYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKCk7
CisgICAgdXBkYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKGZyYW1lVmlldyk7CiB9CiAK
IHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld0ZpeGVkT2JqZWN0c0RpZENoYW5n
ZShGcmFtZVZpZXcqIGZyYW1lVmlldykKQEAgLTE5Miw3ICsxOTEsNyBAQCB2b2lkIFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yOjpmcmFtZVZpZXdGaXhlZE9iamVjdHNEaWRDaGFuZ2UoRnJhbWVWaWV3KiBm
cmFtZVZpZXcpCiAgICAgaWYgKCFjb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldyhmcmFt
ZVZpZXcpKQogICAgICAgICByZXR1cm47CiAKLSAgICB1cGRhdGVTeW5jaHJvbm91c1Njcm9sbGlu
Z1JlYXNvbnMoKTsKKyAgICB1cGRhdGVTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoZnJhbWVW
aWV3KTsKIH0KIAogR3JhcGhpY3NMYXllciogU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbExh
eWVyRm9yU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhKQpAQCAt
Mjg1LDcgKzI4NCw3IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmZyYW1lVmlld1Jvb3RM
YXllckRpZENoYW5nZShGcmFtZVZpZXcqIGZyYW1lVmlldykKIAogICAgIGZyYW1lVmlld0xheW91
dFVwZGF0ZWQoZnJhbWVWaWV3KTsKICAgICByZWNvbXB1dGVXaGVlbEV2ZW50SGFuZGxlckNvdW50
Rm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7Ci0gICAgdXBkYXRlU3luY2hyb25vdXNTY3JvbGxpbmdS
ZWFzb25zKCk7CisgICAgdXBkYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKGZyYW1lVmll
dyk7CiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTMyMiw5ICszMjEsOCBAQCBib29sIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpoYXNWaXNpYmxlU2xvd1JlcGFpbnRWaWV3cG9ydENvbnN0cmFp
bmVkT2JqZWN0cyhGcmFtZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotU3luY2hyb25vdXNTY3Jv
bGxpbmdSZWFzb25zIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzeW5jaHJvbm91c1Njcm9sbGluZ1Jl
YXNvbnMoKSBjb25zdAorU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoRnJhbWVWaWV3KiBmcmFtZVZpZXcp
IGNvbnN0CiB7Ci0gICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX3BhZ2UtPm1haW5GcmFtZSgp
LnZpZXcoKTsKICAgICBpZiAoIWZyYW1lVmlldykKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucz4oMCk7CiAKQEAgLTM0MywxNSArMzQxLDIwIEBA
IFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyBTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hy
b25vdXNTY3JvbGxpbmdSZWFzb25zKCkKICAgICAgICAgc3luY2hyb25vdXNTY3JvbGxpbmdSZWFz
b25zIHw9IEhhc1ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzV2l0aG91dFN1cHBvcnRpbmdGaXhl
ZExheWVyczsKICAgICBpZiAoc3VwcG9ydHNGaXhlZFBvc2l0aW9uTGF5ZXJzKCkgJiYgaGFzVmlz
aWJsZVNsb3dSZXBhaW50Vmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMoZnJhbWVWaWV3KSkKICAg
ICAgICAgc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zIHw9IEhhc05vbkxheWVyVmlld3BvcnRD
b25zdHJhaW5lZE9iamVjdHM7Ci0gICAgaWYgKG1fcGFnZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQo
KSAmJiBtX3BhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPmlzSW1hZ2VEb2N1bWVudCgpKQor
ICAgIGlmIChmcmFtZVZpZXctPmZyYW1lKCkubWFpbkZyYW1lKCkuZG9jdW1lbnQoKSAmJiBmcmFt
ZVZpZXctPmZyYW1lKCkuZG9jdW1lbnQoKS0+aXNJbWFnZURvY3VtZW50KCkpCiAgICAgICAgIHN5
bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyB8PSBJc0ltYWdlRG9jdW1lbnQ7CiAKICAgICByZXR1
cm4gc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zOwogfQogCi12b2lkIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjp1cGRhdGVTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoKQordm9pZCBTY3JvbGxp
bmdDb29yZGluYXRvcjo6dXBkYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKEZyYW1lVmll
dyogZnJhbWVWaWV3KQogewotICAgIHNldFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyhzeW5j
aHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoKSk7CisgICAgLy8gRklYTUU6IE9uY2Ugd2Ugc3VwcG9y
dCBhc3luYyBzY3JvbGxpbmcgb2YgaWZyYW1lcywgd2UnbGwgaGF2ZSB0byB0cmFjayB0aGUgc3lu
Y2hyb25vdXMgc2Nyb2xsaW5nCisgICAgLy8gcmVhc29ucyBwZXIgZnJhbWUgKG1heWJlIG9uIHNj
cm9sbGluZyB0cmVlIG5vZGVzKS4KKyAgICBpZiAoIWZyYW1lVmlldy0+ZnJhbWUoKS5pc01haW5G
cmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzZXRTeW5jaHJvbm91c1Njcm9sbGluZ1Jl
YXNvbnMoc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKGZyYW1lVmlldykpOwogfQogCiB2b2lk
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3Np
dGlvblVwZGF0ZXMoYm9vbCBmb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3NpdGlvblVwZGF0
ZXMpCkBAIC0zNjAsMTMgKzM2MywxOSBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzZXRG
b3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3NpdGlvblVwZGF0ZXMoYm9vbCBmbwogICAgICAg
ICByZXR1cm47CiAKICAgICBtX2ZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBk
YXRlcyA9IGZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlczsKLSAgICB1
cGRhdGVTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoKTsKKyAgICB1cGRhdGVTeW5jaHJvbm91
c1Njcm9sbGluZ1JlYXNvbnMobV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCkpOworfQorCitib29s
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzaG91bGRVcGRhdGVTY3JvbGxMYXllclBvc2l0aW9uU3lu
Y2hyb25vdXNseSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN5bmNocm9ub3VzU2Nyb2xsaW5nUmVh
c29ucyhtX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKSk7CiB9CiAKICNpZiBFTkFCTEUoV0VCX1JF
UExBWSkKIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcGxheVNlc3Npb25TdGF0ZURpZENo
YW5nZSgpCiB7Ci0gICAgdXBkYXRlU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKCk7CisgICAg
Ly8gRklYTUU6IE9uY2Ugd2Ugc3VwcG9ydCBhc3luYyBzY3JvbGxpbmcgb2YgaWZyYW1lcywgdGhp
cyBzaG91bGQgZ28gdGhyb3VnaCBhbGwgc3ViZnJhbWVzLgorICAgIHVwZGF0ZVN5bmNocm9ub3Vz
U2Nyb2xsaW5nUmVhc29ucyhtX3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKSk7CiB9CiAjZW5kaWYK
IApAQCAtNDAzLDcgKzQxMiw3IEBAIFN0cmluZyBTY3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hy
b25vdXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KFN5bmNocm9ub3VzU2Nyb2xsCiAKIFN0cmluZyBT
Y3JvbGxpbmdDb29yZGluYXRvcjo6c3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zQXNUZXh0KHN5
bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucygpKTsKKyAgICByZXR1cm4gc3luY2hyb25vdXNTY3Jv
bGxpbmdSZWFzb25zQXNUZXh0KHN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyhtX3BhZ2UtPm1h
aW5GcmFtZSgpLnZpZXcoKSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApp
bmRleCA1YTg3MDFjMzFiZGZhYTljNjZmMjNjMzc1MWQ3NDY5YjA4MDA5MDc4Li5mZWUyOWE4NzI0
NjZjMGE1MWFlOTdkNTJkMzc2NDdiNWU2Mzc3N2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTExMCw3ICsxMTAs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8gUmV0dXJuIHdoZXRoZXIgdGhp
cyBzY3JvbGxpbmcgY29vcmRpbmF0b3IgaGFuZGxlcyBzY3JvbGxpbmcgZm9yIHRoZSBnaXZlbiBm
cmFtZSB2aWV3LgotICAgIGJvb2wgY29vcmRpbmF0ZXNTY3JvbGxpbmdGb3JGcmFtZVZpZXcoRnJh
bWVWaWV3KikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGNvb3JkaW5hdGVzU2Nyb2xsaW5nRm9y
RnJhbWVWaWV3KEZyYW1lVmlldyopIGNvbnN0OwogCiAgICAgLy8gU2hvdWxkIGJlIGNhbGxlZCB3
aGVuZXZlciB0aGUgZ2l2ZW4gZnJhbWUgdmlldyBoYXMgYmVlbiBsYWlkIG91dC4KICAgICB2aXJ0
dWFsIHZvaWQgZnJhbWVWaWV3TGF5b3V0VXBkYXRlZChGcmFtZVZpZXcqKSB7IH0KQEAgLTE4Myw4
ICsxODMsOCBAQCBwdWJsaWM6CiAgICAgICAgIElzSW1hZ2VEb2N1bWVudCA9IDEgPDwgNAogICAg
IH07CiAKLSAgICBTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMgc3luY2hyb25vdXNTY3JvbGxp
bmdSZWFzb25zKCkgY29uc3Q7Ci0gICAgYm9vbCBzaG91bGRVcGRhdGVTY3JvbGxMYXllclBvc2l0
aW9uU3luY2hyb25vdXNseSgpIGNvbnN0IHsgcmV0dXJuIHN5bmNocm9ub3VzU2Nyb2xsaW5nUmVh
c29ucygpOyB9CisgICAgU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zIHN5bmNocm9ub3VzU2Ny
b2xsaW5nUmVhc29ucyhGcmFtZVZpZXcqKSBjb25zdDsKKyAgICBib29sIHNob3VsZFVwZGF0ZVNj
cm9sbExheWVyUG9zaXRpb25TeW5jaHJvbm91c2x5KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZv
aWQgd2lsbERlc3Ryb3lTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSopIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxhYmxlQXJlYVNjcm9sbExheWVyRGlkQ2hhbmdlKFNjcm9sbGFibGVB
cmVhKikgeyB9CkBAIC0yMTgsNyArMjE4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
c2V0U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29u
cykgeyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzVmlzaWJsZVNsb3dSZXBhaW50Vmlld3BvcnRD
b25zdHJhaW5lZE9iamVjdHMoRnJhbWVWaWV3KikgY29uc3Q7Ci0gICAgdm9pZCB1cGRhdGVTeW5j
aHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoKTsKKyAgICB2b2lkIHVwZGF0ZVN5bmNocm9ub3VzU2Ny
b2xsaW5nUmVhc29ucyhGcmFtZVZpZXcqKTsKICAgICAKICAgICBib29sIG1fZm9yY2VTeW5jaHJv
bm91c1Njcm9sbExheWVyUG9zaXRpb25VcGRhdGVzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAppbmRleCAwZDQyY2I3MWYxNDkyNjBlMWZhNDNh
MmJkZjg0YWI0OGExZjMwYzcwLi4zNDM4Nzg1MDJmZGQyMGY5MDNjZWJiZjE0MzUwYTM3OTRiYzA4
NTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
CkBAIC0xMDgsMTIgKzEwOCwzMyBAQCBwdWJsaWM6CiAgICAgR3JhcGhpY3NMYXllciogc2Nyb2xs
aW5nQ29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsaW5nQ29udGVudHNMYXll
ci5nZXQoKTsgfQogCiAgICAgdm9pZCBkZXRhY2hGcm9tU2Nyb2xsaW5nQ29vcmRpbmF0b3IoKTsK
LQotICAgIFNjcm9sbGluZ05vZGVJRCB2aWV3cG9ydENvbnN0cmFpbmVkTm9kZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV92aWV3cG9ydENvbnN0cmFpbmVkTm9kZUlEOyB9Ci0gICAgdm9pZCBzZXRWaWV3
cG9ydENvbnN0cmFpbmVkTm9kZUlEKFNjcm9sbGluZ05vZGVJRCBub2RlSUQpIHsgbV92aWV3cG9y
dENvbnN0cmFpbmVkTm9kZUlEID0gbm9kZUlEOyB9Ci0KLSAgICBTY3JvbGxpbmdOb2RlSUQgc2Ny
b2xsaW5nTm9kZUlEKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdOb2RlSUQ7IH0KLSAgICB2
b2lkIHNldFNjcm9sbGluZ05vZGVJRChTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKSB7IG1fc2Nyb2xs
aW5nTm9kZUlEID0gbm9kZUlEOyB9CisgICAgCisgICAgU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGlu
Z05vZGVJREZvclJvbGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUpIGNvbnN0CisgICAgewor
ICAgICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CisgICAgICAgIGNhc2UgRnJhbWVTY3JvbGxpbmdO
b2RlOgorICAgICAgICBjYXNlIE92ZXJmbG93U2Nyb2xsaW5nTm9kZToKKyAgICAgICAgICAgIHJl
dHVybiBtX3Njcm9sbGluZ05vZGVJRDsKKyAgICAgICAgY2FzZSBGaXhlZE5vZGU6CisgICAgICAg
IGNhc2UgU3RpY2t5Tm9kZToKKyAgICAgICAgICAgIHJldHVybiBtX3ZpZXdwb3J0Q29uc3RyYWlu
ZWROb2RlSUQ7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIAorICAg
IHZvaWQgc2V0U2Nyb2xsaW5nTm9kZUlERm9yUm9sZShTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBT
Y3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAobm9kZVR5
cGUpIHsKKyAgICAgICAgY2FzZSBGcmFtZVNjcm9sbGluZ05vZGU6CisgICAgICAgIGNhc2UgT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlOgorICAgICAgICAgICAgbV9zY3JvbGxpbmdOb2RlSUQgPSBub2Rl
SUQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBGaXhlZE5vZGU6CisgICAgICAg
IGNhc2UgU3RpY2t5Tm9kZToKKyAgICAgICAgICAgIG1fdmlld3BvcnRDb25zdHJhaW5lZE5vZGVJ
RCA9IG5vZGVJRDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQogICAgIAog
ICAgIFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSURGb3JDaGlsZHJlbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsaW5nTm9kZUlEID8gbV9zY3JvbGxpbmdOb2RlSUQgOiBtX3ZpZXdwb3J0
Q29uc3RyYWluZWROb2RlSUQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAyYTRkOWM2OGJiOWQ5NWRjYTQzNzI3NzQ2
NThmYTQwMzlkZTVkMDhhLi5kOTY5YTdiM2ExY2I4NjBiZTQzNjMzMjFmYTJlZjZlMWVhNTNiNDJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcApAQCAtMjc5LDYgKzI3OSw3IEBAIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6UmVuZGVy
TGF5ZXJDb21wb3NpdG9yKFJlbmRlclZpZXcmIHJlbmRlclZpZXcpCiAgICAgLCBtX3Nob3VsZEZs
dXNoT25SZWF0dGFjaChmYWxzZSkKICAgICAsIG1fZm9yY2VDb21wb3NpdGluZ01vZGUoZmFsc2Up
CiAgICAgLCBtX2luUG9zdExheW91dFVwZGF0ZShmYWxzZSkKKyAgICAsIG1fc3ViZnJhbWVTY3Jv
bGxMYXllcnNOZWVkUmVhdHRhY2goZmFsc2UpCiAgICAgLCBtX2lzVHJhY2tpbmdSZXBhaW50cyhm
YWxzZSkKICAgICAsIG1fbGF5ZXJzV2l0aFRpbGVkQmFja2luZ0NvdW50KDApCiAgICAgLCBtX3Jv
b3RMYXllckF0dGFjaG1lbnQoUm9vdExheWVyVW5hdHRhY2hlZCkKQEAgLTcyOSwxMCArNzMwLDEz
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhD
b21wb3NpdGluZ1VwZGF0ZVR5cGUgdXBkYXRlCiAgICAgICAgICAgICBlbHNlIGlmIChtX3Jvb3RD
b250ZW50TGF5ZXIpCiAgICAgICAgICAgICAgICAgbV9yb290Q29udGVudExheWVyLT5zZXRDaGls
ZHJlbihjaGlsZExpc3QpOwogICAgICAgICB9CisgICAgICAgIAorICAgICAgICByZWF0dGFjaFN1
YmZyYW1lU2Nyb2xsTGF5ZXJzKCk7CiAgICAgfSBlbHNlIGlmIChuZWVkR2VvbWV0cnlVcGRhdGUp
IHsKICAgICAgICAgLy8gV2UganVzdCBuZWVkIHRvIGRvIGEgZ2VvbWV0cnkgdXBkYXRlLiBUaGlz
IGlzIG9ubHkgdXNlZCBmb3IgcG9zaXRpb246Zml4ZWQgc2Nyb2xsaW5nOwogICAgICAgICAvLyBt
b3N0IG9mIHRoZSB0aW1lLCBnZW9tZXRyeSBpcyB1cGRhdGVkIHZpYSBSZW5kZXJMYXllcjo6c3R5
bGVDaGFuZ2VkKCkuCiAgICAgICAgIHVwZGF0ZUxheWVyVHJlZUdlb21ldHJ5KCp1cGRhdGVSb290
LCAwKTsKKyAgICAgICAgQVNTRVJUKCFpc0Z1bGxVcGRhdGUgfHwgIW1fc3ViZnJhbWVTY3JvbGxM
YXllcnNOZWVkUmVhdHRhY2gpOwogICAgIH0KICAgICAKICNpZiAhTE9HX0RJU0FCTEVECkBAIC0y
NTIzLDIxICsyNTI3LDYgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcXVpcmVzQ29t
cG9zaXRpbmdGb3JJbmRpcmVjdFJlYXNvbihSZW5kZXJMYXllck1vZGUKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLSNpZiBQTEFURk9STShJT1MpCi1ib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
cmVxdWlyZXNDb21wb3NpdGluZ0ZvclNjcm9sbGluZyhjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIp
IGNvbnN0Ci17Ci0gICAgaWYgKCFsYXllci5oYXNBY2NlbGVyYXRlZFRvdWNoU2Nyb2xsaW5nKCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghbV9pblBvc3RMYXlvdXRVcGRhdGUp
IHsKLSAgICAgICAgbV9yZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dCA9IHRydWU7Ci0g
ICAgICAgIHJldHVybiBsYXllci5pc0NvbXBvc2l0ZWQoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4g
bGF5ZXIuaGFzVG91Y2hTY3JvbGxhYmxlT3ZlcmZsb3coKTsKLX0KLSNlbmRpZgotCiBib29sIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvckZpbHRlcnMoUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCYgcmVuZGVyZXIpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKENTU19GSUxU
RVJTKQpAQCAtMjU1MSwzMSArMjU0MCw0MSBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
cmVxdWlyZXNDb21wb3NpdGluZ0ZvckZpbHRlcnMoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdAogI2Vu
ZGlmCiB9CiAKLSNpZiBQTEFURk9STShJT1MpCi1zdGF0aWMgYm9vbCBpc1N0aWNreUluQWNjZWxl
cmF0ZWRTY3JvbGxpbmdMYXllck9yVmlld3BvcnQoY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBj
b25zdCBSZW5kZXJMYXllcioqIGVuY2xvc2luZ0FjY2VsZXJhdGVkT3ZlcmZsb3dMYXllciA9IDAp
Citib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6aXNBc3luY1Njcm9sbGFibGVTdGlja3lMYXll
cihjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIsIGNvbnN0IFJlbmRlckxheWVyKiogZW5jbG9zaW5n
QWNjZWxlcmF0ZWRPdmVyZmxvd0xheWVyKSBjb25zdAogewogICAgIEFTU0VSVChsYXllci5yZW5k
ZXJlcigpLmlzU3RpY2t5UG9zaXRpb25lZCgpKTsKIAogICAgIFJlbmRlckxheWVyKiBlbmNsb3Np
bmdPdmVyZmxvd0xheWVyID0gbGF5ZXIuZW5jbG9zaW5nT3ZlcmZsb3dDbGlwTGF5ZXIoRXhjbHVk
ZVNlbGYpOworCisjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChlbmNsb3NpbmdPdmVyZmxvd0xh
eWVyICYmIGVuY2xvc2luZ092ZXJmbG93TGF5ZXItPmhhc1RvdWNoU2Nyb2xsYWJsZU92ZXJmbG93
KCkpIHsKICAgICAgICAgaWYgKGVuY2xvc2luZ0FjY2VsZXJhdGVkT3ZlcmZsb3dMYXllcikKICAg
ICAgICAgICAgICplbmNsb3NpbmdBY2NlbGVyYXRlZE92ZXJmbG93TGF5ZXIgPSBlbmNsb3NpbmdP
dmVyZmxvd0xheWVyOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0KLSAgICByZXR1cm4g
IWVuY2xvc2luZ092ZXJmbG93TGF5ZXI7Ci19CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmNs
b3NpbmdBY2NlbGVyYXRlZE92ZXJmbG93TGF5ZXIpOwogI2VuZGlmCisgICAgLy8gSWYgdGhlIGxh
eWVyIGlzIGluc2lkZSBub3JtYWwgb3ZlcmZsb3csIGl0J3Mgbm90IGFzeW5jLXNjcm9sbGFibGUu
CisgICAgaWYgKGVuY2xvc2luZ092ZXJmbG93TGF5ZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIC8vIE5vIG92ZXJmbG93IGFuY2VzdG9yLCBzbyBzZWUgaWYgdGhlIGZyYW1lIHN1cHBv
cnRzIGFzeW5jIHNjcm9sbGluZy4KKyAgICBpZiAoaGFzQ29vcmRpbmF0ZWRTY3JvbGxpbmcoKSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CiAKLXN0YXRpYyBib29sIGlzVmlld3BvcnRDb25zdHJhaW5l
ZEZpeGVkT3JTdGlja3lMYXllcihjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIpCi17CiAjaWYgUExB
VEZPUk0oSU9TKQotICAgIGlmIChsYXllci5yZW5kZXJlcigpLmlzU3RpY2t5UG9zaXRpb25lZCgp
KQotICAgICAgICByZXR1cm4gaXNTdGlja3lJbkFjY2VsZXJhdGVkU2Nyb2xsaW5nTGF5ZXJPclZp
ZXdwb3J0KGxheWVyKTsKKyAgICAvLyBpT1MgV0sxIGhhcyBmaXhlZC9zdGlja3kgc3VwcG9ydCBp
biB0aGUgbWFpbiBmcmFtZSB2aWEgV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQuCisgICAgcmV0dXJu
IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5mcmFtZSgpLmlzTWFpbkZyYW1lKCk7CiAjZWxzZQot
ICAgIGlmIChsYXllci5yZW5kZXJlcigpLmlzU3RpY2t5UG9zaXRpb25lZCgpKQotICAgICAgICBy
ZXR1cm4gIWxheWVyLmVuY2xvc2luZ092ZXJmbG93Q2xpcExheWVyKEV4Y2x1ZGVTZWxmKTsKKyAg
ICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKK30KKworYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6
OmlzVmlld3BvcnRDb25zdHJhaW5lZEZpeGVkT3JTdGlja3lMYXllcihjb25zdCBSZW5kZXJMYXll
ciYgbGF5ZXIpIGNvbnN0Cit7CisgICAgaWYgKGxheWVyLnJlbmRlcmVyKCkuaXNTdGlja3lQb3Np
dGlvbmVkKCkpCisgICAgICAgIHJldHVybiBpc0FzeW5jU2Nyb2xsYWJsZVN0aWNreUxheWVyKGxh
eWVyKTsKIAogICAgIGlmIChsYXllci5yZW5kZXJlcigpLnN0eWxlKCkucG9zaXRpb24oKSAhPSBG
aXhlZFBvc2l0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNTg5LDkgKzI1ODgsOSBA
QCBzdGF0aWMgYm9vbCBpc1ZpZXdwb3J0Q29uc3RyYWluZWRGaXhlZE9yU3RpY2t5TGF5ZXIoY29u
c3QgUmVuZGVyTGF5ZXImIGxheWVyKQogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9v
bCBpc01haW5GcmFtZVNjcm9sbGluZ09yT3ZlcmZsb3dTY3JvbGxpbmcoUmVuZGVyVmlldyYgdmll
dywgY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyKQorc3RhdGljIGJvb2wgdXNlQ29vcmRpbmF0ZWRT
Y3JvbGxpbmdGb3JMYXllcihSZW5kZXJWaWV3JiB2aWV3LCBjb25zdCBSZW5kZXJMYXllciYgbGF5
ZXIpCiB7Ci0gICAgaWYgKGxheWVyLmlzUm9vdExheWVyKCkgJiYgIXZpZXcuZG9jdW1lbnQoKS5v
d25lckVsZW1lbnQoKSkKKyAgICBpZiAobGF5ZXIuaXNSb290TGF5ZXIoKSAmJiB2aWV3LmZyYW1l
VmlldygpLmZyYW1lKCkuaXNNYWluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICNp
ZiBQTEFURk9STShJT1MpCkBAIC0yNjI0LDcgKzI2MjMsNyBAQCBib29sIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6cmVxdWlyZXNDb21wb3NpdGluZ0ZvclBvc2l0aW9uKFJlbmRlckxheWVyTW9kZWxP
YmplYwogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoaXNTdGlja3kpCi0gICAgICAg
IHJldHVybiBoYXNDb29yZGluYXRlZFNjcm9sbGluZygpICYmIGlzVmlld3BvcnRDb25zdHJhaW5l
ZEZpeGVkT3JTdGlja3lMYXllcihsYXllcik7CisgICAgICAgIHJldHVybiBpc0FzeW5jU2Nyb2xs
YWJsZVN0aWNreUxheWVyKGxheWVyKTsKIAogICAgIGF1dG8gY29udGFpbmVyID0gcmVuZGVyZXIu
Y29udGFpbmVyKCk7CiAgICAgLy8gSWYgdGhlIHJlbmRlcmVyIGlzIG5vdCBob29rZWQgdXAgeWV0
IHRoZW4gd2UgaGF2ZSB0byB3YWl0IHVudGlsIGl0IGlzLgpAQCAtMjY3NCw2ICsyNjczLDIxIEBA
IGJvb2wgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yT3ZlcmZs
b3dTY3JvbGxpbmcoY29uc3QgUmVuZGVyCiAgICAgcmV0dXJuIGxheWVyLm5lZWRzQ29tcG9zaXRl
ZFNjcm9sbGluZygpOwogfQogCisjaWYgUExBVEZPUk0oSU9TKQorYm9vbCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnJlcXVpcmVzQ29tcG9zaXRpbmdGb3JTY3JvbGxpbmcoY29uc3QgUmVuZGVyTGF5
ZXImIGxheWVyKSBjb25zdAoreworICAgIGlmICghbGF5ZXIuaGFzQWNjZWxlcmF0ZWRUb3VjaFNj
cm9sbGluZygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIW1faW5Qb3N0TGF5
b3V0VXBkYXRlKSB7CisgICAgICAgIG1fcmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQg
PSB0cnVlOworICAgICAgICByZXR1cm4gbGF5ZXIuaXNDb21wb3NpdGVkKCk7CisgICAgfQorCisg
ICAgcmV0dXJuIGxheWVyLmhhc1RvdWNoU2Nyb2xsYWJsZU92ZXJmbG93KCk7Cit9CisjZW5kaWYK
KwogYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmlzUnVubmluZ0FjY2VsZXJhdGVkVHJhbnNm
b3JtQW5pbWF0aW9uKFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJlbmRlcmVyKSBjb25zdAogewog
ICAgIGlmICghKG1fY29tcG9zaXRpbmdUcmlnZ2VycyAmIENocm9tZUNsaWVudDo6QW5pbWF0aW9u
VHJpZ2dlcikpCkBAIC0zNDI2LDkgKzM0NDAsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6cm9vdExheWVyQXR0YWNobWVudENoYW5nZWQoKQogLy8gdG8gdXNlIGEgc3ludGhldGljIHN0
eWxlIGNoYW5nZSB0byBnZXQgdGhlIGlmcmFtZXMgaW50byBSZW5kZXJMYXllcnMgaW4gb3JkZXIg
dG8gYWxsb3cgdGhlbSB0byBjb21wb3NpdGUuCiB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
bm90aWZ5SUZyYW1lc09mQ29tcG9zaXRpbmdDaGFuZ2UoKQogewotICAgIEZyYW1lJiBmcmFtZSA9
IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5mcmFtZSgpOwotCi0gICAgZm9yIChGcmFtZSogY2hp
bGQgPSBmcmFtZS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+dHJl
ZSgpLnRyYXZlcnNlTmV4dCgmZnJhbWUpKSB7CisgICAgZm9yIChGcmFtZSogY2hpbGQgPSBtX3Jl
bmRlclZpZXcuZnJhbWVWaWV3KCkuZnJhbWUoKS50cmVlKCkuZmlyc3RDaGlsZCgpOyBjaGlsZDsg
Y2hpbGQgPSBjaGlsZC0+dHJlZSgpLm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKGNoaWxk
LT5kb2N1bWVudCgpICYmIGNoaWxkLT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKSkKICAgICAg
ICAgICAgIGNoaWxkLT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKS0+c2NoZWR1bGVTZXROZWVk
c1N0eWxlUmVjYWxjKFN5bnRoZXRpY1N0eWxlQ2hhbmdlKTsKICAgICB9CkBAIC0zNDkzLDExICsz
NTA1LDEzIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxDb29yZGlu
YXRlZFN0YXR1cyhSZW5kZXJMYXllciYgbGF5ZXIpCiAgICAgaWYgKGlzVmlld3BvcnRDb25zdHJh
aW5lZEZpeGVkT3JTdGlja3lMYXllcihsYXllcikpCiAgICAgICAgIGNvb3JkaW5hdGlvblJlYXNv
bnMgfD0gRml4ZWRPclN0aWNreTsKIAotICAgIGlmIChpc01haW5GcmFtZVNjcm9sbGluZ09yT3Zl
cmZsb3dTY3JvbGxpbmcobV9yZW5kZXJWaWV3LCBsYXllcikpCisgICAgaWYgKHVzZUNvb3JkaW5h
dGVkU2Nyb2xsaW5nRm9yTGF5ZXIobV9yZW5kZXJWaWV3LCBsYXllcikpCiAgICAgICAgIGNvb3Jk
aW5hdGlvblJlYXNvbnMgfD0gU2Nyb2xsaW5nOwotICAgICAgICAKKwogICAgIGlmIChjb29yZGlu
YXRpb25SZWFzb25zKSB7Ci0gICAgICAgIG1fc2Nyb2xsQ29vcmRpbmF0ZWRMYXllcnMuYWRkKCZs
YXllcik7CisgICAgICAgIGlmIChtX3Njcm9sbENvb3JkaW5hdGVkTGF5ZXJzLmFkZCgmbGF5ZXIp
LmlzTmV3RW50cnkpCisgICAgICAgICAgICBtX3N1YmZyYW1lU2Nyb2xsTGF5ZXJzTmVlZFJlYXR0
YWNoID0gdHJ1ZTsKKwogICAgICAgICB1cGRhdGVTY3JvbGxDb29yZGluYXRlZExheWVyKGxheWVy
LCBjb29yZGluYXRpb25SZWFzb25zKTsKICAgICB9IGVsc2UKICAgICAgICAgcmVtb3ZlRnJvbVNj
cm9sbENvb3JkaW5hdGVkTGF5ZXJzKGxheWVyKTsKQEAgLTM1MDgsNiArMzUyMiw4IEBAIHZvaWQg
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyZW1vdmVGcm9tU2Nyb2xsQ29vcmRpbmF0ZWRMYXllcnMo
UmVuZGVyTGF5ZXImIGxheWVyCiAgICAgaWYgKCFtX3Njcm9sbENvb3JkaW5hdGVkTGF5ZXJzLmNv
bnRhaW5zKCZsYXllcikpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fc3ViZnJhbWVTY3JvbGxM
YXllcnNOZWVkUmVhdHRhY2ggPSB0cnVlOworICAgIAogICAgIG1fc2Nyb2xsQ29vcmRpbmF0ZWRM
YXllcnMucmVtb3ZlKCZsYXllcik7CiAgICAgbV9zY3JvbGxDb29yZGluYXRlZExheWVyc05lZWRp
bmdVcGRhdGUucmVtb3ZlKCZsYXllcik7CiAKQEAgLTM1NzEsMzAgKzM1ODcsOTkgQEAgU3RpY2t5
UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y29tcHV0
ZVN0aWNreVZpZXdwb3J0Q28KICAgICByZXR1cm4gY29uc3RyYWludHM7CiB9CiAKLXN0YXRpYyBS
ZW5kZXJMYXllckJhY2tpbmcqIG5lYXJlc3RTY3JvbGxDb29yZGluYXRlZEFuY2VzdG9yKFJlbmRl
ckxheWVyJiBsYXllcikKK3N0YXRpYyBTY3JvbGxpbmdOb2RlSUQgZW5jbG9zaW5nU2Nyb2xsaW5n
Tm9kZUlEKFJlbmRlckxheWVyJiBsYXllciwgSW5jbHVkZVNlbGZPck5vdCBpbmNsdWRlU2VsZikK
IHsKLSAgICBSZW5kZXJMYXllciogYW5jZXN0b3IgPSBsYXllci5wYXJlbnQoKTsKLSAgICB3aGls
ZSAoYW5jZXN0b3IpIHsKLSAgICAgICAgaWYgKFJlbmRlckxheWVyQmFja2luZyogYmFja2luZyA9
IGFuY2VzdG9yLT5iYWNraW5nKCkpIHsKLSAgICAgICAgICAgIGlmIChiYWNraW5nLT5zY3JvbGxp
bmdOb2RlSURGb3JDaGlsZHJlbigpKQotICAgICAgICAgICAgICAgIHJldHVybiBiYWNraW5nOwor
ICAgIFJlbmRlckxheWVyKiBjdXJyTGF5ZXIgPSBpbmNsdWRlU2VsZiA9PSBJbmNsdWRlU2VsZiA/
ICZsYXllciA6IGxheWVyLnBhcmVudCgpOworICAgIHdoaWxlIChjdXJyTGF5ZXIpIHsKKyAgICAg
ICAgaWYgKFJlbmRlckxheWVyQmFja2luZyogYmFja2luZyA9IGN1cnJMYXllci0+YmFja2luZygp
KSB7CisgICAgICAgICAgICBpZiAoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCA9IGJhY2tpbmctPnNj
cm9sbGluZ05vZGVJREZvckNoaWxkcmVuKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVJ
RDsKICAgICAgICAgfQotICAgICAgICBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnQoKTsKKyAg
ICAgICAgY3VyckxheWVyID0gY3VyckxheWVyLT5wYXJlbnQoKTsKICAgICB9CiAKLSAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnVwZGF0ZVNjcm9sbENvb3JkaW5hdGVkTGF5ZXIoUmVuZGVyTGF5ZXImIGxheWVyLCBTY3Jv
bGxDb29yZGluYXRpb25SZWFzb25zIHJlYXNvbnMpCitzdGF0aWMgU2Nyb2xsaW5nTm9kZUlEIHNj
cm9sbENvb3JkaW5hdGVkQW5jZXN0b3JJblBhcmVudE9mRnJhbWUoRnJhbWUmIGZyYW1lKQogewot
ICAgIC8vIEZJWE1FOiBzdXBwb3J0IHNjcm9sbGluZyBsYXllcnMgaW4gaWZyYW1lcy4KLSAgICBp
ZiAobV9yZW5kZXJWaWV3LmRvY3VtZW50KCkub3duZXJFbGVtZW50KCkpCisgICAgaWYgKCFmcmFt
ZS5kb2N1bWVudCgpIHx8ICFmcmFtZS52aWV3KCkpCisgICAgICAgIHJldHVybiAwOworCisgICAg
Ly8gRmluZCB0aGUgZnJhbWUncyBlbmNsb3NpbmcgbGF5ZXIgaW4gb3VyIHJlbmRlciB0cmVlLgor
ICAgIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50ID0gZnJhbWUuZG9jdW1lbnQo
KS0+b3duZXJFbGVtZW50KCk7CisgICAgUmVuZGVyRWxlbWVudCogZnJhbWVSZW5kZXJlciA9IG93
bmVyRWxlbWVudCA/IG93bmVyRWxlbWVudC0+cmVuZGVyZXIoKSA6IDA7CisgICAgaWYgKCFmcmFt
ZVJlbmRlcmVyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlbmRlckxheWVyKiBsYXllcklu
UGFyZW50RG9jdW1lbnQgPSBmcmFtZVJlbmRlcmVyLT5lbmNsb3NpbmdMYXllcigpOworICAgIGlm
ICghbGF5ZXJJblBhcmVudERvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVy
biBlbmNsb3NpbmdTY3JvbGxpbmdOb2RlSUQoKmxheWVySW5QYXJlbnREb2N1bWVudCwgSW5jbHVk
ZVNlbGYpOworfQorCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVhdHRhY2hTdWJmcmFt
ZVNjcm9sbExheWVycygpCit7CisgICAgaWYgKCFtX3N1YmZyYW1lU2Nyb2xsTGF5ZXJzTmVlZFJl
YXR0YWNoKQogICAgICAgICByZXR1cm47CisgICAgCisgICAgbV9zdWJmcmFtZVNjcm9sbExheWVy
c05lZWRSZWF0dGFjaCA9IGZhbHNlOwogCiAgICAgU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKTsKLSAgICBpZiAo
IXNjcm9sbGluZ0Nvb3JkaW5hdG9yKQotICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKEZyYW1l
KiBjaGlsZCA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5mcmFtZSgpLnRyZWUoKS5maXJzdENo
aWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCkubmV4dFNpYmxpbmcoKSkgeworICAg
ICAgICBpZiAoIWNoaWxkLT5kb2N1bWVudCgpIHx8ICFjaGlsZC0+dmlldygpKQorICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgLy8gSWdub3JlIGZyYW1lcyB0aGF0IGFyZSBub3Qgc2Ny
b2xsLWNvb3JkaW5hdGVkLgorICAgICAgICBGcmFtZVZpZXcqIGNoaWxkRnJhbWVWaWV3ID0gY2hp
bGQtPnZpZXcoKTsKKyAgICAgICAgU2Nyb2xsaW5nTm9kZUlEIGZyYW1lU2Nyb2xsaW5nTm9kZUlE
ID0gY2hpbGRGcmFtZVZpZXctPnNjcm9sbExheWVySUQoKTsKKyAgICAgICAgaWYgKCFmcmFtZVNj
cm9sbGluZ05vZGVJRCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIFNjcm9sbGlu
Z05vZGVJRCBwYXJlbnROb2RlSUQgPSBzY3JvbGxDb29yZGluYXRlZEFuY2VzdG9ySW5QYXJlbnRP
ZkZyYW1lKCpjaGlsZCk7CisgICAgICAgIGlmICghcGFyZW50Tm9kZUlEKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmF0dGFjaFRvU3RhdGVU
cmVlKEZyYW1lU2Nyb2xsaW5nTm9kZSwgZnJhbWVTY3JvbGxpbmdOb2RlSUQsIHBhcmVudE5vZGVJ
RCk7CisgICAgfQorfQorCitTY3JvbGxpbmdOb2RlSUQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjph
dHRhY2hTY3JvbGxpbmdOb2RlKFJlbmRlckxheWVyJiBsYXllciwgU2Nyb2xsaW5nTm9kZVR5cGUg
bm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBwYXJlbnROb2RlSUQpCit7CisgICAgU2Nyb2xsaW5n
Q29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRp
bmF0b3IoKTsKKyAgICBSZW5kZXJMYXllckJhY2tpbmcqIGJhY2tpbmcgPSBsYXllci5iYWNraW5n
KCk7CisKKyAgICBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEID0gYmFja2luZy0+c2Nyb2xsaW5nTm9k
ZUlERm9yUm9sZShub2RlVHlwZSk7CisgICAgaWYgKCFub2RlSUQpCisgICAgICAgIG5vZGVJRCA9
IHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT51bmlxdWVTY3JvbGxMYXllcklEKCk7CisKKyAgICBub2Rl
SUQgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YXR0YWNoVG9TdGF0ZVRyZWUobm9kZVR5cGUsIG5v
ZGVJRCwgcGFyZW50Tm9kZUlEKTsKKyAgICBpZiAoIW5vZGVJRCkKKyAgICAgICAgcmV0dXJuIDA7
CisKKyAgICBiYWNraW5nLT5zZXRTY3JvbGxpbmdOb2RlSURGb3JSb2xlKG5vZGVJRCwgbm9kZVR5
cGUpOworICAgIG1fc2Nyb2xsaW5nTm9kZVRvTGF5ZXJNYXAuYWRkKG5vZGVJRCwgJmxheWVyKTsK
ICAgICAKKyAgICByZXR1cm4gbm9kZUlEOworfQorCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6dXBkYXRlU2Nyb2xsQ29vcmRpbmF0aW9uRm9yVGhpc0ZyYW1lKFNjcm9sbGluZ05vZGVJRCBw
YXJlbnROb2RlSUQpCit7CisgICAgU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKTsKKyAgICBBU1NFUlQoc2Nyb2xs
aW5nQ29vcmRpbmF0b3ItPmNvb3JkaW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KCZtX3JlbmRl
clZpZXcuZnJhbWVWaWV3KCkpKTsKKworICAgIFNjcm9sbGluZ05vZGVJRCBub2RlSUQgPSBhdHRh
Y2hTY3JvbGxpbmdOb2RlKCptX3JlbmRlclZpZXcubGF5ZXIoKSwgRnJhbWVTY3JvbGxpbmdOb2Rl
LCBwYXJlbnROb2RlSUQpOworICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT51cGRhdGVGcmFtZVNj
cm9sbGluZ05vZGUobm9kZUlELCBtX3Njcm9sbExheWVyLmdldCgpLCBtX3Jvb3RDb250ZW50TGF5
ZXIuZ2V0KCksIGZpeGVkUm9vdEJhY2tncm91bmRMYXllcigpLCBjbGlwTGF5ZXIoKSk7Cit9CisK
K3ZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxDb29yZGluYXRlZExheWVy
KFJlbmRlckxheWVyJiBsYXllciwgU2Nyb2xsQ29vcmRpbmF0aW9uUmVhc29ucyByZWFzb25zKQor
eworICAgIFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMt
PnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCk7CisgICAgaWYgKCFzY3JvbGxpbmdDb29yZGluYXRvciB8
fCAhc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmNvb3JkaW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3
KCZtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkpKQorICAgICAgICByZXR1cm47CisKICAgICBib29s
IGlzUm9vdExheWVyID0gJmxheWVyID09IG1fcmVuZGVyVmlldy5sYXllcigpOwogCiAgICAgLy8g
RklYTUU6IFJlbW92ZSBzdXBwb3J0c0ZpeGVkUG9zaXRpb25MYXllcnMoKSBzaW5jZSBhbGwgcGxh
dGZvcm1zIHN1cHBvcnQgdGhlbSBub3cuCkBAIC0zNjA4LDE5ICszNjkzLDIzIEBAIHZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxDb29yZGluYXRlZExheWVyKFJlbmRlckxh
eWVyJiBsYXllciwgU2NyCiAgICAgaWYgKCFiYWNraW5nKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBSZW5kZXJMYXllckJhY2tpbmcqIHBhcmVudCA9IG5lYXJlc3RTY3JvbGxDb29yZGluYXRlZEFu
Y2VzdG9yKGxheWVyKTsKLSAgICBpZiAoIXBhcmVudCAmJiAhaXNSb290TGF5ZXIpCi0gICAgICAg
IHJldHVybjsKKyAgICBpZiAoIW1fcmVuZGVyVmlldy5mcmFtZSgpLmlzTWFpbkZyYW1lKCkpIHsK
KyAgICAgICAgU2Nyb2xsaW5nTm9kZUlEIHBhcmVudERvY3VtZW50SG9zdGluZ05vZGVJRCA9IHNj
cm9sbENvb3JkaW5hdGVkQW5jZXN0b3JJblBhcmVudE9mRnJhbWUobV9yZW5kZXJWaWV3LmZyYW1l
KCkpOworICAgICAgICBpZiAoIXBhcmVudERvY3VtZW50SG9zdGluZ05vZGVJRCkKKyAgICAgICAg
ICAgIHJldHVybjsKIAotICAgIFNjcm9sbGluZ05vZGVJRCBwYXJlbnROb2RlSUQgPSBwYXJlbnQg
PyBwYXJlbnQtPnNjcm9sbGluZ05vZGVJREZvckNoaWxkcmVuKCkgOiAwOworICAgICAgICB1cGRh
dGVTY3JvbGxDb29yZGluYXRpb25Gb3JUaGlzRnJhbWUocGFyZW50RG9jdW1lbnRIb3N0aW5nTm9k
ZUlEKTsKKyAgICAgICAgaWYgKCEocmVhc29ucyAmIEZpeGVkT3JTdGlja3kpICYmIGlzUm9vdExh
eWVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFNjcm9sbGluZ05vZGVJRCBw
YXJlbnROb2RlSUQgPSBlbmNsb3NpbmdTY3JvbGxpbmdOb2RlSUQobGF5ZXIsIEV4Y2x1ZGVTZWxm
KTsKKyAgICBpZiAoIXBhcmVudE5vZGVJRCAmJiAhaXNSb290TGF5ZXIpCisgICAgICAgIHJldHVy
bjsKICAgICAKICAgICAvLyBBbHdheXMgY2FsbCB0aGlzIGV2ZW4gaWYgdGhlIGJhY2tpbmcgaXMg
YWxyZWFkeSBhdHRhY2hlZCBiZWNhdXNlIHRoZSBwYXJlbnQgbWF5IGhhdmUgY2hhbmdlZC4KICAg
ICAvLyBJZiBhIG5vZGUgcGxheXMgYm90aCByb2xlcywgZml4ZWQvc3RpY2t5IGlzIGFsd2F5cyB0
aGUgYW5jZXN0b3Igbm9kZSBvZiBzY3JvbGxpbmcuCiAgICAgaWYgKHJlYXNvbnMgJiBGaXhlZE9y
U3RpY2t5KSB7Ci0gICAgICAgIFNjcm9sbGluZ05vZGVJRCBub2RlSUQgPSBiYWNraW5nLT52aWV3
cG9ydENvbnN0cmFpbmVkTm9kZUlEKCk7Ci0gICAgICAgIGlmICghbm9kZUlEKQotICAgICAgICAg
ICAgbm9kZUlEID0gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnVuaXF1ZVNjcm9sbExheWVySUQoKTsK
LQogICAgICAgICBTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSA9IEZyYW1lU2Nyb2xsaW5nTm9k
ZTsKICAgICAgICAgaWYgKGxheWVyLnJlbmRlcmVyKCkuc3R5bGUoKS5wb3NpdGlvbigpID09IEZp
eGVkUG9zaXRpb24pCiAgICAgICAgICAgICBub2RlVHlwZSA9IEZpeGVkTm9kZTsKQEAgLTM2Mjks
MTIgKzM3MTgsMTAgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbENv
b3JkaW5hdGVkTGF5ZXIoUmVuZGVyTGF5ZXImIGxheWVyLCBTY3IKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAKLSAgICAgICAgbm9kZUlEID0gc2Nyb2xs
aW5nQ29vcmRpbmF0b3ItPmF0dGFjaFRvU3RhdGVUcmVlKG5vZGVUeXBlLCBub2RlSUQsIHBhcmVu
dE5vZGVJRCk7CisgICAgICAgIFNjcm9sbGluZ05vZGVJRCBub2RlSUQgPSBhdHRhY2hTY3JvbGxp
bmdOb2RlKGxheWVyLCBub2RlVHlwZSwgcGFyZW50Tm9kZUlEKTsKICAgICAgICAgaWYgKCFub2Rl
SUQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYmFja2luZy0+c2V0Vmlld3BvcnRD
b25zdHJhaW5lZE5vZGVJRChub2RlSUQpOwotCiAgICAgICAgIHN3aXRjaCAobm9kZVR5cGUpIHsK
ICAgICAgICAgY2FzZSBGaXhlZE5vZGU6CiAgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRv
ci0+dXBkYXRlVmlld3BvcnRDb25zdHJhaW5lZE5vZGUobm9kZUlELCBjb21wdXRlRml4ZWRWaWV3
cG9ydENvbnN0cmFpbnRzKGxheWVyKSwgYmFja2luZy0+Z3JhcGhpY3NMYXllcigpKTsKQEAgLTM2
NTEsMzUgKzM3MzgsMjAgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9s
bENvb3JkaW5hdGVkTGF5ZXIoUmVuZGVyTGF5ZXImIGxheWVyLCBTY3IKICAgICB9CiAKICAgICBp
ZiAocmVhc29ucyAmIFNjcm9sbGluZykgewotICAgICAgICBTY3JvbGxpbmdOb2RlSUQgbm9kZUlE
ID0gYmFja2luZy0+c2Nyb2xsaW5nTm9kZUlEKCk7Ci0gICAgICAgIGlmICghbm9kZUlEKQotICAg
ICAgICAgICAgbm9kZUlEID0gc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnVuaXF1ZVNjcm9sbExheWVy
SUQoKTsKLQotICAgICAgICBub2RlSUQgPSBzY3JvbGxpbmdDb29yZGluYXRvci0+YXR0YWNoVG9T
dGF0ZVRyZWUoaXNSb290TGF5ZXIgPyBGcmFtZVNjcm9sbGluZ05vZGUgOiBPdmVyZmxvd1Njcm9s
bGluZ05vZGUsIG5vZGVJRCwgcGFyZW50Tm9kZUlEKTsKLSAgICAgICAgaWYgKCFub2RlSUQpCi0g
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChpc1Jvb3RMYXllcikKKyAgICAgICAgICAg
IHVwZGF0ZVNjcm9sbENvb3JkaW5hdGlvbkZvclRoaXNGcmFtZShwYXJlbnROb2RlSUQpOworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlID0gaXNS
b290TGF5ZXIgPyBGcmFtZVNjcm9sbGluZ05vZGUgOiBPdmVyZmxvd1Njcm9sbGluZ05vZGU7Cisg
ICAgICAgICAgICBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEID0gYXR0YWNoU2Nyb2xsaW5nTm9kZShs
YXllciwgbm9kZVR5cGUsIHBhcmVudE5vZGVJRCk7CisgICAgICAgICAgICBpZiAoIW5vZGVJRCkK
KyAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYmFja2luZy0+c2V0U2Nyb2xsaW5n
Tm9kZUlEKG5vZGVJRCk7Ci0gICAgICAgIG1fc2Nyb2xsaW5nTm9kZVRvTGF5ZXJNYXAuYWRkKG5v
ZGVJRCwgJmxheWVyKTsKLQotICAgICAgICBHcmFwaGljc0xheWVyKiBzY3JvbGxpbmdMYXllciA9
IGJhY2tpbmctPnNjcm9sbGluZ0xheWVyKCk7Ci0gICAgICAgIEdyYXBoaWNzTGF5ZXIqIHNjcm9s
bGVkQ29udGVudHNMYXllciA9IGJhY2tpbmctPnNjcm9sbGluZ0NvbnRlbnRzTGF5ZXIoKTsKLSAg
ICAgICAgR3JhcGhpY3NMYXllciogY291bnRlclNjcm9sbGluZ0xheWVyID0gbnVsbHB0cjsKLSAg
ICAgICAgR3JhcGhpY3NMYXllciogaW5zZXRDbGlwTGF5ZXIgPSBudWxscHRyOwotCi0gICAgICAg
IGlmIChpc1Jvb3RMYXllcikgewotICAgICAgICAgICAgc2Nyb2xsaW5nTGF5ZXIgPSBtX3Njcm9s
bExheWVyLmdldCgpOwotICAgICAgICAgICAgc2Nyb2xsZWRDb250ZW50c0xheWVyID0gbV9yb290
Q29udGVudExheWVyLmdldCgpOwotICAgICAgICAgICAgY291bnRlclNjcm9sbGluZ0xheWVyID0g
Zml4ZWRSb290QmFja2dyb3VuZExheWVyKCk7Ci0gICAgICAgICAgICBpbnNldENsaXBMYXllciA9
IGNsaXBMYXllcigpOwotICAgICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnVwZGF0ZUZy
YW1lU2Nyb2xsaW5nTm9kZShub2RlSUQsIHNjcm9sbGluZ0xheWVyLCBzY3JvbGxlZENvbnRlbnRz
TGF5ZXIsIGNvdW50ZXJTY3JvbGxpbmdMYXllciwgaW5zZXRDbGlwTGF5ZXIpOwotICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OlNjcm9sbGluZ0dlb21l
dHJ5IHNjcm9sbGluZ0dlb21ldHJ5OwogICAgICAgICAgICAgc2Nyb2xsaW5nR2VvbWV0cnkuc2Ny
b2xsT3JpZ2luID0gbGF5ZXIuc2Nyb2xsT3JpZ2luKCk7CiAgICAgICAgICAgICBzY3JvbGxpbmdH
ZW9tZXRyeS5zY3JvbGxQb3NpdGlvbiA9IGxheWVyLnNjcm9sbFBvc2l0aW9uKCk7CiAgICAgICAg
ICAgICBzY3JvbGxpbmdHZW9tZXRyeS5zY3JvbGxhYmxlQXJlYVNpemUgPSBsYXllci52aXNpYmxl
U2l6ZSgpOwogICAgICAgICAgICAgc2Nyb2xsaW5nR2VvbWV0cnkuY29udGVudFNpemUgPSBsYXll
ci5jb250ZW50c1NpemUoKTsKLSAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT51cGRh
dGVPdmVyZmxvd1Njcm9sbGluZ05vZGUobm9kZUlELCBzY3JvbGxpbmdMYXllciwgc2Nyb2xsZWRD
b250ZW50c0xheWVyLCAmc2Nyb2xsaW5nR2VvbWV0cnkpOworICAgICAgICAgICAgc2Nyb2xsaW5n
Q29vcmRpbmF0b3ItPnVwZGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZShub2RlSUQsIGJhY2tpbmct
PnNjcm9sbGluZ0xheWVyKCksIGJhY2tpbmctPnNjcm9sbGluZ0NvbnRlbnRzTGF5ZXIoKSwgJnNj
cm9sbGluZ0dlb21ldHJ5KTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTM2OTAsMTAgKzM3NjIs
MTMgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRldGFjaFNjcm9sbENvb3JkaW5hdGVk
TGF5ZXIoUmVuZGVyTGF5ZXImIGxheWVyKQogICAgIGlmICghYmFja2luZykKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYmFja2luZy0+ZGV0YWNoRnJvbVNjcm9sbGluZ0Nvb3JkaW5hdG9yKCk7Cisg
ICAgaWYgKFNjcm9sbGluZ05vZGVJRCBub2RlSUQgPSBiYWNraW5nLT5zY3JvbGxpbmdOb2RlSURG
b3JSb2xlKEZyYW1lU2Nyb2xsaW5nTm9kZSkpCisgICAgICAgIG1fc2Nyb2xsaW5nTm9kZVRvTGF5
ZXJNYXAucmVtb3ZlKG5vZGVJRCk7CiAKLSAgICBpZiAoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCA9
IGJhY2tpbmctPnNjcm9sbGluZ05vZGVJRCgpKQorICAgIGlmIChTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlEID0gYmFja2luZy0+c2Nyb2xsaW5nTm9kZUlERm9yUm9sZShGaXhlZE5vZGUpKQogICAgICAg
ICBtX3Njcm9sbGluZ05vZGVUb0xheWVyTWFwLnJlbW92ZShub2RlSUQpOworCisgICAgYmFja2lu
Zy0+ZGV0YWNoRnJvbVNjcm9sbGluZ0Nvb3JkaW5hdG9yKCk7CiB9CiAKIFNjcm9sbGFibGVBcmVh
KiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRChT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlEKSBjb25zdApAQCAtMzcyOCw3ICszODAzLDcgQEAgdm9pZCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlZ2lzdGVyQWxsVmlld3BvcnRDb25zdHJhaW5lZExheWVy
cygpCiAgICAgICAgIGlmIChsYXllci5yZW5kZXJlcigpLmlzU3RpY2t5UG9zaXRpb25lZCgpKSB7
CiAgICAgICAgICAgICBjb25zdHJhaW50cyA9IHN0ZDo6bWFrZV91bmlxdWU8U3RpY2t5UG9zaXRp
b25WaWV3cG9ydENvbnN0cmFpbnRzPihjb21wdXRlU3RpY2t5Vmlld3BvcnRDb25zdHJhaW50cyhs
YXllcikpOwogICAgICAgICAgICAgY29uc3QgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ1RvdWNoU2Ny
b2xsYWJsZUxheWVyID0gbnVsbHB0cjsKLSAgICAgICAgICAgIGlmIChpc1N0aWNreUluQWNjZWxl
cmF0ZWRTY3JvbGxpbmdMYXllck9yVmlld3BvcnQobGF5ZXIsICZlbmNsb3NpbmdUb3VjaFNjcm9s
bGFibGVMYXllcikgJiYgZW5jbG9zaW5nVG91Y2hTY3JvbGxhYmxlTGF5ZXIpIHsKKyAgICAgICAg
ICAgIGlmIChpc0FzeW5jU2Nyb2xsYWJsZVN0aWNreUxheWVyKGxheWVyLCAmZW5jbG9zaW5nVG91
Y2hTY3JvbGxhYmxlTGF5ZXIpICYmIGVuY2xvc2luZ1RvdWNoU2Nyb2xsYWJsZUxheWVyKSB7CiAg
ICAgICAgICAgICAgICAgQVNTRVJUKGVuY2xvc2luZ1RvdWNoU2Nyb2xsYWJsZUxheWVyLT5pc0Nv
bXBvc2l0ZWQoKSk7CiAgICAgICAgICAgICAgICAgc3RpY2t5Q29udGFpbmVyTWFwLmFkZChsYXll
ci5iYWNraW5nKCktPmdyYXBoaWNzTGF5ZXIoKS0+cGxhdGZvcm1MYXllcigpLCBlbmNsb3NpbmdU
b3VjaFNjcm9sbGFibGVMYXllci0+YmFja2luZygpLT5zY3JvbGxpbmdMYXllcigpLT5wbGF0Zm9y
bUxheWVyKCkpOwogICAgICAgICAgICAgfQpAQCAtMzc5MSw3ICszODY2LDcgQEAgdm9pZCBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OndpbGxSZW1vdmVTY3JvbGxpbmdMYXllcihSZW5kZXJMYXllciYg
bGF5ZXIpCiAgICAgICAgIFJlbmRlckxheWVyQmFja2luZyogYmFja2luZyA9IGxheWVyLmJhY2tp
bmcoKTsKICAgICAKICAgICAgICAgaWYgKGJhY2tpbmcpCi0gICAgICAgICAgICBzY3JvbGxpbmdD
b29yZGluYXRvci0+ZGV0YWNoRnJvbVN0YXRlVHJlZShiYWNraW5nLT5zY3JvbGxpbmdOb2RlSUQo
KSk7CisgICAgICAgICAgICBiYWNraW5nLT5kZXRhY2hGcm9tU2Nyb2xsaW5nQ29vcmRpbmF0b3Io
KTsKIAogICAgICAgICAvLyBGb3IgQ29vcmRpbmF0ZWQgR3JhcGhpY3MuCiAgICAgICAgIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yLT5zY3JvbGxhYmxlQXJlYVNjcm9sbExheWVyRGlkQ2hhbmdlKCZsYXll
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmgKaW5kZXggMTA1NzNiODU0YzkzNTg5OTk5NzZkNzc2NzE3OTZjZmEzZjk3ZTZhZC4uZWVlYjBm
OTA3MWJhOGQ3MTNkZGMwNDk1MDI0MDRhMTU2OTE1OWJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMzk1LDcgKzM5NSw2IEBA
IHByaXZhdGU6CiAgICAgUGFzc1JlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURp
c3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3Q7CiAjZW5kaWYKIAot
ICAgIC8vIFdoZXRoZXIgYSBydW5uaW5nIHRyYW5zaXRpb24gb3IgYW5pbWF0aW9uIGVuZm9yY2Vz
IHRoZSBuZWVkIGZvciBhIGNvbXBvc2l0aW5nIGxheWVyLgogICAgIGJvb2wgcmVxdWlyZXNDb21w
b3NpdGluZ0ZvckFuaW1hdGlvbihSZW5kZXJMYXllck1vZGVsT2JqZWN0JikgY29uc3Q7CiAgICAg
Ym9vbCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yVHJhbnNmb3JtKFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QmKSBjb25zdDsKICAgICBib29sIHJlcXVpcmVzQ29tcG9zaXRpbmdGb3JCYWNrZmFjZVZpc2li
aWxpdHkoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYpIGNvbnN0OwpAQCAtNDI0LDkgKzQyMywxMiBA
QCBwcml2YXRlOgogICAgIH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBTY3JvbGxDb29yZGluYXRp
b25SZWFzb25zOwogCisgICAgdm9pZCB1cGRhdGVTY3JvbGxDb29yZGluYXRpb25Gb3JUaGlzRnJh
bWUoU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICBTY3JvbGxpbmdOb2RlSUQgYXR0YWNoU2Nyb2xsaW5n
Tm9kZShSZW5kZXJMYXllciYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgcGFy
ZW50Tm9kZUlEKTsKICAgICB2b2lkIHVwZGF0ZVNjcm9sbENvb3JkaW5hdGVkTGF5ZXIoUmVuZGVy
TGF5ZXImLCBTY3JvbGxDb29yZGluYXRpb25SZWFzb25zKTsKICAgICB2b2lkIGRldGFjaFNjcm9s
bENvb3JkaW5hdGVkTGF5ZXIoUmVuZGVyTGF5ZXImKTsKLQorICAgIHZvaWQgcmVhdHRhY2hTdWJm
cmFtZVNjcm9sbExheWVycygpOworICAgIAogICAgIEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0
cmFpbnRzIGNvbXB1dGVGaXhlZFZpZXdwb3J0Q29uc3RyYWludHMoUmVuZGVyTGF5ZXImKSBjb25z
dDsKICAgICBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMgY29tcHV0ZVN0aWNreVZp
ZXdwb3J0Q29uc3RyYWludHMoUmVuZGVyTGF5ZXImKSBjb25zdDsKIApAQCAtNDM5LDcgKzQ0MSwx
MiBAQCBwcml2YXRlOgogICAgIGJvb2wgcmVxdWlyZXNDb250ZW50U2hhZG93TGF5ZXIoKSBjb25z
dDsKICNlbmRpZgogCisgICAgLy8gVHJ1ZSBpZiB0aGUgRnJhbWVWaWV3IHVzZXMgYSBTY3JvbGxp
bmdDb29yZGluYXRvci4KICAgICBib29sIGhhc0Nvb3JkaW5hdGVkU2Nyb2xsaW5nKCkgY29uc3Q7
CisKKyAgICBib29sIGlzQXN5bmNTY3JvbGxhYmxlU3RpY2t5TGF5ZXIoY29uc3QgUmVuZGVyTGF5
ZXImLCBjb25zdCBSZW5kZXJMYXllcioqIGVuY2xvc2luZ0FjY2VsZXJhdGVkT3ZlcmZsb3dMYXll
ciA9IG51bGxwdHIpIGNvbnN0OworICAgIGJvb2wgaXNWaWV3cG9ydENvbnN0cmFpbmVkRml4ZWRP
clN0aWNreUxheWVyKGNvbnN0IFJlbmRlckxheWVyJikgY29uc3Q7CisgICAgCiAgICAgYm9vbCBz
aG91bGRDb21wb3NpdGVPdmVyZmxvd0NvbnRyb2xzKCkgY29uc3Q7CiAKICAgICB2b2lkIHNjaGVk
dWxlTGF5ZXJGbHVzaE5vdygpOwpAQCAtNDgwLDYgKzQ4Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3Nob3VsZEZsdXNoT25SZWF0dGFjaDsKICAgICBib29sIG1fZm9yY2VDb21wb3NpdGluZ01v
ZGU7CiAgICAgYm9vbCBtX2luUG9zdExheW91dFVwZGF0ZTsgLy8gdHJ1ZSB3aGVuIGl0J3MgT0sg
dG8gdHJ1c3QgbGF5b3V0IGluZm9ybWF0aW9uIChlLmcuIGxheWVyIHNpemVzIGFuZCBwb3NpdGlv
bnMpCisgICAgYm9vbCBtX3N1YmZyYW1lU2Nyb2xsTGF5ZXJzTmVlZFJlYXR0YWNoOwogCiAgICAg
Ym9vbCBtX2lzVHJhY2tpbmdSZXBhaW50czsgLy8gVXNlZCBmb3IgdGVzdGluZy4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDBmMzllN2YyMjA0ODIyNDEzY2Zk
NzU1YzlmY2I4ZmFmZTlkNDU4ZDcuLjgzNGFiYTY2NzRlZjM4NTkwNmE0NzM5MTdjYjMwNmRkMTNk
YzVjYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTgzOSw2
ICs4MzksNyBAQCB2b2lkIFJlbmRlclZpZXc6OnNldFNlbGVjdGlvbihSZW5kZXJPYmplY3QqIHN0
YXJ0LCBpbnQgc3RhcnRQb3MsIFJlbmRlck9iamVjdCogZQogICAgIGlmICgoc3RhcnQgJiYgIWVu
ZCkgfHwgKGVuZCAmJiAhc3RhcnQpKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBGSVhNRTog
dmlldygpIGlzIGp1c3QgKnRoaXMgaGVyZS4KICAgICBib29sIGNhcmV0Q2hhbmdlZCA9IG1fc2Vs
ZWN0aW9uV2FzQ2FyZXQgIT0gdmlldygpLmZyYW1lKCkuc2VsZWN0aW9uKCkuaXNDYXJldCgpOwog
ICAgIG1fc2VsZWN0aW9uV2FzQ2FyZXQgPSB2aWV3KCkuZnJhbWUoKS5zZWxlY3Rpb24oKS5pc0Nh
cmV0KCk7CiAgICAgLy8gSnVzdCByZXR1cm4gaWYgdGhlIHNlbGVjdGlvbiBoYXNuJ3QgY2hhbmdl
ZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDg1
NTRiZGU2YmYwOTY1MzdlZTQ2YTYyOGNkZmM4Zjc3OTBiNGU1YjguLmZjOTEwYzU1N2E2NzQ2OTc4
NGY1Y2M4MzJhYzcyMjQ3MzE5N2VhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmNwcApAQCAtNDg2LDQgKzQ4NiwxMCBAQCB2b2lkIEludGVybmFsU2V0dGlu
Z3M6OnNldFNob3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5KGJvb2wgY29udmVydCwgRXhj
ZXB0aQogICAgIHNldHRpbmdzKCktPnNldFNob3VsZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5
KGNvbnZlcnQpOwogfQogCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFNjcm9sbGluZ1RyZWVJ
bmNsdWRlc0ZyYW1lcyhib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElu
dGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CisgICAgc2V0dGluZ3MoKS0+c2V0U2Ny
b2xsaW5nVHJlZUluY2x1ZGVzRnJhbWVzKGVuYWJsZWQpOworfQorCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IDM5ZTM1YjdlY2Y2NTk1M2NlYThiYWUz
ZTgwOTVjZDdmM2ZjZDBjZDIuLmJhMzI3NTY5ODczYzhiODI5NTUxNjNmMzVhZDEyYWEyNzQ3Mjg5
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0xMDAs
OCArMTAwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkludGVybmFsU2V0dGluZ3MoKTsKICAg
ICB2b2lkIHJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKIAotICAgIHZvaWQgc2V0VXNlc092ZXJs
YXlTY3JvbGxiYXJzKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0
VG91Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7
CisgICAgdm9pZCBzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnMoYm9vbCwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHZvaWQgc2V0VG91Y2hFdmVudEVtdWxhdGlvbkVuYWJsZWQoYm9vbCwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIHZvaWQgc2V0U3RhbmRhcmRGb250RmFtaWx5KGNvbnN0IFN0cmluZyYgZmFt
aWx5LCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0
U2VyaWZGb250RmFtaWx5KGNvbnN0IFN0cmluZyYgZmFtaWx5LCBjb25zdCBTdHJpbmcmIHNjcmlw
dCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0U2Fuc1NlcmlmRm9udEZhbWlseShjb25z
dCBTdHJpbmcmIGZhbWlseSwgY29uc3QgU3RyaW5nJiBzY3JpcHQsIEV4Y2VwdGlvbkNvZGUmKTsK
QEAgLTExMywyNSArMTEzLDI1IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5n
V2luZG93U2l6ZU92ZXJyaWRlKGludCB3aWR0aCwgaW50IGhlaWdodCwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoZmxvYXQgZm9udFNj
YWxlRmFjdG9yLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRNZWRpYVR5cGVPdmVycmlk
ZShjb25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0
Q1NTRXhjbHVzaW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
dm9pZCBzZXRDU1NTaGFwZXNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIHZvaWQgc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIHZvaWQgc2V0Q1NTU2hhcGVzRW5hYmxlZChib29sLCBFeGNlcHRpb25Db2RlJik7CiAgICAg
dm9pZCBzZXRDYW5TdGFydE1lZGlhKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNl
dEVkaXRpbmdCZWhhdmlvcihjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZXRTaG91bGREaXNwbGF5VHJhY2tLaW5kKGNvbnN0IFN0cmluZyYga2luZCwgYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgYm9vbCBzaG91bGREaXNwbGF5VHJhY2tLaW5kKGNv
bnN0IFN0cmluZyYga2luZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0U3RvcmFnZUJs
b2NraW5nUG9saWN5KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNl
dExhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkKGJvb2wpOwotICAgIHZvaWQg
c2V0SW1hZ2VzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lk
IHNldEltYWdlc0VuYWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0TWlu
aW11bVRpbWVySW50ZXJ2YWwoZG91YmxlIGludGVydmFsSW5TZWNvbmRzLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgdm9pZCBzZXREZWZhdWx0VmlkZW9Qb3N0ZXJVUkwoY29uc3QgU3RyaW5nJiB1cmws
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFRpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJl
Zm9yZUhpZGluZ0NvbnRyb2xzKGRvdWJsZSB0aW1lLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9p
ZCBzZXRVc2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJlaGF2aW9yKGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0QXV0b3Njcm9sbEZvckRyYWdBbmREcm9w
RW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldEZvbnRG
YWxsYmFja1ByZWZlcnNQaWN0b2dyYXBocyhib29sIHByZWZlclBpY3RvZ3JhcGhzLCBFeGNlcHRp
b25Db2RlJik7CisgICAgdm9pZCBzZXRVc2VMZWdhY3lCYWNrZ3JvdW5kU2l6ZVNob3J0aGFuZEJl
aGF2aW9yKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEF1dG9zY3JvbGxGb3JE
cmFnQW5kRHJvcEVuYWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0Rm9u
dEZhbGxiYWNrUHJlZmVyc1BpY3RvZ3JhcGhzKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
b2lkIHNldFBsdWdpblJlcGxhY2VtZW50RW5hYmxlZChib29sKTsKLSAgICB2b2lkIHNldEJhY2tn
cm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlKGJvb2wgaGFzRXh0ZW5kZWRCYWNrZ3JvdW5kLCBF
eGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRTaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9u
Q29weShib29sIGNvbnZlcnQsIEV4Y2VwdGlvbkNvZGUmKTsKLQorICAgIHZvaWQgc2V0QmFja2dy
b3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZv
aWQgc2V0U2hvdWxkQ29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHkoYm9vbCwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIHZvaWQgc2V0U2Nyb2xsaW5nVHJlZUluY2x1ZGVzRnJhbWVzKGJvb2wsIEV4Y2Vw
dGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbFNldHRpbmdzKFBh
Z2UqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4
IDk3ODU4OTU5NTVkN2MwY2YxMWM0Y2I3YmY0MDY0NDBhZjA5NGMwMDMuLmRhNDdjMTNkMDIxNGJj
N2M4MmNkYzVlMzc5MGJmY2QyMDQ5NWY2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbApAQCAtNjgsNiArNjgsNyBAQAogICAgIFtSYWlzZXNFeGNlcHRp
b25dIHZvaWQgc2V0VXNlTGVnYWN5QmFja2dyb3VuZFNpemVTaG9ydGhhbmRCZWhhdmlvcihib29s
ZWFuIGVuYWJsZWQpOwogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0QXV0b3Njcm9sbEZv
ckRyYWdBbmREcm9wRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwogICAgIFtSYWlzZXNFeGNlcHRp
b25dIHZvaWQgc2V0QmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UoYm9vbGVhbiBoYXNF
eHRlbmRlZEJhY2tncm91bmQpOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0U2Nyb2xs
aW5nVHJlZUluY2x1ZGVzRnJhbWVzKGJvb2xlYW4gZW5hYmxlZCk7CiAKICAgICBbUmFpc2VzRXhj
ZXB0aW9uXSB2b2lkIHNldE1pbmltdW1UaW1lckludGVydmFsKHVucmVzdHJpY3RlZCBkb3VibGUg
aW50ZXJ2YWxJblNlY29uZHMpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oCmlu
ZGV4IGEwM2U3ODk4MTYyYjdiY2UxMDBhNGEzZDY4ODM2NmQ4YmI2OTc5YjMuLjA1ZGExZDg0ZTBh
YmFmM2Q5ODRjZWFlMTBlOTA5OTg5YWFjNWI2OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaApAQCAtNjEsNiArNjEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIAogICAgIC8vIFNjcm9sbGluZ0Nvb3JkaW5hdG9yCisgICAgdmlydHVhbCBib29sIGNv
b3JkaW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KFdlYkNvcmU6OkZyYW1lVmlldyopIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCgpIG92
ZXJyaWRlOwogCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVO
b2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlVHlwZSwg
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3IubW0KaW5kZXggNTA2ODE2YjJhYTAyMTcwMmJjNmI2YTUzZDRhMjliMzU2YTJkYjBk
Yi4uMWZlNjk2ZTJlMzlhMGZhZGU3MGJlM2JiOWNmOGE2ODdmNDI3MDAxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3IubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KQEAgLTc0LDYgKzc0LDEyIEBAIFBhc3NPd25QdHI8U2Ny
b2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGVTY3JvbGxp
bmdUcmVlTm9kCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK2Jvb2wgUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OmNvb3JkaW5hdGVzU2Nyb2xsaW5nRm9yRnJhbWVWaWV3KEZyYW1lVmlldyog
ZnJhbWVWaWV3KSBjb25zdAoreworICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBmcmFtZVZp
ZXctPnJlbmRlclZpZXcoKTsKKyAgICByZXR1cm4gcmVuZGVyVmlldyAmJiByZW5kZXJWaWV3LT51
c2VzQ29tcG9zaXRpbmcoKTsKK30KKwogYm9vbCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6
aXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IG5lZWQgdG8g
bWFpbnRhaW4gc3RhdGUgaW4gdGhlIHdlYiBwcm9jZXNzPwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFiM2NjYTI0MGZhN2Y0
ZTMxMDY2MTlmN2E2ZDlhNmE1ZTM2YzFiMjUuLmI3OGNiZTA5MzU4ZTk3MDliMjY0NDE2YTI4M2Zi
OTBlYTQxMjE0YTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNC0wNi0wOSAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBXb3JrIHRvd2FyZHMgaGF2
aW5nIGZyYW1lcyBpbiB0aGUgc2Nyb2xsaW5nIHRyZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzY2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGVzdHMgdGhhdCBkdW1wIHRoZSBzY3Jv
bGxpbmcgdHJlZSB3aXRoIHN1YmZyYW1lcy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azIv
dGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5hdGVkLWZyYW1lLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Nj
cm9sbGluZy9mcmFtZXMvY29vcmRpbmF0ZWQtZnJhbWUtaW4tZml4ZWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5n
L2ZyYW1lcy9jb29yZGluYXRlZC1mcmFtZS1pbi1maXhlZC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9jb29yZGlu
YXRlZC1mcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9yZXNvdXJjZXMvZG9jLXdpdGgtc3RpY2t5Lmh0bWw6
IEFkZGVkLgorCiAyMDE0LTA2LTA1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgRWFnZXJseSByZWlmeSBET00gcHJvdG90eXBlIGF0dHJpYnV0ZXMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5hdGVkLWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3Jk
aW5hdGVkLWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjczYjI1YzQ4MjU1MjQ3NmIy
MDljYmZkOGZkNTI0NjUwNGU5NmYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvY29vcmRpbmF0ZWQt
ZnJhbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKKyhGcmFtZSBzY3JvbGxpbmcgbm9k
ZQorICAoc2Nyb2xsYWJsZSBhcmVhIHNpemUgNzg1IDYwMCkKKyAgKGNvbnRlbnRzIHNpemUgNzg1
IDEwMTYpCisgIChjaGlsZHJlbiAxCisgICAgKEZyYW1lIHNjcm9sbGluZyBub2RlCisgICAgICAo
c2Nyb2xsYWJsZSBhcmVhIHNpemUgNDg1IDMwMCkKKyAgICAgIChjb250ZW50cyBzaXplIDQ4NSAx
ODY4KQorICAgICAgKGNoaWxkcmVuIDEKKyAgICAgICAgKFN0aWNreSBub2RlCisgICAgICAgICAg
KGFuY2hvciBlZGdlczogQW5jaG9yRWRnZVRvcCApCisgICAgICAgICAgKHRvcCBvZmZzZXQgMTAu
MDApCisgICAgICAgICAgKGNvbnRhaW5pbmcgYmxvY2sgcmVjdCA4LjAwLCAxMC4wMCA0NjkuMDAg
eCAxODUwLjAwKQorICAgICAgICAgIChzdGlja3kgYm94IHJlY3QgOC4wMCA4MzAuMDAgMTAwLjAw
IDEwMC4wMCkKKyAgICAgICAgICAoc3RpY2t5IGJveCByZWN0IDguMDAgODMwLjAwIDEwMC4wMCAx
MDAuMDApCisgICAgICAgICAgKHN0aWNreSBvZmZzZXQgYXQgbGFzdCBsYXlvdXQgMC4wMCAwLjAw
KQorICAgICAgICAgIChsYXllciBwb3NpdGlvbiBhdCBsYXN0IGxheW91dCA4LjAwIDgzMC4wMCkK
KyAgICAgICAgKQorICAgICAgKQorICAgICkKKyAgKQorKQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9jb29y
ZGluYXRlZC1mcmFtZS1pbi1maXhlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9jb29yZGluYXRlZC1mcmFt
ZS1pbi1maXhlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWEyMWFjY2ZkYzhlNzY5YTM5OGE0
ZGU0YWYzMzE0MTc1MmY4MDA2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5hdGVkLWZy
YW1lLWluLWZpeGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI5IEBACisoRnJhbWUgc2Nyb2xs
aW5nIG5vZGUKKyAgKHNjcm9sbGFibGUgYXJlYSBzaXplIDc4NSA2MDApCisgIChjb250ZW50cyBz
aXplIDc4NSAxMDE2KQorICAoY2hpbGRyZW4gMQorICAgIChGaXhlZCBub2RlCisgICAgICAoYW5j
aG9yIGVkZ2VzOiBBbmNob3JFZGdlTGVmdCBBbmNob3JFZGdlVG9wKQorICAgICAgKHZpZXdwb3J0
IHJlY3QgYXQgbGFzdCBsYXlvdXQ6IDAuMDAgMC4wMCA3ODUuMDAgNjAwLjAwKQorICAgICAgKGxh
eWVyIHBvc2l0aW9uIGF0IGxhc3QgbGF5b3V0IDguMDAgMC4wMCkKKyAgICAgIChjaGlsZHJlbiAx
CisgICAgICAgIChGcmFtZSBzY3JvbGxpbmcgbm9kZQorICAgICAgICAgIChzY3JvbGxhYmxlIGFy
ZWEgc2l6ZSA0ODUgMzAwKQorICAgICAgICAgIChjb250ZW50cyBzaXplIDQ4NSAxODY4KQorICAg
ICAgICAgIChjaGlsZHJlbiAxCisgICAgICAgICAgICAoU3RpY2t5IG5vZGUKKyAgICAgICAgICAg
ICAgKGFuY2hvciBlZGdlczogQW5jaG9yRWRnZVRvcCApCisgICAgICAgICAgICAgICh0b3Agb2Zm
c2V0IDEwLjAwKQorICAgICAgICAgICAgICAoY29udGFpbmluZyBibG9jayByZWN0IDguMDAsIDEw
LjAwIDQ2OS4wMCB4IDE4NTAuMDApCisgICAgICAgICAgICAgIChzdGlja3kgYm94IHJlY3QgOC4w
MCA4MzAuMDAgMTAwLjAwIDEwMC4wMCkKKyAgICAgICAgICAgICAgKHN0aWNreSBib3ggcmVjdCA4
LjAwIDgzMC4wMCAxMDAuMDAgMTAwLjAwKQorICAgICAgICAgICAgICAoc3RpY2t5IG9mZnNldCBh
dCBsYXN0IGxheW91dCAwLjAwIDAuMDApCisgICAgICAgICAgICAgIChsYXllciBwb3NpdGlvbiBh
dCBsYXN0IGxheW91dCA4LjAwIDgzMC4wMCkKKyAgICAgICAgICAgICkKKyAgICAgICAgICApCisg
ICAgICAgICkKKyAgICAgICkKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvY29vcmRp
bmF0ZWQtZnJhbWUtaW4tZml4ZWQuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIv
dGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5hdGVkLWZyYW1lLWluLWZpeGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTNlYjczZTI4Yzk1ZDJlZGZjMDc2ZWFhZDMzMGRmMjI3NjZjZTk4
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvZnJhbWVzL2Nvb3JkaW5hdGVkLWZyYW1lLWluLWZpeGVkLmh0bWwK
QEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+DQorPGh0bWw+DQorPGhlYWQ+DQorICAg
IDxzdHlsZT4NCisgICAgICAgIGJvZHkgew0KKyAgICAgICAgICAgIGhlaWdodDogMTAwMHB4Ow0K
KyAgICAgICAgfQ0KKyAgICAgICAgDQorICAgICAgICBpZnJhbWUgew0KKyAgICAgICAgICAgIGRp
c3BsYXk6IGJsb2NrOw0KKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsNCisgICAgICAgICAgICBi
b3JkZXI6IDVweCBzb2xpZCBibGFjazsNCisgICAgICAgIH0NCisgICAgICAgIA0KKyAgICAgICAg
I2NvbnRhaW5lciB7DQorICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOw0KKyAgICAgICAg
ICAgIHRvcDogMTBweDsNCisgICAgICAgICAgICBib3JkZXI6IDRweCBzb2xpZCBncmVlbjsNCisg
ICAgICAgICAgICBwYWRkaW5nOiAxMHB4Ow0KKyAgICAgICAgfQ0KKyAgICAgICAgDQorICAgICAg
ICAjY29udGFpbmVyIHsNCisgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7DQorICAgICAgICAg
ICAgdG9wOiAwOw0KKyAgICAgICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIG9yYW5nZTsNCisgICAg
ICAgIH0NCisgICAgICAgIA0KKyAgICAgICAgI3RyZWUgew0KKyAgICAgICAgICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsNCisgICAgICAgICAgICB0b3A6IDM3NXB4Ow0KKyAgICAgICAgfQ0KKyAgICA8
L3N0eWxlPg0KKyAgICA8c2NyaXB0Pg0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
DQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7DQorICAgICAgICAgICAgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRTY3JvbGxpbmdUcmVlSW5jbHVkZXNGcmFtZXModHJ1
ZSk7DQorICAgICAgICB9DQorDQorICAgICAgICBmdW5jdGlvbiBzdGFydFRlc3QoKQ0KKyAgICAg
ICAgew0KKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQ0KKyAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJlZScpLmlubmVyVGV4dCA9IGludGVybmFscy5z
Y3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoKTsNCisgICAgICAgIH0NCisgICAgICAgIA0KKyAgICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBzdGFydFRlc3QsIGZhbHNlKTsNCisg
ICAgPC9zY3JpcHQ+DQorPC9oZWFkPg0KKzxib2R5Pg0KKyAgICANCisgICAgPGRpdiBpZD0iY29u
dGFpbmVyIj4NCisgICAgICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvZG9jLXdpdGgtc3RpY2t5
Lmh0bWwiIHdpZHRoPSI1MDAiIGhlaWdodD0iMzAwIj48L2lmcmFtZT4NCisgICAgPC9kaXY+DQor
PHByZSBpZD0idHJlZSI+U2Nyb2xsaW5nIHRyZWUgZ29lcyBoZXJlPC9wcmU+DQorPC9ib2R5Pg0K
KzwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9jb29yZGluYXRlZC1mcmFtZS5odG1sIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvY29v
cmRpbmF0ZWQtZnJhbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmQwZjZkZTU4Y2E5YjhlMDI1NGM3Zjk2
ZTRhNGUwNmIyOWZmMTU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMi90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9mcmFtZXMvY29vcmRpbmF0ZWQtZnJhbWUu
aHRtbApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4NCis8aHRtbD4NCis8aGVhZD4N
CisgICAgPHN0eWxlPg0KKyAgICAgICAgYm9keSB7DQorICAgICAgICAgICAgaGVpZ2h0OiAxMDAw
cHg7DQorICAgICAgICB9DQorICAgICAgICANCisgICAgICAgIGlmcmFtZSB7DQorICAgICAgICAg
ICAgZGlzcGxheTogYmxvY2s7DQorICAgICAgICAgICAgbWFyZ2luOiAxMHB4Ow0KKyAgICAgICAg
ICAgIGJvcmRlcjogNXB4IHNvbGlkIGJsYWNrOw0KKyAgICAgICAgfQ0KKyAgICAgICAgDQorICAg
ICAgICAjY29udGFpbmVyIHsNCisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7DQorICAg
ICAgICAgICAgdG9wOiAxMHB4Ow0KKyAgICAgICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIGdyZWVu
Ow0KKyAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7DQorICAgICAgICB9DQorICAgICAgICANCisg
ICAgICAgICNjb250YWluZXIgew0KKyAgICAgICAgICAgIGJvcmRlcjogNHB4IHNvbGlkIG9yYW5n
ZTsNCisgICAgICAgIH0NCisgICAgICAgIA0KKyAgICAgICAgI3RyZWUgew0KKyAgICAgICAgICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsNCisgICAgICAgICAgICB0b3A6IDM3NXB4Ow0KKyAgICAgICAg
fQ0KKyAgICA8L3N0eWxlPg0KKyAgICA8c2NyaXB0Pg0KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7DQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7DQorICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRTY3JvbGxpbmdUcmVlSW5jbHVkZXNG
cmFtZXModHJ1ZSk7DQorICAgICAgICB9DQorDQorICAgICAgICBmdW5jdGlvbiBzdGFydFRlc3Qo
KQ0KKyAgICAgICAgew0KKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQ0KKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndHJlZScpLmlubmVyVGV4dCA9IGlu
dGVybmFscy5zY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoKTsNCisgICAgICAgIH0NCisgICAgICAg
IA0KKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBzdGFydFRlc3QsIGZh
bHNlKTsNCisgICAgPC9zY3JpcHQ+DQorPC9oZWFkPg0KKzxib2R5Pg0KKyAgICANCisgICAgPGRp
diBpZD0iY29udGFpbmVyIj4NCisgICAgICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvZG9jLXdp
dGgtc3RpY2t5Lmh0bWwiIHdpZHRoPSI1MDAiIGhlaWdodD0iMzAwIj48L2lmcmFtZT4NCisgICAg
PC9kaXY+DQorPHByZSBpZD0idHJlZSI+U2Nyb2xsaW5nIHRyZWUgZ29lcyBoZXJlPC9wcmU+DQor
PC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL2ZyYW1lcy9yZXNvdXJjZXMvZG9jLXdpdGgtc3Rp
Y2t5Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL2ZyYW1lcy9yZXNvdXJjZXMvZG9jLXdpdGgtc3RpY2t5Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZThiZWY1OWI5MTg4Y2ZjNjY0Y2I1ZjVhZGM0YmQ1ZDQzMmM2Mzc1NwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcv
ZnJhbWVzL3Jlc291cmNlcy9kb2Mtd2l0aC1zdGlja3kuaHRtbApAQCAtMCwwICsxLDM1IEBACis8
IURPQ1RZUEUgaHRtbD4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIC5i
b3ggeworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDBw
eDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIC5zcGFjZXIgeworICAgICAgICAgICAgaGVpZ2h0OiA0MDBweDsKKyAgICAg
ICAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZl
cjsKKyAgICAgICAgfQorICAgICAgICAuc3RpY2t5IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiAt
d2Via2l0LXN0aWNreTsKKyAgICAgICAgICAgIHRvcDogMTBweDsKKyAgICAgICAgfQorICAgICAg
ICAKKyAgICAgICAgLmNvbXBvc2l0ZWQgeworICAgICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06
IHRyYW5zbGF0ZVooMCk7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
CisgICAgPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzcGFjZXIi
PjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InN0aWNreSBib3giPjwvZGl2PgorICAgIDxkaXYgY2xh
c3M9InNwYWNlciI+PC9kaXY+CisgICAgPGRpdiBjbGFzcz0ic3BhY2VyIj48L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJjb21wb3NpdGVkIGJveCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="257245"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>