<?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>190504</bug_id>
          
          <creation_ts>2018-10-11 18:50:47 -0700</creation_ts>
          <short_desc>[iOS] Allow SPI clients to lay out at arbitrarily scaled sizes and scale to fit the view</short_desc>
          <delta_ts>2018-10-15 10:39:56 -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 API</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1468295</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-10-11 18:50:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/45117760&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468340</commentid>
    <comment_count>1</comment_count>
      <attachid>352130</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-10-11 20:17:08 -0700</bug_when>
    <thetext>Created attachment 352130
First pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468358</commentid>
    <comment_count>2</comment_count>
      <attachid>352136</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-10-11 22:40:28 -0700</bug_when>
    <thetext>Created attachment 352136
Fix WPE/GTK builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468547</commentid>
    <comment_count>3</comment_count>
      <attachid>352136</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-10-12 13:21:24 -0700</bug_when>
    <thetext>Comment on attachment 352136
Fix WPE/GTK builds

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

&gt; Source/WebCore/page/ViewportConfiguration.cpp:434
&gt; +    m_configuration.initialScale *= m_layoutSizeScaleFactor;

Hi-larious

&gt; Source/WebCore/page/ViewportConfiguration.cpp:549
&gt; +    ts.dumpProperty(&quot;initialScaleIgnoringLayoutScaleFactor&quot;, parameters.initialScaleIgnoringLayoutScaleFactor);

Probably also print out m_layoutSizeScaleFactor??

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:5166
&gt;      if (viewScale &lt;= 0 || isnan(viewScale) || isinf(viewScale))
&gt;          [NSException raise:NSInvalidArgumentException format:@&quot;View scale should be a positive number&quot;];

Why is this in the !PLATFORM(MAC) section

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:180
&gt; +@property (nonatomic, setter=_setViewScale:) CGFloat _viewScale WK_API_AVAILABLE(macosx(10.11), ios(9.0));

Whoops

&gt; Tools/ChangeLog:22
&gt; +        Add a new file for UIScriptController methods on Cocoa platforms.

Noice. There&apos;s some other stuff we can move here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468552</commentid>
    <comment_count>4</comment_count>
      <attachid>352136</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-10-12 13:44:36 -0700</bug_when>
    <thetext>Comment on attachment 352136
Fix WPE/GTK builds

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

&gt;&gt; Source/WebCore/page/ViewportConfiguration.cpp:549
&gt;&gt; +    ts.dumpProperty(&quot;initialScaleIgnoringLayoutScaleFactor&quot;, parameters.initialScaleIgnoringLayoutScaleFactor);
&gt; 
&gt; Probably also print out m_layoutSizeScaleFactor??

Yes!

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:5166
&gt;&gt;          [NSException raise:NSInvalidArgumentException format:@&quot;View scale should be a positive number&quot;];
&gt; 
&gt; Why is this in the !PLATFORM(MAC) section

Can&apos;t think of a good reason! Interestingly, WebViewImpl::setViewScale throws this same exception. I&apos;ll lift this `+[NSException raise:]` call out of !MAC for now, and move the identical macOS exception throwing logic from WebViewImpl to WKView.

&gt;&gt; Tools/ChangeLog:22
&gt;&gt; +        Add a new file for UIScriptController methods on Cocoa platforms.
&gt; 
&gt; Noice. There&apos;s some other stuff we can move here.

Indeed! Will move cross-macOS-iOS functionality here in a followup.

&gt; LayoutTests/resources/ui-helper.js:348
&gt; +        return new Promise(resolve =&gt; testRunner.runUIScript(`uiController.setViewScale(${scale})`, () =&gt; resolve()));

Note to self: I should just pass `resolve` here rather than wrapping it in another callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468609</commentid>
    <comment_count>5</comment_count>
      <attachid>352206</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-10-12 14:49:04 -0700</bug_when>
    <thetext>Created attachment 352206
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468684</commentid>
    <comment_count>6</comment_count>
      <attachid>352206</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-12 16:13:45 -0700</bug_when>
    <thetext>Comment on attachment 352206
Patch for EWS

Clearing flags on attachment: 352206

Committed r237087: &lt;https://trac.webkit.org/changeset/237087&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352130</attachid>
            <date>2018-10-11 20:17:08 -0700</date>
            <delta_ts>2018-10-11 22:40:27 -0700</delta_ts>
            <desc>First pass</desc>
            <filename>bug-190504-20181011201707.patch</filename>
            <type>text/plain</type>
            <size>46368</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjlkY2FiMDkxMzA1OTE1
