<?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>199790</bug_id>
          
          <creation_ts>2019-07-14 19:44:12 -0700</creation_ts>
          <short_desc>[iOS] SOAuthorizationSession should tell AppSSO whether the UIClient is capable of showing the extension UI</short_desc>
          <delta_ts>2019-07-15 15:59:58 -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>WebKit Misc.</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="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1552783</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-07-14 19:44:12 -0700</bug_when>
    <thetext>SOAuthorizationSession should tell AppSSO whether the UIClient is capable of showing the extension UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552784</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-07-14 19:44:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/52790112&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552785</commentid>
    <comment_count>2</comment_count>
      <attachid>374103</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-07-14 19:58:31 -0700</bug_when>
    <thetext>Created attachment 374103
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552892</commentid>
    <comment_count>3</comment_count>
      <attachid>374103</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-07-15 11:27:37 -0700</bug_when>
    <thetext>Comment on attachment 374103
Patch

Thanks Brent for r+ this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552910</commentid>
    <comment_count>4</comment_count>
      <attachid>374103</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-15 11:56:54 -0700</bug_when>
    <thetext>Comment on attachment 374103
Patch

Clearing flags on attachment: 374103

Committed r247437: &lt;https://trac.webkit.org/changeset/247437&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552911</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-15 11:56:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1553007</commentid>
    <comment_count>6</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-07-15 15:59:58 -0700</bug_when>
    <thetext>A build fix:
https://trac.webkit.org/changeset/247458/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>374103</attachid>
            <date>2019-07-14 19:58:31 -0700</date>
            <delta_ts>2019-07-15 11:56:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-199790-20190714195831.patch</filename>
            <type>text/plain</type>
            <size>43417</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3MzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjMGMzZjE4MzZmNjVhMzhk
