<?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>203994</bug_id>
          
          <creation_ts>2019-11-08 06:07:21 -0800</creation_ts>
          <short_desc>[GTK] WebDriver: implement new window command</short_desc>
          <delta_ts>2019-11-12 00:13:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebDriver</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="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1588614</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-08 06:07:21 -0800</bug_when>
    <thetext>11.5 New Window
https://w3c.github.io/webdriver/#new-window</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588615</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-08 06:08:31 -0800</bug_when>
    <thetext>Adding GTK since this requires new API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588619</commentid>
    <comment_count>2</comment_count>
      <attachid>383122</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-08 06:44:22 -0800</bug_when>
    <thetext>Created attachment 383122
Patch

This patch includes unit tests for the new GLib API, but we don&apos;tm have WebDriver tests for the new window command in WebKit tree yet. I&apos;ve run wpt tests and all pass. I&apos;ll update the imported wpt tests in WebKit after landing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1588621</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-11-08 06:45:25 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589154</commentid>
    <comment_count>4</comment_count>
      <attachid>383258</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-11 02:45:06 -0800</bug_when>
    <thetext>Created attachment 383258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589306</commentid>
    <comment_count>5</comment_count>
      <attachid>383258</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2019-11-11 13:33:53 -0800</bug_when>
    <thetext>Comment on attachment 383258
Patch

r=me.
I guess this needs a second review since it adds new public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589468</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-11-12 00:12:47 -0800</bug_when>
    <thetext>Committed r252356: &lt;https://trac.webkit.org/changeset/252356&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589469</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-12 00:13:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/57107742&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383122</attachid>
            <date>2019-11-08 06:44:22 -0800</date>
            <delta_ts>2019-11-11 02:45:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wd-new-window.diff</filename>
            <type>text/plain</type>
            <size>31558</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggMGIyMTA1YzU3NjAuLmFmMzAxZDRkMDkzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTExLTA4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBXZWJEcml2ZXI6IGltcGxlbWVudCBu
