<?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>172838</bug_id>
          
          <creation_ts>2017-06-01 15:59:46 -0700</creation_ts>
          <short_desc>Allow clients to override viewport size for CSS viewport units.</short_desc>
          <delta_ts>2017-06-02 11:38:22 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1314857</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2017-06-01 15:59:46 -0700</bug_when>
    <thetext>vh, vw etc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314859</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-06-01 16:00:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/32523441&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314873</commentid>
    <comment_count>2</comment_count>
      <attachid>311774</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-06-01 16:21:35 -0700</bug_when>
    <thetext>Created attachment 311774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314878</commentid>
    <comment_count>3</comment_count>
      <attachid>311774</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-06-01 16:29:05 -0700</bug_when>
    <thetext>Comment on attachment 311774
Patch

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

&gt; Source/WebKit2/ChangeLog:11
&gt; +        This enables auto-sizing clients to ensure that styles relative to the viewport are
&gt; +        resolved to a set value (presumably the size of the container) as opposed to the preferred
&gt; +        document size (which is set as the FrameView size).

How does this relate to fixedLayoutSize? Could we use that as something to resolve viewport units against?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314889</commentid>
    <comment_count>4</comment_count>
      <attachid>311774</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-01 16:54:29 -0700</bug_when>
    <thetext>Comment on attachment 311774
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:883
&gt; +    std::optional&lt;WebCore::IntSize&gt; viewportSizeForCSSViewportUnits() { return m_viewportSizeForCSSViewportUnits; }

const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1314941</commentid>
    <comment_count>5</comment_count>
      <attachid>311798</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-06-01 20:28:48 -0700</bug_when>
    <thetext>Created attachment 311798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315131</commentid>
    <comment_count>6</comment_count>
      <attachid>311798</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-02 11:38:20 -0700</bug_when>
    <thetext>Comment on attachment 311798
Patch

Clearing flags on attachment: 311798

Committed r217725: &lt;http://trac.webkit.org/changeset/217725&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1315132</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-02 11:38:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311774</attachid>
            <date>2017-06-01 16:21:35 -0700</date>
            <delta_ts>2017-06-01 20:28:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172838-20170601162134.patch</filename>
            <type>text/plain</type>
            <size>22587</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGFiYzk3YjFlNzc3YTE5