ZTQyZTM4N2FjM2UxMjRmNTg5NjczZWEuLjU4ZGZiMjlmMTA1ZTMwMDk1MmVhMzZmMTYyN2E1NjMy
MGZmZmIwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDctMTQgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBTT0F1dGhvcml6YXRp
b25TZXNzaW9uIHNob3VsZCB0ZWxsIEFwcFNTTyB3aGV0aGVyIHRoZSBVSUNsaWVudCBpcyBjYXBh
YmxlIG9mIHNob3dpbmcgdGhlIGV4dGVuc2lvbiBVSQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5NzkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
Mjc5MDExMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBPbiBpT1MsIFdlYktpdCByZWxpZXMgb24gYSBTUEkgLVtXS1VJRGVsZWdhdGVQcml2YXRlIF9w
cmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3Ol0gdG8gcHJlc2VudCB0aGUKKyAgICAg
ICAgZXh0ZW5zaW9uIFVJLiBIb3dldmVyLCB0aGlyZCBwYXJ0eSBjbGllbnRzIG9mdGVuIGRvbid0
IGltcGxlbWVudCB0aGlzIFNQSS4gVGhlcmVmb3JlLCBXZWJLaXQgd2lsbCBub3QgYmUKKyAgICAg
ICAgYWJsZSB0byBwcmVzZW50IHRoZSBleHRlbnNpb24gVUkgZm9yIHRoZW0uCisKKyAgICAgICAg
VG8gYmUgYWJsZSB0byBzaG93IHRoZSBleHRlbnNpb24gVUkgZm9yIHRoaXJkIHBhcnR5IFdlYktp
dCBjbGllbnRzLCBXZWJLaXQgc2hvdWxkIHVuc2V0IFNPQXV0aG9yaXphdGlvbi5lbmFibGVFbWJl
ZGRlZEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlcgorICAgICAgICB3aGVuZXZlciBjbGllbnRz
IGRvbid0IGltcGxlbWVudCB0aGUgYWJvdmUgU1BJIHN1Y2ggdGhhdCBBcHBTU08gY291bGQgc2hv
dyB0aGUgVUkgaW4gdGhlaXIgVUkgcHJvY2Vzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9TT0F1dGhvcml6YXRpb24vU09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbToKKyAgICAgICAgKFdl
YktpdDo6U09BdXRob3JpemF0aW9uU2Vzc2lvbjo6c3RhcnQpOgorCiAyMDE5LTA3LTEyICBQYXdl
bCBTdGFuZWsgIDxwLnN0YW5la0BtZXRyb2xvZ2ljYWwuY29tPgogCiAgICAgICAgIENvbm5lY3Rp
b246OndhaXRGb3JTeW5jUmVwbHkoKSB1c2VzIHdhbGwgdGltZSBjbG9jayBmb3IgdGltZW91dApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU09BdXRob3JpemF0aW9u
L1NPQXV0aG9yaXphdGlvblNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9TT0F1dGhvcml6YXRpb24vU09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbQppbmRleCBjOTg5MmRk
ZGJhMDdmY2E2YWMyZmQ0ZDFkODE4N2E2MmViZTRmOTM3Li42NjJkY2YwNzJjZTY3NjZlZjU4MTc3
YWI5ZDhjMWYxM2I3MmIzMzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9TT0F1dGhvcml6YXRpb24vU09BdXRob3JpemF0aW9uU2Vzc2lvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TT0F1dGhvcml6YXRpb24vU09BdXRob3JpemF0aW9u
U2Vzc2lvbi5tbQpAQCAtMzMsNyArMzMsNyBAQAogI2ltcG9ydCAiQVBJTmF2aWdhdGlvbkFjdGlv
bi5oIgogI2ltcG9ydCAiQVBJVUlDbGllbnQuaCIKICNpbXBvcnQgIlNPQXV0aG9yaXphdGlvbkxv
YWRQb2xpY3kuaCIKLSNpbXBvcnQgIldLVUlEZWxlZ2F0ZS5oIgorI2ltcG9ydCAiV0tVSURlbGVn
YXRlUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJTaXRl
RGF0YVN0b3JlLmgiCiAjaW1wb3J0IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KQEAgLTEy
OSw2ICsxMjksMTEgQEAgdm9pZCBTT0F1dGhvcml6YXRpb25TZXNzaW9uOjpzdGFydCgpCiAgICAg
ICAgIH07CiAgICAgICAgIFttX3NvQXV0aG9yaXphdGlvbiBzZXRBdXRob3JpemF0aW9uT3B0aW9u
czphdXRob3JpemF0aW9uT3B0aW9uc107CiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgICAgIGlm
ICghW2Zyb21XZWJQYWdlUHJveHkoKm1fcGFnZSkuVUlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OildKQorICAg
ICAgICAgICAgW21fc29BdXRob3JpemF0aW9uIHNldEVuYWJsZUVtYmVkZGVkQXV0aG9yaXphdGlv
blZpZXdDb250cm9sbGVyOk5PXTsKKyNlbmRpZgorCiAgICAgICAgIGF1dG8gKm5zUmVxdWVzdCA9
IG1fbmF2aWdhdGlvbkFjdGlvbi0+cmVxdWVzdCgpLm5zVVJMUmVxdWVzdChXZWJDb3JlOjpIVFRQ
Qm9keVVwZGF0ZVBvbGljeTo6VXBkYXRlSFRUUEJvZHkpOwogICAgICAgICBbbV9zb0F1dGhvcml6
YXRpb24gYmVnaW5BdXRob3JpemF0aW9uV2l0aFVSTDpuc1JlcXVlc3QuVVJMIGh0dHBIZWFkZXJz
Om5zUmVxdWVzdC5hbGxIVFRQSGVhZGVyRmllbGRzIGh0dHBCb2R5Om5zUmVxdWVzdC5IVFRQQm9k
eV07CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZGZhM2Q2N2ExNDAzODFjYTIyZjA2N2E0MjMxMWZiZmVhYWUzNzA2ZC4uYWM0OTc4
OTEwYTMxYTA1ZTE2MzcyNTRhMjc5M2I4MmQyMWFkYTUxMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE5LTA3LTE0
ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gU09B
dXRob3JpemF0aW9uU2Vzc2lvbiBzaG91bGQgdGVsbCBBcHBTU08gd2hldGhlciB0aGUgVUlDbGll
bnQgaXMgY2FwYWJsZSBvZiBzaG93aW5nIHRoZSBleHRlbnNpb24gVUkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTc5MAorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNTI3OTAxMTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHRlc3RzIHRvIGNoZWNrIFNPQXV0aG9yaXphdGlvbi5lbmFibGVFbWJl
ZGRlZEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlciBhY2NvcmRpbmdseS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGVzdFNPQXV0aG9yaXphdGlvbi5tbToK
KyAgICAgICAgKC1bVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIF9wcmVzZW50aW5nVmlld0Nv
bnRyb2xsZXJGb3JXZWJWaWV3Ol0pOgorICAgICAgICAoY29uZmlndXJlU09BdXRob3JpemF0aW9u
V2ViVmlldyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKC1bVGVz
dFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBpbml0XSk6IERlbGV0ZWQuCisgICAg
ICAgICgtW1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpkaWRG
aW5pc2hOYXZpZ2F0aW9uOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtUZXN0U09BdXRob3JpemF0
aW9uTmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbjpkZWNpc2lvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1Rlc3RTT0F1dGhv
cml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzpjcmVhdGVXZWJWaWV3V2l0aENvbmZp
Z3VyYXRpb246Zm9yTmF2aWdhdGlvbkFjdGlvbjp3aW5kb3dGZWF0dXJlczpdKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBfd2ViVmll
dzpkZWNpZGVQb2xpY3lGb3JTT0F1dGhvcml6YXRpb25Mb2FkV2l0aEN1cnJlbnRQb2xpY3k6Zm9y
RXh0ZW5zaW9uOmNvbXBsZXRpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorCiAyMDE5LTA3LTEyICBB
YWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzLWJ1aWxk
XSBNYWtlIGxheW91dC10ZXN0cycgZnVsbF9yZXN1bHRzLmpzb24gYWNjZXNzaWJsZSBpbiBCdWls
ZGJvdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9U
ZXN0U09BdXRob3JpemF0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9UZXN0U09BdXRob3JpemF0aW9uLm1tCmluZGV4IGFiMTUzMzFmNzdjZjcyNjk4OGI2Yzgy
OWNhNTg5YzE4NzAzYmNiOGUuLjJkMWEyNWFlNGZiZWVlY2RlNTEzODU4Njc5NGVmMzMxMWM1M2E5
NjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVGVz
dFNPQXV0aG9yaXphdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1Rlc3RTT0F1dGhvcml6YXRpb24ubW0KQEAgLTEzOSw3ICsxMzksNyBAQCAtICh2b2lk
KXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmluaXNoTmF2aWdhdGlvbjooV0tOYXZp
Z2F0aW9uICopbmF2aWdhdAogCiBAZW5kCiAKLUBpbnRlcmZhY2UgVGVzdFNPQXV0aG9yaXphdGlv
bk5hdmlnYXRpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZSwgV0tV
SURlbGVnYXRlPgorQGludGVyZmFjZSBUZXN0U09BdXRob3JpemF0aW9uRGVsZWdhdGUgOiBOU09i
amVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGUsIFdLVUlEZWxlZ2F0ZT4KIEBwcm9wZXJ0eSBib29s
IGlzRGVmYXVsdFBvbGljeTsKIEBwcm9wZXJ0eSBib29sIHNob3VsZE9wZW5FeHRlcm5hbFNjaGVt
ZXM7CiBAcHJvcGVydHkgYm9vbCBhbGxvd1NPQXV0aG9yaXphdGlvbkxvYWQ7CkBAIC0xNDcsNyAr
MTQ3LDcgQEAgQHByb3BlcnR5IGJvb2wgaXNBc3luY0V4ZWN1dGlvbjsKIC0gKGluc3RhbmNldHlw
ZSlpbml0OwogQGVuZAogCi1AaW1wbGVtZW50YXRpb24gVGVzdFNPQXV0aG9yaXphdGlvbk5hdmln
YXRpb25EZWxlZ2F0ZQorQGltcGxlbWVudGF0aW9uIFRlc3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0
ZQogCiAtIChpbnN0YW5jZXR5cGUpaW5pdAogewpAQCAtMjA3LDYgKzIwNywxMSBAQCAtICh2b2lk
KV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvclNPQXV0aG9yaXph
dGlvbkxvYWRXaXRoQ3VycgogICAgIH0pOwogfQogCistIChVSVZpZXdDb250cm9sbGVyICopX3By
ZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcKK3sK
KyAgICByZXR1cm4gbmlsOworfQorCiBAZW5kCiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0yOTYs
NyArMzAxLDcgQEAgZW51bSBjbGFzcyBPcGVuRXh0ZXJuYWxTY2hlbWVzUG9saWN5IDogYm9vbCB7
CiAgICAgRGlzYWxsb3cKIH07CiAKLXN0YXRpYyB2b2lkIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlv
bldlYlZpZXcoVGVzdFdLV2ViVmlldyAqd2ViVmlldywgVGVzdFNPQXV0aG9yaXphdGlvbk5hdmln
YXRpb25EZWxlZ2F0ZSAqZGVsZWdhdGUsIE9wZW5FeHRlcm5hbFNjaGVtZXNQb2xpY3kgcG9saWN5
ID0gT3BlbkV4dGVybmFsU2NoZW1lc1BvbGljeTo6RGlzYWxsb3cpCitzdGF0aWMgdm9pZCBjb25m
aWd1cmVTT0F1dGhvcml6YXRpb25XZWJWaWV3KFRlc3RXS1dlYlZpZXcgKndlYlZpZXcsIFRlc3RT
T0F1dGhvcml6YXRpb25EZWxlZ2F0ZSAqZGVsZWdhdGUsIE9wZW5FeHRlcm5hbFNjaGVtZXNQb2xp
Y3kgcG9saWN5ID0gT3BlbkV4dGVybmFsU2NoZW1lc1BvbGljeTo6RGlzYWxsb3cpCiB7CiAgICAg
W3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlXTsKICAgICBbd2ViVmlldyBz
ZXRVSURlbGVnYXRlOmRlbGVnYXRlXTsKQEAgLTMzMSw3ICszMzYsNyBAQCBURVNUKFNPQXV0aG9y
aXphdGlvblJlZGlyZWN0LCBOb0ludGVyY2VwdGlvbnMpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0
ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0
aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRob3Jp
emF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSwgT3BlbkV4dGVybmFs
U2NoZW1lc1BvbGljeTo6QWxsb3cpOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CkBAIC0zNDgsNyArMzUzLDcg
QEAgVEVTVChTT0F1dGhvcml6YXRpb25SZWRpcmVjdCwgSW50ZXJjZXB0aW9uRXJyb3IpCiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwg
NTAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlv
bk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAg
Y29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5n
ZXQoKSwgT3BlbkV4dGVybmFsU2NoZW1lc1BvbGljeTo6QWxsb3cpOwogCiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07
CkBAIC0zNjcsNyArMzcyLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25SZWRpcmVjdCwgSW50ZXJj
ZXB0aW9uRG9Ob3RIYW5kbGUpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1
bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpA
Imh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
OworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVn
YXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3
ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSwgT3BlbkV4dGVybmFsU2NoZW1lc1BvbGljeTo6
QWxsb3cpOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CkBAIC0zOTAsNyArMzk1LDcgQEAgVEVTVChTT0F1dGhv
cml6YXRpb25SZWRpcmVjdCwgSW50ZXJjZXB0aW9uQ2FuY2VsKQogICAgIFJldGFpblB0cjxOU1VS
TD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1w
bGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJl
c291cmNlcyJdOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBh
dXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RT
T0F1dGhvcml6YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0
aG9yaXphdGlvbldlYlZpZXcod2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCksIE9wZW5FeHRl
cm5hbFNjaGVtZXNQb2xpY3k6OkFsbG93KTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwpAQCAtNDEzLDcgKzQx
OCw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUmVkaXJlY3QsIEludGVyY2VwdGlvbkNvbXBsZXRl
V2l0aG91dERhdGEpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1Jl
Y3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3
LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSwgT3BlbkV4dGVybmFsU2NoZW1lc1BvbGljeTo6QWxsb3cp
OwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVS
TDp0ZXN0VVJMLmdldCgpXV07CkBAIC00MzYsNyArNDQxLDcgQEAgVEVTVChTT0F1dGhvcml6YXRp
b25SZWRpcmVjdCwgSW50ZXJjZXB0aW9uVW5leHBlY3RlZENvbXBsZXRpb24pCiAgICAgUmV0YWlu
UHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0p
OwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmln
YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmln
dXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSwg
T3BlbkV4dGVybmFsU2NoZW1lc1BvbGljeTo6QWxsb3cpOwogCiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CkBAIC00
NjYsNiArNDcxLDExIEBAIFRFU1QoU09BdXRob3JpemF0aW9uUmVkaXJlY3QsIEludGVyY2VwdGlv
blN1Y2NlZWQxKQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwogICAgIFV0aWw6OnJ1bigmYXV0aG9yaXphdGlvblBl
cmZvcm1lZCk7CiAgICAgY2hlY2tBdXRob3JpemF0aW9uT3B0aW9ucyhmYWxzZSwgIiIsIDApOwor
I2lmIFBMQVRGT1JNKE1BQykKKyAgICBFWFBFQ1RfVFJVRShnQXV0aG9yaXphdGlvbi5lbmFibGVF
bWJlZGRlZEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlcik7CisjZWxpZiBQTEFURk9STShJT1Mp
CisgICAgRVhQRUNUX0ZBTFNFKGdBdXRob3JpemF0aW9uLmVuYWJsZUVtYmVkZGVkQXV0aG9yaXph
dGlvblZpZXdDb250cm9sbGVyKTsKKyNlbmRpZgogCiAgICAgUmV0YWluUHRyPE5TVVJMPiByZWRp
cmVjdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUy
IiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNv
dXJjZXMiXTsKICAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHROUyhbW05TSFRUUFVSTFJlc3BvbnNl
IGFsbG9jXSBpbml0V2l0aFVSTDp0ZXN0VVJMLmdldCgpIHN0YXR1c0NvZGU6MzAyIEhUVFBWZXJz
aW9uOkAiSFRUUC8xLjEiIGhlYWRlckZpZWxkczpAeyBAIkxvY2F0aW9uIiA6IFtyZWRpcmVjdFVS
TCBhYnNvbHV0ZVN0cmluZ10gfV0pOwpAQCAtNTIxLDggKzUzMSw5IEBAIFRFU1QoU09BdXRob3Jp
emF0aW9uUmVkaXJlY3QsIEludGVyY2VwdGlvblN1Y2NlZWQzKQogICAgIEluc3RhbmNlTWV0aG9k
U3dpenpsZXIgc3dpenpsZXIzKFBBTDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVj
dG9yKGJlZ2luQXV0aG9yaXphdGlvbldpdGhVUkw6aHR0cEhlYWRlcnM6aHR0cEJvZHk6KSwgcmVp
bnRlcnByZXRfY2FzdDxJTVA+KG92ZXJyaWRlQmVnaW5BdXRob3JpemF0aW9uV2l0aFVSTCkpOwog
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBhdXRvIGRlbGVnYXRl
ID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRp
b25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldl
YlZpZXcod2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCksIE9wZW5FeHRlcm5hbFNjaGVtZXNQ
b2xpY3k6OkFsbG93KTsKKyAgICBFWFBFQ1RfVFJVRShnQXV0aG9yaXphdGlvbi5lbmFibGVFbWJl
ZGRlZEF1dGhvcml6YXRpb25WaWV3Q29udHJvbGxlcik7CiAKICAgICAvLyBGb3JjZSBBcHAgTGlu
a3Mgd2l0aCBhIHJlcXVlc3QuVVJMIHRoYXQgaGFzIGEgZGlmZmVyZW50IGhvc3QgdGhhbiB0aGUg
Y3VycmVudCBvbmUgKGVtcHR5IGhvc3QpIGFuZCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
OjpTaG91bGRBbGxvdy4KICAgICBhdXRvIHRlc3RVUkwgPSBVUkwoVVJMKCksICJodHRwczovL3d3
dy5leGFtcGxlLmNvbSIpOwpAQCAtNTU4LDcgKzU2OSw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9u
UmVkaXJlY3QsIEludGVyY2VwdGlvblN1Y2NlZWQ0KQogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAw
LCAzMjAsIDUwMCldKTsKICAgICAvLyBBIHNlcGFyYXRlIGRlbGVnYXRlIHRoYXQgaW1wbGVtZW50
cyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uLgotICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5p
dF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmll
dyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSwgT3BlbkV4dGVybmFsU2NoZW1lc1BvbGlj
eTo6QWxsb3cpOwogICAgIFtkZWxlZ2F0ZSBzZXRJc0RlZmF1bHRQb2xpY3k6ZmFsc2VdOwogCkBA
IC01ODcsNyArNTk4LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25SZWRpcmVjdCwgSW50ZXJjZXB0
aW9uU3VjY2VlZFdpdGhPdGhlckh0dHBTdGF0dXNDb2RlKQogICAgIFJldGFpblB0cjxOU1VSTD4g
dGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUi
IHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291
cmNlcyJdOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1
dGhvcml6YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9y
aXphdGlvbldlYlZpZXcod2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCksIE9wZW5FeHRlcm5h
bFNjaGVtZXNQb2xpY3k6OkFsbG93KTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwpAQCAtNjExLDcgKzYyMiw3
IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUmVkaXJlY3QsIEludGVyY2VwdGlvblN1Y2NlZWRXaXRo
Q29va2llKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUgbWFpbkJ1
bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246QCJodG1sIiBzdWJk
aXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFr
ZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RT
T0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXcod2ViVmlldy5nZXQo
KSwgZGVsZWdhdGUuZ2V0KCksIE9wZW5FeHRlcm5hbFNjaGVtZXNQb2xpY3k6OkFsbG93KTsKIAog
ICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dGVz
dFVSTC5nZXQoKV1dOwpAQCAtNjQ2LDcgKzY1Nyw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUmVk
aXJlY3QsIEludGVyY2VwdGlvblN1Y2NlZWRXaXRoQ29va2llcykKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2lt
cGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5y
ZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7Ci0gICAg
YXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0U09BdXRob3JpemF0aW9uTmF2aWdhdGlvbkRl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0
U09BdXRob3JpemF0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBjb25maWd1cmVTT0F1
dGhvcml6YXRpb25XZWJWaWV3KHdlYlZpZXcuZ2V0KCksIGRlbGVnYXRlLmdldCgpLCBPcGVuRXh0
ZXJuYWxTY2hlbWVzUG9saWN5OjpBbGxvdyk7CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKQEAgLTY4MCw3ICs2
OTEsNyBAQCBURVNUKFNPQXV0aG9yaXphdGlvblJlZGlyZWN0LCBJbnRlcmNlcHRpb25TdWNjZWVk
V2l0aFJlZGlyZWN0aW9uQW5kQ29va2llKQogICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIgc3dp
enpsZXIzKFBBTDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGJlZ2luQXV0
aG9yaXphdGlvbldpdGhVUkw6aHR0cEhlYWRlcnM6aHR0cEJvZHk6KSwgcmVpbnRlcnByZXRfY2Fz
dDxJTVA+KG92ZXJyaWRlQmVnaW5BdXRob3JpemF0aW9uV2l0aFVSTCkpOwogCiAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXcod2ViVmll
dy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCksIE9wZW5FeHRlcm5hbFNjaGVtZXNQb2xpY3k6OkFsbG93
KTsKIAogICAgIGF1dG8gdGVzdFVSTCA9IFVSTChVUkwoKSwgImh0dHBzOi8vd3d3LmV4YW1wbGUu
Y29tIik7CkBAIC03MjEsNyArNzMyLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25SZWRpcmVjdCwg
SW50ZXJjZXB0aW9uU3VjY2VlZFdpdGhEaWZmZXJlbnRPcmlnaW4pCiAgICAgUmV0YWluUHRyPE5T
VVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNp
bXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09B
dXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSwgT3BlbkV4
dGVybmFsU2NoZW1lc1BvbGljeTo6QWxsb3cpOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CkBAIC03NDUsNyAr
NzU2LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25SZWRpcmVjdCwgSW50ZXJjZXB0aW9uU3VjY2Vl
ZFdpdGhXYWl0aW5nU2Vzc2lvbikKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9u
OkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFk
b3B0TlMoW1tUZXN0U09BdXRob3JpemF0aW9uTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0U09BdXRob3JpemF0aW9uRGVs
ZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBjb25maWd1cmVTT0F1dGhvcml6YXRpb25XZWJWaWV3
KHdlYlZpZXcuZ2V0KCksIGRlbGVnYXRlLmdldCgpLCBPcGVuRXh0ZXJuYWxTY2hlbWVzUG9saWN5
OjpBbGxvdyk7CiAKICAgICAvLyBUaGUgc2Vzc2lvbiB3aWxsIGJlIHdhaXRpbmcgc2luY2UgdGhl
IHdlYiB2aWV3IGlzIGlzIG5vdCBpbnQgdGhlIHdpbmRvdy4KQEAgLTc4MCw3ICs3OTEsNyBAQCBU
RVNUKFNPQXV0aG9yaXphdGlvblJlZGlyZWN0LCBJbnRlcmNlcHRpb25TdWNjZWVkV2l0aEFjdGl2
ZVNlc3Npb25EaWRNb3ZlV2luZG93KQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtb
TlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRlbnNp
b246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZp
ZXcod2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCksIE9wZW5FeHRlcm5hbFNjaGVtZXNQb2xp
Y3k6OkFsbG93KTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwpAQCAtODExLDcgKzgyMiw3IEBAIFRFU1QoU09B
dXRob3JpemF0aW9uUmVkaXJlY3QsIEludGVyY2VwdGlvblN1Y2NlZWRUd2ljZSkKICAgICBSZXRh
aW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDAp
XSk7Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0U09BdXRob3JpemF0aW9uTmF2
aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tUZXN0U09BdXRob3JpemF0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBjb25m
aWd1cmVTT0F1dGhvcml6YXRpb25XZWJWaWV3KHdlYlZpZXcuZ2V0KCksIGRlbGVnYXRlLmdldCgp
LCBPcGVuRXh0ZXJuYWxTY2hlbWVzUG9saWN5OjpBbGxvdyk7CiAKICAgICBmb3IgKGludCBpID0g
MDsgaSA8IDI7IGkrKykgewpAQCAtODQ0LDcgKzg1NSw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9u
UmVkaXJlY3QsIEludGVyY2VwdGlvblN1Y2NlZWRTdXBwcmVzc0FjdGl2ZVNlc3Npb24pCiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwg
NTAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlv
bk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAg
Y29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5n
ZXQoKSwgT3BlbkV4dGVybmFsU2NoZW1lc1BvbGljeTo6QWxsb3cpOwogCiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07
CkBAIC04NzksNyArODkwLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25SZWRpcmVjdCwgSW50ZXJj
ZXB0aW9uU3VjY2VlZFN1cHByZXNzV2FpdGluZ1Nlc3Npb24pCiAgICAgUmV0YWluUHRyPE5TVVJM
PiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBs
ZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVz
b3VyY2VzIl07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNP
QXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRo
b3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSwgT3BlbkV4dGVy
bmFsU2NoZW1lc1BvbGljeTo6QWxsb3cpOwogCiAgICAgLy8gVGhlIHNlc3Npb24gd2lsbCBiZSB3
YWl0aW5nIHNpbmNlIHRoZSB3ZWIgdmlldyBpcyBpcyBub3QgaW50IHRoZSB3aW5kb3cuCkBAIC05
MTksNyArOTMwLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25SZWRpcmVjdCwgSW50ZXJjZXB0aW9u
U3VjY2VlZFNBTUwpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1Jl
Y3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3
LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSwgT3BlbkV4dGVybmFsU2NoZW1lc1BvbGljeTo6QWxsb3cp
OwogCiAgICAgLy8gQWRkIGEgaHR0cCBib2R5IHRvIHRoZSByZXF1ZXN0IHRvIG1pbWljIGEgU0FN
TCByZXF1ZXN0LgpAQCAtOTQ1LDcgKzk1Niw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUmVkaXJl
Y3QsIEF1dGhvcml6YXRpb25PcHRpb25zKQogICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIgc3dp
enpsZXIzKFBBTDo6Z2V0U09BdXRob3JpemF0aW9uQ2xhc3MoKSwgQHNlbGVjdG9yKGJlZ2luQXV0
aG9yaXphdGlvbldpdGhVUkw6aHR0cEhlYWRlcnM6aHR0cEJvZHk6KSwgcmVpbnRlcnByZXRfY2Fz
dDxJTVA+KG92ZXJyaWRlQmVnaW5BdXRob3JpemF0aW9uV2l0aFVSTCkpOwogCiAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXcod2ViVmll
dy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCkpOwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6
QCIiIGJhc2VVUkw6KE5TVVJMICopVVJMKFVSTCgpLCAiaHR0cDovL3d3dy53ZWJraXQub3JnIild
OwpAQCAtOTY3LDcgKzk3OCw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUmVkaXJlY3QsIEludGVy
Y2VwdGlvbkRpZE5vdEhhbmRsZVR3aWNlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9
IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRl
bnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwog
CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBhdXRvIGRlbGVnYXRl
ID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2Nd
IGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRp
b25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldl
YlZpZXcod2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCksIE9wZW5FeHRlcm5hbFNjaGVtZXNQ
b2xpY3k6OkFsbG93KTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwpAQCAtOTg4LDcgKzk5OSw3IEBAIFRFU1Qo
U09BdXRob3JpemF0aW9uUmVkaXJlY3QsIEludGVyY2VwdGlvbkNvbXBsZXRlVHdpY2UpCiAgICAg
UmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JS
ZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRl
c3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwg
NTAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlv
bk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAg
Y29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5n
ZXQoKSwgT3BlbkV4dGVybmFsU2NoZW1lc1BvbGljeTo6QWxsb3cpOwogCiAgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07
CkBAIC0xMDA5LDcgKzEwMjAsNyBAQCBURVNUKFNPQXV0aG9yaXphdGlvblJlZGlyZWN0LCBTT0F1
dGhvcml6YXRpb25Mb2FkUG9saWN5SWdub3JlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVS
TCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhF
eHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJd
OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6
YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlv
bldlYlZpZXcod2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCksIE9wZW5FeHRlcm5hbFNjaGVt
ZXNQb2xpY3k6OkFsbG93KTsKICAgICBbZGVsZWdhdGUgc2V0QWxsb3dTT0F1dGhvcml6YXRpb25M
b2FkOmZhbHNlXTsKIApAQCAtMTAyOSw3ICsxMDQwLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25S
ZWRpcmVjdCwgU09BdXRob3JpemF0aW9uTG9hZFBvbGljeUFsbG93QXN5bmMpCiAgICAgUmV0YWlu
UHRyPE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJL
aXRBUEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0p
OwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmln
YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmln
dXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSwg
T3BlbkV4dGVybmFsU2NoZW1lc1BvbGljeTo6QWxsb3cpOwogCiAgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CkBAIC0x
MDU1LDcgKzEwNjYsNyBAQCBURVNUKFNPQXV0aG9yaXphdGlvblJlZGlyZWN0LCBTT0F1dGhvcml6
YXRpb25Mb2FkUG9saWN5SWdub3JlQXN5bmMpCiAgICAgUmV0YWluUHRyPE5TVVJMPiB0ZXN0VVJM
ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXph
dGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9u
V2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSwgT3BlbkV4dGVybmFsU2NoZW1l
c1BvbGljeTo6QWxsb3cpOwogICAgIFtkZWxlZ2F0ZSBzZXRBbGxvd1NPQXV0aG9yaXphdGlvbkxv
YWQ6ZmFsc2VdOwogICAgIFtkZWxlZ2F0ZSBzZXRJc0FzeW5jRXhlY3V0aW9uOnRydWVdOwpAQCAt
MTA3OSw3ICsxMDkwLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25SZWRpcmVjdCwgSW50ZXJjZXB0
aW9uU3VjY2VlZFdpdGhVSSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9uOkAi
aHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tUZXN0U09BdXRob3JpemF0aW9uTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0U09BdXRob3JpemF0aW9uRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKICAgICBjb25maWd1cmVTT0F1dGhvcml6YXRpb25XZWJWaWV3KHdl
YlZpZXcuZ2V0KCksIGRlbGVnYXRlLmdldCgpLCBPcGVuRXh0ZXJuYWxTY2hlbWVzUG9saWN5OjpB
bGxvdyk7CiAKICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKQEAgLTExMTIsNyArMTEyMyw3IEBAIFRFU1QoU09BdXRo
b3JpemF0aW9uUmVkaXJlY3QsIEludGVyY2VwdGlvbkNhbmNlbFdpdGhVSSkKICAgICBSZXRhaW5Q
dHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7
Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0U09BdXRob3JpemF0aW9uTmF2aWdh
dGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0U09BdXRob3JpemF0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBjb25maWd1
cmVTT0F1dGhvcml6YXRpb25XZWJWaWV3KHdlYlZpZXcuZ2V0KCksIGRlbGVnYXRlLmdldCgpLCBP
cGVuRXh0ZXJuYWxTY2hlbWVzUG9saWN5OjpBbGxvdyk7CiAKICAgICBbd2ViVmlldyBsb2FkUmVx
dWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RVUkwuZ2V0KCldXTsKQEAgLTEx
NDQsNyArMTE1NSw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUmVkaXJlY3QsIEludGVyY2VwdGlv
bkVycm9yV2l0aFVJKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNCdW5kbGUg
bWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246QCJodG1s
IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dS
ZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhb
W1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXcod2ViVmll
dy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCksIE9wZW5FeHRlcm5hbFNjaGVtZXNQb2xpY3k6OkFsbG93
KTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6dGVzdFVSTC5nZXQoKV1dOwpAQCAtMTE3Niw3ICsxMTg3LDcgQEAgVEVTVChTT0F1dGhvcml6
YXRpb25SZWRpcmVjdCwgSW50ZXJjZXB0aW9uU3VjY2VlZFN1cHByZXNzQWN0aXZlU2Vzc2lvbldp
dGhVSSkKICAgICBSZXRhaW5QdHI8TlNVUkw+IHRlc3RVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5k
bGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKIAogICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2Uo
MCwgMCwgMzIwLCA1MDApXSk7Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0U09B
dXRob3JpemF0aW9uTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0U09BdXRob3JpemF0aW9uRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKICAgICBjb25maWd1cmVTT0F1dGhvcml6YXRpb25XZWJWaWV3KHdlYlZpZXcuZ2V0KCks
IGRlbGVnYXRlLmdldCgpLCBPcGVuRXh0ZXJuYWxTY2hlbWVzUG9saWN5OjpBbGxvdyk7CiAKICAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnRlc3RV
UkwuZ2V0KCldXTsKQEAgLTEyMTUsNyArMTIyNiw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUmVk
aXJlY3QsIFNob3dVSVR3aWNlKQogICAgIFJldGFpblB0cjxOU1VSTD4gdGVzdFVSTCA9IFtbTlNC
dW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJzaW1wbGUiIHdpdGhFeHRlbnNpb246
QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXco
d2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCksIE9wZW5FeHRlcm5hbFNjaGVtZXNQb2xpY3k6
OkFsbG93KTsKIAogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6dGVzdFVSTC5nZXQoKV1dOwpAQCAtMTI1Miw3ICsxMjYzLDcgQEAgVEVTVChTT0F1
dGhvcml6YXRpb25SZWRpcmVjdCwgTlNOb3RpZmljYXRpb25DZW50ZXIpCiAgICAgUmV0YWluUHRy
PE5TVVJMPiB0ZXN0VVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpA
InNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRB
UEkucmVzb3VyY2VzIl07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwot
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRp
b25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJl
U09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSwgT3Bl
bkV4dGVybmFsU2NoZW1lc1BvbGljeTo6QWxsb3cpOwogCiAgICAgW3dlYlZpZXcgbG9hZFJlcXVl
c3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDp0ZXN0VVJMLmdldCgpXV07CkBAIC0xMjgy
LDcgKzEyOTMsNyBAQCBURVNUKFNPQXV0aG9yaXphdGlvblBvcFVwLCBOb0ludGVyY2VwdGlvbnMp
CiAgICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChvcGVuZXJUZW1wbGF0ZSwgdGVzdFVS
TC5nZXQoKS5hYnNvbHV0ZVN0cmluZyk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwg
NDAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlv
bk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAg
Y29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5n
ZXQoKSk7CiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBiYXNlVVJMOnRl
c3RVUkwuZ2V0KCldOwpAQCAtMTMxNSw3ICsxMzI2LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25Q
b3BVcCwgTm9JbnRlcmNlcHRpb25zU3ViRnJhbWUpCiAgICAgYXV0byB0ZXN0SHRtbCA9IG1ha2VT
dHJpbmcoIjxpZnJhbWUgc3R5bGU9J3dpZHRoOjQwMHB4O2hlaWdodDo0MDBweCcgc3JjZG9jPVwi
IiwgaWZyYW1lVGVzdEh0bWwsICJcIiAvPiIpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0
MDAsIDQwMCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6
YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRl
ID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwog
ICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXcod2ViVmlldy5nZXQoKSwgZGVsZWdh
dGUuZ2V0KCkpOwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6dGVzdEh0bWwgYmFzZVVS
TDpiYXNlVVJMLmdldCgpXTsKQEAgLTEzNDAsNyArMTM1MSw3IEBAIFRFU1QoU09BdXRob3JpemF0
aW9uUG9wVXAsIE5vSW50ZXJjZXB0aW9uc1dpdGhvdXRVc2VyR2VzdHVyZSkKICAgICBjb25maWd1
cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRp
Y2FsbHkgPSBZRVM7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHRO
UyhbW1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
KyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXcod2Vi
Vmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCkpOwogCiAgICAgW3dlYlZpZXcgX2V2YWx1YXRlSmF2
YVNjcmlwdFdpdGhvdXRVc2VyR2VzdHVyZTogQCJ3aW5kb3cub3BlbignaHR0cDovL3d3dy5leGFt
cGxlLmNvbScpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwpAQCAtMTM2MCw3ICsxMzcxLDcgQEAg
VEVTVChTT0F1dGhvcml6YXRpb25Qb3BVcCwgSW50ZXJjZXB0aW9uRXJyb3IpCiAgICAgYXV0byB0
ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChvcGVuZXJUZW1wbGF0ZSwgdGVzdFVSTC5nZXQoKS5hYnNv
bHV0ZVN0cmluZyk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKV0pOwotICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09B
dXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSk7CiAKICAg
ICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBiYXNlVVJMOmJhc2VVUkwuZ2V0KCld
OwpAQCAtMTM5Niw3ICsxNDA3LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25Qb3BVcCwgSW50ZXJj
ZXB0aW9uQ2FuY2VsKQogICAgIGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwob3BlbmVyVGVt
cGxhdGUsIHRlc3RVUkwuZ2V0KCkuYWJzb2x1dGVTdHJpbmcpOwogCiAgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFr
ZSgwLCAwLCA0MDAsIDQwMCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RT
T0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXcod2ViVmlldy5nZXQo
KSwgZGVsZWdhdGUuZ2V0KCkpOwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6dGVzdEh0
bWwgYmFzZVVSTDpiYXNlVVJMLmdldCgpXTsKQEAgLTE0MjksNyArMTQ0MCw3IEBAIFRFU1QoU09B
dXRob3JpemF0aW9uUG9wVXAsIEludGVyY2VwdGlvblN1Y2NlZWRDbG9zZUJ5SXRzZWxmKQogICAg
IGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwob3BlbmVyVGVtcGxhdGUsIHRlc3RVUkwuc3Ry
aW5nKCkpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAsIDQwMCldKTsKLSAgICBhdXRv
IGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1
dGhvcml6YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9y
aXphdGlvbldlYlZpZXcod2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCkpOwogCiAgICAgW3dl
YlZpZXcgbG9hZEhUTUxTdHJpbmc6dGVzdEh0bWwgYmFzZVVSTDpiYXNlVVJMLmdldCgpXTsKQEAg
LTE0NjUsNyArMTQ3Niw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUG9wVXAsIEludGVyY2VwdGlv
blN1Y2NlZWRDbG9zZUJ5UGFyZW50KQogICAgIGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwo
b3BlbmVyVGVtcGxhdGUsIHRlc3RVUkwuc3RyaW5nKCksICIiLCAiZXZlbnQuc291cmNlLmNsb3Nl
KCk7Iik7IC8vIFRoZSBwYXJlbnQgY2xvc2VzIHRoZSBwb3AgdXAuCiAKICAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RN
YWtlKDAsIDAsIDQwMCwgNDAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9j
XSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3Lmdl
dCgpLCBkZWxlZ2F0ZS5nZXQoKSk7CiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0
SHRtbCBiYXNlVVJMOmJhc2VVUkwuZ2V0KCldOwpAQCAtMTUwMSw3ICsxNTEyLDcgQEAgVEVTVChT
T0F1dGhvcml6YXRpb25Qb3BVcCwgSW50ZXJjZXB0aW9uU3VjY2VlZENsb3NlQnlXZWJLaXQpCiAg
ICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChvcGVuZXJUZW1wbGF0ZSwgdGVzdFVSTC5z
dHJpbmcoKSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKV0pOwotICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNP
QXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRo
b3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSk7CiAKICAgICBb
d2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBiYXNlVVJMOmJhc2VVUkwuZ2V0KCldOwpA
QCAtMTUzNyw3ICsxNTQ4LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25Qb3BVcCwgSW50ZXJjZXB0
aW9uU3VjY2VlZFdpdGhPdGhlckh0dHBTdGF0dXNDb2RlKQogICAgIGF1dG8gdGVzdEh0bWwgPSBn
ZW5lcmF0ZUh0bWwob3BlbmVyVGVtcGxhdGUsIHRlc3RVUkwuZ2V0KCkuYWJzb2x1dGVTdHJpbmcp
OwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAsIDQwMCldKTsKLSAgICBhdXRvIGRlbGVn
YXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6
YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlv
bldlYlZpZXcod2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCkpOwogCiAgICAgW3dlYlZpZXcg
bG9hZEhUTUxTdHJpbmc6dGVzdEh0bWwgYmFzZVVSTDpiYXNlVVJMLmdldCgpXTsKQEAgLTE1Nzcs
NyArMTU4OCw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUG9wVXAsIEludGVyY2VwdGlvblN1Y2Nl
ZWRXaXRoQ29va2llKQogICAgIGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwob3BlbmVyVGVt
cGxhdGUsIHRlc3RVUkwuc3RyaW5nKCkpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAs
IDQwMCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRp
b25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAg
IGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXcod2ViVmlldy5nZXQoKSwgZGVsZWdhdGUu
Z2V0KCkpOwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6dGVzdEh0bWwgYmFzZVVSTDpi
YXNlVVJMLmdldCgpXTsKQEAgLTE2MTMsNyArMTYyNCw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9u
UG9wVXAsIEludGVyY2VwdGlvblN1Y2NlZWRUd2ljZSkKICAgICBhdXRvIHRlc3RIdG1sID0gZ2Vu
ZXJhdGVIdG1sKG9wZW5lclRlbXBsYXRlLCB0ZXN0VVJMLnN0cmluZygpKTsKIAogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgNDAwLCA0MDApXSk7Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tUZXN0U09BdXRob3JpemF0aW9uTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7Cisg
ICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0U09BdXRob3JpemF0aW9uRGVsZWdhdGUg
YWxsb2NdIGluaXRdKTsKICAgICBjb25maWd1cmVTT0F1dGhvcml6YXRpb25XZWJWaWV3KHdlYlZp
ZXcuZ2V0KCksIGRlbGVnYXRlLmdldCgpKTsKIAogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5n
OnRlc3RIdG1sIGJhc2VVUkw6YmFzZVVSTC5nZXQoKV07CkBAIC0xNjUzLDcgKzE2NjQsNyBAQCBU
RVNUKFNPQXV0aG9yaXphdGlvblBvcFVwLCBJbnRlcmNlcHRpb25TdWNjZWVkU3VwcHJlc3NBY3Rp
dmVTZXNzaW9uKQogICAgIGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwob3BlbmVyVGVtcGxh
dGUsIHRlc3RVUkwuc3RyaW5nKCkpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAsIDQw
MCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25O
YXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNv
bmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXcod2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0
KCkpOwogCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6dGVzdEh0bWwgYmFzZVVSTDpiYXNl
VVJMLmdldCgpXTsKQEAgLTE3MTQsNyArMTcyNSw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUG9w
VXAsIEludGVyY2VwdGlvblN1Y2NlZWROZXdXaW5kb3dOYXZpZ2F0aW9uKQogICAgIGF1dG8gdGVz
dEh0bWwgPSBnZW5lcmF0ZUh0bWwob3BlbmVyVGVtcGxhdGUsIHRlc3RVUkwuc3RyaW5nKCksIG1h
a2VTdHJpbmcoIm5ld1dpbmRvdy5sb2NhdGlvbiA9ICciLCBiYXNlVVJMLmdldCgpLmFic29sdXRl
U3RyaW5nLlVURjhTdHJpbmcsICInOyIpKTsgLy8gU3RhcnRzIGEgbmV3IG5hdmlnYXRpb24gb24g
dGhlIG5ldyB3aW5kb3cuCiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDQwMCwgNDAwKV0pOwot
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRp
b25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJl
U09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSk7CiAK
ICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBiYXNlVVJMOmJhc2VVUkwuZ2V0
KCldOwpAQCAtMTc0OSw3ICsxNzYwLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25Qb3BVcCwgQXV0
aG9yaXphdGlvbk9wdGlvbnMpCiAgICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChvcGVu
ZXJUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDQwMCwgNDAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9y
aXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxl
Z2F0ZS5nZXQoKSk7CiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBiYXNl
VVJMOihOU1VSTCAqKVVSTChVUkwoKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZyIpXTsKQEAgLTE3
NzMsNyArMTc4NCw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUG9wVXAsIFNPQXV0aG9yaXphdGlv
bkxvYWRQb2xpY3lJZ25vcmUpCiAgICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChvcGVu
ZXJUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDMyMCwgNTAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9y
aXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxl
Z2F0ZS5nZXQoKSk7CiAgICAgW2RlbGVnYXRlIHNldEFsbG93U09BdXRob3JpemF0aW9uTG9hZDpm
YWxzZV07CiAKQEAgLTE4MDEsNyArMTgxMiw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uUG9wVXAs
IFNPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3lBbGxvd0FzeW5jKQogICAgIGF1dG8gdGVzdEh0bWwg
PSBnZW5lcmF0ZUh0bWwob3BlbmVyVGVtcGxhdGUsIHRlc3RVUkwuc3RyaW5nKCkpOwogCiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCA0MDAsIDQwMCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXco
d2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCkpOwogICAgIFtkZWxlZ2F0ZSBzZXRJc0FzeW5j
RXhlY3V0aW9uOnRydWVdOwogCkBAIC0xODM2LDcgKzE4NDcsNyBAQCBURVNUKFNPQXV0aG9yaXph
dGlvblBvcFVwLCBTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5SWdub3JlQXN5bmMpCiAgICAgYXV0
byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChvcGVuZXJUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmco
KSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9y
aXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0
aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSk7CiAgICAgW2RlbGVnYXRl
IHNldEFsbG93U09BdXRob3JpemF0aW9uTG9hZDpmYWxzZV07CiAgICAgW2RlbGVnYXRlIHNldElz
QXN5bmNFeGVjdXRpb246dHJ1ZV07CkBAIC0xODYxLDcgKzE4NzIsNyBAQCBURVNUKFNPQXV0aG9y
aXphdGlvblN1YkZyYW1lLCBOb0ludGVyY2VwdGlvbnMpCiAgICAgYXV0byB0ZXN0SHRtbCA9IGdl
bmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgdGVzdFVSTC5nZXQoKS5hYnNvbHV0ZVN0cmluZyk7
CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXph
dGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9u
V2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSk7CiAKICAgICBbd2ViVmlldyBs
b2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBiYXNlVVJMOmJhc2VVUkwuZ2V0KCldOwpAQCAtMTg3OCw3
ICsxODg5LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25TdWJGcmFtZSwgTm9JbnRlcmNlcHRpb25z
Tm9uQXBwbGVGaXJzdFBhcnR5TWFpbkZyYW1lKQogICAgIGF1dG8gdGVzdEh0bWwgPSBnZW5lcmF0
ZUh0bWwocGFyZW50VGVtcGxhdGUsIFVSTChVUkwoKSwgImh0dHA6Ly93d3cuZXhhbXBsZS5jb20i
KS5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09B
dXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSk7CiAKICAg
ICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBiYXNlVVJMOihOU1VSTCAqKVVSTChV
UkwoKSwgImh0dHA6Ly93d3cud2Via2l0Lm9yZyIpXTsKQEAgLTE5MDEsNyArMTkxMiw3IEBAIFRF
U1QoU09BdXRob3JpemF0aW9uU3ViRnJhbWUsIEludGVyY2VwdGlvbkVycm9yKQogICAgIGF1dG8g
dGVzdEh0bWwgPSBnZW5lcmF0ZUh0bWwocGFyZW50VGVtcGxhdGUsIHRlc3RVUkwuZ2V0KCkuYWJz
b2x1dGVTdHJpbmcpOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKLSAg
ICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25OYXZpZ2F0aW9u
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rl
c3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNvbmZpZ3VyZVNP
QXV0aG9yaXphdGlvbldlYlZpZXcod2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0KCkpOwogCiAg
ICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6dGVzdEh0bWwgYmFzZVVSTDpiYXNlVVJMLmdldCgp
XTsKQEAgLTE5MzEsNyArMTk0Miw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uU3ViRnJhbWUsIElu
dGVyY2VwdGlvblN1Y2Nlc3MpCiAgICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChwYXJl
bnRUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9w
dE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAs
IDMyMCwgNTAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9y
aXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxl
Z2F0ZS5nZXQoKSk7CiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBiYXNl
VVJMOm5pbF07CkBAIC0xOTU5LDcgKzE5NzAsNyBAQCBURVNUKFNPQXV0aG9yaXphdGlvblN1YkZy
YW1lLCBJbnRlcmNlcHRpb25TdWNjZWVkV2l0aE90aGVySHR0cFN0YXR1c0NvZGUpCiAgICAgYXV0
byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgdGVzdFVSTC5nZXQoKS5h
YnNvbHV0ZVN0cmluZyk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwot
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRp
b25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJl
U09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSk7CiAK
ICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0ZXN0SHRtbCBiYXNlVVJMOmJhc2VVUkwuZ2V0
KCldOwpAQCAtMTk5Myw3ICsyMDA0LDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25TdWJGcmFtZSwg
SW50ZXJjZXB0aW9uU3VjY2VlZFdpdGhDb29raWUpCiAgICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVy
YXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHdl
YlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1Jl
Y3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFs
bG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3
LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSk7CiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzp0
ZXN0SHRtbCBiYXNlVVJMOm5pbF07CkBAIC0yMDIwLDcgKzIwMzEsNyBAQCBURVNUKFNPQXV0aG9y
aXphdGlvblN1YkZyYW1lLCBJbnRlcmNlcHRpb25TdWNjZXNzVHdpY2UpCiAgICAgYXV0byB0ZXN0
SHRtbCA9IGdlbmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSk7CiAK
ICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUg
PSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10g
aW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlv
bkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2Vi
Vmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSk7CiAKICAgICBmb3IgKGludCBpID0g
MDsgaSA8IDI7IGkrKykgewpAQCAtMjA1MSw3ICsyMDYyLDcgQEAgVEVTVChTT0F1dGhvcml6YXRp
b25TdWJGcmFtZSwgQXV0aG9yaXphdGlvbk9wdGlvbnMpCiAgICAgYXV0byB0ZXN0SHRtbCA9IGdl
bmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgdGVzdFVSTC5zdHJpbmcoKSk7CiAKICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpD
R1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5T
KFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwor
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbkRlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09BdXRob3JpemF0aW9uV2ViVmlldyh3ZWJW
aWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSk7CiAKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmlu
Zzp0ZXN0SHRtbCBiYXNlVVJMOihOU1VSTCAqKVVSTChVUkwoKSwgImh0dHA6Ly93d3cuYXBwbGUu
Y29tIildOwpAQCAtMjA2OSw3ICsyMDgwLDcgQEAgVEVTVChTT0F1dGhvcml6YXRpb25TdWJGcmFt
ZSwgU09BdXRob3JpemF0aW9uTG9hZFBvbGljeUlnbm9yZSkKICAgICBhdXRvIHRlc3RIdG1sID0g
Z2VuZXJhdGVIdG1sKHBhcmVudFRlbXBsYXRlLCB0ZXN0VVJMLnN0cmluZygpKTsKIAogICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tUZXN0U09BdXRob3JpemF0aW9uTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7
CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0U09BdXRob3JpemF0aW9uRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKICAgICBjb25maWd1cmVTT0F1dGhvcml6YXRpb25XZWJWaWV3KHdl
YlZpZXcuZ2V0KCksIGRlbGVnYXRlLmdldCgpKTsKICAgICBbZGVsZWdhdGUgc2V0QWxsb3dTT0F1
dGhvcml6YXRpb25Mb2FkOmZhbHNlXTsKIApAQCAtMjA5Miw3ICsyMTAzLDcgQEAgVEVTVChTT0F1
dGhvcml6YXRpb25TdWJGcmFtZSwgU09BdXRob3JpemF0aW9uTG9hZFBvbGljeUFsbG93QXN5bmMp
CiAgICAgYXV0byB0ZXN0SHRtbCA9IGdlbmVyYXRlSHRtbChwYXJlbnRUZW1wbGF0ZSwgdGVzdFVS
TC5zdHJpbmcoKSk7CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOwotICAg
IGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdFNPQXV0aG9yaXphdGlvbk5hdmlnYXRpb25E
ZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVz
dFNPQXV0aG9yaXphdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgY29uZmlndXJlU09B
dXRob3JpemF0aW9uV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBkZWxlZ2F0ZS5nZXQoKSk7CiAgICAg
W2RlbGVnYXRlIHNldElzQXN5bmNFeGVjdXRpb246dHJ1ZV07CiAKQEAgLTIxMTcsNyArMjEyOCw3
IEBAIFRFU1QoU09BdXRob3JpemF0aW9uU3ViRnJhbWUsIFNPQXV0aG9yaXphdGlvbkxvYWRQb2xp
Y3lJZ25vcmVBc3luYykKICAgICBhdXRvIHRlc3RIdG1sID0gZ2VuZXJhdGVIdG1sKHBhcmVudFRl
bXBsYXRlLCB0ZXN0VVJMLnN0cmluZygpKTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIw
LCA1MDApXSk7Ci0gICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0U09BdXRob3JpemF0
aW9uTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0U09BdXRob3JpemF0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAg
ICBjb25maWd1cmVTT0F1dGhvcml6YXRpb25XZWJWaWV3KHdlYlZpZXcuZ2V0KCksIGRlbGVnYXRl
LmdldCgpKTsKICAgICBbZGVsZWdhdGUgc2V0QWxsb3dTT0F1dGhvcml6YXRpb25Mb2FkOmZhbHNl
XTsKICAgICBbZGVsZWdhdGUgc2V0SXNBc3luY0V4ZWN1dGlvbjp0cnVlXTsKQEAgLTIxNjAsNyAr
MjE3MSw3IEBAIFRFU1QoU09BdXRob3JpemF0aW9uU3ViRnJhbWUsIEludGVyY2VwdGlvbkVycm9y
V2l0aFJlZmVycmVyKQogICAgIH0pOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUw
MCldKTsKLSAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25O
YXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRv
cHROUyhbW1Rlc3RTT0F1dGhvcml6YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGNv
bmZpZ3VyZVNPQXV0aG9yaXphdGlvbldlYlZpZXcod2ViVmlldy5nZXQoKSwgZGVsZWdhdGUuZ2V0
KCkpOwogCiAgICAgYXV0byBvcmlnaW4gPSBtYWtlU3RyaW5nKCJodHRwOi8vMTI3LjAuMC4xOiIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzZXJ2ZXIucG9ydCgpKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>