MDVmYjg5OTEyZmY4ZDE2YTZjMDg5NzZjOS4uMjYzODhmZWY3OGY4ODVmYWVlMGU3NWU2NzNiNjI0
MDVkZWQ3MDgzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTEwLTExICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFsbG93
IFNQSSBjbGllbnRzIHRvIGxheSBvdXQgYXQgYXJiaXRyYXJpbHkgc2NhbGVkIHNpemVzIGFuZCBz
Y2FsZSB0byBmaXQgdGhlIHZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MDUwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUxMTc3NjA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBv
cnQgaW4gVmlld3BvcnRDb25maWd1cmF0aW9uIGZvciBhcHBseWluZyBhIGxheW91dCBzaXplIHNj
YWxlIGZhY3RvciB0byB0aGUgdmlld3BvcnQuIFNlZSBiZWxvdyBmb3IKKyAgICAgICAgbW9yZSBk
ZXRhaWxzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3ZpZXdwb3J0L2lvcy9jb25zdGFudC13aWR0
aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3Qvdmlld3BvcnQvaW9zL2RldmljZS13aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12
aWV3LXNjYWxlLmh0bWwKKworICAgICAgICAqIHBhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2V0Vmlld0xheW91
dFNpemUpOgorCisgICAgICAgIFRoZSB2aWV3cG9ydCdzIGxheW91dCBzaXplIG1heSBub3cgYmUg
Y2hhbmdlZCBhbG9uZ3NpZGUgdGhlIGxheW91dCBzaXplIHNjYWxlIGZhY3Rvci4gSWYgZWl0aGVy
IG9mIHRoZXNlIHR3bworICAgICAgICB2YXJpYWJsZXMgY2hhbmdlLCB3ZSByZWNvbXB1dGUgb3Vy
IG1pbmltdW0gbGF5b3V0IHNpemUgYW5kIHZpZXdwb3J0IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVy
cy4KKworICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uOjpzaG91bGRJZ25v
cmVIb3Jpem9udGFsU2NhbGluZ0NvbnN0cmFpbnRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6bmF0aXZlV2VicGFnZVBhcmFtZXRlcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uOjp0ZXN0aW5nUGFyYW1ldGVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246OnVwZGF0ZUNvbmZpZ3VyYXRp
b24pOgorCisgICAgICAgIE11bHRpcGx5IHRoZSBtaW5pbXVtIHNjYWxlLCBpbml0aWFsIHNjYWxl
LCBhbmQgbWF4aW11bSBzY2FsZSBieSB0aGUgbGF5b3V0IHNpemUgc2NhbGUgZmFjdG9yLiBUaGlz
IGFsbG93cyB1cyB0bworICAgICAgICBrZWVwIHRoZSBkb2N1bWVudCB3ZWxsLXByb3BvcnRpb25l
ZCB3aXRoaW4gdGhlIHZpZXdwb3J0LCB3aGlsZSBzdGlsbCBsYXlpbmcgb3V0IGF0IGEgZGlmZmVy
ZW50IGxheW91dCBzaXplLgorCisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRp
b246OnVwZGF0ZU1pbmltdW1MYXlvdXRTaXplKToKKworICAgICAgICBDb21wdXRlIHRoZSBtaW5p
bXVtIGxheW91dCBzaXplIGJ5IHNjYWxpbmcgdGhlIGRlZmF1bHQgbGF5b3V0IHNpemUgZGVyaXZl
ZCBmcm9tIG91ciB2aWV3J3Mgc2l6ZS4KKworICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRDb25m
aWd1cmF0aW9uOjpsYXlvdXRXaWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9y
dENvbmZpZ3VyYXRpb246OmxheW91dEhlaWdodCBjb25zdCk6CisgICAgICAgICogcGFnZS9WaWV3
cG9ydENvbmZpZ3VyYXRpb24uaDoKKworICAgICAgICBNYWludGFpbiB0aGUgb3JpZ2luYWwgaW5p
dGlhbCBzY2FsZSwgdW5hZmZlY3RlZCBieSB0aGUgbGF5b3V0IHNpemUgc2NhbGUgZmFjdG9yLiBU
aGlzIGlzIHVzZWQgd2hlbiBjb21wdXRpbmcKKyAgICAgICAgbGF5b3V0IHdpZHRoIGFuZCBoZWln
aHQgdG8gcHJldmVudCBzY2FsaW5nIGJ5IHRoZSBsYXlvdXQgc2l6ZSBzY2FsZSBmYWN0b3IgdHdp
Y2Ugd2hlbiBjb21wdXRpbmcgbGF5b3V0IHNpemVzLgorCisgICAgICAgIChXZWJDb3JlOjpWaWV3
cG9ydENvbmZpZ3VyYXRpb246OlBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOgorCiAyMDE4
LTEwLTExICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAg
QWRkIEhvdWRpbmkgc3BlY3MgdG8gZmVhdHVyZXMuanNvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1NjYxMjE0YmUz
MDA1MjJjODZkZWQ4YjUxZGFhY2UyODc2ZmEzYzVkLi41ZDA3ZWRjNjNlNTQ5MTFhZTcxYWQzYzNj
ODQ2OWM1MjdhOGUwYmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE4LTEwLTExICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFs
bG93IFNQSSBjbGllbnRzIHRvIGxheSBvdXQgYXQgYXJiaXRyYXJpbHkgc2NhbGVkIHNpemVzIGFu
ZCBzY2FsZSB0byBmaXQgdGhlIHZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5MDUwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUxMTc3NjA+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIF9zZXRWaWV3U2NhbGU6IGFuZCBfdmlld1NjYWxlIG9uIGlPUy4gV2hpbGUgc2lt
aWxhciBpbiBjb25jZXB0IHRvIG1hY09TLCBjaGFuZ2luZyB0aGlzIHByb3BlcnR5CisgICAgICAg
IG9uIGlPUyB1c2VzIHZpZXdwb3J0IGNvbmZpZ3VyYXRpb25zIHRvIGNoYW5nZSB0aGUgbWluaW11
bSBsYXlvdXQgc2l6ZSBvZiB0aGUgZG9jdW1lbnQgYW5kIGFwcGx5IHZpZXcgc2NhbGluZy4KKyAg
ICAgICAgU2V0dGluZyB0aGUgdmlldyBzY2FsZSBvbiBpT1MgdG8gYSB2YWx1ZSBgc2AgbXVsdGlw
bGllcyB0aGUgbWluaW1pdW0gbGF5b3V0IHNpemUgYnkgYSBmYWN0b3IgYDEgLyBzYCwgYnV0IGFs
c28KKyAgICAgICAgbXVsdGlwbGllcyB0aGUgaW5pdGlhbCwgbWluaW11bSBhbmQgbWF4aW11bSBz
Y2FsZXMgYnkgYSBmYWN0b3Igb2YgYHNgLiBUaGUgbmV0IGVmZmVjdCBvZiBhcHBseWluZyB0aGlz
IHNjYWxlCisgICAgICAgIGNhdXNlcyB0aGUgcGFnZSB0byBsYXkgb3V0IGF0IGEgbGFyZ2VyIHdp
ZHRoIGFuZCBzaHJpbmsgKG9yIGEgc21hbGxlciB3aWR0aCBhbmQgZXhwYW5kKSB0byBmaXQgdGhl
IHZpZXdwb3J0LgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisKKyAg
ICAgICAgU2VuZCBgdmlld3BvcnRDb25maWd1cmF0aW9uTGF5b3V0U2l6ZVNjYWxlRmFjdG9yYCBh
bG9uZ3NpZGUgYHZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplYC4KKworICAgICAg
ICAoLVtXS1dlYlZpZXcgX2Rpc3BhdGNoU2V0Vmlld0xheW91dFNpemU6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfdmlld1NjYWxlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0Vmlld1Nj
YWxlOl0pOgorCisgICAgICAgIFByb3ZpZGUgYSBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb24gb2Yg
YF9zZXRWaWV3U2NhbGU6YCBvbiBpT1MsIGJ5IHNjYWxpbmcgdGhlIGVmZmVjdGl2ZSBtaW5pbXVt
IGxheW91dCBzaXplLgorICAgICAgICAoU2VlIGFib3ZlIGZvciBtb3JlIGRldGFpbCkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKworICAgICAg
ICBBZGQgbWlzc2luZyBBUEkgYXZhaWxhYmlsaXR5IGFubm90YXRpb25zIGZvciB0aGUgX3ZpZXdT
Y2FsZSBwcm9wZXJ0eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmxheW91dFNpemVTY2FsZUZhY3RvciBjb25zdCk6CisKKyAgICAgICAgVGllIHRoZSBu
b3Rpb24gb2YgInZpZXcgc2NhbGUiIG9uIGlPUyB0byBgbGF5b3V0U2l6ZVNjYWxlRmFjdG9yYC4g
QXMgaXRzIG5hbWUgc3VnZ2VzdHMsIHRoaXMgaXMgYSBzY2FsZSBmYWN0b3IKKyAgICAgICAgYnkg
d2hpY2ggd2UgdHJhbnNmb3JtIHRoZSBsYXlvdXQgc2l6ZS4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbjoKKworICAgICAgICBQbHVtYiB0aGUgbGF5b3V0IHNpemUgc2NhbGUgZmFjdG9yIG92ZXIg
dG8gdGhlIHdlYiBwcm9jZXNzLCBhbG9uZyB3aXRoIHRoZSBsYXlvdXQgc2l6ZS4KKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUpOgorCiAy
MDE4LTEwLTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJ
T1MgMTIgLSBTZXJ2aWNlIHdvcmtlciBjYWNoZSBub3Qgc2hhcmVkIHdoZW4gYWRkZWQgdG8gaG9t
ZXNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3Vy
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uY3Bw
CmluZGV4IGMwMzM1NzFjNjI5OTdkM2VlNTViNDZlY2EyZWJlOGJkYWRmNmZhY2EuLjA5Njk3NDA5
NDk5NTdmNzY0MTViMDc2NjVjNjRmYTU2MzMxZWM2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHAKQEAgLTExNCwxMSArMTE0LDEzIEBAIGJvb2wg
Vmlld3BvcnRDb25maWd1cmF0aW9uOjpzZXRDb250ZW50c1NpemUoY29uc3QgSW50U2l6ZSYgY29u
dGVudFNpemUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgVmlld3BvcnRDb25maWd1cmF0
aW9uOjpzZXRWaWV3TGF5b3V0U2l6ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplKQor
Ym9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNldFZpZXdMYXlvdXRTaXplKGNvbnN0IEZsb2F0
U2l6ZSYgdmlld0xheW91dFNpemUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiYmIHNjYWxlRmFjdG9y
KQogewotICAgIGlmIChtX3ZpZXdMYXlvdXRTaXplID09IHZpZXdMYXlvdXRTaXplKQorICAgIGRv
dWJsZSBuZXdTY2FsZUZhY3RvciA9IHNjYWxlRmFjdG9yLnZhbHVlX29yKG1fbGF5b3V0U2l6ZVNj
YWxlRmFjdG9yKTsKKyAgICBpZiAobV92aWV3TGF5b3V0U2l6ZSA9PSB2aWV3TGF5b3V0U2l6ZSAm
JiBtX2xheW91dFNpemVTY2FsZUZhY3RvciA9PSBuZXdTY2FsZUZhY3RvcikKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCisgICAgbV9sYXlvdXRTaXplU2NhbGVGYWN0b3IgPSBuZXdTY2FsZUZhY3Rv
cjsKICAgICBtX3ZpZXdMYXlvdXRTaXplID0gdmlld0xheW91dFNpemU7CiAKICAgICB1cGRhdGVN
aW5pbXVtTGF5b3V0U2l6ZSgpOwpAQCAtMTkxLDcgKzE5Myw3IEBAIGJvb2wgVmlld3BvcnRDb25m
aWd1cmF0aW9uOjpzaG91bGRJZ25vcmVIb3Jpem9udGFsU2NhbGluZ0NvbnN0cmFpbnRzKCkgY29u
c3QKICAgICBpZiAobV92aWV3cG9ydEFyZ3VtZW50cy53aWR0aCA9PSBWaWV3cG9ydEFyZ3VtZW50
czo6VmFsdWVEZXZpY2VXaWR0aCkKICAgICAgICAgcmV0dXJuIGxhaWRPdXRXaWRlclRoYW5WaWV3
cG9ydDsKIAotICAgIGlmIChtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlSXNTZXQgJiYgbV9j
b25maWd1cmF0aW9uLmluaXRpYWxTY2FsZSA9PSAxKQorICAgIGlmIChtX2NvbmZpZ3VyYXRpb24u
aW5pdGlhbFNjYWxlSXNTZXQgJiYgbV9jb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZUlnbm9yaW5n
TGF5b3V0U2NhbGVGYWN0b3IgPT0gMSkKICAgICAgICAgcmV0dXJuIGxhaWRPdXRXaWRlclRoYW5W
aWV3cG9ydDsKIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTI5OSw2ICszMDEsNyBAQCBWaWV3cG9y
dENvbmZpZ3VyYXRpb246OlBhcmFtZXRlcnMgVmlld3BvcnRDb25maWd1cmF0aW9uOjpuYXRpdmVX
ZWJwYWdlUGFyYW1ldGVycwogICAgIHBhcmFtZXRlcnMubWluaW11bVNjYWxlID0gMTsKICAgICBw
YXJhbWV0ZXJzLm1heGltdW1TY2FsZSA9IDU7CiAgICAgcGFyYW1ldGVycy5pbml0aWFsU2NhbGUg
PSAxOworICAgIHBhcmFtZXRlcnMuaW5pdGlhbFNjYWxlSWdub3JpbmdMYXlvdXRTY2FsZUZhY3Rv
ciA9IDE7CiAgICAgcGFyYW1ldGVycy5pbml0aWFsU2NhbGVJc1NldCA9IHRydWU7CiAgICAgcmV0
dXJuIHBhcmFtZXRlcnM7CiB9CkBAIC0zNTcsNiArMzYwLDcgQEAgVmlld3BvcnRDb25maWd1cmF0
aW9uOjpQYXJhbWV0ZXJzIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6dGVzdGluZ1BhcmFtZXRlcnMo
KQogewogICAgIFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJzLmluaXRpYWxT
Y2FsZSA9IDE7CisgICAgcGFyYW1ldGVycy5pbml0aWFsU2NhbGVJZ25vcmluZ0xheW91dFNjYWxl
RmFjdG9yID0gMTsKICAgICBwYXJhbWV0ZXJzLmluaXRpYWxTY2FsZUlzU2V0ID0gdHJ1ZTsKICAg
ICBwYXJhbWV0ZXJzLmFsbG93c1Nocmlua1RvRml0ID0gdHJ1ZTsKICAgICBwYXJhbWV0ZXJzLm1p
bmltdW1TY2FsZSA9IDE7CkBAIC00MjYsMTkgKzQzMCwyMyBAQCB2b2lkIFZpZXdwb3J0Q29uZmln
dXJhdGlvbjo6dXBkYXRlQ29uZmlndXJhdGlvbigpCiAgICAgICAgIG1fY29uZmlndXJhdGlvbi5h
bGxvd3NTaHJpbmtUb0ZpdCA9IG1fdmlld3BvcnRBcmd1bWVudHMuc2hyaW5rVG9GaXQgIT0gMC47
CiAKICAgICBtX2NvbmZpZ3VyYXRpb24uYXZvaWRzVW5zYWZlQXJlYSA9IG1fdmlld3BvcnRBcmd1
bWVudHMudmlld3BvcnRGaXQgIT0gVmlld3BvcnRGaXQ6OkNvdmVyOworICAgIG1fY29uZmlndXJh
dGlvbi5pbml0aWFsU2NhbGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yID0gbV9jb25maWd1cmF0
aW9uLmluaXRpYWxTY2FsZTsKKyAgICBtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlICo9IG1f
bGF5b3V0U2l6ZVNjYWxlRmFjdG9yOworICAgIG1fY29uZmlndXJhdGlvbi5taW5pbXVtU2NhbGUg
Kj0gbV9sYXlvdXRTaXplU2NhbGVGYWN0b3I7CisgICAgbV9jb25maWd1cmF0aW9uLm1heGltdW1T
Y2FsZSAqPSBtX2xheW91dFNpemVTY2FsZUZhY3RvcjsKIAogICAgIExPR19XSVRIX1NUUkVBTShW
aWV3cG9ydHMsIHN0cmVhbSA8PCAiVmlld3BvcnRDb25maWd1cmF0aW9uICIgPDwgdGhpcyA8PCAi
IHVwZGF0ZUNvbmZpZ3VyYXRpb24gIiA8PCAqdGhpcyA8PCAiIGdpdmVzIGluaXRpYWwgc2NhbGUg
IiA8PCBpbml0aWFsU2NhbGUoKSA8PCAiIGJhc2VkIG9uIGNvbnRlbnRTaXplICIgPDwgbV9jb250
ZW50U2l6ZSA8PCAiIGFuZCBsYXlvdXQgc2l6ZSAiIDw8IGxheW91dFdpZHRoKCkgPDwgIngiIDw8
IGxheW91dEhlaWdodCgpKTsKIH0KIAogdm9pZCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnVwZGF0
ZU1pbmltdW1MYXlvdXRTaXplKCkKIHsKLSAgICBpZiAoIXNob3VsZE92ZXJyaWRlRGV2aWNlV2lk
dGhBbmRTaHJpbmtUb0ZpdCgpKSB7Ci0gICAgICAgIG1fbWluaW11bUxheW91dFNpemUgPSBtX3Zp
ZXdMYXlvdXRTaXplOworICAgIG1fbWluaW11bUxheW91dFNpemUgPSBtX3ZpZXdMYXlvdXRTaXpl
IC8gbV9sYXlvdXRTaXplU2NhbGVGYWN0b3I7CisKKyAgICBpZiAoIXNob3VsZE92ZXJyaWRlRGV2
aWNlV2lkdGhBbmRTaHJpbmtUb0ZpdCgpKQogICAgICAgICByZXR1cm47Ci0gICAgfQogCiAgICAg
ZmxvYXQgbWluRGV2aWNlV2lkdGggPSBwbGF0Zm9ybURldmljZVdpZHRoT3ZlcnJpZGUoKTsKLSAg
ICBtX21pbmltdW1MYXlvdXRTaXplID0gRmxvYXRTaXplKG1pbkRldmljZVdpZHRoLCBzdGQ6OnJv
dW5kZihtX3ZpZXdMYXlvdXRTaXplLmhlaWdodCgpICogKG1pbkRldmljZVdpZHRoIC8gbV92aWV3
TGF5b3V0U2l6ZS53aWR0aCgpKSkpOworICAgIG1fbWluaW11bUxheW91dFNpemUgPSBGbG9hdFNp
emUobWluRGV2aWNlV2lkdGgsIHN0ZDo6cm91bmRmKG1fbWluaW11bUxheW91dFNpemUuaGVpZ2h0
KCkgKiAobWluRGV2aWNlV2lkdGggLyBtX21pbmltdW1MYXlvdXRTaXplLndpZHRoKCkpKSk7CiB9
CiAKIGRvdWJsZSBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnZpZXdwb3J0QXJndW1lbnRzTGVuZ3Ro
KGRvdWJsZSBsZW5ndGgpIGNvbnN0CkBAIC00NjksMTcgKzQ3NywxNyBAQCBpbnQgVmlld3BvcnRD
b25maWd1cmF0aW9uOjpsYXlvdXRXaWR0aCgpIGNvbnN0CiAgICAgICAgIH0KIAogICAgICAgICAv
LyBJZiBub3QsIG1ha2Ugc3VyZSB0aGUgdmlld3BvcnQgd2lkdGggYW5kIGluaXRpYWwgc2NhbGUg
Y2FuIGNvLWV4aXN0LgotICAgICAgICBkb3VibGUgaW5pdGlhbENvbnRlbnRXaWR0aEluVmlld3Bv
cnRDb29yZGluYXRlID0gbV9jb25maWd1cmF0aW9uLndpZHRoICogbV9jb25maWd1cmF0aW9uLmlu
aXRpYWxTY2FsZTsKKyAgICAgICAgZG91YmxlIGluaXRpYWxDb250ZW50V2lkdGhJblZpZXdwb3J0
Q29vcmRpbmF0ZSA9IG1fY29uZmlndXJhdGlvbi53aWR0aCAqIG1fY29uZmlndXJhdGlvbi5pbml0
aWFsU2NhbGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yOwogICAgICAgICBpZiAoaW5pdGlhbENv
bnRlbnRXaWR0aEluVmlld3BvcnRDb29yZGluYXRlIDwgbWluaW11bUxheW91dFNpemUud2lkdGgo
KSkgewogICAgICAgICAgICAgLy8gVGhlIHNwZWNpZmllZCB3aWR0aCBkb2VzIG5vdCBmaXQgaW4g
dmlld3BvcnQuIFJldHVybiB0aGUgbWluaW11bSB3aWR0aCB0aGF0IHNhdGlzZnkgdGhlIGluaXRp
YWxTY2FsZSBjb25zdHJhaW50LgotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQobWluaW11
bUxheW91dFNpemUud2lkdGgoKSAvIG1fY29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUpOworICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQobWluaW11bUxheW91dFNpemUud2lkdGgoKSAvIG1f
Y29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yKTsKICAg
ICAgICAgfQogICAgICAgICByZXR1cm4gc3RkOjpyb3VuZChtX2NvbmZpZ3VyYXRpb24ud2lkdGgp
OwogICAgIH0KIAogICAgIC8vIElmIHRoZSBwYWdlIGhhcyBhIHJlYWwgc2NhbGUsIHRoZW4ganVz
dCByZXR1cm4gdGhlIG1pbmltdW0gc2l6ZSBvdmVyIHRoZSBpbml0aWFsIHNjYWxlLgogICAgIGlm
IChtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlSXNTZXQgJiYgIW1fY29uZmlndXJhdGlvbi5o
ZWlnaHRJc1NldCkKLSAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQobWluaW11bUxheW91dFNpemUu
d2lkdGgoKSAvIG1fY29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUpOworICAgICAgICByZXR1cm4g
c3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8gbV9jb25maWd1cmF0aW9uLmlu
aXRpYWxTY2FsZUlnbm9yaW5nTGF5b3V0U2NhbGVGYWN0b3IpOwogCiAgICAgaWYgKG1pbmltdW1M
YXlvdXRTaXplLmhlaWdodCgpID4gMCkKICAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQobWluaW11
bUxheW91dFNpemUud2lkdGgoKSAqIGxheW91dEhlaWdodCgpIC8gbWluaW11bUxheW91dFNpemUu
aGVpZ2h0KCkpOwpAQCAtNTA1LDE3ICs1MTMsMTcgQEAgaW50IFZpZXdwb3J0Q29uZmlndXJhdGlv
bjo6bGF5b3V0SGVpZ2h0KCkgY29uc3QKICAgICAgICAgfQogCiAgICAgICAgIC8vIElmIG5vdCwg
bWFrZSBzdXJlIHRoZSB2aWV3cG9ydCB3aWR0aCBhbmQgaW5pdGlhbCBzY2FsZSBjYW4gY28tZXhp
c3QuCi0gICAgICAgIGRvdWJsZSBpbml0aWFsQ29udGVudEhlaWdodEluVmlld3BvcnRDb29yZGlu
YXRlID0gbV9jb25maWd1cmF0aW9uLmhlaWdodCAqIG1fY29uZmlndXJhdGlvbi5pbml0aWFsU2Nh
bGU7CisgICAgICAgIGRvdWJsZSBpbml0aWFsQ29udGVudEhlaWdodEluVmlld3BvcnRDb29yZGlu
YXRlID0gbV9jb25maWd1cmF0aW9uLmhlaWdodCAqIG1fY29uZmlndXJhdGlvbi5pbml0aWFsU2Nh
bGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yOwogICAgICAgICBpZiAoaW5pdGlhbENvbnRlbnRI
ZWlnaHRJblZpZXdwb3J0Q29vcmRpbmF0ZSA8IG1pbmltdW1MYXlvdXRTaXplLmhlaWdodCgpKSB7
CiAgICAgICAgICAgICAvLyBUaGUgc3BlY2lmaWVkIHdpZHRoIGRvZXMgbm90IGZpdCBpbiB2aWV3
cG9ydC4gUmV0dXJuIHRoZSBtaW5pbXVtIGhlaWdodCB0aGF0IHNhdGlzZnkgdGhlIGluaXRpYWxT
Y2FsZSBjb25zdHJhaW50LgotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQobWluaW11bUxh
eW91dFNpemUuaGVpZ2h0KCkgLyBtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlKTsKKyAgICAg
ICAgICAgIHJldHVybiBzdGQ6OnJvdW5kKG1pbmltdW1MYXlvdXRTaXplLmhlaWdodCgpIC8gbV9j
b25maWd1cmF0aW9uLmluaXRpYWxTY2FsZUlnbm9yaW5nTGF5b3V0U2NhbGVGYWN0b3IpOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybiBzdGQ6OnJvdW5kKG1fY29uZmlndXJhdGlvbi5oZWlnaHQp
OwogICAgIH0KIAogICAgIC8vIElmIHRoZSBwYWdlIGhhcyBhIHJlYWwgc2NhbGUsIHRoZW4ganVz
dCByZXR1cm4gdGhlIG1pbmltdW0gc2l6ZSBvdmVyIHRoZSBpbml0aWFsIHNjYWxlLgogICAgIGlm
IChtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlSXNTZXQgJiYgIW1fY29uZmlndXJhdGlvbi53
aWR0aElzU2V0KQotICAgICAgICByZXR1cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS5o
ZWlnaHQoKSAvIG1fY29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUpOworICAgICAgICByZXR1cm4g
c3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQoKSAvIG1fY29uZmlndXJhdGlvbi5p
bml0aWFsU2NhbGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yKTsKIAogICAgIGlmIChtaW5pbXVt
TGF5b3V0U2l6ZS53aWR0aCgpID4gMCkKICAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQobWluaW11
bUxheW91dFNpemUuaGVpZ2h0KCkgKiBsYXlvdXRXaWR0aCgpIC8gbWluaW11bUxheW91dFNpemUu
d2lkdGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmln
dXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uaApp
bmRleCAzZmE2Y2RiNzgwZjY2NzBiOTkxOGQ2OTgxMzE0NzIwZDlkZTI5Y2ViLi45MWE5YmExNWMw
OTllN2Y2YTg3MmI3N2YwMzI4ZmRjMmUwYzlhNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Vmlld3BvcnRDb25maWd1cmF0aW9uLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgICAg
ICBkb3VibGUgd2lkdGggeyAwIH07CiAgICAgICAgIGRvdWJsZSBoZWlnaHQgeyAwIH07CiAgICAg
ICAgIGRvdWJsZSBpbml0aWFsU2NhbGUgeyAwIH07CisgICAgICAgIGRvdWJsZSBpbml0aWFsU2Nh
bGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yIHsgMCB9OwogICAgICAgICBkb3VibGUgbWluaW11
bVNjYWxlIHsgMCB9OwogICAgICAgICBkb3VibGUgbWF4aW11bVNjYWxlIHsgMCB9OwogICAgICAg
ICBib29sIGFsbG93c1VzZXJTY2FsaW5nIHsgZmFsc2UgfTsKQEAgLTYyLDcgKzYzLDcgQEAgcHVi
bGljOgogICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgUGFyYW1ldGVycyYgb3RoZXIpIGNv
bnN0CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiB3aWR0aCA9PSBvdGhlci53aWR0aCAm
JiBoZWlnaHQgPT0gb3RoZXIuaGVpZ2h0Ci0gICAgICAgICAgICAgICAgJiYgaW5pdGlhbFNjYWxl
ID09IG90aGVyLmluaXRpYWxTY2FsZSAmJiBtaW5pbXVtU2NhbGUgPT0gb3RoZXIubWluaW11bVNj
YWxlICYmIG1heGltdW1TY2FsZSA9PSBvdGhlci5tYXhpbXVtU2NhbGUKKyAgICAgICAgICAgICAg
ICAmJiBpbml0aWFsU2NhbGUgPT0gb3RoZXIuaW5pdGlhbFNjYWxlICYmIGluaXRpYWxTY2FsZUln
bm9yaW5nTGF5b3V0U2NhbGVGYWN0b3IgPT0gb3RoZXIuaW5pdGlhbFNjYWxlSWdub3JpbmdMYXlv
dXRTY2FsZUZhY3RvciAmJiBtaW5pbXVtU2NhbGUgPT0gb3RoZXIubWluaW11bVNjYWxlICYmIG1h
eGltdW1TY2FsZSA9PSBvdGhlci5tYXhpbXVtU2NhbGUKICAgICAgICAgICAgICAgICAmJiBhbGxv
d3NVc2VyU2NhbGluZyA9PSBvdGhlci5hbGxvd3NVc2VyU2NhbGluZyAmJiBhbGxvd3NTaHJpbmtU
b0ZpdCA9PSBvdGhlci5hbGxvd3NTaHJpbmtUb0ZpdCAmJiBhdm9pZHNVbnNhZmVBcmVhID09IG90
aGVyLmF2b2lkc1Vuc2FmZUFyZWEKICAgICAgICAgICAgICAgICAmJiB3aWR0aElzU2V0ID09IG90
aGVyLndpZHRoSXNTZXQgJiYgaGVpZ2h0SXNTZXQgPT0gb3RoZXIuaGVpZ2h0SXNTZXQgJiYgaW5p
dGlhbFNjYWxlSXNTZXQgPT0gb3RoZXIuaW5pdGlhbFNjYWxlSXNTZXQ7CiAgICAgICAgIH0KQEAg
LTc5LDcgKzgwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNp
emUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdMYXlvdXRTaXplOyB9CiAKICAgICBjb25zdCBGbG9h
dFNpemUmIG1pbmltdW1MYXlvdXRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtTGF5b3V0
U2l6ZTsgfQotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0Vmlld0xheW91dFNpemUoY29uc3Qg
RmxvYXRTaXplJik7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRWaWV3TGF5b3V0U2l6ZShj
b25zdCBGbG9hdFNpemUmLCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4mJiBzY2FsZUZhY3RvciA9IHN0
ZDo6bnVsbG9wdCk7CiAKICAgICBjb25zdCBPcHRpb25TZXQ8RGlzYWJsZWRBZGFwdGF0aW9ucz4m
IGRpc2FibGVkQWRhcHRhdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX2Rpc2FibGVkQWRhcHRhdGlv
bnM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldERpc2FibGVkQWRhcHRhdGlvbnMoY29u
c3QgT3B0aW9uU2V0PERpc2FibGVkQWRhcHRhdGlvbnM+Jik7CkBAIC0xMzcsNiArMTM4LDcgQEAg
cHJpdmF0ZToKICAgICBWaWV3cG9ydEFyZ3VtZW50cyBtX3ZpZXdwb3J0QXJndW1lbnRzOwogICAg
IE9wdGlvblNldDxEaXNhYmxlZEFkYXB0YXRpb25zPiBtX2Rpc2FibGVkQWRhcHRhdGlvbnM7CiAK
KyAgICBkb3VibGUgbV9sYXlvdXRTaXplU2NhbGVGYWN0b3IgeyAxIH07CiAgICAgYm9vbCBtX2Nh
bklnbm9yZVNjYWxpbmdDb25zdHJhaW50czsKICAgICBib29sIG1fZm9yY2VBbHdheXNVc2VyU2Nh
bGFibGU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAppbmRleCBiMWZiNGU1MTQ2ZjY5ZjU1ODg0YjJlNDMwNzU1OWU3YTA3MzFm
ODFmLi5mZmM4Yzg2Njk5MmMxMDAwNzY0NzdkY2JiMzhmYWIwZmM2ZTI3MDc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAt
OTAsNiArOTAsNyBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6
OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCB0ZXh0QXV0b3NpemluZ1dp
ZHRoOwogICAgIGVuY29kZXIgPDwgaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHM7CiAgICAgZW5j
b2RlciA8PCB2aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZTsKKyAgICBlbmNvZGVy
IDw8IHZpZXdwb3J0Q29uZmlndXJhdGlvbkxheW91dFNpemVTY2FsZUZhY3RvcjsKICAgICBlbmNv
ZGVyIDw8IHZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdTaXplOwogICAgIGVuY29kZXIgPDwgbWF4
aW11bVVub2JzY3VyZWRTaXplOwogI2VuZGlmCkBAIC0yNTcsNiArMjU4LDggQEAgc3RkOjpvcHRp
b25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUoSVBDOjoKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNp
emUpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25MYXlvdXRTaXplU2NhbGVGYWN0b3Ip
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3U2l6ZSkpCiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm1heGlt
dW1Vbm9ic2N1cmVkU2l6ZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggZGI0YzA3ZjA3Yzg2NjQzYzY1ZjZhMDg4N2ZkODliMjM1
YzA4OTcyNi4uOGQ5ZmQ4YWUzZDc2Y2NhZGNlNjA0ZjAyZmM2Y2U0ODdlODM3NTI2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAt
MTQ3LDYgKzE0Nyw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBm
bG9hdCB0ZXh0QXV0b3NpemluZ1dpZHRoOwogICAgIGJvb2wgaWdub3Jlc1ZpZXdwb3J0U2NhbGVM
aW1pdHM7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdM
YXlvdXRTaXplOworICAgIGRvdWJsZSB2aWV3cG9ydENvbmZpZ3VyYXRpb25MYXlvdXRTaXplU2Nh
bGVGYWN0b3I7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIHZpZXdwb3J0Q29uZmlndXJhdGlvblZp
ZXdTaXplOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CmluZGV4IGU2NTMyZDQ3OTE5NGI5ZGI0ZjFiMTY0MDlmYjNjYzE1MTkzYjc4MGUuLmFhNjdhZWYy
OTU3ZjJhZjYxOTk5MDMwNjZhNTczZmJlNDI0MjE4OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjY0MCw3ICsyNjQwLDcgQEAgc3Rh
dGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpG
bG9hdFBvaW50IGNvbnRlbnRPZmYKICAgICAgICAgcmV0dXJuOwogCiAgICAgTE9HX1dJVEhfU1RS
RUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICItW1dLV2ViVmlldyAiIDw8IF9wYWdlLT5wYWdl
SUQoKSA8PCAiIF9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOl0gIiA8PCB2aWV3TGF5b3V0U2l6
ZSA8PCAiIGNvbnRlbnRab29tU2NhbGUgIiA8PCBjb250ZW50Wm9vbVNjYWxlKHNlbGYpKTsKLSAg
ICBfcGFnZS0+c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUodmlld0xheW91
dFNpemUpOworICAgIF9wYWdlLT5zZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6
ZSh2aWV3TGF5b3V0U2l6ZSwgX3BhZ2UtPmxheW91dFNpemVTY2FsZUZhY3RvcigpKTsKICAgICBf
bGFzdFNlbnRWaWV3TGF5b3V0U2l6ZSA9IHZpZXdMYXlvdXRTaXplOwogfQogCkBAIC01MTUwLDcg
KzUxNTAsMTEgQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlv
bnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykKIAogLSAoQ0dGbG9hdClfdmlld1NjYWxl
CiB7CisjaWYgUExBVEZPUk0oTUFDKQogICAgIHJldHVybiBfcGFnZS0+dmlld1NjYWxlRmFjdG9y
KCk7CisjZWxzZQorICAgIHJldHVybiBfcGFnZS0+bGF5b3V0U2l6ZVNjYWxlRmFjdG9yKCk7Cisj
ZW5kaWYKIH0KIAogLSAodm9pZClfc2V0Vmlld1NjYWxlOihDR0Zsb2F0KXZpZXdTY2FsZQpAQCAt
NTE2MSw3ICs1MTY1LDEwIEBAIHN0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b0Zp
bmRPcHRpb25zKF9XS0ZpbmRPcHRpb25zIHdrRmluZE9wdGlvbnMpCiAgICAgaWYgKHZpZXdTY2Fs
ZSA8PSAwIHx8IGlzbmFuKHZpZXdTY2FsZSkgfHwgaXNpbmYodmlld1NjYWxlKSkKICAgICAgICAg
W05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIlZp
ZXcgc2NhbGUgc2hvdWxkIGJlIGEgcG9zaXRpdmUgbnVtYmVyIl07CiAKLSAgICBfcGFnZS0+c2Nh
bGVWaWV3KHZpZXdTY2FsZSk7CisgICAgaWYgKF9wYWdlLT5sYXlvdXRTaXplU2NhbGVGYWN0b3Io
KSA9PSB2aWV3U2NhbGUpCisgICAgICAgIHJldHVybjsKKworICAgIF9wYWdlLT5zZXRWaWV3cG9y
dENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShbc2VsZiBhY3RpdmVWaWV3TGF5b3V0U2l6ZTpz
ZWxmLmJvdW5kc10sIHZpZXdTY2FsZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggN2E0YTNi
MjQzMGI4MGM1MmVkNTU1NDBlOGY2YmZmNThjMmI1NjMwNC4uNDk2NzMxNjJmMDc3NmU2OTBmNTli
NDZjZGU0NmUyZTE3YWYyNWJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0xNzcsNyArMTc3LDcgQEAgdHlwZWRl
ZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHM6KSBDR1Np
emUgX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMpLCBpb3MoMTEuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRWaWV3U2NhbGU6KSBDR0Zsb2F0IF92aWV3U2NhbGU7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRWaWV3U2NhbGU6KSBDR0Zsb2F0IF92aWV3U2NhbGUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldEJhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZTopIEJPT0wgX2JhY2tncm91bmRFeHRl
bmRzQmV5b25kUGFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwgaW9zKDguMCkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBlYWNhZjQ4
YTY5ZWIyMWI4MzBlZjVkYzQ2Nzc2Njg4ZDRjMThlNzEzLi5mOWU4ODJjMzFhZmNmNmE0ZjZlNDFm
NDExZmViNDM2NDdkNzQxMmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTYzMzksNiArNjMzOSw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2Vi
UGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoKQogICAgIHBhcmFtZXRlcnMubWltZVR5cGVz
V2l0aEN1c3RvbUNvbnRlbnRQcm92aWRlcnMgPSBwYWdlQ2xpZW50KCkubWltZVR5cGVzV2l0aEN1
c3RvbUNvbnRlbnRQcm92aWRlcnMoKTsKICAgICBwYXJhbWV0ZXJzLmlnbm9yZXNWaWV3cG9ydFNj
YWxlTGltaXRzID0gbV9mb3JjZUFsd2F5c1VzZXJTY2FsYWJsZTsKICAgICBwYXJhbWV0ZXJzLnZp
ZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplID0gbV92aWV3cG9ydENvbmZpZ3VyYXRp
b25WaWV3TGF5b3V0U2l6ZTsKKyAgICBwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvbkxh
eW91dFNpemVTY2FsZUZhY3RvciA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uTGF5b3V0U2l6ZVNj
YWxlRmFjdG9yOwogICAgIHBhcmFtZXRlcnMubWF4aW11bVVub2JzY3VyZWRTaXplID0gbV9tYXhp
bXVtVW5vYnNjdXJlZFNpemU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAppbmRleCA5MmE0M2Q2MjRjNTU5ZGU2NTA0MjRlZWJmYTA1ODk5MTlmMzljNjU4Li42
NGZlMTc2OGE1NDAxMjBiYWM5YjBiNDFmYzE0NWVjYmI3ZWQ4ZDc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTg1LDcgKzU4NSw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IHZpZXdMYXlvdXRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG1heGltdW1Vbm9ic2N1
cmVkU2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJl
Y3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29y
ZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIHVub2JzY3VyZWRTYWZlQXJl
YUluc2V0cywgZG91YmxlIHRhcmdldFNjYWxlLCBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uLCBE
eW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpOwogCi0gICAgdm9pZCBzZXRWaWV3cG9ydENvbmZp
Z3VyYXRpb25WaWV3TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKKyAgICB2
b2lkIHNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYsIGRvdWJsZSBzY2FsZUZhY3Rvcik7CiAgICAgdm9pZCBzZXRNYXhpbXVtVW5v
YnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9pZCBzZXREZXZp
Y2VPcmllbnRhdGlvbihpbnQzMl90KTsKICAgICBpbnQzMl90IGRldmljZU9yaWVudGF0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvbjsgfQpAQCAtNjM3LDYgKzYzNyw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmLCB1aW50NjRfdCByZXF1ZXN0SUQpOwogICAgIHZvaWQgc2V0Rm9yY2VBbHdh
eXNVc2VyU2NhbGFibGUoYm9vbCk7CiAgICAgYm9vbCBmb3JjZUFsd2F5c1VzZXJTY2FsYWJsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZm9yY2VBbHdheXNVc2VyU2NhbGFibGU7IH0KKyAgICBkb3VibGUg
bGF5b3V0U2l6ZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydENvbmZpZ3Vy
YXRpb25MYXlvdXRTaXplU2NhbGVGYWN0b3I7IH0KICAgICB2b2lkIHNldElzU2Nyb2xsaW5nT3Ja
b29taW5nKGJvb2wpOwogICAgIHZvaWQgcmVxdWVzdFJlY3RzRm9yR3JhbnVsYXJpdHlXaXRoU2Vs
ZWN0aW9uT2Zmc2V0KFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSwgdWludDMyX3Qgb2Zmc2V0LCBX
VEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlbGVjdGlvblJlY3Q+Jiwg
Q2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwogICAgIHZvaWQgcmVxdWVzdFJlY3RzQXRTZWxlY3Rp
b25PZmZzZXRXaXRoVGV4dChpbnQzMl90IG9mZnNldCwgY29uc3QgU3RyaW5nJiwgV1RGOjpGdW5j
dGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWxlY3Rpb25SZWN0PiYsIENhbGxiYWNr
QmFzZTo6RXJyb3IpPiYmKTsKQEAgLTIyMjksNiArMjIzMCw3IEBAIHByaXZhdGU6CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzPiBtX2RlZmVycmVkTm9kZUFzc2lz
dGFuY2VBcmd1bWVudHM7CiAgICAgYm9vbCBtX2ZvcmNlQWx3YXlzVXNlclNjYWxhYmxlIHsgZmFs
c2UgfTsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV92aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3
TGF5b3V0U2l6ZTsKKyAgICBkb3VibGUgbV92aWV3cG9ydENvbmZpZ3VyYXRpb25MYXlvdXRTaXpl
U2NhbGVGYWN0b3IgeyAxIH07CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fbWF4aW11bVVub2Jz
Y3VyZWRTaXplOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tCmluZGV4IDM5NGE1NjUyNTNiNjk4YTQ2ODQwNGM5NWE1YmE2Nzg5ZGM2
NDMwNmYuLjE5NmFjYzI1NGIzMDhlYjQ0ZTBkMGE2NGU0ZGE5NDM5MzVhZWYzZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMzE4LDEy
ICszMTgsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUo
Y29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY28KICAgICAgICAgdGFyZ2V0U2NhbGUs
IGRldmljZU9yaWVudGF0aW9uLCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpLCBtX3BhZ2VJ
RCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3
TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUpCit2b2lkIFdlYlBhZ2VQ
cm94eTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiBzaXplLCBkb3VibGUgc2NhbGVGYWN0b3IpCiB7CiAgICAgbV92aWV3cG9y
dENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZSA9IHNpemU7CisgICAgbV92aWV3cG9ydENvbmZp
Z3VyYXRpb25MYXlvdXRTaXplU2NhbGVGYWN0b3IgPSBzY2FsZUZhY3RvcjsKIAogICAgIGlmIChp
c1ZhbGlkKCkpCi0gICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0
Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUoc2l6ZSksIG1fcGFnZUlEKTsKKyAg
ICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRWaWV3cG9ydENvbmZp
Z3VyYXRpb25WaWV3TGF5b3V0U2l6ZShzaXplLCBzY2FsZUZhY3RvciksIG1fcGFnZUlEKTsKIH0K
IAogdm9pZCBXZWJQYWdlUHJveHk6OnNldEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKGJvb2wgdXNl
clNjYWxhYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCBhNGU0NmNiNjIwZTI4MWRlMGJkYTgwNGRkMjQ2Yjg5Y2NmMDE4MGZlLi5mMDEwNTli
ZWNkZWUyNzYwY2NjNTQzOTY1MTFiYmU5YmY2ZWVlMjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNjIzLDcgKzYyMyw3IEBAIFdlYlBhZ2U6
OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFy
YW1ldGVycykKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHNldFZpZXdwb3J0Q29u
ZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKHBhcmFtZXRlcnMudmlld3BvcnRDb25maWd1cmF0aW9u
Vmlld0xheW91dFNpemUpOworICAgIHNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRT
aXplKHBhcmFtZXRlcnMudmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUsIHBhcmFt
ZXRlcnMudmlld3BvcnRDb25maWd1cmF0aW9uTGF5b3V0U2l6ZVNjYWxlRmFjdG9yKTsKICAgICBz
ZXRNYXhpbXVtVW5vYnNjdXJlZFNpemUocGFyYW1ldGVycy5tYXhpbXVtVW5vYnNjdXJlZFNpemUp
OwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggZDAxYzlhZTk4MWVlNTU0YjdiYjYwZDgzMWFlZWNiMDk4MDk3ZWYxYS4uMTZmNmZkM2Zi
OTc0ZThhZTg0OWExOTM1M2M5YTg4NzA0ODc1ZWYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtODkzLDcgKzg5Myw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHVwZGF0ZVZpc2liaWxpdHlTdGF0ZShib29sIGlzSW5pdGlhbFN0YXRlID0gZmFsc2UpOwog
CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmll
d0xheW91dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CisgICAgdm9pZCBzZXRWaWV3
cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
LCBkb3VibGUgc2NhbGVGYWN0b3IpOwogICAgIHZvaWQgc2V0TWF4aW11bVVub2JzY3VyZWRTaXpl
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAgIHZvaWQgc2V0RGV2aWNlT3JpZW50YXRp
b24oaW50MzJfdCk7CiAgICAgdm9pZCBzZXRPdmVycmlkZVZpZXdwb3J0QXJndW1lbnRzKGNvbnN0
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM+Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRl
eCBhMGExNGVmMmRiZTBjZWQ2ZWUzMDg5ZWEzMzZjMjZkZjA4ODZjMTJiLi5mNjg4MjkyOTliOWM1
ZjZhOTljYmZiY2U4NGJlZDBiM2YxN2JiZTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQ1LDcgKzQ1LDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgS2V5RXZlbnQoV2ViS2l0
OjpXZWJLZXlib2FyZEV2ZW50IGV2ZW50KQogICAgIE1vdXNlRXZlbnQoV2ViS2l0OjpXZWJNb3Vz
ZUV2ZW50IGV2ZW50KQogI2lmIFBMQVRGT1JNKElPUykKLSAgICBTZXRWaWV3cG9ydENvbmZpZ3Vy
YXRpb25WaWV3TGF5b3V0U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSkKKyAgICBTZXRWaWV3
cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUgc2l6ZSwg
ZG91YmxlIHNjYWxlRmFjdG9yKQogICAgIFNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShXZWJDb3Jl
OjpGbG9hdFNpemUgc2l6ZSkKICAgICBTZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90IGRldmlj
ZU9yaWVudGF0aW9uKQogICAgIFNldE92ZXJyaWRlVmlld3BvcnRBcmd1bWVudHMoc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cz4gYXJndW1lbnRzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA0YjA4
MmNiN2EzMDUyYTcxOTA0YzFjMjUxZTk1ZTQ4ZTY1NTAzOTRmLi5hYjgxZmRkYjQwMjFlNzdlMDYw
YjE4MzFkMDE0Y2RmODMyODlmYTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjUxOCwxMCArMjUxOCwxMCBAQCB2b2lk
IFdlYlBhZ2U6OmF1dG9maWxsTG9naW5DcmVkZW50aWFscyhjb25zdCBTdHJpbmcmIHVzZXJuYW1l
LCBjb25zdCBTdHJpbmcmIHBhcwogICAgIH0KIH0KIAotdm9pZCBXZWJQYWdlOjpzZXRWaWV3cG9y
dENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUpCit2b2lk
IFdlYlBhZ2U6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IEZs
b2F0U2l6ZSYgc2l6ZSwgZG91YmxlIHNjYWxlRmFjdG9yKQogewotICAgIExPR19XSVRIX1NUUkVB
TShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiV2ViUGFnZSAiIDw8IG1fcGFnZUlEIDw8ICIgc2V0
Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUgIiA8PCBzaXplKTsKLSAgICBpZiAo
bV92aWV3cG9ydENvbmZpZ3VyYXRpb24uc2V0Vmlld0xheW91dFNpemUoc2l6ZSkpCisgICAgTE9H
X1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJXZWJQYWdlICIgPDwgbV9wYWdl
SUQgPDwgIiBzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZSAiIDw8IHNpemUg
PDwgIiBzY2FsZUZhY3RvciAiIDw8IHNjYWxlRmFjdG9yKTsKKyAgICBpZiAobV92aWV3cG9ydENv
bmZpZ3VyYXRpb24uc2V0Vmlld0xheW91dFNpemUoc2l6ZSwgc2NhbGVGYWN0b3IpKQogICAgICAg
ICB2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjMzkzNTQ2YjgwNWY1YTFlMmQyM2E5
ZGRkMTUzMjM0MTNmMzMzZmM4Li5mYTYzMmUwYzY0NDdmMDA4YTgyMjM5MDM5YWIwYzQ0MDE2ZTA4
YzNjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMTgtMTAtMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWxsb3cgU1BJIGNsaWVudHMgdG8gbGF5IG91dCBh
dCBhcmJpdHJhcmlseSBzY2FsZWQgc2l6ZXMgYW5kIHNjYWxlIHRvIGZpdCB0aGUgdmlldworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNTA0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS80NTExNzc2MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZWFjaCBVSVNjcmlwdENvbnRyb2xsZXIgdG8gc2V0IFdL
V2ViVmlldydzIHZpZXcgc2NhbGUgdmlhIGEgbmV3IGBzZXRWaWV3U2NhbGVgIG1ldGhvZCwgc3Vw
cG9ydGVkIGluIFdlYktpdDIgb24KKyAgICAgICAgbWFjT1MgYW5kIGlPUy4KKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChX
VFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0Vmlld1NjYWxlKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoV1RSOjpVSVNj
cmlwdENvbnRyb2xsZXI6OnNldFZpZXdTY2FsZSk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJl
ZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbDoKKyAgICAg
ICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnNldFpvb21TY2FsZSk6Cisg
ICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9VSVNjcmlwdENvbnRyb2xsZXJDb2Nv
YS5tbTogQWRkZWQuCisKKyAgICAgICAgQWRkIGEgbmV3IGZpbGUgZm9yIFVJU2NyaXB0Q29udHJv
bGxlciBtZXRob2RzIG9uIENvY29hIHBsYXRmb3Jtcy4KKworICAgICAgICAoV1RSOjpVSVNjcmlw
dENvbnRyb2xsZXI6OnNldFZpZXdTY2FsZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9X
ZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKwor
ICAgICAgICBFbnN1cmUgdGhhdCBfdmlld1NjYWxlIGlzIHJlc2V0IHRvIDEgYWZ0ZXIgcnVubmlu
ZyBhIGxheW91dCB0ZXN0LgorCiAyMDE4LTEwLTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBJT1MgMTIgLSBTZXJ2aWNlIHdvcmtlciBjYWNoZSBub3Qgc2hh
cmVkIHdoZW4gYWRkZWQgdG8gaG9tZXNjcmVlbgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggOGY3MDAwYzcxOGUxNDkwNmRmYTBk
YWFjNjQ0NzMxYzlkYmU3MjYyOS4uODllNWNiNWQ2YzU0MjE5YTUwODIzZDRiMTQxZTc5MTAyMTI3
Y2JkOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJv
bGxlcklPUy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9s
bGVySU9TLm1tCkBAIC04Miw2ICs4MiwxMCBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6em9v
bVRvU2NhbGUoZG91YmxlIHNjYWxlLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAgIH0pOwogfQog
Cit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0Vmlld1NjYWxlKGRvdWJsZSkKK3sKK30KKwog
dm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNpbXVsYXRlQWNjZXNzaWJpbGl0eVNldHRpbmdzQ2hh
bmdlTm90aWZpY2F0aW9uKEpTVmFsdWVSZWYpCiB7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQppbmRleCAyNTQ1M2RkOGU2ZTRmOGI5
MmM0OWE2YTg5YzY1NGM4N2MwNjBlMmZhLi5mNGEzMzQzMTAzYmY3YTE1ZDZiMDRiYjBhYzJhYjVh
ZGU4YzljMTExIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRD
b250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENv
bnRyb2xsZXJNYWMubW0KQEAgLTg5LDYgKzg5LDEwIEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVy
Ojp6b29tVG9TY2FsZShkb3VibGUgc2NhbGUsIEpTVmFsdWVSZWYgY2FsbGJhY2spCiAgICAgfSk7
CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRWaWV3U2NhbGUoZG91YmxlKQorewor
fQorCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2ltdWxhdGVBY2Nlc3NpYmlsaXR5U2V0dGlu
Z3NDaGFuZ2VOb3RpZmljYXRpb24oSlNWYWx1ZVJlZikKIHsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJv
bGxlci5pZGwgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5n
cy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCmluZGV4IDE1MjI1Y2FmNjVlM2VjZTI5NjJlZmNkNGNk
NTcxN2U1ZTE5MjQyYmYuLjMyNTM3ZDkwOGZmYjkwNjQ1YTI2N2ZkN2ViZjRlZDUyNTk2MWQ3YWYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRp
bmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbApAQCAtMjE2LDYg
KzIxNiw4IEBAIGludGVyZmFjZSBVSVNjcmlwdENvbnRyb2xsZXIgewogCiAgICAgdm9pZCB6b29t
VG9TY2FsZShkb3VibGUgc2NhbGUsIG9iamVjdCBjYWxsYmFjayk7CiAKKyAgICB2b2lkIHNldFZp
ZXdTY2FsZShkb3VibGUgc2NhbGUpOworCiAgICAgdm9pZCBzY3JvbGxUb09mZnNldChsb25nIHgs
IGxvbmcgeSk7IC8vIEluaXRpYXRlIGFuIGFuaW1hdGVkIHNjcm9sbCBpbiB0aGUgVUkgcHJvY2Vz
cy4KICAgICBhdHRyaWJ1dGUgb2JqZWN0IGRpZEVuZFNjcm9sbGluZ0NhbGxiYWNrOwogCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlT
Y3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAyNThiN2MxNTAzMzQwZDAwNDU4OTBlM2YwZWY3NDUy
Njg2NWYwN2U2Li5iNzlhMTMwZTVkNzhhZmE5ZjkyYjUwYzQxYzc4MjM1MzBhNDdkNzdiIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTIxMCw2ICsyMTAsMTAgQEAgdm9pZCBVSVNjcmlw
dENvbnRyb2xsZXI6Onpvb21Ub1NjYWxlKGRvdWJsZSwgSlNWYWx1ZVJlZikKIHsKIH0KIAordm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldFpvb21TY2FsZShkb3VibGUpCit7Cit9CisKIHZvaWQg
VUlTY3JpcHRDb250cm9sbGVyOjpzaW11bGF0ZUFjY2Vzc2liaWxpdHlTZXR0aW5nc0NoYW5nZU5v
dGlmaWNhdGlvbihKU1ZhbHVlUmVmKQogewogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmggYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBm
ODhmNzZmMTFjMDdjNDAxYzA2NzBkOWU1NGE2ODIxOGJjODZmMjUxLi5jZmEzMzIzZjc0NWVlNTZm
NGI3OWIxMjMzODdkN2E1NjQzYjE3MzViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaApAQCAtNjYs
NiArNjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkb0FmdGVyVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlKEpTVmFsdWVSZWYgY2FsbGJhY2spOwogCiAgICAgdm9pZCB6b29tVG9TY2FsZShkb3VibGUg
c2NhbGUsIEpTVmFsdWVSZWYgY2FsbGJhY2spOworICAgIHZvaWQgc2V0Vmlld1NjYWxlKGRvdWJs
ZSk7CiAKICAgICB2b2lkIHNpbXVsYXRlQWNjZXNzaWJpbGl0eVNldHRpbmdzQ2hhbmdlTm90aWZp
Y2F0aW9uKEpTVmFsdWVSZWYgY2FsbGJhY2spOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDhjNzQ4OThkYmI1
OTMyYTE1Y2U3YWU0NTk2ZDlkYmE2MjJiNWUzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtMCwwICsxLDQ1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJVSVNjcmlwdENvbnRy
b2xsZXIuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW1wb3J0ICJUZXN0Q29u
dHJvbGxlci5oIgorI2ltcG9ydCAiVGVzdFJ1bm5lcldLV2ViVmlldy5oIgorI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyOjpzZXRWaWV3U2NhbGUoZG91YmxlIHNjYWxlKQoreworI2lmIFdLX0FQSV9F
TkFCTEVECisgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBs
YXRmb3JtVmlldygpLl92aWV3U2NhbGUgPSBzY2FsZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHNjYWxlKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjA3MWJhNWRkOGU1ODBhOTg5ZDQ5NzRlNTI2NDU1ZThm
ZjYxNThmYS4uMjNhYzVhYjBhZmI3NGE1OGRiMTU1YWIzNzY2YjdkMDQ5MWM5Njc0YyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVu
bmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNSw2ICsxMzUsNyBAQAogCQlFMTMy
QUEzRDE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzMkFBM0IxN0NFNzc2RjAw
NjExREYwIC8qIFdlYktpdFRlc3RSdW5uZXJFdmVudC5tbSAqLzsgfTsKIAkJRTFDNjQyQzMxN0NC
Q0M3MzAwRDY2QTNDIC8qIFBvc2VBc0NsYXNzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjQyQzExN0NCQ0M3MzAwRDY2QTNDIC8qIFBvc2VBc0Ns
YXNzLm1tICovOyB9OwogCQlFMUM2NDJDNjE3Q0JDRDRDMDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1
bm5lclBhc3RlYm9hcmQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUM2NDJDNDE3Q0JDRDRDMDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1bm5lclBhc3Rl
Ym9hcmQubW0gKi87IH07CisJCUY0NjI0MEIxMjE3MDEzRTUwMDkxN0IxNiAvKiBVSVNjcmlwdENv
bnRyb2xsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0NjI0MEFGMjE3MDEyODMwMDkxN0IxNiAvKiBVSVNjcmlwdENvbnRyb2xsZXJDb2Nv
YS5tbSAqLzsgfTsKIAkJRjRDMzU3OEMyMEU4NDQ0NjAwRkEwNzQ4IC8qIExheW91dFRlc3RTcGVs
bENoZWNrZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNEMzNTc4QTIwRTg0NDQwMDBGQTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5tbSAq
LzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCkBAIC0zNzgsNiArMzc5LDcg
QEAKIAkJRTFDNjQyQzIxN0NCQ0M3MzAwRDY2QTNDIC8qIFBvc2VBc0NsYXNzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvc2VBc0NsYXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxQzY0MkM0MTdDQkNENEMwMEQ2NkEzQyAvKiBXZWJLaXRUZXN0UnVubmVy
UGFzdGVib2FyZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMUM2NDJDNTE3Q0JDRDRDMDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5lclBhc3Rl
Ym9hcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ2MjQwQUYyMTcwMTI4MzAw
OTE3QjE2IC8qIFVJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0QzM1NzhBMjBFODQ0NDAwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTGF5b3V0VGVzdFNwZWxs
Q2hlY2tlci5tbTsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNw
ZWxsQ2hlY2tlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDMzU3OEIyMEU4
NDQ0MDAwRkEwNzQ4IC8qIExheW91dFRlc3RTcGVsbENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oOyBwYXRoID0gLi4vVGVz
dFJ1bm5lclNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3BlbGxDaGVja2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCkBAIC01
NTYsNiArNTU4LDcgQEAKIAkJCQkyRENFMkNEMTFCODQ1MjQ1MDBDN0Y4MzIgLyogVGVzdENvbnRy
b2xsZXJDb2NvYS5tbSAqLywKIAkJCQkwRjg3QjYxNDFCQUNDNEI5MDA0RUM1NzIgLyogVGVzdFJ1
bm5lcldLV2ViVmlldy5oICovLAogCQkJCTBGODdCNjE1MUJBQ0M0QjkwMDRFQzU3MiAvKiBUZXN0
UnVubmVyV0tXZWJWaWV3Lm1tICovLAorCQkJCUY0NjI0MEFGMjE3MDEyODMwMDkxN0IxNiAvKiBV
SVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTA4Miw2ICsxMDg1LDcgQEAKIAkJCQkwRjg3
QjYxNzFCQUNDNEMwMDA0RUM1NzIgLyogVGVzdFJ1bm5lcldLV2ViVmlldy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGMThFNkU1MUQ2QjlCOUUwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRleHQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOEU2RTYxRDZCOUJBMjAwMjdFNTQ3IC8qIFVJU2NyaXB0
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNDYyNDBCMTIxNzAxM0U1MDA5MTdC
MTYgLyogVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjcz
QjU1QzFCQTg5MDQyMDA0QjNFRjQgLyogVUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTE4NTEwNDMxQjlBRTE0NTAwNzQ0QUVCIC8qIFdlYk5vdGlmaWNhdGlvblBy
b3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDQ0MUI5QUUxNEEwMDc0NEFFQiAv
KiBXb3JrUXVldWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCmluZGV4IGFhY2Q5YzQ1
NGE4ZTQ3ZjA0MzY0NmNmOWY0NDM4MTNlZDIxMTFiNWIuLmUwZDVkMTM4ZjdiZTUyYjBiY2NlM2Ey
MTM1NmFiNTIwZWY0YjQyMjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2Nv
Y29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAgLTIxNSw4ICsyMTUsMTEgQEAgdm9pZCBUZXN0
Q29udHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBwbGF0
Zm9ybVJ1blVudGlsKGRvbmVSZW1vdmluZywgbm9UaW1lb3V0KTsKICAgICBbW19XS1VzZXJDb250
ZW50RXh0ZW5zaW9uU3RvcmUgZGVmYXVsdFN0b3JlXSBfcmVtb3ZlQWxsQ29udGVudEV4dGVuc2lv
bnNdOwogCi0gICAgaWYgKFBsYXRmb3JtV2ViVmlldyogd2ViVmlldyA9IG1haW5XZWJWaWV3KCkp
Ci0gICAgICAgIFt3ZWJWaWV3LT5wbGF0Zm9ybVZpZXcoKS5jb25maWd1cmF0aW9uLnVzZXJDb250
ZW50Q29udHJvbGxlciBfcmVtb3ZlQWxsVXNlckNvbnRlbnRGaWx0ZXJzXTsKKyAgICBpZiAoUGxh
dGZvcm1XZWJWaWV3KiB3ZWJWaWV3ID0gbWFpbldlYlZpZXcoKSkgeworICAgICAgICBUZXN0UnVu
bmVyV0tXZWJWaWV3ICpwbGF0Zm9ybVZpZXcgPSB3ZWJWaWV3LT5wbGF0Zm9ybVZpZXcoKTsKKyAg
ICAgICAgW3BsYXRmb3JtVmlldy5jb25maWd1cmF0aW9uLnVzZXJDb250ZW50Q29udHJvbGxlciBf
cmVtb3ZlQWxsVXNlckNvbnRlbnRGaWx0ZXJzXTsKKyAgICAgICAgcGxhdGZvcm1WaWV3Ll92aWV3
U2NhbGUgPSAxOworICAgIH0KICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDQ4ZjUwYmRkOGU4YTNiZmVj
MjlkZTIyZTEyYTA4ZjAzMGMzNjRlNC4uMzZlNDY2Mzk0ZTNkMTRhNThiNjMwYTI4YjIwZjA0ODQz
NGY1MmJkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE4LTEwLTExICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFsbG93IFNQSSBjbGll
bnRzIHRvIGxheSBvdXQgYXQgYXJiaXRyYXJpbHkgc2NhbGVkIHNpemVzIGFuZCBzY2FsZSB0byBm
aXQgdGhlIHZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5MDUwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUxMTc3NjA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHR3byBuZXcgbGF5b3V0
IHRlc3RzIG9uIGlPUyB0aGF0IGNoYW5nZSBXS1dlYlZpZXcncyB2aWV3IHNjYWxlLCBhbmQgbWVh
c3VyZSB0aGUgcmVzdWx0aW5nIHdpbmRvdyBzaXplcyBhbmQKKyAgICAgICAgbGVuZ3RocyBvZiB2
aWV3cG9ydCB1bml0cy4KKworICAgICAgICAqIGZhc3Qvdmlld3BvcnQvaW9zL2NvbnN0YW50LXdp
ZHRoLXZpZXdwb3J0LWFmdGVyLWNoYW5naW5nLXZpZXctc2NhbGUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L3ZpZXdwb3J0L2lvcy9jb25zdGFudC13aWR0aC12aWV3cG9ydC1h
ZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWw6IEFkZGVkLgorCisgICAgICAgIEFkZCBhIHRl
c3QgcGFnZSB3aXRoIGEgdmlld3BvcnQgbWV0YSB0YWcgdGhhdCBoYXMgYSBjb25zdGFudCB3aWR0
aCBhbmQgYW4gZXhwbGljaXQgaW5pdGlhbCBzY2FsZSBvZiAwLjUuCisKKyAgICAgICAgKiBmYXN0
L3ZpZXdwb3J0L2lvcy9kZXZpY2Utd2lkdGgtdmlld3BvcnQtYWZ0ZXItY2hhbmdpbmctdmlldy1z
Y2FsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvdmlld3BvcnQvaW9zL2Rl
dmljZS13aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWw6IEFkZGVk
LgorCisgICAgICAgIEFkZCBhIHRlc3QgcGFnZSB3aXRoIGEgdmlld3BvcnQgbWV0YSB0YWcgYXQg
ZGV2aWNlLXdpZHRoLCB3aXRoIGluaXRpYWwgc2NhbGUgMS4KKworICAgICAgICAqIHJlc291cmNl
cy91aS1oZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuc2V0Vmlld1NjYWxlKToK
KworICAgICAgICBBZGQgYSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0aGF0IHdyYXBzIGEgVUkgc2Ny
aXB0IGludm9jYXRpb24gb2YgYHNldFZpZXdTY2FsZWAgaW4gYSBwcm9taXNlLgorCisgICAgICAg
ICh3aW5kb3cuVUlIZWxwZXIpOgorCiAyMDE4LTEwLTA4ICBZdXN1a2UgU3V6dWtpICA8eXVzdWtl
c3V6dWtpQHNsb3dzdGFydC5vcmc+CiAKICAgICAgICAgW0pTQ10gSlNDIHNob3VsZCBoYXZlICJw
YXJzZUZ1bmN0aW9uIiB0byBvcHRpbWl6ZSBGdW5jdGlvbiBjb25zdHJ1Y3RvcgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvY29uc3RhbnQtd2lkdGgtdmlld3BvcnQt
YWZ0ZXItY2hhbmdpbmctdmlldy1zY2FsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L3ZpZXdwb3J0L2lvcy9jb25zdGFudC13aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3
LXNjYWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDBjYzE0YjVjNWUyMTYyMDQzNzRhNjYz
M2FlNDczMmQxOGI5YTY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC92aWV3
cG9ydC9pb3MvY29uc3RhbnQtd2lkdGgtdmlld3BvcnQtYWZ0ZXItY2hhbmdpbmctdmlldy1zY2Fs
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NiBAQAorc2V0Vmlld1NjYWxlKDAuNTApCit3aW5k
b3cgc2l6ZTogWzEyODAsIDIxOTJdCitzcXVhcmUgc2l6ZTogWzEyOCwgMjE5XQorem9vbSBzY2Fs
ZTogMC4yNQorCitzZXRWaWV3U2NhbGUoMC43NSkKK3dpbmRvdyBzaXplOiBbODUzLCAxNDYxXQor
c3F1YXJlIHNpemU6IFs4NSwgMTQ2XQorem9vbSBzY2FsZTogMC4zOAorCitzZXRWaWV3U2NhbGUo
MS4wMCkKK3dpbmRvdyBzaXplOiBbNjQwLCAxMDk2XQorc3F1YXJlIHNpemU6IFs2NCwgMTEwXQor
em9vbSBzY2FsZTogMC41MAorCitzZXRWaWV3U2NhbGUoMS4yNSkKK3dpbmRvdyBzaXplOiBbNTEy
LCA4NzddCitzcXVhcmUgc2l6ZTogWzUxLCA4OF0KK3pvb20gc2NhbGU6IDAuNjMKKworc2V0Vmll
d1NjYWxlKDEuNTApCit3aW5kb3cgc2l6ZTogWzQyNywgNzMxXQorc3F1YXJlIHNpemU6IFs0Mywg
NzNdCit6b29tIHNjYWxlOiAwLjc1CisKK3NldFZpZXdTY2FsZSgxLjI1KQord2luZG93IHNpemU6
IFs1MTIsIDg3N10KK3NxdWFyZSBzaXplOiBbNTEsIDg4XQorem9vbSBzY2FsZTogMC42MworCitz
ZXRWaWV3U2NhbGUoMS4wMCkKK3dpbmRvdyBzaXplOiBbNjQwLCAxMDk2XQorc3F1YXJlIHNpemU6
IFs2NCwgMTEwXQorem9vbSBzY2FsZTogMC41MAorCitzZXRWaWV3U2NhbGUoMC43NSkKK3dpbmRv
dyBzaXplOiBbODUzLCAxNDYxXQorc3F1YXJlIHNpemU6IFs4NSwgMTQ2XQorem9vbSBzY2FsZTog
MC4zOAorCitzZXRWaWV3U2NhbGUoMC41MCkKK3dpbmRvdyBzaXplOiBbMTI4MCwgMjE5Ml0KK3Nx
dWFyZSBzaXplOiBbMTI4LCAyMTldCit6b29tIHNjYWxlOiAwLjI1CisKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvY29uc3RhbnQtd2lkdGgtdmlld3BvcnQtYWZ0
ZXItY2hhbmdpbmctdmlldy1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9p
b3MvY29uc3RhbnQtd2lkdGgtdmlld3BvcnQtYWZ0ZXItY2hhbmdpbmctdmlldy1zY2FsZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIwYzI0M2UwN2ViZGVmNmJkM2NkZDU2ZWNkMzdmYTg4NTU4NmZkOWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L2lvcy9jb25zdGFudC13
aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWwKQEAgLTAsMCArMSw1
OSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGli
bGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZp
ZXdwb3J0IiBjb250ZW50PSJ3aWR0aD02NDAsIGluaXRpYWwtc2NhbGU9MC41Ij4KKyAgICA8c3R5
bGU+CisgICAgICAgICNzcXVhcmUgeworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICAgICAgd2lkdGg6IDEwdnc7CisgICAgICAgICAgICBoZWlnaHQ6IDEwdmg7CisgICAg
ICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKKyAgICAgICAgfQorCisgICAgICAgICNv
dXRwdXQgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDEw
MCU7CisgICAgICAgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgICB9CisKKyAgICAgICAg
Ym9keSB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAgICB3aWR0aDogMTAwJTsK
KyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBjb25zdCBh
cHBlbmRPdXRwdXQgPSBtZXNzYWdlID0+IHsKKyAgICAgICAgICAgIG91dHB1dC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgICAgICAgICBvdXRwdXQu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7CisgICAgICAgIH07CisK
KyAgICAgICAgZm9yIChsZXQgdGFyZ2V0U2NhbGUgb2YgWzAuNSwgMC43NSwgMSwgMS4yNSwgMS41
LCAxLjI1LCAxLCAwLjc1LCAwLjVdKSB7CisgICAgICAgICAgICBhcHBlbmRPdXRwdXQoYHNldFZp
ZXdTY2FsZSgke3RhcmdldFNjYWxlLnRvRml4ZWQoMil9KWApOworCisgICAgICAgICAgICBhd2Fp
dCBVSUhlbHBlci5zZXRWaWV3U2NhbGUodGFyZ2V0U2NhbGUpOworICAgICAgICAgICAgYXdhaXQg
UHJvbWlzZS5hbGwoW1VJSGVscGVyLmVuc3VyZVZpc2libGVDb250ZW50UmVjdFVwZGF0ZSgpLCBV
SUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKV0pOworCisgICAgICAgICAgICBhcHBl
bmRPdXRwdXQoYHdpbmRvdyBzaXplOiBbJHtpbm5lcldpZHRofSwgJHtpbm5lckhlaWdodH1dYCk7
CisgICAgICAgICAgICBhcHBlbmRPdXRwdXQoYHNxdWFyZSBzaXplOiBbJHtzcXVhcmUuY2xpZW50
V2lkdGh9LCAke3NxdWFyZS5jbGllbnRIZWlnaHR9XWApOworICAgICAgICAgICAgYXBwZW5kT3V0
cHV0KGB6b29tIHNjYWxlOiAke3BhcnNlRmxvYXQoYXdhaXQgVUlIZWxwZXIuem9vbVNjYWxlKCkp
LnRvRml4ZWQoMil9YCk7CisgICAgICAgICAgICBhcHBlbmRPdXRwdXQoIiIpOworICAgICAgICB9
CisKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorICAgIDwvc2NyaXB0
PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPGRpdiBpZD0ic3F1
YXJlIj48L2Rpdj4KKyAgICA8cHJlIGlkPSJvdXRwdXQiPjwvcHJlPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvZGV2aWNlLXdpZHRo
LXZpZXdwb3J0LWFmdGVyLWNoYW5naW5nLXZpZXctc2NhbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvZGV2aWNlLXdpZHRoLXZpZXdwb3J0LWFmdGVyLWNoYW5n
aW5nLXZpZXctc2NhbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1ZGQ0NjZiMzE0MTBjMzA1
NDY2NWEzZDYxODYyOWQxOWM0ZjIwNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L3ZpZXdwb3J0L2lvcy9kZXZpY2Utd2lkdGgtdmlld3BvcnQtYWZ0ZXItY2hhbmdpbmctdmll
dy1zY2FsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NiBAQAorc2V0Vmlld1NjYWxlKDAuNTAp
Cit3aW5kb3cgc2l6ZTogWzY0MCwgMTA5Nl0KK3NxdWFyZSBzaXplOiBbNjQsIDExMF0KK3pvb20g
c2NhbGU6IDAuNTAKKworc2V0Vmlld1NjYWxlKDAuNzUpCit3aW5kb3cgc2l6ZTogWzQyNywgNzMx
XQorc3F1YXJlIHNpemU6IFs0MywgNzNdCit6b29tIHNjYWxlOiAwLjc1CisKK3NldFZpZXdTY2Fs
ZSgxLjAwKQord2luZG93IHNpemU6IFszMjAsIDU0OF0KK3NxdWFyZSBzaXplOiBbMzIsIDU1XQor
em9vbSBzY2FsZTogMS4wMAorCitzZXRWaWV3U2NhbGUoMS4yNSkKK3dpbmRvdyBzaXplOiBbMjU2
LCA0MzhdCitzcXVhcmUgc2l6ZTogWzI2LCA0NF0KK3pvb20gc2NhbGU6IDEuMjUKKworc2V0Vmll
d1NjYWxlKDEuNTApCit3aW5kb3cgc2l6ZTogWzIxMywgMzY1XQorc3F1YXJlIHNpemU6IFsyMSwg
MzddCit6b29tIHNjYWxlOiAxLjUwCisKK3NldFZpZXdTY2FsZSgxLjI1KQord2luZG93IHNpemU6
IFsyNTYsIDQzOF0KK3NxdWFyZSBzaXplOiBbMjYsIDQ0XQorem9vbSBzY2FsZTogMS4yNQorCitz
ZXRWaWV3U2NhbGUoMS4wMCkKK3dpbmRvdyBzaXplOiBbMzIwLCA1NDhdCitzcXVhcmUgc2l6ZTog
WzMyLCA1NV0KK3pvb20gc2NhbGU6IDEuMDAKKworc2V0Vmlld1NjYWxlKDAuNzUpCit3aW5kb3cg
c2l6ZTogWzQyNywgNzMxXQorc3F1YXJlIHNpemU6IFs0MywgNzNdCit6b29tIHNjYWxlOiAwLjc1
CisKK3NldFZpZXdTY2FsZSgwLjUwKQord2luZG93IHNpemU6IFs2NDAsIDEwOTZdCitzcXVhcmUg
c2l6ZTogWzY0LCAxMTBdCit6b29tIHNjYWxlOiAwLjUwCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvZGV2aWNlLXdpZHRoLXZpZXdwb3J0LWFmdGVyLWNoYW5n
aW5nLXZpZXctc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvaW9zL2Rldmlj
ZS13aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTU5OGRlOTk4Yzk0NTM5YjVmMGVhZjJiYTEzNDY5N2U3NmZhZTI1NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvaW9zL2RldmljZS13aWR0aC12aWV3cG9y
dC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NU
WVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10
cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CisgICAgPHN0eWxlPgor
ICAgICAgICAjc3F1YXJlIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAg
ICAgICAgIHdpZHRoOiAxMHZ3OworICAgICAgICAgICAgaGVpZ2h0OiAxMHZoOworICAgICAgICAg
ICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7CisgICAgICAgIH0KKworICAgICAgICAjb3V0cHV0
IHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwor
ICAgICAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgfQorCisgICAgICAgIGJvZHkg
eworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAg
ICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
fQorCisgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgY29uc3QgYXBwZW5k
T3V0cHV0ID0gbWVzc2FnZSA9PiB7CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworICAgICAgICAgICAgb3V0cHV0LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOworICAgICAgICB9OworCisgICAg
ICAgIGZvciAobGV0IHRhcmdldFNjYWxlIG9mIFswLjUsIDAuNzUsIDEsIDEuMjUsIDEuNSwgMS4y
NSwgMSwgMC43NSwgMC41XSkgeworICAgICAgICAgICAgYXBwZW5kT3V0cHV0KGBzZXRWaWV3U2Nh
bGUoJHt0YXJnZXRTY2FsZS50b0ZpeGVkKDIpfSlgKTsKKworICAgICAgICAgICAgYXdhaXQgVUlI
ZWxwZXIuc2V0Vmlld1NjYWxlKHRhcmdldFNjYWxlKTsKKyAgICAgICAgICAgIGF3YWl0IFByb21p
c2UuYWxsKFtVSUhlbHBlci5lbnN1cmVWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUoKSwgVUlIZWxw
ZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCldKTsKKworICAgICAgICAgICAgYXBwZW5kT3V0
cHV0KGB3aW5kb3cgc2l6ZTogWyR7aW5uZXJXaWR0aH0sICR7aW5uZXJIZWlnaHR9XWApOworICAg
ICAgICAgICAgYXBwZW5kT3V0cHV0KGBzcXVhcmUgc2l6ZTogWyR7c3F1YXJlLmNsaWVudFdpZHRo
fSwgJHtzcXVhcmUuY2xpZW50SGVpZ2h0fV1gKTsKKyAgICAgICAgICAgIGFwcGVuZE91dHB1dChg
em9vbSBzY2FsZTogJHtwYXJzZUZsb2F0KGF3YWl0IFVJSGVscGVyLnpvb21TY2FsZSgpKS50b0Zp
eGVkKDIpfWApOworICAgICAgICAgICAgYXBwZW5kT3V0cHV0KCIiKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxkaXYgaWQ9InNxdWFyZSI+
PC9kaXY+CisgICAgPHByZSBpZD0ib3V0cHV0Ij48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0
cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4IGNlMTc4YjUwODBhMmM5NDZiZGVkNGIwMTI4
ZTYzOTExMDI4MWViNmQuLjA0NzlhZDU3MmFkZjVmNmQ0YWUzYTJiYjZiN2RmNjFjMTAyZjY5YWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKKysrIGIvTGF5
b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtMzM5LDQgKzMzOSwxMiBAQCB3aW5k
b3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CiAgICAgfQorCisgICAgc3RhdGljIHNldFZpZXdTY2FsZShzY2FsZSkKKyAgICB7CisgICAg
ICAgIGlmICghdGhpcy5pc1dlYktpdDIoKSkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJl
c29sdmUoKTsKKworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0ZXN0UnVu
bmVyLnJ1blVJU2NyaXB0KGB1aUNvbnRyb2xsZXIuc2V0Vmlld1NjYWxlKCR7c2NhbGV9KWAsICgp
ID0+IHJlc29sdmUoKSkpOworICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352136</attachid>
            <date>2018-10-11 22:40:28 -0700</date>
            <delta_ts>2018-10-12 13:21:24 -0700</delta_ts>
            <desc>Fix WPE/GTK builds</desc>
            <filename>bug-190504-20181011224027.patch</filename>
            <type>text/plain</type>
            <size>46944</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjlkY2FiMDkxMzA1OTE1