ZXcgd2luZG93IGNvbW1hbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMzk5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246Om5l
d1dpbmRvdyk6CisgICAgICAgICogU2Vzc2lvbi5oOgorICAgICAgICAqIFdlYkRyaXZlclNlcnZp
Y2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpuZXdXaW5kb3cp
OgorICAgICAgICAqIFdlYkRyaXZlclNlcnZpY2UuaDoKKwogMjAxOS0xMS0wOCAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBp
bXBsZW1lbnQgcHJveHkgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggMjJjNjZiM2VkNDku
LjI4MmFlNzQyMjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTU4Niw2ICs1ODYsNDcgQEAgdm9p
ZCBTZXNzaW9uOjpnZXRXaW5kb3dIYW5kbGVzKEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQm
Jik+JiYgY29tcGxldGlvbkhhbmQKICAgICB9KTsKIH0KIAordm9pZCBTZXNzaW9uOjpuZXdXaW5k
b3coT3B0aW9uYWw8U3RyaW5nPiB0eXBlSGludCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3Vs
dCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fdG9wbGV2ZWxCcm93c2lu
Z0NvbnRleHQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Ok5vU3VjaFdpbmRvdykpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaGFuZGxlVXNlclByb21wdHMoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgdHlwZUhpbnQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiByZXN1bHQpIG11dGFibGUgeworICAg
ICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIFJlZlB0cjxKU09OOjpPYmplY3Q+IHBhcmFtZXRlcnM7CisgICAgICAgIGlmICh0eXBl
SGludCkgeworICAgICAgICAgICAgcGFyYW1ldGVycyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7
CisgICAgICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoInByZXNlbnRhdGlvbkhpbnQiX3Ms
IHR5cGVIaW50LnZhbHVlKCkgPT0gIndpbmRvdyIgPyAiV2luZG93Il9zIDogIlRhYiJfcyk7Cisg
ICAgICAgIH0KKyAgICAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiY3JlYXRlQnJv
d3NpbmdDb250ZXh0Il9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IHByb3RlY3RlZFRoaXMuY29weVJlZigpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9u
c2UpIHsKKyAgICAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vycm9yIHx8ICFyZXNwb25zZS5yZXNw
b25zZU9iamVjdCkgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRS
ZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgaGFuZGxl
OworICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5yZXNwb25zZU9iamVjdC0+Z2V0U3RyaW5nKCJo
YW5kbGUiX3MsIGhhbmRsZSkpIHsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6VW5rbm93bkVycm9y
KSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
U3RyaW5nIHByZXNlbnRhdGlvbjsKKyAgICAgICAgICAgIGlmICghcmVzcG9uc2UucmVzcG9uc2VP
YmplY3QtPmdldFN0cmluZygicHJlc2VudGF0aW9uIl9zLCBwcmVzZW50YXRpb24pKSB7CisgICAg
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OlVua25vd25FcnJvcikpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFJlZlB0cjxKU09OOjpPYmplY3Q+IHJlc3Vs
dCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgICAgICAgICByZXN1bHQtPnNldFN0cmlu
ZygiaGFuZGxlIl9zLCBoYW5kbGUpOworICAgICAgICAgICAgcmVzdWx0LT5zZXRTdHJpbmcoInR5
cGUiX3MsIHByZXNlbnRhdGlvbiA9PSAiV2luZG93Il9zID8gIndpbmRvdyJfcyA6ICJ0YWIiX3Mp
OworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6c3VjY2VzcyhX
VEZNb3ZlKHJlc3VsdCkpKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKIHZvaWQgU2Vzc2lv
bjo6c3dpdGNoVG9GcmFtZShSZWZQdHI8SlNPTjo6VmFsdWU+JiYgZnJhbWVJRCwgRnVuY3Rpb248
dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAo
IW1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2
ZXIvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmgKaW5kZXggNDY2YWJlMWYx
OWQuLjFmZTI4YjIwOGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uaApAQCAtODYsNiArODYsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjbG9zZVdpbmRvdyhGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYm
KTsKICAgICB2b2lkIHN3aXRjaFRvV2luZG93KGNvbnN0IFN0cmluZyYgd2luZG93SGFuZGxlLCBG
dW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKICAgICB2b2lkIGdldFdpbmRvd0hh
bmRsZXMoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CisgICAgdm9pZCBuZXdX
aW5kb3coT3B0aW9uYWw8U3RyaW5nPiB0eXBlSGludCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJl
c3VsdCYmKT4mJik7CiAgICAgdm9pZCBzd2l0Y2hUb0ZyYW1lKFJlZlB0cjxKU09OOjpWYWx1ZT4m
JiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBzd2l0Y2hU
b1BhcmVudEZyYW1lKEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZv
aWQgZ2V0V2luZG93UmVjdChGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2Uv
V2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IDE2ZmRkMmRmYTM2Li5hY2I1Njg5
N2JkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC0xMjYsNiArMTI2
LDcgQEAgY29uc3QgV2ViRHJpdmVyU2VydmljZTo6Q29tbWFuZCBXZWJEcml2ZXJTZXJ2aWNlOjpz
X2NvbW1hbmRzW10gPSB7CiAgICAgeyBIVFRQTWV0aG9kOjpEZWxldGUsICIvc2Vzc2lvbi8kc2Vz
c2lvbklkL3dpbmRvdyIsICZXZWJEcml2ZXJTZXJ2aWNlOjpjbG9zZVdpbmRvdyB9LAogICAgIHsg
SFRUUE1ldGhvZDo6UG9zdCwgIi9zZXNzaW9uLyRzZXNzaW9uSWQvd2luZG93IiwgJldlYkRyaXZl
clNlcnZpY2U6OnN3aXRjaFRvV2luZG93IH0sCiAgICAgeyBIVFRQTWV0aG9kOjpHZXQsICIvc2Vz
c2lvbi8kc2Vzc2lvbklkL3dpbmRvdy9oYW5kbGVzIiwgJldlYkRyaXZlclNlcnZpY2U6OmdldFdp
bmRvd0hhbmRsZXMgfSwKKyAgICB7IEhUVFBNZXRob2Q6OlBvc3QsICIvc2Vzc2lvbi8kc2Vzc2lv
bklkL3dpbmRvdy9uZXciLCAmV2ViRHJpdmVyU2VydmljZTo6bmV3V2luZG93IH0sCiAgICAgeyBI
VFRQTWV0aG9kOjpQb3N0LCAiL3Nlc3Npb24vJHNlc3Npb25JZC9mcmFtZSIsICZXZWJEcml2ZXJT
ZXJ2aWNlOjpzd2l0Y2hUb0ZyYW1lIH0sCiAgICAgeyBIVFRQTWV0aG9kOjpQb3N0LCAiL3Nlc3Np
b24vJHNlc3Npb25JZC9mcmFtZS9wYXJlbnQiLCAmV2ViRHJpdmVyU2VydmljZTo6c3dpdGNoVG9Q
YXJlbnRGcmFtZSB9LAogICAgIHsgSFRUUE1ldGhvZDo6R2V0LCAiL3Nlc3Npb24vJHNlc3Npb25J
ZC93aW5kb3cvcmVjdCIsICZXZWJEcml2ZXJTZXJ2aWNlOjpnZXRXaW5kb3dSZWN0IH0sCkBAIC0x
MTMyLDYgKzExMzMsMjkgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpnZXRXaW5kb3dIYW5kbGVz
KFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3QKICAgICAgICAgbV9zZXNz
aW9uLT5nZXRXaW5kb3dIYW5kbGVzKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAor
dm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdXaW5kb3coUmVmUHRyPEpTT046Ok9iamVjdD4mJiBw
YXJhbWV0ZXJzLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIC8vIMKnMTEuNSBOZXcgV2luZG93CisgICAgLy8gaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL3dlYmRyaXZlci8jbmV3LXdpbmRvdworICAgIGlmICghZmluZFNlc3Npb25PckNv
bXBsZXRlV2l0aEVycm9yKCpwYXJhbWV0ZXJzLCBjb21wbGV0aW9uSGFuZGxlcikpCisgICAgICAg
IHJldHVybjsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdHlwZUhpbnQ7CisgICAgUmVmUHRyPEpT
T046OlZhbHVlPiB2YWx1ZTsKKyAgICBpZiAocGFyYW1ldGVycy0+Z2V0VmFsdWUoInR5cGUiX3Ms
IHZhbHVlKSkgeworICAgICAgICBTdHJpbmcgdmFsdWVTdHJpbmc7CisgICAgICAgIGlmICh2YWx1
ZS0+YXNTdHJpbmcodmFsdWVTdHJpbmcpKSB7CisgICAgICAgICAgICBpZiAodmFsdWVTdHJpbmcg
PT0gIndpbmRvdyIgfHwgdmFsdWVTdHJpbmcgPT0gInRhYiIpCisgICAgICAgICAgICAgICAgdHlw
ZUhpbnQgPSB2YWx1ZVN0cmluZzsKKyAgICAgICAgfSBlbHNlIGlmICghdmFsdWUtPmlzTnVsbCgp
KSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50KSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX3Nlc3Npb24tPm5ld1dpbmRvdyh0eXBl
SGludCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2b2lkIFdlYkRyaXZlclNl
cnZpY2U6OnN3aXRjaFRvRnJhbWUoUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBG
dW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIC8vIMKnMTAuNSBTd2l0Y2ggVG8gRnJhbWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJp
dmVyL1dlYkRyaXZlclNlcnZpY2UuaCBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2Vydmlj
ZS5oCmluZGV4IDdmYjBlYmUzNzc1Li4xYjEyYmQwNzU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmgKKysrIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2
ZXJTZXJ2aWNlLmgKQEAgLTc1LDYgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsb3NlV2lu
ZG93KFJlZlB0cjxKU09OOjpPYmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQm
Jik+JiYpOwogICAgIHZvaWQgc3dpdGNoVG9XaW5kb3coUmVmUHRyPEpTT046Ok9iamVjdD4mJiwg
RnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBnZXRXaW5kb3dI
YW5kbGVzKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1
bHQmJik+JiYpOworICAgIHZvaWQgbmV3V2luZG93KFJlZlB0cjxKU09OOjpPYmplY3Q+JiYsIEZ1
bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZvaWQgc3dpdGNoVG9GcmFt
ZShSZWZQdHI8SlNPTjo6T2JqZWN0PiYmLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYp
PiYmKTsKICAgICB2b2lkIHN3aXRjaFRvUGFyZW50RnJhbWUoUmVmUHRyPEpTT046Ok9iamVjdD4m
JiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBnZXRXaW5k
b3dSZWN0KFJlZlB0cjxKU09OOjpPYmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1
bHQmJik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNzY1ZmJhM2EyYy4uOTAyZjM5NzNjODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjkgQEAKKzIwMTktMTEtMDggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIFdlYkRyaXZlcjogaW1wbGVtZW50IG5l
dyB3aW5kb3cgY29tbWFuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzOTk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIG5ldyBBUEkgdG8gc3VwcG9ydCBuZXcgd2luZG93IGNvbW1hbmQuIFRoZSBX
ZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbjo6Y3JlYXRlLXdlYi12aWV3IHNpZ25hbCBjYW4gbm93IHJl
Y2VpdmUgYQorICAgICAgICBkZXRhaWwgdGhhdCBjYW4gYmUgIndpbmRvdyIgb3IgInRhYiIuIEFw
cGxpY2F0aW9ucyBjYW4gdXNlIHRoYXQgdG8gZGVjaWRlIHdoZXRoZXIgdG8gYWRkIHRoZSBuZXcg
d2VidmlldyB0byBhCisgICAgICAgIG5ldyB3aW5kb3cgb3IgdGFiLiBXZWJLaXRXZWJWaWV3IGhh
cyBhIG5ldyBjb25zdHJ1Y3Qgb25seSBwcm9wZXJ0eSBhdXRvbWF0aW9uLXByZXNlbnRhdGlvbi10
eXBlLCB3aGljaCBpcyBhbgorICAgICAgICBlbnVtIHRoYXQgY2FuIGJlIGVpdGhlciB3aW5kb3cg
b3IgdGFiIHZhbHVlLiBBcHBwbGljYXRpb25zIHNob3VsZCB1c2UgdGhlIG5ldyBwcm9wZXJ0eSB3
aGVuIGNyZWF0aW5nIHRoZSB3ZWIKKyAgICAgICAgdmlldyBmb3IgYXV0b21hdGlvbiB0byBpbmRp
Y2F0ZSB3aGV0aGVyIHRoZSB3ZWIgdmlldyB3YXMgYWRkZWQgdG8gYSBuZXcgd2luZG93IG9yIHRh
Yi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lv
bi5jcHA6CisgICAgICAgICh3ZWJraXRfYXV0b21hdGlvbl9zZXNzaW9uX2NsYXNzX2luaXQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAg
KHdlYmtpdFdlYlZpZXdTZXRQcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3R2V0UHJv
cGVydHkpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgorICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2dldF9hdXRvbWF0aW9uX3ByZXNlbnRhdGlvbl90eXBlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dDoKKwogMjAxOS0xMS0wOCAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBp
bXBsZW1lbnQgcHJveHkgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IDc4ODRl
OGE1NzkyLi5kYmJmNWU5ZThkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtOTAsMTAg
KzkwLDExIEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB9CiAKLSAgICB2b2lkIHJlcXVlc3ROZXdQ
YWdlV2l0aE9wdGlvbnMoV2ViQXV0b21hdGlvblNlc3Npb24mLCBBUEk6OkF1dG9tYXRpb25TZXNz
aW9uQnJvd3NpbmdDb250ZXh0T3B0aW9ucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJQYWdl
UHJveHkqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGUKKyAgICB2b2lkIHJlcXVlc3RO
ZXdQYWdlV2l0aE9wdGlvbnMoV2ViQXV0b21hdGlvblNlc3Npb24mLCBBUEk6OkF1dG9tYXRpb25T
ZXNzaW9uQnJvd3NpbmdDb250ZXh0T3B0aW9ucyBvcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYlBhZ2VQcm94eSopPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBvdmVycmlkZQogICAgIHsK
ICAgICAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IG51bGxwdHI7Ci0gICAgICAgIGdfc2ln
bmFsX2VtaXQobV9zZXNzaW9uLCBzaWduYWxzW0NSRUFURV9XRUJfVklFV10sIDAsICZ3ZWJWaWV3
KTsKKyAgICAgICAgR1F1YXJrIGRldGFpbCA9IG9wdGlvbnMgJiBBUEk6OkF1dG9tYXRpb25TZXNz
aW9uQnJvd3NpbmdDb250ZXh0T3B0aW9uc1ByZWZlck5ld1RhYiA/IGdfcXVhcmtfZnJvbV9zdHJp
bmcoInRhYiIpIDogZ19xdWFya19mcm9tX3N0cmluZygid2luZG93Iik7CisgICAgICAgIGdfc2ln
bmFsX2VtaXQobV9zZXNzaW9uLCBzaWduYWxzW0NSRUFURV9XRUJfVklFV10sIGRldGFpbCwgJndl
YlZpZXcpOwogICAgICAgICBpZiAoIXdlYlZpZXcgfHwgIXdlYmtpdF93ZWJfdmlld19pc19jb250
cm9sbGVkX2J5X2F1dG9tYXRpb24od2ViVmlldykpCiAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihudWxscHRyKTsKICAgICAgICAgZWxzZQpAQCAtMTg3LDYgKzE4OCwyMiBAQCBwcml2YXRl
OgogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAorICAgIEFQSTo6QXV0b21h
dGlvblNlc3Npb25DbGllbnQ6OkJyb3dzaW5nQ29udGV4dFByZXNlbnRhdGlvbiBjdXJyZW50UHJl
c2VudGF0aW9uT2ZQYWdlKFdlYkF1dG9tYXRpb25TZXNzaW9uJiwgV2ViUGFnZVByb3h5JiBwYWdl
KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgYXV0byogd2ViVmlldyA9IHdlYmtpdFdlYkNvbnRl
eHRHZXRXZWJWaWV3Rm9yUGFnZShtX3Nlc3Npb24tPnByaXYtPndlYkNvbnRleHQsICZwYWdlKTsK
KyAgICAgICAgaWYgKCF3ZWJWaWV3KQorICAgICAgICAgICAgcmV0dXJuIEFQSTo6QXV0b21hdGlv
blNlc3Npb25DbGllbnQ6OkJyb3dzaW5nQ29udGV4dFByZXNlbnRhdGlvbjo6V2luZG93OworCisg
ICAgICAgIHN3aXRjaCAod2Via2l0X3dlYl92aWV3X2dldF9hdXRvbWF0aW9uX3ByZXNlbnRhdGlv
bl90eXBlKHdlYlZpZXcpKSB7CisgICAgICAgIGNhc2UgV0VCS0lUX0FVVE9NQVRJT05fQlJPV1NJ
TkdfQ09OVEVYVF9QUkVTRU5UQVRJT05fV0lORE9XOgorICAgICAgICAgICAgcmV0dXJuIEFQSTo6
QXV0b21hdGlvblNlc3Npb25DbGllbnQ6OkJyb3dzaW5nQ29udGV4dFByZXNlbnRhdGlvbjo6V2lu
ZG93OworICAgICAgICBjYXNlIFdFQktJVF9BVVRPTUFUSU9OX0JST1dTSU5HX0NPTlRFWFRfUFJF
U0VOVEFUSU9OX1RBQjoKKyAgICAgICAgICAgIHJldHVybiBBUEk6OkF1dG9tYXRpb25TZXNzaW9u
Q2xpZW50OjpCcm93c2luZ0NvbnRleHRQcmVzZW50YXRpb246OlRhYjsKKyAgICAgICAgfQorCisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCiAgICAgV2ViS2l0
QXV0b21hdGlvblNlc3Npb24qIG1fc2Vzc2lvbjsKIH07CiAKQEAgLTI3Myw4ICsyOTAsMTUgQEAg
c3RhdGljIHZvaWQgd2Via2l0X2F1dG9tYXRpb25fc2Vzc2lvbl9jbGFzc19pbml0KFdlYktpdEF1
dG9tYXRpb25TZXNzaW9uQ2xhc3MqIHMKICAgICAgKiBUaGlzIHNpZ25hbCBpcyBlbWl0dGVkIHdo
ZW4gdGhlIGF1dG9tYXRpb24gY2xpZW50IHJlcXVlc3RzIGEgbmV3CiAgICAgICogYnJvd3Npbmcg
Y29udGV4dCB0byBpbnRlcmFjdCB3aXRoIGl0LiBUaGUgY2FsbGJhY2sgaGFuZGxlciBzaG91bGQK
ICAgICAgKiByZXR1cm4gYSAjV2ViS2l0V2ViVmlldyBjcmVhdGVkIHdpdGggI1dlYktpdFdlYlZp
ZXc6aXMtY29udHJvbGxlZC1ieS1hdXRvbWF0aW9uCi0gICAgICogY29uc3RydWN0IHByb3BlcnR5
IGVuYWJsZWQuIFRoZSByZXR1cm5lZCAjV2ViS2l0V2ViVmlldyBjb3VsZCBiZSBhbiBleGlzdGlu
ZwotICAgICAqIHdlYiB2aWV3IG9yIGEgbmV3IG9uZSBjcmVhdGVkIGFuZCBhZGRlZCB0byBhIG5l
dyB0YWIgb3Igd2luZG93LgorICAgICAqIGNvbnN0cnVjdCBwcm9wZXJ0eSBlbmFibGVkIGFuZCAj
V2ViS2l0V2ViVmlldzphdXRvbWF0aW9uLXByZXNlbnRhdGlvbi10eXBlIGNvbnN0cnVjdAorICAg
ICAqIHByb3BlcnR5IHNldCBpZiBuZWVkZWQuCisgICAgICoKKyAgICAgKiBJZiB0aGUgc2lnbmFs
IGlzIGVtaXR0ZWQgd2l0aCAidGFiIiBkZXRhaWwsIHRoZSByZXR1cm5lZCAjV2ViS2l0V2ViVmll
dyBzaG91bGQgYmUKKyAgICAgKiBhIG5ldyB3ZWIgdmlldyBhZGRlZCB0byBhIG5ldyB0YWIgb2Yg
dGhlIGN1cnJlbnQgYnJvd3NpbmcgY29udGV4dCB3aW5kb3cuCisgICAgICogSWYgdGhlIHNpZ25h
bCBpcyBlbWl0dGVkIHdpdGggIndpbmRvdyIgZGV0YWlsLCB0aGUgcmV0dXJuZWQgI1dlYktpdFdl
YlZpZXcgc2hvdWxkIGJlCisgICAgICogYSBuZXcgd2ViIHZpZXcgYWRkZWQgdG8gYSBuZXcgd2lu
ZG93LgorICAgICAqIFdoZW4gY3JlYXRpbmcgYSBuZXcgd2ViIHZpZXcgYW5kIHRoZXJlJ3MgYW4g
YWN0aXZlIGJyb3dzaW5nIGNvbnRleHQsIHRoZSBuZXcgd2luZG93CisgICAgICogb3IgdGFiIHNo
b3VsZG4ndCBiZSBmb2N1c2VkLgogICAgICAqCiAgICAgICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOiBhICNXZWJLaXRXZWJWaWV3IHdpZGdldC4KICAgICAgKgpAQCAtMjgzLDcgKzMwNyw3IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdF9hdXRvbWF0aW9uX3Nlc3Npb25fY2xhc3NfaW5pdChXZWJLaXRB
dXRvbWF0aW9uU2Vzc2lvbkNsYXNzKiBzCiAgICAgc2lnbmFsc1tDUkVBVEVfV0VCX1ZJRVddID0g
Z19zaWduYWxfbmV3KAogICAgICAgICAiY3JlYXRlLXdlYi12aWV3IiwKICAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1Moc2Vzc2lvbkNsYXNzKSwKLSAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCisg
ICAgICAgIHN0YXRpY19jYXN0PEdTaWduYWxGbGFncz4oR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJ
R05BTF9ERVRBSUxFRCksCiAgICAgICAgIDAsCiAgICAgICAgIG51bGxwdHIsIG51bGxwdHIsCiAg
ICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9nZW5lcmljLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCA0Nzg2MGVmYzYzYy4u
ZDIxYzc4MmVkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXcuY3BwCkBAIC0xOTUsNiArMTk1LDcgQEAgZW51bSB7CiAgICAgUFJPUF9J
U19QTEFZSU5HX0FVRElPLAogICAgIFBST1BfSVNfRVBIRU1FUkFMLAogICAgIFBST1BfSVNfQ09O
VFJPTExFRF9CWV9BVVRPTUFUSU9OLAorICAgIFBST1BfQVVUT01BVElPTl9QUkVTRU5UQVRJT05f
VFlQRSwKICAgICBQUk9QX0VESVRBQkxFLAogICAgIFBST1BfUEFHRV9JRAogfTsKQEAgLTI1OCw2
ICsyNTksNyBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdQcml2YXRlIHsKICAgICBib29sIGlzTG9h
ZGluZzsKICAgICBib29sIGlzRXBoZW1lcmFsOwogICAgIGJvb2wgaXNDb250cm9sbGVkQnlBdXRv
bWF0aW9uOworICAgIFdlYktpdEF1dG9tYXRpb25Ccm93c2luZ0NvbnRleHRQcmVzZW50YXRpb24g
YXV0b21hdGlvblByZXNlbnRhdGlvblR5cGU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZUxv
YWRTdGF0ZU9ic2VydmVyPiBsb2FkT2JzZXJ2ZXI7CiAKQEAgLTgyMCw2ICs4MjIsOSBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRXZWJWaWV3U2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wSWQsIGNvbnN0IEdWYWx1ZQogICAgIGNhc2UgUFJPUF9JU19DT05UUk9MTEVEX0JZX0FVVE9N
QVRJT046CiAgICAgICAgIHdlYlZpZXctPnByaXYtPmlzQ29udHJvbGxlZEJ5QXV0b21hdGlvbiA9
IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBS
T1BfQVVUT01BVElPTl9QUkVTRU5UQVRJT05fVFlQRToKKyAgICAgICAgd2ViVmlldy0+cHJpdi0+
YXV0b21hdGlvblByZXNlbnRhdGlvblR5cGUgPSBzdGF0aWNfY2FzdDxXZWJLaXRBdXRvbWF0aW9u
QnJvd3NpbmdDb250ZXh0UHJlc2VudGF0aW9uPihnX3ZhbHVlX2dldF9lbnVtKHZhbHVlKSk7Cisg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9FRElUQUJMRToKICAgICAgICAgd2Via2l0X3dl
Yl92aWV3X3NldF9lZGl0YWJsZSh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7
CiAgICAgICAgIGJyZWFrOwpAQCAtODc2LDYgKzg4MSw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdl
YlZpZXdHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2
YWx1CiAgICAgY2FzZSBQUk9QX0lTX0NPTlRST0xMRURfQllfQVVUT01BVElPTjoKICAgICAgICAg
Z192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX2NvbnRyb2xsZWRf
YnlfYXV0b21hdGlvbih3ZWJWaWV3KSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9B
VVRPTUFUSU9OX1BSRVNFTlRBVElPTl9UWVBFOgorICAgICAgICBnX3ZhbHVlX3NldF9lbnVtKHZh
bHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2F1dG9tYXRpb25fcHJlc2VudGF0aW9uX3R5cGUod2Vi
VmlldykpOworICAgICAgICBicmVhazsKICAgICBjYXNlIFBST1BfRURJVEFCTEU6CiAgICAgICAg
IGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJfdmlld19pc19lZGl0YWJsZSh3
ZWJWaWV3KSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTE5NSw2ICsxMjAzLDI3IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmll
d0NsYXNzKQogICAgICAgICAgICAgRkFMU0UsCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFy
YW1GbGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkp
KSk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJWaWV3OmF1dG9tYXRpb24tcHJlc2VudGF0
aW9uLXR5cGU6CisgICAgICoKKyAgICAgKiBUaGUgI1dlYktpdEF1dG9tYXRpb25Ccm93c2luZ0Nv
bnRleHRQcmVzZW50YXRpb24gb2YgI1dlYktpdFdlYlZpZXcuIFRoaXMgc2hvdWxkIG9ubHkgYmUg
dXNlZCB3aGVuCisgICAgICogY3JlYXRpbmcgYSBuZXcgI1dlYktpdFdlYlZpZXcgYXMgYSByZXNw
b25zZSB0byAjV2ViS2l0QXV0b21hdGlvblNlc3Npb246OmNyZWF0ZS13ZWItdmlldworICAgICAq
IHNpZ25hbCByZXF1ZXN0LiBJZiB0aGUgbmV3IFdlYlZpZXcgd2FzIGFkZGVkIHRvIGEgbmV3IHRh
YiBvZiBjdXJyZW50IGJyb3dzaW5nIGNvbnRleHQgd2luZG93CisgICAgICogJVdFQktJVF9BVVRP
TUFUSU9OX0JST1dTSU5HX0NPTlRFWFRfUFJFU0VOVEFUSU9OX1RBQiBzaG91bGQgYmUgdXNlZC4K
KyAgICAgKgorICAgICAqIFNpbmNlOiAyLjI4CisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ09iamVjdENsYXNzLAorICAgICAgICBQUk9QX0FV
VE9NQVRJT05fUFJFU0VOVEFUSU9OX1RZUEUsCisgICAgICAgIGdfcGFyYW1fc3BlY19lbnVtKAor
ICAgICAgICAgICAgImF1dG9tYXRpb24tcHJlc2VudGF0aW9uLXR5cGUiLAorICAgICAgICAgICAg
IkF1dG9tYXRpb24gUHJlc2VudGF0aW9uIFR5cGUiLAorICAgICAgICAgICAgXygiVGhlIGJyb3dz
aW5nIGNvbnRleHQgcHJlc2VudGF0aW9uIHR5cGUgZm9yIGF1dG9tYXRpb24iKSwKKyAgICAgICAg
ICAgIFdFQktJVF9UWVBFX0FVVE9NQVRJT05fQlJPV1NJTkdfQ09OVEVYVF9QUkVTRU5UQVRJT04s
CisgICAgICAgICAgICBXRUJLSVRfQVVUT01BVElPTl9CUk9XU0lOR19DT05URVhUX1BSRVNFTlRB
VElPTl9XSU5ET1csCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lU
X1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKSk7CisKICAgICAvKioK
ICAgICAgKiBXZWJLaXRXZWJWaWV3OmVkaXRhYmxlOgogICAgICAqCkBAIC0yNzQ3LDYgKzI3NzYs
MjMgQEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2lzX2NvbnRyb2xsZWRfYnlfYXV0b21hdGlv
bihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHJldHVybiB3ZWJWaWV3LT5wcml2LT5pc0Nv
bnRyb2xsZWRCeUF1dG9tYXRpb247CiB9CiAKKy8qKgorICogd2Via2l0X3dlYl92aWV3X2dldF9h
dXRvbWF0aW9uX3ByZXNlbnRhdGlvbl90eXBlOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJW
aWV3CisgKgorICogR2V0IHRoZSBwcmVzZW50YXRpb24gdHlwZSBvZiAjV2ViS2l0V2ViVmlldyB3
aGVuIGNyZWF0ZWQgZm9yIGF1dG9tYXRpb24uCisgKgorICogUmV0dXJuczogYSAjV2ViS2l0QXV0
b21hdGlvbkJyb3dzaW5nQ29udGV4dFByZXNlbnRhdGlvbi4KKyAqCisgKiBTaW5jZTogMi4yOAor
ICovCitXZWJLaXRBdXRvbWF0aW9uQnJvd3NpbmdDb250ZXh0UHJlc2VudGF0aW9uIHdlYmtpdF93
ZWJfdmlld19nZXRfYXV0b21hdGlvbl9wcmVzZW50YXRpb25fdHlwZShXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3
ZWJWaWV3KSwgV0VCS0lUX0FVVE9NQVRJT05fQlJPV1NJTkdfQ09OVEVYVF9QUkVTRU5UQVRJT05f
V0lORE9XKTsKKworICAgIHJldHVybiB3ZWJWaWV3LT5wcml2LT5hdXRvbWF0aW9uUHJlc2VudGF0
aW9uVHlwZTsKK30KKwogLyoqCiAgKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dlYnNpdGVfZGF0YV9t
YW5hZ2VyOgogICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmgK
aW5kZXggODM5ZGZlMzRmOWQuLmNlN2Q0YzVkMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5oCkBAIC0z
Nyw2ICszNywyMCBAQCBHX0JFR0lOX0RFQ0xTCiAjZGVmaW5lIFdFQktJVF9JU19BVVRPTUFUSU9O
X1NFU1NJT05fQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAg
V0VCS0lUX1RZUEVfQVVUT01BVElPTl9TRVNTSU9OKSkKICNkZWZpbmUgV0VCS0lUX0FVVE9NQVRJ
T05fU0VTU0lPTl9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9i
aiksICBXRUJLSVRfVFlQRV9BVVRPTUFUSU9OX1NFU1NJT04sIFdlYktpdEF1dG9tYXRpb25TZXNz
aW9uQ2xhc3MpKQogCisvKioKKyAqIFdlYktpdEF1dG9tYXRpb25Ccm93c2luZ0NvbnRleHRQcmVz
ZW50YXRpb246CisgKiBAV0VCS0lUX0FVVE9NQVRJT05fQlJPV1NJTkdfQ09OVEVYVF9QUkVTRU5U
QVRJT05fV0lORE9XOiBhIHdpbmRvdworICogQFdFQktJVF9BVVRPTUFUSU9OX0JST1dTSU5HX0NP
TlRFWFRfUFJFU0VOVEFUSU9OX1RBQjogYSB0YWIKKyAqCisgKiBFbnVtIHZhbHVlcyB1c2VkIGZv
ciBkZXRlcm1pbmluZyB0aGUgYXV0b21hdGlvbiBicm93c2luZyBjb250ZXh0IHByZXNlbnRhdGlv
bi4KKyAqCisgKiBTaW5jZTogMi4yOAorICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9B
VVRPTUFUSU9OX0JST1dTSU5HX0NPTlRFWFRfUFJFU0VOVEFUSU9OX1dJTkRPVywKKyAgICBXRUJL
SVRfQVVUT01BVElPTl9CUk9XU0lOR19DT05URVhUX1BSRVNFTlRBVElPTl9UQUIKK30gV2ViS2l0
QXV0b21hdGlvbkJyb3dzaW5nQ29udGV4dFByZXNlbnRhdGlvbjsKKwogdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdEF1dG9tYXRpb25TZXNzaW9uICAgICAgICBXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbjsK
IHR5cGVkZWYgc3RydWN0IF9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbkNsYXNzICAgV2ViS2l0QXV0
b21hdGlvblNlc3Npb25DbGFzczsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRBdXRvbWF0aW9uU2Vz
c2lvblByaXZhdGUgV2ViS2l0QXV0b21hdGlvblNlc3Npb25Qcml2YXRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRleCA0ZmY2OTZiNjM0
MS4uZTc1YjU2OWUzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlldy5oCkBAIC0zMDAsNiArMzAwLDkgQEAgd2Via2l0X3dlYl92aWV3X2lzX2Vw
aGVtZXJhbCAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQ
SSBnYm9vbGVhbgogd2Via2l0X3dlYl92aWV3X2lzX2NvbnRyb2xsZWRfYnlfYXV0b21hdGlvbiAg
ICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRf
QVBJIFdlYktpdEF1dG9tYXRpb25Ccm93c2luZ0NvbnRleHRQcmVzZW50YXRpb24KK3dlYmtpdF93
ZWJfdmlld19nZXRfYXV0b21hdGlvbl9wcmVzZW50YXRpb25fdHlwZSAgICAgKFdlYktpdFdlYlZp
ZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKwogV0VCS0lUX0FQSSBXZWJLaXRXZWJzaXRlRGF0
YU1hbmFnZXIgKgogd2Via2l0X3dlYl92aWV3X2dldF93ZWJzaXRlX2RhdGFfbWFuYWdlciAgICAg
ICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAt
c2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtp
dDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCAzNDk1ZDUxZjEzMi4uOTk5YWM5NTIxNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LTQuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dApAQCAtMjE1LDYgKzIxNSw3IEBAIHdlYmtp
dF93ZWJfdmlld19uZXdfd2l0aF9zZXR0aW5ncwogd2Via2l0X3dlYl92aWV3X25ld193aXRoX3Vz
ZXJfY29udGVudF9tYW5hZ2VyCiB3ZWJraXRfd2ViX3ZpZXdfaXNfZXBoZW1lcmFsCiB3ZWJraXRf
d2ViX3ZpZXdfaXNfY29udHJvbGxlZF9ieV9hdXRvbWF0aW9uCit3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2F1dG9tYXRpb25fcHJlc2VudGF0aW9uX3R5cGUKIHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4
dAogd2Via2l0X3dlYl92aWV3X2dldF91c2VyX2NvbnRlbnRfbWFuYWdlcgogd2Via2l0X3dlYl92
aWV3X2dldF93ZWJzaXRlX2RhdGFfbWFuYWdlcgpAQCAtMTQ4Myw2ICsxNDg0LDcgQEAgV0VCS0lU
X1RZUEVfTkVUV09SS19ORVRXT1JLX1BST1hZX1NFVFRJTkdTCiA8U0VDVElPTj4KIDxGSUxFPldl
YktpdEF1dG9tYXRpb25TZXNzaW9uPC9GSUxFPgogV2ViS2l0QXV0b21hdGlvblNlc3Npb24KK1dl
YktpdEF1dG9tYXRpb25Ccm93c2luZ0NvbnRleHRQcmVzZW50YXRpb24KIHdlYmtpdF9hdXRvbWF0
aW9uX3Nlc3Npb25fZ2V0X2lkCiB3ZWJraXRfYXV0b21hdGlvbl9zZXNzaW9uX3NldF9hcHBsaWNh
dGlvbl9pbmZvCiB3ZWJraXRfYXV0b21hdGlvbl9zZXNzaW9uX2dldF9hcHBsaWNhdGlvbl9pbmZv
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCmlu
ZGV4IDllNWQzZjRjN2E5Li44MDAxNDI5YjczYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKQEAgLTI4Niw2ICsyODYsOSBAQCB3ZWJraXRf
d2ViX3ZpZXdfaXNfZXBoZW1lcmFsICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJW
aWV3CiBXRUJLSVRfQVBJIGdib29sZWFuCiB3ZWJraXRfd2ViX3ZpZXdfaXNfY29udHJvbGxlZF9i
eV9hdXRvbWF0aW9uICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmll
dyk7CiAKK1dFQktJVF9BUEkgV2ViS2l0QXV0b21hdGlvbkJyb3dzaW5nQ29udGV4dFByZXNlbnRh
dGlvbgord2Via2l0X3dlYl92aWV3X2dldF9hdXRvbWF0aW9uX3ByZXNlbnRhdGlvbl90eXBlICAg
ICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCiBXRUJLSVRfQVBJIFdl
YktpdFdlYnNpdGVEYXRhTWFuYWdlciAqCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dlYnNpdGVfZGF0
YV9tYW5hZ2VyICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmll
dyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93
cGUtMS4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9j
cy93cGUtMS4wLXNlY3Rpb25zLnR4dAppbmRleCA2NzkwM2Y1ZDg2Mi4uZTM2MmQ1NTRlMGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNl
Y3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3Bl
LTEuMC1zZWN0aW9ucy50eHQKQEAgLTE5Miw2ICsxOTIsNyBAQCB3ZWJraXRfd2ViX3ZpZXdfbmV3
X3dpdGhfdXNlcl9jb250ZW50X21hbmFnZXIKIHdlYmtpdF93ZWJfdmlld19nZXRfYmFja2VuZAog
d2Via2l0X3dlYl92aWV3X2lzX2VwaGVtZXJhbAogd2Via2l0X3dlYl92aWV3X2lzX2NvbnRyb2xs
ZWRfYnlfYXV0b21hdGlvbgord2Via2l0X3dlYl92aWV3X2dldF9hdXRvbWF0aW9uX3ByZXNlbnRh
dGlvbl90eXBlCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvbnRleHQKIHdlYmtpdF93ZWJfdmlld19n
ZXRfdXNlcl9jb250ZW50X21hbmFnZXIKIHdlYmtpdF93ZWJfdmlld19nZXRfd2Vic2l0ZV9kYXRh
X21hbmFnZXIKQEAgLTEzNjgsNiArMTM2OSw3IEBAIFdFQktJVF9UWVBFX05FVFdPUktfTkVUV09S
S19QUk9YWV9TRVRUSU5HUwogPFNFQ1RJT04+CiA8RklMRT5XZWJLaXRBdXRvbWF0aW9uU2Vzc2lv
bjwvRklMRT4KIFdlYktpdEF1dG9tYXRpb25TZXNzaW9uCitXZWJLaXRBdXRvbWF0aW9uQnJvd3Np
bmdDb250ZXh0UHJlc2VudGF0aW9uCiB3ZWJraXRfYXV0b21hdGlvbl9zZXNzaW9uX2dldF9pZAog
d2Via2l0X2F1dG9tYXRpb25fc2Vzc2lvbl9zZXRfYXBwbGljYXRpb25faW5mbwogd2Via2l0X2F1
dG9tYXRpb25fc2Vzc2lvbl9nZXRfYXBwbGljYXRpb25faW5mbwpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk3Mzg1ODYwZDkyLi5mYTRhMDNkYWJk
NSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI1IEBACisyMDE5LTExLTA4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBXZWJEcml2ZXI6IGltcGxlbWVudCBuZXcgd2lu
ZG93IGNvbW1hbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMzk5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBuZXcgd2luZG93IGNvbW1hbmQgdG8gTWluaUJyb3dzZXIgYW5k
IGEgdGVzdCBjYXNlIHRvIGNoZWNrIHRoZSBuZXcgQVBJIHRvIHVuaXQgdGVzdHMuCisKKyAgICAg
ICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jOgorICAgICAgICAoZmluZEFjdGl2
ZVdpbmRvdyk6CisgICAgICAgIChicm93c2VyX3dpbmRvd19nZXRfb3JfY3JlYXRlX3dlYl92aWV3
X2Zvcl9hdXRvbWF0aW9uKToKKyAgICAgICAgKGJyb3dzZXJfd2luZG93X2NyZWF0ZV93ZWJfdmll
d19pbl9uZXdfdGFiX2Zvcl9hdXRvbWF0aW9uKToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsv
QnJvd3NlcldpbmRvdy5oOgorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9tYWluLmM6CisgICAg
ICAgIChjcmVhdGVXZWJWaWV3Rm9yQXV0b21hdGlvbkluV2luZG93Q2FsbGJhY2spOgorICAgICAg
ICAoY3JlYXRlV2ViVmlld0ZvckF1dG9tYXRpb25JblRhYkNhbGxiYWNrKToKKyAgICAgICAgKGF1
dG9tYXRpb25TdGFydGVkQ2FsbGJhY2spOgorICAgICAgICAoY3JlYXRlV2ViVmlld0ZvckF1dG9t
YXRpb25DYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgICh0ZXN0QXV0b21h
dGlvblNlc3Npb25SZXF1ZXN0U2Vzc2lvbik6CisKIDIwMTktMTEtMDggIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBwb2ludGVy
IGxvY2sgcGVybWlzc2lvbiByZXF1ZXN0IEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dz
ZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2lu
ZG93LmMKaW5kZXggYmUzNjk4OWZmYjUuLmFjNDQwYTlmZTJjIDEwMDY0NAotLS0gYS9Ub29scy9N
aW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0
ay9Ccm93c2VyV2luZG93LmMKQEAgLTEyMjQsMTIgKzEyMjQsMjUgQEAgdm9pZCBicm93c2VyX3dp
bmRvd19zZXRfYmFja2dyb3VuZF9jb2xvcihCcm93c2VyV2luZG93ICp3aW5kb3csIEdka1JHQkEg
KnJnYmEpCiAgICAgZ3RrX3dpZGdldF9zZXRfYXBwX3BhaW50YWJsZShHVEtfV0lER0VUKHdpbmRv
dyksIFRSVUUpOwogfQogCitzdGF0aWMgQnJvd3NlcldpbmRvdyAqZmluZEFjdGl2ZVdpbmRvdyh2
b2lkKQoreworICAgIEdMaXN0ICpsOworCisgICAgZm9yIChsID0gd2luZG93TGlzdDsgbDsgbCA9
IGdfbGlzdF9uZXh0KGwpKSB7CisgICAgICAgIEJyb3dzZXJXaW5kb3cgKndpbmRvdyA9IChCcm93
c2VyV2luZG93ICopbC0+ZGF0YTsKKyAgICAgICAgaWYgKGd0a193aW5kb3dfaXNfYWN0aXZlKEdU
S19XSU5ET1cod2luZG93KSkpCisgICAgICAgICAgICByZXR1cm4gd2luZG93OworICAgIH0KKwor
ICAgIHJldHVybiB3aW5kb3dMaXN0ID8gKEJyb3dzZXJXaW5kb3cgKil3aW5kb3dMaXN0LT5kYXRh
IDogTlVMTDsKK30KKwogV2ViS2l0V2ViVmlldyAqYnJvd3Nlcl93aW5kb3dfZ2V0X29yX2NyZWF0
ZV93ZWJfdmlld19mb3JfYXV0b21hdGlvbih2b2lkKQogewotICAgIGlmICghd2luZG93TGlzdCkK
KyAgICBCcm93c2VyV2luZG93ICp3aW5kb3cgPSBmaW5kQWN0aXZlV2luZG93KCk7CisgICAgaWYg
KCF3aW5kb3cpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgQnJvd3NlcldpbmRvdyAqd2lu
ZG93ID0gKEJyb3dzZXJXaW5kb3cgKil3aW5kb3dMaXN0LT5kYXRhOwogICAgIFdlYktpdFdlYlZp
ZXcgKndlYlZpZXcgPSBicm93c2VyX3RhYl9nZXRfd2ViX3ZpZXcod2luZG93LT5hY3RpdmVUYWIp
OwogICAgIGlmIChndGtfbm90ZWJvb2tfZ2V0X25fcGFnZXMoR1RLX05PVEVCT09LKHdpbmRvdy0+
bm90ZWJvb2spKSA9PSAxICYmICF3ZWJraXRfd2ViX3ZpZXdfZ2V0X3VyaSh3ZWJWaWV3KSkgewog
ICAgICAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF91cmkod2ViVmlldywgImFib3V0OmJsYW5rIik7
CkBAIC0xMjQyLDggKzEyNTUsMjkgQEAgV2ViS2l0V2ViVmlldyAqYnJvd3Nlcl93aW5kb3dfZ2V0
X29yX2NyZWF0ZV93ZWJfdmlld19mb3JfYXV0b21hdGlvbih2b2lkKQogICAgICAgICAidXNlci1j
b250ZW50LW1hbmFnZXIiLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3VzZXJfY29udGVudF9tYW5hZ2Vy
KHdlYlZpZXcpLAogICAgICAgICAiaXMtY29udHJvbGxlZC1ieS1hdXRvbWF0aW9uIiwgVFJVRSwK
ICAgICAgICAgTlVMTCkpOworICAgIEd0a1dpZGdldCAqbmV3V2luZG93ID0gYnJvd3Nlcl93aW5k
b3dfbmV3KEdUS19XSU5ET1cod2luZG93KSwgd2luZG93LT53ZWJDb250ZXh0KTsKKyAgICBndGtf
d2luZG93X3NldF9mb2N1c19vbl9tYXAoR1RLX1dJTkRPVyhuZXdXaW5kb3cpLCBGQUxTRSk7Cisg
ICAgYnJvd3Nlcl93aW5kb3dfYXBwZW5kX3ZpZXcoQlJPV1NFUl9XSU5ET1cobmV3V2luZG93KSwg
bmV3V2ViVmlldyk7CisgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfdXJpKG5ld1dlYlZpZXcsICJh
Ym91dDpibGFuayIpOworICAgIGd0a193aWRnZXRfc2hvdyhuZXdXaW5kb3cpOworICAgIHJldHVy
biBuZXdXZWJWaWV3OworfQorCitXZWJLaXRXZWJWaWV3ICpicm93c2VyX3dpbmRvd19jcmVhdGVf
d2ViX3ZpZXdfaW5fbmV3X3RhYl9mb3JfYXV0b21hdGlvbih2b2lkKQoreworICAgIEJyb3dzZXJX
aW5kb3cgKndpbmRvdyA9IGZpbmRBY3RpdmVXaW5kb3coKTsKKyAgICBpZiAoIXdpbmRvdykKKyAg
ICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3ID0gYnJvd3Nl
cl90YWJfZ2V0X3dlYl92aWV3KHdpbmRvdy0+YWN0aXZlVGFiKTsKKyAgICBXZWJLaXRXZWJWaWV3
ICpuZXdXZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9X
RUJfVklFVywKKyAgICAgICAgIndlYi1jb250ZXh0Iiwgd2Via2l0X3dlYl92aWV3X2dldF9jb250
ZXh0KHdlYlZpZXcpLAorICAgICAgICAic2V0dGluZ3MiLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3Nl
dHRpbmdzKHdlYlZpZXcpLAorICAgICAgICAidXNlci1jb250ZW50LW1hbmFnZXIiLCB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X3VzZXJfY29udGVudF9tYW5hZ2VyKHdlYlZpZXcpLAorICAgICAgICAiaXMt
Y29udHJvbGxlZC1ieS1hdXRvbWF0aW9uIiwgVFJVRSwKKyAgICAgICAgImF1dG9tYXRpb24tcHJl
c2VudGF0aW9uLXR5cGUiLCBXRUJLSVRfQVVUT01BVElPTl9CUk9XU0lOR19DT05URVhUX1BSRVNF
TlRBVElPTl9UQUIsCisgICAgICAgIE5VTEwpKTsKICAgICBicm93c2VyX3dpbmRvd19hcHBlbmRf
dmlldyh3aW5kb3csIG5ld1dlYlZpZXcpOwogICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaShu
ZXdXZWJWaWV3LCAiYWJvdXQ6YmxhbmsiKTsKLSAgICBndGtfd2lkZ2V0X2dyYWJfZm9jdXMoR1RL
X1dJREdFVChuZXdXZWJWaWV3KSk7CiAgICAgcmV0dXJuIG5ld1dlYlZpZXc7CiB9CmRpZmYgLS1n
aXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5oIGIvVG9vbHMvTWluaUJy
b3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuaAppbmRleCAxMmJjNDE3Y2ZlZi4uMTU3MGQ2NWVmZmIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmgKKysrIGIv
VG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuaApAQCAtNTIsNiArNTIsNyBAQCB2
b2lkIGJyb3dzZXJfd2luZG93X2xvYWRfdXJpKEJyb3dzZXJXaW5kb3cqLCBjb25zdCBjaGFyICp1
cmkpOwogdm9pZCBicm93c2VyX3dpbmRvd19sb2FkX3Nlc3Npb24oQnJvd3NlcldpbmRvdyAqLCBj
b25zdCBjaGFyICpzZXNzaW9uRmlsZSk7CiB2b2lkIGJyb3dzZXJfd2luZG93X3NldF9iYWNrZ3Jv
dW5kX2NvbG9yKEJyb3dzZXJXaW5kb3cqLCBHZGtSR0JBKik7CiBXZWJLaXRXZWJWaWV3KiBicm93
c2VyX3dpbmRvd19nZXRfb3JfY3JlYXRlX3dlYl92aWV3X2Zvcl9hdXRvbWF0aW9uKHZvaWQpOwor
V2ViS2l0V2ViVmlldyAqYnJvd3Nlcl93aW5kb3dfY3JlYXRlX3dlYl92aWV3X2luX25ld190YWJf
Zm9yX2F1dG9tYXRpb24odm9pZCk7CiAKIEdfRU5EX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L01pbmlCcm93c2VyL2d0ay9tYWluLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFpbi5jCmlu
ZGV4IDkzZDkzNTkyYmM0Li40YzUxNDdkY2QzOCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dz
ZXIvZ3RrL21haW4uYworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFpbi5jCkBAIC00NjUs
MTEgKzQ2NSwxNiBAQCBzdGF0aWMgdm9pZCBhYm91dFVSSVNjaGVtZVJlcXVlc3RDYWxsYmFjayhX
ZWJLaXRVUklTY2hlbWVSZXF1ZXN0ICpyZXF1ZXN0LCBXZWJLaQogICAgIH0KIH0KIAotc3RhdGlj
IEd0a1dpZGdldCAqY3JlYXRlV2ViVmlld0ZvckF1dG9tYXRpb25DYWxsYmFjayhXZWJLaXRBdXRv
bWF0aW9uU2Vzc2lvbiogc2Vzc2lvbikKK3N0YXRpYyBHdGtXaWRnZXQgKmNyZWF0ZVdlYlZpZXdG
b3JBdXRvbWF0aW9uSW5XaW5kb3dDYWxsYmFjayhXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbiogc2Vz
c2lvbikKIHsKICAgICByZXR1cm4gR1RLX1dJREdFVChicm93c2VyX3dpbmRvd19nZXRfb3JfY3Jl
YXRlX3dlYl92aWV3X2Zvcl9hdXRvbWF0aW9uKCkpOwogfQogCitzdGF0aWMgR3RrV2lkZ2V0ICpj
cmVhdGVXZWJWaWV3Rm9yQXV0b21hdGlvbkluVGFiQ2FsbGJhY2soV2ViS2l0QXV0b21hdGlvblNl
c3Npb24qIHNlc3Npb24pCit7CisgICAgcmV0dXJuIEdUS19XSURHRVQoYnJvd3Nlcl93aW5kb3df
Y3JlYXRlX3dlYl92aWV3X2luX25ld190YWJfZm9yX2F1dG9tYXRpb24oKSk7Cit9CisKIHN0YXRp
YyB2b2lkIGF1dG9tYXRpb25TdGFydGVkQ2FsbGJhY2soV2ViS2l0V2ViQ29udGV4dCAqd2ViQ29u
dGV4dCwgV2ViS2l0QXV0b21hdGlvblNlc3Npb24gKnNlc3Npb24pCiB7CiAgICAgV2ViS2l0QXBw
bGljYXRpb25JbmZvICppbmZvID0gd2Via2l0X2FwcGxpY2F0aW9uX2luZm9fbmV3KCk7CkBAIC00
NzcsNyArNDgyLDggQEAgc3RhdGljIHZvaWQgYXV0b21hdGlvblN0YXJ0ZWRDYWxsYmFjayhXZWJL
aXRXZWJDb250ZXh0ICp3ZWJDb250ZXh0LCBXZWJLaXRBdXRvbWEKICAgICB3ZWJraXRfYXV0b21h
dGlvbl9zZXNzaW9uX3NldF9hcHBsaWNhdGlvbl9pbmZvKHNlc3Npb24sIGluZm8pOwogICAgIHdl
YmtpdF9hcHBsaWNhdGlvbl9pbmZvX3VucmVmKGluZm8pOwogCi0gICAgZ19zaWduYWxfY29ubmVj
dChzZXNzaW9uLCAiY3JlYXRlLXdlYi12aWV3IiwgR19DQUxMQkFDSyhjcmVhdGVXZWJWaWV3Rm9y
QXV0b21hdGlvbkNhbGxiYWNrKSwgTlVMTCk7CisgICAgZ19zaWduYWxfY29ubmVjdChzZXNzaW9u
LCAiY3JlYXRlLXdlYi12aWV3Ojp3aW5kb3ciLCBHX0NBTExCQUNLKGNyZWF0ZVdlYlZpZXdGb3JB
dXRvbWF0aW9uSW5XaW5kb3dDYWxsYmFjayksIE5VTEwpOworICAgIGdfc2lnbmFsX2Nvbm5lY3Qo
c2Vzc2lvbiwgImNyZWF0ZS13ZWItdmlldzo6dGFiIiwgR19DQUxMQkFDSyhjcmVhdGVXZWJWaWV3
Rm9yQXV0b21hdGlvbkluVGFiQ2FsbGJhY2spLCBOVUxMKTsKIH0KIAogdHlwZWRlZiBzdHJ1Y3Qg
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RB
dXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcAppbmRleCAyMGI5MjhiNzJiNy4uYjEzMDk5MjE1
NmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
QXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0QXV0b21hdGlvblNlc3Npb24uY3BwCkBAIC0xNjYsNiArMTY2LDE4IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIHRlc3QtPm1fd2ViVmlld0ZvckF1dG9tYXRpb247CiAgICAg
fQogCisgICAgc3RhdGljIFdlYktpdFdlYlZpZXcqIGNyZWF0ZVdlYlZpZXdJbldpbmRvd0NhbGxi
YWNrKFdlYktpdEF1dG9tYXRpb25TZXNzaW9uKiBzZXNzaW9uLCBBdXRvbWF0aW9uVGVzdCogdGVz
dCkKKyAgICB7CisgICAgICAgIHRlc3QtPm1fY3JlYXRlV2ViVmlld0luV2luZG93V2FzQ2FsbGVk
ID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRlc3QtPm1fd2ViVmlld0ZvckF1dG9tYXRpb247Cisg
ICAgfQorCisgICAgc3RhdGljIFdlYktpdFdlYlZpZXcqIGNyZWF0ZVdlYlZpZXdJblRhYkNhbGxi
YWNrKFdlYktpdEF1dG9tYXRpb25TZXNzaW9uKiBzZXNzaW9uLCBBdXRvbWF0aW9uVGVzdCogdGVz
dCkKKyAgICB7CisgICAgICAgIHRlc3QtPm1fY3JlYXRlV2ViVmlld0luVGFiV2FzQ2FsbGVkID0g
dHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRlc3QtPm1fd2ViVmlld0ZvckF1dG9tYXRpb247CisgICAg
fQorCiAgICAgdm9pZCBhdXRvbWF0aW9uU3RhcnRlZChXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbiog
c2Vzc2lvbikKICAgICB7CiAgICAgICAgIG1fc2Vzc2lvbiA9IHNlc3Npb247CkBAIC0yNjIsNiAr
Mjc0LDQyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAorICAgIGJv
b2wgY3JlYXRlTmV3V2luZG93KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCisgICAgeworICAgICAg
ICBtX3dlYlZpZXdGb3JBdXRvbWF0aW9uID0gd2ViVmlldzsKKyAgICAgICAgbV9jcmVhdGVXZWJW
aWV3SW5XaW5kb3dXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgbV9tZXNzYWdlID0geyB9Owor
ICAgICAgICBhdXRvIHNpZ25hbElEID0gZ19zaWduYWxfY29ubmVjdChtX3Nlc3Npb24sICJjcmVh
dGUtd2ViLXZpZXc6OndpbmRvdyIsIEdfQ0FMTEJBQ0soY3JlYXRlV2ViVmlld0luV2luZG93Q2Fs
bGJhY2spLCB0aGlzKTsKKyAgICAgICAgc2VuZENvbW1hbmRUb0JhY2tlbmQoImNyZWF0ZUJyb3dz
aW5nQ29udGV4dCIsICJ7XCJwcmVzZW50YXRpb25IaW50XCI6XCJXaW5kb3dcIn0iKTsKKyAgICAg
ICAgZ19tYWluX2xvb3BfcnVuKG1fbWFpbkxvb3AuZ2V0KCkpOworICAgICAgICBnX3NpZ25hbF9o
YW5kbGVyX2Rpc2Nvbm5lY3QobV9zZXNzaW9uLCBzaWduYWxJRCk7CisgICAgICAgIGdfYXNzZXJ0
X3RydWUobV9jcmVhdGVXZWJWaWV3SW5XaW5kb3dXYXNDYWxsZWQpOworICAgICAgICBnX2Fzc2Vy
dF9mYWxzZShtX21lc3NhZ2UuaXNOdWxsKCkpOworICAgICAgICBtX3dlYlZpZXdGb3JBdXRvbWF0
aW9uID0gbnVsbHB0cjsKKworICAgICAgICBpZiAoc3Ryc3RyKG1fbWVzc2FnZS5kYXRhKCksICJc
InByZXNlbnRhdGlvblwiOlwiV2luZG93XCIiKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgYm9vbCBjcmVhdGVOZXdUYWIoV2Vi
S2l0V2ViVmlldyogd2ViVmlldykKKyAgICB7CisgICAgICAgIG1fd2ViVmlld0ZvckF1dG9tYXRp
b24gPSB3ZWJWaWV3OworICAgICAgICBtX2NyZWF0ZVdlYlZpZXdJblRhYldhc0NhbGxlZCA9IGZh
bHNlOworICAgICAgICBtX21lc3NhZ2UgPSB7IH07CisgICAgICAgIGF1dG8gc2lnbmFsSUQgPSBn
X3NpZ25hbF9jb25uZWN0KG1fc2Vzc2lvbiwgImNyZWF0ZS13ZWItdmlldzo6dGFiIiwgR19DQUxM
QkFDSyhjcmVhdGVXZWJWaWV3SW5UYWJDYWxsYmFjayksIHRoaXMpOworICAgICAgICBzZW5kQ29t
bWFuZFRvQmFja2VuZCgiY3JlYXRlQnJvd3NpbmdDb250ZXh0IiwgIntcInByZXNlbnRhdGlvbkhp
bnRcIjpcIlRhYlwifSIpOworICAgICAgICBnX21haW5fbG9vcF9ydW4obV9tYWluTG9vcC5nZXQo
KSk7CisgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdChtX3Nlc3Npb24sIHNpZ25h
bElEKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShtX2NyZWF0ZVdlYlZpZXdJblRhYldhc0NhbGxl
ZCk7CisgICAgICAgIGdfYXNzZXJ0X2ZhbHNlKG1fbWVzc2FnZS5pc051bGwoKSk7CisgICAgICAg
IG1fd2ViVmlld0ZvckF1dG9tYXRpb24gPSBudWxscHRyOworCisgICAgICAgIGlmIChzdHJzdHIo
bV9tZXNzYWdlLmRhdGEoKSwgIlwicHJlc2VudGF0aW9uXCI6XCJUYWJcIiIpKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKICAgICBHUmVm
UHRyPEdNYWluTG9vcD4gbV9tYWluTG9vcDsKICAgICBHUmVmUHRyPEdEQnVzQ29ubmVjdGlvbj4g
bV9jb25uZWN0aW9uOwogICAgIFdlYktpdEF1dG9tYXRpb25TZXNzaW9uKiBtX3Nlc3Npb247CkBA
IC0yNzAsNiArMzE4LDggQEAgcHVibGljOgogCiAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3
Rm9yQXV0b21hdGlvbiB7IG51bGxwdHIgfTsKICAgICBib29sIG1fY3JlYXRlV2ViVmlld1dhc0Nh
bGxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2NyZWF0ZVdlYlZpZXdJbldpbmRvd1dhc0NhbGxl
ZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2NyZWF0ZVdlYlZpZXdJblRhYldhc0NhbGxlZCB7IGZh
bHNlIH07CiAgICAgQ1N0cmluZyBtX21lc3NhZ2U7CiB9OwogCkBAIC0zMTQsOCArMzY0LDMyIEBA
IHN0YXRpYyB2b2lkIHRlc3RBdXRvbWF0aW9uU2Vzc2lvblJlcXVlc3RTZXNzaW9uKEF1dG9tYXRp
b25UZXN0KiB0ZXN0LCBnY29uc3Rwb2luCiAgICAgICAgICJpcy1jb250cm9sbGVkLWJ5LWF1dG9t
YXRpb24iLCBUUlVFLAogICAgICAgICBudWxscHRyKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJr
aXRfd2ViX3ZpZXdfaXNfY29udHJvbGxlZF9ieV9hdXRvbWF0aW9uKHdlYlZpZXcuZ2V0KCkpKTsK
KyAgICBnX2Fzc2VydF9jbXB1aW50KHdlYmtpdF93ZWJfdmlld19nZXRfYXV0b21hdGlvbl9wcmVz
ZW50YXRpb25fdHlwZSh3ZWJWaWV3LmdldCgpKSwgPT0sIFdFQktJVF9BVVRPTUFUSU9OX0JST1dT
SU5HX0NPTlRFWFRfUFJFU0VOVEFUSU9OX1dJTkRPVyk7CiAgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0
LT5jcmVhdGVUb3BMZXZlbEJyb3dzaW5nQ29udGV4dCh3ZWJWaWV3LmdldCgpKSk7CiAKKyAgICBh
dXRvIG5ld1dlYlZpZXdJbldpbmRvdyA9IFRlc3Q6OmFkb3B0VmlldyhnX29iamVjdF9uZXcoV0VC
S0lUX1RZUEVfV0VCX1ZJRVcsCisjaWYgUExBVEZPUk0oV1BFKQorICAgICAgICAiYmFja2VuZCIs
IFRlc3Q6OmNyZWF0ZVdlYlZpZXdCYWNrZW5kKCksCisjZW5kaWYKKyAgICAgICAgIndlYi1jb250
ZXh0IiwgdGVzdC0+bV93ZWJDb250ZXh0LmdldCgpLAorICAgICAgICAiaXMtY29udHJvbGxlZC1i
eS1hdXRvbWF0aW9uIiwgVFJVRSwKKyAgICAgICAgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3Ry
dWUod2Via2l0X3dlYl92aWV3X2lzX2NvbnRyb2xsZWRfYnlfYXV0b21hdGlvbihuZXdXZWJWaWV3
SW5XaW5kb3cuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHdlYmtpdF93ZWJfdmlld19n
ZXRfYXV0b21hdGlvbl9wcmVzZW50YXRpb25fdHlwZShuZXdXZWJWaWV3SW5XaW5kb3cuZ2V0KCkp
LCA9PSwgV0VCS0lUX0FVVE9NQVRJT05fQlJPV1NJTkdfQ09OVEVYVF9QUkVTRU5UQVRJT05fV0lO
RE9XKTsKKyAgICBnX2Fzc2VydF90cnVlKHRlc3QtPmNyZWF0ZU5ld1dpbmRvdyhuZXdXZWJWaWV3
SW5XaW5kb3cuZ2V0KCkpKTsKKworICAgIGF1dG8gbmV3V2ViVmlld0luVGFiID0gVGVzdDo6YWRv
cHRWaWV3KGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfVklFVywKKyNpZiBQTEFURk9STShX
UEUpCisgICAgICAgICJiYWNrZW5kIiwgVGVzdDo6Y3JlYXRlV2ViVmlld0JhY2tlbmQoKSwKKyNl
bmRpZgorICAgICAgICAid2ViLWNvbnRleHQiLCB0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0KCksCisg
ICAgICAgICJpcy1jb250cm9sbGVkLWJ5LWF1dG9tYXRpb24iLCBUUlVFLAorICAgICAgICAiYXV0
b21hdGlvbi1wcmVzZW50YXRpb24tdHlwZSIsIFdFQktJVF9BVVRPTUFUSU9OX0JST1dTSU5HX0NP
TlRFWFRfUFJFU0VOVEFUSU9OX1RBQiwKKyAgICAgICAgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0
X3RydWUod2Via2l0X3dlYl92aWV3X2lzX2NvbnRyb2xsZWRfYnlfYXV0b21hdGlvbihuZXdXZWJW
aWV3SW5UYWIuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KHdlYmtpdF93ZWJfdmlld19n
ZXRfYXV0b21hdGlvbl9wcmVzZW50YXRpb25fdHlwZShuZXdXZWJWaWV3SW5UYWIuZ2V0KCkpLCA9
PSwgV0VCS0lUX0FVVE9NQVRJT05fQlJPV1NJTkdfQ09OVEVYVF9QUkVTRU5UQVRJT05fVEFCKTsK
KyAgICBnX2Fzc2VydF90cnVlKHRlc3QtPmNyZWF0ZU5ld1RhYihuZXdXZWJWaWV3SW5UYWIuZ2V0
KCkpKTsKKwogICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfYXV0b21hdGlvbl9hbGxvd2VkKHRl
c3QtPm1fd2ViQ29udGV4dC5nZXQoKSwgRkFMU0UpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383258</attachid>
            <date>2019-11-11 02:45:06 -0800</date>
            <delta_ts>2019-11-11 13:33:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wd-new-window.diff</filename>
            <type>text/plain</type>
            <size>32954</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkRyaXZl
ci9DaGFuZ2VMb2cKaW5kZXggM2JiMWZlNGFjN2EuLmI3YWVmYmYyNzE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViRHJpdmVyL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTExLTA4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBXZWJEcml2ZXI6IGltcGxlbWVudCBu
ZXcgd2luZG93IGNvbW1hbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMzk5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJEcml2ZXI6OlNlc3Npb246Om5l
d1dpbmRvdyk6CisgICAgICAgICogU2Vzc2lvbi5oOgorICAgICAgICAqIFdlYkRyaXZlclNlcnZp
Y2UuY3BwOgorICAgICAgICAoV2ViRHJpdmVyOjpXZWJEcml2ZXJTZXJ2aWNlOjpuZXdXaW5kb3cp
OgorICAgICAgICAqIFdlYkRyaXZlclNlcnZpY2UuaDoKKwogMjAxOS0xMS0xMSAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBp
bXBsZW1lbnQgcHJveHkgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkRyaXZlci9TZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKaW5kZXggMjJjNjZiM2VkNDku
LjI4MmFlNzQyMjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJEcml2ZXIvU2Vzc2lvbi5jcHAKQEAgLTU4Niw2ICs1ODYsNDcgQEAgdm9p
ZCBTZXNzaW9uOjpnZXRXaW5kb3dIYW5kbGVzKEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQm
Jik+JiYgY29tcGxldGlvbkhhbmQKICAgICB9KTsKIH0KIAordm9pZCBTZXNzaW9uOjpuZXdXaW5k
b3coT3B0aW9uYWw8U3RyaW5nPiB0eXBlSGludCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3Vs
dCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fdG9wbGV2ZWxCcm93c2lu
Z0NvbnRleHQpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFp
bChDb21tYW5kUmVzdWx0OjpFcnJvckNvZGU6Ok5vU3VjaFdpbmRvdykpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaGFuZGxlVXNlclByb21wdHMoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgdHlwZUhpbnQsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKENvbW1hbmRSZXN1bHQmJiByZXN1bHQpIG11dGFibGUgeworICAg
ICAgICBpZiAocmVzdWx0LmlzRXJyb3IoKSkgeworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIFJlZlB0cjxKU09OOjpPYmplY3Q+IHBhcmFtZXRlcnM7CisgICAgICAgIGlmICh0eXBl
SGludCkgeworICAgICAgICAgICAgcGFyYW1ldGVycyA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7
CisgICAgICAgICAgICBwYXJhbWV0ZXJzLT5zZXRTdHJpbmcoInByZXNlbnRhdGlvbkhpbnQiX3Ms
IHR5cGVIaW50LnZhbHVlKCkgPT0gIndpbmRvdyIgPyAiV2luZG93Il9zIDogIlRhYiJfcyk7Cisg
ICAgICAgIH0KKyAgICAgICAgbV9ob3N0LT5zZW5kQ29tbWFuZFRvQmFja2VuZCgiY3JlYXRlQnJv
d3NpbmdDb250ZXh0Il9zLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IHByb3RlY3RlZFRoaXMuY29weVJlZigpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXShTZXNzaW9uSG9zdDo6Q29tbWFuZFJlc3BvbnNlJiYgcmVzcG9u
c2UpIHsKKyAgICAgICAgICAgIGlmIChyZXNwb25zZS5pc0Vycm9yIHx8ICFyZXNwb25zZS5yZXNw
b25zZU9iamVjdCkgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKENvbW1hbmRS
ZXN1bHQ6OmZhaWwoV1RGTW92ZShyZXNwb25zZS5yZXNwb25zZU9iamVjdCkpKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBTdHJpbmcgaGFuZGxl
OworICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5yZXNwb25zZU9iamVjdC0+Z2V0U3RyaW5nKCJo
YW5kbGUiX3MsIGhhbmRsZSkpIHsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihD
b21tYW5kUmVzdWx0OjpmYWlsKENvbW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6VW5rbm93bkVycm9y
KSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
U3RyaW5nIHByZXNlbnRhdGlvbjsKKyAgICAgICAgICAgIGlmICghcmVzcG9uc2UucmVzcG9uc2VP
YmplY3QtPmdldFN0cmluZygicHJlc2VudGF0aW9uIl9zLCBwcmVzZW50YXRpb24pKSB7CisgICAg
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6ZmFpbChDb21tYW5k
UmVzdWx0OjpFcnJvckNvZGU6OlVua25vd25FcnJvcikpOworICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFJlZlB0cjxKU09OOjpPYmplY3Q+IHJlc3Vs
dCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgICAgICAgICByZXN1bHQtPnNldFN0cmlu
ZygiaGFuZGxlIl9zLCBoYW5kbGUpOworICAgICAgICAgICAgcmVzdWx0LT5zZXRTdHJpbmcoInR5
cGUiX3MsIHByZXNlbnRhdGlvbiA9PSAiV2luZG93Il9zID8gIndpbmRvdyJfcyA6ICJ0YWIiX3Mp
OworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQ29tbWFuZFJlc3VsdDo6c3VjY2VzcyhX
VEZNb3ZlKHJlc3VsdCkpKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKIHZvaWQgU2Vzc2lv
bjo6c3dpdGNoVG9GcmFtZShSZWZQdHI8SlNPTjo6VmFsdWU+JiYgZnJhbWVJRCwgRnVuY3Rpb248
dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAo
IW1fdG9wbGV2ZWxCcm93c2luZ0NvbnRleHQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2
ZXIvU2Vzc2lvbi5oIGIvU291cmNlL1dlYkRyaXZlci9TZXNzaW9uLmgKaW5kZXggNDY2YWJlMWYx
OWQuLjFmZTI4YjIwOGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViRHJpdmVyL1Nlc3Npb24uaApAQCAtODYsNiArODYsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjbG9zZVdpbmRvdyhGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYm
KTsKICAgICB2b2lkIHN3aXRjaFRvV2luZG93KGNvbnN0IFN0cmluZyYgd2luZG93SGFuZGxlLCBG
dW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKICAgICB2b2lkIGdldFdpbmRvd0hh
bmRsZXMoRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CisgICAgdm9pZCBuZXdX
aW5kb3coT3B0aW9uYWw8U3RyaW5nPiB0eXBlSGludCwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJl
c3VsdCYmKT4mJik7CiAgICAgdm9pZCBzd2l0Y2hUb0ZyYW1lKFJlZlB0cjxKU09OOjpWYWx1ZT4m
JiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBzd2l0Y2hU
b1BhcmVudEZyYW1lKEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZv
aWQgZ2V0V2luZG93UmVjdChGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2VydmljZS5jcHAgYi9Tb3VyY2Uv
V2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCmluZGV4IDgxOGMyNWQ0MWM0Li4wZmIzYTM5
ZjBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViRHJpdmVyL1dlYkRyaXZlclNlcnZpY2UuY3BwCkBAIC0xMjYsNiArMTI2
LDcgQEAgY29uc3QgV2ViRHJpdmVyU2VydmljZTo6Q29tbWFuZCBXZWJEcml2ZXJTZXJ2aWNlOjpz
X2NvbW1hbmRzW10gPSB7CiAgICAgeyBIVFRQTWV0aG9kOjpEZWxldGUsICIvc2Vzc2lvbi8kc2Vz
c2lvbklkL3dpbmRvdyIsICZXZWJEcml2ZXJTZXJ2aWNlOjpjbG9zZVdpbmRvdyB9LAogICAgIHsg
SFRUUE1ldGhvZDo6UG9zdCwgIi9zZXNzaW9uLyRzZXNzaW9uSWQvd2luZG93IiwgJldlYkRyaXZl
clNlcnZpY2U6OnN3aXRjaFRvV2luZG93IH0sCiAgICAgeyBIVFRQTWV0aG9kOjpHZXQsICIvc2Vz
c2lvbi8kc2Vzc2lvbklkL3dpbmRvdy9oYW5kbGVzIiwgJldlYkRyaXZlclNlcnZpY2U6OmdldFdp
bmRvd0hhbmRsZXMgfSwKKyAgICB7IEhUVFBNZXRob2Q6OlBvc3QsICIvc2Vzc2lvbi8kc2Vzc2lv
bklkL3dpbmRvdy9uZXciLCAmV2ViRHJpdmVyU2VydmljZTo6bmV3V2luZG93IH0sCiAgICAgeyBI
VFRQTWV0aG9kOjpQb3N0LCAiL3Nlc3Npb24vJHNlc3Npb25JZC9mcmFtZSIsICZXZWJEcml2ZXJT
ZXJ2aWNlOjpzd2l0Y2hUb0ZyYW1lIH0sCiAgICAgeyBIVFRQTWV0aG9kOjpQb3N0LCAiL3Nlc3Np
b24vJHNlc3Npb25JZC9mcmFtZS9wYXJlbnQiLCAmV2ViRHJpdmVyU2VydmljZTo6c3dpdGNoVG9Q
YXJlbnRGcmFtZSB9LAogICAgIHsgSFRUUE1ldGhvZDo6R2V0LCAiL3Nlc3Npb24vJHNlc3Npb25J
ZC93aW5kb3cvcmVjdCIsICZXZWJEcml2ZXJTZXJ2aWNlOjpnZXRXaW5kb3dSZWN0IH0sCkBAIC0x
MTM5LDYgKzExNDAsMjkgQEAgdm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpnZXRXaW5kb3dIYW5kbGVz
KFJlZlB0cjxKU09OOjpPYmplY3Q+JiYgcGFyYW1ldGVycywgRnVuY3QKICAgICAgICAgbV9zZXNz
aW9uLT5nZXRXaW5kb3dIYW5kbGVzKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAor
dm9pZCBXZWJEcml2ZXJTZXJ2aWNlOjpuZXdXaW5kb3coUmVmUHRyPEpTT046Ok9iamVjdD4mJiBw
YXJhbWV0ZXJzLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIC8vIMKnMTEuNSBOZXcgV2luZG93CisgICAgLy8gaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL3dlYmRyaXZlci8jbmV3LXdpbmRvdworICAgIGlmICghZmluZFNlc3Npb25PckNv
bXBsZXRlV2l0aEVycm9yKCpwYXJhbWV0ZXJzLCBjb21wbGV0aW9uSGFuZGxlcikpCisgICAgICAg
IHJldHVybjsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdHlwZUhpbnQ7CisgICAgUmVmUHRyPEpT
T046OlZhbHVlPiB2YWx1ZTsKKyAgICBpZiAocGFyYW1ldGVycy0+Z2V0VmFsdWUoInR5cGUiX3Ms
IHZhbHVlKSkgeworICAgICAgICBTdHJpbmcgdmFsdWVTdHJpbmc7CisgICAgICAgIGlmICh2YWx1
ZS0+YXNTdHJpbmcodmFsdWVTdHJpbmcpKSB7CisgICAgICAgICAgICBpZiAodmFsdWVTdHJpbmcg
PT0gIndpbmRvdyIgfHwgdmFsdWVTdHJpbmcgPT0gInRhYiIpCisgICAgICAgICAgICAgICAgdHlw
ZUhpbnQgPSB2YWx1ZVN0cmluZzsKKyAgICAgICAgfSBlbHNlIGlmICghdmFsdWUtPmlzTnVsbCgp
KSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihDb21tYW5kUmVzdWx0OjpmYWlsKENv
bW1hbmRSZXN1bHQ6OkVycm9yQ29kZTo6SW52YWxpZEFyZ3VtZW50KSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtX3Nlc3Npb24tPm5ld1dpbmRvdyh0eXBl
SGludCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiB2b2lkIFdlYkRyaXZlclNl
cnZpY2U6OnN3aXRjaFRvRnJhbWUoUmVmUHRyPEpTT046Ok9iamVjdD4mJiBwYXJhbWV0ZXJzLCBG
dW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIC8vIMKnMTAuNSBTd2l0Y2ggVG8gRnJhbWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViRHJp
dmVyL1dlYkRyaXZlclNlcnZpY2UuaCBiL1NvdXJjZS9XZWJEcml2ZXIvV2ViRHJpdmVyU2Vydmlj
ZS5oCmluZGV4IGNlNmQxNWNmZDliLi5hMzRiZWI4ZjBkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkRyaXZlci9XZWJEcml2ZXJTZXJ2aWNlLmgKKysrIGIvU291cmNlL1dlYkRyaXZlci9XZWJEcml2
ZXJTZXJ2aWNlLmgKQEAgLTc1LDYgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsb3NlV2lu
ZG93KFJlZlB0cjxKU09OOjpPYmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQm
Jik+JiYpOwogICAgIHZvaWQgc3dpdGNoVG9XaW5kb3coUmVmUHRyPEpTT046Ok9iamVjdD4mJiwg
RnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBnZXRXaW5kb3dI
YW5kbGVzKFJlZlB0cjxKU09OOjpPYmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1
bHQmJik+JiYpOworICAgIHZvaWQgbmV3V2luZG93KFJlZlB0cjxKU09OOjpPYmplY3Q+JiYsIEZ1
bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1bHQmJik+JiYpOwogICAgIHZvaWQgc3dpdGNoVG9GcmFt
ZShSZWZQdHI8SlNPTjo6T2JqZWN0PiYmLCBGdW5jdGlvbjx2b2lkIChDb21tYW5kUmVzdWx0JiYp
PiYmKTsKICAgICB2b2lkIHN3aXRjaFRvUGFyZW50RnJhbWUoUmVmUHRyPEpTT046Ok9iamVjdD4m
JiwgRnVuY3Rpb248dm9pZCAoQ29tbWFuZFJlc3VsdCYmKT4mJik7CiAgICAgdm9pZCBnZXRXaW5k
b3dSZWN0KFJlZlB0cjxKU09OOjpPYmplY3Q+JiYsIEZ1bmN0aW9uPHZvaWQgKENvbW1hbmRSZXN1
bHQmJik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNDFkODE4NjNjZC4uNjI2MjFlNmI1ZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjkgQEAKKzIwMTktMTEtMDggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIFdlYkRyaXZlcjogaW1wbGVtZW50IG5l
dyB3aW5kb3cgY29tbWFuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzOTk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIG5ldyBBUEkgdG8gc3VwcG9ydCBuZXcgd2luZG93IGNvbW1hbmQuIFRoZSBX
ZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbjo6Y3JlYXRlLXdlYi12aWV3IHNpZ25hbCBjYW4gbm93IHJl
Y2VpdmUgYQorICAgICAgICBkZXRhaWwgdGhhdCBjYW4gYmUgIndpbmRvdyIgb3IgInRhYiIuIEFw
cGxpY2F0aW9ucyBjYW4gdXNlIHRoYXQgdG8gZGVjaWRlIHdoZXRoZXIgdG8gYWRkIHRoZSBuZXcg
d2VidmlldyB0byBhCisgICAgICAgIG5ldyB3aW5kb3cgb3IgdGFiLiBXZWJLaXRXZWJWaWV3IGhh
cyBhIG5ldyBjb25zdHJ1Y3Qgb25seSBwcm9wZXJ0eSBhdXRvbWF0aW9uLXByZXNlbnRhdGlvbi10
eXBlLCB3aGljaCBpcyBhbgorICAgICAgICBlbnVtIHRoYXQgY2FuIGJlIGVpdGhlciB3aW5kb3cg
b3IgdGFiIHZhbHVlLiBBcHBwbGljYXRpb25zIHNob3VsZCB1c2UgdGhlIG5ldyBwcm9wZXJ0eSB3
aGVuIGNyZWF0aW5nIHRoZSB3ZWIKKyAgICAgICAgdmlldyBmb3IgYXV0b21hdGlvbiB0byBpbmRp
Y2F0ZSB3aGV0aGVyIHRoZSB3ZWIgdmlldyB3YXMgYWRkZWQgdG8gYSBuZXcgd2luZG93IG9yIHRh
Yi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lv
bi5jcHA6CisgICAgICAgICh3ZWJraXRfYXV0b21hdGlvbl9zZXNzaW9uX2NsYXNzX2luaXQpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAg
KHdlYmtpdFdlYlZpZXdTZXRQcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRXZWJWaWV3R2V0UHJv
cGVydHkpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgorICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2dldF9hdXRvbWF0aW9uX3ByZXNlbnRhdGlvbl90eXBlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dDoKKwogMjAxOS0xMS0xMSAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2ViRHJpdmVyOiBp
bXBsZW1lbnQgcHJveHkgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IDc4ODRl
OGE1NzkyLi5kYmJmNWU5ZThkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtOTAsMTAg
KzkwLDExIEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB9CiAKLSAgICB2b2lkIHJlcXVlc3ROZXdQ
YWdlV2l0aE9wdGlvbnMoV2ViQXV0b21hdGlvblNlc3Npb24mLCBBUEk6OkF1dG9tYXRpb25TZXNz
aW9uQnJvd3NpbmdDb250ZXh0T3B0aW9ucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJQYWdl
UHJveHkqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGUKKyAgICB2b2lkIHJlcXVlc3RO
ZXdQYWdlV2l0aE9wdGlvbnMoV2ViQXV0b21hdGlvblNlc3Npb24mLCBBUEk6OkF1dG9tYXRpb25T
ZXNzaW9uQnJvd3NpbmdDb250ZXh0T3B0aW9ucyBvcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYlBhZ2VQcm94eSopPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBvdmVycmlkZQogICAgIHsK
ICAgICAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IG51bGxwdHI7Ci0gICAgICAgIGdfc2ln
bmFsX2VtaXQobV9zZXNzaW9uLCBzaWduYWxzW0NSRUFURV9XRUJfVklFV10sIDAsICZ3ZWJWaWV3
KTsKKyAgICAgICAgR1F1YXJrIGRldGFpbCA9IG9wdGlvbnMgJiBBUEk6OkF1dG9tYXRpb25TZXNz
aW9uQnJvd3NpbmdDb250ZXh0T3B0aW9uc1ByZWZlck5ld1RhYiA/IGdfcXVhcmtfZnJvbV9zdHJp
bmcoInRhYiIpIDogZ19xdWFya19mcm9tX3N0cmluZygid2luZG93Iik7CisgICAgICAgIGdfc2ln
bmFsX2VtaXQobV9zZXNzaW9uLCBzaWduYWxzW0NSRUFURV9XRUJfVklFV10sIGRldGFpbCwgJndl
YlZpZXcpOwogICAgICAgICBpZiAoIXdlYlZpZXcgfHwgIXdlYmtpdF93ZWJfdmlld19pc19jb250
cm9sbGVkX2J5X2F1dG9tYXRpb24od2ViVmlldykpCiAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihudWxscHRyKTsKICAgICAgICAgZWxzZQpAQCAtMTg3LDYgKzE4OCwyMiBAQCBwcml2YXRl
OgogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIAorICAgIEFQSTo6QXV0b21h
dGlvblNlc3Npb25DbGllbnQ6OkJyb3dzaW5nQ29udGV4dFByZXNlbnRhdGlvbiBjdXJyZW50UHJl
c2VudGF0aW9uT2ZQYWdlKFdlYkF1dG9tYXRpb25TZXNzaW9uJiwgV2ViUGFnZVByb3h5JiBwYWdl
KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgYXV0byogd2ViVmlldyA9IHdlYmtpdFdlYkNvbnRl
eHRHZXRXZWJWaWV3Rm9yUGFnZShtX3Nlc3Npb24tPnByaXYtPndlYkNvbnRleHQsICZwYWdlKTsK
KyAgICAgICAgaWYgKCF3ZWJWaWV3KQorICAgICAgICAgICAgcmV0dXJuIEFQSTo6QXV0b21hdGlv
blNlc3Npb25DbGllbnQ6OkJyb3dzaW5nQ29udGV4dFByZXNlbnRhdGlvbjo6V2luZG93OworCisg
ICAgICAgIHN3aXRjaCAod2Via2l0X3dlYl92aWV3X2dldF9hdXRvbWF0aW9uX3ByZXNlbnRhdGlv
bl90eXBlKHdlYlZpZXcpKSB7CisgICAgICAgIGNhc2UgV0VCS0lUX0FVVE9NQVRJT05fQlJPV1NJ
TkdfQ09OVEVYVF9QUkVTRU5UQVRJT05fV0lORE9XOgorICAgICAgICAgICAgcmV0dXJuIEFQSTo6
QXV0b21hdGlvblNlc3Npb25DbGllbnQ6OkJyb3dzaW5nQ29udGV4dFByZXNlbnRhdGlvbjo6V2lu
ZG93OworICAgICAgICBjYXNlIFdFQktJVF9BVVRPTUFUSU9OX0JST1dTSU5HX0NPTlRFWFRfUFJF
U0VOVEFUSU9OX1RBQjoKKyAgICAgICAgICAgIHJldHVybiBBUEk6OkF1dG9tYXRpb25TZXNzaW9u
Q2xpZW50OjpCcm93c2luZ0NvbnRleHRQcmVzZW50YXRpb246OlRhYjsKKyAgICAgICAgfQorCisg
ICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCiAgICAgV2ViS2l0
QXV0b21hdGlvblNlc3Npb24qIG1fc2Vzc2lvbjsKIH07CiAKQEAgLTI3Myw4ICsyOTAsMTUgQEAg
c3RhdGljIHZvaWQgd2Via2l0X2F1dG9tYXRpb25fc2Vzc2lvbl9jbGFzc19pbml0KFdlYktpdEF1
dG9tYXRpb25TZXNzaW9uQ2xhc3MqIHMKICAgICAgKiBUaGlzIHNpZ25hbCBpcyBlbWl0dGVkIHdo
ZW4gdGhlIGF1dG9tYXRpb24gY2xpZW50IHJlcXVlc3RzIGEgbmV3CiAgICAgICogYnJvd3Npbmcg
Y29udGV4dCB0byBpbnRlcmFjdCB3aXRoIGl0LiBUaGUgY2FsbGJhY2sgaGFuZGxlciBzaG91bGQK
ICAgICAgKiByZXR1cm4gYSAjV2ViS2l0V2ViVmlldyBjcmVhdGVkIHdpdGggI1dlYktpdFdlYlZp
ZXc6aXMtY29udHJvbGxlZC1ieS1hdXRvbWF0aW9uCi0gICAgICogY29uc3RydWN0IHByb3BlcnR5
IGVuYWJsZWQuIFRoZSByZXR1cm5lZCAjV2ViS2l0V2ViVmlldyBjb3VsZCBiZSBhbiBleGlzdGlu
ZwotICAgICAqIHdlYiB2aWV3IG9yIGEgbmV3IG9uZSBjcmVhdGVkIGFuZCBhZGRlZCB0byBhIG5l
dyB0YWIgb3Igd2luZG93LgorICAgICAqIGNvbnN0cnVjdCBwcm9wZXJ0eSBlbmFibGVkIGFuZCAj
V2ViS2l0V2ViVmlldzphdXRvbWF0aW9uLXByZXNlbnRhdGlvbi10eXBlIGNvbnN0cnVjdAorICAg
ICAqIHByb3BlcnR5IHNldCBpZiBuZWVkZWQuCisgICAgICoKKyAgICAgKiBJZiB0aGUgc2lnbmFs
IGlzIGVtaXR0ZWQgd2l0aCAidGFiIiBkZXRhaWwsIHRoZSByZXR1cm5lZCAjV2ViS2l0V2ViVmll
dyBzaG91bGQgYmUKKyAgICAgKiBhIG5ldyB3ZWIgdmlldyBhZGRlZCB0byBhIG5ldyB0YWIgb2Yg
dGhlIGN1cnJlbnQgYnJvd3NpbmcgY29udGV4dCB3aW5kb3cuCisgICAgICogSWYgdGhlIHNpZ25h
bCBpcyBlbWl0dGVkIHdpdGggIndpbmRvdyIgZGV0YWlsLCB0aGUgcmV0dXJuZWQgI1dlYktpdFdl
YlZpZXcgc2hvdWxkIGJlCisgICAgICogYSBuZXcgd2ViIHZpZXcgYWRkZWQgdG8gYSBuZXcgd2lu
ZG93LgorICAgICAqIFdoZW4gY3JlYXRpbmcgYSBuZXcgd2ViIHZpZXcgYW5kIHRoZXJlJ3MgYW4g
YWN0aXZlIGJyb3dzaW5nIGNvbnRleHQsIHRoZSBuZXcgd2luZG93CisgICAgICogb3IgdGFiIHNo
b3VsZG4ndCBiZSBmb2N1c2VkLgogICAgICAqCiAgICAgICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOiBhICNXZWJLaXRXZWJWaWV3IHdpZGdldC4KICAgICAgKgpAQCAtMjgzLDcgKzMwNyw3IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdF9hdXRvbWF0aW9uX3Nlc3Npb25fY2xhc3NfaW5pdChXZWJLaXRB
dXRvbWF0aW9uU2Vzc2lvbkNsYXNzKiBzCiAgICAgc2lnbmFsc1tDUkVBVEVfV0VCX1ZJRVddID0g
Z19zaWduYWxfbmV3KAogICAgICAgICAiY3JlYXRlLXdlYi12aWV3IiwKICAgICAgICAgR19UWVBF
X0ZST01fQ0xBU1Moc2Vzc2lvbkNsYXNzKSwKLSAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCisg
ICAgICAgIHN0YXRpY19jYXN0PEdTaWduYWxGbGFncz4oR19TSUdOQUxfUlVOX0xBU1QgfCBHX1NJ
R05BTF9ERVRBSUxFRCksCiAgICAgICAgIDAsCiAgICAgICAgIG51bGxwdHIsIG51bGxwdHIsCiAg
ICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9nZW5lcmljLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCA0Nzg2MGVmYzYzYy4u
ZDIxYzc4MmVkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXcuY3BwCkBAIC0xOTUsNiArMTk1LDcgQEAgZW51bSB7CiAgICAgUFJPUF9J
U19QTEFZSU5HX0FVRElPLAogICAgIFBST1BfSVNfRVBIRU1FUkFMLAogICAgIFBST1BfSVNfQ09O
VFJPTExFRF9CWV9BVVRPTUFUSU9OLAorICAgIFBST1BfQVVUT01BVElPTl9QUkVTRU5UQVRJT05f
VFlQRSwKICAgICBQUk9QX0VESVRBQkxFLAogICAgIFBST1BfUEFHRV9JRAogfTsKQEAgLTI1OCw2
ICsyNTksNyBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdQcml2YXRlIHsKICAgICBib29sIGlzTG9h
ZGluZzsKICAgICBib29sIGlzRXBoZW1lcmFsOwogICAgIGJvb2wgaXNDb250cm9sbGVkQnlBdXRv
bWF0aW9uOworICAgIFdlYktpdEF1dG9tYXRpb25Ccm93c2luZ0NvbnRleHRQcmVzZW50YXRpb24g
YXV0b21hdGlvblByZXNlbnRhdGlvblR5cGU7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZUxv
YWRTdGF0ZU9ic2VydmVyPiBsb2FkT2JzZXJ2ZXI7CiAKQEAgLTgyMCw2ICs4MjIsOSBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRXZWJWaWV3U2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wSWQsIGNvbnN0IEdWYWx1ZQogICAgIGNhc2UgUFJPUF9JU19DT05UUk9MTEVEX0JZX0FVVE9N
QVRJT046CiAgICAgICAgIHdlYlZpZXctPnByaXYtPmlzQ29udHJvbGxlZEJ5QXV0b21hdGlvbiA9
IGdfdmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBS
T1BfQVVUT01BVElPTl9QUkVTRU5UQVRJT05fVFlQRToKKyAgICAgICAgd2ViVmlldy0+cHJpdi0+
YXV0b21hdGlvblByZXNlbnRhdGlvblR5cGUgPSBzdGF0aWNfY2FzdDxXZWJLaXRBdXRvbWF0aW9u
QnJvd3NpbmdDb250ZXh0UHJlc2VudGF0aW9uPihnX3ZhbHVlX2dldF9lbnVtKHZhbHVlKSk7Cisg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9FRElUQUJMRToKICAgICAgICAgd2Via2l0X3dl
Yl92aWV3X3NldF9lZGl0YWJsZSh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7
CiAgICAgICAgIGJyZWFrOwpAQCAtODc2LDYgKzg4MSw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdl
YlZpZXdHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2
YWx1CiAgICAgY2FzZSBQUk9QX0lTX0NPTlRST0xMRURfQllfQVVUT01BVElPTjoKICAgICAgICAg
Z192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX2NvbnRyb2xsZWRf
YnlfYXV0b21hdGlvbih3ZWJWaWV3KSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9B
VVRPTUFUSU9OX1BSRVNFTlRBVElPTl9UWVBFOgorICAgICAgICBnX3ZhbHVlX3NldF9lbnVtKHZh
bHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2F1dG9tYXRpb25fcHJlc2VudGF0aW9uX3R5cGUod2Vi
VmlldykpOworICAgICAgICBicmVhazsKICAgICBjYXNlIFBST1BfRURJVEFCTEU6CiAgICAgICAg
IGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJfdmlld19pc19lZGl0YWJsZSh3
ZWJWaWV3KSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTE5NSw2ICsxMjAzLDI3IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmll
d0NsYXNzKQogICAgICAgICAgICAgRkFMU0UsCiAgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFy
YW1GbGFncz4oV0VCS0lUX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkp
KSk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJWaWV3OmF1dG9tYXRpb24tcHJlc2VudGF0
aW9uLXR5cGU6CisgICAgICoKKyAgICAgKiBUaGUgI1dlYktpdEF1dG9tYXRpb25Ccm93c2luZ0Nv
bnRleHRQcmVzZW50YXRpb24gb2YgI1dlYktpdFdlYlZpZXcuIFRoaXMgc2hvdWxkIG9ubHkgYmUg
dXNlZCB3aGVuCisgICAgICogY3JlYXRpbmcgYSBuZXcgI1dlYktpdFdlYlZpZXcgYXMgYSByZXNw
b25zZSB0byAjV2ViS2l0QXV0b21hdGlvblNlc3Npb246OmNyZWF0ZS13ZWItdmlldworICAgICAq
IHNpZ25hbCByZXF1ZXN0LiBJZiB0aGUgbmV3IFdlYlZpZXcgd2FzIGFkZGVkIHRvIGEgbmV3IHRh
YiBvZiBjdXJyZW50IGJyb3dzaW5nIGNvbnRleHQgd2luZG93CisgICAgICogJVdFQktJVF9BVVRP
TUFUSU9OX0JST1dTSU5HX0NPTlRFWFRfUFJFU0VOVEFUSU9OX1RBQiBzaG91bGQgYmUgdXNlZC4K
KyAgICAgKgorICAgICAqIFNpbmNlOiAyLjI4CisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ09iamVjdENsYXNzLAorICAgICAgICBQUk9QX0FV
VE9NQVRJT05fUFJFU0VOVEFUSU9OX1RZUEUsCisgICAgICAgIGdfcGFyYW1fc3BlY19lbnVtKAor
ICAgICAgICAgICAgImF1dG9tYXRpb24tcHJlc2VudGF0aW9uLXR5cGUiLAorICAgICAgICAgICAg
IkF1dG9tYXRpb24gUHJlc2VudGF0aW9uIFR5cGUiLAorICAgICAgICAgICAgXygiVGhlIGJyb3dz
aW5nIGNvbnRleHQgcHJlc2VudGF0aW9uIHR5cGUgZm9yIGF1dG9tYXRpb24iKSwKKyAgICAgICAg
ICAgIFdFQktJVF9UWVBFX0FVVE9NQVRJT05fQlJPV1NJTkdfQ09OVEVYVF9QUkVTRU5UQVRJT04s
CisgICAgICAgICAgICBXRUJLSVRfQVVUT01BVElPTl9CUk9XU0lOR19DT05URVhUX1BSRVNFTlRB
VElPTl9XSU5ET1csCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oV0VCS0lU
X1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fQ09OU1RSVUNUX09OTFkpKSk7CisKICAgICAvKioK
ICAgICAgKiBXZWJLaXRXZWJWaWV3OmVkaXRhYmxlOgogICAgICAqCkBAIC0yNzQ3LDYgKzI3NzYs
MjMgQEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2lzX2NvbnRyb2xsZWRfYnlfYXV0b21hdGlv
bihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHJldHVybiB3ZWJWaWV3LT5wcml2LT5pc0Nv
bnRyb2xsZWRCeUF1dG9tYXRpb247CiB9CiAKKy8qKgorICogd2Via2l0X3dlYl92aWV3X2dldF9h
dXRvbWF0aW9uX3ByZXNlbnRhdGlvbl90eXBlOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJW
aWV3CisgKgorICogR2V0IHRoZSBwcmVzZW50YXRpb24gdHlwZSBvZiAjV2ViS2l0V2ViVmlldyB3
aGVuIGNyZWF0ZWQgZm9yIGF1dG9tYXRpb24uCisgKgorICogUmV0dXJuczogYSAjV2ViS2l0QXV0
b21hdGlvbkJyb3dzaW5nQ29udGV4dFByZXNlbnRhdGlvbi4KKyAqCisgKiBTaW5jZTogMi4yOAor
ICovCitXZWJLaXRBdXRvbWF0aW9uQnJvd3NpbmdDb250ZXh0UHJlc2VudGF0aW9uIHdlYmtpdF93
ZWJfdmlld19nZXRfYXV0b21hdGlvbl9wcmVzZW50YXRpb25fdHlwZShXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3
ZWJWaWV3KSwgV0VCS0lUX0FVVE9NQVRJT05fQlJPV1NJTkdfQ09OVEVYVF9QUkVTRU5UQVRJT05f
V0lORE9XKTsKKworICAgIHJldHVybiB3ZWJWaWV3LT5wcml2LT5hdXRvbWF0aW9uUHJlc2VudGF0
aW9uVHlwZTsKK30KKwogLyoqCiAgKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dlYnNpdGVfZGF0YV9t
YW5hZ2VyOgogICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmgK
aW5kZXggODM5ZGZlMzRmOWQuLmNlN2Q0YzVkMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5oCkBAIC0z
Nyw2ICszNywyMCBAQCBHX0JFR0lOX0RFQ0xTCiAjZGVmaW5lIFdFQktJVF9JU19BVVRPTUFUSU9O
X1NFU1NJT05fQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAg
V0VCS0lUX1RZUEVfQVVUT01BVElPTl9TRVNTSU9OKSkKICNkZWZpbmUgV0VCS0lUX0FVVE9NQVRJ
T05fU0VTU0lPTl9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9i
aiksICBXRUJLSVRfVFlQRV9BVVRPTUFUSU9OX1NFU1NJT04sIFdlYktpdEF1dG9tYXRpb25TZXNz
aW9uQ2xhc3MpKQogCisvKioKKyAqIFdlYktpdEF1dG9tYXRpb25Ccm93c2luZ0NvbnRleHRQcmVz
ZW50YXRpb246CisgKiBAV0VCS0lUX0FVVE9NQVRJT05fQlJPV1NJTkdfQ09OVEVYVF9QUkVTRU5U
QVRJT05fV0lORE9XOiBhIHdpbmRvdworICogQFdFQktJVF9BVVRPTUFUSU9OX0JST1dTSU5HX0NP
TlRFWFRfUFJFU0VOVEFUSU9OX1RBQjogYSB0YWIKKyAqCisgKiBFbnVtIHZhbHVlcyB1c2VkIGZv
ciBkZXRlcm1pbmluZyB0aGUgYXV0b21hdGlvbiBicm93c2luZyBjb250ZXh0IHByZXNlbnRhdGlv
bi4KKyAqCisgKiBTaW5jZTogMi4yOAorICovCit0eXBlZGVmIGVudW0geworICAgIFdFQktJVF9B
VVRPTUFUSU9OX0JST1dTSU5HX0NPTlRFWFRfUFJFU0VOVEFUSU9OX1dJTkRPVywKKyAgICBXRUJL
SVRfQVVUT01BVElPTl9CUk9XU0lOR19DT05URVhUX1BSRVNFTlRBVElPTl9UQUIKK30gV2ViS2l0
QXV0b21hdGlvbkJyb3dzaW5nQ29udGV4dFByZXNlbnRhdGlvbjsKKwogdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdEF1dG9tYXRpb25TZXNzaW9uICAgICAgICBXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbjsK
IHR5cGVkZWYgc3RydWN0IF9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbkNsYXNzICAgV2ViS2l0QXV0
b21hdGlvblNlc3Npb25DbGFzczsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRBdXRvbWF0aW9uU2Vz
c2lvblByaXZhdGUgV2ViS2l0QXV0b21hdGlvblNlc3Npb25Qcml2YXRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRleCA0ZmY2OTZiNjM0
MS4uZTc1YjU2OWUzOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlldy5oCkBAIC0zMDAsNiArMzAwLDkgQEAgd2Via2l0X3dlYl92aWV3X2lzX2Vw
aGVtZXJhbCAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQ
SSBnYm9vbGVhbgogd2Via2l0X3dlYl92aWV3X2lzX2NvbnRyb2xsZWRfYnlfYXV0b21hdGlvbiAg
ICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRf
QVBJIFdlYktpdEF1dG9tYXRpb25Ccm93c2luZ0NvbnRleHRQcmVzZW50YXRpb24KK3dlYmtpdF93
ZWJfdmlld19nZXRfYXV0b21hdGlvbl9wcmVzZW50YXRpb25fdHlwZSAgICAgKFdlYktpdFdlYlZp
ZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKwogV0VCS0lUX0FQSSBXZWJLaXRXZWJzaXRlRGF0
YU1hbmFnZXIgKgogd2Via2l0X3dlYl92aWV3X2dldF93ZWJzaXRlX2RhdGFfbWFuYWdlciAgICAg
ICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAt
c2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtp
dDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCAzNDk1ZDUxZjEzMi4uOTk5YWM5NTIxNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LTQuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dApAQCAtMjE1LDYgKzIxNSw3IEBAIHdlYmtp
dF93ZWJfdmlld19uZXdfd2l0aF9zZXR0aW5ncwogd2Via2l0X3dlYl92aWV3X25ld193aXRoX3Vz
ZXJfY29udGVudF9tYW5hZ2VyCiB3ZWJraXRfd2ViX3ZpZXdfaXNfZXBoZW1lcmFsCiB3ZWJraXRf
d2ViX3ZpZXdfaXNfY29udHJvbGxlZF9ieV9hdXRvbWF0aW9uCit3ZWJraXRfd2ViX3ZpZXdfZ2V0
X2F1dG9tYXRpb25fcHJlc2VudGF0aW9uX3R5cGUKIHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4
dAogd2Via2l0X3dlYl92aWV3X2dldF91c2VyX2NvbnRlbnRfbWFuYWdlcgogd2Via2l0X3dlYl92
aWV3X2dldF93ZWJzaXRlX2RhdGFfbWFuYWdlcgpAQCAtMTQ4Myw2ICsxNDg0LDcgQEAgV0VCS0lU
X1RZUEVfTkVUV09SS19ORVRXT1JLX1BST1hZX1NFVFRJTkdTCiA8U0VDVElPTj4KIDxGSUxFPldl
YktpdEF1dG9tYXRpb25TZXNzaW9uPC9GSUxFPgogV2ViS2l0QXV0b21hdGlvblNlc3Npb24KK1dl
YktpdEF1dG9tYXRpb25Ccm93c2luZ0NvbnRleHRQcmVzZW50YXRpb24KIHdlYmtpdF9hdXRvbWF0
aW9uX3Nlc3Npb25fZ2V0X2lkCiB3ZWJraXRfYXV0b21hdGlvbl9zZXNzaW9uX3NldF9hcHBsaWNh
dGlvbl9pbmZvCiB3ZWJraXRfYXV0b21hdGlvbl9zZXNzaW9uX2dldF9hcHBsaWNhdGlvbl9pbmZv
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEF1dG9t
YXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEF1
dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggYzBkNGYyNTY3MjcuLmVjYzY2NDQyMmQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEF1dG9tYXRpb25TZXNz
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRBdXRvbWF0
aW9uU2Vzc2lvbi5oCkBAIC0zNyw2ICszNywyMCBAQCBHX0JFR0lOX0RFQ0xTCiAjZGVmaW5lIFdF
QktJVF9JU19BVVRPTUFUSU9OX1NFU1NJT05fQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfQVVUT01BVElPTl9TRVNTSU9OKSkKICNkZWZp
bmUgV0VCS0lUX0FVVE9NQVRJT05fU0VTU0lPTl9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNU
QU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9BVVRPTUFUSU9OX1NFU1NJT04sIFdl
YktpdEF1dG9tYXRpb25TZXNzaW9uQ2xhc3MpKQogCisvKioKKyAqIFdlYktpdEF1dG9tYXRpb25C
cm93c2luZ0NvbnRleHRQcmVzZW50YXRpb246CisgKiBAV0VCS0lUX0FVVE9NQVRJT05fQlJPV1NJ
TkdfQ09OVEVYVF9QUkVTRU5UQVRJT05fV0lORE9XOiBhIHdpbmRvdworICogQFdFQktJVF9BVVRP
TUFUSU9OX0JST1dTSU5HX0NPTlRFWFRfUFJFU0VOVEFUSU9OX1RBQjogYSB0YWIKKyAqCisgKiBF
bnVtIHZhbHVlcyB1c2VkIGZvciBkZXRlcm1pbmluZyB0aGUgYXV0b21hdGlvbiBicm93c2luZyBj
b250ZXh0IHByZXNlbnRhdGlvbi4KKyAqCisgKiBTaW5jZTogMi4yOAorICovCit0eXBlZGVmIGVu
dW0geworICAgIFdFQktJVF9BVVRPTUFUSU9OX0JST1dTSU5HX0NPTlRFWFRfUFJFU0VOVEFUSU9O
X1dJTkRPVywKKyAgICBXRUJLSVRfQVVUT01BVElPTl9CUk9XU0lOR19DT05URVhUX1BSRVNFTlRB
VElPTl9UQUIKK30gV2ViS2l0QXV0b21hdGlvbkJyb3dzaW5nQ29udGV4dFByZXNlbnRhdGlvbjsK
KwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdEF1dG9tYXRpb25TZXNzaW9uICAgICAgICBXZWJLaXRB
dXRvbWF0aW9uU2Vzc2lvbjsKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lv
bkNsYXNzICAgV2ViS2l0QXV0b21hdGlvblNlc3Npb25DbGFzczsKIHR5cGVkZWYgc3RydWN0IF9X
ZWJLaXRBdXRvbWF0aW9uU2Vzc2lvblByaXZhdGUgV2ViS2l0QXV0b21hdGlvblNlc3Npb25Qcml2
YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRX
ZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcu
aAppbmRleCA5ZTVkM2Y0YzdhOS4uODAwMTQyOWI3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCkBAIC0yODYsNiArMjg2LDkgQEAgd2Vi
a2l0X3dlYl92aWV3X2lzX2VwaGVtZXJhbCAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0
V2ViVmlldwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dlYl92aWV3X2lzX2NvbnRyb2xs
ZWRfYnlfYXV0b21hdGlvbiAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2Vi
X3ZpZXcpOwogCitXRUJLSVRfQVBJIFdlYktpdEF1dG9tYXRpb25Ccm93c2luZ0NvbnRleHRQcmVz
ZW50YXRpb24KK3dlYmtpdF93ZWJfdmlld19nZXRfYXV0b21hdGlvbl9wcmVzZW50YXRpb25fdHlw
ZSAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKKwogV0VCS0lUX0FQ
SSBXZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIgKgogd2Via2l0X3dlYl92aWV3X2dldF93ZWJzaXRl
X2RhdGFfbWFuYWdlciAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2Vi
X3ZpZXcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2Rv
Y3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3Bl
L2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKaW5kZXggNjc5MDNmNWQ4NjIuLmUzNjJkNTU0ZTBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEu
MC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2Nz
L3dwZS0xLjAtc2VjdGlvbnMudHh0CkBAIC0xOTIsNiArMTkyLDcgQEAgd2Via2l0X3dlYl92aWV3
X25ld193aXRoX3VzZXJfY29udGVudF9tYW5hZ2VyCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2JhY2tl
bmQKIHdlYmtpdF93ZWJfdmlld19pc19lcGhlbWVyYWwKIHdlYmtpdF93ZWJfdmlld19pc19jb250
cm9sbGVkX2J5X2F1dG9tYXRpb24KK3dlYmtpdF93ZWJfdmlld19nZXRfYXV0b21hdGlvbl9wcmVz
ZW50YXRpb25fdHlwZQogd2Via2l0X3dlYl92aWV3X2dldF9jb250ZXh0CiB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X3VzZXJfY29udGVudF9tYW5hZ2VyCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dlYnNpdGVf
ZGF0YV9tYW5hZ2VyCkBAIC0xMzY4LDYgKzEzNjksNyBAQCBXRUJLSVRfVFlQRV9ORVRXT1JLX05F
VFdPUktfUFJPWFlfU0VUVElOR1MKIDxTRUNUSU9OPgogPEZJTEU+V2ViS2l0QXV0b21hdGlvblNl
c3Npb248L0ZJTEU+CiBXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbgorV2ViS2l0QXV0b21hdGlvbkJy
b3dzaW5nQ29udGV4dFByZXNlbnRhdGlvbgogd2Via2l0X2F1dG9tYXRpb25fc2Vzc2lvbl9nZXRf
aWQKIHdlYmtpdF9hdXRvbWF0aW9uX3Nlc3Npb25fc2V0X2FwcGxpY2F0aW9uX2luZm8KIHdlYmtp
dF9hdXRvbWF0aW9uX3Nlc3Npb25fZ2V0X2FwcGxpY2F0aW9uX2luZm8KZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyODM2YTEwZWYyNC4uNzM2MGUy
NDFkYWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNSBAQAorMjAxOS0xMS0wOCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gV2ViRHJpdmVyOiBpbXBsZW1lbnQgbmV3
IHdpbmRvdyBjb21tYW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDM5OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgbmV3IHdpbmRvdyBjb21tYW5kIHRvIE1pbmlCcm93c2Vy
IGFuZCBhIHRlc3QgY2FzZSB0byBjaGVjayB0aGUgbmV3IEFQSSB0byB1bml0IHRlc3RzLgorCisg
ICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYzoKKyAgICAgICAgKGZpbmRB
Y3RpdmVXaW5kb3cpOgorICAgICAgICAoYnJvd3Nlcl93aW5kb3dfZ2V0X29yX2NyZWF0ZV93ZWJf
dmlld19mb3JfYXV0b21hdGlvbik6CisgICAgICAgIChicm93c2VyX3dpbmRvd19jcmVhdGVfd2Vi
X3ZpZXdfaW5fbmV3X3RhYl9mb3JfYXV0b21hdGlvbik6CisgICAgICAgICogTWluaUJyb3dzZXIv
Z3RrL0Jyb3dzZXJXaW5kb3cuaDoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvbWFpbi5jOgor
ICAgICAgICAoY3JlYXRlV2ViVmlld0ZvckF1dG9tYXRpb25JbldpbmRvd0NhbGxiYWNrKToKKyAg
ICAgICAgKGNyZWF0ZVdlYlZpZXdGb3JBdXRvbWF0aW9uSW5UYWJDYWxsYmFjayk6CisgICAgICAg
IChhdXRvbWF0aW9uU3RhcnRlZENhbGxiYWNrKToKKyAgICAgICAgKGNyZWF0ZVdlYlZpZXdGb3JB
dXRvbWF0aW9uQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0QXV0b21hdGlvblNlc3Npb24uY3BwOgorICAgICAgICAodGVzdEF1
dG9tYXRpb25TZXNzaW9uUmVxdWVzdFNlc3Npb24pOgorCiAyMDE5LTExLTA5ICBEZWFuIEphY2tz
b24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGlja3kgT3JiaW5nIHN1cHBvcnQuYXBw
bGUuY29tIGNhdGVnb3JpZXMgc2hvd3MgYSBQTkcgaW5zdGVhZCBvZiB0aGUgd2ViIHBhZ2UgcHJl
dmlldywgdGFwcGluZyBsb2FkcyBpbWFnZSBhc3NldCBvbmx5IGluc3RlYWQgb2Ygd2ViIHBhZ2UK
ZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMgYi9Ub29s
cy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCmluZGV4IGJlMzY5ODlmZmI1Li5hYzQ0
MGE5ZmUyYyAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cu
YworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCkBAIC0xMjI0LDEy
ICsxMjI0LDI1IEBAIHZvaWQgYnJvd3Nlcl93aW5kb3dfc2V0X2JhY2tncm91bmRfY29sb3IoQnJv
d3NlcldpbmRvdyAqd2luZG93LCBHZGtSR0JBICpyZ2JhKQogICAgIGd0a193aWRnZXRfc2V0X2Fw
cF9wYWludGFibGUoR1RLX1dJREdFVCh3aW5kb3cpLCBUUlVFKTsKIH0KIAorc3RhdGljIEJyb3dz
ZXJXaW5kb3cgKmZpbmRBY3RpdmVXaW5kb3codm9pZCkKK3sKKyAgICBHTGlzdCAqbDsKKworICAg
IGZvciAobCA9IHdpbmRvd0xpc3Q7IGw7IGwgPSBnX2xpc3RfbmV4dChsKSkgeworICAgICAgICBC
cm93c2VyV2luZG93ICp3aW5kb3cgPSAoQnJvd3NlcldpbmRvdyAqKWwtPmRhdGE7CisgICAgICAg
IGlmIChndGtfd2luZG93X2lzX2FjdGl2ZShHVEtfV0lORE9XKHdpbmRvdykpKQorICAgICAgICAg
ICAgcmV0dXJuIHdpbmRvdzsKKyAgICB9CisKKyAgICByZXR1cm4gd2luZG93TGlzdCA/IChCcm93
c2VyV2luZG93ICopd2luZG93TGlzdC0+ZGF0YSA6IE5VTEw7Cit9CisKIFdlYktpdFdlYlZpZXcg
KmJyb3dzZXJfd2luZG93X2dldF9vcl9jcmVhdGVfd2ViX3ZpZXdfZm9yX2F1dG9tYXRpb24odm9p
ZCkKIHsKLSAgICBpZiAoIXdpbmRvd0xpc3QpCisgICAgQnJvd3NlcldpbmRvdyAqd2luZG93ID0g
ZmluZEFjdGl2ZVdpbmRvdygpOworICAgIGlmICghd2luZG93KQogICAgICAgICByZXR1cm4gTlVM
TDsKIAotICAgIEJyb3dzZXJXaW5kb3cgKndpbmRvdyA9IChCcm93c2VyV2luZG93ICopd2luZG93
TGlzdC0+ZGF0YTsKICAgICBXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3ID0gYnJvd3Nlcl90YWJfZ2V0
X3dlYl92aWV3KHdpbmRvdy0+YWN0aXZlVGFiKTsKICAgICBpZiAoZ3RrX25vdGVib29rX2dldF9u
X3BhZ2VzKEdUS19OT1RFQk9PSyh3aW5kb3ctPm5vdGVib29rKSkgPT0gMSAmJiAhd2Via2l0X3dl
Yl92aWV3X2dldF91cmkod2ViVmlldykpIHsKICAgICAgICAgd2Via2l0X3dlYl92aWV3X2xvYWRf
dXJpKHdlYlZpZXcsICJhYm91dDpibGFuayIpOwpAQCAtMTI0Miw4ICsxMjU1LDI5IEBAIFdlYktp
dFdlYlZpZXcgKmJyb3dzZXJfd2luZG93X2dldF9vcl9jcmVhdGVfd2ViX3ZpZXdfZm9yX2F1dG9t
YXRpb24odm9pZCkKICAgICAgICAgInVzZXItY29udGVudC1tYW5hZ2VyIiwgd2Via2l0X3dlYl92
aWV3X2dldF91c2VyX2NvbnRlbnRfbWFuYWdlcih3ZWJWaWV3KSwKICAgICAgICAgImlzLWNvbnRy
b2xsZWQtYnktYXV0b21hdGlvbiIsIFRSVUUsCiAgICAgICAgIE5VTEwpKTsKKyAgICBHdGtXaWRn
ZXQgKm5ld1dpbmRvdyA9IGJyb3dzZXJfd2luZG93X25ldyhHVEtfV0lORE9XKHdpbmRvdyksIHdp
bmRvdy0+d2ViQ29udGV4dCk7CisgICAgZ3RrX3dpbmRvd19zZXRfZm9jdXNfb25fbWFwKEdUS19X
SU5ET1cobmV3V2luZG93KSwgRkFMU0UpOworICAgIGJyb3dzZXJfd2luZG93X2FwcGVuZF92aWV3
KEJST1dTRVJfV0lORE9XKG5ld1dpbmRvdyksIG5ld1dlYlZpZXcpOworICAgIHdlYmtpdF93ZWJf
dmlld19sb2FkX3VyaShuZXdXZWJWaWV3LCAiYWJvdXQ6YmxhbmsiKTsKKyAgICBndGtfd2lkZ2V0
X3Nob3cobmV3V2luZG93KTsKKyAgICByZXR1cm4gbmV3V2ViVmlldzsKK30KKworV2ViS2l0V2Vi
VmlldyAqYnJvd3Nlcl93aW5kb3dfY3JlYXRlX3dlYl92aWV3X2luX25ld190YWJfZm9yX2F1dG9t
YXRpb24odm9pZCkKK3sKKyAgICBCcm93c2VyV2luZG93ICp3aW5kb3cgPSBmaW5kQWN0aXZlV2lu
ZG93KCk7CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgV2Vi
S2l0V2ViVmlldyAqd2ViVmlldyA9IGJyb3dzZXJfdGFiX2dldF93ZWJfdmlldyh3aW5kb3ctPmFj
dGl2ZVRhYik7CisgICAgV2ViS2l0V2ViVmlldyAqbmV3V2ViVmlldyA9IFdFQktJVF9XRUJfVklF
VyhnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX1ZJRVcsCisgICAgICAgICJ3ZWItY29udGV4
dCIsIHdlYmtpdF93ZWJfdmlld19nZXRfY29udGV4dCh3ZWJWaWV3KSwKKyAgICAgICAgInNldHRp
bmdzIiwgd2Via2l0X3dlYl92aWV3X2dldF9zZXR0aW5ncyh3ZWJWaWV3KSwKKyAgICAgICAgInVz
ZXItY29udGVudC1tYW5hZ2VyIiwgd2Via2l0X3dlYl92aWV3X2dldF91c2VyX2NvbnRlbnRfbWFu
YWdlcih3ZWJWaWV3KSwKKyAgICAgICAgImlzLWNvbnRyb2xsZWQtYnktYXV0b21hdGlvbiIsIFRS
VUUsCisgICAgICAgICJhdXRvbWF0aW9uLXByZXNlbnRhdGlvbi10eXBlIiwgV0VCS0lUX0FVVE9N
QVRJT05fQlJPV1NJTkdfQ09OVEVYVF9QUkVTRU5UQVRJT05fVEFCLAorICAgICAgICBOVUxMKSk7
CiAgICAgYnJvd3Nlcl93aW5kb3dfYXBwZW5kX3ZpZXcod2luZG93LCBuZXdXZWJWaWV3KTsKICAg
ICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF91cmkobmV3V2ViVmlldywgImFib3V0OmJsYW5rIik7Ci0g
ICAgZ3RrX3dpZGdldF9ncmFiX2ZvY3VzKEdUS19XSURHRVQobmV3V2ViVmlldykpOwogICAgIHJl
dHVybiBuZXdXZWJWaWV3OwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jy
b3dzZXJXaW5kb3cuaCBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmgKaW5k
ZXggMTJiYzQxN2NmZWYuLjE1NzBkNjVlZmZiIDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nl
ci9ndGsvQnJvd3NlcldpbmRvdy5oCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2Vy
V2luZG93LmgKQEAgLTUyLDYgKzUyLDcgQEAgdm9pZCBicm93c2VyX3dpbmRvd19sb2FkX3VyaShC
cm93c2VyV2luZG93KiwgY29uc3QgY2hhciAqdXJpKTsKIHZvaWQgYnJvd3Nlcl93aW5kb3dfbG9h
ZF9zZXNzaW9uKEJyb3dzZXJXaW5kb3cgKiwgY29uc3QgY2hhciAqc2Vzc2lvbkZpbGUpOwogdm9p
ZCBicm93c2VyX3dpbmRvd19zZXRfYmFja2dyb3VuZF9jb2xvcihCcm93c2VyV2luZG93KiwgR2Rr
UkdCQSopOwogV2ViS2l0V2ViVmlldyogYnJvd3Nlcl93aW5kb3dfZ2V0X29yX2NyZWF0ZV93ZWJf
dmlld19mb3JfYXV0b21hdGlvbih2b2lkKTsKK1dlYktpdFdlYlZpZXcgKmJyb3dzZXJfd2luZG93
X2NyZWF0ZV93ZWJfdmlld19pbl9uZXdfdGFiX2Zvcl9hdXRvbWF0aW9uKHZvaWQpOwogCiBHX0VO
RF9ERUNMUwogCmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvbWFpbi5jIGIvVG9v
bHMvTWluaUJyb3dzZXIvZ3RrL21haW4uYwppbmRleCA5M2Q5MzU5MmJjNC4uNGM1MTQ3ZGNkMzgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9tYWluLmMKKysrIGIvVG9vbHMvTWlu
aUJyb3dzZXIvZ3RrL21haW4uYwpAQCAtNDY1LDExICs0NjUsMTYgQEAgc3RhdGljIHZvaWQgYWJv
dXRVUklTY2hlbWVSZXF1ZXN0Q2FsbGJhY2soV2ViS2l0VVJJU2NoZW1lUmVxdWVzdCAqcmVxdWVz
dCwgV2ViS2kKICAgICB9CiB9CiAKLXN0YXRpYyBHdGtXaWRnZXQgKmNyZWF0ZVdlYlZpZXdGb3JB
dXRvbWF0aW9uQ2FsbGJhY2soV2ViS2l0QXV0b21hdGlvblNlc3Npb24qIHNlc3Npb24pCitzdGF0
aWMgR3RrV2lkZ2V0ICpjcmVhdGVXZWJWaWV3Rm9yQXV0b21hdGlvbkluV2luZG93Q2FsbGJhY2so
V2ViS2l0QXV0b21hdGlvblNlc3Npb24qIHNlc3Npb24pCiB7CiAgICAgcmV0dXJuIEdUS19XSURH
RVQoYnJvd3Nlcl93aW5kb3dfZ2V0X29yX2NyZWF0ZV93ZWJfdmlld19mb3JfYXV0b21hdGlvbigp
KTsKIH0KIAorc3RhdGljIEd0a1dpZGdldCAqY3JlYXRlV2ViVmlld0ZvckF1dG9tYXRpb25JblRh
YkNhbGxiYWNrKFdlYktpdEF1dG9tYXRpb25TZXNzaW9uKiBzZXNzaW9uKQoreworICAgIHJldHVy
biBHVEtfV0lER0VUKGJyb3dzZXJfd2luZG93X2NyZWF0ZV93ZWJfdmlld19pbl9uZXdfdGFiX2Zv
cl9hdXRvbWF0aW9uKCkpOworfQorCiBzdGF0aWMgdm9pZCBhdXRvbWF0aW9uU3RhcnRlZENhbGxi
YWNrKFdlYktpdFdlYkNvbnRleHQgKndlYkNvbnRleHQsIFdlYktpdEF1dG9tYXRpb25TZXNzaW9u
ICpzZXNzaW9uKQogewogICAgIFdlYktpdEFwcGxpY2F0aW9uSW5mbyAqaW5mbyA9IHdlYmtpdF9h
cHBsaWNhdGlvbl9pbmZvX25ldygpOwpAQCAtNDc3LDcgKzQ4Miw4IEBAIHN0YXRpYyB2b2lkIGF1
dG9tYXRpb25TdGFydGVkQ2FsbGJhY2soV2ViS2l0V2ViQ29udGV4dCAqd2ViQ29udGV4dCwgV2Vi
S2l0QXV0b21hCiAgICAgd2Via2l0X2F1dG9tYXRpb25fc2Vzc2lvbl9zZXRfYXBwbGljYXRpb25f
aW5mbyhzZXNzaW9uLCBpbmZvKTsKICAgICB3ZWJraXRfYXBwbGljYXRpb25faW5mb191bnJlZihp
bmZvKTsKIAotICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc2Vzc2lvbiwgImNyZWF0ZS13ZWItdmlldyIs
IEdfQ0FMTEJBQ0soY3JlYXRlV2ViVmlld0ZvckF1dG9tYXRpb25DYWxsYmFjayksIE5VTEwpOwor
ICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc2Vzc2lvbiwgImNyZWF0ZS13ZWItdmlldzo6d2luZG93Iiwg
R19DQUxMQkFDSyhjcmVhdGVXZWJWaWV3Rm9yQXV0b21hdGlvbkluV2luZG93Q2FsbGJhY2spLCBO
VUxMKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KHNlc3Npb24sICJjcmVhdGUtd2ViLXZpZXc6OnRh
YiIsIEdfQ0FMTEJBQ0soY3JlYXRlV2ViVmlld0ZvckF1dG9tYXRpb25JblRhYkNhbGxiYWNrKSwg
TlVMTCk7CiB9CiAKIHR5cGVkZWYgc3RydWN0IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0QXV0b21hdGlvblNlc3Npb24uY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RBdXRvbWF0aW9uU2Vzc2lvbi5jcHAK
aW5kZXggMjBiOTI4YjcyYjcuLmIxMzA5OTIxNTZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dG9tYXRpb25TZXNzaW9u
LmNwcApAQCAtMTY2LDYgKzE2NiwxOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiB0ZXN0LT5t
X3dlYlZpZXdGb3JBdXRvbWF0aW9uOwogICAgIH0KIAorICAgIHN0YXRpYyBXZWJLaXRXZWJWaWV3
KiBjcmVhdGVXZWJWaWV3SW5XaW5kb3dDYWxsYmFjayhXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbiog
c2Vzc2lvbiwgQXV0b21hdGlvblRlc3QqIHRlc3QpCisgICAgeworICAgICAgICB0ZXN0LT5tX2Ny
ZWF0ZVdlYlZpZXdJbldpbmRvd1dhc0NhbGxlZCA9IHRydWU7CisgICAgICAgIHJldHVybiB0ZXN0
LT5tX3dlYlZpZXdGb3JBdXRvbWF0aW9uOworICAgIH0KKworICAgIHN0YXRpYyBXZWJLaXRXZWJW
aWV3KiBjcmVhdGVXZWJWaWV3SW5UYWJDYWxsYmFjayhXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbiog
c2Vzc2lvbiwgQXV0b21hdGlvblRlc3QqIHRlc3QpCisgICAgeworICAgICAgICB0ZXN0LT5tX2Ny
ZWF0ZVdlYlZpZXdJblRhYldhc0NhbGxlZCA9IHRydWU7CisgICAgICAgIHJldHVybiB0ZXN0LT5t
X3dlYlZpZXdGb3JBdXRvbWF0aW9uOworICAgIH0KKwogICAgIHZvaWQgYXV0b21hdGlvblN0YXJ0
ZWQoV2ViS2l0QXV0b21hdGlvblNlc3Npb24qIHNlc3Npb24pCiAgICAgewogICAgICAgICBtX3Nl
c3Npb24gPSBzZXNzaW9uOwpAQCAtMjYyLDYgKzI3NCw0MiBAQCBwdWJsaWM6CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBib29sIGNyZWF0ZU5ld1dpbmRvdyhXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQorICAgIHsKKyAgICAgICAgbV93ZWJWaWV3Rm9yQXV0b21hdGlvbiA9IHdl
YlZpZXc7CisgICAgICAgIG1fY3JlYXRlV2ViVmlld0luV2luZG93V2FzQ2FsbGVkID0gZmFsc2U7
CisgICAgICAgIG1fbWVzc2FnZSA9IHsgfTsKKyAgICAgICAgYXV0byBzaWduYWxJRCA9IGdfc2ln
bmFsX2Nvbm5lY3QobV9zZXNzaW9uLCAiY3JlYXRlLXdlYi12aWV3Ojp3aW5kb3ciLCBHX0NBTExC
QUNLKGNyZWF0ZVdlYlZpZXdJbldpbmRvd0NhbGxiYWNrKSwgdGhpcyk7CisgICAgICAgIHNlbmRD
b21tYW5kVG9CYWNrZW5kKCJjcmVhdGVCcm93c2luZ0NvbnRleHQiLCAie1wicHJlc2VudGF0aW9u
SGludFwiOlwiV2luZG93XCJ9Iik7CisgICAgICAgIGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29w
LmdldCgpKTsKKyAgICAgICAgZ19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0KG1fc2Vzc2lvbiwg
c2lnbmFsSUQpOworICAgICAgICBnX2Fzc2VydF90cnVlKG1fY3JlYXRlV2ViVmlld0luV2luZG93
V2FzQ2FsbGVkKTsKKyAgICAgICAgZ19hc3NlcnRfZmFsc2UobV9tZXNzYWdlLmlzTnVsbCgpKTsK
KyAgICAgICAgbV93ZWJWaWV3Rm9yQXV0b21hdGlvbiA9IG51bGxwdHI7CisKKyAgICAgICAgaWYg
KHN0cnN0cihtX21lc3NhZ2UuZGF0YSgpLCAiXCJwcmVzZW50YXRpb25cIjpcIldpbmRvd1wiIikp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIGJvb2wgY3JlYXRlTmV3VGFiKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCisgICAgewor
ICAgICAgICBtX3dlYlZpZXdGb3JBdXRvbWF0aW9uID0gd2ViVmlldzsKKyAgICAgICAgbV9jcmVh
dGVXZWJWaWV3SW5UYWJXYXNDYWxsZWQgPSBmYWxzZTsKKyAgICAgICAgbV9tZXNzYWdlID0geyB9
OworICAgICAgICBhdXRvIHNpZ25hbElEID0gZ19zaWduYWxfY29ubmVjdChtX3Nlc3Npb24sICJj
cmVhdGUtd2ViLXZpZXc6OnRhYiIsIEdfQ0FMTEJBQ0soY3JlYXRlV2ViVmlld0luVGFiQ2FsbGJh
Y2spLCB0aGlzKTsKKyAgICAgICAgc2VuZENvbW1hbmRUb0JhY2tlbmQoImNyZWF0ZUJyb3dzaW5n
Q29udGV4dCIsICJ7XCJwcmVzZW50YXRpb25IaW50XCI6XCJUYWJcIn0iKTsKKyAgICAgICAgZ19t
YWluX2xvb3BfcnVuKG1fbWFpbkxvb3AuZ2V0KCkpOworICAgICAgICBnX3NpZ25hbF9oYW5kbGVy
X2Rpc2Nvbm5lY3QobV9zZXNzaW9uLCBzaWduYWxJRCk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUo
bV9jcmVhdGVXZWJWaWV3SW5UYWJXYXNDYWxsZWQpOworICAgICAgICBnX2Fzc2VydF9mYWxzZSht
X21lc3NhZ2UuaXNOdWxsKCkpOworICAgICAgICBtX3dlYlZpZXdGb3JBdXRvbWF0aW9uID0gbnVs
bHB0cjsKKworICAgICAgICBpZiAoc3Ryc3RyKG1fbWVzc2FnZS5kYXRhKCksICJcInByZXNlbnRh
dGlvblwiOlwiVGFiXCIiKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgfQorCiAgICAgR1JlZlB0cjxHTWFpbkxvb3A+IG1fbWFpbkxvb3A7CiAg
ICAgR1JlZlB0cjxHREJ1c0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBXZWJLaXRBdXRv
bWF0aW9uU2Vzc2lvbiogbV9zZXNzaW9uOwpAQCAtMjcwLDYgKzMxOCw4IEBAIHB1YmxpYzoKIAog
ICAgIFdlYktpdFdlYlZpZXcqIG1fd2ViVmlld0ZvckF1dG9tYXRpb24geyBudWxscHRyIH07CiAg
ICAgYm9vbCBtX2NyZWF0ZVdlYlZpZXdXYXNDYWxsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9j
cmVhdGVXZWJWaWV3SW5XaW5kb3dXYXNDYWxsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9jcmVh
dGVXZWJWaWV3SW5UYWJXYXNDYWxsZWQgeyBmYWxzZSB9OwogICAgIENTdHJpbmcgbV9tZXNzYWdl
OwogfTsKIApAQCAtMzE0LDggKzM2NCwzMiBAQCBzdGF0aWMgdm9pZCB0ZXN0QXV0b21hdGlvblNl
c3Npb25SZXF1ZXN0U2Vzc2lvbihBdXRvbWF0aW9uVGVzdCogdGVzdCwgZ2NvbnN0cG9pbgogICAg
ICAgICAiaXMtY29udHJvbGxlZC1ieS1hdXRvbWF0aW9uIiwgVFJVRSwKICAgICAgICAgbnVsbHB0
cikpOwogICAgIGdfYXNzZXJ0X3RydWUod2Via2l0X3dlYl92aWV3X2lzX2NvbnRyb2xsZWRfYnlf
YXV0b21hdGlvbih3ZWJWaWV3LmdldCgpKSk7CisgICAgZ19hc3NlcnRfY21wdWludCh3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2F1dG9tYXRpb25fcHJlc2VudGF0aW9uX3R5cGUod2ViVmlldy5nZXQoKSks
ID09LCBXRUJLSVRfQVVUT01BVElPTl9CUk9XU0lOR19DT05URVhUX1BSRVNFTlRBVElPTl9XSU5E
T1cpOwogICAgIGdfYXNzZXJ0X3RydWUodGVzdC0+Y3JlYXRlVG9wTGV2ZWxCcm93c2luZ0NvbnRl
eHQod2ViVmlldy5nZXQoKSkpOwogCisgICAgYXV0byBuZXdXZWJWaWV3SW5XaW5kb3cgPSBUZXN0
OjphZG9wdFZpZXcoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9WSUVXLAorI2lmIFBMQVRG
T1JNKFdQRSkKKyAgICAgICAgImJhY2tlbmQiLCBUZXN0OjpjcmVhdGVXZWJWaWV3QmFja2VuZCgp
LAorI2VuZGlmCisgICAgICAgICJ3ZWItY29udGV4dCIsIHRlc3QtPm1fd2ViQ29udGV4dC5nZXQo
KSwKKyAgICAgICAgImlzLWNvbnRyb2xsZWQtYnktYXV0b21hdGlvbiIsIFRSVUUsCisgICAgICAg
IG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKHdlYmtpdF93ZWJfdmlld19pc19jb250cm9s
bGVkX2J5X2F1dG9tYXRpb24obmV3V2ViVmlld0luV2luZG93LmdldCgpKSk7CisgICAgZ19hc3Nl
cnRfY21wdWludCh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2F1dG9tYXRpb25fcHJlc2VudGF0aW9uX3R5
cGUobmV3V2ViVmlld0luV2luZG93LmdldCgpKSwgPT0sIFdFQktJVF9BVVRPTUFUSU9OX0JST1dT
SU5HX0NPTlRFWFRfUFJFU0VOVEFUSU9OX1dJTkRPVyk7CisgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0
LT5jcmVhdGVOZXdXaW5kb3cobmV3V2ViVmlld0luV2luZG93LmdldCgpKSk7CisKKyAgICBhdXRv
IG5ld1dlYlZpZXdJblRhYiA9IFRlc3Q6OmFkb3B0VmlldyhnX29iamVjdF9uZXcoV0VCS0lUX1RZ
UEVfV0VCX1ZJRVcsCisjaWYgUExBVEZPUk0oV1BFKQorICAgICAgICAiYmFja2VuZCIsIFRlc3Q6
OmNyZWF0ZVdlYlZpZXdCYWNrZW5kKCksCisjZW5kaWYKKyAgICAgICAgIndlYi1jb250ZXh0Iiwg
dGVzdC0+bV93ZWJDb250ZXh0LmdldCgpLAorICAgICAgICAiaXMtY29udHJvbGxlZC1ieS1hdXRv
bWF0aW9uIiwgVFJVRSwKKyAgICAgICAgImF1dG9tYXRpb24tcHJlc2VudGF0aW9uLXR5cGUiLCBX
RUJLSVRfQVVUT01BVElPTl9CUk9XU0lOR19DT05URVhUX1BSRVNFTlRBVElPTl9UQUIsCisgICAg
ICAgIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKHdlYmtpdF93ZWJfdmlld19pc19jb250
cm9sbGVkX2J5X2F1dG9tYXRpb24obmV3V2ViVmlld0luVGFiLmdldCgpKSk7CisgICAgZ19hc3Nl
cnRfY21wdWludCh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2F1dG9tYXRpb25fcHJlc2VudGF0aW9uX3R5
cGUobmV3V2ViVmlld0luVGFiLmdldCgpKSwgPT0sIFdFQktJVF9BVVRPTUFUSU9OX0JST1dTSU5H
X0NPTlRFWFRfUFJFU0VOVEFUSU9OX1RBQik7CisgICAgZ19hc3NlcnRfdHJ1ZSh0ZXN0LT5jcmVh
dGVOZXdUYWIobmV3V2ViVmlld0luVGFiLmdldCgpKSk7CisKICAgICB3ZWJraXRfd2ViX2NvbnRl
eHRfc2V0X2F1dG9tYXRpb25fYWxsb3dlZCh0ZXN0LT5tX3dlYkNvbnRleHQuZ2V0KCksIEZBTFNF
KTsKIH0KIAo=
</data>
<flag name="review"
          id="399004"
          type_id="1"
          status="+"
          setter="clopez"
    />
    <flag name="commit-queue"
          id="399040"
          type_id="3"
          status="-"
          setter="clopez"
    />
          </attachment>
      

    </bug>

</bugzilla>