<?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>234373</bug_id>
          
          <creation_ts>2021-12-15 17:39:47 -0800</creation_ts>
          <short_desc>[css-values-4] logical `*vi`(inline) and `*vb` (block) viewport units should be based on the current element&apos;s `writing-mode`</short_desc>
          <delta_ts>2022-05-20 22:40:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>232895</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bramus</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gsnedders</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jensimmons</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ntim</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1824609</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-15 17:39:47 -0800</bug_when>
    <thetext>from https://github.com/w3c/csswg-drafts/issues/6873#issuecomment-995093243
&gt; RESOLVED: Writing-mode sensitive viewport units (and analogous units) use the writing mode of the element they&apos;re used on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824610</commentid>
    <comment_count>1</comment_count>
      <attachid>447303</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-15 17:47:24 -0800</bug_when>
    <thetext>Created attachment 447303
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824681</commentid>
    <comment_count>2</comment_count>
      <attachid>447303</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-12-15 20:55:23 -0800</bug_when>
    <thetext>Comment on attachment 447303
Patch

WPT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1826465</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-22 17:40:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/86832561&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846385</commentid>
    <comment_count>4</comment_count>
      <attachid>447303</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-02-27 00:20:15 -0800</bug_when>
    <thetext>Comment on attachment 447303
Patch

What Simon said :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846386</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-02-27 00:20:47 -0800</bug_when>
    <thetext>Also stylebot doesn&apos;t look happy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862395</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2022-04-18 18:24:41 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #2)
&gt; Comment on attachment 447303 [details]
&gt; Patch
&gt; 
&gt; WPT?