MzFmMDRjOWQ5ZWMzOTcyOWM4ZDkzMzYwZC4uM2JhZjBhYjg5NDlhMzRkNzFlMmZjOWZiMTY2ZTA5
YTllZjkyMjZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE3LTA2LTAxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY2xpZW50cyB0byBv
dmVycmlkZSB2aWV3cG9ydCBzaXplIGZvciBDU1Mgdmlld3BvcnQgdW5pdHMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI4MzgKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMyNTIzNDQxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgZW5hYmxlcyBhdXRvLXNpemluZyBjbGllbnRzIHRvIGVuc3Vy
ZSB0aGF0IHN0eWxlcyByZWxhdGl2ZSB0byB0aGUgdmlld3BvcnQgYXJlCisgICAgICAgIHJlc29s
dmVkIHRvIGEgc2V0IHZhbHVlIChwcmVzdW1hYmx5IHRoZSBzaXplIG9mIHRoZSBjb250YWluZXIp
IGFzIG9wcG9zZWQgdG8gdGhlIHByZWZlcnJlZAorICAgICAgICBkb2N1bWVudCBzaXplICh3aGlj
aCBpcyBzZXQgYXMgdGhlIEZyYW1lVmlldyBzaXplKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRz
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6c2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjptX2NwdUxpbWl0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0Vmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW46CisKIDIwMTctMDUtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgS2V5Ym9hcmQgYXV0b2NvcnJlY3Rpb25zIGRvIG5vdCBhcHBseSB3aXRo
IGFuIGFjdGl2ZSBzZWxlY3Rpb24gKGJ1dCBrZXlib2FyZCBhY3RzIGxpa2UgdGhleSBkaWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKaW5kZXggZGQxODRjMTI5ZDAxZWVkODAwMzlmNDA4YmIwNGNlYWRhYjAzOWVlMi4uODU2ZDgw
NTc3YTc5ODkxMDdkNTA5NmM3OTkxNTNkNjJmZWYyMDNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNjUsNiArNjUs
NyBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtYXlTdGFydE1lZGlhV2hlbkluV2luZG93
OwogICAgIGVuY29kZXIgPDwgbWluaW11bUxheW91dFNpemU7CiAgICAgZW5jb2RlciA8PCBhdXRv
U2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OworICAgIGVuY29kZXIgPDwgdmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0czsKICAgICBlbmNvZGVyLmVuY29kZUVudW0oc2Nyb2xsUGlu
bmluZ0JlaGF2aW9yKTsKICAgICBlbmNvZGVyIDw8IHNjcm9sbGJhck92ZXJsYXlTdHlsZTsKICAg
ICBlbmNvZGVyIDw8IGJhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZTsKQEAgLTE3Nyw2ICsxNzgs
OCBAQCBib29sIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIFdlYlBhZ2VDcmVhdGlvblBhcgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1Zp
ZXdIZWlnaHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocGFyYW1ldGVycy5zY3Jv
bGxQaW5uaW5nQmVoYXZpb3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNjcm9sbGJhck92ZXJsYXlTdHlsZSkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBiYWQ0
ZDVlN2Q4Y2RjMWVhOTNmNzM0ZTkxYTg0ODIwNTlkMzNhZjFlLi5lMTI2NmQ2MjE5NTlkYjNjNzhh
NDJjZDZjMDY2ZDYyNzE3NTlhZTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEwOCw2ICsxMDgsNyBAQCBzdHJ1Y3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIG1pbmltdW1M
YXlvdXRTaXplOwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodDsK
KyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+IHZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHM7CiAgICAgCiAgICAgV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHNj
cm9sbFBpbm5pbmdCZWhhdmlvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA2NDkyZGZmMWYzNmI3MDUzYjA5YTBmMWFjODg3OTAx
MWFkZTBjODVhLi5hZmE1MTJkY2EwOGUzMjBlNDdiYzYwNTE1OGQzNjhjZDRkMGE4ZTMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAt
MTA0Nyw2ICsxMDQ3LDIwIEBAIC0gKHZvaWQpc2V0QWxsb3dzTGlua1ByZXZpZXc6KEJPT0wpYWxs
b3dzTGlua1ByZXZpZXcKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiB9CiAKKy0gKENHU2l6ZSlf
dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cworeworICAgIHJldHVybiBfcGFnZS0+dmll
d3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpOworfQorCistICh2b2lkKV9zZXRWaWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOihDR1NpemUpdmlld3BvcnRTaXplCit7CisgICAgYXV0
byB2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzID0gV2ViQ29yZTo6SW50U2l6ZSh2aWV3cG9y
dFNpemUpOworICAgIGlmICh2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLmlzRW1wdHkoKSkK
KyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZv
cm1hdDpAIlZpZXdwb3J0IHNpemUgc2hvdWxkIG5vdCBiZSBlbXB0eSJdOworCisgICAgX3BhZ2Ut
PnNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHModmlld3BvcnRTaXplRm9yVmlld3Bv
cnRVbml0cyk7Cit9CisKICNwcmFnbWEgbWFyayBpT1Mtc3BlY2lmaWMgbWV0aG9kcwogCiAjaWYg
UExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCAyNjY2MmVkMDUzNTAzNWI0MTM0NjNhMmE5NTJl
ZGEyZTEzZmQ0NGVhLi43OTMwNGM1ZDU2YWM2ZmY3ZDFiN2MwZGJmOTMyMDE2YTNlODY3MjRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaApAQCAtMTQ0LDYgKzE0NCw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIC8vIEZvciB1c2Ugd2l0aCBfbGF5b3V0TW9kZSA9
IF9XS0xheW91dE1vZGVGaXhlZFNpemU6CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRGaXhlZExheW91dFNpemU6KSBDR1NpemUgX2ZpeGVkTGF5b3V0U2l6ZTsKIAorQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czop
IENHU2l6ZSBfdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW8oV0tfSU9TX1RCQSkpOworCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc2V0dGVyPV9zZXRWaWV3U2NhbGU6KSBDR0Zsb2F0IF92aWV3U2NhbGU7CiAKICNpZiBU
QVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IGJkNzg2NGQxYjIwNWMyNWQ4YzIxZmU5NWYxZjJjZjY2ZjE0NzI5NWQuLjhiYzc1OGFj
ODEyODI3ZmY4NWJjNjEwN2NiZDgzMzczM2U2OTdkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01NTYwLDYgKzU1NjAsNyBAQCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKCkKICAgICBwYXJh
bWV0ZXJzLm1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3cgPSBtX21heVN0YXJ0TWVkaWFXaGVuSW5X
aW5kb3c7CiAgICAgcGFyYW1ldGVycy5taW5pbXVtTGF5b3V0U2l6ZSA9IG1fbWluaW11bUxheW91
dFNpemU7CiAgICAgcGFyYW1ldGVycy5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0
ID0gbV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OworICAgIHBhcmFtZXRlcnMu
dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyA9IG1fdmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0czsKICAgICBwYXJhbWV0ZXJzLnNjcm9sbFBpbm5pbmdCZWhhdmlvciA9IG1fc2Ny
b2xsUGlubmluZ0JlaGF2aW9yOwogICAgIGlmIChtX3Njcm9sbGJhck92ZXJsYXlTdHlsZSkKICAg
ICAgICAgcGFyYW1ldGVycy5zY3JvbGxiYXJPdmVybGF5U3R5bGUgPSBtX3Njcm9sbGJhck92ZXJs
YXlTdHlsZS52YWx1ZSgpOwpAQCAtNjA4NCw2ICs2MDg1LDE5IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpzZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KGJvb2wgc2hvdWxkRXhwYW5k
KQogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0QXV0b1NpemluZ1No
b3VsZEV4cGFuZFRvVmlld0hlaWdodChzaG91bGRFeHBhbmQpLCBtX3BhZ2VJRCk7CiB9CiAKK3Zv
aWQgV2ViUGFnZVByb3h5OjpzZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKGNvbnN0
IEludFNpemUmIHZpZXdwb3J0U2l6ZSkKK3sKKyAgICBpZiAobV92aWV3cG9ydFNpemVGb3JDU1NW
aWV3cG9ydFVuaXRzICYmICptX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMgPT0gdmll
d3BvcnRTaXplKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHMgPSB2aWV3cG9ydFNpemU7CisKKyAgICBpZiAoIWlzVmFsaWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRW
aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKHZpZXdwb3J0U2l6ZSksIG1fcGFnZUlEKTsK
K30KKwogI2lmIFVTRShBVVRPTUFUSUNfVEVYVF9SRVBMQUNFTUVOVCkKIAogdm9pZCBXZWJQYWdl
UHJveHk6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAppbmRleCA4MjMwMTdmYzM3ZTIyNDA4NzcxODIzMzY0ZjVjYjMzYTA1Njgz
MjljLi45NjFkZGMyYzBiZjE0OTkxNzk5ZDUwNTg0YTY0YzFiYjEzM2U1MzJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMDAzLDYgKzEwMDMsOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBhdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gbV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OyB9CiAgICAgdm9p
ZCBzZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KGJvb2wpOwogCisgICAgdm9p
ZCBzZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMudmFs
dWVfb3IoV2ViQ29yZTo6SW50U2l6ZSgpKTsgfQorCiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VQcm94eSh1aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRp
b25DaGFsbGVuZ2VQcm94eT4mJik7CiAKICAgICBpbnQ2NF90IHNwZWxsRG9jdW1lbnRUYWcoKTsK
QEAgLTE4OTksNiArMTkwMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3N1cHByZXNzVmlzaWJp
bGl0eVVwZGF0ZXM7CiAgICAgYm9vbCBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWln
aHQ7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX21pbmltdW1MYXlvdXRTaXplOworICAgIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzOwogCiAgICAgLy8gVmlzdWFsIHZpZXdwb3J0cwogICAgIFdlYkNvcmU6OkxheW91dFNpemUg
bV9iYXNlTGF5b3V0Vmlld3BvcnRTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAppbmRleCAxYzJiYTQ3MGYzMTExMGJiOTJmMTI3MDExZmEzNzRlYjViMTBkNmU0Li4wZmZkMmZl
YmZhMThkYWRiNDcxMmIyODg5NWY5MTRmNWYwODEyMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcApAQCAtMTM2NSw2ICsxMzY1LDggQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNs
aWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgICAgICAgICBtX2Zy
YW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5zZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodCh3
ZWJQYWdlLT5zaXplKCkuaGVpZ2h0KCkpOwogICAgIH0KIAorICAgIGlmIChhdXRvIHZpZXdwb3J0
U2l6ZUZvclZpZXdwb3J0VW5pdHMgPSB3ZWJQYWdlLT52aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9y
dFVuaXRzKCkpCisgICAgICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCktPnNldFZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoKnZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMp
OwogICAgIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT52aWV3KCktPnNldFByb2hpYml0c1Njcm9sbGlu
ZyhzaG91bGREaXNhYmxlU2Nyb2xsaW5nKTsKICAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmll
dygpLT5zZXRWaXN1YWxVcGRhdGVzQWxsb3dlZEJ5Q2xpZW50KCF3ZWJQYWdlLT5zaG91bGRFeHRl
bmRJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uKCkpOwogI2lmIFBMQVRGT1JNKENPQ09B
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IDMxMTAwOTRlMWEzYmFiYjcyYWM0YmU5MzAzODU3NDgyNDhjOGFjNTAuLjM2ZDFlMDE4ZmQ2YzNl
YTYyMWE2YjRmNDcxMWY4OTg1Yzc0ODEwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ4NCw2ICs0ODQsNyBAQCBXZWJQYWdlOjpXZWJQ
YWdlKHVpbnQ2NF90IHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMpCiAKICAgICBzZXRNaW5pbXVtTGF5b3V0U2l6ZShwYXJhbWV0ZXJzLm1pbmltdW1MYXlvdXRT
aXplKTsKICAgICBzZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KHBhcmFtZXRl
cnMuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCk7CisgICAgc2V0Vmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0cyhwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHMpOwogICAgIAogICAgIHNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihwYXJhbWV0ZXJz
LnNjcm9sbFBpbm5pbmdCZWhhdmlvcik7CiAgICAgaWYgKHBhcmFtZXRlcnMuc2Nyb2xsYmFyT3Zl
cmxheVN0eWxlKQpAQCAtNTIwOSw2ICs1MjEwLDE2IEBAIHZvaWQgV2ViUGFnZTo6c2V0QXV0b1Np
emluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3VsZEV4cGFuZCkKICAgICBjb3Jl
UGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPnNldEF1dG9TaXplRml4ZWRNaW5pbXVtSGVpZ2h0
KHNob3VsZEV4cGFuZCA/IG1fdmlld1NpemUuaGVpZ2h0KCkgOiAwKTsKIH0KIAordm9pZCBXZWJQ
YWdlOjpzZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6SW50U2l6ZT4gdmlld3BvcnRTaXplKQoreworICAgIGlmIChtX3ZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHMgPT0gdmlld3BvcnRTaXplKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMgPSB2aWV3cG9ydFNpemU7CisgICAg
aWYgKG1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cykKKyAgICAgICAgY29yZVBhZ2Uo
KS0+bWFpbkZyYW1lKCkudmlldygpLT5zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRz
KCptX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpOworfQorCiBib29sIFdlYlBhZ2U6
OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKICAgICByZXR1cm4gbV9wYWdlLT5zZXR0
aW5ncygpLnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggOGQ4N2QzYjAyN2U3M2UxYmU0MzI4MDAzM2U5
NzMzZmMwOGI2MzQzOC4uZmZkZWE3N2FlNGVhNjA4Mjc1YmQ1MDIxOTI3YjI3ZGVlODg3YTNjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC04Nzks
NiArODc5LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodChib29sIHNob3VsZEV4cGFuZCk7CiAgICAgYm9vbCBhdXRvU2l6aW5nU2hvdWxk
RXhwYW5kVG9WaWV3SGVpZ2h0KCkgeyByZXR1cm4gbV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9W
aWV3SGVpZ2h0OyB9CiAKKyAgICB2b2lkIHNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPik7CisgICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpJbnRTaXplPiB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCkgeyByZXR1
cm4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOyB9CisKICAgICBib29sIGNhblNo
b3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdDsKIAogICAgIHZvaWQgYWRk
VGV4dENoZWNraW5nUmVxdWVzdCh1aW50NjRfdCByZXF1ZXN0SUQsIFJlZjxXZWJDb3JlOjpUZXh0
Q2hlY2tpbmdSZXF1ZXN0PiYmKTsKQEAgLTE0NTYsNiArMTQ1OSw3IEBAIHByaXZhdGU6CiAKICAg
ICBXZWJDb3JlOjpJbnRTaXplIG1fbWluaW11bUxheW91dFNpemU7CiAgICAgYm9vbCBtX2F1dG9T
aXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQgeyBmYWxzZSB9OworICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwog
CiAgICAgYm9vbCBtX3VzZXJJc0ludGVyYWN0aW5nIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNB
c3Npc3RpbmdOb2RlRHVlVG9Vc2VySW50ZXJhY3Rpb24geyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRl
eCAyMmY0ZWRiNTkyYjNiZWZjYjU2NDk2Njk3Njc5YjEyMjFkYzRkZGQ4Li42YmViNjFjZGM3MjVm
NTBjMWU2MDQyYjBmOTk5YjI2ODZkZGM5ZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzk5LDYgKzM5OSw4
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldE1pbmltdW1M
YXlvdXRTaXplKFdlYkNvcmU6OkludFNpemUgbWluaW11bUxheW91dFNpemUpCiAgICAgU2V0QXV0
b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3VsZEV4cGFuZCkKIAorICAg
IFNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpJbnRTaXplPiB2aWV3cG9ydFNpemUpCisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBIYW5k
bGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChTdHJpbmcgcmVzdWx0KQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTU5ODk2NmQ5ZmY5
MzMwMTdlZWQ4YzllNTk4NzI0ZmNlNGU1ODI4Yy4uODBlNTg4ZmU0NDUxMThiNGUzMmY4MTUzMTkw
NzI4ZDIwOTczZWY4MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA2LTAxICBaYWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY2xpZW50cyB0byBvdmVycmlkZSB2aWV3cG9y
dCBzaXplIGZvciBDU1Mgdmlld3BvcnQgdW5pdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI4MzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMy
NTIzNDQxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1ZpZXdwb3J0U2l6ZUZvclZp
ZXdwb3J0VW5pdHMubW06IEFkZGVkLgorICAgICAgICAoVEVTVCk6CisKIDIwMTctMDUtMzAgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgS2V5Ym9hcmQg
YXV0b2NvcnJlY3Rpb25zIGRvIG5vdCBhcHBseSB3aXRoIGFuIGFjdGl2ZSBzZWxlY3Rpb24gKGJ1
dCBrZXlib2FyZCBhY3RzIGxpa2UgdGhleSBkaWQpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDc1NWYxZGU0MWY4OGYxZDIxNGU1ODFjZWEyNzlkZjMxYTRjYTFhNjkuLjFjNGIzMjQ3MDI2OWI4
MDgyMmNlNTE3MDQ2NDJkZmMwZDNjM2UzMDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0z
NCw2ICszNCw3IEBACiAJCTBGMkMyMEI4MURDRDU0NTAwMDU0MkQ5RSAvKiBUaW1lLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMkMyMEI3MURDRDU0
NDgwMDU0MkQ5RSAvKiBUaW1lLmNwcCAqLzsgfTsKIAkJMEYzQjk0QTcxQTc3MjY3NDAwREUzMjcy
IC8qIFdLV2ViVmlld0V2YWx1YXRlSmF2YVNjcmlwdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGM0I5NEE1MUE3NzI2NkMwMERFMzI3MiAvKiBXS1dl
YlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0gKi87IH07CiAJCTBGNEZGQTlFMUVEM0FBODUwMEY3
MTExRiAvKiBTbmFwc2hvdFZpYVJlbmRlckluQ29udGV4dC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNEZGQTlEMUVEM0FBODUwMEY3MTExRiAvKiBT
bmFwc2hvdFZpYVJlbmRlckluQ29udGV4dC5tbSAqLzsgfTsKKwkJMTE1RUIzNDMxRUUwQkEwMzAw
M0MyQzBBIC8qIFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMTVFQjM0MjFFRTBCNzIwMDAzQzJDMEEg
LyogVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cy5tbSAqLzsgfTsKIAkJMUEwMkM4NzAxMjVE
NENGRDAwRTNGNEJEIC8qIGZpbmQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTAyQzg0QjEyNUQ0QTVFMDBFM0Y0QkQgLyogZmluZC5o
dG1sICovOyB9OwogCQkxQTM1MjRBRTFENjNBNEZCMDAzMTcyOUIgLyogU2NvcGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEzNTI0QUMxRDYzQTRG
QjAwMzE3MjlCIC8qIFNjb3BlLmNwcCAqLzsgfTsKIAkJMUE0RjgxQ0YxQkRGRkQ1MzAwNEU2NzJF
IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5UGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0RjgxQ0QxQkRGRkQ1MzAwNEU2NzJFIC8qIFJlbW90
ZU9iamVjdFJlZ2lzdHJ5UGx1Z0luLm1tICovOyB9OwpAQCAtOTIyLDYgKzkyMyw3IEBACiAJCTBG
RTQ0Nzk3MUI3NkYxRTMwMDk0OThFQiAvKiBQYXJraW5nTG90LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhcmtpbmdMb3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRkVBRTM2NzFCN0QxOUNCMDBDRTE3RjIgLyogQ29uZGl0aW9uLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbmRpdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRkM0NUE0MUI3M0VCRTIwMDg1QkQ2MiAvKiBMb2NrLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvY2suY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxMTVFQjM0MjFFRTBCNzIwMDAzQzJDMEEgLyogVmlld3Bv
cnRTaXplRm9yVmlld3BvcnRVbml0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTE0NDY0MDEyMTY3QTgzMDUwMDBCRDIxOCAvKiBMYXlvdXRVbml0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dFVuaXQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEYzQjExMjE1RTQ1RUFCMDAyMTAwNjkgLyog
U2F0dXJhdGVkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2F0dXJhdGVkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQTAyQzg0QjEyNUQ0QTVFMDBFM0Y0QkQgLyogZmluZC5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gZmluZC5odG1sOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjE1Myw2ICsyMTU1LDcgQEAKIAkJCQk5M0FGNEVDQTE1MDZGMDM1
MDA3RkQ1N0UgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzLmNwcCAq
LywKIAkJCQk5M0FGNEVDRDE1MDZGMDY0MDA3RkQ1N0UgLyogTmV3Rmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0Rm9ySW1hZ2VzX0J1bmRsZS5jcHAgKi8sCiAJCQkJOTNGN0U4NkIxNERDOEU0RDAw
Qzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lcy5jcHAgKi8sCisJ
CQkJMTE1RUIzNDIxRUUwQjcyMDAwM0MyQzBBIC8qIFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5p
dHMubW0gKi8sCiAJCQkJOTNGN0U4NkUxNERDOEU1QjAwQzg0QTk5IC8qIE5ld0ZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwICovLAogCQkJCTdDQ0I0REE3MUM4M0FF
NzMwMENDNjkxOCAvKiBQYWdlR3JvdXAuY3BwICovLAogCQkJCUJDOTA5Nzc5MTI1NTcxQUIwMDA4
Mzc1NiAvKiBQYWdlTG9hZEJhc2ljLmNwcCAqLywKQEAgLTI5MDYsNiArMjkwOSw3IEBACiAJCQkJ
NTE5OEEyNDAxRUE3RTU5RjAwODkxMEI3IC8qIEluaXRpYWxXYXJtZWRQcm9jZXNzVXNlZC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUJDMUE0MTFBN0UwMDQ0N0M0QyAvKiBET01Ob2RlRnJv
bUpTT2JqZWN0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQkQxQTQxMUE3RTAwNDQ3QzRD
IC8qIERPTVJhbmdlT2ZTdHJpbmcubW0gaW4gU291cmNlcyAqLywKKwkJCQkxMTVFQjM0MzFFRTBC
QTAzMDAzQzJDMEEgLyogVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTM3RTdERDY0MUVBMDZGRjIwMDlCMzk2RCAvKiBBZGRpdGlvbmFsUmVhZEFjY2Vz
c0FsbG93ZWRVUkxzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRUMxQTQxMUFFNjAwNDQ3
QzRDIC8qIERPTVdpbmRvd0V4dGVuc2lvbkJhc2ljLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdD
Q0U3RUVEMUE0MTFBRTYwMDQ0N0M0QyAvKiBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyL1ZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDIvVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cy5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hMmRiMzYyYTczOTAxZjQzYmNkYjgwYmEwOWQ3MTAyNTlhNzcwMDUzCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyL1ZpZXdwb3J0U2l6ZUZvclZp
ZXdwb3J0VW5pdHMubW0KQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0
TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlcy5oPgor
I2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK3N0YXRpYyBib29sIHZpZXdwb3J0U2l6ZVRl
c3REb25lOworCitURVNUKFdlYktpdDIsIFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMpCit7
CisgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAxMDAsIDEwMCldKTsKKworICAg
IC8vIE5vIF9zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzIGNhbGwgLT4gb3JpZ2lu
YWwgc2l6ZSBpcyB1c2VkICgxMDBweCAxMDBweCkuCisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJp
bmc6QCI8ZGl2IGlkPWRpdldpdGhWaWV3cG9ydFVuaXRzIHN0eWxlPSd3aWR0aDogOTl2dzsnPjwv
ZGl2PiIgYmFzZVVSTDpuaWxdOworICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hO
YXZpZ2F0aW9uXTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGl2V2l0aFZpZXdwb3J0VW5p
dHMnKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnd2lkdGgnKSIgY29tcGxldGlvbkhhbmRsZXI6
XihOU1N0cmluZyAqcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBFWFBFQ1RfU1RS
RVEoIjk5cHgiLCBbcmVzdWx0IFVURjhTdHJpbmddKTsKKyAgICAgICAgdmlld3BvcnRTaXplVGVz
dERvbmUgPSB0cnVlOworICAgIH1dOworICAgIHZpZXdwb3J0U2l6ZVRlc3REb25lID0gZmFsc2U7
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZ2aWV3cG9ydFNpemVUZXN0RG9uZSk7CisK
KyAgICAvLyB2aWV3cG9ydCB3aWR0aCBpcyA1MHB4LgorICAgIFt3ZWJWaWV3IF9zZXRWaWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOk5TTWFrZVNpemUoNTAsIDUwKV07CisgICAgW3dlYlZp
ZXcgbG9hZEhUTUxTdHJpbmc6QCI8ZGl2IGlkPWRpdldpdGhWaWV3cG9ydFVuaXRzIHN0eWxlPSd3
aWR0aDogNTB2dzsnPjwvZGl2PiIgYmFzZVVSTDpuaWxdOworICAgIFt3ZWJWaWV3IF90ZXN0X3dh
aXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNj
cmlwdDpAIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdk
aXZXaXRoVmlld3BvcnRVbml0cycpLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCd3aWR0aCcpIiBj
b21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7Cisg
ICAgICAgIEVYUEVDVF9TVFJFUSgiMjVweCIsIFtyZXN1bHQgVVRGOFN0cmluZ10pOworICAgICAg
ICB2aWV3cG9ydFNpemVUZXN0RG9uZSA9IHRydWU7CisgICAgfV07CisgICAgdmlld3BvcnRTaXpl
VGVzdERvbmUgPSBmYWxzZTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnZpZXdwb3J0
U2l6ZVRlc3REb25lKTsKKworICAgIC8vIHZpZXdwb3J0IGhlaWdodCAxMHB4LgorICAgIFt3ZWJW
aWV3IF9zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOk5TTWFrZVNpemUoMTAsIDEw
KV07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8ZGl2IGlkPWRpdldpdGhWaWV3cG9y
dFVuaXRzIHN0eWxlPSdoZWlnaHQ6IDEwdmg7Jz48L2Rpdj4iIGJhc2VVUkw6bmlsXTsKKyAgICBb
d2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisKKyAgICBbd2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZGl2V2l0aFZpZXdwb3J0VW5pdHMnKSwgbnVsbCkuZ2V0UHJvcGVydHlW
YWx1ZSgnaGVpZ2h0JykiIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNTdHJpbmcgKnJlc3VsdCwgTlNF
cnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQRUNUX1NUUkVRKCIxcHgiLCBbcmVzdWx0IFVURjhT
dHJpbmddKTsKKyAgICAgICAgdmlld3BvcnRTaXplVGVzdERvbmUgPSB0cnVlOworICAgIH1dOwor
ICAgIHZpZXdwb3J0U2l6ZVRlc3REb25lID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZ2aWV3cG9ydFNpemVUZXN0RG9uZSk7CisKKyAgICBib29sIGV4Y2VwdGlvblJhaXNl
ZCA9IGZhbHNlOworICAgIEB0cnkgeworICAgICAgICBbd2ViVmlldyBfc2V0Vmlld3BvcnRTaXpl
Rm9yQ1NTVmlld3BvcnRVbml0czpOU01ha2VTaXplKC0xLCAxMCldOworICAgIH0gQGNhdGNoIChO
U0V4Y2VwdGlvbiAqZXhjZXB0aW9uKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShOU0ludmFs
aWRBcmd1bWVudEV4Y2VwdGlvbiwgZXhjZXB0aW9uLm5hbWUpOworICAgICAgICBleGNlcHRpb25S
YWlzZWQgPSB0cnVlOworICAgIH0KKyAgICBFWFBFQ1RfVFJVRShleGNlcHRpb25SYWlzZWQpOwor
CisgICAgZXhjZXB0aW9uUmFpc2VkID0gZmFsc2U7CisgICAgQHRyeSB7CisgICAgICAgIFt3ZWJW
aWV3IF9zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOk5TTWFrZVNpemUoMTAsIDAp
XTsKKyAgICB9IEBjYXRjaCAoTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgeworICAgICAgICBFWFBF
Q1RfV0tfU1RSRVEoTlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24sIGV4Y2VwdGlvbi5uYW1lKTsK
KyAgICAgICAgZXhjZXB0aW9uUmFpc2VkID0gdHJ1ZTsKKyAgICB9CisgICAgRVhQRUNUX1RSVUUo
ZXhjZXB0aW9uUmFpc2VkKTsKKworICAgIGV4Y2VwdGlvblJhaXNlZCA9IGZhbHNlOworICAgIEB0
cnkgeworICAgICAgICBbd2ViVmlldyBfc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0
czpOU01ha2VTaXplKDAuNSwgMC41KV07CisgICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpleGNl
cHRpb24pIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKE5TSW52YWxpZEFyZ3VtZW50RXhjZXB0
aW9uLCBleGNlcHRpb24ubmFtZSk7CisgICAgICAgIGV4Y2VwdGlvblJhaXNlZCA9IHRydWU7Cisg
ICAgfQorICAgIEVYUEVDVF9UUlVFKGV4Y2VwdGlvblJhaXNlZCk7CisKKyAgICBleGNlcHRpb25S
YWlzZWQgPSBmYWxzZTsKKyAgICBAdHJ5IHsKKyAgICAgICAgW3dlYlZpZXcgX3NldFZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHM6TlNNYWtlU2l6ZSgxLCAxKV07CisgICAgfSBAY2F0Y2gg
KE5TRXhjZXB0aW9uICpleGNlcHRpb24pIHsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKE5TSW52
YWxpZEFyZ3VtZW50RXhjZXB0aW9uLCBleGNlcHRpb24ubmFtZSk7CisgICAgICAgIGV4Y2VwdGlv
blJhaXNlZCA9IHRydWU7CisgICAgfQorICAgIEVYUEVDVF9GQUxTRShleGNlcHRpb25SYWlzZWQp
OworfQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311798</attachid>
            <date>2017-06-01 20:28:48 -0700</date>
            <delta_ts>2017-06-02 11:38:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172838-20170601202845.patch</filename>
            <type>text/plain</type>
            <size>22594</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3NTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGFiYzk3YjFlNzc3YTE5