MDVmYjg5OTEyZmY4ZDE2YTZjMDg5NzZjOS4uY2VhNzI1MzU1MDZlMDU5OGMxNGY5N2UwZmY2NzBk
OGM0ZmE1MmQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTEwLTExICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFsbG93
IFNQSSBjbGllbnRzIHRvIGxheSBvdXQgYXQgYXJiaXRyYXJpbHkgc2NhbGVkIHNpemVzIGFuZCBz
Y2FsZSB0byBmaXQgdGhlIHZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MDUwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUxMTc3NjA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBv
cnQgaW4gVmlld3BvcnRDb25maWd1cmF0aW9uIGZvciBhcHBseWluZyBhIGxheW91dCBzaXplIHNj
YWxlIGZhY3RvciB0byB0aGUgdmlld3BvcnQuIFNlZSBiZWxvdyBmb3IKKyAgICAgICAgbW9yZSBk
ZXRhaWxzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L3ZpZXdwb3J0L2lvcy9jb25zdGFudC13aWR0
aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWwKKyAgICAgICAgICAgICAg
IGZhc3Qvdmlld3BvcnQvaW9zL2RldmljZS13aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12
aWV3LXNjYWxlLmh0bWwKKworICAgICAgICAqIHBhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6c2V0Vmlld0xheW91
dFNpemUpOgorCisgICAgICAgIFRoZSB2aWV3cG9ydCdzIGxheW91dCBzaXplIG1heSBub3cgYmUg
Y2hhbmdlZCBhbG9uZ3NpZGUgdGhlIGxheW91dCBzaXplIHNjYWxlIGZhY3Rvci4gSWYgZWl0aGVy
IG9mIHRoZXNlIHR3bworICAgICAgICB2YXJpYWJsZXMgY2hhbmdlLCB3ZSByZWNvbXB1dGUgb3Vy
IG1pbmltdW0gbGF5b3V0IHNpemUgYW5kIHZpZXdwb3J0IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVy
cy4KKworICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uOjpzaG91bGRJZ25v
cmVIb3Jpem9udGFsU2NhbGluZ0NvbnN0cmFpbnRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6bmF0aXZlV2VicGFnZVBhcmFtZXRlcnMpOgorICAgICAg
ICAoV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uOjp0ZXN0aW5nUGFyYW1ldGVycyk6Cisg
ICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246OnVwZGF0ZUNvbmZpZ3VyYXRp
b24pOgorCisgICAgICAgIE11bHRpcGx5IHRoZSBtaW5pbXVtIHNjYWxlLCBpbml0aWFsIHNjYWxl
LCBhbmQgbWF4aW11bSBzY2FsZSBieSB0aGUgbGF5b3V0IHNpemUgc2NhbGUgZmFjdG9yLiBUaGlz
IGFsbG93cyB1cyB0bworICAgICAgICBrZWVwIHRoZSBkb2N1bWVudCB3ZWxsLXByb3BvcnRpb25l
ZCB3aXRoaW4gdGhlIHZpZXdwb3J0LCB3aGlsZSBzdGlsbCBsYXlpbmcgb3V0IGF0IGEgZGlmZmVy
ZW50IGxheW91dCBzaXplLgorCisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRp
b246OnVwZGF0ZU1pbmltdW1MYXlvdXRTaXplKToKKworICAgICAgICBDb21wdXRlIHRoZSBtaW5p
bXVtIGxheW91dCBzaXplIGJ5IHNjYWxpbmcgdGhlIGRlZmF1bHQgbGF5b3V0IHNpemUgZGVyaXZl
ZCBmcm9tIG91ciB2aWV3J3Mgc2l6ZS4KKworICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRDb25m
aWd1cmF0aW9uOjpsYXlvdXRXaWR0aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9y
dENvbmZpZ3VyYXRpb246OmxheW91dEhlaWdodCBjb25zdCk6CisgICAgICAgICogcGFnZS9WaWV3
cG9ydENvbmZpZ3VyYXRpb24uaDoKKworICAgICAgICBNYWludGFpbiB0aGUgb3JpZ2luYWwgaW5p
dGlhbCBzY2FsZSwgdW5hZmZlY3RlZCBieSB0aGUgbGF5b3V0IHNpemUgc2NhbGUgZmFjdG9yLiBU
aGlzIGlzIHVzZWQgd2hlbiBjb21wdXRpbmcKKyAgICAgICAgbGF5b3V0IHdpZHRoIGFuZCBoZWln
aHQgdG8gcHJldmVudCBzY2FsaW5nIGJ5IHRoZSBsYXlvdXQgc2l6ZSBzY2FsZSBmYWN0b3IgdHdp
Y2Ugd2hlbiBjb21wdXRpbmcgbGF5b3V0IHNpemVzLgorCisgICAgICAgIChXZWJDb3JlOjpWaWV3
cG9ydENvbmZpZ3VyYXRpb246OlBhcmFtZXRlcnM6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisKIDIwMTgtMTAtMTEgIERvbiBPbG1zdGVhZCAgPGRv
bi5vbG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBBZGQgSG91ZGluaSBzcGVjcyB0byBmZWF0
dXJlcy5qc29uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU2NjEyMTRiZTMwMDUyMmM4NmRlZDhiNTFkYWFjZTI4NzZm
YTNjNWQuLjVkMDdlZGM2M2U1NDkxMWFlNzFhZDNjM2M4NDY5YzUyN2E4ZTBiZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTQgQEAKKzIwMTgtMTAtMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWxsb3cgU1BJIGNsaWVudHMgdG8gbGF5IG91
dCBhdCBhcmJpdHJhcmlseSBzY2FsZWQgc2l6ZXMgYW5kIHNjYWxlIHRvIGZpdCB0aGUgdmlldwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwNTA0Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTExNzc2MD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgX3NldFZpZXdTY2FsZTog
YW5kIF92aWV3U2NhbGUgb24gaU9TLiBXaGlsZSBzaW1pbGFyIGluIGNvbmNlcHQgdG8gbWFjT1Ms
IGNoYW5naW5nIHRoaXMgcHJvcGVydHkKKyAgICAgICAgb24gaU9TIHVzZXMgdmlld3BvcnQgY29u
ZmlndXJhdGlvbnMgdG8gY2hhbmdlIHRoZSBtaW5pbXVtIGxheW91dCBzaXplIG9mIHRoZSBkb2N1
bWVudCBhbmQgYXBwbHkgdmlldyBzY2FsaW5nLgorICAgICAgICBTZXR0aW5nIHRoZSB2aWV3IHNj
YWxlIG9uIGlPUyB0byBhIHZhbHVlIGBzYCBtdWx0aXBsaWVzIHRoZSBtaW5pbWl1bSBsYXlvdXQg
c2l6ZSBieSBhIGZhY3RvciBgMSAvIHNgLCBidXQgYWxzbworICAgICAgICBtdWx0aXBsaWVzIHRo
ZSBpbml0aWFsLCBtaW5pbXVtIGFuZCBtYXhpbXVtIHNjYWxlcyBieSBhIGZhY3RvciBvZiBgc2Au
IFRoZSBuZXQgZWZmZWN0IG9mIGFwcGx5aW5nIHRoaXMgc2NhbGUKKyAgICAgICAgY2F1c2VzIHRo
ZSBwYWdlIHRvIGxheSBvdXQgYXQgYSBsYXJnZXIgd2lkdGggYW5kIHNocmluayAob3IgYSBzbWFs
bGVyIHdpZHRoIGFuZCBleHBhbmQpIHRvIGZpdCB0aGUgdmlld3BvcnQuCisKKyAgICAgICAgKiBT
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKworICAgICAgICBTZW5kIGB2aWV3cG9ydENvbmZp
Z3VyYXRpb25MYXlvdXRTaXplU2NhbGVGYWN0b3JgIGFsb25nc2lkZSBgdmlld3BvcnRDb25maWd1
cmF0aW9uVmlld0xheW91dFNpemVgLgorCisgICAgICAgICgtW1dLV2ViVmlldyBfZGlzcGF0Y2hT
ZXRWaWV3TGF5b3V0U2l6ZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF92aWV3U2NhbGVdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRWaWV3U2NhbGU6XSk6CisKKyAgICAgICAgUHJvdmlk
ZSBhIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbiBvZiBgX3NldFZpZXdTY2FsZTpgIG9uIGlPUywg
Ynkgc2NhbGluZyB0aGUgZWZmZWN0aXZlIG1pbmltdW0gbGF5b3V0IHNpemUuCisgICAgICAgIChT
ZWUgYWJvdmUgZm9yIG1vcmUgZGV0YWlsKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorCisgICAgICAgIEFkZCBtaXNzaW5nIEFQSSBhdmFpbGFi
aWxpdHkgYW5ub3RhdGlvbnMgZm9yIHRoZSBfdmlld1NjYWxlIHByb3BlcnR5LgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bGF5b3V0U2l6ZVNjYWxlRmFj
dG9yIGNvbnN0KToKKworICAgICAgICBUaWUgdGhlIG5vdGlvbiBvZiAidmlldyBzY2FsZSIgb24g
aU9TIHRvIGBsYXlvdXRTaXplU2NhbGVGYWN0b3JgLiBBcyBpdHMgbmFtZSBzdWdnZXN0cywgdGhp
cyBpcyBhIHNjYWxlIGZhY3RvcgorICAgICAgICBieSB3aGljaCB3ZSB0cmFuc2Zvcm0gdGhlIGxh
eW91dCBzaXplLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9u
Vmlld0xheW91dFNpemUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCisgICAgICAgIFBsdW1iIHRo
ZSBsYXlvdXQgc2l6ZSBzY2FsZSBmYWN0b3Igb3ZlciB0byB0aGUgd2ViIHByb2Nlc3MsIGFsb25n
IHdpdGggdGhlIGxheW91dCBzaXplLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRWaWV3cG9ydENv
bmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZSk6CisKIDIwMTgtMTAtMTEgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIElPUyAxMiAtIFNlcnZpY2Ugd29ya2VyIGNh
Y2hlIG5vdCBzaGFyZWQgd2hlbiBhZGRlZCB0byBob21lc2NyZWVuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHAKaW5kZXggYzAzMzU3MWM2Mjk5N2QzZWU1
NWI0NmVjYTJlYmU4YmRhZGY2ZmFjYS4uMjRmYWQ2NjJhODU4MDcwMzY1NTU1ZGQyY2VmODA3MTEz
ZWYwYTZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3Vy
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9u
LmNwcApAQCAtMTE0LDExICsxMTQsMTMgQEAgYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNl
dENvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJiBjb250ZW50U2l6ZSkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNldFZpZXdMYXlvdXRTaXplKGNv
bnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUpCitib29sIFZpZXdwb3J0Q29uZmlndXJhdGlv
bjo6c2V0Vmlld0xheW91dFNpemUoY29uc3QgRmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgc3Rk
OjpvcHRpb25hbDxkb3VibGU+JiYgc2NhbGVGYWN0b3IpCiB7Ci0gICAgaWYgKG1fdmlld0xheW91
dFNpemUgPT0gdmlld0xheW91dFNpemUpCisgICAgZG91YmxlIG5ld1NjYWxlRmFjdG9yID0gc2Nh
bGVGYWN0b3IudmFsdWVfb3IobV9sYXlvdXRTaXplU2NhbGVGYWN0b3IpOworICAgIGlmIChtX3Zp
ZXdMYXlvdXRTaXplID09IHZpZXdMYXlvdXRTaXplICYmIG1fbGF5b3V0U2l6ZVNjYWxlRmFjdG9y
ID09IG5ld1NjYWxlRmFjdG9yKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBtX2xheW91
dFNpemVTY2FsZUZhY3RvciA9IG5ld1NjYWxlRmFjdG9yOwogICAgIG1fdmlld0xheW91dFNpemUg
PSB2aWV3TGF5b3V0U2l6ZTsKIAogICAgIHVwZGF0ZU1pbmltdW1MYXlvdXRTaXplKCk7CkBAIC0x
OTEsNyArMTkzLDcgQEAgYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNob3VsZElnbm9yZUhv
cml6b250YWxTY2FsaW5nQ29uc3RyYWludHMoKSBjb25zdAogICAgIGlmIChtX3ZpZXdwb3J0QXJn
dW1lbnRzLndpZHRoID09IFZpZXdwb3J0QXJndW1lbnRzOjpWYWx1ZURldmljZVdpZHRoKQogICAg
ICAgICByZXR1cm4gbGFpZE91dFdpZGVyVGhhblZpZXdwb3J0OwogCi0gICAgaWYgKG1fY29uZmln
dXJhdGlvbi5pbml0aWFsU2NhbGVJc1NldCAmJiBtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxl
ID09IDEpCisgICAgaWYgKG1fY29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGVJc1NldCAmJiBtX2Nv
bmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlSWdub3JpbmdMYXlvdXRTY2FsZUZhY3RvciA9PSAxKQog
ICAgICAgICByZXR1cm4gbGFpZE91dFdpZGVyVGhhblZpZXdwb3J0OwogCiAgICAgcmV0dXJuIGZh
bHNlOwpAQCAtMjk5LDYgKzMwMSw3IEBAIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6UGFyYW1ldGVy
cyBWaWV3cG9ydENvbmZpZ3VyYXRpb246Om5hdGl2ZVdlYnBhZ2VQYXJhbWV0ZXJzCiAgICAgcGFy
YW1ldGVycy5taW5pbXVtU2NhbGUgPSAxOwogICAgIHBhcmFtZXRlcnMubWF4aW11bVNjYWxlID0g
NTsKICAgICBwYXJhbWV0ZXJzLmluaXRpYWxTY2FsZSA9IDE7CisgICAgcGFyYW1ldGVycy5pbml0
aWFsU2NhbGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yID0gMTsKICAgICBwYXJhbWV0ZXJzLmlu
aXRpYWxTY2FsZUlzU2V0ID0gdHJ1ZTsKICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KQEAgLTM1
Nyw2ICszNjAsNyBAQCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OlBhcmFtZXRlcnMgVmlld3BvcnRD
b25maWd1cmF0aW9uOjp0ZXN0aW5nUGFyYW1ldGVycygpCiB7CiAgICAgUGFyYW1ldGVycyBwYXJh
bWV0ZXJzOwogICAgIHBhcmFtZXRlcnMuaW5pdGlhbFNjYWxlID0gMTsKKyAgICBwYXJhbWV0ZXJz
LmluaXRpYWxTY2FsZUlnbm9yaW5nTGF5b3V0U2NhbGVGYWN0b3IgPSAxOwogICAgIHBhcmFtZXRl
cnMuaW5pdGlhbFNjYWxlSXNTZXQgPSB0cnVlOwogICAgIHBhcmFtZXRlcnMuYWxsb3dzU2hyaW5r
VG9GaXQgPSB0cnVlOwogICAgIHBhcmFtZXRlcnMubWluaW11bVNjYWxlID0gMTsKQEAgLTQyNiwx
OSArNDMwLDIzIEBAIHZvaWQgVmlld3BvcnRDb25maWd1cmF0aW9uOjp1cGRhdGVDb25maWd1cmF0
aW9uKCkKICAgICAgICAgbV9jb25maWd1cmF0aW9uLmFsbG93c1Nocmlua1RvRml0ID0gbV92aWV3
cG9ydEFyZ3VtZW50cy5zaHJpbmtUb0ZpdCAhPSAwLjsKIAogICAgIG1fY29uZmlndXJhdGlvbi5h
dm9pZHNVbnNhZmVBcmVhID0gbV92aWV3cG9ydEFyZ3VtZW50cy52aWV3cG9ydEZpdCAhPSBWaWV3
cG9ydEZpdDo6Q292ZXI7CisgICAgbV9jb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZUlnbm9yaW5n
TGF5b3V0U2NhbGVGYWN0b3IgPSBtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlOworICAgIG1f
Y29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUgKj0gbV9sYXlvdXRTaXplU2NhbGVGYWN0b3I7Cisg
ICAgbV9jb25maWd1cmF0aW9uLm1pbmltdW1TY2FsZSAqPSBtX2xheW91dFNpemVTY2FsZUZhY3Rv
cjsKKyAgICBtX2NvbmZpZ3VyYXRpb24ubWF4aW11bVNjYWxlICo9IG1fbGF5b3V0U2l6ZVNjYWxl
RmFjdG9yOwogCiAgICAgTE9HX1dJVEhfU1RSRUFNKFZpZXdwb3J0cywgc3RyZWFtIDw8ICJWaWV3
cG9ydENvbmZpZ3VyYXRpb24gIiA8PCB0aGlzIDw8ICIgdXBkYXRlQ29uZmlndXJhdGlvbiAiIDw8
ICp0aGlzIDw8ICIgZ2l2ZXMgaW5pdGlhbCBzY2FsZSAiIDw8IGluaXRpYWxTY2FsZSgpIDw8ICIg
YmFzZWQgb24gY29udGVudFNpemUgIiA8PCBtX2NvbnRlbnRTaXplIDw8ICIgYW5kIGxheW91dCBz
aXplICIgPDwgbGF5b3V0V2lkdGgoKSA8PCAieCIgPDwgbGF5b3V0SGVpZ2h0KCkpOwogfQogCiB2
b2lkIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6dXBkYXRlTWluaW11bUxheW91dFNpemUoKQogewot
ICAgIGlmICghc2hvdWxkT3ZlcnJpZGVEZXZpY2VXaWR0aEFuZFNocmlua1RvRml0KCkpIHsKLSAg
ICAgICAgbV9taW5pbXVtTGF5b3V0U2l6ZSA9IG1fdmlld0xheW91dFNpemU7CisgICAgbV9taW5p
bXVtTGF5b3V0U2l6ZSA9IG1fdmlld0xheW91dFNpemUgLyBtX2xheW91dFNpemVTY2FsZUZhY3Rv
cjsKKworICAgIGlmICghc2hvdWxkT3ZlcnJpZGVEZXZpY2VXaWR0aEFuZFNocmlua1RvRml0KCkp
CiAgICAgICAgIHJldHVybjsKLSAgICB9CiAKICAgICBmbG9hdCBtaW5EZXZpY2VXaWR0aCA9IHBs
YXRmb3JtRGV2aWNlV2lkdGhPdmVycmlkZSgpOwotICAgIG1fbWluaW11bUxheW91dFNpemUgPSBG
bG9hdFNpemUobWluRGV2aWNlV2lkdGgsIHN0ZDo6cm91bmRmKG1fdmlld0xheW91dFNpemUuaGVp
Z2h0KCkgKiAobWluRGV2aWNlV2lkdGggLyBtX3ZpZXdMYXlvdXRTaXplLndpZHRoKCkpKSk7Cisg
ICAgbV9taW5pbXVtTGF5b3V0U2l6ZSA9IEZsb2F0U2l6ZShtaW5EZXZpY2VXaWR0aCwgc3RkOjpy
b3VuZGYobV9taW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQoKSAqIChtaW5EZXZpY2VXaWR0aCAvIG1f
bWluaW11bUxheW91dFNpemUud2lkdGgoKSkpKTsKIH0KIAogZG91YmxlIFZpZXdwb3J0Q29uZmln
dXJhdGlvbjo6dmlld3BvcnRBcmd1bWVudHNMZW5ndGgoZG91YmxlIGxlbmd0aCkgY29uc3QKQEAg
LTQ2OSwxNyArNDc3LDE3IEBAIGludCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OmxheW91dFdpZHRo
KCkgY29uc3QKICAgICAgICAgfQogCiAgICAgICAgIC8vIElmIG5vdCwgbWFrZSBzdXJlIHRoZSB2
aWV3cG9ydCB3aWR0aCBhbmQgaW5pdGlhbCBzY2FsZSBjYW4gY28tZXhpc3QuCi0gICAgICAgIGRv
dWJsZSBpbml0aWFsQ29udGVudFdpZHRoSW5WaWV3cG9ydENvb3JkaW5hdGUgPSBtX2NvbmZpZ3Vy
YXRpb24ud2lkdGggKiBtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlOworICAgICAgICBkb3Vi
bGUgaW5pdGlhbENvbnRlbnRXaWR0aEluVmlld3BvcnRDb29yZGluYXRlID0gbV9jb25maWd1cmF0
aW9uLndpZHRoICogbV9jb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZUlnbm9yaW5nTGF5b3V0U2Nh
bGVGYWN0b3I7CiAgICAgICAgIGlmIChpbml0aWFsQ29udGVudFdpZHRoSW5WaWV3cG9ydENvb3Jk
aW5hdGUgPCBtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpKSB7CiAgICAgICAgICAgICAvLyBUaGUg
c3BlY2lmaWVkIHdpZHRoIGRvZXMgbm90IGZpdCBpbiB2aWV3cG9ydC4gUmV0dXJuIHRoZSBtaW5p
bXVtIHdpZHRoIHRoYXQgc2F0aXNmeSB0aGUgaW5pdGlhbFNjYWxlIGNvbnN0cmFpbnQuCi0gICAg
ICAgICAgICByZXR1cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8gbV9j
b25maWd1cmF0aW9uLmluaXRpYWxTY2FsZSk7CisgICAgICAgICAgICByZXR1cm4gc3RkOjpyb3Vu
ZChtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8gbV9jb25maWd1cmF0aW9uLmluaXRpYWxTY2Fs
ZUlnbm9yaW5nTGF5b3V0U2NhbGVGYWN0b3IpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBz
dGQ6OnJvdW5kKG1fY29uZmlndXJhdGlvbi53aWR0aCk7CiAgICAgfQogCiAgICAgLy8gSWYgdGhl
IHBhZ2UgaGFzIGEgcmVhbCBzY2FsZSwgdGhlbiBqdXN0IHJldHVybiB0aGUgbWluaW11bSBzaXpl
IG92ZXIgdGhlIGluaXRpYWwgc2NhbGUuCiAgICAgaWYgKG1fY29uZmlndXJhdGlvbi5pbml0aWFs
U2NhbGVJc1NldCAmJiAhbV9jb25maWd1cmF0aW9uLmhlaWdodElzU2V0KQotICAgICAgICByZXR1
cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8gbV9jb25maWd1cmF0aW9u
LmluaXRpYWxTY2FsZSk7CisgICAgICAgIHJldHVybiBzdGQ6OnJvdW5kKG1pbmltdW1MYXlvdXRT
aXplLndpZHRoKCkgLyBtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlSWdub3JpbmdMYXlvdXRT
Y2FsZUZhY3Rvcik7CiAKICAgICBpZiAobWluaW11bUxheW91dFNpemUuaGVpZ2h0KCkgPiAwKQog
ICAgICAgICByZXR1cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpICogbGF5
b3V0SGVpZ2h0KCkgLyBtaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQoKSk7CkBAIC01MDUsMTcgKzUx
MywxNyBAQCBpbnQgVmlld3BvcnRDb25maWd1cmF0aW9uOjpsYXlvdXRIZWlnaHQoKSBjb25zdAog
ICAgICAgICB9CiAKICAgICAgICAgLy8gSWYgbm90LCBtYWtlIHN1cmUgdGhlIHZpZXdwb3J0IHdp
ZHRoIGFuZCBpbml0aWFsIHNjYWxlIGNhbiBjby1leGlzdC4KLSAgICAgICAgZG91YmxlIGluaXRp
YWxDb250ZW50SGVpZ2h0SW5WaWV3cG9ydENvb3JkaW5hdGUgPSBtX2NvbmZpZ3VyYXRpb24uaGVp
Z2h0ICogbV9jb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZTsKKyAgICAgICAgZG91YmxlIGluaXRp
YWxDb250ZW50SGVpZ2h0SW5WaWV3cG9ydENvb3JkaW5hdGUgPSBtX2NvbmZpZ3VyYXRpb24uaGVp
Z2h0ICogbV9jb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZUlnbm9yaW5nTGF5b3V0U2NhbGVGYWN0
b3I7CiAgICAgICAgIGlmIChpbml0aWFsQ29udGVudEhlaWdodEluVmlld3BvcnRDb29yZGluYXRl
IDwgbWluaW11bUxheW91dFNpemUuaGVpZ2h0KCkpIHsKICAgICAgICAgICAgIC8vIFRoZSBzcGVj
aWZpZWQgd2lkdGggZG9lcyBub3QgZml0IGluIHZpZXdwb3J0LiBSZXR1cm4gdGhlIG1pbmltdW0g
aGVpZ2h0IHRoYXQgc2F0aXNmeSB0aGUgaW5pdGlhbFNjYWxlIGNvbnN0cmFpbnQuCi0gICAgICAg
ICAgICByZXR1cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQoKSAvIG1fY29u
ZmlndXJhdGlvbi5pbml0aWFsU2NhbGUpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQo
bWluaW11bUxheW91dFNpemUuaGVpZ2h0KCkgLyBtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxl
SWdub3JpbmdMYXlvdXRTY2FsZUZhY3Rvcik7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHN0
ZDo6cm91bmQobV9jb25maWd1cmF0aW9uLmhlaWdodCk7CiAgICAgfQogCiAgICAgLy8gSWYgdGhl
IHBhZ2UgaGFzIGEgcmVhbCBzY2FsZSwgdGhlbiBqdXN0IHJldHVybiB0aGUgbWluaW11bSBzaXpl
IG92ZXIgdGhlIGluaXRpYWwgc2NhbGUuCiAgICAgaWYgKG1fY29uZmlndXJhdGlvbi5pbml0aWFs
U2NhbGVJc1NldCAmJiAhbV9jb25maWd1cmF0aW9uLndpZHRoSXNTZXQpCi0gICAgICAgIHJldHVy
biBzdGQ6OnJvdW5kKG1pbmltdW1MYXlvdXRTaXplLmhlaWdodCgpIC8gbV9jb25maWd1cmF0aW9u
LmluaXRpYWxTY2FsZSk7CisgICAgICAgIHJldHVybiBzdGQ6OnJvdW5kKG1pbmltdW1MYXlvdXRT
aXplLmhlaWdodCgpIC8gbV9jb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZUlnbm9yaW5nTGF5b3V0
U2NhbGVGYWN0b3IpOwogCiAgICAgaWYgKG1pbmltdW1MYXlvdXRTaXplLndpZHRoKCkgPiAwKQog
ICAgICAgICByZXR1cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQoKSAqIGxh
eW91dFdpZHRoKCkgLyBtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpKTsKQEAgLTUzOCw2ICs1NDYs
NyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBWaWV3cG9y
dENvbmZpZ3VyYXRpb246OlBhcmFtZXRlcnMmCiAgICAgdHMgPDwgImluaXRpYWxTY2FsZSAiIDw8
IHBhcmFtZXRlcnMuaW5pdGlhbFNjYWxlIDw8ICIsIHNldDogIiA8PCAocGFyYW1ldGVycy5pbml0
aWFsU2NhbGVJc1NldCA/ICJ0cnVlIiA6ICJmYWxzZSIpOwogICAgIHRzLmVuZEdyb3VwKCk7CiAK
KyAgICB0cy5kdW1wUHJvcGVydHkoImluaXRpYWxTY2FsZUlnbm9yaW5nTGF5b3V0U2NhbGVGYWN0
b3IiLCBwYXJhbWV0ZXJzLmluaXRpYWxTY2FsZUlnbm9yaW5nTGF5b3V0U2NhbGVGYWN0b3IpOwog
ICAgIHRzLmR1bXBQcm9wZXJ0eSgibWluaW11bVNjYWxlIiwgcGFyYW1ldGVycy5taW5pbXVtU2Nh
bGUpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgibWF4aW11bVNjYWxlIiwgcGFyYW1ldGVycy5tYXhp
bXVtU2NhbGUpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgiYWxsb3dzVXNlclNjYWxpbmciLCBwYXJh
bWV0ZXJzLmFsbG93c1VzZXJTY2FsaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0
Q29uZmlndXJhdGlvbi5oCmluZGV4IDNmYTZjZGI3ODBmNjY3MGI5OTE4ZDY5ODEzMTQ3MjBkOWRl
MjljZWIuLjkxYTliYTE1YzA5OWU3ZjZhODcyYjc3ZjAzMjhmZGMyZTBjOWE3MzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uaApAQCAtNDksNiArNDksNyBA
QCBwdWJsaWM6CiAgICAgICAgIGRvdWJsZSB3aWR0aCB7IDAgfTsKICAgICAgICAgZG91YmxlIGhl
aWdodCB7IDAgfTsKICAgICAgICAgZG91YmxlIGluaXRpYWxTY2FsZSB7IDAgfTsKKyAgICAgICAg
ZG91YmxlIGluaXRpYWxTY2FsZUlnbm9yaW5nTGF5b3V0U2NhbGVGYWN0b3IgeyAwIH07CiAgICAg
ICAgIGRvdWJsZSBtaW5pbXVtU2NhbGUgeyAwIH07CiAgICAgICAgIGRvdWJsZSBtYXhpbXVtU2Nh
bGUgeyAwIH07CiAgICAgICAgIGJvb2wgYWxsb3dzVXNlclNjYWxpbmcgeyBmYWxzZSB9OwpAQCAt
NjIsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBQYXJh
bWV0ZXJzJiBvdGhlcikgY29uc3QKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIHdpZHRo
ID09IG90aGVyLndpZHRoICYmIGhlaWdodCA9PSBvdGhlci5oZWlnaHQKLSAgICAgICAgICAgICAg
ICAmJiBpbml0aWFsU2NhbGUgPT0gb3RoZXIuaW5pdGlhbFNjYWxlICYmIG1pbmltdW1TY2FsZSA9
PSBvdGhlci5taW5pbXVtU2NhbGUgJiYgbWF4aW11bVNjYWxlID09IG90aGVyLm1heGltdW1TY2Fs
ZQorICAgICAgICAgICAgICAgICYmIGluaXRpYWxTY2FsZSA9PSBvdGhlci5pbml0aWFsU2NhbGUg
JiYgaW5pdGlhbFNjYWxlSWdub3JpbmdMYXlvdXRTY2FsZUZhY3RvciA9PSBvdGhlci5pbml0aWFs
U2NhbGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yICYmIG1pbmltdW1TY2FsZSA9PSBvdGhlci5t
aW5pbXVtU2NhbGUgJiYgbWF4aW11bVNjYWxlID09IG90aGVyLm1heGltdW1TY2FsZQogICAgICAg
ICAgICAgICAgICYmIGFsbG93c1VzZXJTY2FsaW5nID09IG90aGVyLmFsbG93c1VzZXJTY2FsaW5n
ICYmIGFsbG93c1Nocmlua1RvRml0ID09IG90aGVyLmFsbG93c1Nocmlua1RvRml0ICYmIGF2b2lk
c1Vuc2FmZUFyZWEgPT0gb3RoZXIuYXZvaWRzVW5zYWZlQXJlYQogICAgICAgICAgICAgICAgICYm
IHdpZHRoSXNTZXQgPT0gb3RoZXIud2lkdGhJc1NldCAmJiBoZWlnaHRJc1NldCA9PSBvdGhlci5o
ZWlnaHRJc1NldCAmJiBpbml0aWFsU2NhbGVJc1NldCA9PSBvdGhlci5pbml0aWFsU2NhbGVJc1Nl
dDsKICAgICAgICAgfQpAQCAtNzksNyArODAsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgRmxvYXRT
aXplJiB2aWV3TGF5b3V0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld0xheW91dFNpemU7IH0K
IAogICAgIGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUoKSBjb25zdCB7IHJldHVy
biBtX21pbmltdW1MYXlvdXRTaXplOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRWaWV3
TGF5b3V0U2l6ZShjb25zdCBGbG9hdFNpemUmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNl
dFZpZXdMYXlvdXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiYm
IHNjYWxlRmFjdG9yID0gc3RkOjpudWxsb3B0KTsKIAogICAgIGNvbnN0IE9wdGlvblNldDxEaXNh
YmxlZEFkYXB0YXRpb25zPiYgZGlzYWJsZWRBZGFwdGF0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1f
ZGlzYWJsZWRBZGFwdGF0aW9uczsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0RGlzYWJs
ZWRBZGFwdGF0aW9ucyhjb25zdCBPcHRpb25TZXQ8RGlzYWJsZWRBZGFwdGF0aW9ucz4mKTsKQEAg
LTEzNyw2ICsxMzgsNyBAQCBwcml2YXRlOgogICAgIFZpZXdwb3J0QXJndW1lbnRzIG1fdmlld3Bv
cnRBcmd1bWVudHM7CiAgICAgT3B0aW9uU2V0PERpc2FibGVkQWRhcHRhdGlvbnM+IG1fZGlzYWJs
ZWRBZGFwdGF0aW9uczsKIAorICAgIGRvdWJsZSBtX2xheW91dFNpemVTY2FsZUZhY3RvciB7IDEg
fTsKICAgICBib29sIG1fY2FuSWdub3JlU2NhbGluZ0NvbnN0cmFpbnRzOwogICAgIGJvb2wgbV9m
b3JjZUFsd2F5c1VzZXJTY2FsYWJsZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGIxZmI0ZTUxNDZmNjlmNTU4ODRi
MmU0MzA3NTU5ZTdhMDczMWY4MWYuLmZmYzhjODY2OTkyYzEwMDA3NjQ3N2RjYmIzOGZhYjBmYzZl
MjcwNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuY3BwCkBAIC05MCw2ICs5MCw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8
IHRleHRBdXRvc2l6aW5nV2lkdGg7CiAgICAgZW5jb2RlciA8PCBpZ25vcmVzVmlld3BvcnRTY2Fs
ZUxpbWl0czsKICAgICBlbmNvZGVyIDw8IHZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRT
aXplOworICAgIGVuY29kZXIgPDwgdmlld3BvcnRDb25maWd1cmF0aW9uTGF5b3V0U2l6ZVNjYWxl
RmFjdG9yOwogICAgIGVuY29kZXIgPDwgdmlld3BvcnRDb25maWd1cmF0aW9uVmlld1NpemU7CiAg
ICAgZW5jb2RlciA8PCBtYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAjZW5kaWYKQEAgLTI1Nyw2ICsy
NTgsOCBAQCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OgogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3Vy
YXRpb25WaWV3TGF5b3V0U2l6ZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvbkxheW91
dFNpemVTY2FsZUZhY3RvcikpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdTaXpl
KSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMubWF4aW11bVVub2JzY3VyZWRTaXplKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBkYjRjMDdmMDdjODY2NDNj
NjVmNmEwODg3ZmQ4OWIyMzVjMDg5NzI2Li44ZDlmZDhhZTNkNzZjY2FkY2U2MDRmMDJmYzZjZTQ4
N2U4Mzc1MjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycy5oCkBAIC0xNDcsNiArMTQ3LDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMgewogICAgIGZsb2F0IHRleHRBdXRvc2l6aW5nV2lkdGg7CiAgICAgYm9vbCBpZ25v
cmVzVmlld3BvcnRTY2FsZUxpbWl0czsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgdmlld3BvcnRD
b25maWd1cmF0aW9uVmlld0xheW91dFNpemU7CisgICAgZG91YmxlIHZpZXdwb3J0Q29uZmlndXJh
dGlvbkxheW91dFNpemVTY2FsZUZhY3RvcjsKICAgICBXZWJDb3JlOjpGbG9hdFNpemUgdmlld3Bv
cnRDb25maWd1cmF0aW9uVmlld1NpemU7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1heGltdW1V
bm9ic2N1cmVkU2l6ZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KaW5kZXggZTY1MzJkNDc5MTk0YjlkYjRmMWIxNjQwOWZiM2NjMTUx
OTNiNzgwZS4uYWE2N2FlZjI5NTdmMmFmNjE5OTkwMzA2NmE1NzNmYmU0MjQyMTg5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0yNjQw
LDcgKzI2NDAsNyBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5Db250ZW50
T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgogICAgICAgICByZXR1cm47CiAK
ICAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIi1bV0tXZWJWaWV3
ICIgPDwgX3BhZ2UtPnBhZ2VJRCgpIDw8ICIgX2Rpc3BhdGNoU2V0Vmlld0xheW91dFNpemU6XSAi
IDw8IHZpZXdMYXlvdXRTaXplIDw8ICIgY29udGVudFpvb21TY2FsZSAiIDw8IGNvbnRlbnRab29t
U2NhbGUoc2VsZikpOwotICAgIF9wYWdlLT5zZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5
b3V0U2l6ZSh2aWV3TGF5b3V0U2l6ZSk7CisgICAgX3BhZ2UtPnNldFZpZXdwb3J0Q29uZmlndXJh
dGlvblZpZXdMYXlvdXRTaXplKHZpZXdMYXlvdXRTaXplLCBfcGFnZS0+bGF5b3V0U2l6ZVNjYWxl
RmFjdG9yKCkpOwogICAgIF9sYXN0U2VudFZpZXdMYXlvdXRTaXplID0gdmlld0xheW91dFNpemU7
CiB9CiAKQEAgLTUxNTAsNyArNTE1MCwxMSBAQCBzdGF0aWMgaW5saW5lIFdlYktpdDo6RmluZE9w
dGlvbnMgdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0ZpbmRPcHRpb25zKQogCiAtIChD
R0Zsb2F0KV92aWV3U2NhbGUKIHsKKyNpZiBQTEFURk9STShNQUMpCiAgICAgcmV0dXJuIF9wYWdl
LT52aWV3U2NhbGVGYWN0b3IoKTsKKyNlbHNlCisgICAgcmV0dXJuIF9wYWdlLT5sYXlvdXRTaXpl
U2NhbGVGYWN0b3IoKTsKKyNlbmRpZgogfQogCiAtICh2b2lkKV9zZXRWaWV3U2NhbGU6KENHRmxv
YXQpdmlld1NjYWxlCkBAIC01MTYxLDcgKzUxNjUsMTAgQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6
OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykK
ICAgICBpZiAodmlld1NjYWxlIDw9IDAgfHwgaXNuYW4odmlld1NjYWxlKSB8fCBpc2luZih2aWV3
U2NhbGUpKQogICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNl
cHRpb24gZm9ybWF0OkAiVmlldyBzY2FsZSBzaG91bGQgYmUgYSBwb3NpdGl2ZSBudW1iZXIiXTsK
IAotICAgIF9wYWdlLT5zY2FsZVZpZXcodmlld1NjYWxlKTsKKyAgICBpZiAoX3BhZ2UtPmxheW91
dFNpemVTY2FsZUZhY3RvcigpID09IHZpZXdTY2FsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
X3BhZ2UtPnNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKFtzZWxmIGFjdGl2
ZVZpZXdMYXlvdXRTaXplOnNlbGYuYm91bmRzXSwgdmlld1NjYWxlKTsKICNlbmRpZgogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaAppbmRleCA3YTRhM2IyNDMwYjgwYzUyZWQ1NTU0MGU4ZjZiZmY1OGMyYjU2MzA0Li40OTY3
MzE2MmYwNzc2ZTY5MGY1OWI0NmNkZTQ2ZTJlMTdhZjI1YmUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTE3Nyw3
ICsxNzcsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLUmVjdEVkZ2UpIHsK
IAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0czopIENHU2l6ZSBfdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAKLUBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFZpZXdTY2FsZTopIENHRmxvYXQgX3ZpZXdTY2FsZTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFZpZXdTY2FsZTopIENHRmxvYXQgX3ZpZXdTY2Fs
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMSksIGlvcyg5LjApKTsKIAogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0QmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlOikgQk9P
TCBfYmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzLjQpLCBpb3MoOC4wKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCmluZGV4IGVhY2FmNDhhNjllYjIxYjgzMGVmNWRjNDY3NzY2ODhkNGMxOGU3MTMuLmY5ZTg4
MmMzMWFmY2Y2YTRmNmU0MWY0MTFmZWI0MzY0N2Q3NDEyZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjMzOSw2ICs2MzM5LDcgQEAgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycygpCiAgICAgcGFy
YW1ldGVycy5taW1lVHlwZXNXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVycyA9IHBhZ2VDbGllbnQo
KS5taW1lVHlwZXNXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVycygpOwogICAgIHBhcmFtZXRlcnMu
aWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMgPSBtX2ZvcmNlQWx3YXlzVXNlclNjYWxhYmxlOwog
ICAgIHBhcmFtZXRlcnMudmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUgPSBtX3Zp
ZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplOworICAgIHBhcmFtZXRlcnMudmlld3Bv
cnRDb25maWd1cmF0aW9uTGF5b3V0U2l6ZVNjYWxlRmFjdG9yID0gbV92aWV3cG9ydENvbmZpZ3Vy
YXRpb25MYXlvdXRTaXplU2NhbGVGYWN0b3I7CiAgICAgcGFyYW1ldGVycy5tYXhpbXVtVW5vYnNj
dXJlZFNpemUgPSBtX21heGltdW1Vbm9ic2N1cmVkU2l6ZTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDkyYTQzZDYyNGM1NTlkZTY1MDQyNGVlYmZh
MDU4OTkxOWYzOWM2NTguLjY0ZmUxNzY4YTU0MDEyMGJhYzliMGI0MWZjMTQ1ZWNiYjdlZDhkNzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01ODUsNyArNTg1LDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgbWF4aW11bVVub2JzY3VyZWRTaXplLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdl
dEV4cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9i
c2N1cmVkUmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRVbm9ic2N1cmVkUmVj
dEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYg
dW5vYnNjdXJlZFNhZmVBcmVhSW5zZXRzLCBkb3VibGUgdGFyZ2V0U2NhbGUsIGludDMyX3QgZGV2
aWNlT3JpZW50YXRpb24sIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7CiAKLSAgICB2b2lk
IHNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYpOworICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNp
emUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgZG91YmxlIHNjYWxlRmFjdG9yKTsKICAgICB2
b2lkIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsK
ICAgICB2b2lkIHNldERldmljZU9yaWVudGF0aW9uKGludDMyX3QpOwogICAgIGludDMyX3QgZGV2
aWNlT3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX2RldmljZU9yaWVudGF0aW9uOyB9CkBA
IC02MzcsNiArNjM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgaGFuZGxlVHdvRmluZ2VyVGFwQXRQ
b2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIHVpbnQ2NF90IHJlcXVlc3RJRCk7CiAgICAg
dm9pZCBzZXRGb3JjZUFsd2F5c1VzZXJTY2FsYWJsZShib29sKTsKICAgICBib29sIGZvcmNlQWx3
YXlzVXNlclNjYWxhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9mb3JjZUFsd2F5c1VzZXJTY2FsYWJs
ZTsgfQorICAgIGRvdWJsZSBsYXlvdXRTaXplU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBt
X3ZpZXdwb3J0Q29uZmlndXJhdGlvbkxheW91dFNpemVTY2FsZUZhY3RvcjsgfQogICAgIHZvaWQg
c2V0SXNTY3JvbGxpbmdPclpvb21pbmcoYm9vbCk7CiAgICAgdm9pZCByZXF1ZXN0UmVjdHNGb3JH
cmFudWxhcml0eVdpdGhTZWxlY3Rpb25PZmZzZXQoV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCB1
aW50MzJfdCBvZmZzZXQsIFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6
U2VsZWN0aW9uUmVjdD4mLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CiAgICAgdm9pZCByZXF1
ZXN0UmVjdHNBdFNlbGVjdGlvbk9mZnNldFdpdGhUZXh0KGludDMyX3Qgb2Zmc2V0LCBjb25zdCBT
dHJpbmcmLCBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlbGVjdGlv
blJlY3Q+JiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOwpAQCAtMjIyOSw2ICsyMjMwLDcgQEAg
cHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Tm9kZUFzc2lzdGFuY2VBcmd1bWVudHM+IG1f
ZGVmZXJyZWROb2RlQXNzaXN0YW5jZUFyZ3VtZW50czsKICAgICBib29sIG1fZm9yY2VBbHdheXNV
c2VyU2NhbGFibGUgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBtX3ZpZXdwb3J0
Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplOworICAgIGRvdWJsZSBtX3ZpZXdwb3J0Q29uZmln
dXJhdGlvbkxheW91dFNpemVTY2FsZUZhY3RvciB7IDEgfTsKICAgICBXZWJDb3JlOjpGbG9hdFNp
emUgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMzk0YTU2NTI1M2I2OThhNDY4
NDA0Yzk1YTViYTY3ODlkYzY0MzA2Zi4uMTk2YWNjMjU0YjMwOGViNDRlMGQwYTY0ZTRkYTk0Mzkz
NWFlZjNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCkBAIC0zMTgsMTIgKzMxOCwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjbwogICAg
ICAgICB0YXJnZXRTY2FsZSwgZGV2aWNlT3JpZW50YXRpb24sIGR5bmFtaWNWaWV3cG9ydFNpemVV
cGRhdGVJRCksIG1fcGFnZUlEKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdwb3J0
Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6
ZSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0
U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHNpemUsIGRvdWJsZSBzY2FsZUZhY3RvcikK
IHsKICAgICBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplID0gc2l6ZTsKKyAg
ICBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbkxheW91dFNpemVTY2FsZUZhY3RvciA9IHNjYWxlRmFj
dG9yOwogCiAgICAgaWYgKGlzVmFsaWQoKSkKLSAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpTZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShzaXpl
KSwgbV9wYWdlSUQpOworICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OlNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKHNpemUsIHNjYWxlRmFjdG9y
KSwgbV9wYWdlSUQpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Rm9yY2VBbHdheXNVc2Vy
U2NhbGFibGUoYm9vbCB1c2VyU2NhbGFibGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGE0ZTQ2Y2I2MjBlMjgxZGUwYmRhODA0ZGQyNDZiODlj
Y2YwMTgwZmUuLmYwMTA1OWJlY2RlZTI3NjBjY2M1NDM5NjUxMWJiZTliZjZlZWUyMGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MjMsNyAr
NjIzLDcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCi0g
ICAgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUocGFyYW1ldGVycy52aWV3
cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZSk7CisgICAgc2V0Vmlld3BvcnRDb25maWd1
cmF0aW9uVmlld0xheW91dFNpemUocGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3
TGF5b3V0U2l6ZSwgcGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25MYXlvdXRTaXplU2Nh
bGVGYWN0b3IpOwogICAgIHNldE1heGltdW1Vbm9ic2N1cmVkU2l6ZShwYXJhbWV0ZXJzLm1heGlt
dW1Vbm9ic2N1cmVkU2l6ZSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBkMDFjOWFlOTgxZWU1NTRiN2JiNjBkODMxYWVlY2IwOTgw
OTdlZjFhLi4xNmY2ZmQzZmI5NzRlOGFlODQ5YTE5MzUzYzlhODg3MDQ4NzVlZjIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC04OTMsNyArODkzLDcg
QEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlVmlzaWJpbGl0eVN0YXRlKGJvb2wgaXNJbml0aWFs
U3RhdGUgPSBmYWxzZSk7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgdm9pZCBzZXRWaWV3cG9y
dENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsK
KyAgICB2b2lkIHNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYsIGRvdWJsZSBzY2FsZUZhY3Rvcik7CiAgICAgdm9pZCBzZXRNYXhp
bXVtVW5vYnNjdXJlZFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAgICAgdm9pZCBz
ZXREZXZpY2VPcmllbnRhdGlvbihpbnQzMl90KTsKICAgICB2b2lkIHNldE92ZXJyaWRlVmlld3Bv
cnRBcmd1bWVudHMoY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50
cz4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCmluZGV4IGEwYTE0ZWYyZGJlMGNlZDZlZTMwODllYTMzNmMyNmRmMDg4NmMx
MmIuLmY2ODgyOTI5OWI5YzVmNmE5OWNiZmJjZTg0YmVkMGIzZjE3YmJlNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpA
QCAtNDUsNyArNDUsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBLZXlFdmVudChXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgZXZlbnQpCiAgICAgTW91c2VFdmVu
dChXZWJLaXQ6OldlYk1vdXNlRXZlbnQgZXZlbnQpCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIFNl
dFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZSBz
aXplKQorICAgIFNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKFdlYkNvcmU6
OkZsb2F0U2l6ZSBzaXplLCBkb3VibGUgc2NhbGVGYWN0b3IpCiAgICAgU2V0TWF4aW11bVVub2Jz
Y3VyZWRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZSBzaXplKQogICAgIFNldERldmljZU9yaWVudGF0
aW9uKGludDMyX3QgZGV2aWNlT3JpZW50YXRpb24pCiAgICAgU2V0T3ZlcnJpZGVWaWV3cG9ydEFy
Z3VtZW50cyhzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiBhcmd1bWVu
dHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCmluZGV4IDRiMDgyY2I3YTMwNTJhNzE5MDRjMWMyNTFlOTVlNDhlNjU1MDM5NGYuLmFi
ODFmZGRiNDAyMWU3N2UwNjBiMTgzMWQwMTRjZGY4MzI4OWZhNWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0yNTE4LDEw
ICsyNTE4LDEwIEBAIHZvaWQgV2ViUGFnZTo6YXV0b2ZpbGxMb2dpbkNyZWRlbnRpYWxzKGNvbnN0
IFN0cmluZyYgdXNlcm5hbWUsIGNvbnN0IFN0cmluZyYgcGFzCiAgICAgfQogfQogCi12b2lkIFdl
YlBhZ2U6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IEZsb2F0
U2l6ZSYgc2l6ZSkKK3ZvaWQgV2ViUGFnZTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xh
eW91dFNpemUoY29uc3QgRmxvYXRTaXplJiBzaXplLCBkb3VibGUgc2NhbGVGYWN0b3IpCiB7Ci0g
ICAgTE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJXZWJQYWdlICIgPDwg
bV9wYWdlSUQgPDwgIiBzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZSAiIDw8
IHNpemUpOwotICAgIGlmIChtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRWaWV3TGF5b3V0U2l6
ZShzaXplKSkKKyAgICBMT0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIldl
YlBhZ2UgIiA8PCBtX3BhZ2VJRCA8PCAiIHNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlv
dXRTaXplICIgPDwgc2l6ZSA8PCAiIHNjYWxlRmFjdG9yICIgPDwgc2NhbGVGYWN0b3IpOworICAg
IGlmIChtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRWaWV3TGF5b3V0U2l6ZShzaXplLCBzY2Fs
ZUZhY3RvcikpCiAgICAgICAgIHZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGMzOTM1
NDZiODA1ZjVhMWUyZDIzYTlkZGQxNTMyMzQxM2YzMzNmYzguLmNjYTgyMzQwN2MyNzAzM2VjZGQ5
ZmU4MWEwODhiM2JhMDBkZmU5ZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxOC0xMC0xMSAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBbGxvdyBTUEkgY2xp
ZW50cyB0byBsYXkgb3V0IGF0IGFyYml0cmFyaWx5IHNjYWxlZCBzaXplcyBhbmQgc2NhbGUgdG8g
Zml0IHRoZSB2aWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xOTA1MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTE3NzYwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlYWNoIFVJU2NyaXB0Q29u
dHJvbGxlciB0byBzZXQgV0tXZWJWaWV3J3MgdmlldyBzY2FsZSB2aWEgYSBuZXcgYHNldFZpZXdT
Y2FsZWAgbWV0aG9kLCBzdXBwb3J0ZWQgaW4gV2ViS2l0MiBvbgorICAgICAgICBtYWNPUyBhbmQg
aU9TLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklP
Uy5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpzZXRWaWV3U2NhbGUpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW06Cisg
ICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0Vmlld1NjYWxlKToKKyAgICAgICAg
KiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJ
U2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6
c2V0Vmlld1NjYWxlKToKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9VSVNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1VJU2Ny
aXB0Q29udHJvbGxlckNvY29hLm1tOiBBZGRlZC4KKworICAgICAgICBBZGQgYSBuZXcgZmlsZSBm
b3IgVUlTY3JpcHRDb250cm9sbGVyIG1ldGhvZHMgb24gQ29jb2EgcGxhdGZvcm1zLgorCisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0Vmlld1NjYWxlKToKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2Eu
bW06CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjb2NvYVJlc2V0U3RhdGVUb0NvbnNp
c3RlbnRWYWx1ZXMpOgorCisgICAgICAgIEVuc3VyZSB0aGF0IF92aWV3U2NhbGUgaXMgcmVzZXQg
dG8gMSBhZnRlciBydW5uaW5nIGEgbGF5b3V0IHRlc3QuCisKIDIwMTgtMTAtMTEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIElPUyAxMiAtIFNlcnZpY2Ugd29y
a2VyIGNhY2hlIG5vdCBzaGFyZWQgd2hlbiBhZGRlZCB0byBob21lc2NyZWVuCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQppbmRleCA4Zjcw
MDBjNzE4ZTE0OTA2ZGZhMGRhYWM2NDQ3MzFjOWRiZTcyNjI5Li44OWU1Y2I1ZDZjNTQyMTlhNTA4
MjNkNGIxNDFlNzkxMDIxMjdjYmQ5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9p
b3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lv
cy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KQEAgLTgyLDYgKzgyLDEwIEBAIHZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyOjp6b29tVG9TY2FsZShkb3VibGUgc2NhbGUsIEpTVmFsdWVSZWYgY2FsbGJh
Y2spCiAgICAgfSk7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRWaWV3U2NhbGUo
ZG91YmxlKQoreworfQorCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2ltdWxhdGVBY2Nlc3Np
YmlsaXR5U2V0dGluZ3NDaGFuZ2VOb3RpZmljYXRpb24oSlNWYWx1ZVJlZikKIHsKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0g
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCmluZGV4
IDI1NDUzZGQ4ZTZlNGY4YjkyYzQ5YTZhODljNjU0Yzg3YzA2MGUyZmEuLmY0YTMzNDMxMDNiZjdh
MTVkNmIwNGJiMGFjMmFiNWFkZThjOWMxMTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9VSVNjcmlwdENvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQpAQCAtODksNiArODksMTAgQEAgdm9pZCBV
SVNjcmlwdENvbnRyb2xsZXI6Onpvb21Ub1NjYWxlKGRvdWJsZSBzY2FsZSwgSlNWYWx1ZVJlZiBj
YWxsYmFjaykKICAgICB9KTsKIH0KIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldFZpZXdT
Y2FsZShkb3VibGUpCit7Cit9CisKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzaW11bGF0ZUFj
Y2Vzc2liaWxpdHlTZXR0aW5nc0NoYW5nZU5vdGlmaWNhdGlvbihKU1ZhbHVlUmVmKQogewogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGlu
Z3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKaW5kZXggMTUyMjVjYWY2
NWUzZWNlMjk2MmVmY2Q0Y2Q1NzE3ZTVlMTkyNDJiZi4uMzI1MzdkOTA4ZmZiOTA2NDVhMjY3ZmQ3
ZWJmNGVkNTI1OTYxZDdhZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xs
ZXIuaWRsCkBAIC0yMTYsNiArMjE2LDggQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7
CiAKICAgICB2b2lkIHpvb21Ub1NjYWxlKGRvdWJsZSBzY2FsZSwgb2JqZWN0IGNhbGxiYWNrKTsK
IAorICAgIHZvaWQgc2V0Vmlld1NjYWxlKGRvdWJsZSBzY2FsZSk7CisKICAgICB2b2lkIHNjcm9s
bFRvT2Zmc2V0KGxvbmcgeCwgbG9uZyB5KTsgLy8gSW5pdGlhdGUgYW4gYW5pbWF0ZWQgc2Nyb2xs
IGluIHRoZSBVSSBwcm9jZXNzLgogICAgIGF0dHJpYnV0ZSBvYmplY3QgZGlkRW5kU2Nyb2xsaW5n
Q2FsbGJhY2s7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDI1OGI3YzE1MDMzNDBk
MDA0NTg5MGUzZjBlZjc0NTI2ODY1ZjA3ZTYuLjczMWIyY2JkZDYyZjIxNWI4MDUwZDc2NzViMzI2
ZTQ3MTZiZDExY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMjEwLDYgKzIxMCwx
MCBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6em9vbVRvU2NhbGUoZG91YmxlLCBKU1ZhbHVl
UmVmKQogewogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0Vmlld1NjYWxlKGRvdWJs
ZSkKK3sKK30KKwogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNpbXVsYXRlQWNjZXNzaWJpbGl0
eVNldHRpbmdzQ2hhbmdlTm90aWZpY2F0aW9uKEpTVmFsdWVSZWYpCiB7CiB9CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xs
ZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dHJvbGxlci5oCmluZGV4IGY4OGY3NmYxMWMwN2M0MDFjMDY3MGQ5ZTU0YTY4MjE4YmM4NmYyNTEu
LmNmYTMzMjNmNzQ1ZWU1NmY0Yjc5YjEyMzM4N2Q3YTU2NDNiMTczNWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5o
CisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dHJvbGxlci5oCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRvQWZ0ZXJWaXNp
YmxlQ29udGVudFJlY3RVcGRhdGUoSlNWYWx1ZVJlZiBjYWxsYmFjayk7CiAKICAgICB2b2lkIHpv
b21Ub1NjYWxlKGRvdWJsZSBzY2FsZSwgSlNWYWx1ZVJlZiBjYWxsYmFjayk7CisgICAgdm9pZCBz
ZXRWaWV3U2NhbGUoZG91YmxlKTsKIAogICAgIHZvaWQgc2ltdWxhdGVBY2Nlc3NpYmlsaXR5U2V0
dGluZ3NDaGFuZ2VOb3RpZmljYXRpb24oSlNWYWx1ZVJlZiBjYWxsYmFjayk7CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjIwOGM3NDg5OGRiYjU5MzJhMTVjZTdhZTQ1OTZkOWRiYTYyMmI1ZTMKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1t
CkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIlVJU2NyaXB0Q29udHJvbGxlci5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVdlYlZpZXcuaCIK
KyNpbXBvcnQgIlRlc3RDb250cm9sbGVyLmgiCisjaW1wb3J0ICJUZXN0UnVubmVyV0tXZWJWaWV3
LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorCituYW1lc3BhY2UgV1RS
IHsKKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldFZpZXdTY2FsZShkb3VibGUgc2NhbGUp
Cit7CisjaWYgV0tfQVBJX0VOQUJMRUQKKyAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCku
bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCkuX3ZpZXdTY2FsZSA9IHNjYWxlOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0oc2NhbGUpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdU
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRl
c3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MDcxYmE1ZGQ4ZTU4MGE5
ODlkNDk3NGU1MjY0NTVlOGZmNjE1OGZhLi4yM2FjNWFiMGFmYjc0YTU4ZGIxNTVhYjM3NjZiN2Qw
NDkxYzk2NzRjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RS
dW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM1LDYg
KzEzNSw3IEBACiAJCUUxMzJBQTNEMTdDRTc3NkYwMDYxMURGMCAvKiBXZWJLaXRUZXN0UnVubmVy
RXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MTMyQUEzQjE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tICovOyB9
OwogCQlFMUM2NDJDMzE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3MubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NDJDMTE3Q0JDQzczMDBE
NjZBM0MgLyogUG9zZUFzQ2xhc3MubW0gKi87IH07CiAJCUUxQzY0MkM2MTdDQkNENEMwMEQ2NkEz
QyAvKiBXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzY0MkM0MTdDQkNENEMwMEQ2NkEzQyAvKiBXZWJL
aXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbSAqLzsgfTsKKwkJRjQ2MjQwQjEyMTcwMTNFNTAwOTE3
QjE2IC8qIFVJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ2MjQwQUYyMTcwMTI4MzAwOTE3QjE2IC8qIFVJU2Ny
aXB0Q29udHJvbGxlckNvY29hLm1tICovOyB9OwogCQlGNEMzNTc4QzIwRTg0NDQ2MDBGQTA3NDgg
LyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0QzM1NzhBMjBFODQ0NDAwMEZBMDc0OCAvKiBMYXlvdXRUZXN0
U3BlbGxDaGVja2VyLm1tICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAK
QEAgLTM3OCw2ICszNzksNyBAQAogCQlFMUM2NDJDMjE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFz
Q2xhc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9zZUFzQ2xhc3MuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDNjQyQzQxN0NCQ0Q0QzAwRDY2QTNDIC8q
IFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxQzY0MkM1MTdDQkNENEMwMEQ2NkEzQyAvKiBXZWJLaXRUZXN0
UnVubmVyUGFzdGVib2FyZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJL
aXRUZXN0UnVubmVyUGFzdGVib2FyZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NDYyNDBBRjIxNzAxMjgzMDA5MTdCMTYgLyogVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDMzU3OEEyMEU4NDQ0MDAwRkEwNzQ4IC8qIExheW91dFRl
c3RTcGVsbENoZWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9j
b2NvYS9MYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNEMzNTc4QjIwRTg0NDQwMDBGQTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMYXlvdXRUZXN0U3BlbGxDaGVja2Vy
Lmg7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRlc3RTcGVsbENoZWNr
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNl
IHNlY3Rpb24gKi8KQEAgLTU1Niw2ICs1NTgsNyBAQAogCQkJCTJEQ0UyQ0QxMUI4NDUyNDUwMEM3
RjgzMiAvKiBUZXN0Q29udHJvbGxlckNvY29hLm1tICovLAogCQkJCTBGODdCNjE0MUJBQ0M0Qjkw
MDRFQzU3MiAvKiBUZXN0UnVubmVyV0tXZWJWaWV3LmggKi8sCiAJCQkJMEY4N0I2MTUxQkFDQzRC
OTAwNEVDNTcyIC8qIFRlc3RSdW5uZXJXS1dlYlZpZXcubW0gKi8sCisJCQkJRjQ2MjQwQUYyMTcw
MTI4MzAwOTE3QjE2IC8qIFVJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tICovLAogCQkJKTsKIAkJ
CW5hbWUgPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMDgyLDYgKzEw
ODUsNyBAQAogCQkJCTBGODdCNjE3MUJBQ0M0QzAwMDRFQzU3MiAvKiBUZXN0UnVubmVyV0tXZWJW
aWV3Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOEU2RTUxRDZCOUI5RTAwMjdFNTQ3IC8qIFVJ
U2NyaXB0Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjE4RTZFNjFENkI5QkEyMDAy
N0U1NDcgLyogVUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY0NjI0
MEIxMjE3MDEzRTUwMDkxN0IxNiAvKiBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGNzNCNTVDMUJBODkwNDIwMDRCM0VGNCAvKiBVSVNjcmlwdENvbnRyb2xs
ZXJJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTA0MzFCOUFFMTQ1MDA3NDRBRUIgLyog
V2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwNDQx
QjlBRTE0QTAwNzQ0QUVCIC8qIFdvcmtRdWV1ZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29j
b2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2Eu
bW0KaW5kZXggYWFjZDljNDU0YThlNDdmMDQzNjQ2Y2Y5ZjQ0MzgxM2VkMjExMWI1Yi4uMDJiNTMy
OTFiZmI3NTFhNDYzODczZDhmYjk2NWNmYWVmMjkxZDhlZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtMjE1LDggKzIx
NSwxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjb2NvYVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRW
YWx1ZXMoKQogICAgIHBsYXRmb3JtUnVuVW50aWwoZG9uZVJlbW92aW5nLCBub1RpbWVvdXQpOwog
ICAgIFtbX1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZSBkZWZhdWx0U3RvcmVdIF9yZW1vdmVB
bGxDb250ZW50RXh0ZW5zaW9uc107CiAKLSAgICBpZiAoUGxhdGZvcm1XZWJWaWV3KiB3ZWJWaWV3
ID0gbWFpbldlYlZpZXcoKSkKLSAgICAgICAgW3dlYlZpZXctPnBsYXRmb3JtVmlldygpLmNvbmZp
Z3VyYXRpb24udXNlckNvbnRlbnRDb250cm9sbGVyIF9yZW1vdmVBbGxVc2VyQ29udGVudEZpbHRl
cnNdOworICAgIGlmIChhdXRvKiB3ZWJWaWV3ID0gbWFpbldlYlZpZXcoKSkgeworICAgICAgICBU
ZXN0UnVubmVyV0tXZWJWaWV3ICpwbGF0Zm9ybVZpZXcgPSB3ZWJWaWV3LT5wbGF0Zm9ybVZpZXco
KTsKKyAgICAgICAgW3BsYXRmb3JtVmlldy5jb25maWd1cmF0aW9uLnVzZXJDb250ZW50Q29udHJv
bGxlciBfcmVtb3ZlQWxsVXNlckNvbnRlbnRGaWx0ZXJzXTsKKyAgICAgICAgcGxhdGZvcm1WaWV3
Ll92aWV3U2NhbGUgPSAxOworICAgIH0KICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDQ4ZjUwYmRkOGU4
YTNiZmVjMjlkZTIyZTEyYTA4ZjAzMGMzNjRlNC4uMzZlNDY2Mzk0ZTNkMTRhNThiNjMwYTI4YjIw
ZjA0ODQzNGY1MmJkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE4LTEwLTExICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFsbG93IFNQ
SSBjbGllbnRzIHRvIGxheSBvdXQgYXQgYXJiaXRyYXJpbHkgc2NhbGVkIHNpemVzIGFuZCBzY2Fs
ZSB0byBmaXQgdGhlIHZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MDUwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUxMTc3NjA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHR3byBuZXcg
bGF5b3V0IHRlc3RzIG9uIGlPUyB0aGF0IGNoYW5nZSBXS1dlYlZpZXcncyB2aWV3IHNjYWxlLCBh
bmQgbWVhc3VyZSB0aGUgcmVzdWx0aW5nIHdpbmRvdyBzaXplcyBhbmQKKyAgICAgICAgbGVuZ3Ro
cyBvZiB2aWV3cG9ydCB1bml0cy4KKworICAgICAgICAqIGZhc3Qvdmlld3BvcnQvaW9zL2NvbnN0
YW50LXdpZHRoLXZpZXdwb3J0LWFmdGVyLWNoYW5naW5nLXZpZXctc2NhbGUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3ZpZXdwb3J0L2lvcy9jb25zdGFudC13aWR0aC12aWV3
cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWw6IEFkZGVkLgorCisgICAgICAgIEFk
ZCBhIHRlc3QgcGFnZSB3aXRoIGEgdmlld3BvcnQgbWV0YSB0YWcgdGhhdCBoYXMgYSBjb25zdGFu
dCB3aWR0aCBhbmQgYW4gZXhwbGljaXQgaW5pdGlhbCBzY2FsZSBvZiAwLjUuCisKKyAgICAgICAg
KiBmYXN0L3ZpZXdwb3J0L2lvcy9kZXZpY2Utd2lkdGgtdmlld3BvcnQtYWZ0ZXItY2hhbmdpbmct
dmlldy1zY2FsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvdmlld3BvcnQv
aW9zL2RldmljZS13aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWw6
IEFkZGVkLgorCisgICAgICAgIEFkZCBhIHRlc3QgcGFnZSB3aXRoIGEgdmlld3BvcnQgbWV0YSB0
YWcgYXQgZGV2aWNlLXdpZHRoLCB3aXRoIGluaXRpYWwgc2NhbGUgMS4KKworICAgICAgICAqIHJl
c291cmNlcy91aS1oZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuc2V0Vmlld1Nj
YWxlKToKKworICAgICAgICBBZGQgYSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0aGF0IHdyYXBzIGEg
VUkgc2NyaXB0IGludm9jYXRpb24gb2YgYHNldFZpZXdTY2FsZWAgaW4gYSBwcm9taXNlLgorCisg
ICAgICAgICh3aW5kb3cuVUlIZWxwZXIpOgorCiAyMDE4LTEwLTA4ICBZdXN1a2UgU3V6dWtpICA8
eXVzdWtlc3V6dWtpQHNsb3dzdGFydC5vcmc+CiAKICAgICAgICAgW0pTQ10gSlNDIHNob3VsZCBo
YXZlICJwYXJzZUZ1bmN0aW9uIiB0byBvcHRpbWl6ZSBGdW5jdGlvbiBjb25zdHJ1Y3RvcgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvY29uc3RhbnQtd2lkdGgtdmll
d3BvcnQtYWZ0ZXItY2hhbmdpbmctdmlldy1zY2FsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L3ZpZXdwb3J0L2lvcy9jb25zdGFudC13aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2lu
Zy12aWV3LXNjYWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDBjYzE0YjVjNWUyMTYyMDQz
NzRhNjYzM2FlNDczMmQxOGI5YTY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC92aWV3cG9ydC9pb3MvY29uc3RhbnQtd2lkdGgtdmlld3BvcnQtYWZ0ZXItY2hhbmdpbmctdmll
dy1zY2FsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NiBAQAorc2V0Vmlld1NjYWxlKDAuNTAp
Cit3aW5kb3cgc2l6ZTogWzEyODAsIDIxOTJdCitzcXVhcmUgc2l6ZTogWzEyOCwgMjE5XQorem9v
bSBzY2FsZTogMC4yNQorCitzZXRWaWV3U2NhbGUoMC43NSkKK3dpbmRvdyBzaXplOiBbODUzLCAx
NDYxXQorc3F1YXJlIHNpemU6IFs4NSwgMTQ2XQorem9vbSBzY2FsZTogMC4zOAorCitzZXRWaWV3
U2NhbGUoMS4wMCkKK3dpbmRvdyBzaXplOiBbNjQwLCAxMDk2XQorc3F1YXJlIHNpemU6IFs2NCwg
MTEwXQorem9vbSBzY2FsZTogMC41MAorCitzZXRWaWV3U2NhbGUoMS4yNSkKK3dpbmRvdyBzaXpl
OiBbNTEyLCA4NzddCitzcXVhcmUgc2l6ZTogWzUxLCA4OF0KK3pvb20gc2NhbGU6IDAuNjMKKwor
c2V0Vmlld1NjYWxlKDEuNTApCit3aW5kb3cgc2l6ZTogWzQyNywgNzMxXQorc3F1YXJlIHNpemU6
IFs0MywgNzNdCit6b29tIHNjYWxlOiAwLjc1CisKK3NldFZpZXdTY2FsZSgxLjI1KQord2luZG93
IHNpemU6IFs1MTIsIDg3N10KK3NxdWFyZSBzaXplOiBbNTEsIDg4XQorem9vbSBzY2FsZTogMC42
MworCitzZXRWaWV3U2NhbGUoMS4wMCkKK3dpbmRvdyBzaXplOiBbNjQwLCAxMDk2XQorc3F1YXJl
IHNpemU6IFs2NCwgMTEwXQorem9vbSBzY2FsZTogMC41MAorCitzZXRWaWV3U2NhbGUoMC43NSkK
K3dpbmRvdyBzaXplOiBbODUzLCAxNDYxXQorc3F1YXJlIHNpemU6IFs4NSwgMTQ2XQorem9vbSBz
Y2FsZTogMC4zOAorCitzZXRWaWV3U2NhbGUoMC41MCkKK3dpbmRvdyBzaXplOiBbMTI4MCwgMjE5
Ml0KK3NxdWFyZSBzaXplOiBbMTI4LCAyMTldCit6b29tIHNjYWxlOiAwLjI1CisKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvY29uc3RhbnQtd2lkdGgtdmlld3Bv
cnQtYWZ0ZXItY2hhbmdpbmctdmlldy1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC92aWV3
cG9ydC9pb3MvY29uc3RhbnQtd2lkdGgtdmlld3BvcnQtYWZ0ZXItY2hhbmdpbmctdmlldy1zY2Fs
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIwYzI0M2UwN2ViZGVmNmJkM2NkZDU2ZWNkMzdmYTg4NTU4NmZk
OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L2lvcy9jb25z
dGFudC13aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWwKQEAgLTAs
MCArMSw1OSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNl
RmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD02NDAsIGluaXRpYWwtc2NhbGU9MC41Ij4KKyAg
ICA8c3R5bGU+CisgICAgICAgICNzcXVhcmUgeworICAgICAgICAgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgICAgICAgICAgd2lkdGg6IDEwdnc7CisgICAgICAgICAgICBoZWlnaHQ6IDEwdmg7
CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKKyAgICAgICAgfQorCisgICAg
ICAgICNvdXRwdXQgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWln
aHQ6IDEwMCU7CisgICAgICAgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgICB9CisKKyAg
ICAgICAgYm9keSB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAgICB3aWR0aDog
MTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBj
b25zdCBhcHBlbmRPdXRwdXQgPSBtZXNzYWdlID0+IHsKKyAgICAgICAgICAgIG91dHB1dC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgICAgICAgICBv
dXRwdXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7CisgICAgICAg
IH07CisKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0U2NhbGUgb2YgWzAuNSwgMC43NSwgMSwgMS4y
NSwgMS41LCAxLjI1LCAxLCAwLjc1LCAwLjVdKSB7CisgICAgICAgICAgICBhcHBlbmRPdXRwdXQo
YHNldFZpZXdTY2FsZSgke3RhcmdldFNjYWxlLnRvRml4ZWQoMil9KWApOworCisgICAgICAgICAg
ICBhd2FpdCBVSUhlbHBlci5zZXRWaWV3U2NhbGUodGFyZ2V0U2NhbGUpOworICAgICAgICAgICAg
YXdhaXQgUHJvbWlzZS5hbGwoW1VJSGVscGVyLmVuc3VyZVZpc2libGVDb250ZW50UmVjdFVwZGF0
ZSgpLCBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKV0pOworCisgICAgICAgICAg
ICBhcHBlbmRPdXRwdXQoYHdpbmRvdyBzaXplOiBbJHtpbm5lcldpZHRofSwgJHtpbm5lckhlaWdo
dH1dYCk7CisgICAgICAgICAgICBhcHBlbmRPdXRwdXQoYHNxdWFyZSBzaXplOiBbJHtzcXVhcmUu
Y2xpZW50V2lkdGh9LCAke3NxdWFyZS5jbGllbnRIZWlnaHR9XWApOworICAgICAgICAgICAgYXBw
ZW5kT3V0cHV0KGB6b29tIHNjYWxlOiAke3BhcnNlRmxvYXQoYXdhaXQgVUlIZWxwZXIuem9vbVNj
YWxlKCkpLnRvRml4ZWQoMil9YCk7CisgICAgICAgICAgICBhcHBlbmRPdXRwdXQoIiIpOworICAg
ICAgICB9CisKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorICAgIDwv
c2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPGRpdiBp
ZD0ic3F1YXJlIj48L2Rpdj4KKyAgICA8cHJlIGlkPSJvdXRwdXQiPjwvcHJlPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvZGV2aWNl
LXdpZHRoLXZpZXdwb3J0LWFmdGVyLWNoYW5naW5nLXZpZXctc2NhbGUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvZGV2aWNlLXdpZHRoLXZpZXdwb3J0LWFmdGVy
LWNoYW5naW5nLXZpZXctc2NhbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1ZGQ0NjZiMzE0
MTBjMzA1NDY2NWEzZDYxODYyOWQxOWM0ZjIwNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3ZpZXdwb3J0L2lvcy9kZXZpY2Utd2lkdGgtdmlld3BvcnQtYWZ0ZXItY2hhbmdp
bmctdmlldy1zY2FsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NiBAQAorc2V0Vmlld1NjYWxl
KDAuNTApCit3aW5kb3cgc2l6ZTogWzY0MCwgMTA5Nl0KK3NxdWFyZSBzaXplOiBbNjQsIDExMF0K
K3pvb20gc2NhbGU6IDAuNTAKKworc2V0Vmlld1NjYWxlKDAuNzUpCit3aW5kb3cgc2l6ZTogWzQy
NywgNzMxXQorc3F1YXJlIHNpemU6IFs0MywgNzNdCit6b29tIHNjYWxlOiAwLjc1CisKK3NldFZp
ZXdTY2FsZSgxLjAwKQord2luZG93IHNpemU6IFszMjAsIDU0OF0KK3NxdWFyZSBzaXplOiBbMzIs
IDU1XQorem9vbSBzY2FsZTogMS4wMAorCitzZXRWaWV3U2NhbGUoMS4yNSkKK3dpbmRvdyBzaXpl
OiBbMjU2LCA0MzhdCitzcXVhcmUgc2l6ZTogWzI2LCA0NF0KK3pvb20gc2NhbGU6IDEuMjUKKwor
c2V0Vmlld1NjYWxlKDEuNTApCit3aW5kb3cgc2l6ZTogWzIxMywgMzY1XQorc3F1YXJlIHNpemU6
IFsyMSwgMzddCit6b29tIHNjYWxlOiAxLjUwCisKK3NldFZpZXdTY2FsZSgxLjI1KQord2luZG93
IHNpemU6IFsyNTYsIDQzOF0KK3NxdWFyZSBzaXplOiBbMjYsIDQ0XQorem9vbSBzY2FsZTogMS4y
NQorCitzZXRWaWV3U2NhbGUoMS4wMCkKK3dpbmRvdyBzaXplOiBbMzIwLCA1NDhdCitzcXVhcmUg
c2l6ZTogWzMyLCA1NV0KK3pvb20gc2NhbGU6IDEuMDAKKworc2V0Vmlld1NjYWxlKDAuNzUpCit3
aW5kb3cgc2l6ZTogWzQyNywgNzMxXQorc3F1YXJlIHNpemU6IFs0MywgNzNdCit6b29tIHNjYWxl
OiAwLjc1CisKK3NldFZpZXdTY2FsZSgwLjUwKQord2luZG93IHNpemU6IFs2NDAsIDEwOTZdCitz
cXVhcmUgc2l6ZTogWzY0LCAxMTBdCit6b29tIHNjYWxlOiAwLjUwCisKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvZGV2aWNlLXdpZHRoLXZpZXdwb3J0LWFmdGVy
LWNoYW5naW5nLXZpZXctc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvaW9z
L2RldmljZS13aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTU5OGRlOTk4Yzk0NTM5YjVmMGVhZjJiYTEzNDY5N2U3NmZhZTI1NgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvaW9zL2RldmljZS13aWR0aC12
aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWwKQEAgLTAsMCArMSw1OSBAQAor
PCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3
cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0
IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CisgICAgPHN0
eWxlPgorICAgICAgICAjc3F1YXJlIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICAgICAgICAgIHdpZHRoOiAxMHZ3OworICAgICAgICAgICAgaGVpZ2h0OiAxMHZoOworICAg
ICAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7CisgICAgICAgIH0KKworICAgICAgICAj
b3V0cHV0IHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAx
MDAlOworICAgICAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgfQorCisgICAgICAg
IGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgd2lkdGg6IDEwMCU7
CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgY29uc3Qg
YXBwZW5kT3V0cHV0ID0gbWVzc2FnZSA9PiB7CisgICAgICAgICAgICBvdXRwdXQuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworICAgICAgICAgICAgb3V0cHV0
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOworICAgICAgICB9Owor
CisgICAgICAgIGZvciAobGV0IHRhcmdldFNjYWxlIG9mIFswLjUsIDAuNzUsIDEsIDEuMjUsIDEu
NSwgMS4yNSwgMSwgMC43NSwgMC41XSkgeworICAgICAgICAgICAgYXBwZW5kT3V0cHV0KGBzZXRW
aWV3U2NhbGUoJHt0YXJnZXRTY2FsZS50b0ZpeGVkKDIpfSlgKTsKKworICAgICAgICAgICAgYXdh
aXQgVUlIZWxwZXIuc2V0Vmlld1NjYWxlKHRhcmdldFNjYWxlKTsKKyAgICAgICAgICAgIGF3YWl0
IFByb21pc2UuYWxsKFtVSUhlbHBlci5lbnN1cmVWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUoKSwg
VUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCldKTsKKworICAgICAgICAgICAgYXBw
ZW5kT3V0cHV0KGB3aW5kb3cgc2l6ZTogWyR7aW5uZXJXaWR0aH0sICR7aW5uZXJIZWlnaHR9XWAp
OworICAgICAgICAgICAgYXBwZW5kT3V0cHV0KGBzcXVhcmUgc2l6ZTogWyR7c3F1YXJlLmNsaWVu
dFdpZHRofSwgJHtzcXVhcmUuY2xpZW50SGVpZ2h0fV1gKTsKKyAgICAgICAgICAgIGFwcGVuZE91
dHB1dChgem9vbSBzY2FsZTogJHtwYXJzZUZsb2F0KGF3YWl0IFVJSGVscGVyLnpvb21TY2FsZSgp
KS50b0ZpeGVkKDIpfWApOworICAgICAgICAgICAgYXBwZW5kT3V0cHV0KCIiKTsKKyAgICAgICAg
fQorCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KKyAgICA8L3Njcmlw
dD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxkaXYgaWQ9InNx
dWFyZSI+PC9kaXY+CisgICAgPHByZSBpZD0ib3V0cHV0Ij48L3ByZT4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMgYi9MYXlv
dXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4IGNlMTc4YjUwODBhMmM5NDZiZGVk
NGIwMTI4ZTYzOTExMDI4MWViNmQuLjA0NzlhZDU3MmFkZjVmNmQ0YWUzYTJiYjZiN2RmNjFjMTAy
ZjY5YWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKKysr
IGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtMzM5LDQgKzMzOSwxMiBA
QCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgfSk7CiAgICAgfQorCisgICAgc3RhdGljIHNldFZpZXdTY2FsZShzY2FsZSkKKyAgICB7
CisgICAgICAgIGlmICghdGhpcy5pc1dlYktpdDIoKSkKKyAgICAgICAgICAgIHJldHVybiBQcm9t
aXNlLnJlc29sdmUoKTsKKworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0
ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGB1aUNvbnRyb2xsZXIuc2V0Vmlld1NjYWxlKCR7c2NhbGV9
KWAsICgpID0+IHJlc29sdmUoKSkpOworICAgIH0KIH0K
</data>
<flag name="review"
          id="369449"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352206</attachid>
            <date>2018-10-12 14:49:04 -0700</date>
            <delta_ts>2018-10-12 16:13:45 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-190504-20181012144904.patch</filename>
            <type>text/plain</type>
            <size>49681</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3MDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTA2OGU1ZjM4MmJkNzI2