/css/css-values/viewport-units-writing-mode.html covers this now (though didn&apos;t exist when you wrote that comment!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865156</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-04-28 08:48:02 -0700</bug_when>
    <thetext>(In reply to Sam Sneddon [:gsnedders] from comment #6)
&gt; (In reply to Simon Fraser (smfr) from comment #2)
&gt; &gt; Comment on attachment 447303 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; WPT?
&gt; 
&gt; /css/css-values/viewport-units-writing-mode.html covers this now (though
&gt; didn&apos;t exist when you wrote that comment!)

Let&apos;s import them! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870836</commentid>
    <comment_count>8</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-05-20 15:02:55 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/863</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870918</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-20 22:40:37 -0700</bug_when>
    <thetext>Committed r294609 (250835@main): &lt;https://commits.webkit.org/250835@main&gt;

Reviewed commits have been landed. Closing PR #863 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447303</attachid>
            <date>2021-12-15 17:47:24 -0800</date>
            <delta_ts>2022-05-20 15:03:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234373-20211215184723.patch</filename>
            <type>text/plain</type>
            <size>61246</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjMzcyZjA3YjcxM2U0OTcwNzhmZmZlMmNmN2RmODIyZjFhMDY2NzljLi5k
ZjVlMjcyOGE4MWJhZmVmNzMwYjYzYjE4M2RjMjgwZjhjODljZTQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMjEtMTItMTUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtjc3MtdmFsdWVzLTRdIGxvZ2ljYWwgYCp2aWAoaW5saW5lKSBhbmQgYCp2
YmAgKGJsb2NrKSB2aWV3cG9ydCB1bml0cyBzaG91bGQgYmUgYmFzZWQgb24gdGhlIGN1cnJlbnQg
ZWxlbWVudCdzIGB3cml0aW5nLW1vZGVgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzQzNzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQcmV2aW91c2x5LCB3ZSBvbmx5IGxvb2tlZCBhdCB0aGUgcm9vdCBl
bGVtZW50J3MgYHdyaXRpbmctbW9kZWAuIExvb2tpbmcgYXQgdGhlIGN1cnJlbnQKKyAgICAgICAg
ZWxlbWVudCdzIGB3cml0aW5nLW1vZGVgIGFsbG93cyBmb3Igbm9uLXJvb3QgZWxlbWVudHMgdG8g
aGF2ZSBhIGB3cml0aW5nLW1vZGVgIGluZGVwZW5kZW50CisgICAgICAgIG9mIHRoZSByb290IGVs
ZW1lbnQsIGFzIHdlbGwgYXMgaGF2aW5nIHN0eWxlcyBiYXNlZCBvbiB0aGF0LgorCisgICAgICAg
IFRoaXMgd2FzIGNoYW5nZWQgaW4gPGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ctZHJhZnRz
L2lzc3Vlcy82ODczPi4KKworICAgICAgICBUZXN0czogQ1NTVmlld3BvcnRVbml0cy5BbGxTYW1l
RGlyZWN0V3JpdGluZ01vZGUKKyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0VW5pdHMuRW1wdHlV
bm9ic2N1cmVkU2l6ZU92ZXJyaWRlc0RpcmVjdFdyaXRpbmdNb2RlCisgICAgICAgICAgICAgICBD
U1NWaWV3cG9ydFVuaXRzLlNhbWVVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlc0RpcmVjdFdyaXRpbmdN
b2RlCisgICAgICAgICAgICAgICBDU1NWaWV3cG9ydFVuaXRzLkRpZmZlcmVudFVub2JzY3VyZWRT
aXplT3ZlcnJpZGVzRGlyZWN0V3JpdGluZ01vZGUKKyAgICAgICAgICAgICAgIENTU1ZpZXdwb3J0
VW5pdHMuU1ZHRG9jdW1lbnREaXJlY3RXcml0aW5nTW9kZQorCisgICAgICAgICogY3NzL0NTU1By
aW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omxlbmd0aE9mVmlld3BvcnRQaHlz
aWNhbEF4aXNGb3JMb2dpY2FsQXhpcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6Y29tcHV0ZU5vbkNhbGNMZW5ndGhEb3VibGUpOgorCiAyMDIxLTEyLTE1ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFuLXVwOiBBZG9wdCBQ
YWdlOjpmb3JFYWNoRG9jdW1lbnQgaW4gc29tZSBtaXNzZWQgc3BvdHMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IGVhZTdhMWFiYTYzZGI4ZjkyZDQ0ZDI0N2Jk
YjE2NTY1NzE5NzE3NTAuLmI0NWQ5MzY5NmE3NTIwNmVlY2I3NjdhYjZkZjViZGFlODEwNjY2YzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtNjcyLDEyICs2
NzIsMTIgQEAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbW1QZXJJbmNoID0gMjUuNDsKIHN0YXRp
YyBjb25zdGV4cHIgZG91YmxlIGNtUGVySW5jaCA9IDIuNTQ7CiBzdGF0aWMgY29uc3RleHByIGRv
dWJsZSBRUGVySW5jaCA9IDI1LjQgKiA0LjA7CiAKLXN0YXRpYyBkb3VibGUgbGVuZ3RoT2ZWaWV3
cG9ydFBoeXNpY2FsQXhpc0ZvckxvZ2ljYWxBeGlzKExvZ2ljYWxCb3hBeGlzIGxvZ2ljYWxBeGlz
LCBjb25zdCBGbG9hdFNpemUmIHNpemUsIGNvbnN0IFJlbmRlclN0eWxlKiByb290RWxlbWVudFN0
eWxlKQorc3RhdGljIGRvdWJsZSBsZW5ndGhPZlZpZXdwb3J0UGh5c2ljYWxBeGlzRm9yTG9naWNh
bEF4aXMoTG9naWNhbEJveEF4aXMgbG9naWNhbEF4aXMsIGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSwg
Y29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKQogewotICAgIGlmICghcm9vdEVsZW1lbnRTdHlsZSkK
KyAgICBpZiAoIXN0eWxlKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHN3aXRjaCAobWFwTG9n
aWNhbEF4aXNUb1BoeXNpY2FsQXhpcyhtYWtlVGV4dEZsb3cocm9vdEVsZW1lbnRTdHlsZS0+d3Jp
dGluZ01vZGUoKSwgcm9vdEVsZW1lbnRTdHlsZS0+ZGlyZWN0aW9uKCkpLCBsb2dpY2FsQXhpcykp
IHsKKyAgICBzd2l0Y2ggKG1hcExvZ2ljYWxBeGlzVG9QaHlzaWNhbEF4aXMobWFrZVRleHRGbG93
KHN0eWxlLT53cml0aW5nTW9kZSgpLCBzdHlsZS0+ZGlyZWN0aW9uKCkpLCBsb2dpY2FsQXhpcykp
IHsKICAgICBjYXNlIEJveEF4aXM6Okhvcml6b250YWw6CiAgICAgICAgIHJldHVybiBzaXplLndp
ZHRoKCk7CiAKQEAgLTg0OSwxMCArODQ5LDEwIEBAIGRvdWJsZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Y29tcHV0ZU5vbkNhbGNMZW5ndGhEb3VibGUoY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uCiAg
ICAgICAgIHJldHVybiB2YWx1ZSAqIGNvbnZlcnNpb25EYXRhLmRlZmF1bHRWaWV3cG9ydEZhY3Rv
cigpLm1pbkRpbWVuc2lvbigpOwogCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZCOgotICAg
ICAgICByZXR1cm4gdmFsdWUgKiBsZW5ndGhPZlZpZXdwb3J0UGh5c2ljYWxBeGlzRm9yTG9naWNh
bEF4aXMoTG9naWNhbEJveEF4aXM6OkJsb2NrLCBjb252ZXJzaW9uRGF0YS5kZWZhdWx0Vmlld3Bv
cnRGYWN0b3IoKSwgY29udmVyc2lvbkRhdGEucm9vdFN0eWxlKCkpOworICAgICAgICByZXR1cm4g
dmFsdWUgKiBsZW5ndGhPZlZpZXdwb3J0UGh5c2ljYWxBeGlzRm9yTG9naWNhbEF4aXMoTG9naWNh
bEJveEF4aXM6OkJsb2NrLCBjb252ZXJzaW9uRGF0YS5kZWZhdWx0Vmlld3BvcnRGYWN0b3IoKSwg
Y29udmVyc2lvbkRhdGEuc3R5bGUoKSk7CiAKICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkk6
Ci0gICAgICAgIHJldHVybiB2YWx1ZSAqIGxlbmd0aE9mVmlld3BvcnRQaHlzaWNhbEF4aXNGb3JM
b2dpY2FsQXhpcyhMb2dpY2FsQm94QXhpczo6SW5saW5lLCBjb252ZXJzaW9uRGF0YS5kZWZhdWx0
Vmlld3BvcnRGYWN0b3IoKSwgY29udmVyc2lvbkRhdGEucm9vdFN0eWxlKCkpOworICAgICAgICBy
ZXR1cm4gdmFsdWUgKiBsZW5ndGhPZlZpZXdwb3J0UGh5c2ljYWxBeGlzRm9yTG9naWNhbEF4aXMo
TG9naWNhbEJveEF4aXM6OklubGluZSwgY29udmVyc2lvbkRhdGEuZGVmYXVsdFZpZXdwb3J0RmFj
dG9yKCksIGNvbnZlcnNpb25EYXRhLnN0eWxlKCkpOwogCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWSDoKICAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuc21hbGxWaWV3
cG9ydEZhY3RvcigpLmhlaWdodCgpOwpAQCAtODY3LDEwICs4NjcsMTAgQEAgZG91YmxlIENTU1By
aW1pdGl2ZVZhbHVlOjpjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZShjb25zdCBDU1NUb0xlbmd0
aENvbnZlcnNpb24KICAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEuc21hbGxW
aWV3cG9ydEZhY3RvcigpLm1pbkRpbWVuc2lvbigpOwogCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWQjoKLSAgICAgICAgcmV0dXJuIHZhbHVlICogbGVuZ3RoT2ZWaWV3cG9ydFBoeXNpY2Fs
QXhpc0ZvckxvZ2ljYWxBeGlzKExvZ2ljYWxCb3hBeGlzOjpCbG9jaywgY29udmVyc2lvbkRhdGEu
c21hbGxWaWV3cG9ydEZhY3RvcigpLCBjb252ZXJzaW9uRGF0YS5yb290U3R5bGUoKSk7CisgICAg
ICAgIHJldHVybiB2YWx1ZSAqIGxlbmd0aE9mVmlld3BvcnRQaHlzaWNhbEF4aXNGb3JMb2dpY2Fs
QXhpcyhMb2dpY2FsQm94QXhpczo6QmxvY2ssIGNvbnZlcnNpb25EYXRhLnNtYWxsVmlld3BvcnRG
YWN0b3IoKSwgY29udmVyc2lvbkRhdGEuc3R5bGUoKSk7CiAKICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfU1ZJOgotICAgICAgICByZXR1cm4gdmFsdWUgKiBsZW5ndGhPZlZpZXdwb3J0UGh5c2lj
YWxBeGlzRm9yTG9naWNhbEF4aXMoTG9naWNhbEJveEF4aXM6OklubGluZSwgY29udmVyc2lvbkRh
dGEuc21hbGxWaWV3cG9ydEZhY3RvcigpLCBjb252ZXJzaW9uRGF0YS5yb290U3R5bGUoKSk7Cisg
ICAgICAgIHJldHVybiB2YWx1ZSAqIGxlbmd0aE9mVmlld3BvcnRQaHlzaWNhbEF4aXNGb3JMb2dp
Y2FsQXhpcyhMb2dpY2FsQm94QXhpczo6SW5saW5lLCBjb252ZXJzaW9uRGF0YS5zbWFsbFZpZXdw
b3J0RmFjdG9yKCksIGNvbnZlcnNpb25EYXRhLnN0eWxlKCkpOwogCiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWSDoKICAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEubGFy
Z2VWaWV3cG9ydEZhY3RvcigpLmhlaWdodCgpOwpAQCAtODg1LDEwICs4ODUsMTAgQEAgZG91Ymxl
IENTU1ByaW1pdGl2ZVZhbHVlOjpjb21wdXRlTm9uQ2FsY0xlbmd0aERvdWJsZShjb25zdCBDU1NU
b0xlbmd0aENvbnZlcnNpb24KICAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRhdGEu
bGFyZ2VWaWV3cG9ydEZhY3RvcigpLm1pbkRpbWVuc2lvbigpOwogCiAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWQjoKLSAgICAgICAgcmV0dXJuIHZhbHVlICogbGVuZ3RoT2ZWaWV3cG9ydFBo
eXNpY2FsQXhpc0ZvckxvZ2ljYWxBeGlzKExvZ2ljYWxCb3hBeGlzOjpCbG9jaywgY29udmVyc2lv
bkRhdGEubGFyZ2VWaWV3cG9ydEZhY3RvcigpLCBjb252ZXJzaW9uRGF0YS5yb290U3R5bGUoKSk7
CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGxlbmd0aE9mVmlld3BvcnRQaHlzaWNhbEF4aXNGb3JM
b2dpY2FsQXhpcyhMb2dpY2FsQm94QXhpczo6QmxvY2ssIGNvbnZlcnNpb25EYXRhLmxhcmdlVmll
d3BvcnRGYWN0b3IoKSwgY29udmVyc2lvbkRhdGEuc3R5bGUoKSk7CiAKICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfTFZJOgotICAgICAgICByZXR1cm4gdmFsdWUgKiBsZW5ndGhPZlZpZXdwb3J0
UGh5c2ljYWxBeGlzRm9yTG9naWNhbEF4aXMoTG9naWNhbEJveEF4aXM6OklubGluZSwgY29udmVy
c2lvbkRhdGEubGFyZ2VWaWV3cG9ydEZhY3RvcigpLCBjb252ZXJzaW9uRGF0YS5yb290U3R5bGUo
KSk7CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGxlbmd0aE9mVmlld3BvcnRQaHlzaWNhbEF4aXNG
b3JMb2dpY2FsQXhpcyhMb2dpY2FsQm94QXhpczo6SW5saW5lLCBjb252ZXJzaW9uRGF0YS5sYXJn
ZVZpZXdwb3J0RmFjdG9yKCksIGNvbnZlcnNpb25EYXRhLnN0eWxlKCkpOwogCiAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RWSDoKICAgICAgICAgcmV0dXJuIHZhbHVlICogY29udmVyc2lvbkRh
dGEuZHluYW1pY1ZpZXdwb3J0RmFjdG9yKCkuaGVpZ2h0KCk7CkBAIC05MDMsMTAgKzkwMywxMCBA
QCBkb3VibGUgQ1NTUHJpbWl0aXZlVmFsdWU6OmNvbXB1dGVOb25DYWxjTGVuZ3RoRG91YmxlKGNv
bnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbgogICAgICAgICByZXR1cm4gdmFsdWUgKiBjb252ZXJz
aW9uRGF0YS5keW5hbWljVmlld3BvcnRGYWN0b3IoKS5taW5EaW1lbnNpb24oKTsKIAogICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19EVkI6Ci0gICAgICAgIHJldHVybiB2YWx1ZSAqIGxlbmd0aE9m
Vmlld3BvcnRQaHlzaWNhbEF4aXNGb3JMb2dpY2FsQXhpcyhMb2dpY2FsQm94QXhpczo6QmxvY2ss
IGNvbnZlcnNpb25EYXRhLmR5bmFtaWNWaWV3cG9ydEZhY3RvcigpLCBjb252ZXJzaW9uRGF0YS5y
b290U3R5bGUoKSk7CisgICAgICAgIHJldHVybiB2YWx1ZSAqIGxlbmd0aE9mVmlld3BvcnRQaHlz
aWNhbEF4aXNGb3JMb2dpY2FsQXhpcyhMb2dpY2FsQm94QXhpczo6QmxvY2ssIGNvbnZlcnNpb25E
YXRhLmR5bmFtaWNWaWV3cG9ydEZhY3RvcigpLCBjb252ZXJzaW9uRGF0YS5zdHlsZSgpKTsKIAog
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkk6Ci0gICAgICAgIHJldHVybiB2YWx1ZSAqIGxl
bmd0aE9mVmlld3BvcnRQaHlzaWNhbEF4aXNGb3JMb2dpY2FsQXhpcyhMb2dpY2FsQm94QXhpczo6
SW5saW5lLCBjb252ZXJzaW9uRGF0YS5keW5hbWljVmlld3BvcnRGYWN0b3IoKSwgY29udmVyc2lv
bkRhdGEucm9vdFN0eWxlKCkpOworICAgICAgICByZXR1cm4gdmFsdWUgKiBsZW5ndGhPZlZpZXdw
b3J0UGh5c2ljYWxBeGlzRm9yTG9naWNhbEF4aXMoTG9naWNhbEJveEF4aXM6OklubGluZSwgY29u
dmVyc2lvbkRhdGEuZHluYW1pY1ZpZXdwb3J0RmFjdG9yKCksIGNvbnZlcnNpb25EYXRhLnN0eWxl
KCkpOwogCiAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xIUzoKICAgICAgICAgQVNTRVJUKGNv
bnZlcnNpb25EYXRhLnN0eWxlKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGIyMTk3ZTE1YjYxYTRlNmExNTI3MjdkNDYyYjczYjExMzgzMmVk
MTkuLmRjNTA5NWVhN2ZhOWI0MzVjZjJlNTE1NWQyOGEzNDI0NmQ5MzNiMDIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAor
MjAyMS0xMi0xNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAg
W2Nzcy12YWx1ZXMtNF0gbG9naWNhbCBgKnZpYChpbmxpbmUpIGFuZCBgKnZiYCAoYmxvY2spIHZp
ZXdwb3J0IHVuaXRzIHNob3VsZCBiZSBiYXNlZCBvbiB0aGUgY3VycmVudCBlbGVtZW50J3MgYHdy
aXRpbmctbW9kZWAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNDM3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLm1t
OgorICAgICAgICAoZXZhbHVhdGVGb3JOdW1iZXIpOgorICAgICAgICAoZGltZW5zaW9uT2ZFbGVt
ZW50KToKKyAgICAgICAgKHdpZHRoT2ZFbGVtZW50V2l0aElEKToKKyAgICAgICAgKGhlaWdodE9m
RWxlbWVudFdpdGhJRCk6CisgICAgICAgICh2aWV3cG9ydFVuaXRMZW5ndGgpOgorICAgICAgICBV
c2UgYGZsb2F0YCBpbnN0ZWFkIG9mIGBkb3VibGVgIHRvIG1vcmUgZWFzaWx5IGNvbnZlcnQgdG8g
YFdlYkNvcmU6OkZsb2F0U2l6ZWAuCisKKyAgICAgICAgKGNoYW5nZUNTU1Byb3BlcnR5T2ZFbGVt
ZW50cyk6IEFkZGVkLgorICAgICAgICBBZGQgaGVscGVyIHRvIGFkanVzdCBDU1MgYHdyaXRpbmct
bW9kZWAgYW5kIGBjYWxjYC4KKworICAgICAgICAoY2hlY2spOiBBZGRlZC4KKyAgICAgICAgSW5z
dGVhZCBvZiByZXBlYXRpbmcgYWxsIHRoZSBgRVhQRUNUX0ZMT0FUX0VRYCBmb3IgZWFjaCB2aWV3
cG9ydCB1bml0IHRlc3QgZWxlbWVudCwgY3JlYXRlIGEKKyAgICAgICAgZnVuY3Rpb24gdGhhdCBk
b2VzIGFsbCBvZiB0aGVtIGFuZCBqdXN0IGNhbGwgaXQgd2hlbiBkZXNpcmVkLgorCisgICAgICAg
IChURVNULkNTU1ZpZXdwb3J0VW5pdHMuQWxsU2FtZUJhc2ljKTogQWRkZWQuCisgICAgICAgIChU
RVNULkNTU1ZpZXdwb3J0VW5pdHMuQWxsU2FtZUNhbGMpOiBBZGRlZC4KKyAgICAgICAgKFRFU1Qu
Q1NTVmlld3BvcnRVbml0cy5BbGxTYW1lWm9vbWVkKTogQWRkZWQuCisgICAgICAgIChURVNULkNT
U1ZpZXdwb3J0VW5pdHMuQWxsU2FtZUluaGVyaXRlZFdyaXRpbmdNb2RlKTogQWRkZWQuCisgICAg
ICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuQWxsU2FtZURpcmVjdFdyaXRpbmdNb2RlKTogQWRk
ZWQuCisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlc0Jhc2ljKTogQWRkZWQuCisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuRW1w
dHlVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlc0NhbGMpOiBBZGRlZC4KKyAgICAgICAgKFRFU1QuQ1NT
Vmlld3BvcnRVbml0cy5FbXB0eVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzWm9vbWVkKTogQWRkZWQu
CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVkU2l6ZU92ZXJy
aWRlc0luaGVyaXRlZFdyaXRpbmdNb2RlKTogQWRkZWQuCisgICAgICAgIChURVNULkNTU1ZpZXdw
b3J0VW5pdHMuRW1wdHlVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlc0RpcmVjdFdyaXRpbmdNb2RlKTog
QWRkZWQuCisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuU2FtZVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGVzQmFzaWMpOiBBZGRlZC4KKyAgICAgICAgKFRFU1QuQ1NTVmlld3BvcnRVbml0cy5T
YW1lVW5vYnNjdXJlZFNpemVPdmVycmlkZXNDYWxjKTogQWRkZWQuCisgICAgICAgIChURVNULkNT
U1ZpZXdwb3J0VW5pdHMuU2FtZVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzWm9vbWVkKTogQWRkZWQu
CisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5pdHMuU2FtZVVub2JzY3VyZWRTaXplT3ZlcnJp
ZGVzSW5oZXJpdGVkV3JpdGluZ01vZGUpOiBBZGRlZC4KKyAgICAgICAgKFRFU1QuQ1NTVmlld3Bv
cnRVbml0cy5TYW1lVW5vYnNjdXJlZFNpemVPdmVycmlkZXNEaXJlY3RXcml0aW5nTW9kZSk6IEFk
ZGVkLgorICAgICAgICAoVEVTVC5DU1NWaWV3cG9ydFVuaXRzLkRpZmZlcmVudFVub2JzY3VyZWRT
aXplT3ZlcnJpZGVzQmFzaWMpOiBBZGRlZC4KKyAgICAgICAgKFRFU1QuQ1NTVmlld3BvcnRVbml0
cy5EaWZmZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlc0NhbGMpOiBBZGRlZC4KKyAgICAgICAg
KFRFU1QuQ1NTVmlld3BvcnRVbml0cy5EaWZmZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlc1pv
b21lZCk6IEFkZGVkLgorICAgICAgICAoVEVTVC5DU1NWaWV3cG9ydFVuaXRzLkRpZmZlcmVudFVu
b2JzY3VyZWRTaXplT3ZlcnJpZGVzSW5oZXJpdGVkV3JpdGluZ01vZGUpOiBBZGRlZC4KKyAgICAg
ICAgKFRFU1QuQ1NTVmlld3BvcnRVbml0cy5EaWZmZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRl
c0RpcmVjdFdyaXRpbmdNb2RlKTogQWRkZWQuCisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0VW5p
dHMuU1ZHRG9jdW1lbnRCYXNpYyk6IEFkZGVkLgorICAgICAgICAoVEVTVC5DU1NWaWV3cG9ydFVu
aXRzLlNWR0RvY3VtZW50Q2FsYyk6IEFkZGVkLgorICAgICAgICAoVEVTVC5DU1NWaWV3cG9ydFVu
aXRzLlNWR0RvY3VtZW50Wm9vbWVkKTogQWRkZWQuCisgICAgICAgIChURVNULkNTU1ZpZXdwb3J0
VW5pdHMuU1ZHRG9jdW1lbnRJbmhlcml0ZWRXcml0aW5nTW9kZSk6IEFkZGVkLgorICAgICAgICAo
VEVTVC5DU1NWaWV3cG9ydFVuaXRzLlNWR0RvY3VtZW50RGlyZWN0V3JpdGluZ01vZGUpOiBBZGRl
ZC4KKyAgICAgICAgKFRFU1QuQ1NTVmlld3BvcnRVbml0cy5BbGxTYW1lKTogRGVsZXRlZC4KKyAg
ICAgICAgKFRFU1QuQ1NTVmlld3BvcnRVbml0cy5FbXB0eVVub2JzY3VyZWRTaXplT3ZlcnJpZGVz
KTogRGVsZXRlZC4KKyAgICAgICAgKFRFU1QuQ1NTVmlld3BvcnRVbml0cy5TYW1lVW5vYnNjdXJl
ZFNpemVPdmVycmlkZXMpOiBEZWxldGVkLgorICAgICAgICAoVEVTVC5DU1NWaWV3cG9ydFVuaXRz
LkRpZmZlcmVudFVub2JzY3VyZWRTaXplT3ZlcnJpZGVzKTogRGVsZXRlZC4KKyAgICAgICAgKFRF
U1QuQ1NTVmlld3BvcnRVbml0cy5TVkdEb2N1bWVudCk6IERlbGV0ZWQuCisgICAgICAgIFNwbGl0
IGVhY2ggbGFyZ2UgdGVzdCBpbnRvIG11bHRpcGxlIHNtYWxsZXIgdGVzdHMuCisgICAgICAgIERy
aXZlLWJ5OiBBZGQgdGVzdHMgZm9yIENTUyBgY2FsY2AuCisKIDIwMjEtMTItMTUgIERvbiBPbG1z
dGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBTcGxpdCBBVEsgc3BlY2lm
aWMgY29kZSBpbiBXUEVWaWV3QmFja2VuZHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvQ1NTVmlld3BvcnRVbml0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ1NTVmlld3BvcnRVbml0cy5tbQppbmRleCA2N2M5NmRl
ZjkwYTIzMGNlMDhmMGQzZGI4NGMxNDAzZTRkZjZjODUzLi4yNGFhN2Y4NDM0Zjc4NjE3MzY4MjIx
NDNmYWZhZGMyNmE0ZDIyNTJlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0NTU1ZpZXdwb3J0VW5pdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9DU1NWaWV3cG9ydFVuaXRzLm1tCkBAIC0yNyw3MSArMjcsMTIz
IEBACiAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0V0tXZWJW
aWV3LmgiCisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dL
V2ViVmlld1ByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotc3RhdGljIGRv
dWJsZSBldmFsdWF0ZUZvck51bWJlcihSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4mIHdlYlZpZXcs
IE5TU3RyaW5nICpzY3JpcHQpCitzdGF0aWMgZmxvYXQgZXZhbHVhdGVGb3JOdW1iZXIoUmV0YWlu
UHRyPFRlc3RXS1dlYlZpZXc+JiB3ZWJWaWV3LCBOU1N0cmluZyAqc2NyaXB0KQogewotICAgIHJl
dHVybiBbKE5TTnVtYmVyICopW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpz
Y3JpcHRdIGRvdWJsZVZhbHVlXTsKKyAgICByZXR1cm4gWyhOU051bWJlciAqKVt3ZWJWaWV3IG9i
amVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6c2NyaXB0XSBmbG9hdFZhbHVlXTsKIH0KIAotc3Rh
dGljIGRvdWJsZSBkaW1lbnNpb25PZkVsZW1lbnQoUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+JiB3
ZWJWaWV3LCBOU1N0cmluZyAqZWxlbWVudCwgTlNTdHJpbmcgKmRpbWVuc2lvbikKK3N0YXRpYyBm
bG9hdCBkaW1lbnNpb25PZkVsZW1lbnQoUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+JiB3ZWJWaWV3
LCBOU1N0cmluZyAqZWxlbWVudCwgTlNTdHJpbmcgKmRpbWVuc2lvbikKIHsKICAgICByZXR1cm4g
ZXZhbHVhdGVGb3JOdW1iZXIod2ViVmlldywgW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCIl
QC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS4lQCIsIGVsZW1lbnQsIGRpbWVuc2lvbl0pOwogfQog
Ci1zdGF0aWMgZG91YmxlIHdpZHRoT2ZFbGVtZW50V2l0aElEKFJldGFpblB0cjxUZXN0V0tXZWJW
aWV3PiYgd2ViVmlldywgTlNTdHJpbmcgKmVsZW1lbnRJRCkKK3N0YXRpYyBmbG9hdCB3aWR0aE9m
RWxlbWVudFdpdGhJRChSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4mIHdlYlZpZXcsIE5TU3RyaW5n
ICplbGVtZW50SUQpCiB7CiAgICAgcmV0dXJuIGRpbWVuc2lvbk9mRWxlbWVudCh3ZWJWaWV3LCBb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCclQCcp
IiwgZWxlbWVudElEXSwgQCJ3aWR0aCIpOwogfQogCi1zdGF0aWMgZG91YmxlIGhlaWdodE9mRWxl
bWVudFdpdGhJRChSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4mIHdlYlZpZXcsIE5TU3RyaW5nICpl
bGVtZW50SUQpCitzdGF0aWMgZmxvYXQgaGVpZ2h0T2ZFbGVtZW50V2l0aElEKFJldGFpblB0cjxU
ZXN0V0tXZWJWaWV3PiYgd2ViVmlldywgTlNTdHJpbmcgKmVsZW1lbnRJRCkKIHsKICAgICByZXR1
cm4gZGltZW5zaW9uT2ZFbGVtZW50KHdlYlZpZXcsIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyVAJykiLCBlbGVtZW50SURdLCBAImhlaWdodCIp
OwogfQogCi1zdGF0aWMgZG91YmxlIHZpZXdwb3J0VW5pdExlbmd0aChSZXRhaW5QdHI8VGVzdFdL
V2ViVmlldz4mIHdlYlZpZXcsIE5TU3RyaW5nICp2aWV3cG9ydFVuaXQpCitzdGF0aWMgZmxvYXQg
dmlld3BvcnRVbml0TGVuZ3RoKFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiYgd2ViVmlldywgTlNT
dHJpbmcgKnZpZXdwb3J0VW5pdCkKIHsKICAgICByZXR1cm4gaGVpZ2h0T2ZFbGVtZW50V2l0aElE
KHdlYlZpZXcsIHZpZXdwb3J0VW5pdCk7CiB9CiAKLVRFU1QoQ1NTVmlld3BvcnRVbml0cywgQWxs
U2FtZSkKK3N0YXRpYyB2b2lkIGNoYW5nZUNTU1Byb3BlcnR5T2ZFbGVtZW50cyhSZXRhaW5QdHI8
VGVzdFdLV2ViVmlldz4mIHdlYlZpZXcsIE5TU3RyaW5nICpzZWxlY3RvciwgTlNTdHJpbmcgKnBy
b3BlcnR5LCBOU1N0cmluZyAqdmFsdWUpCit7CisgICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoJyVAJykuZm9yRWFjaCgoZWxlbWVudCkgPT4gZWxlbWVudC5zdHlsZVsnJUAn
XSA9ICVAKSIsIHNlbGVjdG9yLCBwcm9wZXJ0eSwgdmFsdWVdXTsKK30KKwordXNpbmcgU21hbGxT
aXplID0gV2ViQ29yZTo6RmxvYXRTaXplOwordXNpbmcgTGFyZ2VTaXplID0gV2ViQ29yZTo6Rmxv
YXRTaXplOwordXNpbmcgRHluYW1pY1NpemUgPSBXZWJDb3JlOjpGbG9hdFNpemU7CisKK2VudW0g
Y2xhc3MgSXNWZXJ0aWNhbFdyaXRpbmdNb2RlIHsgTm8sIFllcyB9Oworc3RhdGljIHZvaWQgY2hl
Y2soUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+JiB3ZWJWaWV3LCBTbWFsbFNpemUgc21hbGxTaXpl
LCBMYXJnZVNpemUgbGFyZ2VTaXplLCBJc1ZlcnRpY2FsV3JpdGluZ01vZGUgaXNWZXJ0aWNhbFdy
aXRpbmdNb2RlKQoreworICAgIC8vIHYqIGlzIGVxdWl2YWxlbnQgdG8gbHYqCisgICAgRVhQRUNU
X0ZMT0FUX0VRKGxhcmdlU2l6ZS53aWR0aCgpLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywg
QCJ2dyIpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEobGFyZ2VTaXplLmhlaWdodCgpLCB2aWV3cG9y
dFVuaXRMZW5ndGgod2ViVmlldywgQCJ2aCIpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEobGFyZ2VT
aXplLm1pbkRpbWVuc2lvbigpLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2bWluIikp
OworICAgIEVYUEVDVF9GTE9BVF9FUShsYXJnZVNpemUubWF4RGltZW5zaW9uKCksIHZpZXdwb3J0
VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZtYXgiKSk7CisgICAgaWYgKGlzVmVydGljYWxXcml0aW5n
TW9kZSA9PSBJc1ZlcnRpY2FsV3JpdGluZ01vZGU6OlllcykgeworICAgICAgICBFWFBFQ1RfRkxP
QVRfRVEobGFyZ2VTaXplLndpZHRoKCksIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZi
IikpOworICAgICAgICBFWFBFQ1RfRkxPQVRfRVEobGFyZ2VTaXplLmhlaWdodCgpLCB2aWV3cG9y
dFVuaXRMZW5ndGgod2ViVmlldywgQCJ2aSIpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBFWFBF
Q1RfRkxPQVRfRVEobGFyZ2VTaXplLmhlaWdodCgpLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmll
dywgQCJ2YiIpKTsKKyAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGxhcmdlU2l6ZS53aWR0aCgpLCB2
aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2aSIpKTsKKyAgICB9CisKKyAgICBFWFBFQ1Rf
RkxPQVRfRVEoc21hbGxTaXplLndpZHRoKCksIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBA
InN2dyIpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoc21hbGxTaXplLmhlaWdodCgpLCB2aWV3cG9y
dFVuaXRMZW5ndGgod2ViVmlldywgQCJzdmgiKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKHNtYWxs
U2l6ZS5taW5EaW1lbnNpb24oKSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZtaW4i
KSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKHNtYWxsU2l6ZS5tYXhEaW1lbnNpb24oKSwgdmlld3Bv
cnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZtYXgiKSk7CisgICAgaWYgKGlzVmVydGljYWxXcml0
aW5nTW9kZSA9PSBJc1ZlcnRpY2FsV3JpdGluZ01vZGU6OlllcykgeworICAgICAgICBFWFBFQ1Rf
RkxPQVRfRVEoc21hbGxTaXplLndpZHRoKCksIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBA
InN2YiIpKTsKKyAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKHNtYWxsU2l6ZS5oZWlnaHQoKSwgdmll
d3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZpIikpOworICAgIH0gZWxzZSB7CisgICAgICAg
IEVYUEVDVF9GTE9BVF9FUShzbWFsbFNpemUuaGVpZ2h0KCksIHZpZXdwb3J0VW5pdExlbmd0aCh3
ZWJWaWV3LCBAInN2YiIpKTsKKyAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKHNtYWxsU2l6ZS53aWR0
aCgpLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdmkiKSk7CisgICAgfQorCisgICAg
RVhQRUNUX0ZMT0FUX0VRKGxhcmdlU2l6ZS53aWR0aCgpLCB2aWV3cG9ydFVuaXRMZW5ndGgod2Vi
VmlldywgQCJsdnciKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKGxhcmdlU2l6ZS5oZWlnaHQoKSwg
dmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZoIikpOworICAgIEVYUEVDVF9GTE9BVF9F
UShsYXJnZVNpemUubWluRGltZW5zaW9uKCksIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBA
Imx2bWluIikpOworICAgIEVYUEVDVF9GTE9BVF9FUShsYXJnZVNpemUubWF4RGltZW5zaW9uKCks
IHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2bWF4IikpOworICAgIGlmIChpc1ZlcnRp
Y2FsV3JpdGluZ01vZGUgPT0gSXNWZXJ0aWNhbFdyaXRpbmdNb2RlOjpZZXMpIHsKKyAgICAgICAg
RVhQRUNUX0ZMT0FUX0VRKGxhcmdlU2l6ZS53aWR0aCgpLCB2aWV3cG9ydFVuaXRMZW5ndGgod2Vi
VmlldywgQCJsdmIiKSk7CisgICAgICAgIEVYUEVDVF9GTE9BVF9FUShsYXJnZVNpemUuaGVpZ2h0
KCksIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2aSIpKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBFWFBFQ1RfRkxPQVRfRVEobGFyZ2VTaXplLmhlaWdodCgpLCB2aWV3cG9ydFVuaXRM
ZW5ndGgod2ViVmlldywgQCJsdmIiKSk7CisgICAgICAgIEVYUEVDVF9GTE9BVF9FUShsYXJnZVNp
emUud2lkdGgoKSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZpIikpOworICAgIH0K
KworICAgIGF1dG8gZHluYW1pY1NpemUgPSBEeW5hbWljU2l6ZSB7IHdpZHRoT2ZFbGVtZW50V2l0
aElEKHdlYlZpZXcsIEAiZml4ZWQiKSwgaGVpZ2h0T2ZFbGVtZW50V2l0aElEKHdlYlZpZXcsIEAi
Zml4ZWQiKSB9OworICAgIEVYUEVDVF9GTE9BVF9FUShkeW5hbWljU2l6ZS53aWR0aCgpLCB2aWV3
cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdnciKSk7CisgICAgRVhQRUNUX0ZMT0FUX0VRKGR5
bmFtaWNTaXplLmhlaWdodCgpLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdmgiKSk7
CisgICAgRVhQRUNUX0ZMT0FUX0VRKGR5bmFtaWNTaXplLm1pbkRpbWVuc2lvbigpLCB2aWV3cG9y
dFVuaXRMZW5ndGgod2ViVmlldywgQCJkdm1pbiIpKTsKKyAgICBFWFBFQ1RfRkxPQVRfRVEoZHlu
YW1pY1NpemUubWF4RGltZW5zaW9uKCksIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2
bWF4IikpOworICAgIGlmIChpc1ZlcnRpY2FsV3JpdGluZ01vZGUgPT0gSXNWZXJ0aWNhbFdyaXRp
bmdNb2RlOjpZZXMpIHsKKyAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGR5bmFtaWNTaXplLndpZHRo
KCksIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2YiIpKTsKKyAgICAgICAgRVhQRUNU
X0ZMT0FUX0VRKGR5bmFtaWNTaXplLmhlaWdodCgpLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmll
dywgQCJkdmkiKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGR5bmFt
aWNTaXplLmhlaWdodCgpLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdmIiKSk7Cisg
ICAgICAgIEVYUEVDVF9GTE9BVF9FUShkeW5hbWljU2l6ZS53aWR0aCgpLCB2aWV3cG9ydFVuaXRM
ZW5ndGgod2ViVmlldywgQCJkdmkiKSk7CisgICAgfQorfQorCitURVNUKENTU1ZpZXdwb3J0VW5p
dHMsIEFsbFNhbWVCYXNpYykKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0p
OwogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAIkNTU1ZpZXdw
b3J0VW5pdHMiXTsKICAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07
CiAKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMzIwLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywg
QCJ2dyIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoNTAwLCB2aWV3cG9ydFVuaXRMZW5ndGgod2Vi
VmlldywgQCJ2aCIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMzIwLCB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJ2bWluIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSg1MDAsIHZpZXdwb3J0
VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZtYXgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDUwMCwg
dmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmIiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VR
KDMyMCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmkiKSk7CisgICAgY2hlY2sod2Vi
VmlldywgU21hbGxTaXplIHsgMzIwLCA1MDAgfSwgTGFyZ2VTaXplIHsgMzIwLCA1MDAgfSwgSXNW
ZXJ0aWNhbFdyaXRpbmdNb2RlOjpObyk7Cit9CiAKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMzIwLCB2
aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdnciKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VR
KDUwMCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZoIikpOwotICAgIEVYUEVDVF9G
TE9BVF9FUSgzMjAsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2bWluIikpOwotICAg
IEVYUEVDVF9GTE9BVF9FUSg1MDAsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2bWF4
IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSg1MDAsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3
LCBAInN2YiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMzIwLCB2aWV3cG9ydFVuaXRMZW5ndGgo
d2ViVmlldywgQCJzdmkiKSk7CitURVNUKENTU1ZpZXdwb3J0VW5pdHMsIEFsbFNhbWVDYWxjKQor
eworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOwogCi0gICAg
RVhQRUNUX0ZMT0FUX0VRKDMyMCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZ3Iikp
OwotICAgIEVYUEVDVF9GTE9BVF9FUSg1MDAsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBA
Imx2aCIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMzIwLCB2aWV3cG9ydFVuaXRMZW5ndGgod2Vi
VmlldywgQCJsdm1pbiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoNTAwLCB2aWV3cG9ydFVuaXRM
ZW5ndGgod2ViVmlldywgQCJsdm1heCIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoNTAwLCB2aWV3
cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdmIiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDMy
MCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZpIikpOworICAgIGNoYW5nZUNTU1By
b3BlcnR5T2ZFbGVtZW50cyh3ZWJWaWV3LCBAImRpdiIsIEAid2lkdGgiLCBAImBjYWxjKCR7ZWxl
bWVudC5zdHlsZS53aWR0aH0gKyAxcHgpYCIpOworICAgIGNoYW5nZUNTU1Byb3BlcnR5T2ZFbGVt
ZW50cyh3ZWJWaWV3LCBAImRpdiIsIEAiaGVpZ2h0IiwgQCJgY2FsYygke2VsZW1lbnQuc3R5bGUu
aGVpZ2h0fSArIDFweClgIik7CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25V
cGRhdGVdOwogCi0gICAgewotICAgICAgICBkb3VibGUgZml4ZWRXaWR0aCA9IHdpZHRoT2ZFbGVt
ZW50V2l0aElEKHdlYlZpZXcsIEAiZml4ZWQiKTsKLSAgICAgICAgZG91YmxlIGZpeGVkSGVpZ2h0
ID0gaGVpZ2h0T2ZFbGVtZW50V2l0aElEKHdlYlZpZXcsIEAiZml4ZWQiKTsKLSAgICAgICAgRVhQ
RUNUX0ZMT0FUX0VRKGZpeGVkV2lkdGgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2
dyIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9ydFVuaXRM
ZW5ndGgod2ViVmlldywgQCJkdmgiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShmaXhlZFdp
ZHRoLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdm1pbiIpKTsKLSAgICAgICAgRVhQ
RUNUX0ZMT0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJk
dm1heCIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9ydFVu
aXRMZW5ndGgod2ViVmlldywgQCJkdmIiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShmaXhl
ZFdpZHRoLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdmkiKSk7Ci0gICAgfQorICAg
IGNoZWNrKHdlYlZpZXcsIFNtYWxsU2l6ZSB7IDMyMSwgNTAxIH0sIExhcmdlU2l6ZSB7IDMyMSwg
NTAxIH0sIElzVmVydGljYWxXcml0aW5nTW9kZTo6Tm8pOworfQorCitURVNUKENTU1ZpZXdwb3J0
VW5pdHMsIEFsbFNhbWVab29tZWQpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUw
MCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJDU1NW
aWV3cG9ydFVuaXRzIl07CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFt3ZWJWaWV3
IHNjcm9sbFZpZXddLnpvb21TY2FsZSA9IDI7CkBAIC0xMDEsNzcgKzE1MywzNSBAQCBURVNUKENT
U1ZpZXdwb3J0VW5pdHMsIEFsbFNhbWUpCiAjZW5kaWYKICAgICBbd2ViVmlldyB3YWl0Rm9yTmV4
dFByZXNlbnRhdGlvblVwZGF0ZV07CiAKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMzIwLCB2aWV3cG9y
dFVuaXRMZW5ndGgod2ViVmlldywgQCJ2dyIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoNTAwLCB2
aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2aCIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEo
MzIwLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2bWluIikpOwotICAgIEVYUEVDVF9G
TE9BVF9FUSg1MDAsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZtYXgiKSk7Ci0gICAg
RVhQRUNUX0ZMT0FUX0VRKDUwMCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmIiKSk7
Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDMyMCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAi
dmkiKSk7CisgICAgY2hlY2sod2ViVmlldywgU21hbGxTaXplIHsgMzIwLCA1MDAgfSwgTGFyZ2VT
aXplIHsgMzIwLCA1MDAgfSwgSXNWZXJ0aWNhbFdyaXRpbmdNb2RlOjpObyk7Cit9CiAKLSAgICBF
WFBFQ1RfRkxPQVRfRVEoMzIwLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdnciKSk7
Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDUwMCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAi
c3ZoIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgzMjAsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJW
aWV3LCBAInN2bWluIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSg1MDAsIHZpZXdwb3J0VW5pdExl
bmd0aCh3ZWJWaWV3LCBAInN2bWF4IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSg1MDAsIHZpZXdw
b3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2YiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMzIw
LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdmkiKSk7CitURVNUKENTU1ZpZXdwb3J0
VW5pdHMsIEFsbFNhbWVJbmhlcml0ZWRXcml0aW5nTW9kZSkKK3sKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtl
KDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBh
Z2VOYW1lZDpAIkNTU1ZpZXdwb3J0VW5pdHMiXTsKIAotICAgIEVYUEVDVF9GTE9BVF9FUSgzMjAs
IHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2dyIpKTsKLSAgICBFWFBFQ1RfRkxPQVRf
RVEoNTAwLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdmgiKSk7Ci0gICAgRVhQRUNU
X0ZMT0FUX0VRKDMyMCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZtaW4iKSk7Ci0g
ICAgRVhQRUNUX0ZMT0FUX0VRKDUwMCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZt
YXgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDUwMCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZp
ZXcsIEAibHZiIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgzMjAsIHZpZXdwb3J0VW5pdExlbmd0
aCh3ZWJWaWV3LCBAImx2aSIpKTsKLQotICAgIHsKLSAgICAgICAgZG91YmxlIGZpeGVkV2lkdGgg
PSB3aWR0aE9mRWxlbWVudFdpdGhJRCh3ZWJWaWV3LCBAImZpeGVkIik7Ci0gICAgICAgIGRvdWJs
ZSBmaXhlZEhlaWdodCA9IGhlaWdodE9mRWxlbWVudFdpdGhJRCh3ZWJWaWV3LCBAImZpeGVkIik7
Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShmaXhlZFdpZHRoLCB2aWV3cG9ydFVuaXRMZW5ndGgo
d2ViVmlldywgQCJkdnciKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShmaXhlZEhlaWdodCwg
dmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZoIikpOwotICAgICAgICBFWFBFQ1RfRkxP
QVRfRVEoZml4ZWRXaWR0aCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZtaW4iKSk7
Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShmaXhlZEhlaWdodCwgdmlld3BvcnRVbml0TGVuZ3Ro
KHdlYlZpZXcsIEAiZHZtYXgiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShmaXhlZEhlaWdo
dCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZiIikpOwotICAgICAgICBFWFBFQ1Rf
RkxPQVRfRVEoZml4ZWRXaWR0aCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZpIikp
OwotICAgIH0KLQotICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJk
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUud3JpdGluZ01vZGUgPSAndmVydGljYWwtbHIn
Il07CisgICAgY2hhbmdlQ1NTUHJvcGVydHlPZkVsZW1lbnRzKHdlYlZpZXcsIEAiYm9keSIsIEAi
d3JpdGluZy1tb2RlIiwgQCIndmVydGljYWwtbHInIik7CiAgICAgW3dlYlZpZXcgd2FpdEZvck5l
eHRQcmVzZW50YXRpb25VcGRhdGVdOwogCi0gICAgRVhQRUNUX0ZMT0FUX0VRKDMyMCwgdmlld3Bv
cnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidnciKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDUwMCwg
dmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VR
KDMyMCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidm1pbiIpKTsKLSAgICBFWFBFQ1Rf
RkxPQVRfRVEoNTAwLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2bWF4IikpOwotICAg
IEVYUEVDVF9GTE9BVF9FUSgzMjAsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZiIikp
OwotICAgIEVYUEVDVF9GTE9BVF9FUSg1MDAsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBA
InZpIikpOworICAgIGNoZWNrKHdlYlZpZXcsIFNtYWxsU2l6ZSB7IDMyMCwgNTAwIH0sIExhcmdl
U2l6ZSB7IDMyMCwgNTAwIH0sIElzVmVydGljYWxXcml0aW5nTW9kZTo6WWVzKTsKK30KIAotICAg
IEVYUEVDVF9GTE9BVF9FUSgzMjAsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2dyIp
KTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoNTAwLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywg
QCJzdmgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDMyMCwgdmlld3BvcnRVbml0TGVuZ3RoKHdl
YlZpZXcsIEAic3ZtaW4iKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDUwMCwgdmlld3BvcnRVbml0
TGVuZ3RoKHdlYlZpZXcsIEAic3ZtYXgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDMyMCwgdmll
d3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZiIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSg1
MDAsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2aSIpKTsKK1RFU1QoQ1NTVmlld3Bv
cnRVbml0cywgQWxsU2FtZURpcmVjdFdyaXRpbmdNb2RlKQoreworICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2Uo
MCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFn
ZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOwogCi0gICAgRVhQRUNUX0ZMT0FUX0VRKDMyMCwg
dmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZ3IikpOwotICAgIEVYUEVDVF9GTE9BVF9F
USg1MDAsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2aCIpKTsKLSAgICBFWFBFQ1Rf
RkxPQVRfRVEoMzIwLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdm1pbiIpKTsKLSAg
ICBFWFBFQ1RfRkxPQVRfRVEoNTAwLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdm1h
eCIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMzIwLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmll
dywgQCJsdmIiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDUwMCwgdmlld3BvcnRVbml0TGVuZ3Ro
KHdlYlZpZXcsIEAibHZpIikpOworICAgIGNoYW5nZUNTU1Byb3BlcnR5T2ZFbGVtZW50cyh3ZWJW
aWV3LCBAImJvZHkiLCBAIndyaXRpbmctbW9kZSIsIEAiJ2hvcml6b250YWwtdGInIik7CisgICAg
Y2hhbmdlQ1NTUHJvcGVydHlPZkVsZW1lbnRzKHdlYlZpZXcsIEAiZGl2IiwgQCJ3cml0aW5nLW1v
ZGUiLCBAIid2ZXJ0aWNhbC1sciciKTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRh
dGlvblVwZGF0ZV07CiAKLSAgICB7Ci0gICAgICAgIGRvdWJsZSBmaXhlZFdpZHRoID0gd2lkdGhP
ZkVsZW1lbnRXaXRoSUQod2ViVmlldywgQCJmaXhlZCIpOwotICAgICAgICBkb3VibGUgZml4ZWRI
ZWlnaHQgPSBoZWlnaHRPZkVsZW1lbnRXaXRoSUQod2ViVmlldywgQCJmaXhlZCIpOwotICAgICAg
ICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRXaWR0aCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcs
IEAiZHZ3IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRIZWlnaHQsIHZpZXdwb3J0
VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2aCIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGZp
eGVkV2lkdGgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2bWluIikpOwotICAgICAg
ICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRIZWlnaHQsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3
LCBAImR2bWF4IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRXaWR0aCwgdmlld3Bv
cnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZiIikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEo
Zml4ZWRIZWlnaHQsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2aSIpKTsKLSAgICB9
CisgICAgY2hlY2sod2ViVmlldywgU21hbGxTaXplIHsgMzIwLCA1MDAgfSwgTGFyZ2VTaXplIHsg
MzIwLCA1MDAgfSwgSXNWZXJ0aWNhbFdyaXRpbmdNb2RlOjpZZXMpOwogfQogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKIAotVEVTVChDU1NWaWV3cG9ydFVuaXRzLCBFbXB0eVVub2JzY3VyZWRT
aXplT3ZlcnJpZGVzKQorVEVTVChDU1NWaWV3cG9ydFVuaXRzLCBFbXB0eVVub2JzY3VyZWRTaXpl
T3ZlcnJpZGVzQmFzaWMpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsK
ICAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRT
aXplOkNHU2l6ZU1ha2UoMTAuNSwgMjAuNSkKQEAgLTE3OSwxMTAgKzE4OSw2NCBAQCBURVNUKENT
U1ZpZXdwb3J0VW5pdHMsIEVtcHR5VW5vYnNjdXJlZFNpemVPdmVycmlkZXMpCiAgICAgW3dlYlZp
ZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOwog
ICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKIAotICAgIEVYUEVD
VF9GTE9BVF9FUSgxMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2dyIpKTsKLSAg
ICBFWFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmgi
KSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3
LCBAInZtaW4iKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDIwLjUsIHZpZXdwb3J0VW5pdExlbmd0
aCh3ZWJWaWV3LCBAInZtYXgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDIwLjUsIHZpZXdwb3J0
VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZiIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgxMC41LCB2
aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2aSIpKTsKKyAgICBjaGVjayh3ZWJWaWV3LCBT
bWFsbFNpemUgeyAxMC41LCAyMC41IH0sIExhcmdlU2l6ZSB7IDEwLjUsIDIwLjUgfSwgSXNWZXJ0
aWNhbFdyaXRpbmdNb2RlOjpObyk7Cit9CiAKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmll
d3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3Z3IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgy
MC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdmgiKSk7Ci0gICAgRVhQRUNUX0ZM
T0FUX0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2bWluIikpOwotICAg
IEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdm1h
eCIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZp
ZXcsIEAic3ZiIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgxMC41LCB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJzdmkiKSk7CitURVNUKENTU1ZpZXdwb3J0VW5pdHMsIEVtcHR5VW5vYnNj
dXJlZFNpemVPdmVycmlkZXNDYWxjKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1
MDApXSk7CisgICAgW3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVt
TGF5b3V0U2l6ZTpDR1NpemVNYWtlKDEwLjUsIDIwLjUpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYXhpbXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVaZXJvXTsKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJDU1NWaWV3cG9ydFVuaXRz
Il07CiAKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZp
ZXcsIEAibHZ3IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJsdmgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0
VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2bWluIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41
LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdm1heCIpKTsKLSAgICBFWFBFQ1RfRkxP
QVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZiIikpOwotICAgIEVY
UEVDVF9GTE9BVF9FUSgxMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdmkiKSk7
CisgICAgY2hhbmdlQ1NTUHJvcGVydHlPZkVsZW1lbnRzKHdlYlZpZXcsIEAiZGl2IiwgQCJ3aWR0
aCIsIEAiYGNhbGMoJHtlbGVtZW50LnN0eWxlLndpZHRofSArIDFweClgIik7CisgICAgY2hhbmdl
Q1NTUHJvcGVydHlPZkVsZW1lbnRzKHdlYlZpZXcsIEAiZGl2IiwgQCJoZWlnaHQiLCBAImBjYWxj
KCR7ZWxlbWVudC5zdHlsZS5oZWlnaHR9ICsgMXB4KWAiKTsKKyAgICBbd2ViVmlldyB3YWl0Rm9y
TmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CiAKLSAgICB7Ci0gICAgICAgIGRvdWJsZSBmaXhlZFdp
ZHRoID0gd2lkdGhPZkVsZW1lbnRXaXRoSUQod2ViVmlldywgQCJmaXhlZCIpOwotICAgICAgICBk
b3VibGUgZml4ZWRIZWlnaHQgPSBoZWlnaHRPZkVsZW1lbnRXaXRoSUQod2ViVmlldywgQCJmaXhl
ZCIpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRXaWR0aCwgdmlld3BvcnRVbml0TGVu
Z3RoKHdlYlZpZXcsIEAiZHZ3IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRIZWln
aHQsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2aCIpKTsKLSAgICAgICAgRVhQRUNU
X0ZMT0FUX0VRKGZpeGVkV2lkdGgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2bWlu
IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRIZWlnaHQsIHZpZXdwb3J0VW5pdExl
bmd0aCh3ZWJWaWV3LCBAImR2bWF4IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRI
ZWlnaHQsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2YiIpKTsKLSAgICAgICAgRVhQ
RUNUX0ZMT0FUX0VRKGZpeGVkV2lkdGgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2
aSIpKTsKLSAgICB9CisgICAgY2hlY2sod2ViVmlldywgU21hbGxTaXplIHsgMTEuNSwgMjEuNSB9
LCBMYXJnZVNpemUgeyAxMS41LCAyMS41IH0sIElzVmVydGljYWxXcml0aW5nTW9kZTo6Tm8pOwor
fQorCitURVNUKENTU1ZpZXdwb3J0VW5pdHMsIEVtcHR5VW5vYnNjdXJlZFNpemVPdmVycmlkZXNa
b29tZWQpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2Vi
VmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6
ZU1ha2UoMTAuNSwgMjAuNSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW1V
bm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6ZVplcm9dOworICAgIFt3ZWJWaWV3IHN5bmNocm9u
b3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAIkNTU1ZpZXdwb3J0VW5pdHMiXTsKIAogICAgIFt3ZWJW
aWV3IHNjcm9sbFZpZXddLnpvb21TY2FsZSA9IDI7CiAgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQ
cmVzZW50YXRpb25VcGRhdGVdOwogCi0gICAgRVhQRUNUX0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0
VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZ3IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2
aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2aCIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEo
MTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidm1pbiIpKTsKLSAgICBFWFBFQ1Rf
RkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidm1heCIpKTsKLSAg
ICBFWFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmIi
KSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3
LCBAInZpIikpOwotCi0gICAgRVhQRUNUX0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0
aCh3ZWJWaWV3LCBAInN2dyIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRV
bml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZoIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgxMC41LCB2
aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdm1pbiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRf
RVEoMjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZtYXgiKSk7Ci0gICAgRVhQ
RUNUX0ZMT0FUX0VRKDIwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2YiIpKTsK
LSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAi
c3ZpIikpOwotCi0gICAgRVhQRUNUX0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3
ZWJWaWV3LCBAImx2dyIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0
TGVuZ3RoKHdlYlZpZXcsIEAibHZoIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgxMC41LCB2aWV3
cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdm1pbiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEo
MjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZtYXgiKSk7Ci0gICAgRVhQRUNU
X0ZMT0FUX0VRKDIwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2YiIpKTsKLSAg
ICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZp
IikpOwotCi0gICAgewotICAgICAgICBkb3VibGUgZml4ZWRXaWR0aCA9IHdpZHRoT2ZFbGVtZW50
V2l0aElEKHdlYlZpZXcsIEAiZml4ZWQiKTsKLSAgICAgICAgZG91YmxlIGZpeGVkSGVpZ2h0ID0g
aGVpZ2h0T2ZFbGVtZW50V2l0aElEKHdlYlZpZXcsIEAiZml4ZWQiKTsKLSAgICAgICAgRVhQRUNU
X0ZMT0FUX0VRKGZpeGVkV2lkdGgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2dyIp
KTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJkdmgiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShmaXhlZFdpZHRo
LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdm1pbiIpKTsKLSAgICAgICAgRVhQRUNU
X0ZMT0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdm1h
eCIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9ydFVuaXRM
ZW5ndGgod2ViVmlldywgQCJkdmIiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShmaXhlZFdp
ZHRoLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdmkiKSk7Ci0gICAgfQotCi0gICAg
W3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmRvY3VtZW50
RWxlbWVudC5zdHlsZS53cml0aW5nTW9kZSA9ICd2ZXJ0aWNhbC1sciciXTsKLSAgICBbd2ViVmll
dyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07Ci0KLSAgICBFWFBFQ1RfRkxPQVRfRVEo
MTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidnciKSk7Ci0gICAgRVhQRUNUX0ZM
T0FUX0VRKDIwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZoIikpOwotICAgIEVY
UEVDVF9GTE9BVF9FUSgxMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2bWluIikp
OwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywg
QCJ2bWF4IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgxMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgo
d2ViVmlldywgQCJ2YiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0
TGVuZ3RoKHdlYlZpZXcsIEAidmkiKSk7Ci0KLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmll
d3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3Z3IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgy
MC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdmgiKSk7Ci0gICAgRVhQRUNUX0ZM
T0FUX0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2bWluIikpOwotICAg
IEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdm1h
eCIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZp
ZXcsIEAic3ZiIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJzdmkiKSk7Ci0KLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3Bv
cnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZ3IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41
LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdmgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FU
X0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2bWluIikpOwotICAgIEVY
UEVDVF9GTE9BVF9FUSgyMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdm1heCIp
KTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcs
IEAibHZiIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgo
d2ViVmlldywgQCJsdmkiKSk7Ci0KLSAgICB7Ci0gICAgICAgIGRvdWJsZSBmaXhlZFdpZHRoID0g
d2lkdGhPZkVsZW1lbnRXaXRoSUQod2ViVmlldywgQCJmaXhlZCIpOwotICAgICAgICBkb3VibGUg
Zml4ZWRIZWlnaHQgPSBoZWlnaHRPZkVsZW1lbnRXaXRoSUQod2ViVmlldywgQCJmaXhlZCIpOwot
ICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRXaWR0aCwgdmlld3BvcnRVbml0TGVuZ3RoKHdl
YlZpZXcsIEAiZHZ3IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRIZWlnaHQsIHZp
ZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2aCIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FU
X0VRKGZpeGVkV2lkdGgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2bWluIikpOwot
ICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRIZWlnaHQsIHZpZXdwb3J0VW5pdExlbmd0aCh3
ZWJWaWV3LCBAImR2bWF4IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRXaWR0aCwg
dmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZiIikpOwotICAgICAgICBFWFBFQ1RfRkxP
QVRfRVEoZml4ZWRIZWlnaHQsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2aSIpKTsK
LSAgICB9CisgICAgY2hlY2sod2ViVmlldywgU21hbGxTaXplIHsgMTAuNSwgMjAuNSB9LCBMYXJn
ZVNpemUgeyAxMC41LCAyMC41IH0sIElzVmVydGljYWxXcml0aW5nTW9kZTo6Tm8pOwogfQogCi1U
RVNUKENTU1ZpZXdwb3J0VW5pdHMsIFNhbWVVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlcykKK1RFU1Qo
Q1NTVmlld3BvcnRVbml0cywgRW1wdHlVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlc0luaGVyaXRlZFdy
aXRpbmdNb2RlKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAg
W3dlYlZpZXcgX292ZXJyaWRlTGF5b3V0UGFyYW1ldGVyc1dpdGhNaW5pbXVtTGF5b3V0U2l6ZTpD
R1NpemVNYWtlKDEwLjUsIDIwLjUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhp
bXVtVW5vYnNjdXJlZFNpemVPdmVycmlkZTpDR1NpemVaZXJvXTsKKyAgICBbd2ViVmlldyBzeW5j
aHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJDU1NWaWV3cG9ydFVuaXRzIl07CisKKyAgICBj
aGFuZ2VDU1NQcm9wZXJ0eU9mRWxlbWVudHMod2ViVmlldywgQCJib2R5IiwgQCJ3cml0aW5nLW1v
ZGUiLCBAIid2ZXJ0aWNhbC1sciciKTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRh
dGlvblVwZGF0ZV07CisKKyAgICBjaGVjayh3ZWJWaWV3LCBTbWFsbFNpemUgeyAxMC41LCAyMC41
IH0sIExhcmdlU2l6ZSB7IDEwLjUsIDIwLjUgfSwgSXNWZXJ0aWNhbFdyaXRpbmdNb2RlOjpZZXMp
OworfQorCitURVNUKENTU1ZpZXdwb3J0VW5pdHMsIEVtcHR5VW5vYnNjdXJlZFNpemVPdmVycmlk
ZXNEaXJlY3RXcml0aW5nTW9kZSkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAw
KV0pOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxh
eW91dFNpemU6Q0dTaXplTWFrZSgxMC41LCAyMC41KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplWmVyb107CisgICAgW3dl
YlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJd
OworCisgICAgY2hhbmdlQ1NTUHJvcGVydHlPZkVsZW1lbnRzKHdlYlZpZXcsIEAiYm9keSIsIEAi
d3JpdGluZy1tb2RlIiwgQCInaG9yaXpvbnRhbC10YiciKTsKKyAgICBjaGFuZ2VDU1NQcm9wZXJ0
eU9mRWxlbWVudHMod2ViVmlldywgQCJkaXYiLCBAIndyaXRpbmctbW9kZSIsIEAiJ3ZlcnRpY2Fs
LWxyJyIpOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKwor
ICAgIGNoZWNrKHdlYlZpZXcsIFNtYWxsU2l6ZSB7IDEwLjUsIDIwLjUgfSwgTGFyZ2VTaXplIHsg
MTAuNSwgMjAuNSB9LCBJc1ZlcnRpY2FsV3JpdGluZ01vZGU6Olllcyk7Cit9CisKK1RFU1QoQ1NT
Vmlld3BvcnRVbml0cywgU2FtZVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzQmFzaWMpCiB7CiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKICAgICBbd2ViVmlldyBfb3ZlcnJpZGVM
YXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTAuNSwgMjAu
NSkKQEAgLTI5MCwxMTAgKzI1NCw2NCBAQCBURVNUKENTU1ZpZXdwb3J0VW5pdHMsIFNhbWVVbm9i
c2N1cmVkU2l6ZU92ZXJyaWRlcykKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQ
YWdlTmFtZWQ6QCJDU1NWaWV3cG9ydFVuaXRzIl07CiAgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQ
cmVzZW50YXRpb25VcGRhdGVdOwogCi0gICAgRVhQRUNUX0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0
VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZ3IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2
aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2aCIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEo
MTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidm1pbiIpKTsKLSAgICBFWFBFQ1Rf
RkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidm1heCIpKTsKLSAg
ICBFWFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmIi
KSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3
LCBAInZpIikpOworICAgIGNoZWNrKHdlYlZpZXcsIFNtYWxsU2l6ZSB7IDEwLjUsIDIwLjUgfSwg
TGFyZ2VTaXplIHsgMTAuNSwgMjAuNSB9LCBJc1ZlcnRpY2FsV3JpdGluZ01vZGU6Ok5vKTsKK30K
IAotICAgIEVYUEVDVF9GTE9BVF9FUSgxMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywg
QCJzdnciKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDIwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3
ZWJWaWV3LCBAInN2aCIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3BvcnRVbml0
TGVuZ3RoKHdlYlZpZXcsIEAic3ZtaW4iKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDIwLjUsIHZp
ZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2bWF4IikpOwotICAgIEVYUEVDVF9GTE9BVF9F
USgyMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdmIiKSk7Ci0gICAgRVhQRUNU
X0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2aSIpKTsKK1RF
U1QoQ1NTVmlld3BvcnRVbml0cywgU2FtZVVub2JzY3VyZWRTaXplT3ZlcnJpZGVzQ2FsYykKK3sK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IF9vdmVy
cmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgxMC41
LCAyMC41KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bVVub2JzY3VyZWRT
aXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxMC41LCAyMC41KV07CisgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOwogCi0gICAgRVhQ
RUNUX0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2dyIpKTsK
LSAgICBFWFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAi
bHZoIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgxMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2Vi
VmlldywgQCJsdm1pbiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0
TGVuZ3RoKHdlYlZpZXcsIEAibHZtYXgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDIwLjUsIHZp
ZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2YiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEo
MTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZpIikpOworICAgIGNoYW5nZUNT
U1Byb3BlcnR5T2ZFbGVtZW50cyh3ZWJWaWV3LCBAImRpdiIsIEAid2lkdGgiLCBAImBjYWxjKCR7
ZWxlbWVudC5zdHlsZS53aWR0aH0gKyAxcHgpYCIpOworICAgIGNoYW5nZUNTU1Byb3BlcnR5T2ZF
bGVtZW50cyh3ZWJWaWV3LCBAImRpdiIsIEAiaGVpZ2h0IiwgQCJgY2FsYygke2VsZW1lbnQuc3R5
bGUuaGVpZ2h0fSArIDFweClgIik7CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRp
b25VcGRhdGVdOwogCi0gICAgewotICAgICAgICBkb3VibGUgZml4ZWRXaWR0aCA9IHdpZHRoT2ZF
bGVtZW50V2l0aElEKHdlYlZpZXcsIEAiZml4ZWQiKTsKLSAgICAgICAgZG91YmxlIGZpeGVkSGVp
Z2h0ID0gaGVpZ2h0T2ZFbGVtZW50V2l0aElEKHdlYlZpZXcsIEAiZml4ZWQiKTsKLSAgICAgICAg
RVhQRUNUX0ZMT0FUX0VRKGZpeGVkV2lkdGgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBA
ImR2dyIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9ydFVu
aXRMZW5ndGgod2ViVmlldywgQCJkdmgiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShmaXhl
ZFdpZHRoLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdm1pbiIpKTsKLSAgICAgICAg
RVhQRUNUX0ZMT0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywg
QCJkdm1heCIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9y
dFVuaXRMZW5ndGgod2ViVmlldywgQCJkdmIiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShm
aXhlZFdpZHRoLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdmkiKSk7Ci0gICAgfQor
ICAgIGNoZWNrKHdlYlZpZXcsIFNtYWxsU2l6ZSB7IDExLjUsIDIxLjUgfSwgTGFyZ2VTaXplIHsg
MTEuNSwgMjEuNSB9LCBJc1ZlcnRpY2FsV3JpdGluZ01vZGU6Ok5vKTsKK30KKworVEVTVChDU1NW
aWV3cG9ydFVuaXRzLCBTYW1lVW5vYnNjdXJlZFNpemVPdmVycmlkZXNab29tZWQpCit7CisgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVM
YXlvdXRQYXJhbWV0ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTAuNSwgMjAu
NSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92
ZXJyaWRlOkNHU2l6ZU1ha2UoMTAuNSwgMjAuNSldOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3Vz
bHlMb2FkVGVzdFBhZ2VOYW1lZDpAIkNTU1ZpZXdwb3J0VW5pdHMiXTsKIAogICAgIFt3ZWJWaWV3
IHNjcm9sbFZpZXddLnpvb21TY2FsZSA9IDI7CiAgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVz
ZW50YXRpb25VcGRhdGVdOwogCi0gICAgRVhQRUNUX0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0VW5p
dExlbmd0aCh3ZWJWaWV3LCBAInZ3IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2aWV3
cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2aCIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAu
NSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidm1pbiIpKTsKLSAgICBFWFBFQ1RfRkxP
QVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidm1heCIpKTsKLSAgICBF
WFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmIiKSk7
Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBA
InZpIikpOwotCi0gICAgRVhQRUNUX0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3
ZWJWaWV3LCBAInN2dyIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0
TGVuZ3RoKHdlYlZpZXcsIEAic3ZoIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgxMC41LCB2aWV3
cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdm1pbiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEo
MjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZtYXgiKSk7Ci0gICAgRVhQRUNU
X0ZMT0FUX0VRKDIwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2YiIpKTsKLSAg
ICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3Zp
IikpOwotCi0gICAgRVhQRUNUX0ZMT0FUX0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJW
aWV3LCBAImx2dyIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVu
Z3RoKHdlYlZpZXcsIEAibHZoIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgxMC41LCB2aWV3cG9y
dFVuaXRMZW5ndGgod2ViVmlldywgQCJsdm1pbiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMjAu
NSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZtYXgiKSk7Ci0gICAgRVhQRUNUX0ZM
T0FUX0VRKDIwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2YiIpKTsKLSAgICBF
WFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZpIikp
OwotCi0gICAgewotICAgICAgICBkb3VibGUgZml4ZWRXaWR0aCA9IHdpZHRoT2ZFbGVtZW50V2l0
aElEKHdlYlZpZXcsIEAiZml4ZWQiKTsKLSAgICAgICAgZG91YmxlIGZpeGVkSGVpZ2h0ID0gaGVp
Z2h0T2ZFbGVtZW50V2l0aElEKHdlYlZpZXcsIEAiZml4ZWQiKTsKLSAgICAgICAgRVhQRUNUX0ZM
T0FUX0VRKGZpeGVkV2lkdGgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2dyIpKTsK
LSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9ydFVuaXRMZW5ndGgo
d2ViVmlldywgQCJkdmgiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShmaXhlZFdpZHRoLCB2
aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdm1pbiIpKTsKLSAgICAgICAgRVhQRUNUX0ZM
T0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdm1heCIp
KTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJkdmIiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShmaXhlZFdpZHRo
LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdmkiKSk7Ci0gICAgfQotCi0gICAgW3dl
YlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmRvY3VtZW50RWxl
bWVudC5zdHlsZS53cml0aW5nTW9kZSA9ICd2ZXJ0aWNhbC1sciciXTsKLSAgICBbd2ViVmlldyB3
YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07Ci0KLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAu
NSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidnciKSk7Ci0gICAgRVhQRUNUX0ZMT0FU
X0VRKDIwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZoIikpOwotICAgIEVYUEVD
VF9GTE9BVF9FUSgxMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2bWluIikpOwot
ICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2
bWF4IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgxMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2Vi
VmlldywgQCJ2YiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVu
Z3RoKHdlYlZpZXcsIEAidmkiKSk7Ci0KLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3Bv
cnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3Z3IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41
LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdmgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FU
X0VRKDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2bWluIikpOwotICAgIEVY
UEVDVF9GTE9BVF9FUSgyMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdm1heCIp
KTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcs
IEAic3ZiIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgo
d2ViVmlldywgQCJzdmkiKSk7Ci0KLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3BvcnRV
bml0TGVuZ3RoKHdlYlZpZXcsIEAibHZ3IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2
aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdmgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VR
KDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2bWluIikpOwotICAgIEVYUEVD
VF9GTE9BVF9FUSgyMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdm1heCIpKTsK
LSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAi
bHZiIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2Vi
VmlldywgQCJsdmkiKSk7Ci0KLSAgICB7Ci0gICAgICAgIGRvdWJsZSBmaXhlZFdpZHRoID0gd2lk
dGhPZkVsZW1lbnRXaXRoSUQod2ViVmlldywgQCJmaXhlZCIpOwotICAgICAgICBkb3VibGUgZml4
ZWRIZWlnaHQgPSBoZWlnaHRPZkVsZW1lbnRXaXRoSUQod2ViVmlldywgQCJmaXhlZCIpOwotICAg
ICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRXaWR0aCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZp
ZXcsIEAiZHZ3IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRIZWlnaHQsIHZpZXdw
b3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2aCIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VR
KGZpeGVkV2lkdGgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2bWluIikpOwotICAg
ICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRIZWlnaHQsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJW
aWV3LCBAImR2bWF4IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRXaWR0aCwgdmll
d3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZiIikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRf
RVEoZml4ZWRIZWlnaHQsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2aSIpKTsKLSAg
ICB9CisgICAgY2hlY2sod2ViVmlldywgU21hbGxTaXplIHsgMTAuNSwgMjAuNSB9LCBMYXJnZVNp
emUgeyAxMC41LCAyMC41IH0sIElzVmVydGljYWxXcml0aW5nTW9kZTo6Tm8pOwogfQogCi1URVNU
KENTU1ZpZXdwb3J0VW5pdHMsIERpZmZlcmVudFVub2JzY3VyZWRTaXplT3ZlcnJpZGVzKQorVEVT
VChDU1NWaWV3cG9ydFVuaXRzLCBTYW1lVW5vYnNjdXJlZFNpemVPdmVycmlkZXNJbmhlcml0ZWRX
cml0aW5nTW9kZSkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAg
IFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6
Q0dTaXplTWFrZSgxMC41LCAyMC41KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4
aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgxMC41LCAyMC41KV07CisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0
cyJdOworCisgICAgY2hhbmdlQ1NTUHJvcGVydHlPZkVsZW1lbnRzKHdlYlZpZXcsIEAiYm9keSIs
IEAid3JpdGluZy1tb2RlIiwgQCIndmVydGljYWwtbHInIik7CisgICAgW3dlYlZpZXcgd2FpdEZv
ck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworCisgICAgY2hlY2sod2ViVmlldywgU21hbGxTaXpl
IHsgMTAuNSwgMjAuNSB9LCBMYXJnZVNpemUgeyAxMC41LCAyMC41IH0sIElzVmVydGljYWxXcml0
aW5nTW9kZTo6WWVzKTsKK30KKworVEVTVChDU1NWaWV3cG9ydFVuaXRzLCBTYW1lVW5vYnNjdXJl
ZFNpemVPdmVycmlkZXNEaXJlY3RXcml0aW5nTW9kZSkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAs
IDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNX
aXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgxMC41LCAyMC41KQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWF4aW11bVVub2JzY3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFr
ZSgxMC41LCAyMC41KV07CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5h
bWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOworCisgICAgY2hhbmdlQ1NTUHJvcGVydHlPZkVsZW1l
bnRzKHdlYlZpZXcsIEAiYm9keSIsIEAid3JpdGluZy1tb2RlIiwgQCInaG9yaXpvbnRhbC10Yici
KTsKKyAgICBjaGFuZ2VDU1NQcm9wZXJ0eU9mRWxlbWVudHMod2ViVmlldywgQCJkaXYiLCBAIndy
aXRpbmctbW9kZSIsIEAiJ3ZlcnRpY2FsLWxyJyIpOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0
UHJlc2VudGF0aW9uVXBkYXRlXTsKKworICAgIGNoZWNrKHdlYlZpZXcsIFNtYWxsU2l6ZSB7IDEw
LjUsIDIwLjUgfSwgTGFyZ2VTaXplIHsgMTAuNSwgMjAuNSB9LCBJc1ZlcnRpY2FsV3JpdGluZ01v
ZGU6Olllcyk7Cit9CisKK1RFU1QoQ1NTVmlld3BvcnRVbml0cywgRGlmZmVyZW50VW5vYnNjdXJl
ZFNpemVPdmVycmlkZXNCYXNpYykKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVz
dFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAw
KV0pOwogICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxh
eW91dFNpemU6Q0dTaXplTWFrZSgxMC41LCAyMC41KQpAQCAtNDAxLDE1NSArMzE5LDEwOSBAQCBU
RVNUKENTU1ZpZXdwb3J0VW5pdHMsIERpZmZlcmVudFVub2JzY3VyZWRTaXplT3ZlcnJpZGVzKQog
ICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAIkNTU1ZpZXdwb3J0
VW5pdHMiXTsKICAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CiAK
LSAgICBFWFBFQ1RfRkxPQVRfRVEoMzAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAi
dnciKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDQwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJW
aWV3LCBAInZoIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgzMC41LCB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJ2bWluIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSg0MC41LCB2aWV3cG9y
dFVuaXRMZW5ndGgod2ViVmlldywgQCJ2bWF4IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSg0MC41
LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2YiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRf
RVEoMzAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmkiKSk7CisgICAgY2hlY2so
d2ViVmlldywgU21hbGxTaXplIHsgMTAuNSwgMjAuNSB9LCBMYXJnZVNpemUgeyAzMC41LCA0MC41
IH0sIElzVmVydGljYWxXcml0aW5nTW9kZTo6Tm8pOworfQogCi0gICAgRVhQRUNUX0ZMT0FUX0VR
KDEwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2dyIpKTsKLSAgICBFWFBFQ1Rf
RkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZoIikpOwotICAg
IEVYUEVDVF9GTE9BVF9FUSgxMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdm1p
biIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMjAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZp
ZXcsIEAic3ZtYXgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDIwLjUsIHZpZXdwb3J0VW5pdExl
bmd0aCh3ZWJWaWV3LCBAInN2YiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3Bv
cnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZpIikpOworVEVTVChDU1NWaWV3cG9ydFVuaXRzLCBE
aWZmZXJlbnRVbm9ic2N1cmVkU2l6ZU92ZXJyaWRlc0NhbGMpCit7CisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFr
ZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0
ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTAuNSwgMjAuNSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6
ZU1ha2UoMzAuNSwgNDAuNSldOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBh
Z2VOYW1lZDpAIkNTU1ZpZXdwb3J0VW5pdHMiXTsKIAotICAgIEVYUEVDVF9GTE9BVF9FUSgzMC41
LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdnciKSk7Ci0gICAgRVhQRUNUX0ZMT0FU
X0VRKDQwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2aCIpKTsKLSAgICBFWFBF
Q1RfRkxPQVRfRVEoMzAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZtaW4iKSk7
Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDQwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBA
Imx2bWF4IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSg0MC41LCB2aWV3cG9ydFVuaXRMZW5ndGgo
d2ViVmlldywgQCJsdmIiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDMwLjUsIHZpZXdwb3J0VW5p
dExlbmd0aCh3ZWJWaWV3LCBAImx2aSIpKTsKKyAgICBjaGFuZ2VDU1NQcm9wZXJ0eU9mRWxlbWVu
dHMod2ViVmlldywgQCJkaXYiLCBAIndpZHRoIiwgQCJgY2FsYygke2VsZW1lbnQuc3R5bGUud2lk
dGh9ICsgMXB4KWAiKTsKKyAgICBjaGFuZ2VDU1NQcm9wZXJ0eU9mRWxlbWVudHMod2ViVmlldywg
QCJkaXYiLCBAImhlaWdodCIsIEAiYGNhbGMoJHtlbGVtZW50LnN0eWxlLmhlaWdodH0gKyAxcHgp
YCIpOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKIAotICAg
IHsKLSAgICAgICAgZG91YmxlIGZpeGVkV2lkdGggPSB3aWR0aE9mRWxlbWVudFdpdGhJRCh3ZWJW
aWV3LCBAImZpeGVkIik7Ci0gICAgICAgIGRvdWJsZSBmaXhlZEhlaWdodCA9IGhlaWdodE9mRWxl
bWVudFdpdGhJRCh3ZWJWaWV3LCBAImZpeGVkIik7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShm
aXhlZFdpZHRoLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdnciKSk7Ci0gICAgICAg
IEVYUEVDVF9GTE9BVF9FUShmaXhlZEhlaWdodCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcs
IEAiZHZoIikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRXaWR0aCwgdmlld3BvcnRV
bml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZtaW4iKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShm
aXhlZEhlaWdodCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZtYXgiKSk7Ci0gICAg
ICAgIEVYUEVDVF9GTE9BVF9FUShmaXhlZEhlaWdodCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZp
ZXcsIEAiZHZiIikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRXaWR0aCwgdmlld3Bv
cnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZpIikpOwotICAgIH0KKyAgICBjaGVjayh3ZWJWaWV3
LCBTbWFsbFNpemUgeyAxMS41LCAyMS41IH0sIExhcmdlU2l6ZSB7IDMxLjUsIDQxLjUgfSwgSXNW
ZXJ0aWNhbFdyaXRpbmdNb2RlOjpObyk7Cit9CisKK1RFU1QoQ1NTVmlld3BvcnRVbml0cywgRGlm
ZmVyZW50VW5vYnNjdXJlZFNpemVPdmVycmlkZXNab29tZWQpCit7CisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFr
ZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBfb3ZlcnJpZGVMYXlvdXRQYXJhbWV0
ZXJzV2l0aE1pbmltdW1MYXlvdXRTaXplOkNHU2l6ZU1ha2UoMTAuNSwgMjAuNSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1heGltdW1Vbm9ic2N1cmVkU2l6ZU92ZXJyaWRlOkNHU2l6
ZU1ha2UoMzAuNSwgNDAuNSldOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBh
Z2VOYW1lZDpAIkNTU1ZpZXdwb3J0VW5pdHMiXTsKIAogICAgIFt3ZWJWaWV3IHNjcm9sbFZpZXdd
Lnpvb21TY2FsZSA9IDI7CiAgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRh
dGVdOwogCi0gICAgRVhQRUNUX0ZMT0FUX0VRKDMwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJW
aWV3LCBAInZ3IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSg0MC41LCB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJ2aCIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMzAuNSwgdmlld3BvcnRV
bml0TGVuZ3RoKHdlYlZpZXcsIEAidm1pbiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoNDAuNSwg
dmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidm1heCIpKTsKLSAgICBFWFBFQ1RfRkxPQVRf
RVEoNDAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmIiKSk7Ci0gICAgRVhQRUNU
X0ZMT0FUX0VRKDMwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZpIikpOworICAg
IGNoZWNrKHdlYlZpZXcsIFNtYWxsU2l6ZSB7IDEwLjUsIDIwLjUgfSwgTGFyZ2VTaXplIHsgMzAu
NSwgNDAuNSB9LCBJc1ZlcnRpY2FsV3JpdGluZ01vZGU6Ok5vKTsKK30KIAotICAgIEVYUEVDVF9G
TE9BVF9FUSgxMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdnciKSk7Ci0gICAg
RVhQRUNUX0ZMT0FUX0VRKDIwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2aCIp
KTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcs
IEAic3ZtaW4iKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDIwLjUsIHZpZXdwb3J0VW5pdExlbmd0
aCh3ZWJWaWV3LCBAInN2bWF4IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgyMC41LCB2aWV3cG9y
dFVuaXRMZW5ndGgod2ViVmlldywgQCJzdmIiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDEwLjUs
IHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2aSIpKTsKK1RFU1QoQ1NTVmlld3BvcnRV
bml0cywgRGlmZmVyZW50VW5vYnNjdXJlZFNpemVPdmVycmlkZXNJbmhlcml0ZWRXcml0aW5nTW9k
ZSkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3
IF9vdmVycmlkZUxheW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFr
ZSgxMC41LCAyMC41KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bVVub2Jz
Y3VyZWRTaXplT3ZlcnJpZGU6Q0dTaXplTWFrZSgzMC41LCA0MC41KV07CisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOwogCi0g
ICAgRVhQRUNUX0ZMT0FUX0VRKDMwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2
dyIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoNDAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZp
ZXcsIEAibHZoIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgzMC41LCB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJsdm1pbiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoNDAuNSwgdmlld3Bv
cnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZtYXgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDQw
LjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2YiIpKTsKLSAgICBFWFBFQ1RfRkxP
QVRfRVEoMzAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZpIikpOwotCi0gICAg
ewotICAgICAgICBkb3VibGUgZml4ZWRXaWR0aCA9IHdpZHRoT2ZFbGVtZW50V2l0aElEKHdlYlZp
ZXcsIEAiZml4ZWQiKTsKLSAgICAgICAgZG91YmxlIGZpeGVkSGVpZ2h0ID0gaGVpZ2h0T2ZFbGVt
ZW50V2l0aElEKHdlYlZpZXcsIEAiZml4ZWQiKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGZp
eGVkV2lkdGgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2dyIpKTsKLSAgICAgICAg
RVhQRUNUX0ZMT0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywg
QCJkdmgiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShmaXhlZFdpZHRoLCB2aWV3cG9ydFVu
aXRMZW5ndGgod2ViVmlldywgQCJkdm1pbiIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGZp
eGVkSGVpZ2h0LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdm1heCIpKTsKLSAgICAg
ICAgRVhQRUNUX0ZMT0FUX0VRKGZpeGVkSGVpZ2h0LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmll
dywgQCJkdmIiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShmaXhlZFdpZHRoLCB2aWV3cG9y
dFVuaXRMZW5ndGgod2ViVmlldywgQCJkdmkiKSk7Ci0gICAgfQotCi0gICAgW3dlYlZpZXcgb2Jq
ZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHls
ZS53cml0aW5nTW9kZSA9ICd2ZXJ0aWNhbC1sciciXTsKKyAgICBjaGFuZ2VDU1NQcm9wZXJ0eU9m
RWxlbWVudHMod2ViVmlldywgQCJib2R5IiwgQCJ3cml0aW5nLW1vZGUiLCBAIid2ZXJ0aWNhbC1s
ciciKTsKICAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CiAKLSAg
ICBFWFBFQ1RfRkxPQVRfRVEoMzAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidnci
KSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDQwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3
LCBAInZoIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgzMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgo
d2ViVmlldywgQCJ2bWluIikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSg0MC41LCB2aWV3cG9ydFVu
aXRMZW5ndGgod2ViVmlldywgQCJ2bWF4IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgzMC41LCB2
aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJ2YiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEo
NDAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmkiKSk7CisgICAgY2hlY2sod2Vi
VmlldywgU21hbGxTaXplIHsgMTAuNSwgMjAuNSB9LCBMYXJnZVNpemUgeyAzMC41LCA0MC41IH0s
IElzVmVydGljYWxXcml0aW5nTW9kZTo6WWVzKTsKK30KIAotICAgIEVYUEVDVF9GTE9BVF9FUSgx
MC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdnciKSk7Ci0gICAgRVhQRUNUX0ZM
T0FUX0VRKDIwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2aCIpKTsKLSAgICBF
WFBFQ1RfRkxPQVRfRVEoMTAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZtaW4i
KSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDIwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3
LCBAInN2bWF4IikpOwotICAgIEVYUEVDVF9GTE9BVF9FUSgxMC41LCB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJzdmIiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDIwLjUsIHZpZXdwb3J0
VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2aSIpKTsKK1RFU1QoQ1NTVmlld3BvcnRVbml0cywgRGlm
ZmVyZW50VW5vYnNjdXJlZFNpemVPdmVycmlkZXNEaXJlY3RXcml0aW5nTW9kZSkKK3sKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IF9vdmVycmlkZUxh
eW91dFBhcmFtZXRlcnNXaXRoTWluaW11bUxheW91dFNpemU6Q0dTaXplTWFrZSgxMC41LCAyMC41
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW11bVVub2JzY3VyZWRTaXplT3Zl
cnJpZGU6Q0dTaXplTWFrZSgzMC41LCA0MC41KV07CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRUZXN0UGFnZU5hbWVkOkAiQ1NTVmlld3BvcnRVbml0cyJdOwogCi0gICAgRVhQRUNUX0ZM
T0FUX0VRKDMwLjUsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2dyIpKTsKLSAgICBF
WFBFQ1RfRkxPQVRfRVEoNDAuNSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZoIikp
OwotICAgIEVYUEVDVF9GTE9BVF9FUSgzMC41LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywg
QCJsdm1pbiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoNDAuNSwgdmlld3BvcnRVbml0TGVuZ3Ro
KHdlYlZpZXcsIEAibHZtYXgiKSk7Ci0gICAgRVhQRUNUX0ZMT0FUX0VRKDMwLjUsIHZpZXdwb3J0
VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2YiIpKTsKLSAgICBFWFBFQ1RfRkxPQVRfRVEoNDAuNSwg
dmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZpIikpOworICAgIGNoYW5nZUNTU1Byb3Bl
cnR5T2ZFbGVtZW50cyh3ZWJWaWV3LCBAImJvZHkiLCBAIndyaXRpbmctbW9kZSIsIEAiJ2hvcml6
b250YWwtdGInIik7CisgICAgY2hhbmdlQ1NTUHJvcGVydHlPZkVsZW1lbnRzKHdlYlZpZXcsIEAi
ZGl2IiwgQCJ3cml0aW5nLW1vZGUiLCBAIid2ZXJ0aWNhbC1sciciKTsKKyAgICBbd2ViVmlldyB3
YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CiAKLSAgICB7Ci0gICAgICAgIGRvdWJsZSBm
aXhlZFdpZHRoID0gd2lkdGhPZkVsZW1lbnRXaXRoSUQod2ViVmlldywgQCJmaXhlZCIpOwotICAg
ICAgICBkb3VibGUgZml4ZWRIZWlnaHQgPSBoZWlnaHRPZkVsZW1lbnRXaXRoSUQod2ViVmlldywg
QCJmaXhlZCIpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRXaWR0aCwgdmlld3BvcnRV
bml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZ3IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4
ZWRIZWlnaHQsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2aCIpKTsKLSAgICAgICAg
RVhQRUNUX0ZMT0FUX0VRKGZpeGVkV2lkdGgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBA
ImR2bWluIikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRIZWlnaHQsIHZpZXdwb3J0
VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2bWF4IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEo
Zml4ZWRXaWR0aCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZiIikpOwotICAgICAg
ICBFWFBFQ1RfRkxPQVRfRVEoZml4ZWRIZWlnaHQsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3
LCBAImR2aSIpKTsKLSAgICB9CisgICAgY2hlY2sod2ViVmlldywgU21hbGxTaXplIHsgMTAuNSwg
MjAuNSB9LCBMYXJnZVNpemUgeyAzMC41LCA0MC41IH0sIElzVmVydGljYWxXcml0aW5nTW9kZTo6
WWVzKTsKIH0KIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKLVRFU1QoQ1NTVmll
d3BvcnRVbml0cywgU1ZHRG9jdW1lbnQpCitURVNUKENTU1ZpZXdwb3J0VW5pdHMsIFNWR0RvY3Vt
ZW50QmFzaWMpCiB7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKICAgICBb
d2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5k
bGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJDU1NWaWV3cG9ydFVuaXRzIiB3aXRoRXh0
ZW5zaW9uOkAic3ZnIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07
CiAgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwogICAgIFt3
ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKIAotICAgIHsKLSAgICAgICAg
ZG91YmxlIHZ3ID0gdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidnciKTsKLSAgICAgICAg
ZG91YmxlIHZoID0gdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmgiKTsKLSAgICAgICAg
RVhQRUNUX0dFKHZ3LCAzMjApOwotICAgICAgICBFWFBFQ1RfR0UodmgsIDUwMCk7Ci0gICAgICAg
IEVYUEVDVF9GTE9BVF9FUSh2dywgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidm1pbiIp
KTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKHZoLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmll
dywgQCJ2bWF4IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEodmgsIHZpZXdwb3J0VW5pdExl
bmd0aCh3ZWJWaWV3LCBAInZiIikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEodncsIHZpZXdw
b3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZpIikpOworICAgIGF1dG8gc21hbGxTaXplID0gU21h
bGxTaXplIHsgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3Z3IiksIHZpZXdwb3J0VW5p
dExlbmd0aCh3ZWJWaWV3LCBAInN2aCIpIH07CisgICAgRVhQRUNUX0dFKHNtYWxsU2l6ZS53aWR0
aCgpLCAzMjApOworICAgIEVYUEVDVF9HRShzbWFsbFNpemUuaGVpZ2h0KCksIDUwMCk7CiAKLSAg
ICAgICAgZG91YmxlIHN2dyA9IHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2dyIpOwot
ICAgICAgICBkb3VibGUgc3ZoID0gdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZoIik7
Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUSh2dywgc3Z3KTsKLSAgICAgICAgRVhQRUNUX0ZMT0FU
X0VRKHZoLCBzdmgpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoc3Z3LCB2aWV3cG9ydFVuaXRM
ZW5ndGgod2ViVmlldywgQCJzdm1pbiIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKHN2aCwg
dmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZtYXgiKSk7Ci0gICAgICAgIEVYUEVDVF9G
TE9BVF9FUShzdmgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2YiIpKTsKLSAgICAg
ICAgRVhQRUNUX0ZMT0FUX0VRKHN2dywgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3Zp
IikpOworICAgIGF1dG8gbGFyZ2VTaXplID0gTGFyZ2VTaXplIHsgdmlld3BvcnRVbml0TGVuZ3Ro
KHdlYlZpZXcsIEAibHZ3IiksIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2aCIpIH07
CisgICAgRVhQRUNUX0dFKGxhcmdlU2l6ZS53aWR0aCgpLCAzMjApOworICAgIEVYUEVDVF9HRShs
YXJnZVNpemUuaGVpZ2h0KCksIDUwMCk7CiAKLSAgICAgICAgZG91YmxlIGx2dyA9IHZpZXdwb3J0
VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2dyIpOwotICAgICAgICBkb3VibGUgbHZoID0gdmlld3Bv
cnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZoIik7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUSh2
dywgbHZ3KTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKHZoLCBsdmgpOwotICAgICAgICBFWFBF
Q1RfRkxPQVRfRVEobHZ3LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdm1pbiIpKTsK
LSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGx2aCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcs
IEAibHZtYXgiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShsdmgsIHZpZXdwb3J0VW5pdExl
bmd0aCh3ZWJWaWV3LCBAImx2YiIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGx2dywgdmll
d3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZpIikpOworICAgIGNoZWNrKHdlYlZpZXcsIHNt
YWxsU2l6ZSwgbGFyZ2VTaXplLCBJc1ZlcnRpY2FsV3JpdGluZ01vZGU6Ok5vKTsKK30KIAotICAg
ICAgICBkb3VibGUgZHZ3ID0gdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZ3Iik7Ci0g
ICAgICAgIGRvdWJsZSBkdmggPSB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdmgiKTsK
LSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKHdpZHRoT2ZFbGVtZW50V2l0aElEKHdlYlZpZXcsIEAi
Zml4ZWQiKSwgZHZ3KTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGhlaWdodE9mRWxlbWVudFdp
dGhJRCh3ZWJWaWV3LCBAImZpeGVkIiksIGR2aCk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShk
dncsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2bWluIikpOwotICAgICAgICBFWFBF
Q1RfRkxPQVRfRVEoZHZoLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdm1heCIpKTsK
LSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGR2aCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcs
IEAiZHZiIikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZHZ3LCB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJkdmkiKSk7Ci0gICAgfTsKK1RFU1QoQ1NTVmlld3BvcnRVbml0cywgU1ZH
RG9jdW1lbnRDYWxjKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7Cisg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiQ1NTVmlld3BvcnRVbml0cyIgd2l0
aEV4dGVuc2lvbjpAInN2ZyIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMi
XV1dOworICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKwor
ICAgIGNoYW5nZUNTU1Byb3BlcnR5T2ZFbGVtZW50cyh3ZWJWaWV3LCBAInJlY3QiLCBAIndpZHRo
IiwgQCJgY2FsYygke2VsZW1lbnQuc3R5bGUud2lkdGh9ICsgMXB4KWAiKTsKKyAgICBjaGFuZ2VD
U1NQcm9wZXJ0eU9mRWxlbWVudHMod2ViVmlldywgQCJyZWN0IiwgQCJoZWlnaHQiLCBAImBjYWxj
KCR7ZWxlbWVudC5zdHlsZS5oZWlnaHR9ICsgMXB4KWAiKTsKKyAgICBbd2ViVmlldyB3YWl0Rm9y
TmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisKKyAgICBhdXRvIHNtYWxsU2l6ZSA9IFNtYWxsU2l6
ZSB7IHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2dyIpLCB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJzdmgiKSB9OworICAgIEVYUEVDVF9HRShzbWFsbFNpemUud2lkdGgoKSwg
MzIxKTsKKyAgICBFWFBFQ1RfR0Uoc21hbGxTaXplLmhlaWdodCgpLCA1MDEpOworCisgICAgYXV0
byBsYXJnZVNpemUgPSBMYXJnZVNpemUgeyB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJs
dnciKSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZoIikgfTsKKyAgICBFWFBFQ1Rf
R0UobGFyZ2VTaXplLndpZHRoKCksIDMyMSk7CisgICAgRVhQRUNUX0dFKGxhcmdlU2l6ZS5oZWln
aHQoKSwgNTAxKTsKKworICAgIGNoZWNrKHdlYlZpZXcsIHNtYWxsU2l6ZSwgbGFyZ2VTaXplLCBJ
c1ZlcnRpY2FsV3JpdGluZ01vZGU6Ok5vKTsKK30KKworVEVTVChDU1NWaWV3cG9ydFVuaXRzLCBT
VkdEb2N1bWVudFpvb21lZCkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0p
OworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6
W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAIkNTU1ZpZXdwb3J0VW5pdHMi
IHdpdGhFeHRlbnNpb246QCJzdmciIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl1dXTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFt3ZWJWaWV3IHNjcm9sbFZpZXddLnpv
b21TY2FsZSA9IDI7CkBAIC01NTksODIgKzQzMSw1NCBAQCBURVNUKENTU1ZpZXdwb3J0VW5pdHMs
IFNWR0RvY3VtZW50KQogI2VuZGlmCiAgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRp
b25VcGRhdGVdOwogCi0gICAgewotICAgICAgICBkb3VibGUgdncgPSB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJ2dyIpOwotICAgICAgICBkb3VibGUgdmggPSB2aWV3cG9ydFVuaXRMZW5n
dGgod2ViVmlldywgQCJ2aCIpOwotICAgICAgICBFWFBFQ1RfR0UodncsIDMyMCk7Ci0gICAgICAg
IEVYUEVDVF9HRSh2aCwgNTAwKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKHZ3LCB2aWV3cG9y
dFVuaXRMZW5ndGgod2ViVmlldywgQCJ2bWluIikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEo
dmgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZtYXgiKSk7Ci0gICAgICAgIEVYUEVD
VF9GTE9BVF9FUSh2aCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmIiKSk7Ci0gICAg
ICAgIEVYUEVDVF9GTE9BVF9FUSh2dywgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAidmki
KSk7CisgICAgYXV0byBzbWFsbFNpemUgPSBTbWFsbFNpemUgeyB2aWV3cG9ydFVuaXRMZW5ndGgo
d2ViVmlldywgQCJzdnciKSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZoIikgfTsK
KyAgICBFWFBFQ1RfR0Uoc21hbGxTaXplLndpZHRoKCksIDMyMCk7CisgICAgRVhQRUNUX0dFKHNt
YWxsU2l6ZS5oZWlnaHQoKSwgNTAwKTsKIAotICAgICAgICBkb3VibGUgc3Z3ID0gdmlld3BvcnRV
bml0TGVuZ3RoKHdlYlZpZXcsIEAic3Z3Iik7Ci0gICAgICAgIGRvdWJsZSBzdmggPSB2aWV3cG9y
dFVuaXRMZW5ndGgod2ViVmlldywgQCJzdmgiKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKHZ3
LCBzdncpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEodmgsIHN2aCk7Ci0gICAgICAgIEVYUEVD
VF9GTE9BVF9FUShzdncsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2bWluIikpOwot
ICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoc3ZoLCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywg
QCJzdm1heCIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKHN2aCwgdmlld3BvcnRVbml0TGVu
Z3RoKHdlYlZpZXcsIEAic3ZiIikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoc3Z3LCB2aWV3
cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdmkiKSk7CisgICAgYXV0byBsYXJnZVNpemUgPSBM
YXJnZVNpemUgeyB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdnciKSwgdmlld3BvcnRV
bml0TGVuZ3RoKHdlYlZpZXcsIEAibHZoIikgfTsKKyAgICBFWFBFQ1RfR0UobGFyZ2VTaXplLndp
ZHRoKCksIDMyMCk7CisgICAgRVhQRUNUX0dFKGxhcmdlU2l6ZS5oZWlnaHQoKSwgNTAwKTsKIAot
ICAgICAgICBkb3VibGUgbHZ3ID0gdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZ3Iik7
Ci0gICAgICAgIGRvdWJsZSBsdmggPSB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdmgi
KTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKHZ3LCBsdncpOwotICAgICAgICBFWFBFQ1RfRkxP
QVRfRVEodmgsIGx2aCk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShsdncsIHZpZXdwb3J0VW5p
dExlbmd0aCh3ZWJWaWV3LCBAImx2bWluIikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEobHZo
LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdm1heCIpKTsKLSAgICAgICAgRVhQRUNU
X0ZMT0FUX0VRKGx2aCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZiIikpOwotICAg
ICAgICBFWFBFQ1RfRkxPQVRfRVEobHZ3LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJs
dmkiKSk7CisgICAgY2hlY2sod2ViVmlldywgc21hbGxTaXplLCBsYXJnZVNpemUsIElzVmVydGlj
YWxXcml0aW5nTW9kZTo6Tm8pOworfQogCi0gICAgICAgIGRvdWJsZSBkdncgPSB2aWV3cG9ydFVu
aXRMZW5ndGgod2ViVmlldywgQCJkdnciKTsKLSAgICAgICAgZG91YmxlIGR2aCA9IHZpZXdwb3J0
VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2aCIpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEod2lk
dGhPZkVsZW1lbnRXaXRoSUQod2ViVmlldywgQCJmaXhlZCIpLCBkdncpOwotICAgICAgICBFWFBF
Q1RfRkxPQVRfRVEoaGVpZ2h0T2ZFbGVtZW50V2l0aElEKHdlYlZpZXcsIEAiZml4ZWQiKSwgZHZo
KTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGR2dywgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZp
ZXcsIEAiZHZtaW4iKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShkdmgsIHZpZXdwb3J0VW5p
dExlbmd0aCh3ZWJWaWV3LCBAImR2bWF4IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZHZo
LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdmIiKSk7Ci0gICAgICAgIEVYUEVDVF9G
TE9BVF9FUShkdncsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2aSIpKTsKLSAgICB9
CitURVNUKENTU1ZpZXdwb3J0VW5pdHMsIFNWR0RvY3VtZW50SW5oZXJpdGVkV3JpdGluZ01vZGUp
Cit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBs
b2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJDU1NWaWV3cG9ydFVuaXRzIiB3aXRoRXh0ZW5zaW9uOkAi
c3ZnIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdXV07CisgICAgW3dl
YlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwogCi0gICAgW3dlYlZpZXcg
b2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5z
dHlsZS53cml0aW5nTW9kZSA9ICd2ZXJ0aWNhbC1sciciXTsKKyAgICBjaGFuZ2VDU1NQcm9wZXJ0
eU9mRWxlbWVudHMod2ViVmlldywgQCJzdmciLCBAIndyaXRpbmctbW9kZSIsIEAiJ3ZlcnRpY2Fs
LWxyJyIpOwogICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKIAot
ICAgIHsKLSAgICAgICAgZG91YmxlIHZ3ID0gdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAi
dnciKTsKLSAgICAgICAgZG91YmxlIHZoID0gdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAi
dmgiKTsKLSAgICAgICAgRVhQRUNUX0dFKHZ3LCAzMjApOwotICAgICAgICBFWFBFQ1RfR0Uodmgs
IDUwMCk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUSh2dywgdmlld3BvcnRVbml0TGVuZ3RoKHdl
YlZpZXcsIEAidm1pbiIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKHZoLCB2aWV3cG9ydFVu
aXRMZW5ndGgod2ViVmlldywgQCJ2bWF4IikpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEodncs
IHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZiIikpOwotICAgICAgICBFWFBFQ1RfRkxP
QVRfRVEodmgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInZpIikpOworICAgIGF1dG8g
c21hbGxTaXplID0gU21hbGxTaXplIHsgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3Z3
IiksIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2aCIpIH07CisgICAgRVhQRUNUX0dF
KHNtYWxsU2l6ZS53aWR0aCgpLCAzMjApOworICAgIEVYUEVDVF9HRShzbWFsbFNpemUuaGVpZ2h0
KCksIDUwMCk7CiAKLSAgICAgICAgZG91YmxlIHN2dyA9IHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJW
aWV3LCBAInN2dyIpOwotICAgICAgICBkb3VibGUgc3ZoID0gdmlld3BvcnRVbml0TGVuZ3RoKHdl
YlZpZXcsIEAic3ZoIik7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUSh2dywgc3Z3KTsKLSAgICAg
ICAgRVhQRUNUX0ZMT0FUX0VRKHZoLCBzdmgpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoc3Z3
LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJzdm1pbiIpKTsKLSAgICAgICAgRVhQRUNU
X0ZMT0FUX0VRKHN2aCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAic3ZtYXgiKSk7Ci0g
ICAgICAgIEVYUEVDVF9GTE9BVF9FUShzdncsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBA
InN2YiIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKHN2aCwgdmlld3BvcnRVbml0TGVuZ3Ro
KHdlYlZpZXcsIEAic3ZpIikpOworICAgIGF1dG8gbGFyZ2VTaXplID0gTGFyZ2VTaXplIHsgdmll
d3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZ3IiksIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJW
aWV3LCBAImx2aCIpIH07CisgICAgRVhQRUNUX0dFKGxhcmdlU2l6ZS53aWR0aCgpLCAzMjApOwor
ICAgIEVYUEVDVF9HRShsYXJnZVNpemUuaGVpZ2h0KCksIDUwMCk7CiAKLSAgICAgICAgZG91Ymxl
IGx2dyA9IHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2dyIpOwotICAgICAgICBkb3Vi
bGUgbHZoID0gdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZoIik7Ci0gICAgICAgIEVY
UEVDVF9GTE9BVF9FUSh2dywgbHZ3KTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKHZoLCBsdmgp
OwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEobHZ3LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmll
dywgQCJsdm1pbiIpKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGx2aCwgdmlld3BvcnRVbml0
TGVuZ3RoKHdlYlZpZXcsIEAibHZtYXgiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShsdncs
IHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImx2YiIpKTsKLSAgICAgICAgRVhQRUNUX0ZM
T0FUX0VRKGx2aCwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZpIikpOwotCi0gICAg
ICAgIGRvdWJsZSBkdncgPSB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJkdnciKTsKLSAg
ICAgICAgZG91YmxlIGR2aCA9IHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2aCIpOwot
ICAgICAgICBFWFBFQ1RfRkxPQVRfRVEod2lkdGhPZkVsZW1lbnRXaXRoSUQod2ViVmlldywgQCJm
aXhlZCIpLCBkdncpOwotICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoaGVpZ2h0T2ZFbGVtZW50V2l0
aElEKHdlYlZpZXcsIEAiZml4ZWQiKSwgZHZoKTsKLSAgICAgICAgRVhQRUNUX0ZMT0FUX0VRKGR2
dywgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAiZHZtaW4iKSk7Ci0gICAgICAgIEVYUEVD
VF9GTE9BVF9FUShkdmgsIHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAImR2bWF4IikpOwot
ICAgICAgICBFWFBFQ1RfRkxPQVRfRVEoZHZ3LCB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywg
QCJkdmIiKSk7Ci0gICAgICAgIEVYUEVDVF9GTE9BVF9FUShkdmgsIHZpZXdwb3J0VW5pdExlbmd0
aCh3ZWJWaWV3LCBAImR2aSIpKTsKLSAgICB9CisgICAgY2hlY2sod2ViVmlldywgc21hbGxTaXpl
LCBsYXJnZVNpemUsIElzVmVydGljYWxXcml0aW5nTW9kZTo6WWVzKTsKK30KKworVEVTVChDU1NW
aWV3cG9ydFVuaXRzLCBTVkdEb2N1bWVudERpcmVjdFdyaXRpbmdNb2RlKQoreworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAiQ1NTVmlld3BvcnRVbml0cyIgd2l0aEV4dGVuc2lvbjpAInN2ZyIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV1dOworICAgIFt3ZWJWaWV3IF90ZXN0X3dh
aXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKworICAgIGNoYW5nZUNTU1Byb3BlcnR5T2ZFbGVt
ZW50cyh3ZWJWaWV3LCBAInN2ZyIsIEAid3JpdGluZy1tb2RlIiwgQCInaG9yaXpvbnRhbC10Yici
KTsKKyAgICBjaGFuZ2VDU1NQcm9wZXJ0eU9mRWxlbWVudHMod2ViVmlldywgQCJyZWN0IiwgQCJ3
cml0aW5nLW1vZGUiLCBAIid2ZXJ0aWNhbC1sciciKTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4
dFByZXNlbnRhdGlvblVwZGF0ZV07CisKKyAgICBhdXRvIHNtYWxsU2l6ZSA9IFNtYWxsU2l6ZSB7
IHZpZXdwb3J0VW5pdExlbmd0aCh3ZWJWaWV3LCBAInN2dyIpLCB2aWV3cG9ydFVuaXRMZW5ndGgo
d2ViVmlldywgQCJzdmgiKSB9OworICAgIEVYUEVDVF9HRShzbWFsbFNpemUud2lkdGgoKSwgMzIw
KTsKKyAgICBFWFBFQ1RfR0Uoc21hbGxTaXplLmhlaWdodCgpLCA1MDApOworCisgICAgYXV0byBs
YXJnZVNpemUgPSBMYXJnZVNpemUgeyB2aWV3cG9ydFVuaXRMZW5ndGgod2ViVmlldywgQCJsdnci
KSwgdmlld3BvcnRVbml0TGVuZ3RoKHdlYlZpZXcsIEAibHZoIikgfTsKKyAgICBFWFBFQ1RfR0Uo
bGFyZ2VTaXplLndpZHRoKCksIDMyMCk7CisgICAgRVhQRUNUX0dFKGxhcmdlU2l6ZS5oZWlnaHQo
KSwgNTAwKTsKKworICAgIGNoZWNrKHdlYlZpZXcsIHNtYWxsU2l6ZSwgbGFyZ2VTaXplLCBJc1Zl
cnRpY2FsV3JpdGluZ01vZGU6Olllcyk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>