MzFmMDRjOWQ5ZWMzOTcyOWM4ZDkzMzYwZC4uM2JhZjBhYjg5NDlhMzRkNzFlMmZjOWZiMTY2ZTA5
YTllZjkyMjZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE3LTA2LTAxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY2xpZW50cyB0byBv
dmVycmlkZSB2aWV3cG9ydCBzaXplIGZvciBDU1Mgdmlld3BvcnQgdW5pdHMuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzI4MzgKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMyNTIzNDQxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgZW5hYmxlcyBhdXRvLXNpemluZyBjbGllbnRzIHRvIGVuc3Vy
ZSB0aGF0IHN0eWxlcyByZWxhdGl2ZSB0byB0aGUgdmlld3BvcnQgYXJlCisgICAgICAgIHJlc29s
dmVkIHRvIGEgc2V0IHZhbHVlIChwcmVzdW1hYmx5IHRoZSBzaXplIG9mIHRoZSBjb250YWluZXIp
IGFzIG9wcG9zZWQgdG8gdGhlIHByZWZlcnJlZAorICAgICAgICBkb2N1bWVudCBzaXplICh3aGlj
aCBpcyBzZXQgYXMgdGhlIEZyYW1lVmlldyBzaXplKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHNdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRz
Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6c2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjptX2NwdUxpbWl0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0Vmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW46CisKIDIwMTctMDUtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgS2V5Ym9hcmQgYXV0b2NvcnJlY3Rpb25zIGRvIG5vdCBhcHBseSB3aXRo
IGFuIGFjdGl2ZSBzZWxlY3Rpb24gKGJ1dCBrZXlib2FyZCBhY3RzIGxpa2UgdGhleSBkaWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAKaW5kZXggZGQxODRjMTI5ZDAxZWVkODAwMzlmNDA4YmIwNGNlYWRhYjAzOWVlMi4uODU2ZDgw
NTc3YTc5ODkxMDdkNTA5NmM3OTkxNTNkNjJmZWYyMDNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNjUsNiArNjUs
NyBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtYXlTdGFydE1lZGlhV2hlbkluV2luZG93
OwogICAgIGVuY29kZXIgPDwgbWluaW11bUxheW91dFNpemU7CiAgICAgZW5jb2RlciA8PCBhdXRv
U2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OworICAgIGVuY29kZXIgPDwgdmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0czsKICAgICBlbmNvZGVyLmVuY29kZUVudW0oc2Nyb2xsUGlu
bmluZ0JlaGF2aW9yKTsKICAgICBlbmNvZGVyIDw8IHNjcm9sbGJhck92ZXJsYXlTdHlsZTsKICAg
ICBlbmNvZGVyIDw8IGJhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZTsKQEAgLTE3Nyw2ICsxNzgs
OCBAQCBib29sIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIFdlYlBhZ2VDcmVhdGlvblBhcgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1Zp
ZXdIZWlnaHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocGFyYW1ldGVycy5zY3Jv
bGxQaW5uaW5nQmVoYXZpb3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNjcm9sbGJhck92ZXJsYXlTdHlsZSkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBiYWQ0
ZDVlN2Q4Y2RjMWVhOTNmNzM0ZTkxYTg0ODIwNTlkMzNhZjFlLi5lMTI2NmQ2MjE5NTlkYjNjNzhh
NDJjZDZjMDY2ZDYyNzE3NTlhZTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTEwOCw2ICsxMDgsNyBAQCBzdHJ1Y3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIG1pbmltdW1M
YXlvdXRTaXplOwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodDsK
KyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+IHZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHM7CiAgICAgCiAgICAgV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHNj
cm9sbFBpbm5pbmdCZWhhdmlvcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA2NDkyZGZmMWYzNmI3MDUzYjA5YTBmMWFjODg3OTAx
MWFkZTBjODVhLi5hZmE1MTJkY2EwOGUzMjBlNDdiYzYwNTE1OGQzNjhjZDRkMGE4ZTMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAt
MTA0Nyw2ICsxMDQ3LDIwIEBAIC0gKHZvaWQpc2V0QWxsb3dzTGlua1ByZXZpZXc6KEJPT0wpYWxs
b3dzTGlua1ByZXZpZXcKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiB9CiAKKy0gKENHU2l6ZSlf
dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cworeworICAgIHJldHVybiBfcGFnZS0+dmll
d3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpOworfQorCistICh2b2lkKV9zZXRWaWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOihDR1NpemUpdmlld3BvcnRTaXplCit7CisgICAgYXV0
byB2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzID0gV2ViQ29yZTo6SW50U2l6ZSh2aWV3cG9y
dFNpemUpOworICAgIGlmICh2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLmlzRW1wdHkoKSkK
KyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZv
cm1hdDpAIlZpZXdwb3J0IHNpemUgc2hvdWxkIG5vdCBiZSBlbXB0eSJdOworCisgICAgX3BhZ2Ut
PnNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHModmlld3BvcnRTaXplRm9yVmlld3Bv
cnRVbml0cyk7Cit9CisKICNwcmFnbWEgbWFyayBpT1Mtc3BlY2lmaWMgbWV0aG9kcwogCiAjaWYg
UExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCAyNjY2MmVkMDUzNTAzNWI0MTM0NjNhMmE5NTJl
ZGEyZTEzZmQ0NGVhLi4wZTc1MTkzNWFiNWY4YjA3OThiMmM3NzNmNjBkYWIxZmE1ODU3MzNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaApAQCAtMTQ0LDYgKzE0NCw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIC8vIEZvciB1c2Ugd2l0aCBfbGF5b3V0TW9kZSA9
IF9XS0xheW91dE1vZGVGaXhlZFNpemU6CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRGaXhlZExheW91dFNpemU6KSBDR1NpemUgX2ZpeGVkTGF5b3V0U2l6ZTsKIAorQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czop
IENHU2l6ZSBfdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyBXS19BUElfQVZBSUxBQkxF
KG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKwogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0Vmlld1NjYWxlOikgQ0dGbG9hdCBfdmlld1NjYWxlOwogCiAjaWYg
VEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCBiZDc4NjRkMWIyMDVjMjVkOGMyMWZlOTVmMWYyY2Y2NmYxNDcyOTVkLi44YmM3NThh
YzgxMjgyN2ZmODViYzYxMDdjYmQ4MzM3MzNlNjk3ZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTU2MCw2ICs1NTYwLDcgQEAgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycygpCiAgICAgcGFy
YW1ldGVycy5tYXlTdGFydE1lZGlhV2hlbkluV2luZG93ID0gbV9tYXlTdGFydE1lZGlhV2hlbklu
V2luZG93OwogICAgIHBhcmFtZXRlcnMubWluaW11bUxheW91dFNpemUgPSBtX21pbmltdW1MYXlv
dXRTaXplOwogICAgIHBhcmFtZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdo
dCA9IG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodDsKKyAgICBwYXJhbWV0ZXJz
LnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMgPSBtX3ZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHM7CiAgICAgcGFyYW1ldGVycy5zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBtX3Nj
cm9sbFBpbm5pbmdCZWhhdmlvcjsKICAgICBpZiAobV9zY3JvbGxiYXJPdmVybGF5U3R5bGUpCiAg
ICAgICAgIHBhcmFtZXRlcnMuc2Nyb2xsYmFyT3ZlcmxheVN0eWxlID0gbV9zY3JvbGxiYXJPdmVy
bGF5U3R5bGUudmFsdWUoKTsKQEAgLTYwODQsNiArNjA4NSwxOSBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3VsZEV4cGFu
ZCkKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEF1dG9TaXppbmdT
aG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoc2hvdWxkRXhwYW5kKSwgbV9wYWdlSUQpOwogfQogCit2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhjb25z
dCBJbnRTaXplJiB2aWV3cG9ydFNpemUpCit7CisgICAgaWYgKG1fdmlld3BvcnRTaXplRm9yQ1NT
Vmlld3BvcnRVbml0cyAmJiAqbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzID09IHZp
ZXdwb3J0U2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV92aWV3cG9ydFNpemVGb3JDU1NW
aWV3cG9ydFVuaXRzID0gdmlld3BvcnRTaXplOworCisgICAgaWYgKCFpc1ZhbGlkKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0
Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyh2aWV3cG9ydFNpemUpLCBtX3BhZ2VJRCk7
Cit9CisKICNpZiBVU0UoQVVUT01BVElDX1RFWFRfUkVQTEFDRU1FTlQpCiAKIHZvaWQgV2ViUGFn
ZVByb3h5Ojp0b2dnbGVTbWFydEluc2VydERlbGV0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggODIzMDE3ZmMzN2UyMjQwODc3MTgyMzM2NGY1Y2IzM2EwNTY4
MzI5Yy4uOTYxZGRjMmMwYmYxNDk5MTc5OWQ1MDU4NGE2NGMxYmIxMzNlNTMyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTAwMyw2ICsxMDAzLDkgQEAgcHVi
bGljOgogICAgIGJvb2wgYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpIGNvbnN0
IHsgcmV0dXJuIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodDsgfQogICAgIHZv
aWQgc2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sKTsKIAorICAgIHZv
aWQgc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhjb25zdCBXZWJDb3JlOjpJbnRT
aXplJik7CisgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzLnZh
bHVlX29yKFdlYkNvcmU6OkludFNpemUoKSk7IH0KKwogICAgIHZvaWQgZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkodWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlUHJveHk+JiYpOwogCiAgICAgaW50NjRfdCBzcGVsbERvY3VtZW50VGFnKCk7
CkBAIC0xODk5LDYgKzE5MDIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zdXBwcmVzc1Zpc2li
aWxpdHlVcGRhdGVzOwogICAgIGJvb2wgbV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVp
Z2h0OwogICAgIFdlYkNvcmU6OkludFNpemUgbV9taW5pbXVtTGF5b3V0U2l6ZTsKKyAgICBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+IG1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRV
bml0czsKIAogICAgIC8vIFZpc3VhbCB2aWV3cG9ydHMKICAgICBXZWJDb3JlOjpMYXlvdXRTaXpl
IG1fYmFzZUxheW91dFZpZXdwb3J0U2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggMWMyYmE0NzBmMzExMTBiYjkyZjEyNzAxMWZhMzc0ZWI1YjEwZDZlNC4uMGZmZDJm
ZWJmYTE4ZGFkYjQ3MTJiMjg4OTVmOTE0ZjVmMDgxMjBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTEzNjUsNiArMTM2NSw4IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgICAgICAgICAgbV9m
cmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKS0+c2V0QXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQo
d2ViUGFnZS0+c2l6ZSgpLmhlaWdodCgpKTsKICAgICB9CiAKKyAgICBpZiAoYXV0byB2aWV3cG9y
dFNpemVGb3JWaWV3cG9ydFVuaXRzID0gd2ViUGFnZS0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3Bv
cnRVbml0cygpKQorICAgICAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5zZXRWaWV3
cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCp2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRz
KTsKICAgICBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+dmlldygpLT5zZXRQcm9oaWJpdHNTY3JvbGxp
bmcoc2hvdWxkRGlzYWJsZVNjcm9sbGluZyk7CiAgICAgbV9mcmFtZS0+Y29yZUZyYW1lKCktPnZp
ZXcoKS0+c2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNsaWVudCghd2ViUGFnZS0+c2hvdWxkRXh0
ZW5kSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvbigpKTsKICNpZiBQTEFURk9STShDT0NP
QSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCAzMTEwMDk0ZTFhM2JhYmI3MmFjNGJlOTMwMzg1NzQ4MjQ4YzhhYzUwLi4zNmQxZTAxOGZkNmMz
ZWE2MjFhNmI0ZjQ3MTFmODk4NWM3NDgxMGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00ODQsNiArNDg0LDcgQEAgV2ViUGFnZTo6V2Vi
UGFnZSh1aW50NjRfdCBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0
ZXJzKQogCiAgICAgc2V0TWluaW11bUxheW91dFNpemUocGFyYW1ldGVycy5taW5pbXVtTGF5b3V0
U2l6ZSk7CiAgICAgc2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChwYXJhbWV0
ZXJzLmF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQpOworICAgIHNldFZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMocGFyYW1ldGVycy52aWV3cG9ydFNpemVGb3JDU1NWaWV3
cG9ydFVuaXRzKTsKICAgICAKICAgICBzZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IocGFyYW1ldGVy
cy5zY3JvbGxQaW5uaW5nQmVoYXZpb3IpOwogICAgIGlmIChwYXJhbWV0ZXJzLnNjcm9sbGJhck92
ZXJsYXlTdHlsZSkKQEAgLTUyMDksNiArNTIxMCwxNiBAQCB2b2lkIFdlYlBhZ2U6OnNldEF1dG9T
aXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQpCiAgICAgY29y
ZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5zZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdo
dChzaG91bGRFeHBhbmQgPyBtX3ZpZXdTaXplLmhlaWdodCgpIDogMCk7CiB9CiAKK3ZvaWQgV2Vi
UGFnZTo6c2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OkludFNpemU+IHZpZXdwb3J0U2l6ZSkKK3sKKyAgICBpZiAobV92aWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzID09IHZpZXdwb3J0U2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzID0gdmlld3BvcnRTaXplOworICAg
IGlmIChtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpCisgICAgICAgIGNvcmVQYWdl
KCktPm1haW5GcmFtZSgpLnZpZXcoKS0+c2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0
cygqbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKTsKK30KKwogYm9vbCBXZWJQYWdl
Ojppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7CiAgICAgcmV0dXJuIG1fcGFnZS0+c2V0
dGluZ3MoKS5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDhkODdkM2IwMjdlNzNlMWJlNDMyODAwMzNl
OTczM2ZjMDhiNjM0MzguLjE5NWNjYmYxNTZiYzFjMDU1ZTUxNmQyYWEyZjk3MGY1ZDQ0YjdmODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtODc5
LDYgKzg3OSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRU
b1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQpOwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodCgpIHsgcmV0dXJuIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodDsgfQogCisgICAgdm9pZCBzZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4pOworICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6SW50U2l6ZT4gdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpIGNvbnN0
IHsgcmV0dXJuIG1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czsgfQorCiAgICAgYm9v
bCBjYW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkgY29uc3Q7CiAKICAgICB2
b2lkIGFkZFRleHRDaGVja2luZ1JlcXVlc3QodWludDY0X3QgcmVxdWVzdElELCBSZWY8V2ViQ29y
ZTo6VGV4dENoZWNraW5nUmVxdWVzdD4mJik7CkBAIC0xNDU2LDYgKzE0NTksNyBAQCBwcml2YXRl
OgogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX21pbmltdW1MYXlvdXRTaXplOwogICAgIGJvb2wg
bV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0IHsgZmFsc2UgfTsKKyAgICBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+IG1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRV
bml0czsKIAogICAgIGJvb2wgbV91c2VySXNJbnRlcmFjdGluZyB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2lzQXNzaXN0aW5nTm9kZUR1ZVRvVXNlckludGVyYWN0aW9uIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMu
aW4KaW5kZXggMjJmNGVkYjU5MmIzYmVmY2I1NjQ5NjY5NzY3OWIxMjIxZGM0ZGRkOC4uNmJlYjYx
Y2RjNzI1ZjUwYzFlNjA0MmIwZjk5OWIyNjg2ZGRjOWYwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM5OSw2
ICszOTksOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRN
aW5pbXVtTGF5b3V0U2l6ZShXZWJDb3JlOjpJbnRTaXplIG1pbmltdW1MYXlvdXRTaXplKQogICAg
IFNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQp
CiAKKyAgICBTZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6SW50U2l6ZT4gdmlld3BvcnRTaXplKQorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgSGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoU3RyaW5nIHJlc3VsdCkKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk1OTg5
NjZkOWZmOTMzMDE3ZWVkOGM5ZTU5ODcyNGZjZTRlNTgyOGMuLjgwZTU4OGZlNDQ1MTE4YjRlMzJm
ODE1MzE5MDcyOGQyMDk3M2VmODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNy0wNi0wMSAgWmFsYW4gQnVqdGFz
ICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGNsaWVudHMgdG8gb3ZlcnJpZGUg
dmlld3BvcnQgc2l6ZSBmb3IgQ1NTIHZpZXdwb3J0IHVuaXRzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyODM4CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zMjUyMzQ0MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9WaWV3cG9ydFNp
emVGb3JWaWV3cG9ydFVuaXRzLm1tOiBBZGRlZC4KKyAgICAgICAgKFRFU1QpOgorCiAyMDE3LTA1
LTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEtl
eWJvYXJkIGF1dG9jb3JyZWN0aW9ucyBkbyBub3QgYXBwbHkgd2l0aCBhbiBhY3RpdmUgc2VsZWN0
aW9uIChidXQga2V5Ym9hcmQgYWN0cyBsaWtlIHRoZXkgZGlkKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA3NTVmMWRlNDFmODhmMWQyMTRlNTgxY2VhMjc5ZGYzMWE0Y2ExYTY5Li4xYzRiMzI0
NzAyNjliODA4MjJjZTUxNzA0NjQyZGZjMGQzYzNlMzAwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMzQsNiArMzQsNyBAQAogCQkwRjJDMjBCODFEQ0Q1NDUwMDA1NDJEOUUgLyogVGltZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjJDMjBC
NzFEQ0Q1NDQ4MDA1NDJEOUUgLyogVGltZS5jcHAgKi87IH07CiAJCTBGM0I5NEE3MUE3NzI2NzQw
MERFMzI3MiAvKiBXS1dlYlZpZXdFdmFsdWF0ZUphdmFTY3JpcHQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjNCOTRBNTFBNzcyNjZDMDBERTMyNzIg
LyogV0tXZWJWaWV3RXZhbHVhdGVKYXZhU2NyaXB0Lm1tICovOyB9OwogCQkwRjRGRkE5RTFFRDNB
QTg1MDBGNzExMUYgLyogU25hcHNob3RWaWFSZW5kZXJJbkNvbnRleHQubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjRGRkE5RDFFRDNBQTg1MDBGNzEx
MUYgLyogU25hcHNob3RWaWFSZW5kZXJJbkNvbnRleHQubW0gKi87IH07CisJCTExNUVCMzQzMUVF
MEJBMDMwMDNDMkMwQSAvKiBWaWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE1RUIzNDIxRUUwQjcyMDAw
M0MyQzBBIC8qIFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0gKi87IH07CiAJCTFBMDJD
ODcwMTI1RDRDRkQwMEUzRjRCRCAvKiBmaW5kLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwMkM4NEIxMjVENEE1RTAwRTNGNEJEIC8q
IGZpbmQuaHRtbCAqLzsgfTsKIAkJMUEzNTI0QUUxRDYzQTRGQjAwMzE3MjlCIC8qIFNjb3BlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMzUyNEFD
MUQ2M0E0RkIwMDMxNzI5QiAvKiBTY29wZS5jcHAgKi87IH07CiAJCTFBNEY4MUNGMUJERkZENTMw
MDRFNjcyRSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeVBsdWdJbi5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNEY4MUNEMUJERkZENTMwMDRFNjcyRSAv
KiBSZW1vdGVPYmplY3RSZWdpc3RyeVBsdWdJbi5tbSAqLzsgfTsKQEAgLTkyMiw2ICs5MjMsNyBA
QAogCQkwRkU0NDc5NzFCNzZGMUUzMDA5NDk4RUIgLyogUGFya2luZ0xvdC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXJraW5nTG90LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZFQUUzNjcxQjdEMTlDQjAwQ0UxN0YyIC8qIENvbmRpdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb25kaXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkZDNDVBNDFCNzNFQkUyMDA4NUJENjIgLyog
TG9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NrLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTE1RUIzNDIxRUUwQjcyMDAwM0MyQzBBIC8q
IFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBWaWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxNDQ2NDAxMjE2N0E4MzA1MDAwQkQyMTggLyogTGF5b3V0
VW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRVbml0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRGM0IxMTIxNUU0NUVBQjAwMjEw
MDY5IC8qIFNhdHVyYXRlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNhdHVyYXRlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUEwMkM4NEIxMjVENEE1RTAwRTNGNEJEIC8q
IGZpbmQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IGZpbmQuaHRtbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNTMsNiArMjE1NSw3IEBACiAJCQkJOTNBRjRFQ0Ex
NTA2RjAzNTAwN0ZENTdFIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdl
cy5jcHAgKi8sCiAJCQkJOTNBRjRFQ0QxNTA2RjA2NDAwN0ZENTdFIC8qIE5ld0ZpcnN0VmlzdWFs
bHlOb25FbXB0eUxheW91dEZvckltYWdlc19CdW5kbGUuY3BwICovLAogCQkJCTkzRjdFODZCMTRE
QzhFNEQwMEM4NEE5OSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMuY3Bw
ICovLAorCQkJCTExNUVCMzQyMUVFMEI3MjAwMDNDMkMwQSAvKiBWaWV3cG9ydFNpemVGb3JWaWV3
cG9ydFVuaXRzLm1tICovLAogCQkJCTkzRjdFODZFMTREQzhFNUIwMEM4NEE5OSAvKiBOZXdGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcCAqLywKIAkJCQk3Q0NCNERB
NzFDODNBRTczMDBDQzY5MTggLyogUGFnZUdyb3VwLmNwcCAqLywKIAkJCQlCQzkwOTc3OTEyNTU3
MUFCMDAwODM3NTYgLyogUGFnZUxvYWRCYXNpYy5jcHAgKi8sCkBAIC0yOTA2LDYgKzI5MDksNyBA
QAogCQkJCTUxOThBMjQwMUVBN0U1OUYwMDg5MTBCNyAvKiBJbml0aWFsV2FybWVkUHJvY2Vzc1Vz
ZWQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VCQzFBNDExQTdFMDA0NDdDNEMgLyogRE9N
Tm9kZUZyb21KU09iamVjdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUJEMUE0MTFBN0Uw
MDQ0N0M0QyAvKiBET01SYW5nZU9mU3RyaW5nLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMTE1RUIz
NDMxRUUwQkEwMzAwM0MyQzBBIC8qIFZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0gaW4g
U291cmNlcyAqLywKIAkJCQkzN0U3REQ2NDFFQTA2RkYyMDA5QjM5NkQgLyogQWRkaXRpb25hbFJl
YWRBY2Nlc3NBbGxvd2VkVVJMcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUVDMUE0MTFB
RTYwMDQ0N0M0QyAvKiBET01XaW5kb3dFeHRlbnNpb25CYXNpYy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3Q0NFN0VFRDFBNDExQUU2MDA0NDdDNEMgLyogRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNo
ZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mi9WaWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyL1ZpZXdwb3J0U2l6ZUZvclZpZXdwb3J0VW5pdHMubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTJkYjM2MmE3MzkwMWY0M2JjZGI4MGJhMDlkNzEwMjU5YTc3MDA1MwotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi9WaWV3cG9ydFNp
emVGb3JWaWV3cG9ydFVuaXRzLm1tCkBAIC0wLDAgKzEsMTEzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9y
dCAiVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5j
ZXMuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDx3dGYv
UmV0YWluUHRyLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCitzdGF0aWMgYm9vbCB2aWV3cG9y
dFNpemVUZXN0RG9uZTsKKworVEVTVChXZWJLaXQyLCBWaWV3cG9ydFNpemVGb3JWaWV3cG9ydFVu
aXRzKQoreworICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTAwLCAxMDApXSk7
CisKKyAgICAvLyBObyBfc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyBjYWxsIC0+
IG9yaWdpbmFsIHNpemUgaXMgdXNlZCAoMTAwcHggMTAwcHgpLgorICAgIFt3ZWJWaWV3IGxvYWRI
VE1MU3RyaW5nOkAiPGRpdiBpZD1kaXZXaXRoVmlld3BvcnRVbml0cyBzdHlsZT0nd2lkdGg6IDk5
dnc7Jz48L2Rpdj4iIGJhc2VVUkw6bmlsXTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlk
RmluaXNoTmF2aWdhdGlvbl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdldpdGhWaWV3
cG9ydFVuaXRzJyksIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ3dpZHRoJykiIGNvbXBsZXRpb25I
YW5kbGVyOl4oTlNTdHJpbmcgKnJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQ
RUNUX1NUUkVRKCI5OXB4IiwgW3Jlc3VsdCBVVEY4U3RyaW5nXSk7CisgICAgICAgIHZpZXdwb3J0
U2l6ZVRlc3REb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICB2aWV3cG9ydFNpemVUZXN0RG9uZSA9
IGZhbHNlOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmdmlld3BvcnRTaXplVGVzdERv
bmUpOworCisgICAgLy8gdmlld3BvcnQgd2lkdGggaXMgNTBweC4KKyAgICBbd2ViVmlldyBfc2V0
Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czpOU01ha2VTaXplKDUwLCA1MCldOworICAg
IFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGRpdiBpZD1kaXZXaXRoVmlld3BvcnRVbml0cyBz
dHlsZT0nd2lkdGg6IDUwdnc7Jz48L2Rpdj4iIGJhc2VVUkw6bmlsXTsKKyAgICBbd2ViVmlldyBf
dGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisKKyAgICBbd2ViVmlldyBldmFsdWF0
ZUphdmFTY3JpcHQ6QCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZGl2V2l0aFZpZXdwb3J0VW5pdHMnKSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnd2lk
dGgnKSIgY29tcGxldGlvbkhhbmRsZXI6XihOU1N0cmluZyAqcmVzdWx0LCBOU0Vycm9yICplcnJv
cikgeworICAgICAgICBFWFBFQ1RfU1RSRVEoIjI1cHgiLCBbcmVzdWx0IFVURjhTdHJpbmddKTsK
KyAgICAgICAgdmlld3BvcnRTaXplVGVzdERvbmUgPSB0cnVlOworICAgIH1dOworICAgIHZpZXdw
b3J0U2l6ZVRlc3REb25lID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZ2
aWV3cG9ydFNpemVUZXN0RG9uZSk7CisKKyAgICAvLyB2aWV3cG9ydCBoZWlnaHQgMTBweC4KKyAg
ICBbd2ViVmlldyBfc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czpOU01ha2VTaXpl
KDEwLCAxMCldOworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGRpdiBpZD1kaXZXaXRo
Vmlld3BvcnRVbml0cyBzdHlsZT0naGVpZ2h0OiAxMHZoOyc+PC9kaXY+IiBiYXNlVVJMOm5pbF07
CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdldpdGhWaWV3cG9ydFVuaXRzJyksIG51bGwpLmdldFBy
b3BlcnR5VmFsdWUoJ2hlaWdodCcpIiBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICpyZXN1
bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIEVYUEVDVF9TVFJFUSgiMXB4IiwgW3Jlc3Vs
dCBVVEY4U3RyaW5nXSk7CisgICAgICAgIHZpZXdwb3J0U2l6ZVRlc3REb25lID0gdHJ1ZTsKKyAg
ICB9XTsKKyAgICB2aWV3cG9ydFNpemVUZXN0RG9uZSA9IGZhbHNlOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmdmlld3BvcnRTaXplVGVzdERvbmUpOworCisgICAgYm9vbCBleGNlcHRp
b25SYWlzZWQgPSBmYWxzZTsKKyAgICBAdHJ5IHsKKyAgICAgICAgW3dlYlZpZXcgX3NldFZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHM6TlNNYWtlU2l6ZSgtMSwgMTApXTsKKyAgICB9IEBj
YXRjaCAoTlNFeGNlcHRpb24gKmV4Y2VwdGlvbikgeworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEo
TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24sIGV4Y2VwdGlvbi5uYW1lKTsKKyAgICAgICAgZXhj
ZXB0aW9uUmFpc2VkID0gdHJ1ZTsKKyAgICB9CisgICAgRVhQRUNUX1RSVUUoZXhjZXB0aW9uUmFp
c2VkKTsKKworICAgIGV4Y2VwdGlvblJhaXNlZCA9IGZhbHNlOworICAgIEB0cnkgeworICAgICAg
ICBbd2ViVmlldyBfc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czpOU01ha2VTaXpl
KDEwLCAwKV07CisgICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpleGNlcHRpb24pIHsKKyAgICAg
ICAgRVhQRUNUX1dLX1NUUkVRKE5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uLCBleGNlcHRpb24u
bmFtZSk7CisgICAgICAgIGV4Y2VwdGlvblJhaXNlZCA9IHRydWU7CisgICAgfQorICAgIEVYUEVD
VF9UUlVFKGV4Y2VwdGlvblJhaXNlZCk7CisKKyAgICBleGNlcHRpb25SYWlzZWQgPSBmYWxzZTsK
KyAgICBAdHJ5IHsKKyAgICAgICAgW3dlYlZpZXcgX3NldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHM6TlNNYWtlU2l6ZSgwLjUsIDAuNSldOworICAgIH0gQGNhdGNoIChOU0V4Y2VwdGlv
biAqZXhjZXB0aW9uKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShOU0ludmFsaWRBcmd1bWVu
dEV4Y2VwdGlvbiwgZXhjZXB0aW9uLm5hbWUpOworICAgICAgICBleGNlcHRpb25SYWlzZWQgPSB0
cnVlOworICAgIH0KKyAgICBFWFBFQ1RfVFJVRShleGNlcHRpb25SYWlzZWQpOworCisgICAgZXhj
ZXB0aW9uUmFpc2VkID0gZmFsc2U7CisgICAgQHRyeSB7CisgICAgICAgIFt3ZWJWaWV3IF9zZXRW
aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOk5TTWFrZVNpemUoMSwgMSldOworICAgIH0g
QGNhdGNoIChOU0V4Y2VwdGlvbiAqZXhjZXB0aW9uKSB7CisgICAgICAgIEVYUEVDVF9XS19TVFJF
UShOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiwgZXhjZXB0aW9uLm5hbWUpOworICAgICAgICBl
eGNlcHRpb25SYWlzZWQgPSB0cnVlOworICAgIH0KKyAgICBFWFBFQ1RfRkFMU0UoZXhjZXB0aW9u
UmFpc2VkKTsKK30KKworI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>