Mjk5NTkzODU1ZGFlMWNmNTMzMmZkYmIzNy4uMDJmMGNiYjRlNDQ3MWFhYjNhODJkMTZiYWNlMjQ0
MjRmOTQzOGZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE4LTEwLTEyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFsbG93
IFNQSSBjbGllbnRzIHRvIGxheSBvdXQgYXQgYXJiaXRyYXJpbHkgc2NhbGVkIHNpemVzIGFuZCBz
Y2FsZSB0byBmaXQgdGhlIHZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MDUwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUxMTc3NjA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGQgc3VwcG9ydCBp
biBWaWV3cG9ydENvbmZpZ3VyYXRpb24gZm9yIGFwcGx5aW5nIGEgbGF5b3V0IHNpemUgc2NhbGUg
ZmFjdG9yIHRvIHRoZSB2aWV3cG9ydC4gU2VlIGJlbG93IGZvcgorICAgICAgICBtb3JlIGRldGFp
bHMuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qvdmlld3BvcnQvaW9zL2NvbnN0YW50LXdpZHRoLXZp
ZXdwb3J0LWFmdGVyLWNoYW5naW5nLXZpZXctc2NhbGUuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC92aWV3cG9ydC9pb3MvZGV2aWNlLXdpZHRoLXZpZXdwb3J0LWFmdGVyLWNoYW5naW5nLXZpZXct
c2NhbGUuaHRtbAorCisgICAgICAgICogcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Vmlld3BvcnRDb25maWd1cmF0aW9uOjpzZXRWaWV3TGF5b3V0U2l6
ZSk6CisKKyAgICAgICAgVGhlIHZpZXdwb3J0J3MgbGF5b3V0IHNpemUgbWF5IG5vdyBiZSBjaGFu
Z2VkIGFsb25nc2lkZSB0aGUgbGF5b3V0IHNpemUgc2NhbGUgZmFjdG9yLiBJZiBlaXRoZXIgb2Yg
dGhlc2UgdHdvCisgICAgICAgIHZhcmlhYmxlcyBjaGFuZ2UsIHdlIHJlY29tcHV0ZSBvdXIgbWlu
aW11bSBsYXlvdXQgc2l6ZSBhbmQgdmlld3BvcnQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzLgor
CisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNob3VsZElnbm9yZUhv
cml6b250YWxTY2FsaW5nQ29uc3RyYWludHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Vmll
d3BvcnRDb25maWd1cmF0aW9uOjpuYXRpdmVXZWJwYWdlUGFyYW1ldGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3VyYXRpb246OnRlc3RpbmdQYXJhbWV0ZXJzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6dXBkYXRlQ29uZmlndXJhdGlvbik6
CisKKyAgICAgICAgTXVsdGlwbHkgdGhlIG1pbmltdW0gc2NhbGUsIGluaXRpYWwgc2NhbGUsIGFu
ZCBtYXhpbXVtIHNjYWxlIGJ5IHRoZSBsYXlvdXQgc2l6ZSBzY2FsZSBmYWN0b3IuIFRoaXMgYWxs
b3dzIHVzIHRvCisgICAgICAgIGtlZXAgdGhlIGRvY3VtZW50IHdlbGwtcHJvcG9ydGlvbmVkIHdp
dGhpbiB0aGUgdmlld3BvcnQsIHdoaWxlIHN0aWxsIGxheWluZyBvdXQgYXQgYSBkaWZmZXJlbnQg
bGF5b3V0IHNpemUuCisKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlvbjo6
dXBkYXRlTWluaW11bUxheW91dFNpemUpOgorCisgICAgICAgIENvbXB1dGUgdGhlIG1pbmltdW0g
bGF5b3V0IHNpemUgYnkgc2NhbGluZyB0aGUgZGVmYXVsdCBsYXlvdXQgc2l6ZSBkZXJpdmVkIGZy
b20gb3VyIHZpZXcncyBzaXplLgorCisgICAgICAgIChXZWJDb3JlOjpWaWV3cG9ydENvbmZpZ3Vy
YXRpb246OmxheW91dFdpZHRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29u
ZmlndXJhdGlvbjo6bGF5b3V0SGVpZ2h0IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1ZpZXdwb3J0
Q29uZmlndXJhdGlvbi5oOgorCisgICAgICAgIE1haW50YWluIHRoZSBvcmlnaW5hbCBpbml0aWFs
IHNjYWxlLCB1bmFmZmVjdGVkIGJ5IHRoZSBsYXlvdXQgc2l6ZSBzY2FsZSBmYWN0b3IuIFRoaXMg
aXMgdXNlZCB3aGVuIGNvbXB1dGluZworICAgICAgICBsYXlvdXQgd2lkdGggYW5kIGhlaWdodCB0
byBwcmV2ZW50IHNjYWxpbmcgYnkgdGhlIGxheW91dCBzaXplIHNjYWxlIGZhY3RvciB0d2ljZSB3
aGVuIGNvbXB1dGluZyBsYXlvdXQgc2l6ZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0
Q29uZmlndXJhdGlvbjo6ZGVzY3JpcHRpb24gY29uc3QpOgorCisgICAgICAgIEluY2x1ZGUgdGhl
IGxheW91dCBzaXplIHNjYWxlIGZhY3RvciBpbiBWaWV3cG9ydENvbmZpZ3VyYXRpb24ncyBkZXNj
cmlwdGlvbiBzdHJpbmcuCisKKyAgICAgICAgKFdlYkNvcmU6OlZpZXdwb3J0Q29uZmlndXJhdGlv
bjo6UGFyYW1ldGVyczo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVy
YXRvcjw8KToKKwogMjAxOC0xMC0xMiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBBZGRyZXNzIHRoZSByZXZpZXcgY29tbWVudCB3aGljaCB3YXMgbWVhbnQgdG8g
YmUgYWRkcmVzc2VkIGluIHIyMzcwMjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQyNzE0YWM3MWMxMWQ5ZTRjYWQ4
ZDRkYWRkZGE0OGEwMDQ3ZjYzYzIuLjllY2RmMjE3MzA4MjU1NGU3MjZmNDUwNTlkZjA0Mjc5Y2Zm
MGE2ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTgtMTAtMTIgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWxsb3cgU1BJIGNs
aWVudHMgdG8gbGF5IG91dCBhdCBhcmJpdHJhcmlseSBzY2FsZWQgc2l6ZXMgYW5kIHNjYWxlIHRv
IGZpdCB0aGUgdmlldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkwNTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTExNzc2MD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBfc2V0
Vmlld1NjYWxlOiBhbmQgX3ZpZXdTY2FsZSBvbiBpT1MuIFdoaWxlIHNpbWlsYXIgaW4gY29uY2Vw
dCB0byBtYWNPUywgY2hhbmdpbmcgdGhpcyBwcm9wZXJ0eQorICAgICAgICBvbiBpT1MgdXNlcyB2
aWV3cG9ydCBjb25maWd1cmF0aW9ucyB0byBjaGFuZ2UgdGhlIG1pbmltdW0gbGF5b3V0IHNpemUg
b2YgdGhlIGRvY3VtZW50IGFuZCBhcHBseSB2aWV3IHNjYWxpbmcuCisgICAgICAgIFNldHRpbmcg
dGhlIHZpZXcgc2NhbGUgb24gaU9TIHRvIGEgdmFsdWUgYHNgIG11bHRpcGxpZXMgdGhlIG1pbmlt
aXVtIGxheW91dCBzaXplIGJ5IGEgZmFjdG9yIGAxIC8gc2AsIGJ1dCBhbHNvCisgICAgICAgIG11
bHRpcGxpZXMgdGhlIGluaXRpYWwsIG1pbmltdW0gYW5kIG1heGltdW0gc2NhbGVzIGJ5IGEgZmFj
dG9yIG9mIGBzYC4gVGhlIG5ldCBlZmZlY3Qgb2YgYXBwbHlpbmcgdGhpcyBzY2FsZQorICAgICAg
ICBjYXVzZXMgdGhlIHBhZ2UgdG8gbGF5IG91dCBhdCBhIGxhcmdlciB3aWR0aCBhbmQgc2hyaW5r
IChvciBhIHNtYWxsZXIgd2lkdGggYW5kIGV4cGFuZCkgdG8gZml0IHRoZSB2aWV3cG9ydC4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorCisgICAgICAgIFNlbmQgYHZp
ZXdwb3J0Q29uZmlndXJhdGlvbkxheW91dFNpemVTY2FsZUZhY3RvcmAgYWxvbmdzaWRlIGB2aWV3
cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZWAuCisKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9kaXNwYXRjaFNldFZpZXdMYXlvdXRTaXplOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Zp
ZXdTY2FsZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFZpZXdTY2FsZTpdKToKKworICAg
ICAgICBQcm92aWRlIGEgZGlmZmVyZW50IGltcGxlbWVudGF0aW9uIG9mIGBfc2V0Vmlld1NjYWxl
OmAgb24gaU9TLCBieSBzY2FsaW5nIHRoZSBlZmZlY3RpdmUgbWluaW11bSBsYXlvdXQgc2l6ZS4K
KyAgICAgICAgKFNlZSBhYm92ZSBmb3IgbW9yZSBkZXRhaWwpLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisKKyAgICAgICAgQWRkIG1pc3Npbmcg
QVBJIGF2YWlsYWJpbGl0eSBhbm5vdGF0aW9ucyBmb3IgdGhlIF92aWV3U2NhbGUgcHJvcGVydHku
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dL
VmlldyBfc2V0Vmlld1NjYWxlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbToKKworICAgICAgICBCb3RoIC1bV0tWaWV3IF9zZXRWaWV3U2NhbGU6XSBhbmQgLVtX
S1dlYlZpZXcgX3NldFZpZXdTY2FsZTpdIHRocm93IE9iamVjdGl2ZSBDIGV4Y2VwdGlvbnMgdXBv
biByZWNlaXZpbmcgYSBiYWQKKyAgICAgICAgYXJndW1lbnQgKGUuZy4gc2NhbGUgPD0gMCkuIEhv
d2V2ZXIsIGxvZ2ljIGZvciB0aHJvd2luZyB0aGlzIGV4Y2VwdGlvbiBpcyBzcGVjaWZpYyB0byBp
T1MgaW4gV0tXZWJWaWV3LCBhbmQKKyAgICAgICAgaGFuZGxlZCBpbiBXZWJWaWV3SW1wbCBvbiBt
YWNPUy4gVG8gbWFrZSB0aGlzIGxlc3MgY29uZnVzaW5nLCBtb3ZlIHRoZSBleGNlcHRpb24gdGhy
b3dpbmcgY29kZSBvdXQgb2YKKyAgICAgICAgIVBMQVRGT1JNKE1BQykgaW4gV0tXZWJWaWV3LCBh
bmQgbW92ZSB0aGUgcGF0aCBmb3IgcmFpc2luZyB0aGlzIGV4Y2VwdGlvbiBpbiBXS1ZpZXcgb24g
bWFjT1MgZnJvbSBXZWJWaWV3SW1wbCB0bworICAgICAgICBXS1ZpZXcuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpjcmVhdGlvblBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpsYXlvdXRTaXplU2NhbGVGYWN0b3Ig
Y29uc3QpOgorCisgICAgICAgIFRpZSB0aGUgbm90aW9uIG9mICJ2aWV3IHNjYWxlIiBvbiBpT1Mg
dG8gYGxheW91dFNpemVTY2FsZUZhY3RvcmAuIEFzIGl0cyBuYW1lIHN1Z2dlc3RzLCB0aGlzIGlz
IGEgc2NhbGUgZmFjdG9yCisgICAgICAgIGJ5IHdoaWNoIHdlIHRyYW5zZm9ybSB0aGUgbGF5b3V0
IHNpemUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3
TGF5b3V0U2l6ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKKyAgICAgICAgUGx1bWIgdGhlIGxh
eW91dCBzaXplIHNjYWxlIGZhY3RvciBvdmVyIHRvIHRoZSB3ZWIgcHJvY2VzcywgYWxvbmcgd2l0
aCB0aGUgbGF5b3V0IHNpemUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFZpZXdwb3J0Q29uZmln
dXJhdGlvblZpZXdMYXlvdXRTaXplKToKKwogMjAxOC0xMC0xMiAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFsbG93IGVuY29kaW5nIG9mIHNt
YWxsIGVudW0gY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9y
dENvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3Vy
YXRpb24uY3BwCmluZGV4IGMwMzM1NzFjNjI5OTdkM2VlNTViNDZlY2EyZWJlOGJkYWRmNmZhY2Eu
LjQxMmM1MmJhMDkxODQ1MWFjMjFjMWJiYWRlZTkzOGEzZmYyYzZkNzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmlndXJhdGlvbi5jcHAKQEAgLTExNCwxMSArMTE0LDEz
IEBAIGJvb2wgVmlld3BvcnRDb25maWd1cmF0aW9uOjpzZXRDb250ZW50c1NpemUoY29uc3QgSW50
U2l6ZSYgY29udGVudFNpemUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgVmlld3BvcnRD
b25maWd1cmF0aW9uOjpzZXRWaWV3TGF5b3V0U2l6ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlv
dXRTaXplKQorYm9vbCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnNldFZpZXdMYXlvdXRTaXplKGNv
bnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiYmIHNj
YWxlRmFjdG9yKQogewotICAgIGlmIChtX3ZpZXdMYXlvdXRTaXplID09IHZpZXdMYXlvdXRTaXpl
KQorICAgIGRvdWJsZSBuZXdTY2FsZUZhY3RvciA9IHNjYWxlRmFjdG9yLnZhbHVlX29yKG1fbGF5
b3V0U2l6ZVNjYWxlRmFjdG9yKTsKKyAgICBpZiAobV92aWV3TGF5b3V0U2l6ZSA9PSB2aWV3TGF5
b3V0U2l6ZSAmJiBtX2xheW91dFNpemVTY2FsZUZhY3RvciA9PSBuZXdTY2FsZUZhY3RvcikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgbV9sYXlvdXRTaXplU2NhbGVGYWN0b3IgPSBuZXdT
Y2FsZUZhY3RvcjsKICAgICBtX3ZpZXdMYXlvdXRTaXplID0gdmlld0xheW91dFNpemU7CiAKICAg
ICB1cGRhdGVNaW5pbXVtTGF5b3V0U2l6ZSgpOwpAQCAtMTkxLDcgKzE5Myw3IEBAIGJvb2wgVmll
d3BvcnRDb25maWd1cmF0aW9uOjpzaG91bGRJZ25vcmVIb3Jpem9udGFsU2NhbGluZ0NvbnN0cmFp
bnRzKCkgY29uc3QKICAgICBpZiAobV92aWV3cG9ydEFyZ3VtZW50cy53aWR0aCA9PSBWaWV3cG9y
dEFyZ3VtZW50czo6VmFsdWVEZXZpY2VXaWR0aCkKICAgICAgICAgcmV0dXJuIGxhaWRPdXRXaWRl
clRoYW5WaWV3cG9ydDsKIAotICAgIGlmIChtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlSXNT
ZXQgJiYgbV9jb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZSA9PSAxKQorICAgIGlmIChtX2NvbmZp
Z3VyYXRpb24uaW5pdGlhbFNjYWxlSXNTZXQgJiYgbV9jb25maWd1cmF0aW9uLmluaXRpYWxTY2Fs
ZUlnbm9yaW5nTGF5b3V0U2NhbGVGYWN0b3IgPT0gMSkKICAgICAgICAgcmV0dXJuIGxhaWRPdXRX
aWRlclRoYW5WaWV3cG9ydDsKIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTI5OSw2ICszMDEsNyBA
QCBWaWV3cG9ydENvbmZpZ3VyYXRpb246OlBhcmFtZXRlcnMgVmlld3BvcnRDb25maWd1cmF0aW9u
OjpuYXRpdmVXZWJwYWdlUGFyYW1ldGVycwogICAgIHBhcmFtZXRlcnMubWluaW11bVNjYWxlID0g
MTsKICAgICBwYXJhbWV0ZXJzLm1heGltdW1TY2FsZSA9IDU7CiAgICAgcGFyYW1ldGVycy5pbml0
aWFsU2NhbGUgPSAxOworICAgIHBhcmFtZXRlcnMuaW5pdGlhbFNjYWxlSWdub3JpbmdMYXlvdXRT
Y2FsZUZhY3RvciA9IDE7CiAgICAgcGFyYW1ldGVycy5pbml0aWFsU2NhbGVJc1NldCA9IHRydWU7
CiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7CiB9CkBAIC0zNTcsNiArMzYwLDcgQEAgVmlld3BvcnRD
b25maWd1cmF0aW9uOjpQYXJhbWV0ZXJzIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6dGVzdGluZ1Bh
cmFtZXRlcnMoKQogewogICAgIFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKICAgICBwYXJhbWV0ZXJz
LmluaXRpYWxTY2FsZSA9IDE7CisgICAgcGFyYW1ldGVycy5pbml0aWFsU2NhbGVJZ25vcmluZ0xh
eW91dFNjYWxlRmFjdG9yID0gMTsKICAgICBwYXJhbWV0ZXJzLmluaXRpYWxTY2FsZUlzU2V0ID0g
dHJ1ZTsKICAgICBwYXJhbWV0ZXJzLmFsbG93c1Nocmlua1RvRml0ID0gdHJ1ZTsKICAgICBwYXJh
bWV0ZXJzLm1pbmltdW1TY2FsZSA9IDE7CkBAIC00MjYsMTkgKzQzMCwyMyBAQCB2b2lkIFZpZXdw
b3J0Q29uZmlndXJhdGlvbjo6dXBkYXRlQ29uZmlndXJhdGlvbigpCiAgICAgICAgIG1fY29uZmln
dXJhdGlvbi5hbGxvd3NTaHJpbmtUb0ZpdCA9IG1fdmlld3BvcnRBcmd1bWVudHMuc2hyaW5rVG9G
aXQgIT0gMC47CiAKICAgICBtX2NvbmZpZ3VyYXRpb24uYXZvaWRzVW5zYWZlQXJlYSA9IG1fdmll
d3BvcnRBcmd1bWVudHMudmlld3BvcnRGaXQgIT0gVmlld3BvcnRGaXQ6OkNvdmVyOworICAgIG1f
Y29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yID0gbV9j
b25maWd1cmF0aW9uLmluaXRpYWxTY2FsZTsKKyAgICBtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNj
YWxlICo9IG1fbGF5b3V0U2l6ZVNjYWxlRmFjdG9yOworICAgIG1fY29uZmlndXJhdGlvbi5taW5p
bXVtU2NhbGUgKj0gbV9sYXlvdXRTaXplU2NhbGVGYWN0b3I7CisgICAgbV9jb25maWd1cmF0aW9u
Lm1heGltdW1TY2FsZSAqPSBtX2xheW91dFNpemVTY2FsZUZhY3RvcjsKIAogICAgIExPR19XSVRI
X1NUUkVBTShWaWV3cG9ydHMsIHN0cmVhbSA8PCAiVmlld3BvcnRDb25maWd1cmF0aW9uICIgPDwg
dGhpcyA8PCAiIHVwZGF0ZUNvbmZpZ3VyYXRpb24gIiA8PCAqdGhpcyA8PCAiIGdpdmVzIGluaXRp
YWwgc2NhbGUgIiA8PCBpbml0aWFsU2NhbGUoKSA8PCAiIGJhc2VkIG9uIGNvbnRlbnRTaXplICIg
PDwgbV9jb250ZW50U2l6ZSA8PCAiIGFuZCBsYXlvdXQgc2l6ZSAiIDw8IGxheW91dFdpZHRoKCkg
PDwgIngiIDw8IGxheW91dEhlaWdodCgpKTsKIH0KIAogdm9pZCBWaWV3cG9ydENvbmZpZ3VyYXRp
b246OnVwZGF0ZU1pbmltdW1MYXlvdXRTaXplKCkKIHsKLSAgICBpZiAoIXNob3VsZE92ZXJyaWRl
RGV2aWNlV2lkdGhBbmRTaHJpbmtUb0ZpdCgpKSB7Ci0gICAgICAgIG1fbWluaW11bUxheW91dFNp
emUgPSBtX3ZpZXdMYXlvdXRTaXplOworICAgIG1fbWluaW11bUxheW91dFNpemUgPSBtX3ZpZXdM
YXlvdXRTaXplIC8gbV9sYXlvdXRTaXplU2NhbGVGYWN0b3I7CisKKyAgICBpZiAoIXNob3VsZE92
ZXJyaWRlRGV2aWNlV2lkdGhBbmRTaHJpbmtUb0ZpdCgpKQogICAgICAgICByZXR1cm47Ci0gICAg
fQogCiAgICAgZmxvYXQgbWluRGV2aWNlV2lkdGggPSBwbGF0Zm9ybURldmljZVdpZHRoT3ZlcnJp
ZGUoKTsKLSAgICBtX21pbmltdW1MYXlvdXRTaXplID0gRmxvYXRTaXplKG1pbkRldmljZVdpZHRo
LCBzdGQ6OnJvdW5kZihtX3ZpZXdMYXlvdXRTaXplLmhlaWdodCgpICogKG1pbkRldmljZVdpZHRo
IC8gbV92aWV3TGF5b3V0U2l6ZS53aWR0aCgpKSkpOworICAgIG1fbWluaW11bUxheW91dFNpemUg
PSBGbG9hdFNpemUobWluRGV2aWNlV2lkdGgsIHN0ZDo6cm91bmRmKG1fbWluaW11bUxheW91dFNp
emUuaGVpZ2h0KCkgKiAobWluRGV2aWNlV2lkdGggLyBtX21pbmltdW1MYXlvdXRTaXplLndpZHRo
KCkpKSk7CiB9CiAKIGRvdWJsZSBWaWV3cG9ydENvbmZpZ3VyYXRpb246OnZpZXdwb3J0QXJndW1l
bnRzTGVuZ3RoKGRvdWJsZSBsZW5ndGgpIGNvbnN0CkBAIC00NjksMTcgKzQ3NywxNyBAQCBpbnQg
Vmlld3BvcnRDb25maWd1cmF0aW9uOjpsYXlvdXRXaWR0aCgpIGNvbnN0CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBJZiBub3QsIG1ha2Ugc3VyZSB0aGUgdmlld3BvcnQgd2lkdGggYW5kIGluaXRp
YWwgc2NhbGUgY2FuIGNvLWV4aXN0LgotICAgICAgICBkb3VibGUgaW5pdGlhbENvbnRlbnRXaWR0
aEluVmlld3BvcnRDb29yZGluYXRlID0gbV9jb25maWd1cmF0aW9uLndpZHRoICogbV9jb25maWd1
cmF0aW9uLmluaXRpYWxTY2FsZTsKKyAgICAgICAgZG91YmxlIGluaXRpYWxDb250ZW50V2lkdGhJ
blZpZXdwb3J0Q29vcmRpbmF0ZSA9IG1fY29uZmlndXJhdGlvbi53aWR0aCAqIG1fY29uZmlndXJh
dGlvbi5pbml0aWFsU2NhbGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yOwogICAgICAgICBpZiAo
aW5pdGlhbENvbnRlbnRXaWR0aEluVmlld3BvcnRDb29yZGluYXRlIDwgbWluaW11bUxheW91dFNp
emUud2lkdGgoKSkgewogICAgICAgICAgICAgLy8gVGhlIHNwZWNpZmllZCB3aWR0aCBkb2VzIG5v
dCBmaXQgaW4gdmlld3BvcnQuIFJldHVybiB0aGUgbWluaW11bSB3aWR0aCB0aGF0IHNhdGlzZnkg
dGhlIGluaXRpYWxTY2FsZSBjb25zdHJhaW50LgotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6cm91
bmQobWluaW11bUxheW91dFNpemUud2lkdGgoKSAvIG1fY29uZmlndXJhdGlvbi5pbml0aWFsU2Nh
bGUpOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQobWluaW11bUxheW91dFNpemUud2lk
dGgoKSAvIG1fY29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGVJZ25vcmluZ0xheW91dFNjYWxlRmFj
dG9yKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gc3RkOjpyb3VuZChtX2NvbmZpZ3VyYXRp
b24ud2lkdGgpOwogICAgIH0KIAogICAgIC8vIElmIHRoZSBwYWdlIGhhcyBhIHJlYWwgc2NhbGUs
IHRoZW4ganVzdCByZXR1cm4gdGhlIG1pbmltdW0gc2l6ZSBvdmVyIHRoZSBpbml0aWFsIHNjYWxl
LgogICAgIGlmIChtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlSXNTZXQgJiYgIW1fY29uZmln
dXJhdGlvbi5oZWlnaHRJc1NldCkKLSAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQobWluaW11bUxh
eW91dFNpemUud2lkdGgoKSAvIG1fY29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUpOworICAgICAg
ICByZXR1cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpIC8gbV9jb25maWd1
cmF0aW9uLmluaXRpYWxTY2FsZUlnbm9yaW5nTGF5b3V0U2NhbGVGYWN0b3IpOwogCiAgICAgaWYg
KG1pbmltdW1MYXlvdXRTaXplLmhlaWdodCgpID4gMCkKICAgICAgICAgcmV0dXJuIHN0ZDo6cm91
bmQobWluaW11bUxheW91dFNpemUud2lkdGgoKSAqIGxheW91dEhlaWdodCgpIC8gbWluaW11bUxh
eW91dFNpemUuaGVpZ2h0KCkpOwpAQCAtNTA1LDE3ICs1MTMsMTcgQEAgaW50IFZpZXdwb3J0Q29u
ZmlndXJhdGlvbjo6bGF5b3V0SGVpZ2h0KCkgY29uc3QKICAgICAgICAgfQogCiAgICAgICAgIC8v
IElmIG5vdCwgbWFrZSBzdXJlIHRoZSB2aWV3cG9ydCB3aWR0aCBhbmQgaW5pdGlhbCBzY2FsZSBj
YW4gY28tZXhpc3QuCi0gICAgICAgIGRvdWJsZSBpbml0aWFsQ29udGVudEhlaWdodEluVmlld3Bv
cnRDb29yZGluYXRlID0gbV9jb25maWd1cmF0aW9uLmhlaWdodCAqIG1fY29uZmlndXJhdGlvbi5p
bml0aWFsU2NhbGU7CisgICAgICAgIGRvdWJsZSBpbml0aWFsQ29udGVudEhlaWdodEluVmlld3Bv
cnRDb29yZGluYXRlID0gbV9jb25maWd1cmF0aW9uLmhlaWdodCAqIG1fY29uZmlndXJhdGlvbi5p
bml0aWFsU2NhbGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yOwogICAgICAgICBpZiAoaW5pdGlh
bENvbnRlbnRIZWlnaHRJblZpZXdwb3J0Q29vcmRpbmF0ZSA8IG1pbmltdW1MYXlvdXRTaXplLmhl
aWdodCgpKSB7CiAgICAgICAgICAgICAvLyBUaGUgc3BlY2lmaWVkIHdpZHRoIGRvZXMgbm90IGZp
dCBpbiB2aWV3cG9ydC4gUmV0dXJuIHRoZSBtaW5pbXVtIGhlaWdodCB0aGF0IHNhdGlzZnkgdGhl
IGluaXRpYWxTY2FsZSBjb25zdHJhaW50LgotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6cm91bmQo
bWluaW11bUxheW91dFNpemUuaGVpZ2h0KCkgLyBtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxl
KTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6OnJvdW5kKG1pbmltdW1MYXlvdXRTaXplLmhlaWdo
dCgpIC8gbV9jb25maWd1cmF0aW9uLmluaXRpYWxTY2FsZUlnbm9yaW5nTGF5b3V0U2NhbGVGYWN0
b3IpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBzdGQ6OnJvdW5kKG1fY29uZmlndXJhdGlv
bi5oZWlnaHQpOwogICAgIH0KIAogICAgIC8vIElmIHRoZSBwYWdlIGhhcyBhIHJlYWwgc2NhbGUs
IHRoZW4ganVzdCByZXR1cm4gdGhlIG1pbmltdW0gc2l6ZSBvdmVyIHRoZSBpbml0aWFsIHNjYWxl
LgogICAgIGlmIChtX2NvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlSXNTZXQgJiYgIW1fY29uZmln
dXJhdGlvbi53aWR0aElzU2V0KQotICAgICAgICByZXR1cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5
b3V0U2l6ZS5oZWlnaHQoKSAvIG1fY29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUpOworICAgICAg
ICByZXR1cm4gc3RkOjpyb3VuZChtaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQoKSAvIG1fY29uZmln
dXJhdGlvbi5pbml0aWFsU2NhbGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yKTsKIAogICAgIGlm
IChtaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCgpID4gMCkKICAgICAgICAgcmV0dXJuIHN0ZDo6cm91
bmQobWluaW11bUxheW91dFNpemUuaGVpZ2h0KCkgKiBsYXlvdXRXaWR0aCgpIC8gbWluaW11bUxh
eW91dFNpemUud2lkdGgoKSk7CkBAIC01MzgsNiArNTQ2LDcgQEAgVGV4dFN0cmVhbSYgb3BlcmF0
b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgVmlld3BvcnRDb25maWd1cmF0aW9uOjpQYXJhbWV0
ZXJzJgogICAgIHRzIDw8ICJpbml0aWFsU2NhbGUgIiA8PCBwYXJhbWV0ZXJzLmluaXRpYWxTY2Fs
ZSA8PCAiLCBzZXQ6ICIgPDwgKHBhcmFtZXRlcnMuaW5pdGlhbFNjYWxlSXNTZXQgPyAidHJ1ZSIg
OiAiZmFsc2UiKTsKICAgICB0cy5lbmRHcm91cCgpOwogCisgICAgdHMuZHVtcFByb3BlcnR5KCJp
bml0aWFsU2NhbGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yIiwgcGFyYW1ldGVycy5pbml0aWFs
U2NhbGVJZ25vcmluZ0xheW91dFNjYWxlRmFjdG9yKTsKICAgICB0cy5kdW1wUHJvcGVydHkoIm1p
bmltdW1TY2FsZSIsIHBhcmFtZXRlcnMubWluaW11bVNjYWxlKTsKICAgICB0cy5kdW1wUHJvcGVy
dHkoIm1heGltdW1TY2FsZSIsIHBhcmFtZXRlcnMubWF4aW11bVNjYWxlKTsKICAgICB0cy5kdW1w
UHJvcGVydHkoImFsbG93c1VzZXJTY2FsaW5nIiwgcGFyYW1ldGVycy5hbGxvd3NVc2VyU2NhbGlu
Zyk7CkBAIC01NzYsNiArNTg1LDcgQEAgU3RyaW5nIFZpZXdwb3J0Q29uZmlndXJhdGlvbjo6ZGVz
Y3JpcHRpb24oKSBjb25zdAogCiAgICAgdHMuZHVtcFByb3BlcnR5KCJjb250ZW50U2l6ZSIsIG1f
Y29udGVudFNpemUpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgibWluaW11bUxheW91dFNpemUiLCBt
X21pbmltdW1MYXlvdXRTaXplKTsKKyAgICB0cy5kdW1wUHJvcGVydHkoImxheW91dFNpemVTY2Fs
ZUZhY3RvciIsIG1fbGF5b3V0U2l6ZVNjYWxlRmFjdG9yKTsKICAgICB0cy5kdW1wUHJvcGVydHko
ImNvbXB1dGVkIGluaXRpYWwgc2NhbGUiLCBpbml0aWFsU2NhbGUoKSk7CiAgICAgdHMuZHVtcFBy
b3BlcnR5KCJjb21wdXRlZCBtaW5pbXVtIHNjYWxlIiwgbWluaW11bVNjYWxlKCkpOwogICAgIHRz
LmR1bXBQcm9wZXJ0eSgiY29tcHV0ZWQgbGF5b3V0IHNpemUiLCBsYXlvdXRTaXplKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9ydENvbmZpZ3VyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvVmlld3BvcnRDb25maWd1cmF0aW9uLmgKaW5kZXggM2ZhNmNkYjc4
MGY2NjcwYjk5MThkNjk4MTMxNDcyMGQ5ZGUyOWNlYi4uOTFhOWJhMTVjMDk5ZTdmNmE4NzJiNzdm
MDMyOGZkYzJlMGM5YTczOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3cG9y
dENvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1ZpZXdwb3J0Q29uZmln
dXJhdGlvbi5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICAgICAgZG91YmxlIHdpZHRo
IHsgMCB9OwogICAgICAgICBkb3VibGUgaGVpZ2h0IHsgMCB9OwogICAgICAgICBkb3VibGUgaW5p
dGlhbFNjYWxlIHsgMCB9OworICAgICAgICBkb3VibGUgaW5pdGlhbFNjYWxlSWdub3JpbmdMYXlv
dXRTY2FsZUZhY3RvciB7IDAgfTsKICAgICAgICAgZG91YmxlIG1pbmltdW1TY2FsZSB7IDAgfTsK
ICAgICAgICAgZG91YmxlIG1heGltdW1TY2FsZSB7IDAgfTsKICAgICAgICAgYm9vbCBhbGxvd3NV
c2VyU2NhbGluZyB7IGZhbHNlIH07CkBAIC02Miw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICAgICAg
Ym9vbCBvcGVyYXRvcj09KGNvbnN0IFBhcmFtZXRlcnMmIG90aGVyKSBjb25zdAogICAgICAgICB7
CiAgICAgICAgICAgICByZXR1cm4gd2lkdGggPT0gb3RoZXIud2lkdGggJiYgaGVpZ2h0ID09IG90
aGVyLmhlaWdodAotICAgICAgICAgICAgICAgICYmIGluaXRpYWxTY2FsZSA9PSBvdGhlci5pbml0
aWFsU2NhbGUgJiYgbWluaW11bVNjYWxlID09IG90aGVyLm1pbmltdW1TY2FsZSAmJiBtYXhpbXVt
U2NhbGUgPT0gb3RoZXIubWF4aW11bVNjYWxlCisgICAgICAgICAgICAgICAgJiYgaW5pdGlhbFNj
YWxlID09IG90aGVyLmluaXRpYWxTY2FsZSAmJiBpbml0aWFsU2NhbGVJZ25vcmluZ0xheW91dFNj
YWxlRmFjdG9yID09IG90aGVyLmluaXRpYWxTY2FsZUlnbm9yaW5nTGF5b3V0U2NhbGVGYWN0b3Ig
JiYgbWluaW11bVNjYWxlID09IG90aGVyLm1pbmltdW1TY2FsZSAmJiBtYXhpbXVtU2NhbGUgPT0g
b3RoZXIubWF4aW11bVNjYWxlCiAgICAgICAgICAgICAgICAgJiYgYWxsb3dzVXNlclNjYWxpbmcg
PT0gb3RoZXIuYWxsb3dzVXNlclNjYWxpbmcgJiYgYWxsb3dzU2hyaW5rVG9GaXQgPT0gb3RoZXIu
YWxsb3dzU2hyaW5rVG9GaXQgJiYgYXZvaWRzVW5zYWZlQXJlYSA9PSBvdGhlci5hdm9pZHNVbnNh
ZmVBcmVhCiAgICAgICAgICAgICAgICAgJiYgd2lkdGhJc1NldCA9PSBvdGhlci53aWR0aElzU2V0
ICYmIGhlaWdodElzU2V0ID09IG90aGVyLmhlaWdodElzU2V0ICYmIGluaXRpYWxTY2FsZUlzU2V0
ID09IG90aGVyLmluaXRpYWxTY2FsZUlzU2V0OwogICAgICAgICB9CkBAIC03OSw3ICs4MCw3IEBA
IHB1YmxpYzoKICAgICBjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV92aWV3TGF5b3V0U2l6ZTsgfQogCiAgICAgY29uc3QgRmxvYXRTaXplJiBtaW5pbXVt
TGF5b3V0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bUxheW91dFNpemU7IH0KLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHNldFZpZXdMYXlvdXRTaXplKGNvbnN0IEZsb2F0U2l6ZSYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0Vmlld0xheW91dFNpemUoY29uc3QgRmxvYXRTaXpl
Jiwgc3RkOjpvcHRpb25hbDxkb3VibGU+JiYgc2NhbGVGYWN0b3IgPSBzdGQ6Om51bGxvcHQpOwog
CiAgICAgY29uc3QgT3B0aW9uU2V0PERpc2FibGVkQWRhcHRhdGlvbnM+JiBkaXNhYmxlZEFkYXB0
YXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9kaXNhYmxlZEFkYXB0YXRpb25zOyB9CiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBzZXREaXNhYmxlZEFkYXB0YXRpb25zKGNvbnN0IE9wdGlvblNldDxE
aXNhYmxlZEFkYXB0YXRpb25zPiYpOwpAQCAtMTM3LDYgKzEzOCw3IEBAIHByaXZhdGU6CiAgICAg
Vmlld3BvcnRBcmd1bWVudHMgbV92aWV3cG9ydEFyZ3VtZW50czsKICAgICBPcHRpb25TZXQ8RGlz
YWJsZWRBZGFwdGF0aW9ucz4gbV9kaXNhYmxlZEFkYXB0YXRpb25zOwogCisgICAgZG91YmxlIG1f
bGF5b3V0U2l6ZVNjYWxlRmFjdG9yIHsgMSB9OwogICAgIGJvb2wgbV9jYW5JZ25vcmVTY2FsaW5n
Q29uc3RyYWludHM7CiAgICAgYm9vbCBtX2ZvcmNlQWx3YXlzVXNlclNjYWxhYmxlOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAK
aW5kZXggYjFmYjRlNTE0NmY2OWY1NTg4NGIyZTQzMDc1NTllN2EwNzMxZjgxZi4uZmZjOGM4NjY5
OTJjMTAwMDc2NDc3ZGNiYjM4ZmFiMGZjNmUyNzA3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTkwLDYgKzkwLDcgQEAg
dm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgdGV4dEF1dG9zaXppbmdXaWR0aDsKICAgICBlbmNv
ZGVyIDw8IGlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzOwogICAgIGVuY29kZXIgPDwgdmlld3Bv
cnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemU7CisgICAgZW5jb2RlciA8PCB2aWV3cG9ydENv
bmZpZ3VyYXRpb25MYXlvdXRTaXplU2NhbGVGYWN0b3I7CiAgICAgZW5jb2RlciA8PCB2aWV3cG9y
dENvbmZpZ3VyYXRpb25WaWV3U2l6ZTsKICAgICBlbmNvZGVyIDw8IG1heGltdW1Vbm9ic2N1cmVk
U2l6ZTsKICNlbmRpZgpAQCAtMjU3LDYgKzI1OCw4IEBAIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKSkKICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMu
dmlld3BvcnRDb25maWd1cmF0aW9uTGF5b3V0U2l6ZVNjYWxlRmFjdG9yKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudmll
d3BvcnRDb25maWd1cmF0aW9uVmlld1NpemUpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5tYXhpbXVtVW5vYnNjdXJlZFNp
emUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5oCmluZGV4IGRiNGMwN2YwN2M4NjY0M2M2NWY2YTA4ODdmZDg5YjIzNWMwODk3MjYuLjhkOWZk
OGFlM2Q3NmNjYWRjZTYwNGYwMmZjNmNlNDg3ZTgzNzUyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTE0Nyw2ICsxNDcsNyBA
QCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgZmxvYXQgdGV4dEF1dG9z
aXppbmdXaWR0aDsKICAgICBib29sIGlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzOwogICAgIFdl
YkNvcmU6OkZsb2F0U2l6ZSB2aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZTsKKyAg
ICBkb3VibGUgdmlld3BvcnRDb25maWd1cmF0aW9uTGF5b3V0U2l6ZVNjYWxlRmFjdG9yOwogICAg
IFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3U2l6ZTsKICAgICBX
ZWJDb3JlOjpGbG9hdFNpemUgbWF4aW11bVVub2JzY3VyZWRTaXplOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBlNjUzMmQ0
NzkxOTRiOWRiNGYxYjE2NDA5ZmIzY2MxNTE5M2I3ODBlLi4xNGE1YzM5OGIxZTI3YzRjMTlhY2Qz
OGJiODkyYjA4ZTYzZmE1NWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTI2NDAsNyArMjY0MCw3IEBAIHN0YXRpYyBXZWJDb3JlOjpG
bG9hdFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6RmxvYXRQb2ludCBjb250
ZW50T2ZmCiAgICAgICAgIHJldHVybjsKIAogICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVj
dHMsIHN0cmVhbSA8PCAiLVtXS1dlYlZpZXcgIiA8PCBfcGFnZS0+cGFnZUlEKCkgPDwgIiBfZGlz
cGF0Y2hTZXRWaWV3TGF5b3V0U2l6ZTpdICIgPDwgdmlld0xheW91dFNpemUgPDwgIiBjb250ZW50
Wm9vbVNjYWxlICIgPDwgY29udGVudFpvb21TY2FsZShzZWxmKSk7Ci0gICAgX3BhZ2UtPnNldFZp
ZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKHZpZXdMYXlvdXRTaXplKTsKKyAgICBf
cGFnZS0+c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUodmlld0xheW91dFNp
emUsIF9wYWdlLT5sYXlvdXRTaXplU2NhbGVGYWN0b3IoKSk7CiAgICAgX2xhc3RTZW50Vmlld0xh
eW91dFNpemUgPSB2aWV3TGF5b3V0U2l6ZTsKIH0KIApAQCAtNTE1MCwxOCArNTE1MCwyNSBAQCBz
dGF0aWMgaW5saW5lIFdlYktpdDo6RmluZE9wdGlvbnMgdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0
aW9ucyB3a0ZpbmRPcHRpb25zKQogCiAtIChDR0Zsb2F0KV92aWV3U2NhbGUKIHsKKyNpZiBQTEFU
Rk9STShNQUMpCiAgICAgcmV0dXJuIF9wYWdlLT52aWV3U2NhbGVGYWN0b3IoKTsKKyNlbHNlCisg
ICAgcmV0dXJuIF9wYWdlLT5sYXlvdXRTaXplU2NhbGVGYWN0b3IoKTsKKyNlbmRpZgogfQogCiAt
ICh2b2lkKV9zZXRWaWV3U2NhbGU6KENHRmxvYXQpdmlld1NjYWxlCiB7CisgICAgaWYgKHZpZXdT
Y2FsZSA8PSAwIHx8IGlzbmFuKHZpZXdTY2FsZSkgfHwgaXNpbmYodmlld1NjYWxlKSkKKyAgICAg
ICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpA
IlZpZXcgc2NhbGUgc2hvdWxkIGJlIGEgcG9zaXRpdmUgbnVtYmVyIl07CisKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgX2ltcGwtPnNldFZpZXdTY2FsZSh2aWV3U2NhbGUpOwogI2Vsc2UKLSAgICBp
ZiAodmlld1NjYWxlIDw9IDAgfHwgaXNuYW4odmlld1NjYWxlKSB8fCBpc2luZih2aWV3U2NhbGUp
KQotICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24g
Zm9ybWF0OkAiVmlldyBzY2FsZSBzaG91bGQgYmUgYSBwb3NpdGl2ZSBudW1iZXIiXTsKKyAgICBp
ZiAoX3BhZ2UtPmxheW91dFNpemVTY2FsZUZhY3RvcigpID09IHZpZXdTY2FsZSkKKyAgICAgICAg
cmV0dXJuOwogCi0gICAgX3BhZ2UtPnNjYWxlVmlldyh2aWV3U2NhbGUpOworICAgIF9wYWdlLT5z
ZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShbc2VsZiBhY3RpdmVWaWV3TGF5
b3V0U2l6ZTpzZWxmLmJvdW5kc10sIHZpZXdTY2FsZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5k
ZXggN2E0YTNiMjQzMGI4MGM1MmVkNTU1NDBlOGY2YmZmNThjMmI1NjMwNC4uNDk2NzMxNjJmMDc3
NmU2OTBmNTliNDZjZGU0NmUyZTE3YWYyNWJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0xNzcsNyArMTc3LDcg
QEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHM6KSBDR1NpemUgX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMgV0tfQVBJX0FWQUlM
QUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogCi1AcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRWaWV3U2NhbGU6KSBDR0Zsb2F0IF92aWV3U2NhbGU7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRWaWV3U2NhbGU6KSBDR0Zsb2F0IF92aWV3U2NhbGUgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3MoOS4wKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldEJhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZTopIEJPT0wgX2JhY2tn
cm91bmRFeHRlbmRzQmV5b25kUGFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMy40KSwg
aW9zKDguMCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmlu
ZGV4IDgzYTdhNzgyMjkwODkwM2FmMGVhNmYwYTA1NzI5ZmIxMzliMDVmOTkuLjA4MWM0YzZiM2Ew
ZTRhZDlkM2M0YzVmNTk4ODczOWI0MTExNTE5MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0xNDMwLDYgKzE0MzAsOSBAQCBzdGF0aWMgV2ViQ29yZTo6
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0b1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rp
b24oTlNVcwogCiAtICh2b2lkKV9zZXRWaWV3U2NhbGU6KENHRmxvYXQpdmlld1NjYWxlCiB7Cisg
ICAgaWYgKHZpZXdTY2FsZSA8PSAwIHx8IGlzbmFuKHZpZXdTY2FsZSkgfHwgaXNpbmYodmlld1Nj
YWxlKSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0
aW9uIGZvcm1hdDpAIlZpZXcgc2NhbGUgc2hvdWxkIGJlIGEgcG9zaXRpdmUgbnVtYmVyIl07CisK
ICAgICBfZGF0YS0+X2ltcGwtPnNldFZpZXdTY2FsZSh2aWV3U2NhbGUpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDUyYzEyZGI5NGM2
NmRlNzU0NDdlYjI5ODJjZTllYjc1ZDQ0MDIwNDQuLjZjOTc3NzFlNjBjMGUyZjc3ZWMwYTliODc0
Mzk5MGNhMzg2YjQyN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCkBAIC0xODg2LDkgKzE4ODYsNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRWaWV3
U2NhbGUoQ0dGbG9hdCB2aWV3U2NhbGUpCiAgICAgaWYgKCFzdXBwb3J0c0FyYml0cmFyeUxheW91
dE1vZGVzKCkgJiYgdmlld1NjYWxlICE9IDEpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICh2
aWV3U2NhbGUgPD0gMCB8fCBpc25hbih2aWV3U2NhbGUpIHx8IGlzaW5mKHZpZXdTY2FsZSkpCi0g
ICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3Jt
YXQ6QCJWaWV3IHNjYWxlIHNob3VsZCBiZSBhIHBvc2l0aXZlIG51bWJlciJdOwotCiAgICAgbV9w
YWdlLT5zY2FsZVZpZXcodmlld1NjYWxlKTsKICAgICBbbV9sYXlvdXRTdHJhdGVneSBkaWRDaGFu
Z2VWaWV3U2NhbGVdOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggZWFjYWY0OGE2OWViMjFiODMwZWY1ZGM0Njc3NjY4OGQ0YzE4ZTcxMy4uZjllODgyYzMx
YWZjZjZhNGY2ZTQxZjQxMWZlYjQzNjQ3ZDc0MTJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC02MzM5LDYgKzYzMzksNyBAQCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKCkKICAgICBwYXJhbWV0
ZXJzLm1pbWVUeXBlc1dpdGhDdXN0b21Db250ZW50UHJvdmlkZXJzID0gcGFnZUNsaWVudCgpLm1p
bWVUeXBlc1dpdGhDdXN0b21Db250ZW50UHJvdmlkZXJzKCk7CiAgICAgcGFyYW1ldGVycy5pZ25v
cmVzVmlld3BvcnRTY2FsZUxpbWl0cyA9IG1fZm9yY2VBbHdheXNVc2VyU2NhbGFibGU7CiAgICAg
cGFyYW1ldGVycy52aWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZSA9IG1fdmlld3Bv
cnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemU7CisgICAgcGFyYW1ldGVycy52aWV3cG9ydENv
bmZpZ3VyYXRpb25MYXlvdXRTaXplU2NhbGVGYWN0b3IgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlv
bkxheW91dFNpemVTY2FsZUZhY3RvcjsKICAgICBwYXJhbWV0ZXJzLm1heGltdW1Vbm9ic2N1cmVk
U2l6ZSA9IG1fbWF4aW11bVVub2JzY3VyZWRTaXplOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNmY0ZDQ4MGViMmNkYmVjODQyNjdjYWJmNGQyNzVi
MDNmNGMwNDliZC4uZTNjMzI3ZTc5MmMzYWQ5MWU3NjVjZjdiM2RjMjZmNTllMzY3MDQ2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTU4NSw3ICs1ODUsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiB2aWV3TGF5b3V0U2l6ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBt
YXhpbXVtVW5vYnNjdXJlZFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0RXhw
b3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3Vy
ZWRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFVub2JzY3VyZWRSZWN0SW5T
Y3JvbGxWaWV3Q29vcmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiB1bm9i
c2N1cmVkU2FmZUFyZWFJbnNldHMsIGRvdWJsZSB0YXJnZXRTY2FsZSwgaW50MzJfdCBkZXZpY2VP
cmllbnRhdGlvbiwgRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKTsKIAotICAgIHZvaWQgc2V0
Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRT
aXplJik7CisgICAgdm9pZCBzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBkb3VibGUgc2NhbGVGYWN0b3IpOwogICAgIHZvaWQg
c2V0TWF4aW11bVVub2JzY3VyZWRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwogICAg
IHZvaWQgc2V0RGV2aWNlT3JpZW50YXRpb24oaW50MzJfdCk7CiAgICAgaW50MzJfdCBkZXZpY2VP
cmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGV2aWNlT3JpZW50YXRpb247IH0KQEAgLTYz
Nyw2ICs2MzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgdWludDY0X3QgcmVxdWVzdElEKTsKICAgICB2b2lk
IHNldEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKGJvb2wpOwogICAgIGJvb2wgZm9yY2VBbHdheXNV
c2VyU2NhbGFibGUoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlQWx3YXlzVXNlclNjYWxhYmxlOyB9
CisgICAgZG91YmxlIGxheW91dFNpemVTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fdmll
d3BvcnRDb25maWd1cmF0aW9uTGF5b3V0U2l6ZVNjYWxlRmFjdG9yOyB9CiAgICAgdm9pZCBzZXRJ
c1Njcm9sbGluZ09yWm9vbWluZyhib29sKTsKICAgICB2b2lkIHJlcXVlc3RSZWN0c0ZvckdyYW51
bGFyaXR5V2l0aFNlbGVjdGlvbk9mZnNldChXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHksIHVpbnQz
Ml90IG9mZnNldCwgV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWxl
Y3Rpb25SZWN0PiYsIENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKICAgICB2b2lkIHJlcXVlc3RS
ZWN0c0F0U2VsZWN0aW9uT2Zmc2V0V2l0aFRleHQoaW50MzJfdCBvZmZzZXQsIGNvbnN0IFN0cmlu
ZyYsIFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VsZWN0aW9uUmVj
dD4mLCBDYWxsYmFja0Jhc2U6OkVycm9yKT4mJik7CkBAIC0yMjI5LDYgKzIyMzAsNyBAQCBwcml2
YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxOb2RlQXNzaXN0YW5jZUFyZ3VtZW50cz4gbV9kZWZl
cnJlZE5vZGVBc3Npc3RhbmNlQXJndW1lbnRzOwogICAgIGJvb2wgbV9mb3JjZUFsd2F5c1VzZXJT
Y2FsYWJsZSB7IGZhbHNlIH07CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fdmlld3BvcnRDb25m
aWd1cmF0aW9uVmlld0xheW91dFNpemU7CisgICAgZG91YmxlIG1fdmlld3BvcnRDb25maWd1cmF0
aW9uTGF5b3V0U2l6ZVNjYWxlRmFjdG9yIHsgMSB9OwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBt
X21heGltdW1Vbm9ic2N1cmVkU2l6ZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAzOTRhNTY1MjUzYjY5OGE0Njg0MDRj
OTVhNWJhNjc4OWRjNjQzMDZmLi4xOTZhY2MyNTRiMzA4ZWI0NGUwZDBhNjRlNGRhOTQzOTM1YWVm
M2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0KQEAgLTMxOCwxMiArMzE4LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkeW5hbWljVmlld3Bv
cnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xheW91dFNpemUsIGNvCiAgICAgICAg
IHRhcmdldFNjYWxlLCBkZXZpY2VPcmllbnRhdGlvbiwgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0
ZUlEKSwgbV9wYWdlSUQpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0Vmlld3BvcnRDb25m
aWd1cmF0aW9uVmlld0xheW91dFNpemUoY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBzaXplKQor
dm9pZCBXZWJQYWdlUHJveHk6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXpl
KGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSwgZG91YmxlIHNjYWxlRmFjdG9yKQogewog
ICAgIG1fdmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUgPSBzaXplOworICAgIG1f
dmlld3BvcnRDb25maWd1cmF0aW9uTGF5b3V0U2l6ZVNjYWxlRmFjdG9yID0gc2NhbGVGYWN0b3I7
CiAKICAgICBpZiAoaXNWYWxpZCgpKQotICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OlNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKHNpemUpLCBt
X3BhZ2VJRCk7CisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0
Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUoc2l6ZSwgc2NhbGVGYWN0b3IpLCBt
X3BhZ2VJRCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRGb3JjZUFsd2F5c1VzZXJTY2Fs
YWJsZShib29sIHVzZXJTY2FsYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggYTRlNDZjYjYyMGUyODFkZTBiZGE4MDRkZDI0NmI4OWNjZjAx
ODBmZS4uZjAxMDU5YmVjZGVlMjc2MGNjYzU0Mzk2NTExYmJlOWJmNmVlZTIwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYyMyw3ICs2MjMs
NyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICBz
ZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0U2l6ZShwYXJhbWV0ZXJzLnZpZXdwb3J0
Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKTsKKyAgICBzZXRWaWV3cG9ydENvbmZpZ3VyYXRp
b25WaWV3TGF5b3V0U2l6ZShwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlv
dXRTaXplLCBwYXJhbWV0ZXJzLnZpZXdwb3J0Q29uZmlndXJhdGlvbkxheW91dFNpemVTY2FsZUZh
Y3Rvcik7CiAgICAgc2V0TWF4aW11bVVub2JzY3VyZWRTaXplKHBhcmFtZXRlcnMubWF4aW11bVVu
b2JzY3VyZWRTaXplKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCmluZGV4IGQwMWM5YWU5ODFlZTU1NGI3YmI2MGQ4MzFhZWVjYjA5ODA5N2Vm
MWEuLjE2ZjZmZDNmYjk3NGU4YWU4NDlhMTkzNTNjOWE4ODcwNDg3NWVmMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTg5Myw3ICs4OTMsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCB1cGRhdGVWaXNpYmlsaXR5U3RhdGUoYm9vbCBpc0luaXRpYWxTdGF0
ZSA9IGZhbHNlKTsKIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2b2lkIHNldFZpZXdwb3J0Q29u
ZmlndXJhdGlvblZpZXdMYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOworICAg
IHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUoY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiwgZG91YmxlIHNjYWxlRmFjdG9yKTsKICAgICB2b2lkIHNldE1heGltdW1V
bm9ic2N1cmVkU2l6ZShjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKICAgICB2b2lkIHNldERl
dmljZU9yaWVudGF0aW9uKGludDMyX3QpOwogICAgIHZvaWQgc2V0T3ZlcnJpZGVWaWV3cG9ydEFy
Z3VtZW50cyhjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzPiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KaW5kZXggNmRkZjhmNDc3YzQ5ODY1YjA5OGU5ZjU0Mjg3OThiZDk5YjZmM2I2ZC4u
YmYyNTE0NDJlNjg5NDBmZTk3YTdjODdlODEyMjE2MzE2OTM2YzY4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC00
NSw3ICs0NSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIEtl
eUV2ZW50KFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCBldmVudCkKICAgICBNb3VzZUV2ZW50KFdl
YktpdDo6V2ViTW91c2VFdmVudCBldmVudCkKICNpZiBQTEFURk9STShJT1MpCi0gICAgU2V0Vmll
d3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUp
CisgICAgU2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUoV2ViQ29yZTo6Rmxv
YXRTaXplIHNpemUsIGRvdWJsZSBzY2FsZUZhY3RvcikKICAgICBTZXRNYXhpbXVtVW5vYnNjdXJl
ZFNpemUoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpCiAgICAgU2V0RGV2aWNlT3JpZW50YXRpb24o
aW50MzJfdCBkZXZpY2VPcmllbnRhdGlvbikKICAgICBTZXRPdmVycmlkZVZpZXdwb3J0QXJndW1l
bnRzKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM+IGFyZ3VtZW50cykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0KaW5kZXggNGIwODJjYjdhMzA1MmE3MTkwNGMxYzI1MWU5NWU0OGU2NTUwMzk0Zi4uYWI4MWZk
ZGI0MDIxZTc3ZTA2MGIxODMxZDAxNGNkZjgzMjg5ZmE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTI1MTgsMTAgKzI1
MTgsMTAgQEAgdm9pZCBXZWJQYWdlOjphdXRvZmlsbExvZ2luQ3JlZGVudGlhbHMoY29uc3QgU3Ry
aW5nJiB1c2VybmFtZSwgY29uc3QgU3RyaW5nJiBwYXMKICAgICB9CiB9CiAKLXZvaWQgV2ViUGFn
ZTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNpemUoY29uc3QgRmxvYXRTaXpl
JiBzaXplKQordm9pZCBXZWJQYWdlOjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25WaWV3TGF5b3V0
U2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGRvdWJsZSBzY2FsZUZhY3RvcikKIHsKLSAgICBM
T0dfV0lUSF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIldlYlBhZ2UgIiA8PCBtX3Bh
Z2VJRCA8PCAiIHNldFZpZXdwb3J0Q29uZmlndXJhdGlvblZpZXdMYXlvdXRTaXplICIgPDwgc2l6
ZSk7Ci0gICAgaWYgKG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnNldFZpZXdMYXlvdXRTaXplKHNp
emUpKQorICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiV2ViUGFn
ZSAiIDw8IG1fcGFnZUlEIDw8ICIgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uVmlld0xheW91dFNp
emUgIiA8PCBzaXplIDw8ICIgc2NhbGVGYWN0b3IgIiA8PCBzY2FsZUZhY3Rvcik7CisgICAgaWYg
KG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnNldFZpZXdMYXlvdXRTaXplKHNpemUsIHNjYWxlRmFj
dG9yKSkKICAgICAgICAgdmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCgpOwogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzM5MzU0NmI4
MDVmNWExZTJkMjNhOWRkZDE1MzIzNDEzZjMzM2ZjOC4uYTdhYWVmNGMyNDc0ZDk4NjY4NzZlMDZl
MTgwYjY1ODIwYWI4ZjBlYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE4LTEwLTEyICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIEFsbG93IFNQSSBjbGllbnRz
IHRvIGxheSBvdXQgYXQgYXJiaXRyYXJpbHkgc2NhbGVkIHNpemVzIGFuZCBzY2FsZSB0byBmaXQg
dGhlIHZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5MDUwNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDUxMTc3NjA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBUZWFjaCBVSVNjcmlwdENvbnRyb2xsZXIg
dG8gc2V0IFdLV2ViVmlldydzIHZpZXcgc2NhbGUgdmlhIGEgbmV3IGBzZXRWaWV3U2NhbGVgIG1l
dGhvZCwgc3VwcG9ydGVkIGluIFdlYktpdDIgb24KKyAgICAgICAgbWFjT1MgYW5kIGlPUy4KKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW06Cisg
ICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0Vmlld1NjYWxlKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAo
V1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnNldFZpZXdTY2FsZSk6CisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlk
bDoKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnNldFZpZXdT
Y2FsZSk6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3Jp
cHRDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9VSVNjcmlwdENvbnRy
b2xsZXJDb2NvYS5tbTogQWRkZWQuCisKKyAgICAgICAgQWRkIGEgbmV3IGZpbGUgZm9yIFVJU2Ny
aXB0Q29udHJvbGxlciBtZXRob2RzIG9uIENvY29hIHBsYXRmb3Jtcy4KKworICAgICAgICAoV1RS
OjpVSVNjcmlwdENvbnRyb2xsZXI6OnNldFZpZXdTY2FsZSk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFs
dWVzKToKKworICAgICAgICBFbnN1cmUgdGhhdCBfdmlld1NjYWxlIGlzIHJlc2V0IHRvIDEgYWZ0
ZXIgcnVubmluZyBhIGxheW91dCB0ZXN0LgorCiAyMDE4LTEwLTExICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJT1MgMTIgLSBTZXJ2aWNlIHdvcmtlciBjYWNo
ZSBub3Qgc2hhcmVkIHdoZW4gYWRkZWQgdG8gaG9tZXNjcmVlbgpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXggOGY3MDAwYzcxOGUx
NDkwNmRmYTBkYWFjNjQ0NzMxYzlkYmU3MjYyOS4uODllNWNiNWQ2YzU0MjE5YTUwODIzZDRiMTQx
ZTc5MTAyMTI3Y2JkOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2Ny
aXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3Jp
cHRDb250cm9sbGVySU9TLm1tCkBAIC04Miw2ICs4MiwxMCBAQCB2b2lkIFVJU2NyaXB0Q29udHJv
bGxlcjo6em9vbVRvU2NhbGUoZG91YmxlIHNjYWxlLCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAg
IH0pOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0Vmlld1NjYWxlKGRvdWJsZSkK
K3sKK30KKwogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNpbXVsYXRlQWNjZXNzaWJpbGl0eVNl
dHRpbmdzQ2hhbmdlTm90aWZpY2F0aW9uKEpTVmFsdWVSZWYpCiB7CiB9CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5tbQppbmRleCAyNTQ1M2Rk
OGU2ZTRmOGI5MmM0OWE2YTg5YzY1NGM4N2MwNjBlMmZhLi5mNGEzMzQzMTAzYmY3YTE1ZDZiMDRi
YjBhYzJhYjVhZGU4YzljMTExIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
VUlTY3JpcHRDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9V
SVNjcmlwdENvbnRyb2xsZXJNYWMubW0KQEAgLTg5LDYgKzg5LDEwIEBAIHZvaWQgVUlTY3JpcHRD
b250cm9sbGVyOjp6b29tVG9TY2FsZShkb3VibGUgc2NhbGUsIEpTVmFsdWVSZWYgY2FsbGJhY2sp
CiAgICAgfSk7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRWaWV3U2NhbGUoZG91
YmxlKQoreworfQorCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2ltdWxhdGVBY2Nlc3NpYmls
aXR5U2V0dGluZ3NDaGFuZ2VOb3RpZmljYXRpb24oSlNWYWx1ZVJlZikKIHsKIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2Ny
aXB0Q29udHJvbGxlci5pZGwgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCmluZGV4IDE1MjI1Y2FmNjVlM2VjZTI5
NjJlZmNkNGNkNTcxN2U1ZTE5MjQyYmYuLjMyNTM3ZDkwOGZmYjkwNjQ1YTI2N2ZkN2ViZjRlZDUy
NTk2MWQ3YWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250
ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbApA
QCAtMjE2LDYgKzIxNiw4IEBAIGludGVyZmFjZSBVSVNjcmlwdENvbnRyb2xsZXIgewogCiAgICAg
dm9pZCB6b29tVG9TY2FsZShkb3VibGUgc2NhbGUsIG9iamVjdCBjYWxsYmFjayk7CiAKKyAgICB2
b2lkIHNldFZpZXdTY2FsZShkb3VibGUgc2NhbGUpOworCiAgICAgdm9pZCBzY3JvbGxUb09mZnNl
dChsb25nIHgsIGxvbmcgeSk7IC8vIEluaXRpYXRlIGFuIGFuaW1hdGVkIHNjcm9sbCBpbiB0aGUg
VUkgcHJvY2Vzcy4KICAgICBhdHRyaWJ1dGUgb2JqZWN0IGRpZEVuZFNjcm9sbGluZ0NhbGxiYWNr
OwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9V
SVNjcmlwdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCAyNThiN2MxNTAzMzQwZDAwNDU4OTBl
M2YwZWY3NDUyNjg2NWYwN2U2Li43MzFiMmNiZGQ2MmYyMTViODA1MGQ3Njc1YjMyNmU0NzE2YmQx
MWNhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9V
SVNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTIxMCw2ICsyMTAsMTAgQEAgdm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6Onpvb21Ub1NjYWxlKGRvdWJsZSwgSlNWYWx1ZVJlZikKIHsK
IH0KIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldFZpZXdTY2FsZShkb3VibGUpCit7Cit9
CisKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzaW11bGF0ZUFjY2Vzc2liaWxpdHlTZXR0aW5n
c0NoYW5nZU5vdGlmaWNhdGlvbihKU1ZhbHVlUmVmKQogewogfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmggYi9U
b29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIu
aAppbmRleCBmODhmNzZmMTFjMDdjNDAxYzA2NzBkOWU1NGE2ODIxOGJjODZmMjUxLi5jZmEzMzIz
Zjc0NWVlNTZmNGI3OWIxMjMzODdkN2E1NjQzYjE3MzViIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9U
b29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIu
aApAQCAtNjYsNiArNjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkb0FmdGVyVmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlKEpTVmFsdWVSZWYgY2FsbGJhY2spOwogCiAgICAgdm9pZCB6b29tVG9TY2Fs
ZShkb3VibGUgc2NhbGUsIEpTVmFsdWVSZWYgY2FsbGJhY2spOworICAgIHZvaWQgc2V0Vmlld1Nj
YWxlKGRvdWJsZSk7CiAKICAgICB2b2lkIHNpbXVsYXRlQWNjZXNzaWJpbGl0eVNldHRpbmdzQ2hh
bmdlTm90aWZpY2F0aW9uKEpTVmFsdWVSZWYgY2FsbGJhY2spOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDhj
NzQ4OThkYmI1OTMyYTE1Y2U3YWU0NTk2ZDlkYmE2MjJiNWUzCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtMCww
ICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJVSVNj
cmlwdENvbnRyb2xsZXIuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW1wb3J0
ICJUZXN0Q29udHJvbGxlci5oIgorI2ltcG9ydCAiVGVzdFJ1bm5lcldLV2ViVmlldy5oIgorI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK3Zv
aWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRWaWV3U2NhbGUoZG91YmxlIHNjYWxlKQoreworI2lm
IFdLX0FQSV9FTkFCTEVECisgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJW
aWV3KCktPnBsYXRmb3JtVmlldygpLl92aWV3U2NhbGUgPSBzY2FsZTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKHNjYWxlKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjA3MWJhNWRkOGU1ODBhOTg5ZDQ5NzRl
NTI2NDU1ZThmZjYxNThmYS4uMjNhYzVhYjBhZmI3NGE1OGRiMTU1YWIzNzY2YjdkMDQ5MWM5Njc0
YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNSw2ICsxMzUsNyBA
QAogCQlFMTMyQUEzRDE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzMkFBM0Ix
N0NFNzc2RjAwNjExREYwIC8qIFdlYktpdFRlc3RSdW5uZXJFdmVudC5tbSAqLzsgfTsKIAkJRTFD
NjQyQzMxN0NCQ0M3MzAwRDY2QTNDIC8qIFBvc2VBc0NsYXNzLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjQyQzExN0NCQ0M3MzAwRDY2QTNDIC8q
IFBvc2VBc0NsYXNzLm1tICovOyB9OwogCQlFMUM2NDJDNjE3Q0JDRDRDMDBENjZBM0MgLyogV2Vi
S2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMUM2NDJDNDE3Q0JDRDRDMDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1
bm5lclBhc3RlYm9hcmQubW0gKi87IH07CisJCUY0NjI0MEIxMjE3MDEzRTUwMDkxN0IxNiAvKiBV
SVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0NjI0MEFGMjE3MDEyODMwMDkxN0IxNiAvKiBVSVNjcmlwdENvbnRy
b2xsZXJDb2NvYS5tbSAqLzsgfTsKIAkJRjRDMzU3OEMyMEU4NDQ0NjAwRkEwNzQ4IC8qIExheW91
dFRlc3RTcGVsbENoZWNrZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNEMzNTc4QTIwRTg0NDQwMDBGQTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hl
Y2tlci5tbSAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCkBAIC0zNzgs
NiArMzc5LDcgQEAKIAkJRTFDNjQyQzIxN0NCQ0M3MzAwRDY2QTNDIC8qIFBvc2VBc0NsYXNzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvc2VBc0NsYXNzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzY0MkM0MTdDQkNENEMwMEQ2NkEzQyAvKiBXZWJLaXRU
ZXN0UnVubmVyUGFzdGVib2FyZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMUM2NDJDNTE3Q0JDRDRDMDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1bm5lclBh
c3RlYm9hcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VGVzdFJ1
bm5lclBhc3RlYm9hcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ2MjQwQUYy
MTcwMTI4MzAwOTE3QjE2IC8qIFVJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUY0QzM1NzhBMjBFODQ0NDAwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxD
aGVja2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTGF5b3V0
VGVzdFNwZWxsQ2hlY2tlci5tbTsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5
b3V0VGVzdFNwZWxsQ2hlY2tlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRD
MzU3OEIyMEU4NDQ0MDAwRkEwNzQ4IC8qIExheW91dFRlc3RTcGVsbENoZWNrZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oOyBwYXRo
ID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3BlbGxDaGVja2VyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9u
ICovCkBAIC01NTYsNiArNTU4LDcgQEAKIAkJCQkyRENFMkNEMTFCODQ1MjQ1MDBDN0Y4MzIgLyog
VGVzdENvbnRyb2xsZXJDb2NvYS5tbSAqLywKIAkJCQkwRjg3QjYxNDFCQUNDNEI5MDA0RUM1NzIg
LyogVGVzdFJ1bm5lcldLV2ViVmlldy5oICovLAogCQkJCTBGODdCNjE1MUJBQ0M0QjkwMDRFQzU3
MiAvKiBUZXN0UnVubmVyV0tXZWJWaWV3Lm1tICovLAorCQkJCUY0NjI0MEFGMjE3MDEyODMwMDkx
N0IxNiAvKiBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0g
Y29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTA4Miw2ICsxMDg1LDcgQEAK
IAkJCQkwRjg3QjYxNzFCQUNDNEMwMDA0RUM1NzIgLyogVGVzdFJ1bm5lcldLV2ViVmlldy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTBGMThFNkU1MUQ2QjlCOUUwMDI3RTU0NyAvKiBVSVNjcmlwdENv
bnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOEU2RTYxRDZCOUJBMjAwMjdFNTQ3IC8q
IFVJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNDYyNDBCMTIxNzAx
M0U1MDA5MTdCMTYgLyogVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywK
IAkJCQkwRjczQjU1QzFCQTg5MDQyMDA0QjNFRjQgLyogVUlTY3JpcHRDb250cm9sbGVySU9TLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwNDMxQjlBRTE0NTAwNzQ0QUVCIC8qIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDQ0MUI5QUUxNEEw
MDc0NEFFQiAvKiBXb3JrUXVldWVNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCmluZGV4
IGFhY2Q5YzQ1NGE4ZTQ3ZjA0MzY0NmNmOWY0NDM4MTNlZDIxMTFiNWIuLjAyYjUzMjkxYmZiNzUx
YTQ2Mzg3M2Q4ZmI5NjVjZmFlZjI5MWQ4ZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAgLTIxNSw4ICsyMTUsMTEgQEAg
dm9pZCBUZXN0Q29udHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKCkK
ICAgICBwbGF0Zm9ybVJ1blVudGlsKGRvbmVSZW1vdmluZywgbm9UaW1lb3V0KTsKICAgICBbW19X
S1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgZGVmYXVsdFN0b3JlXSBfcmVtb3ZlQWxsQ29udGVu
dEV4dGVuc2lvbnNdOwogCi0gICAgaWYgKFBsYXRmb3JtV2ViVmlldyogd2ViVmlldyA9IG1haW5X
ZWJWaWV3KCkpCi0gICAgICAgIFt3ZWJWaWV3LT5wbGF0Zm9ybVZpZXcoKS5jb25maWd1cmF0aW9u
LnVzZXJDb250ZW50Q29udHJvbGxlciBfcmVtb3ZlQWxsVXNlckNvbnRlbnRGaWx0ZXJzXTsKKyAg
ICBpZiAoYXV0byogd2ViVmlldyA9IG1haW5XZWJWaWV3KCkpIHsKKyAgICAgICAgVGVzdFJ1bm5l
cldLV2ViVmlldyAqcGxhdGZvcm1WaWV3ID0gd2ViVmlldy0+cGxhdGZvcm1WaWV3KCk7CisgICAg
ICAgIFtwbGF0Zm9ybVZpZXcuY29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIgX3Jl
bW92ZUFsbFVzZXJDb250ZW50RmlsdGVyc107CisgICAgICAgIHBsYXRmb3JtVmlldy5fdmlld1Nj
YWxlID0gMTsKKyAgICB9CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhlY2Y3MzA2YTg1ODE5ODZiZGNl
ZGUzNWU0NTNlYjFiOTUxMDc1OGMuLjM4MDAyNzg5NWViMmMzMGM3ZjY3MGQ1MDQ4YjU0MDZmNGE1
NDI3YzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxOC0xMC0xMiAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBBbGxvdyBTUEkgY2xpZW50
cyB0byBsYXkgb3V0IGF0IGFyYml0cmFyaWx5IHNjYWxlZCBzaXplcyBhbmQgc2NhbGUgdG8gZml0
IHRoZSB2aWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTA1MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1MTE3NzYwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkIHR3byBuZXcgbGF5b3V0IHRlc3Rz
IG9uIGlPUyB0aGF0IGNoYW5nZSBXS1dlYlZpZXcncyB2aWV3IHNjYWxlLCBhbmQgbWVhc3VyZSB0
aGUgcmVzdWx0aW5nIHdpbmRvdyBzaXplcyBhbmQKKyAgICAgICAgbGVuZ3RocyBvZiB2aWV3cG9y
dCB1bml0cy4KKworICAgICAgICAqIGZhc3Qvdmlld3BvcnQvaW9zL2NvbnN0YW50LXdpZHRoLXZp
ZXdwb3J0LWFmdGVyLWNoYW5naW5nLXZpZXctc2NhbGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3ZpZXdwb3J0L2lvcy9jb25zdGFudC13aWR0aC12aWV3cG9ydC1hZnRlci1j
aGFuZ2luZy12aWV3LXNjYWxlLmh0bWw6IEFkZGVkLgorCisgICAgICAgIEFkZCBhIHRlc3QgcGFn
ZSB3aXRoIGEgdmlld3BvcnQgbWV0YSB0YWcgdGhhdCBoYXMgYSBjb25zdGFudCB3aWR0aCBhbmQg
YW4gZXhwbGljaXQgaW5pdGlhbCBzY2FsZSBvZiAwLjUuCisKKyAgICAgICAgKiBmYXN0L3ZpZXdw
b3J0L2lvcy9kZXZpY2Utd2lkdGgtdmlld3BvcnQtYWZ0ZXItY2hhbmdpbmctdmlldy1zY2FsZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvdmlld3BvcnQvaW9zL2RldmljZS13
aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWw6IEFkZGVkLgorCisg
ICAgICAgIEFkZCBhIHRlc3QgcGFnZSB3aXRoIGEgdmlld3BvcnQgbWV0YSB0YWcgYXQgZGV2aWNl
LXdpZHRoLCB3aXRoIGluaXRpYWwgc2NhbGUgMS4KKworICAgICAgICAqIHJlc291cmNlcy91aS1o
ZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuc2V0Vmlld1NjYWxlKToKKworICAg
ICAgICBBZGQgYSBjb252ZW5pZW5jZSBmdW5jdGlvbiB0aGF0IHdyYXBzIGEgVUkgc2NyaXB0IGlu
dm9jYXRpb24gb2YgYHNldFZpZXdTY2FsZWAgaW4gYSBwcm9taXNlLgorCisgICAgICAgICh3aW5k
b3cuVUlIZWxwZXIpOgorCiAyMDE4LTEwLTEyICBEYXdlaSBGZW50b24gIDxyZWFsZGF3ZWlAYXBw
bGUuY29tPgogCiAgICAgICAgIFtNb2phdmUgV2syXSBMYXlvdXQgVGVzdCBodHRwL3Rlc3RzL2Nh
Y2hlL2Rpc2stY2FjaGUvZGlzay1jYWNoZS12YWxpZGF0aW9uLWF0dGFjaG1lbnQuaHRtbCBpcyBm
bGFreQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvY29uc3RhbnQt
d2lkdGgtdmlld3BvcnQtYWZ0ZXItY2hhbmdpbmctdmlldy1zY2FsZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L2lvcy9jb25zdGFudC13aWR0aC12aWV3cG9ydC1hZnRl
ci1jaGFuZ2luZy12aWV3LXNjYWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDBjYzE0YjVj
NWUyMTYyMDQzNzRhNjYzM2FlNDczMmQxOGI5YTY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvY29uc3RhbnQtd2lkdGgtdmlld3BvcnQtYWZ0ZXItY2hh
bmdpbmctdmlldy1zY2FsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NiBAQAorc2V0Vmlld1Nj
YWxlKDAuNTApCit3aW5kb3cgc2l6ZTogWzEyODAsIDIxOTJdCitzcXVhcmUgc2l6ZTogWzEyOCwg
MjE5XQorem9vbSBzY2FsZTogMC4yNQorCitzZXRWaWV3U2NhbGUoMC43NSkKK3dpbmRvdyBzaXpl
OiBbODUzLCAxNDYxXQorc3F1YXJlIHNpemU6IFs4NSwgMTQ2XQorem9vbSBzY2FsZTogMC4zOAor
CitzZXRWaWV3U2NhbGUoMS4wMCkKK3dpbmRvdyBzaXplOiBbNjQwLCAxMDk2XQorc3F1YXJlIHNp
emU6IFs2NCwgMTEwXQorem9vbSBzY2FsZTogMC41MAorCitzZXRWaWV3U2NhbGUoMS4yNSkKK3dp
bmRvdyBzaXplOiBbNTEyLCA4NzddCitzcXVhcmUgc2l6ZTogWzUxLCA4OF0KK3pvb20gc2NhbGU6
IDAuNjMKKworc2V0Vmlld1NjYWxlKDEuNTApCit3aW5kb3cgc2l6ZTogWzQyNywgNzMxXQorc3F1
YXJlIHNpemU6IFs0MywgNzNdCit6b29tIHNjYWxlOiAwLjc1CisKK3NldFZpZXdTY2FsZSgxLjI1
KQord2luZG93IHNpemU6IFs1MTIsIDg3N10KK3NxdWFyZSBzaXplOiBbNTEsIDg4XQorem9vbSBz
Y2FsZTogMC42MworCitzZXRWaWV3U2NhbGUoMS4wMCkKK3dpbmRvdyBzaXplOiBbNjQwLCAxMDk2
XQorc3F1YXJlIHNpemU6IFs2NCwgMTEwXQorem9vbSBzY2FsZTogMC41MAorCitzZXRWaWV3U2Nh
bGUoMC43NSkKK3dpbmRvdyBzaXplOiBbODUzLCAxNDYxXQorc3F1YXJlIHNpemU6IFs4NSwgMTQ2
XQorem9vbSBzY2FsZTogMC4zOAorCitzZXRWaWV3U2NhbGUoMC41MCkKK3dpbmRvdyBzaXplOiBb
MTI4MCwgMjE5Ml0KK3NxdWFyZSBzaXplOiBbMTI4LCAyMTldCit6b29tIHNjYWxlOiAwLjI1CisK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvY29uc3RhbnQtd2lk
dGgtdmlld3BvcnQtYWZ0ZXItY2hhbmdpbmctdmlldy1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC92aWV3cG9ydC9pb3MvY29uc3RhbnQtd2lkdGgtdmlld3BvcnQtYWZ0ZXItY2hhbmdpbmct
dmlldy1zY2FsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYzI0M2UwN2ViZGVmNmJkM2NkZDU2ZWNkMzdm
YTg4NTU4NmZkOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0
L2lvcy9jb25zdGFudC13aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0
bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD02NDAsIGluaXRpYWwtc2NhbGU9
MC41Ij4KKyAgICA8c3R5bGU+CisgICAgICAgICNzcXVhcmUgeworICAgICAgICAgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgICAgICAgICAgd2lkdGg6IDEwdnc7CisgICAgICAgICAgICBoZWln
aHQ6IDEwdmg7CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibGFjazsKKyAgICAgICAg
fQorCisgICAgICAgICNvdXRwdXQgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAg
ICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAg
ICB9CisKKyAgICAgICAgYm9keSB7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAg
ICB3aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgfQorICAg
IDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgICAgICBjb25zdCBhcHBlbmRPdXRwdXQgPSBtZXNzYWdlID0+IHsKKyAgICAgICAgICAgIG91
dHB1dC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAg
ICAgICAgICBvdXRwdXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7
CisgICAgICAgIH07CisKKyAgICAgICAgZm9yIChsZXQgdGFyZ2V0U2NhbGUgb2YgWzAuNSwgMC43
NSwgMSwgMS4yNSwgMS41LCAxLjI1LCAxLCAwLjc1LCAwLjVdKSB7CisgICAgICAgICAgICBhcHBl
bmRPdXRwdXQoYHNldFZpZXdTY2FsZSgke3RhcmdldFNjYWxlLnRvRml4ZWQoMil9KWApOworCisg
ICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5zZXRWaWV3U2NhbGUodGFyZ2V0U2NhbGUpOworICAg
ICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW1VJSGVscGVyLmVuc3VyZVZpc2libGVDb250ZW50
UmVjdFVwZGF0ZSgpLCBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKV0pOworCisg
ICAgICAgICAgICBhcHBlbmRPdXRwdXQoYHdpbmRvdyBzaXplOiBbJHtpbm5lcldpZHRofSwgJHtp
bm5lckhlaWdodH1dYCk7CisgICAgICAgICAgICBhcHBlbmRPdXRwdXQoYHNxdWFyZSBzaXplOiBb
JHtzcXVhcmUuY2xpZW50V2lkdGh9LCAke3NxdWFyZS5jbGllbnRIZWlnaHR9XWApOworICAgICAg
ICAgICAgYXBwZW5kT3V0cHV0KGB6b29tIHNjYWxlOiAke3BhcnNlRmxvYXQoYXdhaXQgVUlIZWxw
ZXIuem9vbVNjYWxlKCkpLnRvRml4ZWQoMil9YCk7CisgICAgICAgICAgICBhcHBlbmRPdXRwdXQo
IiIpOworICAgICAgICB9CisKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
fQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cisg
ICAgPGRpdiBpZD0ic3F1YXJlIj48L2Rpdj4KKyAgICA8cHJlIGlkPSJvdXRwdXQiPjwvcHJlPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9p
b3MvZGV2aWNlLXdpZHRoLXZpZXdwb3J0LWFmdGVyLWNoYW5naW5nLXZpZXctc2NhbGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvZGV2aWNlLXdpZHRoLXZpZXdw
b3J0LWFmdGVyLWNoYW5naW5nLXZpZXctc2NhbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1
ZGQ0NjZiMzE0MTBjMzA1NDY2NWEzZDYxODYyOWQxOWM0ZjIwNGIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3ZpZXdwb3J0L2lvcy9kZXZpY2Utd2lkdGgtdmlld3BvcnQtYWZ0
ZXItY2hhbmdpbmctdmlldy1zY2FsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NiBAQAorc2V0
Vmlld1NjYWxlKDAuNTApCit3aW5kb3cgc2l6ZTogWzY0MCwgMTA5Nl0KK3NxdWFyZSBzaXplOiBb
NjQsIDExMF0KK3pvb20gc2NhbGU6IDAuNTAKKworc2V0Vmlld1NjYWxlKDAuNzUpCit3aW5kb3cg
c2l6ZTogWzQyNywgNzMxXQorc3F1YXJlIHNpemU6IFs0MywgNzNdCit6b29tIHNjYWxlOiAwLjc1
CisKK3NldFZpZXdTY2FsZSgxLjAwKQord2luZG93IHNpemU6IFszMjAsIDU0OF0KK3NxdWFyZSBz
aXplOiBbMzIsIDU1XQorem9vbSBzY2FsZTogMS4wMAorCitzZXRWaWV3U2NhbGUoMS4yNSkKK3dp
bmRvdyBzaXplOiBbMjU2LCA0MzhdCitzcXVhcmUgc2l6ZTogWzI2LCA0NF0KK3pvb20gc2NhbGU6
IDEuMjUKKworc2V0Vmlld1NjYWxlKDEuNTApCit3aW5kb3cgc2l6ZTogWzIxMywgMzY1XQorc3F1
YXJlIHNpemU6IFsyMSwgMzddCit6b29tIHNjYWxlOiAxLjUwCisKK3NldFZpZXdTY2FsZSgxLjI1
KQord2luZG93IHNpemU6IFsyNTYsIDQzOF0KK3NxdWFyZSBzaXplOiBbMjYsIDQ0XQorem9vbSBz
Y2FsZTogMS4yNQorCitzZXRWaWV3U2NhbGUoMS4wMCkKK3dpbmRvdyBzaXplOiBbMzIwLCA1NDhd
CitzcXVhcmUgc2l6ZTogWzMyLCA1NV0KK3pvb20gc2NhbGU6IDEuMDAKKworc2V0Vmlld1NjYWxl
KDAuNzUpCit3aW5kb3cgc2l6ZTogWzQyNywgNzMxXQorc3F1YXJlIHNpemU6IFs0MywgNzNdCit6
b29tIHNjYWxlOiAwLjc1CisKK3NldFZpZXdTY2FsZSgwLjUwKQord2luZG93IHNpemU6IFs2NDAs
IDEwOTZdCitzcXVhcmUgc2l6ZTogWzY0LCAxMTBdCit6b29tIHNjYWxlOiAwLjUwCisKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC92aWV3cG9ydC9pb3MvZGV2aWNlLXdpZHRoLXZpZXdw
b3J0LWFmdGVyLWNoYW5naW5nLXZpZXctc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvdmll
d3BvcnQvaW9zL2RldmljZS13aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTU5OGRlOTk4Yzk0NTM5YjVmMGVhZjJiYTEzNDY5N2U3NmZhZTI1
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvdmlld3BvcnQvaW9zL2Rldmlj
ZS13aWR0aC12aWV3cG9ydC1hZnRlci1jaGFuZ2luZy12aWV3LXNjYWxlLmh0bWwKQEAgLTAsMCAr
MSw1OSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxl
eGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+
CisgICAgPHN0eWxlPgorICAgICAgICAjc3F1YXJlIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKKyAgICAgICAgICAgIHdpZHRoOiAxMHZ3OworICAgICAgICAgICAgaGVpZ2h0OiAx
MHZoOworICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7CisgICAgICAgIH0KKwor
ICAgICAgICAjb3V0cHV0IHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAg
aGVpZ2h0OiAxMDAlOworICAgICAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgfQor
CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgd2lk
dGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgIH0KKyAgICA8L3N0
eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAg
ICAgY29uc3QgYXBwZW5kT3V0cHV0ID0gbWVzc2FnZSA9PiB7CisgICAgICAgICAgICBvdXRwdXQu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworICAgICAgICAg
ICAgb3V0cHV0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOworICAg
ICAgICB9OworCisgICAgICAgIGZvciAobGV0IHRhcmdldFNjYWxlIG9mIFswLjUsIDAuNzUsIDEs
IDEuMjUsIDEuNSwgMS4yNSwgMSwgMC43NSwgMC41XSkgeworICAgICAgICAgICAgYXBwZW5kT3V0
cHV0KGBzZXRWaWV3U2NhbGUoJHt0YXJnZXRTY2FsZS50b0ZpeGVkKDIpfSlgKTsKKworICAgICAg
ICAgICAgYXdhaXQgVUlIZWxwZXIuc2V0Vmlld1NjYWxlKHRhcmdldFNjYWxlKTsKKyAgICAgICAg
ICAgIGF3YWl0IFByb21pc2UuYWxsKFtVSUhlbHBlci5lbnN1cmVWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGUoKSwgVUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCldKTsKKworICAgICAg
ICAgICAgYXBwZW5kT3V0cHV0KGB3aW5kb3cgc2l6ZTogWyR7aW5uZXJXaWR0aH0sICR7aW5uZXJI
ZWlnaHR9XWApOworICAgICAgICAgICAgYXBwZW5kT3V0cHV0KGBzcXVhcmUgc2l6ZTogWyR7c3F1
YXJlLmNsaWVudFdpZHRofSwgJHtzcXVhcmUuY2xpZW50SGVpZ2h0fV1gKTsKKyAgICAgICAgICAg
IGFwcGVuZE91dHB1dChgem9vbSBzY2FsZTogJHtwYXJzZUZsb2F0KGF3YWl0IFVJSGVscGVyLnpv
b21TY2FsZSgpKS50b0ZpeGVkKDIpfWApOworICAgICAgICAgICAgYXBwZW5kT3V0cHV0KCIiKTsK
KyAgICAgICAgfQorCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KKyAg
ICA8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxk
aXYgaWQ9InNxdWFyZSI+PC9kaXY+CisgICAgPHByZSBpZD0ib3V0cHV0Ij48L3ByZT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIu
anMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4IGNlMTc4YjUwODBh
MmM5NDZiZGVkNGIwMTI4ZTYzOTExMDI4MWViNmQuLmZmMGM2MGM0OTNjZDRhNDI1OTc1MzIwNDUz
MWIwN2Q5YTJiZDAwMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtMzM5LDQg
KzMzOSwxMiBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfSk7CiAgICAgfQorCisgICAgc3RhdGljIHNldFZpZXdTY2FsZShzY2Fs
ZSkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5pc1dlYktpdDIoKSkKKyAgICAgICAgICAgIHJl
dHVybiBQcm9taXNlLnJlc29sdmUoKTsKKworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGB1aUNvbnRyb2xsZXIuc2V0Vmlld1NjYWxl
KCR7c2NhbGV9KWAsIHJlc29sdmUpKTsKKyAgICB9CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>