<?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>211265</bug_id>
          
          <creation_ts>2020-04-30 16:29:58 -0700</creation_ts>
          <short_desc>Books sometimes ends up with blank pages, especially after adjusting font size</short_desc>
          <delta_ts>2020-05-01 21:57:18 -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>New Bugs</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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1647644</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-04-30 16:29:58 -0700</bug_when>
    <thetext>Books sometimes ends up with blank pages, especially after adjusting font size</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647645</commentid>
    <comment_count>1</comment_count>
      <attachid>398118</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-04-30 16:30:45 -0700</bug_when>
    <thetext>Created attachment 398118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647646</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-04-30 16:30:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/59898144&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647649</commentid>
    <comment_count>3</comment_count>
      <attachid>398120</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-04-30 16:33:32 -0700</bug_when>
    <thetext>Created attachment 398120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647697</commentid>
    <comment_count>4</comment_count>
      <attachid>398134</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-04-30 18:37:03 -0700</bug_when>
    <thetext>Created attachment 398134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647707</commentid>
    <comment_count>5</comment_count>
      <attachid>398138</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-04-30 19:05:27 -0700</bug_when>
    <thetext>Created attachment 398138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647744</commentid>
    <comment_count>6</comment_count>
      <attachid>398138</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-30 20:33:40 -0700</bug_when>
    <thetext>Comment on attachment 398138
Patch

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

&gt; Source/WebKit/ChangeLog:11
&gt; +        - There is a window during page creation where a WKWebView created

Maybe don&apos;t use the term &quot;window&quot; here.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:518
&gt; +    if (auto exposedRect = frameView.viewExposedRectInContentCoordinates())
&gt; +        visibleRect.intersect(*exposedRect);

This doesn&apos;t seem right. You&apos;re intersecting a rect affected by scrolling with another that is not, and we want to start layer flushing above the layer that scrolls, I think.

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3786
&gt; +    if (m_drawingArea)
&gt; +        m_drawingArea-&gt;didChangeViewExposedRect();

Should this only be called when it changed?

&gt; Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:326
&gt; +    if (auto exposedRect = m_webPage.mainFrameView()-&gt;viewExposedRectInContentCoordinates())
&gt; +        visibleRect.intersect(*exposedRect);

Same dubious scrolled vs non-scrolled rects.

&gt; Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:469
&gt; +        if (auto exposedRect = m_webPage.mainFrameView()-&gt;viewExposedRectInContentCoordinates())
&gt; +            visibleRect.intersect(*exposedRect);

Here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647760</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-04-30 21:53:43 -0700</bug_when>
    <thetext>Super confused now, because the rects that are being intersected are not different... just the timing of the transformation is different. Previously, DrawingArea did the -&gt; contents transform before setting the rect on FrameView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647761</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-04-30 21:55:15 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #7)
&gt; Super confused now, because the rects that are being intersected are not
&gt; different... just the timing of the transformation is different. Previously,
&gt; DrawingArea did the -&gt; contents transform before setting the rect on
&gt; FrameView.

Maybe it&apos;s always been wrong but all clients of clips-to-visible also expand the view so that there&apos;s not actually any WebCore-visible scrolling?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1647762</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-04-30 21:55:38 -0700</bug_when>
    <thetext>Gonna need some test apps I guess (or to expand the existing layout tests).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648148</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-01 16:51:11 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #9)
&gt; Gonna need some test apps I guess (or to expand the existing layout tests).

You are totally right (it was always broken), and it just didn&apos;t have any impact in any clients.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648155</commentid>
    <comment_count>11</comment_count>
      <attachid>398263</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-01 17:20:01 -0700</bug_when>
    <thetext>Created attachment 398263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648159</commentid>
    <comment_count>12</comment_count>
      <attachid>398264</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-05-01 17:25:40 -0700</bug_when>
    <thetext>Created attachment 398264
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648167</commentid>
    <comment_count>13</comment_count>
      <attachid>398264</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-05-01 18:16:23 -0700</bug_when>
    <thetext>Comment on attachment 398264
Patch

Obviously Simon should review again, too, but this looks great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648181</commentid>
    <comment_count>14</comment_count>
      <attachid>398264</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-01 19:59:33 -0700</bug_when>
    <thetext>Comment on attachment 398264
Patch

r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648195</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-01 21:57:17 -0700</bug_when>
    <thetext>Committed r261044: &lt;https://trac.webkit.org/changeset/261044&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398264.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398118</attachid>
            <date>2020-04-30 16:30:45 -0700</date>
            <delta_ts>2020-04-30 16:33:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211265-20200430163044.patch</filename>
            <type>text/plain</type>
            <size>37872</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdjMmRkZDkwMDIwNjlk
NmI1OTkwMGUzNGUyOWI4ZmZlY2FkYWM5NS4uMjEzMjEwNmI2MjE2NGRjY2RlOTFmMmJjODViNGJj
NjlhNGE4NjgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA0LTMwICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEJvb2tzIHNvbWV0
aW1lcyBlbmRzIHVwIHdpdGggYmxhbmsgcGFnZXMsIGVzcGVjaWFsbHkgYWZ0ZXIgYWRqdXN0aW5n
IGZvbnQgc2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExMjY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTg5ODE0ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAg
ICAgICAgUmVuYW1lICJoYXNSZWN0Q2hhbmdlZCIgYmVjYXVzZSBpdCBvbmx5IHRlc3RzIGlmIHRo
ZSBvcHRpb25hbC1zdGF0ZSBvZiB0aGUKKyAgICAgICAgcmVjdCBoYXMgY2hhbmdlZCwgbm90IHRo
ZSBhY3R1YWwgdmFsdWUuCisKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dmlld0V4cG9z
ZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgY29uc3QpOgorICAgICAgICBFeHBvc2UgdGhlIHZp
ZXdFeHBvc2VkUmVjdCBpbiBjb250ZW50IGNvb3JkaW5hdGVzIGZvciBhIHZhcmlldHkgb2YgY2xp
ZW50cy4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9UZXh0
SW5kaWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVJbmRpY2F0b3IpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29tcHV0ZVBhZ2VUaWxlZEJhY2tpbmdDb3ZlcmFnZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnZpc2libGVSZWN0Rm9yTGF5ZXJGbHVzaGluZyBjb25zdCk6CisgICAg
ICAgIEFkb3B0IHZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzLgorICAgICAgICBN
YXBwaW5nIGZyb20gcm9vdCB2aWV3IC0+IGNvbnRlbnRzIGNvb3JkaW5hdGVzIG5vdyBoYXBwZW5z
IGF0IHRpbWUtb2YtdXNlCisgICAgICAgIGluc3RlYWQgb2YgYWhlYWQgb2YgdGltZSAod2hlcmUg
aXQgY291bGQgYmVjb21lIHN0YWxlKS4KKwogMjAyMC0wNC0yOSAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIGRlYnVnIEFTU0VSVCBpbiBJbWFn
ZURlY29kZXJBVkZPYmpDOjpzdG9yZVNhbXBsZUJ1ZmZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJhMDlmYmNk
OWQwYmYzZmVkZjNhYzc4ZjYwZTdkYWE4ODJhMzU5ZmQuLjMzYjUxYjNhMzlmZDU0ZGVmYzFkNWU4
NWI5YmVkZTA5MmVhMzQxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjAtMDQtMzAg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQm9va3Mg
c29tZXRpbWVzIGVuZHMgdXAgd2l0aCBibGFuayBwYWdlcywgZXNwZWNpYWxseSBhZnRlciBhZGp1
c3RpbmcgZm9udCBzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTEyNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5ODk4MTQ0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgZmV3IHByb2JsZW1z
OgorCisgICAgICAgIC0gVGhlcmUgaXMgYSB3aW5kb3cgZHVyaW5nIHBhZ2UgY3JlYXRpb24gd2hl
cmUgYSBXS1dlYlZpZXcgY3JlYXRlZAorICAgICAgICB3aXRoIF9jbGlwc1RvVmlzaWJsZVJlY3Q9
WUVTIHdvdWxkIG5vdCB5ZXQgaGF2ZSBzZW50IGl0cyB2aWV3RXhwb3NlZFJlY3QKKyAgICAgICAg
dG8gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MsIGFuZCBpZiB3ZSBlbmQgdXAgY29uc3RydWN0aW5n
IHRpbGVzIGR1cmluZworICAgICAgICB0aGF0IHRpbWUsIHdlIGNhbiBtYWtlIHdheSB0b28gbWFu
eSwgYm9nZ2luZyBkb3duIHRoZSBwcm9jZXNzIChvciBjcmFzaGluZykuCisKKyAgICAgICAgRml4
IHRoaXMgYnkgYWx3YXlzIGtlZXBpbmcgdHJhY2sgb2YgdGhlIHZpZXdFeHBvc2VkUmVjdCAob24g
V2ViUGFnZVByb3h5LAorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBzb21ld2hhdC1tb3JlLXRyYW5z
aWVudCBEcmF3aW5nQXJlYVByb3h5KSBhbmQgc2VuZGluZyBpdAorICAgICAgICB0byB0aGUgV2Vi
IENvbnRlbnQgcHJvY2VzcyBpbiB0aGUgV2ViUGFnZSBjcmVhdGlvbiBwYXJhbWV0ZXJzLCB0byBl
bnRpcmVseQorICAgICAgICByZW1vdmUgdGhpcyB3aW5kb3cuCisKKyAgICAgICAgLSBFdmVuIHdo
ZW4gdGhlIHZpZXdFeHBvc2VkUmVjdCBzdWNjZXNzZnVsbHkgZ2V0cyB0byB0aGUgV2ViIENvbnRl
bnQKKyAgICAgICAgcHJvY2VzcywgaXQgY2FuIHN0aWxsIGVuZCB1cCB3aWxkbHkgd3Jvbmc6IHRo
ZSBEcmF3aW5nQXJlYSB3YXMgdGFza2VkIHdpdGgKKyAgICAgICAgd2F0Y2hpbmcgc2Nyb2xsaW5n
IGNoYW5nZXMsIGFwcGx5aW5nIHRoZSBzY3JvbGwgb2Zmc2V0IHRvIHRoZSB2aWV3RXhwb3NlZFJl
Y3QsCisgICAgICAgIGFuZCBwdXNoaW5nIGl0IHRvIEZyYW1lVmlldyBpbiBjb250ZW50IGNvb3Jk
aW5hdGVzLgorCisgICAgICAgIEluc3RlYWQgb2YgdGhpcyBjb21wbGljYXRlZCBhbmQgdGltaW5n
LWRlcGVuZGVudCBtZWNoYW5pc20sIHN0b3JlIHRoZQorICAgICAgICB2aWV3RXhwb3NlZFJlY3Qg
b24gRnJhbWVWaWV3IGluIHZpZXcgY29vcmRpbmF0ZXMgKGl0IGlzIGNhbGxlZCAidmlldyIKKyAg
ICAgICAgZXhwb3NlZCByZWN0IGFmdGVyIGFsbCksIGFuZCBjb252ZXJ0IHRvIGNvbnRlbnQgY29v
cmRpbmF0ZXMgb24gZGVtYW5kCisgICAgICAgIHdoZW4gY2xpZW50cyByZXF1ZXN0IGl0LgorCisg
ICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIFBsdW1iIHZpZXcg
ZXhwb3NlZCByZWN0IHZpYSBXZWJQYWdlIGNyZWF0aW9uIHBhcmFtZXRlcnMuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp1cGRhdGVWaWV3RXhwb3NlZFJlY3QpOgorICAgICAgICBTZW5kIHZpZXdFeHBvc2Vk
UmVjdCBjaGFuZ2VzIHRvIFdlYlBhZ2VQcm94eSBpbnN0ZWFkIG9mIERyYXdpbmdBcmVhUHJveHku
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OnZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6c2V0Vmlld0V4cG9z
ZWRSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5o
OgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5Ojp2aWV3RXhwb3NlZFJlY3QgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlkQ2hhbmdlVmlld0V4cG9z
ZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6aW5kaWNhdG9yTG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnNldFZpZXdFeHBvc2VkUmVj
dCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6dmlld0V4cG9zZWRSZWN0IGNvbnN0KToKKyAgICAgICAgTWFpbnRhaW4gdmlld0V4cG9zZWRS
ZWN0IG9uIFdlYlBhZ2VQcm94eSBpbnN0ZWFkIG9mIERyYXdpbmdBcmVhUHJveHksCisgICAgICAg
IHNvIHRoYXQgd2UgY2FuIGFsd2F5cyBzdG9yZSBpdCBldmVuIGlmIHdlIGRvbid0IGhhdmUgYSBE
cmF3aW5nQXJlYVByb3h5IHlldAorICAgICAgICAob3IgY2hhbmdlIERyYXdpbmdBcmVhUHJveGll
cykgYW5kIGNhbiBzZW5kIGl0IGluIFdlYlBhZ2UgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0Vmlld0V4cG9zZWRS
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0
ZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Ojp1cGRhdGVTY3JvbGxlZEV4cG9zZWRSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5t
bToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6OlRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QpOgorICAgICAg
ICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2Nyb2xsKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0
ZVNjcm9sbGVkRXhwb3NlZFJlY3QpOiBEZWxldGVkLgorICAgICAgICBQbHVtYiB2aWV3RXhwb3Nl
ZFJlY3QgZGlyZWN0bHkgdG8gRnJhbWVWaWV3LCBpbnN0ZWFkIG9mIHRyeWluZyB0byBhcHBseQor
ICAgICAgICB0aGUgcm9vdCB2aWV3IC0+IGNvbnRlbnRzIG1hcHBpbmcgb3Vyc2VsdmVzIGFuZCBw
dXNoaW5nIHVwZGF0ZXMuCisKIDIwMjAtMDQtMjkgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxh
cGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNjA4ODkpOiBUZXN0Q29u
dGV4dE1lbnU6L3dlYmtpdC9XZWJLaXRXZWJWaWV3L3BvcHVsYXRlLW1lbnUgbm8gbG9uZ2VyIHBh
c3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGIzZmUxNDBmYTM3YTc0ZThkYmNm
MTIxYjI2ZWI5YWVlZjY5NjU2YzIuLjUwNDg0MmNhOTRiODFjYTJiYzVkMDQxYzc0ZWVjNmUyNTI5
MGUzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTUzNzEsNyArNTM3MSw3IEBA
IHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2
aWV3RXhwb3NlZFJlY3QpCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0g
PDwgIkZyYW1lVmlldyAiIDw8IHRoaXMgPDwgIiBzZXRWaWV3RXhwb3NlZFJlY3QgIiA8PCAodmll
d0V4cG9zZWRSZWN0ID8gdmlld0V4cG9zZWRSZWN0LnZhbHVlKCkgOiBGbG9hdFJlY3QoKSkpOwog
Ci0gICAgYm9vbCBoYXNSZWN0Q2hhbmdlZCA9ICFtX3ZpZXdFeHBvc2VkUmVjdCA9PSAhdmlld0V4
cG9zZWRSZWN0OworICAgIGJvb2wgaGFzUmVjdEV4aXN0ZW5jZUNoYW5nZWQgPSAhbV92aWV3RXhw
b3NlZFJlY3QgPT0gIXZpZXdFeHBvc2VkUmVjdDsKICAgICBtX3ZpZXdFeHBvc2VkUmVjdCA9IHZp
ZXdFeHBvc2VkUmVjdDsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc3VwcG9ydCBjbGlwcGlu
ZyB0byB0aGUgZXhwb3NlZCByZWN0IGZvciBzdWJmcmFtZXMgYXMgd2VsbC4KQEAgLTUzNzksNyAr
NTM3OSw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8Rmxv
YXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChUaWxl
ZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMtPnRpbGVkQmFja2luZygpKSB7Ci0gICAgICAg
IGlmIChoYXNSZWN0Q2hhbmdlZCkKKyAgICAgICAgaWYgKGhhc1JlY3RFeGlzdGVuY2VDaGFuZ2Vk
KQogICAgICAgICAgICAgdXBkYXRlVGlsZWRCYWNraW5nQWRhcHRpdmVTaXppbmcoKTsKICAgICAg
ICAgYWRqdXN0VGlsZWRCYWNraW5nQ292ZXJhZ2UoKTsKICAgICAgICAgdGlsZWRCYWNraW5nLT5z
ZXRUaWxlZFNjcm9sbGluZ0luZGljYXRvclBvc2l0aW9uKG1fdmlld0V4cG9zZWRSZWN0ID8gbV92
aWV3RXhwb3NlZFJlY3QudmFsdWUoKS5sb2NhdGlvbigpIDogRmxvYXRQb2ludCgpKTsKQEAgLTUz
OTEsNiArNTM5MSwxMyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlv
bmFsPEZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KQogICAgIH0KIH0KIAorT3B0aW9uYWw8Rmxv
YXRSZWN0PiBGcmFtZVZpZXc6OnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1fdmlld0V4cG9zZWRSZWN0KQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworICAgIHJldHVybiByb290Vmlld1RvQ29udGVudHMoKm1fdmlld0V4cG9zZWRS
ZWN0KTsKK30KKwogdm9pZCBGcmFtZVZpZXc6OmNsZWFyVmlld3BvcnRTaXplT3ZlcnJpZGVGb3JD
U1NWaWV3cG9ydFVuaXRzKCkKIHsKICAgICBpZiAoIW1fb3ZlcnJpZGVWaWV3cG9ydFNpemUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCAyMWMyZWZjNmJhZmUyNGZhOTJmNTYxZWFmMzY0MmE4
YTdiNzZlNmQyLi5iNTVhYzUxMDRjOGUzZWE2NjJhYzBhYzNjNjM0MmE1OGUwMjQyMDVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTYyOCw3ICs2MjgsNyBAQCBwdWJsaWM6CiAgICAgLy8g
Y2xpcHBpbmcgYnkgb3RoZXIgVUkgZWxlbWVudHMpLCB3aGVyZWFzIHZpc2libGVDb250ZW50UmVj
dCBpcwogICAgIC8vIGludGVybmFsIHRvIFdlYkNvcmUgYW5kIGRvZXNuJ3QgcmVzcGVjdCB0aG9z
ZSB0aGluZ3MuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0
aW9uYWw8RmxvYXRSZWN0Pik7Ci0gICAgT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdFeHBvc2VkUmVjdDsgfQorICAgIFdFQkNPUkVfRVhQ
T1JUIE9wdGlvbmFsPEZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0
ZXMoKSBjb25zdDsKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgdm9pZCB1cGRh
dGVTbmFwT2Zmc2V0cygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9U
ZXh0SW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5jcHAK
aW5kZXggYWUzNGIzYjg3Zjg4ZjBiMDFhOTJiYWJhNDY3N2YxN2E5MjJlYzM1Yy4uNjM1MDc2MjIy
NDQyNTk1ZDQ1YmI5MjE2N2Q4YjE4ZGNkYzk1NWVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9UZXh0SW5kaWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJ
bmRpY2F0b3IuY3BwCkBAIC0zMzQsOCArMzM0LDggQEAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZUlu
ZGljYXRvcihUZXh0SW5kaWNhdG9yRGF0YSYgZGF0YSwgRnJhbWUmIGZyYW1lLCBjb25zdCBTaW0K
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGNvbnRlbnRzQ2xpcFJlY3QgPSBlbmNsb3Np
bmdJbnRSZWN0KGZyYW1lVmlldy0+ZXhwb3NlZENvbnRlbnRSZWN0KCkpOwogI2Vsc2UKLSAgICBp
ZiAoYXV0byB2aWV3RXhwb3NlZFJlY3QgPSBmcmFtZVZpZXctPnZpZXdFeHBvc2VkUmVjdCgpKQot
ICAgICAgICBjb250ZW50c0NsaXBSZWN0ID0gZnJhbWVWaWV3LT52aWV3VG9Db250ZW50cyhlbmNs
b3NpbmdJbnRSZWN0KCp2aWV3RXhwb3NlZFJlY3QpKTsKKyAgICBpZiAoYXV0byB2aWV3RXhwb3Nl
ZFJlY3QgPSBmcmFtZVZpZXctPnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkp
CisgICAgICAgIGNvbnRlbnRzQ2xpcFJlY3QgPSAqdmlld0V4cG9zZWRSZWN0OwogICAgIGVsc2UK
ICAgICAgICAgY29udGVudHNDbGlwUmVjdCA9IGZyYW1lVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0
KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKaW5kZXggMDE4MzAxMTg3MzA5NjhjZTg3MWM3MDgyMjkxNDE2YzM3NjhkODZlNy4u
Yjc5ZGM0Yzk5OTAzZDc4OWQ2ODMyZDVlOWY0ZTk2NDFmNWRiZmRhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTQwMCw3ICs0MDAs
NyBAQCBzdGF0aWMgVGlsZWRCYWNraW5nOjpUaWxlQ292ZXJhZ2UgY29tcHV0ZVBhZ2VUaWxlZEJh
Y2tpbmdDb3ZlcmFnZShjb25zdCBSZW5kZXJMYQogICAgIFRpbGVkQmFja2luZzo6VGlsZUNvdmVy
YWdlIHRpbGVDb3ZlcmFnZSA9IFRpbGVkQmFja2luZzo6Q292ZXJhZ2VGb3JWaXNpYmxlQXJlYTsK
ICAgICBib29sIHVzZU1pbmltYWxUaWxlc0R1cmluZ0xpdmVSZXNpemUgPSBmcmFtZVZpZXcuaW5M
aXZlUmVzaXplKCk7CiAgICAgaWYgKGZyYW1lVmlldy5zcGVjdWxhdGl2ZVRpbGluZ0VuYWJsZWQo
KSAmJiAhdXNlTWluaW1hbFRpbGVzRHVyaW5nTGl2ZVJlc2l6ZSkgewotICAgICAgICBib29sIGNs
aXBzVG9FeHBvc2VkUmVjdCA9IHN0YXRpY19jYXN0PGJvb2w+KGZyYW1lVmlldy52aWV3RXhwb3Nl
ZFJlY3QoKSk7CisgICAgICAgIGJvb2wgY2xpcHNUb0V4cG9zZWRSZWN0ID0gc3RhdGljX2Nhc3Q8
Ym9vbD4oZnJhbWVWaWV3LnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkpOwog
ICAgICAgICBpZiAoZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxiYXJNb2RlKCkgIT0gU2Nyb2xs
YmFyQWx3YXlzT2ZmIHx8IGNsaXBzVG9FeHBvc2VkUmVjdCkKICAgICAgICAgICAgIHRpbGVDb3Zl
cmFnZSB8PSBUaWxlZEJhY2tpbmc6OkNvdmVyYWdlRm9ySG9yaXpvbnRhbFNjcm9sbGluZzsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAppbmRleCBiZjA1MTJmYWFmZWQ5Njg3MjhmMjg4NGI5NjQwMzBjNTkxYzYzMTRiLi4wM2QwNGM4
MGY5M2NjYzAzMzEzZTVkMDcxNzNkNTBiMGJhZjY0MmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNTE0LDggKzUxNCw4
IEBAIEZsb2F0UmVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnZpc2libGVSZWN0Rm9yTGF5ZXJG
bHVzaGluZygpIGNvbnN0CiAgICAgLy8gSGF2aW5nIGEgbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXIg
aW5kaWNhdGVzIHRoYXQgd2UncmUgZG9pbmcgc2Nyb2xsaW5nIHZpYSBHcmFwaGljc0xheWVycy4K
ICAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QgPSBtX3Njcm9sbGVkQ29udGVudHNMYXllciA/IEZs
b2F0UmVjdCh7IH0sIGZyYW1lVmlldy5zaXplRm9yVmlzaWJsZUNvbnRlbnQoKSkgOiBmcmFtZVZp
ZXcudmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAKLSAgICBpZiAoZnJhbWVWaWV3LnZpZXdFeHBvc2Vk
UmVjdCgpKQotICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3QoZnJhbWVWaWV3LnZpZXdFeHBv
c2VkUmVjdCgpLnZhbHVlKCkpOworICAgIGlmIChhdXRvIGV4cG9zZWRSZWN0ID0gZnJhbWVWaWV3
LnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkpCisgICAgICAgIHZpc2libGVS
ZWN0LmludGVyc2VjdCgqZXhwb3NlZFJlY3QpOwogCiAgICAgcmV0dXJuIHZpc2libGVSZWN0Owog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCmluZGV4IGRjMTE1MmY4ZWIxOWVhNTA2MDg2ZDk3OGM3MDE3Yzg3MjI5OGQ0N2Eu
LjhjODBkZTJmMzJlYzQ2ODA5ZmZkMGUzMDA3Zjc3NGJmYTQ4NTFmZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC00NCw2
ICs0NCw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVuZGVybGF5Q29sb3I7CiAgICAg
ZW5jb2RlciA8PCB1c2VGaXhlZExheW91dDsKICAgICBlbmNvZGVyIDw8IGZpeGVkTGF5b3V0U2l6
ZTsKKyAgICBlbmNvZGVyIDw8IHZpZXdFeHBvc2VkUmVjdDsKICAgICBlbmNvZGVyIDw8IGFsd2F5
c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOwogICAgIGVuY29kZXIgPDwgYWx3YXlzU2hvd3NWZXJ0
aWNhbFNjcm9sbGVyOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShwYWdpbmF0aW9uTW9kZSk7CkBA
IC0xODgsNiArMTg5LDggQEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2QKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZml4ZWRM
YXlvdXRTaXplKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMudmlld0V4cG9zZWRSZWN0KSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYWx3YXlzU2hv
d3NIb3Jpem9udGFsU2Nyb2xsZXIpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xs
ZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5oCmluZGV4IDM3ODJhNDEyYTdmY2ZlNmE3MDA4YTlhNDNiNWJkNDgwZDYzZWZjZjAuLmNmZjMx
MzU1YzFhMjYxOGFhODM3MmM1MjdiODE0NjliYzQ2ZTQxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTg0LDYgKzg0LDggQEAg
c3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgdXNlRml4ZWRMYXlv
dXQ7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBmaXhlZExheW91dFNpemU7CiAKKyAgICBPcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdDsKKwogICAgIGJvb2wgYWx3YXlz
U2hvd3NIb3Jpem9udGFsU2Nyb2xsZXI7CiAgICAgYm9vbCBhbHdheXNTaG93c1ZlcnRpY2FsU2Ny
b2xsZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
aW5kZXggYTg4N2NiYWQzZjMwZTIzOTc0NGEyMDUxMTcwMzNjYzVjOTViNDcxMi4uMzlmMzc0NTA5
NzZlMDRiYjJmNmYyOGQ5Y2M1YjAwNWNiM2RmYmQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE5MDIsOCArMTkwMiw3IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpCiAgICAgaWYgKG1fdXNlQ29udGVudFBy
ZXBhcmF0aW9uUmVjdEZvclZpc2libGVSZWN0KQogICAgICAgICBleHBvc2VkUmVjdCA9IENHUmVj
dFVuaW9uKG1fY29udGVudFByZXBhcmF0aW9uUmVjdCwgZXhwb3NlZFJlY3QpOwogCi0gICAgaWYg
KGF1dG8gZHJhd2luZ0FyZWEgPSBtX3BhZ2UtPmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIGRyYXdp
bmdBcmVhLT5zZXRWaWV3RXhwb3NlZFJlY3QobV9jbGlwc1RvVmlzaWJsZVJlY3QgPyBPcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFJlY3Q+KGV4cG9zZWRSZWN0KSA6IFdURjo6bnVsbG9wdCk7CisgICAg
bV9wYWdlLT5zZXRWaWV3RXhwb3NlZFJlY3QobV9jbGlwc1RvVmlzaWJsZVJlY3QgPyBleHBvc2Vk
UmVjdCA6IFdURjo6bnVsbG9wdCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldENsaXBzVG9W
aXNpYmxlUmVjdChib29sIGNsaXBzVG9WaXNpYmxlUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKaW5kZXggOWU0NmZjYTAzOTQyMmY3YzZjZTdhYmRm
OGMyNjBjOTI4YjRjNjYwMy4uZDhmYTUzODE0ZDNjMmQxNTAzYzQ2ZDU1Y2U3NDA5ODhhZWJhMDk4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKQEAg
LTkxLDEzICs5MSwxMSBAQCBib29sIERyYXdpbmdBcmVhUHJveHk6OnNlbmRNZXNzYWdlKHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+IGVuY29kZXIsIE9wdGlvbgogfQogCiAjaWYgUExBVEZP
Uk0oTUFDKQotdm9pZCBEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCit2b2lkIERyYXdpbmdBcmVh
UHJveHk6OmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpCiB7CiAgICAgaWYgKCFtX3dlYlBhZ2VQ
cm94eS5oYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3ZpZXdF
eHBvc2VkUmVjdCA9IHZpZXdFeHBvc2VkUmVjdDsKLQogICAgIGlmICghbV92aWV3RXhwb3NlZFJl
Y3RDaGFuZ2VkVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV92aWV3RXhwb3NlZFJlY3RDaGFu
Z2VkVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CkBAIC0xMDcsMTEgKzEwNSwxMiBAQCB2b2lk
IERyYXdpbmdBcmVhUHJveHk6OnZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKCkKICAg
ICBpZiAoIW1fd2ViUGFnZVByb3h5Lmhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmIChtX3ZpZXdFeHBvc2VkUmVjdCA9PSBtX2xhc3RTZW50Vmlld0V4cG9zZWRS
ZWN0KQorICAgIGF1dG8gdmlld0V4cG9zZWRSZWN0ID0gbV93ZWJQYWdlUHJveHkudmlld0V4cG9z
ZWRSZWN0KCk7CisgICAgaWYgKHZpZXdFeHBvc2VkUmVjdCA9PSBtX2xhc3RTZW50Vmlld0V4cG9z
ZWRSZWN0KQogICAgICAgICByZXR1cm47CiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJl
YTo6U2V0Vmlld0V4cG9zZWRSZWN0KG1fdmlld0V4cG9zZWRSZWN0KSk7Ci0gICAgbV9sYXN0U2Vu
dFZpZXdFeHBvc2VkUmVjdCA9IG1fdmlld0V4cG9zZWRSZWN0OworICAgIHNlbmQoTWVzc2FnZXM6
OkRyYXdpbmdBcmVhOjpTZXRWaWV3RXhwb3NlZFJlY3Qodmlld0V4cG9zZWRSZWN0KSk7CisgICAg
bV9sYXN0U2VudFZpZXdFeHBvc2VkUmVjdCA9IHZpZXdFeHBvc2VkUmVjdDsKIH0KICNlbmRpZiAv
LyBQTEFURk9STShNQUMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuaAppbmRleCBiMGE4NTcxNjc5ZDY2YmJkZTFmMzgwYTExNDc5N2I4OGFiMWY0NGY4Li45Zjk3
M2QzNjQyODc5NGJkMDIyYWVhOWJkYmYxZDE0ZDZlZGRhNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC04OSw4ICs4OSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0
UG9pbnQpIHsgfQogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3
RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0Pik7Ci0gICAgT3B0aW9uYWw8
V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Zp
ZXdFeHBvc2VkUmVjdDsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3RXhwb3NlZFJl
Y3QoKTsKICAgICB2b2lkIHZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKCk7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKaW5k
ZXggNTU2NTkxZTcxNWNlMmI0ZDdjNTUzZTBlOTU4MDI0ODdhYzdmYTA4NS4uODFjMWExMjE1ZDRi
OTFlMTFiMjM0Y2RkMjc4M2I5YzkwMWU5NjhiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248dm9pZCAoQ2Fs
bGJhY2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAg
IHZvaWQgc2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4pIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkQ2hhbmdlVmlld0V4cG9zZWRSZWN0KCkgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IDRhNTBiODU5YWFkOTNjNDU4NjU1Zjcz
MGYzNmEzMTdiYWE0MzQxNDMuLmQ1NDNhNGI2NjM1Mjg3MjQ4YWQwNTVjOGQyNDljYmIwMDQ1Mjkw
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1t
CkBAIC0yNzUsOSArMjc1LDkgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
OjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZCh1aW50NjRfdCBsYXllckkKIHN0YXRpYyBjb25z
dCBmbG9hdCBpbmRpY2F0b3JJbnNldCA9IDEwOwogCiAjaWYgUExBVEZPUk0oTUFDKQotdm9pZCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCit2b2lkIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHk6OmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpCiB7Ci0gICAg
RHJhd2luZ0FyZWFQcm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KHZpZXdFeHBvc2VkUmVjdCk7Cisg
ICAgRHJhd2luZ0FyZWFQcm94eTo6ZGlkQ2hhbmdlVmlld0V4cG9zZWRSZWN0KCk7CiAgICAgdXBk
YXRlRGVidWdJbmRpY2F0b3JQb3NpdGlvbigpOwogfQogI2VuZGlmCkBAIC0yOTMsOCArMjkzLDgg
QEAgRmxvYXRQb2ludCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjppbmRpY2F0b3JM
b2NhdGlvbigpIGNvbnN0CiAgICAgICAgIHRpbGVkTWFwTG9jYXRpb24gKz0gRmxvYXRTaXplKGFi
c29sdXRlSW5zZXQsIGFic29sdXRlSW5zZXQpOwogI2Vsc2UKICAgICAgICAgRmxvYXRQb2ludCB0
aWxlZE1hcExvY2F0aW9uOwotICAgICAgICBpZiAodmlld0V4cG9zZWRSZWN0KCkpCi0gICAgICAg
ICAgICB0aWxlZE1hcExvY2F0aW9uID0gdmlld0V4cG9zZWRSZWN0KCkudmFsdWUoKS5sb2NhdGlv
bigpOworICAgICAgICBpZiAoYXV0byB2aWV3RXhwb3NlZFJlY3QgPSBtX3dlYlBhZ2VQcm94eS52
aWV3RXhwb3NlZFJlY3QoKSkKKyAgICAgICAgICAgIHRpbGVkTWFwTG9jYXRpb24gPSB2aWV3RXhw
b3NlZFJlY3QtPmxvY2F0aW9uKCk7CiAKICAgICAgICAgdGlsZWRNYXBMb2NhdGlvbiArPSBGbG9h
dFNpemUoaW5kaWNhdG9ySW5zZXQsIGluZGljYXRvckluc2V0KTsKICAgICAgICAgZmxvYXQgc2Nh
bGUgPSAxIC8gbV93ZWJQYWdlUHJveHkucGFnZVNjYWxlRmFjdG9yKCk7CkBAIC0zNjQsOCArMzY0
LDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0lu
ZGljYXRvcihJbnRTaXplIGNvbnRlbnRzU2l6ZSwKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgICAgICBzY2FsZWRFeHBvc2VkUmVjdCA9IG1fd2ViUGFnZVByb3h5LmV4cG9zZWRDb250ZW50
UmVjdCgpOwogI2Vsc2UKLSAgICAgICAgaWYgKHZpZXdFeHBvc2VkUmVjdCgpKQotICAgICAgICAg
ICAgc2NhbGVkRXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJlY3QoKS52YWx1ZSgpOworICAgICAg
ICBpZiAoYXV0byB2aWV3RXhwb3NlZFJlY3QgPSBtX3dlYlBhZ2VQcm94eS52aWV3RXhwb3NlZFJl
Y3QoKSkKKyAgICAgICAgICAgIHNjYWxlZEV4cG9zZWRSZWN0ID0gKnZpZXdFeHBvc2VkUmVjdDsK
ICAgICAgICAgZmxvYXQgc2NhbGUgPSAxIC8gbV93ZWJQYWdlUHJveHkucGFnZVNjYWxlRmFjdG9y
KCk7CiAgICAgICAgIHNjYWxlZEV4cG9zZWRSZWN0LnNjYWxlKHNjYWxlKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMGQzMDhlNmNiZjY4Njc5
MjZkNDE3NzkxYTAzNDJhZGZhZjc1YzEyOC4uM2I3MjBiODhlZWIxMDQwMjZkZmMyYjE2ZTNmNTc3
MjBjOWJjY2FhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC0zNzc3LDYgKzM3NzcsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldEZpeGVkTGF5b3V0U2l6
ZShjb25zdCBJbnRTaXplJiBzaXplKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZp
eGVkTGF5b3V0U2l6ZShzaXplKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRWaWV3RXhw
b3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCit7
CisgICAgbV92aWV3RXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJlY3Q7CisKKyAgICBpZiAobV9k
cmF3aW5nQXJlYSkKKyAgICAgICAgbV9kcmF3aW5nQXJlYS0+ZGlkQ2hhbmdlVmlld0V4cG9zZWRS
ZWN0KCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRBbHdheXNTaG93c0hvcml6b250YWxT
Y3JvbGxlcihib29sIGFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyKQogewogICAgIGlmIChh
bHdheXNTaG93c0hvcml6b250YWxTY3JvbGxlciA9PSBtX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNj
cm9sbGVyKQpAQCAtNzczMCw2ICs3NzM4LDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBX
ZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICAg
ICBwYXJhbWV0ZXJzLnVuZGVybGF5Q29sb3IgPSBtX3VuZGVybGF5Q29sb3I7CiAgICAgcGFyYW1l
dGVycy51c2VGaXhlZExheW91dCA9IG1fdXNlRml4ZWRMYXlvdXQ7CiAgICAgcGFyYW1ldGVycy5m
aXhlZExheW91dFNpemUgPSBtX2ZpeGVkTGF5b3V0U2l6ZTsKKyAgICBwYXJhbWV0ZXJzLnZpZXdF
eHBvc2VkUmVjdCA9IG1fdmlld0V4cG9zZWRSZWN0OwogICAgIHBhcmFtZXRlcnMuYWx3YXlzU2hv
d3NIb3Jpem9udGFsU2Nyb2xsZXIgPSBtX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOwog
ICAgIHBhcmFtZXRlcnMuYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyID0gbV9hbHdheXNTaG93
c1ZlcnRpY2FsU2Nyb2xsZXI7CiAgICAgcGFyYW1ldGVycy5zdXBwcmVzc1Njcm9sbGJhckFuaW1h
dGlvbnMgPSBtX3N1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYTM4ZDQzZWE4MDRkODU3ZTM3ZjM1ODk2OTA0M2RkYWQ4
OWYxYTNiYS4uMTBlMmJlODVmMDk4Y2U0MmUyZWJmZjQxMGM0NDQwMmRkZGNhMTk3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTk5OCw2ICs5OTgsOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCB1c2VGaXhlZExheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlRml4ZWRM
YXlvdXQ7IH07CiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgZml4ZWRMYXlvdXRTaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9maXhlZExheW91dFNpemU7IH07CiAKKyAgICB2b2lkIHNldFZpZXdF
eHBvc2VkUmVjdChPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KTsKKyAgICBPcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdmll
d0V4cG9zZWRSZWN0OyB9CisKICAgICB2b2lkIHNldEFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9s
bGVyKGJvb2wpOwogICAgIHZvaWQgc2V0QWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyKGJvb2wp
OwogICAgIGJvb2wgYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIoKSBjb25zdCB7IHJldHVy
biBtX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOyB9CkBAIC0yNDg1LDYgKzI0ODgsNyBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3VzZUZpeGVkTGF5b3V0IHsgZmFsc2UgfTsKICAgICBX
ZWJDb3JlOjpJbnRTaXplIG1fZml4ZWRMYXlvdXRTaXplOworICAgIE9wdGlvbmFsPFdlYkNvcmU6
OkZsb2F0UmVjdD4gbV92aWV3RXhwb3NlZFJlY3Q7CiAKICAgICBib29sIG1fYWx3YXlzU2hvd3NI
b3Jpem9udGFsU2Nyb2xsZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbHdheXNTaG93c1ZlcnRp
Y2FsU2Nyb2xsZXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCAxNjQ4OTFhMWRmOWM3NWVjMTQ4ZDkyYThjNDgw
NDAwYTczZTA3ZTQ0Li4xYWMzOTQ0MzQ0NmUxN2E5ODM1M2ZiOTIzOWIyNzJkN2M0OTI1ZTA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEu
aApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmMo
Q2FsbGJhY2tJRCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgc2V0Vmll
d0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4pIG92ZXJyaWRlOwotICAg
IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdDsgfQorICAgIE9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV92aWV3RXhwb3NlZFJlY3Q7IH0KIAogICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRp
b25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBjb25zdCBTdHJpbmcmIGtleSwgTW9ub3Rvbmlj
VGltZSBzdGFydFRpbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25E
aWRFbmQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwpAQCAt
MTA4LDcgKzEwOCw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIGFkZE1pbGVzdG9uZXNUb0Rpc3Bh
dGNoKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBvdmVycmlkZTsKIAotICAg
IHZvaWQgdXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOwogICAgIHZvaWQgdXBkYXRlUm9vdExh
eWVycygpOwogCiAgICAgdm9pZCBhZGRDb21taXRIYW5kbGVycygpOwpAQCAtMTQ1LDcgKzE0NCw2
IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3ZpZXdTaXplOwogCiAgICAgT3B0
aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKLSAgICBPcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFJlY3Q+IG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3Q7CiAKICAgICBX
ZWJDb3JlOjpUaW1lciBtX3VwZGF0ZVJlbmRlcmluZ1RpbWVyOwogICAgIGJvb2wgbV9pc1JlbmRl
cmluZ1N1c3BlbmRlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggMTM1M2YxYmZlOTI2NTQ4OWNhMzEzYTBh
YmY5ZTAwNzdjZjVkZWU3My4uNTk5N2FlYmM2ZTE0YjYzMzFkNmQyMTI0NTcyYmJlZjkyMGY0MmJh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYS5tbQpAQCAtNzMsNiArNzMsOSBAQCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgVwogICAgIC8v
IERpc3BsYXlJRHMgbGVzcyBsaWtlbHksIGl0IGlzIG5vdCBlbnRpcmVseSBzYWZlIHRvIGhhdmUg
YSBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSBhbmQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEKICAgICAvLyBjb2VleGlzdCBpbiB0aGUgc2FtZSBwcm9jZXNzLgogICAgIHdlYlBhZ2Uu
d2luZG93U2NyZWVuRGlkQ2hhbmdlKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgo
KSAtIHdlYlBhZ2UuaWRlbnRpZmllcigpLnRvVUludDY0KCkpOworCisgICAgaWYgKGF1dG8gdmll
d0V4cG9zZWRSZWN0ID0gcGFyYW1ldGVycy52aWV3RXhwb3NlZFJlY3QpCisgICAgICAgIHNldFZp
ZXdFeHBvc2VkUmVjdCh2aWV3RXhwb3NlZFJlY3QpOwogfQogCiBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKCkKQEAgLTIyNyw3ICsyMzAsOSBA
QCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphY2NlbGVyYXRlZEFuaW1hdGlvbkRp
ZEVuZCh1aW50NjRfdCBsYXllcklELCBjbwogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YTo6c2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4
cG9zZWRSZWN0KQogewogICAgIG1fdmlld0V4cG9zZWRSZWN0ID0gdmlld0V4cG9zZWRSZWN0Owot
ICAgIHVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKTsKKworICAgIGlmIChGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCkpCisgICAgICAgIGZyYW1lVmlldy0+
c2V0Vmlld0V4cG9zZWRSZWN0KG1fdmlld0V4cG9zZWRSZWN0KTsKIH0KIAogV2ViQ29yZTo6Rmxv
YXRSZWN0IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpleHBvc2VkQ29udGVudFJlY3QoKSBj
b25zdApAQCAtMjUxLDIyICsyNTYsNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
OjpzZXRFeHBvc2VkQ29udGVudFJlY3QoY29uc3QgRmxvYXRSZWN0JiBleHBvc2VkQwogICAgIHNj
aGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKQotewotICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKTsKLSAgICBpZiAoIWZyYW1lVmlldykK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCA9IG1fdmll
d0V4cG9zZWRSZWN0OwotCi0jaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKG1fdmll
d0V4cG9zZWRSZWN0KQotICAgICAgICBtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0LnZhbHVlKCku
bW92ZUJ5KGZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCkpOwotI2VuZGlmCi0KLSAgICBmcmFtZVZp
ZXctPnNldFZpZXdFeHBvc2VkUmVjdChtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0KTsKLX0KLQog
VGlsZWRCYWNraW5nKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6bWFpbkZyYW1lVGlsZWRC
YWNraW5nKCkgY29uc3QKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5t
YWluRnJhbWVWaWV3KCk7CkBAIC0zMzMsOCArMzIyLDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6dXBkYXRlUmVuZGVyaW5nKCkKICAgICBtX3dlYlBhZ2UudXBkYXRlUmVuZGVy
aW5nKCk7CiAKICAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QoRmxvYXRQb2ludCgpLCBtX3ZpZXdT
aXplKTsKLSAgICBpZiAobV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCkKLSAgICAgICAgdmlzaWJs
ZVJlY3QuaW50ZXJzZWN0KG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QudmFsdWUoKSk7CisgICAg
aWYgKGF1dG8gZXhwb3NlZFJlY3QgPSBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpLT52aWV3RXhw
b3NlZFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcygpKQorICAgICAgICB2aXNpYmxlUmVjdC5pbnRl
cnNlY3QoKmV4cG9zZWRSZWN0KTsKIAogICAgIGFkZENvbW1pdEhhbmRsZXJzKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKaW5kZXggODhhNGY5NWIwYTljNjY5MDBh
YTU0ZGNmNmFhNDBiZDg4NmJmODRkMi4uZGIwNGI1MDVmZWEyMGVkNzMzMzE5NjU4ZmUxOTQ0Yjg0
ZTYzNTBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKQEAgLTU4
LDcgKzU4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBEcmF3aW5nQXJlYQogICAgIHZvaWQgc2V0TmVl
ZHNEaXNwbGF5KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9s
bERlbHRhKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSkgb3ZlcnJp
ZGUgeyB9CiAKICAgICB2b2lkIGZvcmNlUmVwYWludCgpIG92ZXJyaWRlOwogICAgIGJvb2wgZm9y
Y2VSZXBhaW50QXN5bmMoQ2FsbGJhY2tJRCkgb3ZlcnJpZGU7CkBAIC03Miw3ICs3Miw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBtYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0
aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0Pikgb3ZlcnJpZGU7Ci0gICAgT3B0aW9uYWw8V2ViQ29y
ZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0OyB9CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRS
ZWN0PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3ZpZXdFeHBv
c2VkUmVjdDsgfQogCiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IGV4cG9zZWRDb250ZW50UmVjdCgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwpAQCAtMTI1LDcgKzEyNSw2IEBAIHByaXZhdGU6
CiAgICAgV2ViQ29yZTo6VGlsZWRCYWNraW5nKiBtYWluRnJhbWVUaWxlZEJhY2tpbmcoKSBjb25z
dDsKICAgICB2b2lkIHVwZGF0ZURlYnVnSW5mb0xheWVyKGJvb2wgc2hvd0xheWVyKTsKIAotICAg
IHZvaWQgdXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOwogICAgIHZvaWQgc2NhbGVWaWV3VG9G
aXREb2N1bWVudElmTmVlZGVkKCk7CiAKICAgICB2b2lkIHNlbmRQZW5kaW5nTmV3bHlSZWFjaGVk
UGFpbnRpbmdNaWxlc3RvbmVzKCk7CkBAIC0xNDUsNyArMTQ0LDYgQEAgcHJpdmF0ZToKICAgICBS
ZXRhaW5QdHI8Q0FMYXllcj4gbV9wZW5kaW5nUm9vdExheWVyOwogCiAgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6RmxvYXRSZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKLSAgICBPcHRpb25hbDxXZWJDb3Jl
OjpGbG9hdFJlY3Q+IG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3Q7CiAKICAgICBXZWJDb3JlOjpJ
bnRTaXplIG1fbGFzdFZpZXdTaXplRm9yU2NhbGVUb0ZpdDsKICAgICBXZWJDb3JlOjpJbnRTaXpl
IG1fbGFzdERvY3VtZW50U2l6ZUZvclNjYWxlVG9GaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggNGJiNjdmMmY2MDNiZTQ0NTcwMTRmZjEwN2M1YTg1MTNm
MGY4ZDdmNy4uNzBkZjI2ZGIyOWQ3OTQ0MTQ3OTE0NmNjZTM0Y2M1NGYyOWQwYzEwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtOTEsNiArOTEsOSBAQCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEoV2ViUGFnZSYgd2ViUGFnZSwgYwogICAgIHVwZGF0ZUxheWVySG9zdGluZ0NvbnRleHQoKTsK
ICAgICBzZXRDb2xvclNwYWNlKHBhcmFtZXRlcnMuY29sb3JTcGFjZSk7CiAKKyAgICBpZiAoYXV0
byB2aWV3RXhwb3NlZFJlY3QgPSBwYXJhbWV0ZXJzLnZpZXdFeHBvc2VkUmVjdCkKKyAgICAgICAg
c2V0Vmlld0V4cG9zZWRSZWN0KHZpZXdFeHBvc2VkUmVjdCk7CisKICAgICBpZiAoIXBhcmFtZXRl
cnMuaXNQcm9jZXNzU3dhcCkKICAgICAgICAgc2VuZEVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGVJZk5lZWRlZCgpOwogfQpAQCAtMTM4LDExICsxNDEsNiBAQCB2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYg
cmVjdCkKIHsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2Nyb2xs
KGNvbnN0IEludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQot
ewotICAgIHVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKTsKLX0KLQogdm9pZCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBDQUxheWVyICpyb290TGF5ZXIgPSBncmFwaGljc0xh
eWVyID8gZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpIDogbmlsOwpAQCAtNDY3LDggKzQ2
NSw4IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmlu
ZyhVcGRhdGVSZW5kZXJpbmdUeXBlIGZsdXNoVHlwCiAgICAgICAgIH0KIAogICAgICAgICBGbG9h
dFJlY3QgdmlzaWJsZVJlY3QgPSBbbV9ob3N0aW5nTGF5ZXIgZnJhbWVdOwotICAgICAgICBpZiAo
bV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCkKLSAgICAgICAgICAgIHZpc2libGVSZWN0LmludGVy
c2VjdChtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0LnZhbHVlKCkpOworICAgICAgICBpZiAoYXV0
byBleHBvc2VkUmVjdCA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCktPnZpZXdFeHBvc2VkUmVj
dEluQ29udGVudENvb3JkaW5hdGVzKCkpCisgICAgICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNl
Y3QoKmV4cG9zZWRSZWN0KTsKIAogICAgICAgICAvLyBCZWNhdXNlIG91ciB2aWV3LXJlbGF0aXZl
IG92ZXJsYXkgcm9vdCBsYXllciBpcyBub3QgYXR0YWNoZWQgdG8gdGhlIG1haW4gR3JhcGhpY3NM
YXllciB0cmVlLCB3ZSBuZWVkIHRvIGZsdXNoIGl0IG1hbnVhbGx5LgogICAgICAgICBpZiAobV92
aWV3T3ZlcmxheVJvb3RMYXllcikKQEAgLTU1Myw3ICs1NTEsOSBAQCB2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpyZXN1bWVQYWludGluZygpCiB2b2lkIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2
aWV3RXhwb3NlZFJlY3QpCiB7CiAgICAgbV92aWV3RXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJl
Y3Q7Ci0gICAgdXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOworCisgICAgaWYgKEZyYW1lVmll
dyogZnJhbWVWaWV3ID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKSkKKyAgICAgICAgZnJhbWVW
aWV3LT5zZXRWaWV3RXhwb3NlZFJlY3QobV92aWV3RXhwb3NlZFJlY3QpOwogfQogCiBGbG9hdFJl
Y3QgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmV4cG9zZWRDb250ZW50UmVjdCgpIGNv
bnN0CkBAIC01NjcsMjQgKzU2Nyw2IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OnNldEV4cG9zZWRDb250ZW50UmVjdChjb25zdCBGbG9hdFJlY3QmKQogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1
cGRhdGVTY3JvbGxlZEV4cG9zZWRSZWN0KCkKLXsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9
IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCk7Ci0gICAgaWYgKCFmcmFtZVZpZXcpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QgPSBtX3ZpZXdFeHBvc2Vk
UmVjdDsKLQotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChtX3ZpZXdFeHBvc2Vk
UmVjdCkgewotICAgICAgICBTY3JvbGxPZmZzZXQgc2Nyb2xsT2Zmc2V0ID0gZnJhbWVWaWV3LT5z
Y3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oZnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlvbigpKTsKLSAg
ICAgICAgbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdC52YWx1ZSgpLm1vdmVCeShzY3JvbGxPZmZz
ZXQpOwotICAgIH0KLSNlbmRpZgotCi0gICAgZnJhbWVWaWV3LT5zZXRWaWV3RXhwb3NlZFJlY3Qo
bV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCk7Ci19Ci0KIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5KGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBib29s
IGZsdXNoU3luY2hyb25vdXNseSwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBmZW5jZVBvcnQp
CiB7CiAgICAgbV9pblVwZGF0ZUdlb21ldHJ5ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwZmQ1OTE2OTVkZDUyNzg5MzQ3YTc0ODM3
MTMyYTVlYjU0Y2FmMzIxLi5mMDU1Nzc4N2JkNDdjZWU1NjcwZGU3NGYxN2UxNmI4MDE4NDM5YzI5
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMjAtMDQtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQm9va3Mgc29tZXRpbWVzIGVuZHMgdXAgd2l0aCBibGFuayBwYWdl
cywgZXNwZWNpYWxseSBhZnRlciBhZGp1c3RpbmcgZm9udCBzaXplCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyNjUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU5ODk4MTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9WaWV3
RXhwb3NlZFJlY3QubW06IEFkZGVkLgorICAgICAgICAoZm9yY2VSZXBhaW50Q2FsbGJhY2spOgor
ICAgICAgICAoVEVTVCk6CisgICAgICAgIEFkZCBhIHRlc3QgZm9yIHRoZSBmaXJzdCBwcm9ibGVt
LCB3aGljaCB3b3VsZCBwcmV2aW91c2x5IGF0dGVtcHQgdG8gYWxsb2NhdGUKKyAgICAgICAgfjkw
VEIgb2YgdGlsZXMsIHNwaW5uaW5nIGFuZCBleHBsb2RpbmcsIGFuZCBub3cgaGFwcGlseSBqdXN0
IGFsbG9jYXRlcyBhIGZldy4KKwogMjAyMC0wNC0yOSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVf
Y2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYmV0dGVyIGhhbmRsaW5nIG9mIGFuIHVu
Y2xlYXJlZCBidW5kbGUgaWRlbnRpZmllciBpbiBXZWJLaXRUZXN0UnVubmVyCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDczMTI5NTQ4MGM3YTc1YzliOWY2ZjE4Y2U0ZWY2YTZmZTgwNmZiZjku
LjBlNzJlYjIxYTY5YTE0N2Q0NTJmOGJiZDdiMDFhOTQ3OGJhMjg1ZTMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMzksNiArMTM5LDcgQEAKIAkJMkQzQ0EzQTgyMjFERjRCNDAwODhFODAz
IC8qIFBhZ2VPdmVybGF5UGx1Z2luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkQzQ0EzQTQyMjFERjIzOTAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1
Z2luLm1tICovOyB9OwogCQkyRDRDRjhCRDFEODM2MENDMDAwMUNFOEQgLyogV0tUaHVtYm5haWxW
aWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ0
Q0Y4QkMxRDgzNjBDQzAwMDFDRThEIC8qIFdLVGh1bWJuYWlsVmlldy5tbSAqLzsgfTsKIAkJMkQ1
MUEwQzcxQzhCRjAwQzAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MUEwQzUxQzhC
RjAwNDAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tICovOyB9OworCQky
RDUyMDYzNTI0NUE2MDNEMDAzMzhGODggLyogVmlld0V4cG9zZWRSZWN0Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MjA2MzQyNDVBNjAzQzAwMzM4
Rjg4IC8qIFZpZXdFeHBvc2VkUmVjdC5tbSAqLzsgfTsKIAkJMkQ3MDA1OTYyMUVEQTBDNjAwMzQ2
M0NCIC8qIFRhYk91dE9mV2ViVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJENzAwNTk1MjFFREEwQzYwMDM0NjNDQiAvKiBUYWJPdXRPZldlYlZp
ZXcubW0gKi87IH07CiAJCTJENzAwNTk5MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3JlZW5XaW5k
b3cubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDcw
MDU5NzIxRURBNEQwMDAzNDYzQ0IgLyogT2Zmc2NyZWVuV2luZG93Lm1tICovOyB9OwogCQkyRDdG
RDE5MzIyNDE5MDg3MDA3ODg3RjEgLyogRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEN0ZEMTkyMjI0MTkwODcw
MDc4ODdGMSAvKiBEb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tICovOyB9OwpAQCAtMTcyOCw2ICsx
NzI5LDcgQEAKIAkJMkQzQ0EzQTQyMjFERjIzOTAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1Z2lu
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFnZU92ZXJsYXlQ
bHVnaW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENENGOEJDMUQ4MzYwQ0Mw
MDAxQ0U4RCAvKiBXS1RodW1ibmFpbFZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBXS1RodW1ibmFpbFZpZXcubW07IHBhdGggPSBXZWJLaXQvV0tUaHVtYm5h
aWxWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDUxQTBDNTFDOEJGMDA0
MDA3NjVDNDUgLyogRE9NSFRNTFZpZGVvRWxlbWVudFdyYXBwZXIubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ1MjA2MzQyNDVBNjAzQzAwMzM4Rjg4IC8q
IFZpZXdFeHBvc2VkUmVjdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFZpZXdFeHBvc2VkUmVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ2
MUVDMzAyMUIwQjc1QzAwQTdEMUNCIC8qIFBlbmNpbEtpdFRlc3RTUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGVuY2lsS2l0VGVzdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDY0
MEI1NDE3ODc1REZGMDBCRkFGOTkgLyogU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ3MDA1OTUyMUVEQTBDNjAwMzQ2M0NC
IC8qIFRhYk91dE9mV2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFRhYk91dE9mV2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTMxOTIsNiArMzE5NCw3IEBACiAJCQkJMkUxMzNCNEYyMUQ0MEFGMDAwRUQxQ0IyIC8qIFVzZVNl
bGVjdGlvbkFzRmluZFN0cmluZy5tbSAqLywKIAkJCQk5M0U5NDNGMTFDRDNFODdFMDBBQzA4QzIg
LyogVmlkZW9Db250cm9sc01hbmFnZXIubW0gKi8sCiAJCQkJQ0QzMDY1REYyMTY1NjgyRTAwRTg5
NURGIC8qIFZpZGVvUXVhbGl0eURpc3BsYXlDb21wb3NpdGluZy5tbSAqLywKKwkJCQkyRDUyMDYz
NDI0NUE2MDNDMDAzMzhGODggLyogVmlld0V4cG9zZWRSZWN0Lm1tICovLAogCQkJCTYzNTZGQjIx
MUVDNEUwQkEwMDQ0QkYxOCAvKiBWaXNpYmxlQ29udGVudFJlY3QubW0gKi8sCiAJCQkJODM3NzlD
MzcxRjgyRkVCMDAwN0NEQThBIC8qIFZpc2l0ZWRMaW5rU3RvcmUubW0gKi8sCiAJCQkJODMwRjJF
MEIyMDlBNkE3NDAwRDM2RkYxIC8qIFdlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlLm1tICov
LApAQCAtNTE3OSw2ICs1MTgyLDcgQEAKIAkJCQk3QzgzRTAzQTFEMEE2MDI3MDBGRUJDRjMgLyog
VXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBDNjFEMEE2NTRFMDBG
RUJDRjMgLyogVmlkZW9Db250cm9sc01hbmFnZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDMw
NjVFMDIxNjU2ODJFMDBFODk1REYgLyogVmlkZW9RdWFsaXR5RGlzcGxheUNvbXBvc2l0aW5nLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJMkQ1MjA2MzUyNDVBNjAzRDAwMzM4Rjg4IC8qIFZpZXdFeHBv
c2VkUmVjdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTExNUVCMzQzMUVFMEJBMDMwMDNDMkMwQSAv
KiBWaWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjM1
NkZCMjIxRUM0RTBCQTAwNDRCRjE4IC8qIFZpc2libGVDb250ZW50UmVjdC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTgzNzc5QzM4MUY4MkZFQ0UwMDdDREE4QSAvKiBWaXNpdGVkTGlua1N0b3JlLm1t
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1ZpZXdFeHBvc2VkUmVjdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVmlld0V4cG9zZWRSZWN0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiZThhOTBhYzkzYTRj
ZDM2NjIwNmRlN2I2NzExNDZlYjdhYjExOGYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ZpZXdFeHBvc2VkUmVjdC5tbQpAQCAtMCwwICsx
LDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRm
b3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJUZXN0
LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQYWdlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQYWdlUHJp
dmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKworQGludGVyZmFjZSBXS1dlYlZp
ZXcgKCkKKy0gKFdLUGFnZVJlZilfcGFnZUZvclRlc3Rpbmc7CitAZW5kCisKK3N0YXRpYyBib29s
IGRpZEZvcmNlUmVwYWludDsKKworc3RhdGljIHZvaWQgZm9yY2VSZXBhaW50Q2FsbGJhY2soV0tF
cnJvclJlZiBlcnJvciwgdm9pZCopCit7CisgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIGRp
ZEZvcmNlUmVwYWludCA9IHRydWU7Cit9CisKK1RFU1QoV2ViS2l0LCBJbml0aWFsVGlsZUNvdmVy
YWdlVXNlc1ZpZXdFeHBvc2VkUmVjdCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgNTAwMDAwMCwgNTAwMDAwMCldKTsKKyAgICBbd2ViVmlldyBfc2V0Q2xp
cHNUb1Zpc2libGVSZWN0OllFU107CisgICAgW1t3ZWJWaWV3IGhvc3RXaW5kb3ddIHNldEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGRpc3BsYXk6Tk9dOworICAgIFt3ZWJWaWV3IGFk
ZFRvVGVzdFdpbmRvd107CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5n
OkAiIl07CisKKyAgICBkaWRGb3JjZVJlcGFpbnQgPSBmYWxzZTsKKyAgICBXS1BhZ2VGb3JjZVJl
cGFpbnQoW3dlYlZpZXcgX3BhZ2VGb3JUZXN0aW5nXSwgMCwgZm9yY2VSZXBhaW50Q2FsbGJhY2sp
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRm9yY2VSZXBhaW50KTsKK30KKwor
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398120</attachid>
            <date>2020-04-30 16:33:32 -0700</date>
            <delta_ts>2020-04-30 18:37:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211265-20200430163331.patch</filename>
            <type>text/plain</type>
            <size>37872</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdjMmRkZDkwMDIwNjlk
NmI1OTkwMGUzNGUyOWI4ZmZlY2FkYWM5NS4uMjEzMjEwNmI2MjE2NGRjY2RlOTFmMmJjODViNGJj
NjlhNGE4NjgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA0LTMwICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEJvb2tzIHNvbWV0
aW1lcyBlbmRzIHVwIHdpdGggYmxhbmsgcGFnZXMsIGVzcGVjaWFsbHkgYWZ0ZXIgYWRqdXN0aW5n
IGZvbnQgc2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExMjY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTg5ODE0ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAg
ICAgICAgUmVuYW1lICJoYXNSZWN0Q2hhbmdlZCIgYmVjYXVzZSBpdCBvbmx5IHRlc3RzIGlmIHRo
ZSBvcHRpb25hbC1zdGF0ZSBvZiB0aGUKKyAgICAgICAgcmVjdCBoYXMgY2hhbmdlZCwgbm90IHRo
ZSBhY3R1YWwgdmFsdWUuCisKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dmlld0V4cG9z
ZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgY29uc3QpOgorICAgICAgICBFeHBvc2UgdGhlIHZp
ZXdFeHBvc2VkUmVjdCBpbiBjb250ZW50IGNvb3JkaW5hdGVzIGZvciBhIHZhcmlldHkgb2YgY2xp
ZW50cy4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9UZXh0
SW5kaWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVJbmRpY2F0b3IpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29tcHV0ZVBhZ2VUaWxlZEJhY2tpbmdDb3ZlcmFnZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnZpc2libGVSZWN0Rm9yTGF5ZXJGbHVzaGluZyBjb25zdCk6CisgICAg
ICAgIEFkb3B0IHZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzLgorICAgICAgICBN
YXBwaW5nIGZyb20gcm9vdCB2aWV3IC0+IGNvbnRlbnRzIGNvb3JkaW5hdGVzIG5vdyBoYXBwZW5z
IGF0IHRpbWUtb2YtdXNlCisgICAgICAgIGluc3RlYWQgb2YgYWhlYWQgb2YgdGltZSAod2hlcmUg
aXQgY291bGQgYmVjb21lIHN0YWxlKS4KKwogMjAyMC0wNC0yOSAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIGRlYnVnIEFTU0VSVCBpbiBJbWFn
ZURlY29kZXJBVkZPYmpDOjpzdG9yZVNhbXBsZUJ1ZmZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJhMDlmYmNk
OWQwYmYzZmVkZjNhYzc4ZjYwZTdkYWE4ODJhMzU5ZmQuLjMzYjUxYjNhMzlmZDU0ZGVmYzFkNWU4
NWI5YmVkZTA5MmVhMzQxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjAtMDQtMzAg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQm9va3Mg
c29tZXRpbWVzIGVuZHMgdXAgd2l0aCBibGFuayBwYWdlcywgZXNwZWNpYWxseSBhZnRlciBhZGp1
c3RpbmcgZm9udCBzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTEyNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5ODk4MTQ0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgZmV3IHByb2JsZW1z
OgorCisgICAgICAgIC0gVGhlcmUgaXMgYSB3aW5kb3cgZHVyaW5nIHBhZ2UgY3JlYXRpb24gd2hl
cmUgYSBXS1dlYlZpZXcgY3JlYXRlZAorICAgICAgICB3aXRoIF9jbGlwc1RvVmlzaWJsZVJlY3Q9
WUVTIHdvdWxkIG5vdCB5ZXQgaGF2ZSBzZW50IGl0cyB2aWV3RXhwb3NlZFJlY3QKKyAgICAgICAg
dG8gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MsIGFuZCBpZiB3ZSBlbmQgdXAgY29uc3RydWN0aW5n
IHRpbGVzIGR1cmluZworICAgICAgICB0aGF0IHRpbWUsIHdlIGNhbiBtYWtlIHdheSB0b28gbWFu
eSwgYm9nZ2luZyBkb3duIHRoZSBwcm9jZXNzIChvciBjcmFzaGluZykuCisKKyAgICAgICAgRml4
IHRoaXMgYnkgYWx3YXlzIGtlZXBpbmcgdHJhY2sgb2YgdGhlIHZpZXdFeHBvc2VkUmVjdCAob24g
V2ViUGFnZVByb3h5LAorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBzb21ld2hhdC1tb3JlLXRyYW5z
aWVudCBEcmF3aW5nQXJlYVByb3h5KSBhbmQgc2VuZGluZyBpdAorICAgICAgICB0byB0aGUgV2Vi
IENvbnRlbnQgcHJvY2VzcyBpbiB0aGUgV2ViUGFnZSBjcmVhdGlvbiBwYXJhbWV0ZXJzLCB0byBl
bnRpcmVseQorICAgICAgICByZW1vdmUgdGhpcyB3aW5kb3cuCisKKyAgICAgICAgLSBFdmVuIHdo
ZW4gdGhlIHZpZXdFeHBvc2VkUmVjdCBzdWNjZXNzZnVsbHkgZ2V0cyB0byB0aGUgV2ViIENvbnRl
bnQKKyAgICAgICAgcHJvY2VzcywgaXQgY2FuIHN0aWxsIGVuZCB1cCB3aWxkbHkgd3Jvbmc6IHRo
ZSBEcmF3aW5nQXJlYSB3YXMgdGFza2VkIHdpdGgKKyAgICAgICAgd2F0Y2hpbmcgc2Nyb2xsaW5n
IGNoYW5nZXMsIGFwcGx5aW5nIHRoZSBzY3JvbGwgb2Zmc2V0IHRvIHRoZSB2aWV3RXhwb3NlZFJl
Y3QsCisgICAgICAgIGFuZCBwdXNoaW5nIGl0IHRvIEZyYW1lVmlldyBpbiBjb250ZW50IGNvb3Jk
aW5hdGVzLgorCisgICAgICAgIEluc3RlYWQgb2YgdGhpcyBjb21wbGljYXRlZCBhbmQgdGltaW5n
LWRlcGVuZGVudCBtZWNoYW5pc20sIHN0b3JlIHRoZQorICAgICAgICB2aWV3RXhwb3NlZFJlY3Qg
b24gRnJhbWVWaWV3IGluIHZpZXcgY29vcmRpbmF0ZXMgKGl0IGlzIGNhbGxlZCAidmlldyIKKyAg
ICAgICAgZXhwb3NlZCByZWN0IGFmdGVyIGFsbCksIGFuZCBjb252ZXJ0IHRvIGNvbnRlbnQgY29v
cmRpbmF0ZXMgb24gZGVtYW5kCisgICAgICAgIHdoZW4gY2xpZW50cyByZXF1ZXN0IGl0LgorCisg
ICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIFBsdW1iIHZpZXcg
ZXhwb3NlZCByZWN0IHZpYSBXZWJQYWdlIGNyZWF0aW9uIHBhcmFtZXRlcnMuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp1cGRhdGVWaWV3RXhwb3NlZFJlY3QpOgorICAgICAgICBTZW5kIHZpZXdFeHBvc2Vk
UmVjdCBjaGFuZ2VzIHRvIFdlYlBhZ2VQcm94eSBpbnN0ZWFkIG9mIERyYXdpbmdBcmVhUHJveHku
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OnZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6c2V0Vmlld0V4cG9z
ZWRSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5o
OgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5Ojp2aWV3RXhwb3NlZFJlY3QgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlkQ2hhbmdlVmlld0V4cG9z
ZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6aW5kaWNhdG9yTG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnNldFZpZXdFeHBvc2VkUmVj
dCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6dmlld0V4cG9zZWRSZWN0IGNvbnN0KToKKyAgICAgICAgTWFpbnRhaW4gdmlld0V4cG9zZWRS
ZWN0IG9uIFdlYlBhZ2VQcm94eSBpbnN0ZWFkIG9mIERyYXdpbmdBcmVhUHJveHksCisgICAgICAg
IHNvIHRoYXQgd2UgY2FuIGFsd2F5cyBzdG9yZSBpdCBldmVuIGlmIHdlIGRvbid0IGhhdmUgYSBE
cmF3aW5nQXJlYVByb3h5IHlldAorICAgICAgICAob3IgY2hhbmdlIERyYXdpbmdBcmVhUHJveGll
cykgYW5kIGNhbiBzZW5kIGl0IGluIFdlYlBhZ2UgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0Vmlld0V4cG9zZWRS
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0
ZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Ojp1cGRhdGVTY3JvbGxlZEV4cG9zZWRSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5t
bToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6OlRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QpOgorICAgICAg
ICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2Nyb2xsKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0
ZVNjcm9sbGVkRXhwb3NlZFJlY3QpOiBEZWxldGVkLgorICAgICAgICBQbHVtYiB2aWV3RXhwb3Nl
ZFJlY3QgZGlyZWN0bHkgdG8gRnJhbWVWaWV3LCBpbnN0ZWFkIG9mIHRyeWluZyB0byBhcHBseQor
ICAgICAgICB0aGUgcm9vdCB2aWV3IC0+IGNvbnRlbnRzIG1hcHBpbmcgb3Vyc2VsdmVzIGFuZCBw
dXNoaW5nIHVwZGF0ZXMuCisKIDIwMjAtMDQtMjkgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxh
cGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNjA4ODkpOiBUZXN0Q29u
dGV4dE1lbnU6L3dlYmtpdC9XZWJLaXRXZWJWaWV3L3BvcHVsYXRlLW1lbnUgbm8gbG9uZ2VyIHBh
c3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGIzZmUxNDBmYTM3YTc0ZThkYmNm
MTIxYjI2ZWI5YWVlZjY5NjU2YzIuLjUwNDg0MmNhOTRiODFjYTJiYzVkMDQxYzc0ZWVjNmUyNTI5
MGUzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTUzNzEsNyArNTM3MSw3IEBA
IHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2
aWV3RXhwb3NlZFJlY3QpCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0g
PDwgIkZyYW1lVmlldyAiIDw8IHRoaXMgPDwgIiBzZXRWaWV3RXhwb3NlZFJlY3QgIiA8PCAodmll
d0V4cG9zZWRSZWN0ID8gdmlld0V4cG9zZWRSZWN0LnZhbHVlKCkgOiBGbG9hdFJlY3QoKSkpOwog
Ci0gICAgYm9vbCBoYXNSZWN0Q2hhbmdlZCA9ICFtX3ZpZXdFeHBvc2VkUmVjdCA9PSAhdmlld0V4
cG9zZWRSZWN0OworICAgIGJvb2wgaGFzUmVjdEV4aXN0ZW5jZUNoYW5nZWQgPSAhbV92aWV3RXhw
b3NlZFJlY3QgPT0gIXZpZXdFeHBvc2VkUmVjdDsKICAgICBtX3ZpZXdFeHBvc2VkUmVjdCA9IHZp
ZXdFeHBvc2VkUmVjdDsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc3VwcG9ydCBjbGlwcGlu
ZyB0byB0aGUgZXhwb3NlZCByZWN0IGZvciBzdWJmcmFtZXMgYXMgd2VsbC4KQEAgLTUzNzksNyAr
NTM3OSw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8Rmxv
YXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChUaWxl
ZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMtPnRpbGVkQmFja2luZygpKSB7Ci0gICAgICAg
IGlmIChoYXNSZWN0Q2hhbmdlZCkKKyAgICAgICAgaWYgKGhhc1JlY3RFeGlzdGVuY2VDaGFuZ2Vk
KQogICAgICAgICAgICAgdXBkYXRlVGlsZWRCYWNraW5nQWRhcHRpdmVTaXppbmcoKTsKICAgICAg
ICAgYWRqdXN0VGlsZWRCYWNraW5nQ292ZXJhZ2UoKTsKICAgICAgICAgdGlsZWRCYWNraW5nLT5z
ZXRUaWxlZFNjcm9sbGluZ0luZGljYXRvclBvc2l0aW9uKG1fdmlld0V4cG9zZWRSZWN0ID8gbV92
aWV3RXhwb3NlZFJlY3QudmFsdWUoKS5sb2NhdGlvbigpIDogRmxvYXRQb2ludCgpKTsKQEAgLTUz
OTEsNiArNTM5MSwxMyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlv
bmFsPEZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KQogICAgIH0KIH0KIAorT3B0aW9uYWw8Rmxv
YXRSZWN0PiBGcmFtZVZpZXc6OnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1fdmlld0V4cG9zZWRSZWN0KQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworICAgIHJldHVybiByb290Vmlld1RvQ29udGVudHMoKm1fdmlld0V4cG9zZWRS
ZWN0KTsKK30KKwogdm9pZCBGcmFtZVZpZXc6OmNsZWFyVmlld3BvcnRTaXplT3ZlcnJpZGVGb3JD
U1NWaWV3cG9ydFVuaXRzKCkKIHsKICAgICBpZiAoIW1fb3ZlcnJpZGVWaWV3cG9ydFNpemUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCAyMWMyZWZjNmJhZmUyNGZhOTJmNTYxZWFmMzY0MmE4
YTdiNzZlNmQyLi5iNTVhYzUxMDRjOGUzZWE2NjJhYzBhYzNjNjM0MmE1OGUwMjQyMDVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTYyOCw3ICs2MjgsNyBAQCBwdWJsaWM6CiAgICAgLy8g
Y2xpcHBpbmcgYnkgb3RoZXIgVUkgZWxlbWVudHMpLCB3aGVyZWFzIHZpc2libGVDb250ZW50UmVj
dCBpcwogICAgIC8vIGludGVybmFsIHRvIFdlYkNvcmUgYW5kIGRvZXNuJ3QgcmVzcGVjdCB0aG9z
ZSB0aGluZ3MuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0
aW9uYWw8RmxvYXRSZWN0Pik7Ci0gICAgT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdFeHBvc2VkUmVjdDsgfQorICAgIFdFQkNPUkVfRVhQ
T1JUIE9wdGlvbmFsPEZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0
ZXMoKSBjb25zdDsKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgdm9pZCB1cGRh
dGVTbmFwT2Zmc2V0cygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9U
ZXh0SW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5jcHAK
aW5kZXggYWUzNGIzYjg3Zjg4ZjBiMDFhOTJiYWJhNDY3N2YxN2E5MjJlYzM1Yy4uNjM1MDc2MjIy
NDQyNTk1ZDQ1YmI5MjE2N2Q4YjE4ZGNkYzk1NWVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9UZXh0SW5kaWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJ
bmRpY2F0b3IuY3BwCkBAIC0zMzQsOCArMzM0LDggQEAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZUlu
ZGljYXRvcihUZXh0SW5kaWNhdG9yRGF0YSYgZGF0YSwgRnJhbWUmIGZyYW1lLCBjb25zdCBTaW0K
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGNvbnRlbnRzQ2xpcFJlY3QgPSBlbmNsb3Np
bmdJbnRSZWN0KGZyYW1lVmlldy0+ZXhwb3NlZENvbnRlbnRSZWN0KCkpOwogI2Vsc2UKLSAgICBp
ZiAoYXV0byB2aWV3RXhwb3NlZFJlY3QgPSBmcmFtZVZpZXctPnZpZXdFeHBvc2VkUmVjdCgpKQot
ICAgICAgICBjb250ZW50c0NsaXBSZWN0ID0gZnJhbWVWaWV3LT52aWV3VG9Db250ZW50cyhlbmNs
b3NpbmdJbnRSZWN0KCp2aWV3RXhwb3NlZFJlY3QpKTsKKyAgICBpZiAoYXV0byB2aWV3RXhwb3Nl
ZFJlY3QgPSBmcmFtZVZpZXctPnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkp
CisgICAgICAgIGNvbnRlbnRzQ2xpcFJlY3QgPSAqdmlld0V4cG9zZWRSZWN0OwogICAgIGVsc2UK
ICAgICAgICAgY29udGVudHNDbGlwUmVjdCA9IGZyYW1lVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0
KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKaW5kZXggMDE4MzAxMTg3MzA5NjhjZTg3MWM3MDgyMjkxNDE2YzM3NjhkODZlNy4u
Yjc5ZGM0Yzk5OTAzZDc4OWQ2ODMyZDVlOWY0ZTk2NDFmNWRiZmRhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTQwMCw3ICs0MDAs
NyBAQCBzdGF0aWMgVGlsZWRCYWNraW5nOjpUaWxlQ292ZXJhZ2UgY29tcHV0ZVBhZ2VUaWxlZEJh
Y2tpbmdDb3ZlcmFnZShjb25zdCBSZW5kZXJMYQogICAgIFRpbGVkQmFja2luZzo6VGlsZUNvdmVy
YWdlIHRpbGVDb3ZlcmFnZSA9IFRpbGVkQmFja2luZzo6Q292ZXJhZ2VGb3JWaXNpYmxlQXJlYTsK
ICAgICBib29sIHVzZU1pbmltYWxUaWxlc0R1cmluZ0xpdmVSZXNpemUgPSBmcmFtZVZpZXcuaW5M
aXZlUmVzaXplKCk7CiAgICAgaWYgKGZyYW1lVmlldy5zcGVjdWxhdGl2ZVRpbGluZ0VuYWJsZWQo
KSAmJiAhdXNlTWluaW1hbFRpbGVzRHVyaW5nTGl2ZVJlc2l6ZSkgewotICAgICAgICBib29sIGNs
aXBzVG9FeHBvc2VkUmVjdCA9IHN0YXRpY19jYXN0PGJvb2w+KGZyYW1lVmlldy52aWV3RXhwb3Nl
ZFJlY3QoKSk7CisgICAgICAgIGJvb2wgY2xpcHNUb0V4cG9zZWRSZWN0ID0gc3RhdGljX2Nhc3Q8
Ym9vbD4oZnJhbWVWaWV3LnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkpOwog
ICAgICAgICBpZiAoZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxiYXJNb2RlKCkgIT0gU2Nyb2xs
YmFyQWx3YXlzT2ZmIHx8IGNsaXBzVG9FeHBvc2VkUmVjdCkKICAgICAgICAgICAgIHRpbGVDb3Zl
cmFnZSB8PSBUaWxlZEJhY2tpbmc6OkNvdmVyYWdlRm9ySG9yaXpvbnRhbFNjcm9sbGluZzsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAppbmRleCBiZjA1MTJmYWFmZWQ5Njg3MjhmMjg4NGI5NjQwMzBjNTkxYzYzMTRiLi4wM2QwNGM4
MGY5M2NjYzAzMzEzZTVkMDcxNzNkNTBiMGJhZjY0MmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNTE0LDggKzUxNCw4
IEBAIEZsb2F0UmVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnZpc2libGVSZWN0Rm9yTGF5ZXJG
bHVzaGluZygpIGNvbnN0CiAgICAgLy8gSGF2aW5nIGEgbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXIg
aW5kaWNhdGVzIHRoYXQgd2UncmUgZG9pbmcgc2Nyb2xsaW5nIHZpYSBHcmFwaGljc0xheWVycy4K
ICAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QgPSBtX3Njcm9sbGVkQ29udGVudHNMYXllciA/IEZs
b2F0UmVjdCh7IH0sIGZyYW1lVmlldy5zaXplRm9yVmlzaWJsZUNvbnRlbnQoKSkgOiBmcmFtZVZp
ZXcudmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAKLSAgICBpZiAoZnJhbWVWaWV3LnZpZXdFeHBvc2Vk
UmVjdCgpKQotICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3QoZnJhbWVWaWV3LnZpZXdFeHBv
c2VkUmVjdCgpLnZhbHVlKCkpOworICAgIGlmIChhdXRvIGV4cG9zZWRSZWN0ID0gZnJhbWVWaWV3
LnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkpCisgICAgICAgIHZpc2libGVS
ZWN0LmludGVyc2VjdCgqZXhwb3NlZFJlY3QpOwogCiAgICAgcmV0dXJuIHZpc2libGVSZWN0Owog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCmluZGV4IGRjMTE1MmY4ZWIxOWVhNTA2MDg2ZDk3OGM3MDE3Yzg3MjI5OGQ0N2Eu
LjhjODBkZTJmMzJlYzQ2ODA5ZmZkMGUzMDA3Zjc3NGJmYTQ4NTFmZTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC00NCw2
ICs0NCw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVuZGVybGF5Q29sb3I7CiAgICAg
ZW5jb2RlciA8PCB1c2VGaXhlZExheW91dDsKICAgICBlbmNvZGVyIDw8IGZpeGVkTGF5b3V0U2l6
ZTsKKyAgICBlbmNvZGVyIDw8IHZpZXdFeHBvc2VkUmVjdDsKICAgICBlbmNvZGVyIDw8IGFsd2F5
c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOwogICAgIGVuY29kZXIgPDwgYWx3YXlzU2hvd3NWZXJ0
aWNhbFNjcm9sbGVyOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShwYWdpbmF0aW9uTW9kZSk7CkBA
IC0xODgsNiArMTg5LDggQEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2QKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZml4ZWRM
YXlvdXRTaXplKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMudmlld0V4cG9zZWRSZWN0KSkKKyAgICAgICAgcmV0dXJuIFdU
Rjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYWx3YXlzU2hv
d3NIb3Jpem9udGFsU2Nyb2xsZXIpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xs
ZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5oCmluZGV4IDM3ODJhNDEyYTdmY2ZlNmE3MDA4YTlhNDNiNWJkNDgwZDYzZWZjZjAuLmNmZjMx
MzU1YzFhMjYxOGFhODM3MmM1MjdiODE0NjliYzQ2ZTQxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTg0LDYgKzg0LDggQEAg
c3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgdXNlRml4ZWRMYXlv
dXQ7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBmaXhlZExheW91dFNpemU7CiAKKyAgICBPcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdDsKKwogICAgIGJvb2wgYWx3YXlz
U2hvd3NIb3Jpem9udGFsU2Nyb2xsZXI7CiAgICAgYm9vbCBhbHdheXNTaG93c1ZlcnRpY2FsU2Ny
b2xsZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
aW5kZXggYTg4N2NiYWQzZjMwZTIzOTc0NGEyMDUxMTcwMzNjYzVjOTViNDcxMi4uMzlmMzc0NTA5
NzZlMDRiYjJmNmYyOGQ5Y2M1YjAwNWNiM2RmYmQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE5MDIsOCArMTkwMiw3IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpCiAgICAgaWYgKG1fdXNlQ29udGVudFBy
ZXBhcmF0aW9uUmVjdEZvclZpc2libGVSZWN0KQogICAgICAgICBleHBvc2VkUmVjdCA9IENHUmVj
dFVuaW9uKG1fY29udGVudFByZXBhcmF0aW9uUmVjdCwgZXhwb3NlZFJlY3QpOwogCi0gICAgaWYg
KGF1dG8gZHJhd2luZ0FyZWEgPSBtX3BhZ2UtPmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIGRyYXdp
bmdBcmVhLT5zZXRWaWV3RXhwb3NlZFJlY3QobV9jbGlwc1RvVmlzaWJsZVJlY3QgPyBPcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFJlY3Q+KGV4cG9zZWRSZWN0KSA6IFdURjo6bnVsbG9wdCk7CisgICAg
bV9wYWdlLT5zZXRWaWV3RXhwb3NlZFJlY3QobV9jbGlwc1RvVmlzaWJsZVJlY3QgPyBleHBvc2Vk
UmVjdCA6IFdURjo6bnVsbG9wdCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldENsaXBzVG9W
aXNpYmxlUmVjdChib29sIGNsaXBzVG9WaXNpYmxlUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKaW5kZXggOWU0NmZjYTAzOTQyMmY3YzZjZTdhYmRm
OGMyNjBjOTI4YjRjNjYwMy4uZDhmYTUzODE0ZDNjMmQxNTAzYzQ2ZDU1Y2U3NDA5ODhhZWJhMDk4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKQEAg
LTkxLDEzICs5MSwxMSBAQCBib29sIERyYXdpbmdBcmVhUHJveHk6OnNlbmRNZXNzYWdlKHN0ZDo6
dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+IGVuY29kZXIsIE9wdGlvbgogfQogCiAjaWYgUExBVEZP
Uk0oTUFDKQotdm9pZCBEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCit2b2lkIERyYXdpbmdBcmVh
UHJveHk6OmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpCiB7CiAgICAgaWYgKCFtX3dlYlBhZ2VQ
cm94eS5oYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3ZpZXdF
eHBvc2VkUmVjdCA9IHZpZXdFeHBvc2VkUmVjdDsKLQogICAgIGlmICghbV92aWV3RXhwb3NlZFJl
Y3RDaGFuZ2VkVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV92aWV3RXhwb3NlZFJlY3RDaGFu
Z2VkVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CkBAIC0xMDcsMTEgKzEwNSwxMiBAQCB2b2lk
IERyYXdpbmdBcmVhUHJveHk6OnZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKCkKICAg
ICBpZiAoIW1fd2ViUGFnZVByb3h5Lmhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmIChtX3ZpZXdFeHBvc2VkUmVjdCA9PSBtX2xhc3RTZW50Vmlld0V4cG9zZWRS
ZWN0KQorICAgIGF1dG8gdmlld0V4cG9zZWRSZWN0ID0gbV93ZWJQYWdlUHJveHkudmlld0V4cG9z
ZWRSZWN0KCk7CisgICAgaWYgKHZpZXdFeHBvc2VkUmVjdCA9PSBtX2xhc3RTZW50Vmlld0V4cG9z
ZWRSZWN0KQogICAgICAgICByZXR1cm47CiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJl
YTo6U2V0Vmlld0V4cG9zZWRSZWN0KG1fdmlld0V4cG9zZWRSZWN0KSk7Ci0gICAgbV9sYXN0U2Vu
dFZpZXdFeHBvc2VkUmVjdCA9IG1fdmlld0V4cG9zZWRSZWN0OworICAgIHNlbmQoTWVzc2FnZXM6
OkRyYXdpbmdBcmVhOjpTZXRWaWV3RXhwb3NlZFJlY3Qodmlld0V4cG9zZWRSZWN0KSk7CisgICAg
bV9sYXN0U2VudFZpZXdFeHBvc2VkUmVjdCA9IHZpZXdFeHBvc2VkUmVjdDsKIH0KICNlbmRpZiAv
LyBQTEFURk9STShNQUMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuaAppbmRleCBiMGE4NTcxNjc5ZDY2YmJkZTFmMzgwYTExNDc5N2I4OGFiMWY0NGY4Li45Zjk3
M2QzNjQyODc5NGJkMDIyYWVhOWJkYmYxZDE0ZDZlZGRhNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC04OSw4ICs4OSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0
UG9pbnQpIHsgfQogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3
RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0Pik7Ci0gICAgT3B0aW9uYWw8
V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Zp
ZXdFeHBvc2VkUmVjdDsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3RXhwb3NlZFJl
Y3QoKTsKICAgICB2b2lkIHZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKCk7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKaW5k
ZXggNTU2NTkxZTcxNWNlMmI0ZDdjNTUzZTBlOTU4MDI0ODdhYzdmYTA4NS4uODFjMWExMjE1ZDRi
OTFlMTFiMjM0Y2RkMjc4M2I5YzkwMWU5NjhiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248dm9pZCAoQ2Fs
bGJhY2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAg
IHZvaWQgc2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4pIG92
ZXJyaWRlOworICAgIHZvaWQgZGlkQ2hhbmdlVmlld0V4cG9zZWRSZWN0KCkgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IDRhNTBiODU5YWFkOTNjNDU4NjU1Zjcz
MGYzNmEzMTdiYWE0MzQxNDMuLmQ1NDNhNGI2NjM1Mjg3MjQ4YWQwNTVjOGQyNDljYmIwMDQ1Mjkw
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1t
CkBAIC0yNzUsOSArMjc1LDkgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
OjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZCh1aW50NjRfdCBsYXllckkKIHN0YXRpYyBjb25z
dCBmbG9hdCBpbmRpY2F0b3JJbnNldCA9IDEwOwogCiAjaWYgUExBVEZPUk0oTUFDKQotdm9pZCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCit2b2lkIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHk6OmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpCiB7Ci0gICAg
RHJhd2luZ0FyZWFQcm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KHZpZXdFeHBvc2VkUmVjdCk7Cisg
ICAgRHJhd2luZ0FyZWFQcm94eTo6ZGlkQ2hhbmdlVmlld0V4cG9zZWRSZWN0KCk7CiAgICAgdXBk
YXRlRGVidWdJbmRpY2F0b3JQb3NpdGlvbigpOwogfQogI2VuZGlmCkBAIC0yOTMsOCArMjkzLDgg
QEAgRmxvYXRQb2ludCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjppbmRpY2F0b3JM
b2NhdGlvbigpIGNvbnN0CiAgICAgICAgIHRpbGVkTWFwTG9jYXRpb24gKz0gRmxvYXRTaXplKGFi
c29sdXRlSW5zZXQsIGFic29sdXRlSW5zZXQpOwogI2Vsc2UKICAgICAgICAgRmxvYXRQb2ludCB0
aWxlZE1hcExvY2F0aW9uOwotICAgICAgICBpZiAodmlld0V4cG9zZWRSZWN0KCkpCi0gICAgICAg
ICAgICB0aWxlZE1hcExvY2F0aW9uID0gdmlld0V4cG9zZWRSZWN0KCkudmFsdWUoKS5sb2NhdGlv
bigpOworICAgICAgICBpZiAoYXV0byB2aWV3RXhwb3NlZFJlY3QgPSBtX3dlYlBhZ2VQcm94eS52
aWV3RXhwb3NlZFJlY3QoKSkKKyAgICAgICAgICAgIHRpbGVkTWFwTG9jYXRpb24gPSB2aWV3RXhw
b3NlZFJlY3QtPmxvY2F0aW9uKCk7CiAKICAgICAgICAgdGlsZWRNYXBMb2NhdGlvbiArPSBGbG9h
dFNpemUoaW5kaWNhdG9ySW5zZXQsIGluZGljYXRvckluc2V0KTsKICAgICAgICAgZmxvYXQgc2Nh
bGUgPSAxIC8gbV93ZWJQYWdlUHJveHkucGFnZVNjYWxlRmFjdG9yKCk7CkBAIC0zNjQsOCArMzY0
LDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0lu
ZGljYXRvcihJbnRTaXplIGNvbnRlbnRzU2l6ZSwKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgICAgICBzY2FsZWRFeHBvc2VkUmVjdCA9IG1fd2ViUGFnZVByb3h5LmV4cG9zZWRDb250ZW50
UmVjdCgpOwogI2Vsc2UKLSAgICAgICAgaWYgKHZpZXdFeHBvc2VkUmVjdCgpKQotICAgICAgICAg
ICAgc2NhbGVkRXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJlY3QoKS52YWx1ZSgpOworICAgICAg
ICBpZiAoYXV0byB2aWV3RXhwb3NlZFJlY3QgPSBtX3dlYlBhZ2VQcm94eS52aWV3RXhwb3NlZFJl
Y3QoKSkKKyAgICAgICAgICAgIHNjYWxlZEV4cG9zZWRSZWN0ID0gKnZpZXdFeHBvc2VkUmVjdDsK
ICAgICAgICAgZmxvYXQgc2NhbGUgPSAxIC8gbV93ZWJQYWdlUHJveHkucGFnZVNjYWxlRmFjdG9y
KCk7CiAgICAgICAgIHNjYWxlZEV4cG9zZWRSZWN0LnNjYWxlKHNjYWxlKTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMGQzMDhlNmNiZjY4Njc5
MjZkNDE3NzkxYTAzNDJhZGZhZjc1YzEyOC4uM2I3MjBiODhlZWIxMDQwMjZkZmMyYjE2ZTNmNTc3
MjBjOWJjY2FhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC0zNzc3LDYgKzM3NzcsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldEZpeGVkTGF5b3V0U2l6
ZShjb25zdCBJbnRTaXplJiBzaXplKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZp
eGVkTGF5b3V0U2l6ZShzaXplKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRWaWV3RXhw
b3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCit7
CisgICAgbV92aWV3RXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJlY3Q7CisKKyAgICBpZiAobV9k
cmF3aW5nQXJlYSkKKyAgICAgICAgbV9kcmF3aW5nQXJlYS0+ZGlkQ2hhbmdlVmlld0V4cG9zZWRS
ZWN0KCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRBbHdheXNTaG93c0hvcml6b250YWxT
Y3JvbGxlcihib29sIGFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyKQogewogICAgIGlmIChh
bHdheXNTaG93c0hvcml6b250YWxTY3JvbGxlciA9PSBtX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNj
cm9sbGVyKQpAQCAtNzczMCw2ICs3NzM4LDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBX
ZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICAg
ICBwYXJhbWV0ZXJzLnVuZGVybGF5Q29sb3IgPSBtX3VuZGVybGF5Q29sb3I7CiAgICAgcGFyYW1l
dGVycy51c2VGaXhlZExheW91dCA9IG1fdXNlRml4ZWRMYXlvdXQ7CiAgICAgcGFyYW1ldGVycy5m
aXhlZExheW91dFNpemUgPSBtX2ZpeGVkTGF5b3V0U2l6ZTsKKyAgICBwYXJhbWV0ZXJzLnZpZXdF
eHBvc2VkUmVjdCA9IG1fdmlld0V4cG9zZWRSZWN0OwogICAgIHBhcmFtZXRlcnMuYWx3YXlzU2hv
d3NIb3Jpem9udGFsU2Nyb2xsZXIgPSBtX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOwog
ICAgIHBhcmFtZXRlcnMuYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyID0gbV9hbHdheXNTaG93
c1ZlcnRpY2FsU2Nyb2xsZXI7CiAgICAgcGFyYW1ldGVycy5zdXBwcmVzc1Njcm9sbGJhckFuaW1h
dGlvbnMgPSBtX3N1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYTM4ZDQzZWE4MDRkODU3ZTM3ZjM1ODk2OTA0M2RkYWQ4
OWYxYTNiYS4uMTBlMmJlODVmMDk4Y2U0MmUyZWJmZjQxMGM0NDQwMmRkZGNhMTk3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTk5OCw2ICs5OTgsOSBAQCBwdWJs
aWM6CiAgICAgYm9vbCB1c2VGaXhlZExheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlRml4ZWRM
YXlvdXQ7IH07CiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgZml4ZWRMYXlvdXRTaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9maXhlZExheW91dFNpemU7IH07CiAKKyAgICB2b2lkIHNldFZpZXdF
eHBvc2VkUmVjdChPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KTsKKyAgICBPcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdmll
d0V4cG9zZWRSZWN0OyB9CisKICAgICB2b2lkIHNldEFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9s
bGVyKGJvb2wpOwogICAgIHZvaWQgc2V0QWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyKGJvb2wp
OwogICAgIGJvb2wgYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIoKSBjb25zdCB7IHJldHVy
biBtX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOyB9CkBAIC0yNDg1LDYgKzI0ODgsNyBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3VzZUZpeGVkTGF5b3V0IHsgZmFsc2UgfTsKICAgICBX
ZWJDb3JlOjpJbnRTaXplIG1fZml4ZWRMYXlvdXRTaXplOworICAgIE9wdGlvbmFsPFdlYkNvcmU6
OkZsb2F0UmVjdD4gbV92aWV3RXhwb3NlZFJlY3Q7CiAKICAgICBib29sIG1fYWx3YXlzU2hvd3NI
b3Jpem9udGFsU2Nyb2xsZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbHdheXNTaG93c1ZlcnRp
Y2FsU2Nyb2xsZXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCAxNjQ4OTFhMWRmOWM3NWVjMTQ4ZDkyYThjNDgw
NDAwYTczZTA3ZTQ0Li4xYWMzOTQ0MzQ0NmUxN2E5ODM1M2ZiOTIzOWIyNzJkN2M0OTI1ZTA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEu
aApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmMo
Q2FsbGJhY2tJRCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgc2V0Vmll
d0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4pIG92ZXJyaWRlOwotICAg
IE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdDsgfQorICAgIE9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV92aWV3RXhwb3NlZFJlY3Q7IH0KIAogICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRp
b25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBjb25zdCBTdHJpbmcmIGtleSwgTW9ub3Rvbmlj
VGltZSBzdGFydFRpbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25E
aWRFbmQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwpAQCAt
MTA4LDcgKzEwOCw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIGFkZE1pbGVzdG9uZXNUb0Rpc3Bh
dGNoKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBvdmVycmlkZTsKIAotICAg
IHZvaWQgdXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOwogICAgIHZvaWQgdXBkYXRlUm9vdExh
eWVycygpOwogCiAgICAgdm9pZCBhZGRDb21taXRIYW5kbGVycygpOwpAQCAtMTQ1LDcgKzE0NCw2
IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3ZpZXdTaXplOwogCiAgICAgT3B0
aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKLSAgICBPcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFJlY3Q+IG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3Q7CiAKICAgICBX
ZWJDb3JlOjpUaW1lciBtX3VwZGF0ZVJlbmRlcmluZ1RpbWVyOwogICAgIGJvb2wgbV9pc1JlbmRl
cmluZ1N1c3BlbmRlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggMTM1M2YxYmZlOTI2NTQ4OWNhMzEzYTBh
YmY5ZTAwNzdjZjVkZWU3My4uNTk5N2FlYmM2ZTE0YjYzMzFkNmQyMTI0NTcyYmJlZjkyMGY0MmJh
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYS5tbQpAQCAtNzMsNiArNzMsOSBAQCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgVwogICAgIC8v
IERpc3BsYXlJRHMgbGVzcyBsaWtlbHksIGl0IGlzIG5vdCBlbnRpcmVseSBzYWZlIHRvIGhhdmUg
YSBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSBhbmQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEKICAgICAvLyBjb2VleGlzdCBpbiB0aGUgc2FtZSBwcm9jZXNzLgogICAgIHdlYlBhZ2Uu
d2luZG93U2NyZWVuRGlkQ2hhbmdlKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgo
KSAtIHdlYlBhZ2UuaWRlbnRpZmllcigpLnRvVUludDY0KCkpOworCisgICAgaWYgKGF1dG8gdmll
d0V4cG9zZWRSZWN0ID0gcGFyYW1ldGVycy52aWV3RXhwb3NlZFJlY3QpCisgICAgICAgIHNldFZp
ZXdFeHBvc2VkUmVjdCh2aWV3RXhwb3NlZFJlY3QpOwogfQogCiBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKCkKQEAgLTIyNyw3ICsyMzAsOSBA
QCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphY2NlbGVyYXRlZEFuaW1hdGlvbkRp
ZEVuZCh1aW50NjRfdCBsYXllcklELCBjbwogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YTo6c2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4
cG9zZWRSZWN0KQogewogICAgIG1fdmlld0V4cG9zZWRSZWN0ID0gdmlld0V4cG9zZWRSZWN0Owot
ICAgIHVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKTsKKworICAgIGlmIChGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCkpCisgICAgICAgIGZyYW1lVmlldy0+
c2V0Vmlld0V4cG9zZWRSZWN0KG1fdmlld0V4cG9zZWRSZWN0KTsKIH0KIAogV2ViQ29yZTo6Rmxv
YXRSZWN0IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpleHBvc2VkQ29udGVudFJlY3QoKSBj
b25zdApAQCAtMjUxLDIyICsyNTYsNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
OjpzZXRFeHBvc2VkQ29udGVudFJlY3QoY29uc3QgRmxvYXRSZWN0JiBleHBvc2VkQwogICAgIHNj
aGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKQotewotICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKTsKLSAgICBpZiAoIWZyYW1lVmlldykK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCA9IG1fdmll
d0V4cG9zZWRSZWN0OwotCi0jaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKG1fdmll
d0V4cG9zZWRSZWN0KQotICAgICAgICBtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0LnZhbHVlKCku
bW92ZUJ5KGZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCkpOwotI2VuZGlmCi0KLSAgICBmcmFtZVZp
ZXctPnNldFZpZXdFeHBvc2VkUmVjdChtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0KTsKLX0KLQog
VGlsZWRCYWNraW5nKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6bWFpbkZyYW1lVGlsZWRC
YWNraW5nKCkgY29uc3QKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5t
YWluRnJhbWVWaWV3KCk7CkBAIC0zMzMsOCArMzIyLDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6dXBkYXRlUmVuZGVyaW5nKCkKICAgICBtX3dlYlBhZ2UudXBkYXRlUmVuZGVy
aW5nKCk7CiAKICAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QoRmxvYXRQb2ludCgpLCBtX3ZpZXdT
aXplKTsKLSAgICBpZiAobV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCkKLSAgICAgICAgdmlzaWJs
ZVJlY3QuaW50ZXJzZWN0KG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QudmFsdWUoKSk7CisgICAg
aWYgKGF1dG8gZXhwb3NlZFJlY3QgPSBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpLT52aWV3RXhw
b3NlZFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcygpKQorICAgICAgICB2aXNpYmxlUmVjdC5pbnRl
cnNlY3QoKmV4cG9zZWRSZWN0KTsKIAogICAgIGFkZENvbW1pdEhhbmRsZXJzKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKaW5kZXggODhhNGY5NWIwYTljNjY5MDBh
YTU0ZGNmNmFhNDBiZDg4NmJmODRkMi4uZGIwNGI1MDVmZWEyMGVkNzMzMzE5NjU4ZmUxOTQ0Yjg0
ZTYzNTBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKQEAgLTU4
LDcgKzU4LDcgQEAgcHJpdmF0ZToKICAgICAvLyBEcmF3aW5nQXJlYQogICAgIHZvaWQgc2V0TmVl
ZHNEaXNwbGF5KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9s
bERlbHRhKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSkgb3ZlcnJp
ZGUgeyB9CiAKICAgICB2b2lkIGZvcmNlUmVwYWludCgpIG92ZXJyaWRlOwogICAgIGJvb2wgZm9y
Y2VSZXBhaW50QXN5bmMoQ2FsbGJhY2tJRCkgb3ZlcnJpZGU7CkBAIC03Miw3ICs3Miw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBtYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0
aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0Pikgb3ZlcnJpZGU7Ci0gICAgT3B0aW9uYWw8V2ViQ29y
ZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0OyB9CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRS
ZWN0PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3ZpZXdFeHBv
c2VkUmVjdDsgfQogCiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IGV4cG9zZWRDb250ZW50UmVjdCgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwpAQCAtMTI1LDcgKzEyNSw2IEBAIHByaXZhdGU6
CiAgICAgV2ViQ29yZTo6VGlsZWRCYWNraW5nKiBtYWluRnJhbWVUaWxlZEJhY2tpbmcoKSBjb25z
dDsKICAgICB2b2lkIHVwZGF0ZURlYnVnSW5mb0xheWVyKGJvb2wgc2hvd0xheWVyKTsKIAotICAg
IHZvaWQgdXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOwogICAgIHZvaWQgc2NhbGVWaWV3VG9G
aXREb2N1bWVudElmTmVlZGVkKCk7CiAKICAgICB2b2lkIHNlbmRQZW5kaW5nTmV3bHlSZWFjaGVk
UGFpbnRpbmdNaWxlc3RvbmVzKCk7CkBAIC0xNDUsNyArMTQ0LDYgQEAgcHJpdmF0ZToKICAgICBS
ZXRhaW5QdHI8Q0FMYXllcj4gbV9wZW5kaW5nUm9vdExheWVyOwogCiAgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6RmxvYXRSZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKLSAgICBPcHRpb25hbDxXZWJDb3Jl
OjpGbG9hdFJlY3Q+IG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3Q7CiAKICAgICBXZWJDb3JlOjpJ
bnRTaXplIG1fbGFzdFZpZXdTaXplRm9yU2NhbGVUb0ZpdDsKICAgICBXZWJDb3JlOjpJbnRTaXpl
IG1fbGFzdERvY3VtZW50U2l6ZUZvclNjYWxlVG9GaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggNGJiNjdmMmY2MDNiZTQ0NTcwMTRmZjEwN2M1YTg1MTNm
MGY4ZDdmNy4uNzBkZjI2ZGIyOWQ3OTQ0MTQ3OTE0NmNjZTM0Y2M1NGYyOWQwYzEwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtOTEsNiArOTEsOSBAQCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEoV2ViUGFnZSYgd2ViUGFnZSwgYwogICAgIHVwZGF0ZUxheWVySG9zdGluZ0NvbnRleHQoKTsK
ICAgICBzZXRDb2xvclNwYWNlKHBhcmFtZXRlcnMuY29sb3JTcGFjZSk7CiAKKyAgICBpZiAoYXV0
byB2aWV3RXhwb3NlZFJlY3QgPSBwYXJhbWV0ZXJzLnZpZXdFeHBvc2VkUmVjdCkKKyAgICAgICAg
c2V0Vmlld0V4cG9zZWRSZWN0KHZpZXdFeHBvc2VkUmVjdCk7CisKICAgICBpZiAoIXBhcmFtZXRl
cnMuaXNQcm9jZXNzU3dhcCkKICAgICAgICAgc2VuZEVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGVJZk5lZWRlZCgpOwogfQpAQCAtMTM4LDExICsxNDEsNiBAQCB2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYg
cmVjdCkKIHsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2Nyb2xs
KGNvbnN0IEludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQot
ewotICAgIHVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKTsKLX0KLQogdm9pZCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBDQUxheWVyICpyb290TGF5ZXIgPSBncmFwaGljc0xh
eWVyID8gZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpIDogbmlsOwpAQCAtNDY3LDggKzQ2
NSw4IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmlu
ZyhVcGRhdGVSZW5kZXJpbmdUeXBlIGZsdXNoVHlwCiAgICAgICAgIH0KIAogICAgICAgICBGbG9h
dFJlY3QgdmlzaWJsZVJlY3QgPSBbbV9ob3N0aW5nTGF5ZXIgZnJhbWVdOwotICAgICAgICBpZiAo
bV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCkKLSAgICAgICAgICAgIHZpc2libGVSZWN0LmludGVy
c2VjdChtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0LnZhbHVlKCkpOworICAgICAgICBpZiAoYXV0
byBleHBvc2VkUmVjdCA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCktPnZpZXdFeHBvc2VkUmVj
dEluQ29udGVudENvb3JkaW5hdGVzKCkpCisgICAgICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNl
Y3QoKmV4cG9zZWRSZWN0KTsKIAogICAgICAgICAvLyBCZWNhdXNlIG91ciB2aWV3LXJlbGF0aXZl
IG92ZXJsYXkgcm9vdCBsYXllciBpcyBub3QgYXR0YWNoZWQgdG8gdGhlIG1haW4gR3JhcGhpY3NM
YXllciB0cmVlLCB3ZSBuZWVkIHRvIGZsdXNoIGl0IG1hbnVhbGx5LgogICAgICAgICBpZiAobV92
aWV3T3ZlcmxheVJvb3RMYXllcikKQEAgLTU1Myw3ICs1NTEsOSBAQCB2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpyZXN1bWVQYWludGluZygpCiB2b2lkIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2
aWV3RXhwb3NlZFJlY3QpCiB7CiAgICAgbV92aWV3RXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJl
Y3Q7Ci0gICAgdXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOworCisgICAgaWYgKEZyYW1lVmll
dyogZnJhbWVWaWV3ID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKSkKKyAgICAgICAgZnJhbWVW
aWV3LT5zZXRWaWV3RXhwb3NlZFJlY3QobV92aWV3RXhwb3NlZFJlY3QpOwogfQogCiBGbG9hdFJl
Y3QgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmV4cG9zZWRDb250ZW50UmVjdCgpIGNv
bnN0CkBAIC01NjcsMjQgKzU2Nyw2IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OnNldEV4cG9zZWRDb250ZW50UmVjdChjb25zdCBGbG9hdFJlY3QmKQogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1
cGRhdGVTY3JvbGxlZEV4cG9zZWRSZWN0KCkKLXsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9
IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCk7Ci0gICAgaWYgKCFmcmFtZVZpZXcpCi0gICAgICAg
IHJldHVybjsKLQotICAgIG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QgPSBtX3ZpZXdFeHBvc2Vk
UmVjdDsKLQotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChtX3ZpZXdFeHBvc2Vk
UmVjdCkgewotICAgICAgICBTY3JvbGxPZmZzZXQgc2Nyb2xsT2Zmc2V0ID0gZnJhbWVWaWV3LT5z
Y3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oZnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlvbigpKTsKLSAg
ICAgICAgbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdC52YWx1ZSgpLm1vdmVCeShzY3JvbGxPZmZz
ZXQpOwotICAgIH0KLSNlbmRpZgotCi0gICAgZnJhbWVWaWV3LT5zZXRWaWV3RXhwb3NlZFJlY3Qo
bV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCk7Ci19Ci0KIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5KGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBib29s
IGZsdXNoU3luY2hyb25vdXNseSwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBmZW5jZVBvcnQp
CiB7CiAgICAgbV9pblVwZGF0ZUdlb21ldHJ5ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwZmQ1OTE2OTVkZDUyNzg5MzQ3YTc0ODM3
MTMyYTVlYjU0Y2FmMzIxLi5mMDU1Nzc4N2JkNDdjZWU1NjcwZGU3NGYxN2UxNmI4MDE4NDM5YzI5
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMjAtMDQtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQm9va3Mgc29tZXRpbWVzIGVuZHMgdXAgd2l0aCBibGFuayBwYWdl
cywgZXNwZWNpYWxseSBhZnRlciBhZGp1c3RpbmcgZm9udCBzaXplCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyNjUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU5ODk4MTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9WaWV3
RXhwb3NlZFJlY3QubW06IEFkZGVkLgorICAgICAgICAoZm9yY2VSZXBhaW50Q2FsbGJhY2spOgor
ICAgICAgICAoVEVTVCk6CisgICAgICAgIEFkZCBhIHRlc3QgZm9yIHRoZSBmaXJzdCBwcm9ibGVt
LCB3aGljaCB3b3VsZCBwcmV2aW91c2x5IGF0dGVtcHQgdG8gYWxsb2NhdGUKKyAgICAgICAgfjkw
VEIgb2YgdGlsZXMsIHNwaW5uaW5nIGFuZCBleHBsb2RpbmcsIGFuZCBub3cgaGFwcGlseSBqdXN0
IGFsbG9jYXRlcyBhIGZldy4KKwogMjAyMC0wNC0yOSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVf
Y2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYmV0dGVyIGhhbmRsaW5nIG9mIGFuIHVu
Y2xlYXJlZCBidW5kbGUgaWRlbnRpZmllciBpbiBXZWJLaXRUZXN0UnVubmVyCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDczMTI5NTQ4MGM3YTc1YzliOWY2ZjE4Y2U0ZWY2YTZmZTgwNmZiZjku
LjBlNzJlYjIxYTY5YTE0N2Q0NTJmOGJiZDdiMDFhOTQ3OGJhMjg1ZTMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMzksNiArMTM5LDcgQEAKIAkJMkQzQ0EzQTgyMjFERjRCNDAwODhFODAz
IC8qIFBhZ2VPdmVybGF5UGx1Z2luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkQzQ0EzQTQyMjFERjIzOTAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1
Z2luLm1tICovOyB9OwogCQkyRDRDRjhCRDFEODM2MENDMDAwMUNFOEQgLyogV0tUaHVtYm5haWxW
aWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ0
Q0Y4QkMxRDgzNjBDQzAwMDFDRThEIC8qIFdLVGh1bWJuYWlsVmlldy5tbSAqLzsgfTsKIAkJMkQ1
MUEwQzcxQzhCRjAwQzAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MUEwQzUxQzhC
RjAwNDAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tICovOyB9OworCQky
RDUyMDYzNTI0NUE2MDNEMDAzMzhGODggLyogVmlld0V4cG9zZWRSZWN0Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MjA2MzQyNDVBNjAzQzAwMzM4
Rjg4IC8qIFZpZXdFeHBvc2VkUmVjdC5tbSAqLzsgfTsKIAkJMkQ3MDA1OTYyMUVEQTBDNjAwMzQ2
M0NCIC8qIFRhYk91dE9mV2ViVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJENzAwNTk1MjFFREEwQzYwMDM0NjNDQiAvKiBUYWJPdXRPZldlYlZp
ZXcubW0gKi87IH07CiAJCTJENzAwNTk5MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3JlZW5XaW5k
b3cubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDcw
MDU5NzIxRURBNEQwMDAzNDYzQ0IgLyogT2Zmc2NyZWVuV2luZG93Lm1tICovOyB9OwogCQkyRDdG
RDE5MzIyNDE5MDg3MDA3ODg3RjEgLyogRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEN0ZEMTkyMjI0MTkwODcw
MDc4ODdGMSAvKiBEb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tICovOyB9OwpAQCAtMTcyOCw2ICsx
NzI5LDcgQEAKIAkJMkQzQ0EzQTQyMjFERjIzOTAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1Z2lu
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFnZU92ZXJsYXlQ
bHVnaW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENENGOEJDMUQ4MzYwQ0Mw
MDAxQ0U4RCAvKiBXS1RodW1ibmFpbFZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBXS1RodW1ibmFpbFZpZXcubW07IHBhdGggPSBXZWJLaXQvV0tUaHVtYm5h
aWxWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDUxQTBDNTFDOEJGMDA0
MDA3NjVDNDUgLyogRE9NSFRNTFZpZGVvRWxlbWVudFdyYXBwZXIubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ1MjA2MzQyNDVBNjAzQzAwMzM4Rjg4IC8q
IFZpZXdFeHBvc2VkUmVjdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFZpZXdFeHBvc2VkUmVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ2
MUVDMzAyMUIwQjc1QzAwQTdEMUNCIC8qIFBlbmNpbEtpdFRlc3RTUEkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGVuY2lsS2l0VGVzdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDY0
MEI1NDE3ODc1REZGMDBCRkFGOTkgLyogU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ3MDA1OTUyMUVEQTBDNjAwMzQ2M0NC
IC8qIFRhYk91dE9mV2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFRhYk91dE9mV2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTMxOTIsNiArMzE5NCw3IEBACiAJCQkJMkUxMzNCNEYyMUQ0MEFGMDAwRUQxQ0IyIC8qIFVzZVNl
bGVjdGlvbkFzRmluZFN0cmluZy5tbSAqLywKIAkJCQk5M0U5NDNGMTFDRDNFODdFMDBBQzA4QzIg
LyogVmlkZW9Db250cm9sc01hbmFnZXIubW0gKi8sCiAJCQkJQ0QzMDY1REYyMTY1NjgyRTAwRTg5
NURGIC8qIFZpZGVvUXVhbGl0eURpc3BsYXlDb21wb3NpdGluZy5tbSAqLywKKwkJCQkyRDUyMDYz
NDI0NUE2MDNDMDAzMzhGODggLyogVmlld0V4cG9zZWRSZWN0Lm1tICovLAogCQkJCTYzNTZGQjIx
MUVDNEUwQkEwMDQ0QkYxOCAvKiBWaXNpYmxlQ29udGVudFJlY3QubW0gKi8sCiAJCQkJODM3NzlD
MzcxRjgyRkVCMDAwN0NEQThBIC8qIFZpc2l0ZWRMaW5rU3RvcmUubW0gKi8sCiAJCQkJODMwRjJF
MEIyMDlBNkE3NDAwRDM2RkYxIC8qIFdlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlLm1tICov
LApAQCAtNTE3OSw2ICs1MTgyLDcgQEAKIAkJCQk3QzgzRTAzQTFEMEE2MDI3MDBGRUJDRjMgLyog
VXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBDNjFEMEE2NTRFMDBG
RUJDRjMgLyogVmlkZW9Db250cm9sc01hbmFnZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDMw
NjVFMDIxNjU2ODJFMDBFODk1REYgLyogVmlkZW9RdWFsaXR5RGlzcGxheUNvbXBvc2l0aW5nLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJMkQ1MjA2MzUyNDVBNjAzRDAwMzM4Rjg4IC8qIFZpZXdFeHBv
c2VkUmVjdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTExNUVCMzQzMUVFMEJBMDMwMDNDMkMwQSAv
KiBWaWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjM1
NkZCMjIxRUM0RTBCQTAwNDRCRjE4IC8qIFZpc2libGVDb250ZW50UmVjdC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTgzNzc5QzM4MUY4MkZFQ0UwMDdDREE4QSAvKiBWaXNpdGVkTGlua1N0b3JlLm1t
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1ZpZXdFeHBvc2VkUmVjdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvVmlld0V4cG9zZWRSZWN0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMzA4Y2M5YThkNWJm
YTMwMGVkOWY5OTI3NDQ4YzY1MGZiZjI2YjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ZpZXdFeHBvc2VkUmVjdC5tbQpAQCAtMCwwICsx
LDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRm
b3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3
LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQYWdlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQYWdlUHJp
dmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKworQGludGVyZmFjZSBXS1dlYlZp
ZXcgKCkKKy0gKFdLUGFnZVJlZilfcGFnZUZvclRlc3Rpbmc7CitAZW5kCisKK3N0YXRpYyBib29s
IGRpZEZvcmNlUmVwYWludDsKKworc3RhdGljIHZvaWQgZm9yY2VSZXBhaW50Q2FsbGJhY2soV0tF
cnJvclJlZiBlcnJvciwgdm9pZCopCit7CisgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIGRp
ZEZvcmNlUmVwYWludCA9IHRydWU7Cit9CisKK1RFU1QoV2ViS2l0LCBJbml0aWFsVGlsZUNvdmVy
YWdlVXNlc1ZpZXdFeHBvc2VkUmVjdCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgNTAwMDAwMCwgNTAwMDAwMCldKTsKKyAgICBbd2ViVmlldyBfc2V0Q2xp
cHNUb1Zpc2libGVSZWN0OllFU107CisgICAgW1t3ZWJWaWV3IGhvc3RXaW5kb3ddIHNldEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGRpc3BsYXk6Tk9dOworICAgIFt3ZWJWaWV3IGFk
ZFRvVGVzdFdpbmRvd107CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5n
OkAiIl07CisKKyAgICBkaWRGb3JjZVJlcGFpbnQgPSBmYWxzZTsKKyAgICBXS1BhZ2VGb3JjZVJl
cGFpbnQoW3dlYlZpZXcgX3BhZ2VGb3JUZXN0aW5nXSwgMCwgZm9yY2VSZXBhaW50Q2FsbGJhY2sp
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRm9yY2VSZXBhaW50KTsKK30KKwor
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398134</attachid>
            <date>2020-04-30 18:37:03 -0700</date>
            <delta_ts>2020-04-30 19:05:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211265-20200430183702.patch</filename>
            <type>text/plain</type>
            <size>37917</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdjMmRkZDkwMDIwNjlk
NmI1OTkwMGUzNGUyOWI4ZmZlY2FkYWM5NS4uMjEzMjEwNmI2MjE2NGRjY2RlOTFmMmJjODViNGJj
NjlhNGE4NjgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA0LTMwICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEJvb2tzIHNvbWV0
aW1lcyBlbmRzIHVwIHdpdGggYmxhbmsgcGFnZXMsIGVzcGVjaWFsbHkgYWZ0ZXIgYWRqdXN0aW5n
IGZvbnQgc2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExMjY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTg5ODE0ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAg
ICAgICAgUmVuYW1lICJoYXNSZWN0Q2hhbmdlZCIgYmVjYXVzZSBpdCBvbmx5IHRlc3RzIGlmIHRo
ZSBvcHRpb25hbC1zdGF0ZSBvZiB0aGUKKyAgICAgICAgcmVjdCBoYXMgY2hhbmdlZCwgbm90IHRo
ZSBhY3R1YWwgdmFsdWUuCisKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dmlld0V4cG9z
ZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgY29uc3QpOgorICAgICAgICBFeHBvc2UgdGhlIHZp
ZXdFeHBvc2VkUmVjdCBpbiBjb250ZW50IGNvb3JkaW5hdGVzIGZvciBhIHZhcmlldHkgb2YgY2xp
ZW50cy4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9UZXh0
SW5kaWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVJbmRpY2F0b3IpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29tcHV0ZVBhZ2VUaWxlZEJhY2tpbmdDb3ZlcmFnZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnZpc2libGVSZWN0Rm9yTGF5ZXJGbHVzaGluZyBjb25zdCk6CisgICAg
ICAgIEFkb3B0IHZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzLgorICAgICAgICBN
YXBwaW5nIGZyb20gcm9vdCB2aWV3IC0+IGNvbnRlbnRzIGNvb3JkaW5hdGVzIG5vdyBoYXBwZW5z
IGF0IHRpbWUtb2YtdXNlCisgICAgICAgIGluc3RlYWQgb2YgYWhlYWQgb2YgdGltZSAod2hlcmUg
aXQgY291bGQgYmVjb21lIHN0YWxlKS4KKwogMjAyMC0wNC0yOSAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIGRlYnVnIEFTU0VSVCBpbiBJbWFn
ZURlY29kZXJBVkZPYmpDOjpzdG9yZVNhbXBsZUJ1ZmZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJhMDlmYmNk
OWQwYmYzZmVkZjNhYzc4ZjYwZTdkYWE4ODJhMzU5ZmQuLjMzYjUxYjNhMzlmZDU0ZGVmYzFkNWU4
NWI5YmVkZTA5MmVhMzQxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjAtMDQtMzAg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQm9va3Mg
c29tZXRpbWVzIGVuZHMgdXAgd2l0aCBibGFuayBwYWdlcywgZXNwZWNpYWxseSBhZnRlciBhZGp1
c3RpbmcgZm9udCBzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTEyNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5ODk4MTQ0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgZmV3IHByb2JsZW1z
OgorCisgICAgICAgIC0gVGhlcmUgaXMgYSB3aW5kb3cgZHVyaW5nIHBhZ2UgY3JlYXRpb24gd2hl
cmUgYSBXS1dlYlZpZXcgY3JlYXRlZAorICAgICAgICB3aXRoIF9jbGlwc1RvVmlzaWJsZVJlY3Q9
WUVTIHdvdWxkIG5vdCB5ZXQgaGF2ZSBzZW50IGl0cyB2aWV3RXhwb3NlZFJlY3QKKyAgICAgICAg
dG8gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MsIGFuZCBpZiB3ZSBlbmQgdXAgY29uc3RydWN0aW5n
IHRpbGVzIGR1cmluZworICAgICAgICB0aGF0IHRpbWUsIHdlIGNhbiBtYWtlIHdheSB0b28gbWFu
eSwgYm9nZ2luZyBkb3duIHRoZSBwcm9jZXNzIChvciBjcmFzaGluZykuCisKKyAgICAgICAgRml4
IHRoaXMgYnkgYWx3YXlzIGtlZXBpbmcgdHJhY2sgb2YgdGhlIHZpZXdFeHBvc2VkUmVjdCAob24g
V2ViUGFnZVByb3h5LAorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBzb21ld2hhdC1tb3JlLXRyYW5z
aWVudCBEcmF3aW5nQXJlYVByb3h5KSBhbmQgc2VuZGluZyBpdAorICAgICAgICB0byB0aGUgV2Vi
IENvbnRlbnQgcHJvY2VzcyBpbiB0aGUgV2ViUGFnZSBjcmVhdGlvbiBwYXJhbWV0ZXJzLCB0byBl
bnRpcmVseQorICAgICAgICByZW1vdmUgdGhpcyB3aW5kb3cuCisKKyAgICAgICAgLSBFdmVuIHdo
ZW4gdGhlIHZpZXdFeHBvc2VkUmVjdCBzdWNjZXNzZnVsbHkgZ2V0cyB0byB0aGUgV2ViIENvbnRl
bnQKKyAgICAgICAgcHJvY2VzcywgaXQgY2FuIHN0aWxsIGVuZCB1cCB3aWxkbHkgd3Jvbmc6IHRo
ZSBEcmF3aW5nQXJlYSB3YXMgdGFza2VkIHdpdGgKKyAgICAgICAgd2F0Y2hpbmcgc2Nyb2xsaW5n
IGNoYW5nZXMsIGFwcGx5aW5nIHRoZSBzY3JvbGwgb2Zmc2V0IHRvIHRoZSB2aWV3RXhwb3NlZFJl
Y3QsCisgICAgICAgIGFuZCBwdXNoaW5nIGl0IHRvIEZyYW1lVmlldyBpbiBjb250ZW50IGNvb3Jk
aW5hdGVzLgorCisgICAgICAgIEluc3RlYWQgb2YgdGhpcyBjb21wbGljYXRlZCBhbmQgdGltaW5n
LWRlcGVuZGVudCBtZWNoYW5pc20sIHN0b3JlIHRoZQorICAgICAgICB2aWV3RXhwb3NlZFJlY3Qg
b24gRnJhbWVWaWV3IGluIHZpZXcgY29vcmRpbmF0ZXMgKGl0IGlzIGNhbGxlZCAidmlldyIKKyAg
ICAgICAgZXhwb3NlZCByZWN0IGFmdGVyIGFsbCksIGFuZCBjb252ZXJ0IHRvIGNvbnRlbnQgY29v
cmRpbmF0ZXMgb24gZGVtYW5kCisgICAgICAgIHdoZW4gY2xpZW50cyByZXF1ZXN0IGl0LgorCisg
ICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIFBsdW1iIHZpZXcg
ZXhwb3NlZCByZWN0IHZpYSBXZWJQYWdlIGNyZWF0aW9uIHBhcmFtZXRlcnMuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp1cGRhdGVWaWV3RXhwb3NlZFJlY3QpOgorICAgICAgICBTZW5kIHZpZXdFeHBvc2Vk
UmVjdCBjaGFuZ2VzIHRvIFdlYlBhZ2VQcm94eSBpbnN0ZWFkIG9mIERyYXdpbmdBcmVhUHJveHku
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OnZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6c2V0Vmlld0V4cG9z
ZWRSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5o
OgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5Ojp2aWV3RXhwb3NlZFJlY3QgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlkQ2hhbmdlVmlld0V4cG9z
ZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6aW5kaWNhdG9yTG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnNldFZpZXdFeHBvc2VkUmVj
dCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6dmlld0V4cG9zZWRSZWN0IGNvbnN0KToKKyAgICAgICAgTWFpbnRhaW4gdmlld0V4cG9zZWRS
ZWN0IG9uIFdlYlBhZ2VQcm94eSBpbnN0ZWFkIG9mIERyYXdpbmdBcmVhUHJveHksCisgICAgICAg
IHNvIHRoYXQgd2UgY2FuIGFsd2F5cyBzdG9yZSBpdCBldmVuIGlmIHdlIGRvbid0IGhhdmUgYSBE
cmF3aW5nQXJlYVByb3h5IHlldAorICAgICAgICAob3IgY2hhbmdlIERyYXdpbmdBcmVhUHJveGll
cykgYW5kIGNhbiBzZW5kIGl0IGluIFdlYlBhZ2UgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0Vmlld0V4cG9zZWRS
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0
ZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Ojp1cGRhdGVTY3JvbGxlZEV4cG9zZWRSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5t
bToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6OlRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QpOgorICAgICAg
ICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2Nyb2xsKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0
ZVNjcm9sbGVkRXhwb3NlZFJlY3QpOiBEZWxldGVkLgorICAgICAgICBQbHVtYiB2aWV3RXhwb3Nl
ZFJlY3QgZGlyZWN0bHkgdG8gRnJhbWVWaWV3LCBpbnN0ZWFkIG9mIHRyeWluZyB0byBhcHBseQor
ICAgICAgICB0aGUgcm9vdCB2aWV3IC0+IGNvbnRlbnRzIG1hcHBpbmcgb3Vyc2VsdmVzIGFuZCBw
dXNoaW5nIHVwZGF0ZXMuCisKIDIwMjAtMDQtMjkgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxh
cGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNjA4ODkpOiBUZXN0Q29u
dGV4dE1lbnU6L3dlYmtpdC9XZWJLaXRXZWJWaWV3L3BvcHVsYXRlLW1lbnUgbm8gbG9uZ2VyIHBh
c3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGIzZmUxNDBmYTM3YTc0ZThkYmNm
MTIxYjI2ZWI5YWVlZjY5NjU2YzIuLjUwNDg0MmNhOTRiODFjYTJiYzVkMDQxYzc0ZWVjNmUyNTI5
MGUzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTUzNzEsNyArNTM3MSw3IEBA
IHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2
aWV3RXhwb3NlZFJlY3QpCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0g
PDwgIkZyYW1lVmlldyAiIDw8IHRoaXMgPDwgIiBzZXRWaWV3RXhwb3NlZFJlY3QgIiA8PCAodmll
d0V4cG9zZWRSZWN0ID8gdmlld0V4cG9zZWRSZWN0LnZhbHVlKCkgOiBGbG9hdFJlY3QoKSkpOwog
Ci0gICAgYm9vbCBoYXNSZWN0Q2hhbmdlZCA9ICFtX3ZpZXdFeHBvc2VkUmVjdCA9PSAhdmlld0V4
cG9zZWRSZWN0OworICAgIGJvb2wgaGFzUmVjdEV4aXN0ZW5jZUNoYW5nZWQgPSAhbV92aWV3RXhw
b3NlZFJlY3QgPT0gIXZpZXdFeHBvc2VkUmVjdDsKICAgICBtX3ZpZXdFeHBvc2VkUmVjdCA9IHZp
ZXdFeHBvc2VkUmVjdDsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc3VwcG9ydCBjbGlwcGlu
ZyB0byB0aGUgZXhwb3NlZCByZWN0IGZvciBzdWJmcmFtZXMgYXMgd2VsbC4KQEAgLTUzNzksNyAr
NTM3OSw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8Rmxv
YXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChUaWxl
ZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMtPnRpbGVkQmFja2luZygpKSB7Ci0gICAgICAg
IGlmIChoYXNSZWN0Q2hhbmdlZCkKKyAgICAgICAgaWYgKGhhc1JlY3RFeGlzdGVuY2VDaGFuZ2Vk
KQogICAgICAgICAgICAgdXBkYXRlVGlsZWRCYWNraW5nQWRhcHRpdmVTaXppbmcoKTsKICAgICAg
ICAgYWRqdXN0VGlsZWRCYWNraW5nQ292ZXJhZ2UoKTsKICAgICAgICAgdGlsZWRCYWNraW5nLT5z
ZXRUaWxlZFNjcm9sbGluZ0luZGljYXRvclBvc2l0aW9uKG1fdmlld0V4cG9zZWRSZWN0ID8gbV92
aWV3RXhwb3NlZFJlY3QudmFsdWUoKS5sb2NhdGlvbigpIDogRmxvYXRQb2ludCgpKTsKQEAgLTUz
OTEsNiArNTM5MSwxMyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlv
bmFsPEZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KQogICAgIH0KIH0KIAorT3B0aW9uYWw8Rmxv
YXRSZWN0PiBGcmFtZVZpZXc6OnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1fdmlld0V4cG9zZWRSZWN0KQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworICAgIHJldHVybiByb290Vmlld1RvQ29udGVudHMoKm1fdmlld0V4cG9zZWRS
ZWN0KTsKK30KKwogdm9pZCBGcmFtZVZpZXc6OmNsZWFyVmlld3BvcnRTaXplT3ZlcnJpZGVGb3JD
U1NWaWV3cG9ydFVuaXRzKCkKIHsKICAgICBpZiAoIW1fb3ZlcnJpZGVWaWV3cG9ydFNpemUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCAyMWMyZWZjNmJhZmUyNGZhOTJmNTYxZWFmMzY0MmE4
YTdiNzZlNmQyLi5iNTVhYzUxMDRjOGUzZWE2NjJhYzBhYzNjNjM0MmE1OGUwMjQyMDVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTYyOCw3ICs2MjgsNyBAQCBwdWJsaWM6CiAgICAgLy8g
Y2xpcHBpbmcgYnkgb3RoZXIgVUkgZWxlbWVudHMpLCB3aGVyZWFzIHZpc2libGVDb250ZW50UmVj
dCBpcwogICAgIC8vIGludGVybmFsIHRvIFdlYkNvcmUgYW5kIGRvZXNuJ3QgcmVzcGVjdCB0aG9z
ZSB0aGluZ3MuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0
aW9uYWw8RmxvYXRSZWN0Pik7Ci0gICAgT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdFeHBvc2VkUmVjdDsgfQorICAgIFdFQkNPUkVfRVhQ
T1JUIE9wdGlvbmFsPEZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0
ZXMoKSBjb25zdDsKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgdm9pZCB1cGRh
dGVTbmFwT2Zmc2V0cygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9U
ZXh0SW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5jcHAK
aW5kZXggYWUzNGIzYjg3Zjg4ZjBiMDFhOTJiYWJhNDY3N2YxN2E5MjJlYzM1Yy4uMjc1MjdkNDIx
ZTFkYzNiMzFjNjU2NmRmMzI0ODE4ZGVhOTVjMmJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9UZXh0SW5kaWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJ
bmRpY2F0b3IuY3BwCkBAIC0zMzQsOCArMzM0LDggQEAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZUlu
ZGljYXRvcihUZXh0SW5kaWNhdG9yRGF0YSYgZGF0YSwgRnJhbWUmIGZyYW1lLCBjb25zdCBTaW0K
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGNvbnRlbnRzQ2xpcFJlY3QgPSBlbmNsb3Np
bmdJbnRSZWN0KGZyYW1lVmlldy0+ZXhwb3NlZENvbnRlbnRSZWN0KCkpOwogI2Vsc2UKLSAgICBp
ZiAoYXV0byB2aWV3RXhwb3NlZFJlY3QgPSBmcmFtZVZpZXctPnZpZXdFeHBvc2VkUmVjdCgpKQot
ICAgICAgICBjb250ZW50c0NsaXBSZWN0ID0gZnJhbWVWaWV3LT52aWV3VG9Db250ZW50cyhlbmNs
b3NpbmdJbnRSZWN0KCp2aWV3RXhwb3NlZFJlY3QpKTsKKyAgICBpZiAoYXV0byB2aWV3RXhwb3Nl
ZFJlY3QgPSBmcmFtZVZpZXctPnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkp
CisgICAgICAgIGNvbnRlbnRzQ2xpcFJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KCp2aWV3RXhwb3Nl
ZFJlY3QpOwogICAgIGVsc2UKICAgICAgICAgY29udGVudHNDbGlwUmVjdCA9IGZyYW1lVmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMDE4MzAxMTg3MzA5NjhjZTg3MWM3MDgy
MjkxNDE2YzM3NjhkODZlNy4uYjc5ZGM0Yzk5OTAzZDc4OWQ2ODMyZDVlOWY0ZTk2NDFmNWRiZmRh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKQEAgLTQwMCw3ICs0MDAsNyBAQCBzdGF0aWMgVGlsZWRCYWNraW5nOjpUaWxlQ292ZXJhZ2Ug
Y29tcHV0ZVBhZ2VUaWxlZEJhY2tpbmdDb3ZlcmFnZShjb25zdCBSZW5kZXJMYQogICAgIFRpbGVk
QmFja2luZzo6VGlsZUNvdmVyYWdlIHRpbGVDb3ZlcmFnZSA9IFRpbGVkQmFja2luZzo6Q292ZXJh
Z2VGb3JWaXNpYmxlQXJlYTsKICAgICBib29sIHVzZU1pbmltYWxUaWxlc0R1cmluZ0xpdmVSZXNp
emUgPSBmcmFtZVZpZXcuaW5MaXZlUmVzaXplKCk7CiAgICAgaWYgKGZyYW1lVmlldy5zcGVjdWxh
dGl2ZVRpbGluZ0VuYWJsZWQoKSAmJiAhdXNlTWluaW1hbFRpbGVzRHVyaW5nTGl2ZVJlc2l6ZSkg
ewotICAgICAgICBib29sIGNsaXBzVG9FeHBvc2VkUmVjdCA9IHN0YXRpY19jYXN0PGJvb2w+KGZy
YW1lVmlldy52aWV3RXhwb3NlZFJlY3QoKSk7CisgICAgICAgIGJvb2wgY2xpcHNUb0V4cG9zZWRS
ZWN0ID0gc3RhdGljX2Nhc3Q8Ym9vbD4oZnJhbWVWaWV3LnZpZXdFeHBvc2VkUmVjdEluQ29udGVu
dENvb3JkaW5hdGVzKCkpOwogICAgICAgICBpZiAoZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxi
YXJNb2RlKCkgIT0gU2Nyb2xsYmFyQWx3YXlzT2ZmIHx8IGNsaXBzVG9FeHBvc2VkUmVjdCkKICAg
ICAgICAgICAgIHRpbGVDb3ZlcmFnZSB8PSBUaWxlZEJhY2tpbmc6OkNvdmVyYWdlRm9ySG9yaXpv
bnRhbFNjcm9sbGluZzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBiZjA1MTJmYWFmZWQ5Njg3MjhmMjg4NGI5NjQwMzBj
NTkxYzYzMTRiLi4wM2QwNGM4MGY5M2NjYzAzMzEzZTVkMDcxNzNkNTBiMGJhZjY0MmZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cApAQCAtNTE0LDggKzUxNCw4IEBAIEZsb2F0UmVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnZp
c2libGVSZWN0Rm9yTGF5ZXJGbHVzaGluZygpIGNvbnN0CiAgICAgLy8gSGF2aW5nIGEgbV9zY3Jv
bGxlZENvbnRlbnRzTGF5ZXIgaW5kaWNhdGVzIHRoYXQgd2UncmUgZG9pbmcgc2Nyb2xsaW5nIHZp
YSBHcmFwaGljc0xheWVycy4KICAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QgPSBtX3Njcm9sbGVk
Q29udGVudHNMYXllciA/IEZsb2F0UmVjdCh7IH0sIGZyYW1lVmlldy5zaXplRm9yVmlzaWJsZUNv
bnRlbnQoKSkgOiBmcmFtZVZpZXcudmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAKLSAgICBpZiAoZnJh
bWVWaWV3LnZpZXdFeHBvc2VkUmVjdCgpKQotICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3Qo
ZnJhbWVWaWV3LnZpZXdFeHBvc2VkUmVjdCgpLnZhbHVlKCkpOworICAgIGlmIChhdXRvIGV4cG9z
ZWRSZWN0ID0gZnJhbWVWaWV3LnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkp
CisgICAgICAgIHZpc2libGVSZWN0LmludGVyc2VjdCgqZXhwb3NlZFJlY3QpOwogCiAgICAgcmV0
dXJuIHZpc2libGVSZWN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGRjMTE1MmY4ZWIxOWVhNTA2MDg2ZDk3
OGM3MDE3Yzg3MjI5OGQ0N2EuLjhjODBkZTJmMzJlYzQ2ODA5ZmZkMGUzMDA3Zjc3NGJmYTQ4NTFm
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCkBAIC00NCw2ICs0NCw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVu
ZGVybGF5Q29sb3I7CiAgICAgZW5jb2RlciA8PCB1c2VGaXhlZExheW91dDsKICAgICBlbmNvZGVy
IDw8IGZpeGVkTGF5b3V0U2l6ZTsKKyAgICBlbmNvZGVyIDw8IHZpZXdFeHBvc2VkUmVjdDsKICAg
ICBlbmNvZGVyIDw8IGFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOwogICAgIGVuY29kZXIg
PDwgYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShw
YWdpbmF0aW9uTW9kZSk7CkBAIC0xODgsNiArMTg5LDggQEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVj
b2QKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMuZml4ZWRMYXlvdXRTaXplKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudmlld0V4cG9zZWRSZWN0KSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMuYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIpKQogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbHdheXNT
aG93c1ZlcnRpY2FsU2Nyb2xsZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDM3ODJhNDEyYTdmY2ZlNmE3MDA4YTlhNDNiNWJk
NDgwZDYzZWZjZjAuLmNmZjMxMzU1YzFhMjYxOGFhODM3MmM1MjdiODE0NjliYzQ2ZTQxZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
QEAgLTg0LDYgKzg0LDggQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAg
IGJvb2wgdXNlRml4ZWRMYXlvdXQ7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBmaXhlZExheW91dFNp
emU7CiAKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdDsK
KwogICAgIGJvb2wgYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXI7CiAgICAgYm9vbCBhbHdh
eXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KaW5kZXggYTg4N2NiYWQzZjMwZTIzOTc0NGEyMDUxMTcwMzNjYzVj
OTViNDcxMi4uMzlmMzc0NTA5NzZlMDRiYjJmNmYyOGQ5Y2M1YjAwNWNiM2RmYmQ4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE5MDIsOCAr
MTkwMiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpCiAgICAg
aWYgKG1fdXNlQ29udGVudFByZXBhcmF0aW9uUmVjdEZvclZpc2libGVSZWN0KQogICAgICAgICBl
eHBvc2VkUmVjdCA9IENHUmVjdFVuaW9uKG1fY29udGVudFByZXBhcmF0aW9uUmVjdCwgZXhwb3Nl
ZFJlY3QpOwogCi0gICAgaWYgKGF1dG8gZHJhd2luZ0FyZWEgPSBtX3BhZ2UtPmRyYXdpbmdBcmVh
KCkpCi0gICAgICAgIGRyYXdpbmdBcmVhLT5zZXRWaWV3RXhwb3NlZFJlY3QobV9jbGlwc1RvVmlz
aWJsZVJlY3QgPyBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KGV4cG9zZWRSZWN0KSA6IFdU
Rjo6bnVsbG9wdCk7CisgICAgbV9wYWdlLT5zZXRWaWV3RXhwb3NlZFJlY3QobV9jbGlwc1RvVmlz
aWJsZVJlY3QgPyBleHBvc2VkUmVjdCA6IFdURjo6bnVsbG9wdCk7CiB9CiAKIHZvaWQgV2ViVmll
d0ltcGw6OnNldENsaXBzVG9WaXNpYmxlUmVjdChib29sIGNsaXBzVG9WaXNpYmxlUmVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKaW5kZXggOWU0NmZj
YTAzOTQyMmY3YzZjZTdhYmRmOGMyNjBjOTI4YjRjNjYwMy4uZDhmYTUzODE0ZDNjMmQxNTAzYzQ2
ZDU1Y2U3NDA5ODhhZWJhMDk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eS5jcHAKQEAgLTkxLDEzICs5MSwxMSBAQCBib29sIERyYXdpbmdBcmVhUHJveHk6
OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+IGVuY29kZXIsIE9wdGlv
bgogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotdm9pZCBEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3
RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3Qp
Cit2b2lkIERyYXdpbmdBcmVhUHJveHk6OmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpCiB7CiAg
ICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX3ZpZXdFeHBvc2VkUmVjdCA9IHZpZXdFeHBvc2VkUmVjdDsKLQogICAgIGlm
ICghbV92aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV92
aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CkBAIC0xMDcs
MTEgKzEwNSwxMiBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHk6OnZpZXdFeHBvc2VkUmVjdENoYW5n
ZWRUaW1lckZpcmVkKCkKICAgICBpZiAoIW1fd2ViUGFnZVByb3h5Lmhhc1J1bm5pbmdQcm9jZXNz
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3ZpZXdFeHBvc2VkUmVjdCA9PSBtX2xh
c3RTZW50Vmlld0V4cG9zZWRSZWN0KQorICAgIGF1dG8gdmlld0V4cG9zZWRSZWN0ID0gbV93ZWJQ
YWdlUHJveHkudmlld0V4cG9zZWRSZWN0KCk7CisgICAgaWYgKHZpZXdFeHBvc2VkUmVjdCA9PSBt
X2xhc3RTZW50Vmlld0V4cG9zZWRSZWN0KQogICAgICAgICByZXR1cm47CiAKLSAgICBzZW5kKE1l
c3NhZ2VzOjpEcmF3aW5nQXJlYTo6U2V0Vmlld0V4cG9zZWRSZWN0KG1fdmlld0V4cG9zZWRSZWN0
KSk7Ci0gICAgbV9sYXN0U2VudFZpZXdFeHBvc2VkUmVjdCA9IG1fdmlld0V4cG9zZWRSZWN0Owor
ICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpTZXRWaWV3RXhwb3NlZFJlY3Qodmlld0V4
cG9zZWRSZWN0KSk7CisgICAgbV9sYXN0U2VudFZpZXdFeHBvc2VkUmVjdCA9IHZpZXdFeHBvc2Vk
UmVjdDsKIH0KICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCBiMGE4NTcxNjc5ZDY2YmJkZTFmMzgwYTExNDc5
N2I4OGFiMWY0NGY4Li45Zjk3M2QzNjQyODc5NGJkMDIyYWVhOWJkYmYxZDE0ZDZlZGRhNTFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC04OSw4ICs4
OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNpZW50Wm9vbShkb3Vi
bGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQpIHsgfQogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZp
cnR1YWwgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0
Pik7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QoKSBj
b25zdCB7IHJldHVybiBtX3ZpZXdFeHBvc2VkUmVjdDsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRD
aGFuZ2VWaWV3RXhwb3NlZFJlY3QoKTsKICAgICB2b2lkIHZpZXdFeHBvc2VkUmVjdENoYW5nZWRU
aW1lckZpcmVkKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5LmgKaW5kZXggNTU2NTkxZTcxNWNlMmI0ZDdjNTUzZTBlOTU4MDI0ODdhYzdm
YTA4NS4uODFjMWExMjE1ZDRiOTFlMTFiMjM0Y2RkMjc4M2I5YzkwMWU5NjhiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCkBAIC03MSw3ICs3MSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6
RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRlOwogCiAjaWYg
UExBVEZPUk0oTUFDKQotICAgIHZvaWQgc2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNv
cmU6OkZsb2F0UmVjdD4pIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2hhbmdlVmlld0V4cG9zZWRS
ZWN0KCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IDRhNTBi
ODU5YWFkOTNjNDU4NjU1ZjczMGYzNmEzMTdiYWE0MzQxNDMuLmQ1NDNhNGI2NjM1Mjg3MjQ4YWQw
NTVjOGQyNDljYmIwMDQ1MjkwY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0yNzUsOSArMjc1LDkgQEAgdm9pZCBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5OjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZCh1aW50NjRfdCBs
YXllckkKIHN0YXRpYyBjb25zdCBmbG9hdCBpbmRpY2F0b3JJbnNldCA9IDEwOwogCiAjaWYgUExB
VEZPUk0oTUFDKQotdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3
RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3Qp
Cit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpZENoYW5nZVZpZXdFeHBv
c2VkUmVjdCgpCiB7Ci0gICAgRHJhd2luZ0FyZWFQcm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KHZp
ZXdFeHBvc2VkUmVjdCk7CisgICAgRHJhd2luZ0FyZWFQcm94eTo6ZGlkQ2hhbmdlVmlld0V4cG9z
ZWRSZWN0KCk7CiAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3JQb3NpdGlvbigpOwogfQogI2VuZGlm
CkBAIC0yOTMsOCArMjkzLDggQEAgRmxvYXRQb2ludCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5OjppbmRpY2F0b3JMb2NhdGlvbigpIGNvbnN0CiAgICAgICAgIHRpbGVkTWFwTG9jYXRp
b24gKz0gRmxvYXRTaXplKGFic29sdXRlSW5zZXQsIGFic29sdXRlSW5zZXQpOwogI2Vsc2UKICAg
ICAgICAgRmxvYXRQb2ludCB0aWxlZE1hcExvY2F0aW9uOwotICAgICAgICBpZiAodmlld0V4cG9z
ZWRSZWN0KCkpCi0gICAgICAgICAgICB0aWxlZE1hcExvY2F0aW9uID0gdmlld0V4cG9zZWRSZWN0
KCkudmFsdWUoKS5sb2NhdGlvbigpOworICAgICAgICBpZiAoYXV0byB2aWV3RXhwb3NlZFJlY3Qg
PSBtX3dlYlBhZ2VQcm94eS52aWV3RXhwb3NlZFJlY3QoKSkKKyAgICAgICAgICAgIHRpbGVkTWFw
TG9jYXRpb24gPSB2aWV3RXhwb3NlZFJlY3QtPmxvY2F0aW9uKCk7CiAKICAgICAgICAgdGlsZWRN
YXBMb2NhdGlvbiArPSBGbG9hdFNpemUoaW5kaWNhdG9ySW5zZXQsIGluZGljYXRvckluc2V0KTsK
ICAgICAgICAgZmxvYXQgc2NhbGUgPSAxIC8gbV93ZWJQYWdlUHJveHkucGFnZVNjYWxlRmFjdG9y
KCk7CkBAIC0zNjQsOCArMzY0LDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcihJbnRTaXplIGNvbnRlbnRzU2l6ZSwKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgICAgICBzY2FsZWRFeHBvc2VkUmVjdCA9IG1fd2ViUGFnZVBy
b3h5LmV4cG9zZWRDb250ZW50UmVjdCgpOwogI2Vsc2UKLSAgICAgICAgaWYgKHZpZXdFeHBvc2Vk
UmVjdCgpKQotICAgICAgICAgICAgc2NhbGVkRXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJlY3Qo
KS52YWx1ZSgpOworICAgICAgICBpZiAoYXV0byB2aWV3RXhwb3NlZFJlY3QgPSBtX3dlYlBhZ2VQ
cm94eS52aWV3RXhwb3NlZFJlY3QoKSkKKyAgICAgICAgICAgIHNjYWxlZEV4cG9zZWRSZWN0ID0g
KnZpZXdFeHBvc2VkUmVjdDsKICAgICAgICAgZmxvYXQgc2NhbGUgPSAxIC8gbV93ZWJQYWdlUHJv
eHkucGFnZVNjYWxlRmFjdG9yKCk7CiAgICAgICAgIHNjYWxlZEV4cG9zZWRSZWN0LnNjYWxlKHNj
YWxlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggMGQzMDhlNmNiZjY4Njc5MjZkNDE3NzkxYTAzNDJhZGZhZjc1YzEyOC4uYjk3YmJjNWVmNjYx
MTVjNTVhMzMzNGM2ZTRlOTIxOWFiMTU1MTU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC0zNzc3LDYgKzM3NzcsMTYgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnNldEZpeGVkTGF5b3V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OlNldEZpeGVkTGF5b3V0U2l6ZShzaXplKSk7CiB9CiAKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2
aWV3RXhwb3NlZFJlY3QpCit7CisgICAgbV92aWV3RXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJl
Y3Q7CisKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKG1fZHJhd2luZ0FyZWEpCisgICAgICAg
IG1fZHJhd2luZ0FyZWEtPmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpOworI2VuZGlmCit9CisK
IHZvaWQgV2ViUGFnZVByb3h5OjpzZXRBbHdheXNTaG93c0hvcml6b250YWxTY3JvbGxlcihib29s
IGFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyKQogewogICAgIGlmIChhbHdheXNTaG93c0hv
cml6b250YWxTY3JvbGxlciA9PSBtX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyKQpAQCAt
NzczMCw2ICs3NzQwLDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6
OmNyZWF0aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICAgICBwYXJhbWV0ZXJz
LnVuZGVybGF5Q29sb3IgPSBtX3VuZGVybGF5Q29sb3I7CiAgICAgcGFyYW1ldGVycy51c2VGaXhl
ZExheW91dCA9IG1fdXNlRml4ZWRMYXlvdXQ7CiAgICAgcGFyYW1ldGVycy5maXhlZExheW91dFNp
emUgPSBtX2ZpeGVkTGF5b3V0U2l6ZTsKKyAgICBwYXJhbWV0ZXJzLnZpZXdFeHBvc2VkUmVjdCA9
IG1fdmlld0V4cG9zZWRSZWN0OwogICAgIHBhcmFtZXRlcnMuYWx3YXlzU2hvd3NIb3Jpem9udGFs
U2Nyb2xsZXIgPSBtX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOwogICAgIHBhcmFtZXRl
cnMuYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyID0gbV9hbHdheXNTaG93c1ZlcnRpY2FsU2Ny
b2xsZXI7CiAgICAgcGFyYW1ldGVycy5zdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMgPSBtX3N1
cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggYTM4ZDQzZWE4MDRkODU3ZTM3ZjM1ODk2OTA0M2RkYWQ4OWYxYTNiYS4uMTBl
MmJlODVmMDk4Y2U0MmUyZWJmZjQxMGM0NDQwMmRkZGNhMTk3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTk5OCw2ICs5OTgsOSBAQCBwdWJsaWM6CiAgICAgYm9v
bCB1c2VGaXhlZExheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlRml4ZWRMYXlvdXQ7IH07CiAg
ICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgZml4ZWRMYXlvdXRTaXplKCkgY29uc3QgeyByZXR1
cm4gbV9maXhlZExheW91dFNpemU7IH07CiAKKyAgICB2b2lkIHNldFZpZXdFeHBvc2VkUmVjdChP
cHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KTsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9h
dFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld0V4cG9zZWRSZWN0
OyB9CisKICAgICB2b2lkIHNldEFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyKGJvb2wpOwog
ICAgIHZvaWQgc2V0QWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyKGJvb2wpOwogICAgIGJvb2wg
YWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2Fsd2F5c1No
b3dzSG9yaXpvbnRhbFNjcm9sbGVyOyB9CkBAIC0yNDg1LDYgKzI0ODgsNyBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBtX3VzZUZpeGVkTGF5b3V0IHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpJbnRT
aXplIG1fZml4ZWRMYXlvdXRTaXplOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4g
bV92aWV3RXhwb3NlZFJlY3Q7CiAKICAgICBib29sIG1fYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Ny
b2xsZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXIg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWEuaAppbmRleCAxNjQ4OTFhMWRmOWM3NWVjMTQ4ZDkyYThjNDgwNDAwYTczZTA3ZTQ0
Li4xYWMzOTQ0MzQ0NmUxN2E5ODM1M2ZiOTIzOWIyNzJkN2M0OTI1ZTA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAtODgsNyAr
ODgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmMoQ2FsbGJhY2tJRCkg
b3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgc2V0Vmlld0V4cG9zZWRSZWN0
KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4pIG92ZXJyaWRlOwotICAgIE9wdGlvbmFsPFdl
YkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdDsgfQorICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZs
b2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV92aWV3
RXhwb3NlZFJlY3Q7IH0KIAogICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1
aW50NjRfdCBsYXllcklELCBjb25zdCBTdHJpbmcmIGtleSwgTW9ub3RvbmljVGltZSBzdGFydFRp
bWUpIG92ZXJyaWRlOwogICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRFbmQodWludDY0
X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwpAQCAtMTA4LDcgKzEwOCw2
IEBAIHByaXZhdGU6CiAKICAgICBib29sIGFkZE1pbGVzdG9uZXNUb0Rpc3BhdGNoKE9wdGlvblNl
dDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBvdmVycmlkZTsKIAotICAgIHZvaWQgdXBkYXRl
U2Nyb2xsZWRFeHBvc2VkUmVjdCgpOwogICAgIHZvaWQgdXBkYXRlUm9vdExheWVycygpOwogCiAg
ICAgdm9pZCBhZGRDb21taXRIYW5kbGVycygpOwpAQCAtMTQ1LDcgKzE0NCw2IEBAIHByaXZhdGU6
CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3ZpZXdTaXplOwogCiAgICAgT3B0aW9uYWw8V2ViQ29y
ZTo6RmxvYXRSZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpG
bG9hdFJlY3Q+IG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3Q7CiAKICAgICBXZWJDb3JlOjpUaW1l
ciBtX3VwZGF0ZVJlbmRlcmluZ1RpbWVyOwogICAgIGJvb2wgbV9pc1JlbmRlcmluZ1N1c3BlbmRl
ZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEubW0KaW5kZXggMTM1M2YxYmZlOTI2NTQ4OWNhMzEzYTBhYmY5ZTAwNzdjZjVk
ZWU3My4uNTk5N2FlYmM2ZTE0YjYzMzFkNmQyMTI0NTcyYmJlZjkyMGY0MmJhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAt
NzMsNiArNzMsOSBAQCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgVwogICAgIC8vIERpc3BsYXlJRHMg
bGVzcyBsaWtlbHksIGl0IGlzIG5vdCBlbnRpcmVseSBzYWZlIHRvIGhhdmUgYSBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYSBhbmQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEKICAgICAv
LyBjb2VleGlzdCBpbiB0aGUgc2FtZSBwcm9jZXNzLgogICAgIHdlYlBhZ2Uud2luZG93U2NyZWVu
RGlkQ2hhbmdlKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSAtIHdlYlBhZ2Uu
aWRlbnRpZmllcigpLnRvVUludDY0KCkpOworCisgICAgaWYgKGF1dG8gdmlld0V4cG9zZWRSZWN0
ID0gcGFyYW1ldGVycy52aWV3RXhwb3NlZFJlY3QpCisgICAgICAgIHNldFZpZXdFeHBvc2VkUmVj
dCh2aWV3RXhwb3NlZFJlY3QpOwogfQogCiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6flJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKCkKQEAgLTIyNyw3ICsyMzAsOSBAQCB2b2lkIFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZCh1aW50NjRf
dCBsYXllcklELCBjbwogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0Vmlld0V4
cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KQog
ewogICAgIG1fdmlld0V4cG9zZWRSZWN0ID0gdmlld0V4cG9zZWRSZWN0OwotICAgIHVwZGF0ZVNj
cm9sbGVkRXhwb3NlZFJlY3QoKTsKKworICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1f
d2ViUGFnZS5tYWluRnJhbWVWaWV3KCkpCisgICAgICAgIGZyYW1lVmlldy0+c2V0Vmlld0V4cG9z
ZWRSZWN0KG1fdmlld0V4cG9zZWRSZWN0KTsKIH0KIAogV2ViQ29yZTo6RmxvYXRSZWN0IFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpleHBvc2VkQ29udGVudFJlY3QoKSBjb25zdApAQCAtMjUx
LDIyICsyNTYsNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRFeHBvc2Vk
Q29udGVudFJlY3QoY29uc3QgRmxvYXRSZWN0JiBleHBvc2VkQwogICAgIHNjaGVkdWxlUmVuZGVy
aW5nVXBkYXRlKCk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0
ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKQotewotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV93
ZWJQYWdlLm1haW5GcmFtZVZpZXcoKTsKLSAgICBpZiAoIWZyYW1lVmlldykKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCA9IG1fdmlld0V4cG9zZWRSZWN0
OwotCi0jaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKG1fdmlld0V4cG9zZWRSZWN0
KQotICAgICAgICBtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0LnZhbHVlKCkubW92ZUJ5KGZyYW1l
Vmlldy0+c2Nyb2xsT2Zmc2V0KCkpOwotI2VuZGlmCi0KLSAgICBmcmFtZVZpZXctPnNldFZpZXdF
eHBvc2VkUmVjdChtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0KTsKLX0KLQogVGlsZWRCYWNraW5n
KiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6bWFpbkZyYW1lVGlsZWRCYWNraW5nKCkgY29u
c3QKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3
KCk7CkBAIC0zMzMsOCArMzIyLDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6
dXBkYXRlUmVuZGVyaW5nKCkKICAgICBtX3dlYlBhZ2UudXBkYXRlUmVuZGVyaW5nKCk7CiAKICAg
ICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QoRmxvYXRQb2ludCgpLCBtX3ZpZXdTaXplKTsKLSAgICBp
ZiAobV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCkKLSAgICAgICAgdmlzaWJsZVJlY3QuaW50ZXJz
ZWN0KG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QudmFsdWUoKSk7CisgICAgaWYgKGF1dG8gZXhw
b3NlZFJlY3QgPSBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpLT52aWV3RXhwb3NlZFJlY3RJbkNv
bnRlbnRDb29yZGluYXRlcygpKQorICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3QoKmV4cG9z
ZWRSZWN0KTsKIAogICAgIGFkZENvbW1pdEhhbmRsZXJzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLmgKaW5kZXggODhhNGY5NWIwYTljNjY5MDBhYTU0ZGNmNmFhNDBi
ZDg4NmJmODRkMi4uZGIwNGI1MDVmZWEyMGVkNzMzMzE5NjU4ZmUxOTQ0Yjg0ZTYzNTBmYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKQEAgLTU4LDcgKzU4LDcgQEAg
cHJpdmF0ZToKICAgICAvLyBEcmF3aW5nQXJlYQogICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHNjcm9sbFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSkgb3ZlcnJpZGUgeyB9CiAKICAg
ICB2b2lkIGZvcmNlUmVwYWludCgpIG92ZXJyaWRlOwogICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5
bmMoQ2FsbGJhY2tJRCkgb3ZlcnJpZGU7CkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBtYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
IG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29y
ZTo6RmxvYXRSZWN0Pikgb3ZlcnJpZGU7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0
PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Njcm9sbGVkVmll
d0V4cG9zZWRSZWN0OyB9CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhw
b3NlZFJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3ZpZXdFeHBvc2VkUmVjdDsgfQog
CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IGV4cG9zZWRDb250ZW50UmVjdCgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZvaWQgc2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYpIG92ZXJyaWRlOwpAQCAtMTI1LDcgKzEyNSw2IEBAIHByaXZhdGU6CiAgICAgV2ViQ29y
ZTo6VGlsZWRCYWNraW5nKiBtYWluRnJhbWVUaWxlZEJhY2tpbmcoKSBjb25zdDsKICAgICB2b2lk
IHVwZGF0ZURlYnVnSW5mb0xheWVyKGJvb2wgc2hvd0xheWVyKTsKIAotICAgIHZvaWQgdXBkYXRl
U2Nyb2xsZWRFeHBvc2VkUmVjdCgpOwogICAgIHZvaWQgc2NhbGVWaWV3VG9GaXREb2N1bWVudElm
TmVlZGVkKCk7CiAKICAgICB2b2lkIHNlbmRQZW5kaW5nTmV3bHlSZWFjaGVkUGFpbnRpbmdNaWxl
c3RvbmVzKCk7CkBAIC0xNDUsNyArMTQ0LDYgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8Q0FM
YXllcj4gbV9wZW5kaW5nUm9vdExheWVyOwogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRS
ZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+
IG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3Q7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbGFz
dFZpZXdTaXplRm9yU2NhbGVUb0ZpdDsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbGFzdERvY3Vt
ZW50U2l6ZUZvclNjYWxlVG9GaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEubW0KaW5kZXggNGJiNjdmMmY2MDNiZTQ0NTcwMTRmZjEwN2M1YTg1MTNmMGY4ZDdmNy4uNzBk
ZjI2ZGIyOWQ3OTQ0MTQ3OTE0NmNjZTM0Y2M1NGYyOWQwYzEwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtOTEsNiArOTEsOSBAQCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEoV2ViUGFnZSYg
d2ViUGFnZSwgYwogICAgIHVwZGF0ZUxheWVySG9zdGluZ0NvbnRleHQoKTsKICAgICBzZXRDb2xv
clNwYWNlKHBhcmFtZXRlcnMuY29sb3JTcGFjZSk7CiAKKyAgICBpZiAoYXV0byB2aWV3RXhwb3Nl
ZFJlY3QgPSBwYXJhbWV0ZXJzLnZpZXdFeHBvc2VkUmVjdCkKKyAgICAgICAgc2V0Vmlld0V4cG9z
ZWRSZWN0KHZpZXdFeHBvc2VkUmVjdCk7CisKICAgICBpZiAoIXBhcmFtZXRlcnMuaXNQcm9jZXNz
U3dhcCkKICAgICAgICAgc2VuZEVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVJZk5lZWRl
ZCgpOwogfQpAQCAtMTM4LDExICsxNDEsNiBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKIH0K
IAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2Nyb2xsKGNvbnN0IEludFJl
Y3QmIHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQotewotICAgIHVwZGF0
ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKTsKLX0KLQogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllcikKIHsKICAgICBDQUxheWVyICpyb290TGF5ZXIgPSBncmFwaGljc0xheWVyID8gZ3JhcGhp
Y3NMYXllci0+cGxhdGZvcm1MYXllcigpIDogbmlsOwpAQCAtNDY3LDggKzQ2NSw4IEBAIHZvaWQg
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZyhVcGRhdGVSZW5k
ZXJpbmdUeXBlIGZsdXNoVHlwCiAgICAgICAgIH0KIAogICAgICAgICBGbG9hdFJlY3QgdmlzaWJs
ZVJlY3QgPSBbbV9ob3N0aW5nTGF5ZXIgZnJhbWVdOwotICAgICAgICBpZiAobV9zY3JvbGxlZFZp
ZXdFeHBvc2VkUmVjdCkKLSAgICAgICAgICAgIHZpc2libGVSZWN0LmludGVyc2VjdChtX3Njcm9s
bGVkVmlld0V4cG9zZWRSZWN0LnZhbHVlKCkpOworICAgICAgICBpZiAoYXV0byBleHBvc2VkUmVj
dCA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCktPnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENv
b3JkaW5hdGVzKCkpCisgICAgICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3QoKmV4cG9zZWRS
ZWN0KTsKIAogICAgICAgICAvLyBCZWNhdXNlIG91ciB2aWV3LXJlbGF0aXZlIG92ZXJsYXkgcm9v
dCBsYXllciBpcyBub3QgYXR0YWNoZWQgdG8gdGhlIG1haW4gR3JhcGhpY3NMYXllciB0cmVlLCB3
ZSBuZWVkIHRvIGZsdXNoIGl0IG1hbnVhbGx5LgogICAgICAgICBpZiAobV92aWV3T3ZlcmxheVJv
b3RMYXllcikKQEAgLTU1Myw3ICs1NTEsOSBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjpyZXN1bWVQYWludGluZygpCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJl
Y3QpCiB7CiAgICAgbV92aWV3RXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJlY3Q7Ci0gICAgdXBk
YXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOworCisgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKSkKKyAgICAgICAgZnJhbWVWaWV3LT5zZXRWaWV3
RXhwb3NlZFJlY3QobV92aWV3RXhwb3NlZFJlY3QpOwogfQogCiBGbG9hdFJlY3QgVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWE6OmV4cG9zZWRDb250ZW50UmVjdCgpIGNvbnN0CkBAIC01Njcs
MjQgKzU2Nyw2IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldEV4cG9z
ZWRDb250ZW50UmVjdChjb25zdCBGbG9hdFJlY3QmKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVTY3JvbGxl
ZEV4cG9zZWRSZWN0KCkKLXsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5t
YWluRnJhbWVWaWV3KCk7Ci0gICAgaWYgKCFmcmFtZVZpZXcpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QgPSBtX3ZpZXdFeHBvc2VkUmVjdDsKLQotI2lm
ICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChtX3ZpZXdFeHBvc2VkUmVjdCkgewotICAg
ICAgICBTY3JvbGxPZmZzZXQgc2Nyb2xsT2Zmc2V0ID0gZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXRG
cm9tUG9zaXRpb24oZnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlvbigpKTsKLSAgICAgICAgbV9zY3Jv
bGxlZFZpZXdFeHBvc2VkUmVjdC52YWx1ZSgpLm1vdmVCeShzY3JvbGxPZmZzZXQpOwotICAgIH0K
LSNlbmRpZgotCi0gICAgZnJhbWVWaWV3LT5zZXRWaWV3RXhwb3NlZFJlY3QobV9zY3JvbGxlZFZp
ZXdFeHBvc2VkUmVjdCk7Ci19Ci0KIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OnVwZGF0ZUdlb21ldHJ5KGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBib29sIGZsdXNoU3luY2hy
b25vdXNseSwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBmZW5jZVBvcnQpCiB7CiAgICAgbV9p
blVwZGF0ZUdlb21ldHJ5ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCAwZmQ1OTE2OTVkZDUyNzg5MzQ3YTc0ODM3MTMyYTVlYjU0Y2Fm
MzIxLi5mMDU1Nzc4N2JkNDdjZWU1NjcwZGU3NGYxN2UxNmI4MDE4NDM5YzI5IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMjAtMDQtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQm9va3Mgc29tZXRpbWVzIGVuZHMgdXAgd2l0aCBibGFuayBwYWdlcywgZXNwZWNpYWxs
eSBhZnRlciBhZGp1c3RpbmcgZm9udCBzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5ODk4
MTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9WaWV3RXhwb3NlZFJlY3Qu
bW06IEFkZGVkLgorICAgICAgICAoZm9yY2VSZXBhaW50Q2FsbGJhY2spOgorICAgICAgICAoVEVT
VCk6CisgICAgICAgIEFkZCBhIHRlc3QgZm9yIHRoZSBmaXJzdCBwcm9ibGVtLCB3aGljaCB3b3Vs
ZCBwcmV2aW91c2x5IGF0dGVtcHQgdG8gYWxsb2NhdGUKKyAgICAgICAgfjkwVEIgb2YgdGlsZXMs
IHNwaW5uaW5nIGFuZCBleHBsb2RpbmcsIGFuZCBub3cgaGFwcGlseSBqdXN0IGFsbG9jYXRlcyBh
IGZldy4KKwogMjAyMC0wNC0yOSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgYmV0dGVyIGhhbmRsaW5nIG9mIGFuIHVuY2xlYXJlZCBidW5k
bGUgaWRlbnRpZmllciBpbiBXZWJLaXRUZXN0UnVubmVyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDczMTI5NTQ4MGM3YTc1YzliOWY2ZjE4Y2U0ZWY2YTZmZTgwNmZiZjkuLjBlNzJlYjIxYTY5
YTE0N2Q0NTJmOGJiZDdiMDFhOTQ3OGJhMjg1ZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xMzksNiArMTM5LDcgQEAKIAkJMkQzQ0EzQTgyMjFERjRCNDAwODhFODAzIC8qIFBhZ2VPdmVy
bGF5UGx1Z2luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkQzQ0EzQTQyMjFERjIzOTAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1Z2luLm1tICovOyB9
OwogCQkyRDRDRjhCRDFEODM2MENDMDAwMUNFOEQgLyogV0tUaHVtYm5haWxWaWV3Lm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ0Q0Y4QkMxRDgzNjBD
QzAwMDFDRThEIC8qIFdLVGh1bWJuYWlsVmlldy5tbSAqLzsgfTsKIAkJMkQ1MUEwQzcxQzhCRjAw
QzAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MUEwQzUxQzhCRjAwNDAwNzY1QzQ1
IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tICovOyB9OworCQkyRDUyMDYzNTI0NUE2
MDNEMDAzMzhGODggLyogVmlld0V4cG9zZWRSZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MjA2MzQyNDVBNjAzQzAwMzM4Rjg4IC8qIFZpZXdF
eHBvc2VkUmVjdC5tbSAqLzsgfTsKIAkJMkQ3MDA1OTYyMUVEQTBDNjAwMzQ2M0NCIC8qIFRhYk91
dE9mV2ViVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJENzAwNTk1MjFFREEwQzYwMDM0NjNDQiAvKiBUYWJPdXRPZldlYlZpZXcubW0gKi87IH07
CiAJCTJENzAwNTk5MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3JlZW5XaW5kb3cubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDcwMDU5NzIxRURBNEQw
MDAzNDYzQ0IgLyogT2Zmc2NyZWVuV2luZG93Lm1tICovOyB9OwogCQkyRDdGRDE5MzIyNDE5MDg3
MDA3ODg3RjEgLyogRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEN0ZEMTkyMjI0MTkwODcwMDc4ODdGMSAvKiBE
b2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tICovOyB9OwpAQCAtMTcyOCw2ICsxNzI5LDcgQEAKIAkJ
MkQzQ0EzQTQyMjFERjIzOTAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1Z2luLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFnZU92ZXJsYXlQbHVnaW4ubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENENGOEJDMUQ4MzYwQ0MwMDAxQ0U4RCAvKiBX
S1RodW1ibmFpbFZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBXS1RodW1ibmFpbFZpZXcubW07IHBhdGggPSBXZWJLaXQvV0tUaHVtYm5haWxWaWV3Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDUxQTBDNTFDOEJGMDA0MDA3NjVDNDUgLyog
RE9NSFRNTFZpZGVvRWxlbWVudFdyYXBwZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBET01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMkQ1MjA2MzQyNDVBNjAzQzAwMzM4Rjg4IC8qIFZpZXdFeHBvc2Vk
UmVjdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZXdFeHBv
c2VkUmVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ2MUVDMzAyMUIwQjc1
QzAwQTdEMUNCIC8qIFBlbmNpbEtpdFRlc3RTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVuY2lsS2l0
VGVzdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDY0MEI1NDE3ODc1REZG
MDBCRkFGOTkgLyogU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ3MDA1OTUyMUVEQTBDNjAwMzQ2M0NCIC8qIFRhYk91dE9m
V2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRhYk91
dE9mV2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxOTIsNiArMzE5
NCw3IEBACiAJCQkJMkUxMzNCNEYyMUQ0MEFGMDAwRUQxQ0IyIC8qIFVzZVNlbGVjdGlvbkFzRmlu
ZFN0cmluZy5tbSAqLywKIAkJCQk5M0U5NDNGMTFDRDNFODdFMDBBQzA4QzIgLyogVmlkZW9Db250
cm9sc01hbmFnZXIubW0gKi8sCiAJCQkJQ0QzMDY1REYyMTY1NjgyRTAwRTg5NURGIC8qIFZpZGVv
UXVhbGl0eURpc3BsYXlDb21wb3NpdGluZy5tbSAqLywKKwkJCQkyRDUyMDYzNDI0NUE2MDNDMDAz
MzhGODggLyogVmlld0V4cG9zZWRSZWN0Lm1tICovLAogCQkJCTYzNTZGQjIxMUVDNEUwQkEwMDQ0
QkYxOCAvKiBWaXNpYmxlQ29udGVudFJlY3QubW0gKi8sCiAJCQkJODM3NzlDMzcxRjgyRkVCMDAw
N0NEQThBIC8qIFZpc2l0ZWRMaW5rU3RvcmUubW0gKi8sCiAJCQkJODMwRjJFMEIyMDlBNkE3NDAw
RDM2RkYxIC8qIFdlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlLm1tICovLApAQCAtNTE3OSw2
ICs1MTgyLDcgQEAKIAkJCQk3QzgzRTAzQTFEMEE2MDI3MDBGRUJDRjMgLyogVXRpbGl0aWVzQ29j
b2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBDNjFEMEE2NTRFMDBGRUJDRjMgLyogVmlk
ZW9Db250cm9sc01hbmFnZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDMwNjVFMDIxNjU2ODJF
MDBFODk1REYgLyogVmlkZW9RdWFsaXR5RGlzcGxheUNvbXBvc2l0aW5nLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMkQ1MjA2MzUyNDVBNjAzRDAwMzM4Rjg4IC8qIFZpZXdFeHBvc2VkUmVjdC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTExNUVCMzQzMUVFMEJBMDMwMDNDMkMwQSAvKiBWaWV3cG9ydFNp
emVGb3JWaWV3cG9ydFVuaXRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjM1NkZCMjIxRUM0RTBC
QTAwNDRCRjE4IC8qIFZpc2libGVDb250ZW50UmVjdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTgz
Nzc5QzM4MUY4MkZFQ0UwMDdDREE4QSAvKiBWaXNpdGVkTGlua1N0b3JlLm1tIGluIFNvdXJjZXMg
Ki8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Zp
ZXdFeHBvc2VkUmVjdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
Vmlld0V4cG9zZWRSZWN0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMzA4Y2M5YThkNWJmYTMwMGVkOWY5OTI3
NDQ4YzY1MGZiZjI2YjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1ZpZXdFeHBvc2VkUmVjdC5tbQpAQCAtMCwwICsxLDYzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVz
LmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0
IDxXZWJLaXQvV0tQYWdlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQYWdlUHJpdmF0ZS5oPgorI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KKworI2lmIFBMQVRGT1JNKE1BQykKKworQGludGVyZmFjZSBXS1dlYlZpZXcgKCkKKy0gKFdL
UGFnZVJlZilfcGFnZUZvclRlc3Rpbmc7CitAZW5kCisKK3N0YXRpYyBib29sIGRpZEZvcmNlUmVw
YWludDsKKworc3RhdGljIHZvaWQgZm9yY2VSZXBhaW50Q2FsbGJhY2soV0tFcnJvclJlZiBlcnJv
ciwgdm9pZCopCit7CisgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIGRpZEZvcmNlUmVwYWlu
dCA9IHRydWU7Cit9CisKK1RFU1QoV2ViS2l0LCBJbml0aWFsVGlsZUNvdmVyYWdlVXNlc1ZpZXdF
eHBvc2VkUmVjdCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgNTAwMDAwMCwgNTAwMDAwMCldKTsKKyAgICBbd2ViVmlldyBfc2V0Q2xpcHNUb1Zpc2libGVS
ZWN0OllFU107CisgICAgW1t3ZWJWaWV3IGhvc3RXaW5kb3ddIHNldEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgODAwLCA2MDApIGRpc3BsYXk6Tk9dOworICAgIFt3ZWJWaWV3IGFkZFRvVGVzdFdpbmRv
d107CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAg
ICBkaWRGb3JjZVJlcGFpbnQgPSBmYWxzZTsKKyAgICBXS1BhZ2VGb3JjZVJlcGFpbnQoW3dlYlZp
ZXcgX3BhZ2VGb3JUZXN0aW5nXSwgMCwgZm9yY2VSZXBhaW50Q2FsbGJhY2spOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRm9yY2VSZXBhaW50KTsKK30KKworI2VuZGlmIC8vIFBM
QVRGT1JNKE1BQykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398138</attachid>
            <date>2020-04-30 19:05:27 -0700</date>
            <delta_ts>2020-05-01 17:19:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211265-20200430190527.patch</filename>
            <type>text/plain</type>
            <size>37980</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwOTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdjMmRkZDkwMDIwNjlk
NmI1OTkwMGUzNGUyOWI4ZmZlY2FkYWM5NS4uMjEzMjEwNmI2MjE2NGRjY2RlOTFmMmJjODViNGJj
NjlhNGE4NjgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA0LTMwICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEJvb2tzIHNvbWV0
aW1lcyBlbmRzIHVwIHdpdGggYmxhbmsgcGFnZXMsIGVzcGVjaWFsbHkgYWZ0ZXIgYWRqdXN0aW5n
IGZvbnQgc2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExMjY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTg5ODE0ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAg
ICAgICAgUmVuYW1lICJoYXNSZWN0Q2hhbmdlZCIgYmVjYXVzZSBpdCBvbmx5IHRlc3RzIGlmIHRo
ZSBvcHRpb25hbC1zdGF0ZSBvZiB0aGUKKyAgICAgICAgcmVjdCBoYXMgY2hhbmdlZCwgbm90IHRo
ZSBhY3R1YWwgdmFsdWUuCisKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dmlld0V4cG9z
ZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgY29uc3QpOgorICAgICAgICBFeHBvc2UgdGhlIHZp
ZXdFeHBvc2VkUmVjdCBpbiBjb250ZW50IGNvb3JkaW5hdGVzIGZvciBhIHZhcmlldHkgb2YgY2xp
ZW50cy4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGFnZS9UZXh0
SW5kaWNhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmluaXRpYWxpemVJbmRpY2F0b3IpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29tcHV0ZVBhZ2VUaWxlZEJhY2tpbmdDb3ZlcmFnZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnZpc2libGVSZWN0Rm9yTGF5ZXJGbHVzaGluZyBjb25zdCk6CisgICAg
ICAgIEFkb3B0IHZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzLgorICAgICAgICBN
YXBwaW5nIGZyb20gcm9vdCB2aWV3IC0+IGNvbnRlbnRzIGNvb3JkaW5hdGVzIG5vdyBoYXBwZW5z
IGF0IHRpbWUtb2YtdXNlCisgICAgICAgIGluc3RlYWQgb2YgYWhlYWQgb2YgdGltZSAod2hlcmUg
aXQgY291bGQgYmVjb21lIHN0YWxlKS4KKwogMjAyMC0wNC0yOSAgSmVyIE5vYmxlICA8amVyLm5v
YmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIGRlYnVnIEFTU0VSVCBpbiBJbWFn
ZURlY29kZXJBVkZPYmpDOjpzdG9yZVNhbXBsZUJ1ZmZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJhMDlmYmNk
OWQwYmYzZmVkZjNhYzc4ZjYwZTdkYWE4ODJhMzU5ZmQuLjMzYjUxYjNhMzlmZDU0ZGVmYzFkNWU4
NWI5YmVkZTA5MmVhMzQxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjAtMDQtMzAg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQm9va3Mg
c29tZXRpbWVzIGVuZHMgdXAgd2l0aCBibGFuayBwYWdlcywgZXNwZWNpYWxseSBhZnRlciBhZGp1
c3RpbmcgZm9udCBzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTEyNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5ODk4MTQ0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgZmV3IHByb2JsZW1z
OgorCisgICAgICAgIC0gVGhlcmUgaXMgYSB3aW5kb3cgZHVyaW5nIHBhZ2UgY3JlYXRpb24gd2hl
cmUgYSBXS1dlYlZpZXcgY3JlYXRlZAorICAgICAgICB3aXRoIF9jbGlwc1RvVmlzaWJsZVJlY3Q9
WUVTIHdvdWxkIG5vdCB5ZXQgaGF2ZSBzZW50IGl0cyB2aWV3RXhwb3NlZFJlY3QKKyAgICAgICAg
dG8gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MsIGFuZCBpZiB3ZSBlbmQgdXAgY29uc3RydWN0aW5n
IHRpbGVzIGR1cmluZworICAgICAgICB0aGF0IHRpbWUsIHdlIGNhbiBtYWtlIHdheSB0b28gbWFu
eSwgYm9nZ2luZyBkb3duIHRoZSBwcm9jZXNzIChvciBjcmFzaGluZykuCisKKyAgICAgICAgRml4
IHRoaXMgYnkgYWx3YXlzIGtlZXBpbmcgdHJhY2sgb2YgdGhlIHZpZXdFeHBvc2VkUmVjdCAob24g
V2ViUGFnZVByb3h5LAorICAgICAgICBpbnN0ZWFkIG9mIHRoZSBzb21ld2hhdC1tb3JlLXRyYW5z
aWVudCBEcmF3aW5nQXJlYVByb3h5KSBhbmQgc2VuZGluZyBpdAorICAgICAgICB0byB0aGUgV2Vi
IENvbnRlbnQgcHJvY2VzcyBpbiB0aGUgV2ViUGFnZSBjcmVhdGlvbiBwYXJhbWV0ZXJzLCB0byBl
bnRpcmVseQorICAgICAgICByZW1vdmUgdGhpcyB3aW5kb3cuCisKKyAgICAgICAgLSBFdmVuIHdo
ZW4gdGhlIHZpZXdFeHBvc2VkUmVjdCBzdWNjZXNzZnVsbHkgZ2V0cyB0byB0aGUgV2ViIENvbnRl
bnQKKyAgICAgICAgcHJvY2VzcywgaXQgY2FuIHN0aWxsIGVuZCB1cCB3aWxkbHkgd3Jvbmc6IHRo
ZSBEcmF3aW5nQXJlYSB3YXMgdGFza2VkIHdpdGgKKyAgICAgICAgd2F0Y2hpbmcgc2Nyb2xsaW5n
IGNoYW5nZXMsIGFwcGx5aW5nIHRoZSBzY3JvbGwgb2Zmc2V0IHRvIHRoZSB2aWV3RXhwb3NlZFJl
Y3QsCisgICAgICAgIGFuZCBwdXNoaW5nIGl0IHRvIEZyYW1lVmlldyBpbiBjb250ZW50IGNvb3Jk
aW5hdGVzLgorCisgICAgICAgIEluc3RlYWQgb2YgdGhpcyBjb21wbGljYXRlZCBhbmQgdGltaW5n
LWRlcGVuZGVudCBtZWNoYW5pc20sIHN0b3JlIHRoZQorICAgICAgICB2aWV3RXhwb3NlZFJlY3Qg
b24gRnJhbWVWaWV3IGluIHZpZXcgY29vcmRpbmF0ZXMgKGl0IGlzIGNhbGxlZCAidmlldyIKKyAg
ICAgICAgZXhwb3NlZCByZWN0IGFmdGVyIGFsbCksIGFuZCBjb252ZXJ0IHRvIGNvbnRlbnQgY29v
cmRpbmF0ZXMgb24gZGVtYW5kCisgICAgICAgIHdoZW4gY2xpZW50cyByZXF1ZXN0IGl0LgorCisg
ICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIFBsdW1iIHZpZXcg
ZXhwb3NlZCByZWN0IHZpYSBXZWJQYWdlIGNyZWF0aW9uIHBhcmFtZXRlcnMuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp1cGRhdGVWaWV3RXhwb3NlZFJlY3QpOgorICAgICAgICBTZW5kIHZpZXdFeHBvc2Vk
UmVjdCBjaGFuZ2VzIHRvIFdlYlBhZ2VQcm94eSBpbnN0ZWFkIG9mIERyYXdpbmdBcmVhUHJveHku
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OnZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6c2V0Vmlld0V4cG9z
ZWRSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5o
OgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5Ojp2aWV3RXhwb3NlZFJlY3QgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlkQ2hhbmdlVmlld0V4cG9z
ZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6aW5kaWNhdG9yTG9jYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnNldFZpZXdFeHBvc2VkUmVj
dCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6dmlld0V4cG9zZWRSZWN0IGNvbnN0KToKKyAgICAgICAgTWFpbnRhaW4gdmlld0V4cG9zZWRS
ZWN0IG9uIFdlYlBhZ2VQcm94eSBpbnN0ZWFkIG9mIERyYXdpbmdBcmVhUHJveHksCisgICAgICAg
IHNvIHRoYXQgd2UgY2FuIGFsd2F5cyBzdG9yZSBpdCBldmVuIGlmIHdlIGRvbid0IGhhdmUgYSBE
cmF3aW5nQXJlYVByb3h5IHlldAorICAgICAgICAob3IgY2hhbmdlIERyYXdpbmdBcmVhUHJveGll
cykgYW5kIGNhbiBzZW5kIGl0IGluIFdlYlBhZ2UgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0Vmlld0V4cG9zZWRS
ZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0
ZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Ojp1cGRhdGVTY3JvbGxlZEV4cG9zZWRSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5t
bToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6OlRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QpOgorICAgICAg
ICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2Nyb2xsKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0
ZVNjcm9sbGVkRXhwb3NlZFJlY3QpOiBEZWxldGVkLgorICAgICAgICBQbHVtYiB2aWV3RXhwb3Nl
ZFJlY3QgZGlyZWN0bHkgdG8gRnJhbWVWaWV3LCBpbnN0ZWFkIG9mIHRyeWluZyB0byBhcHBseQor
ICAgICAgICB0aGUgcm9vdCB2aWV3IC0+IGNvbnRlbnRzIG1hcHBpbmcgb3Vyc2VsdmVzIGFuZCBw
dXNoaW5nIHVwZGF0ZXMuCisKIDIwMjAtMDQtMjkgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8gIDxh
cGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNjA4ODkpOiBUZXN0Q29u
dGV4dE1lbnU6L3dlYmtpdC9XZWJLaXRXZWJWaWV3L3BvcHVsYXRlLW1lbnUgbm8gbG9uZ2VyIHBh
c3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGIzZmUxNDBmYTM3YTc0ZThkYmNm
MTIxYjI2ZWI5YWVlZjY5NjU2YzIuLjUwNDg0MmNhOTRiODFjYTJiYzVkMDQxYzc0ZWVjNmUyNTI5
MGUzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTUzNzEsNyArNTM3MSw3IEBA
IHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2
aWV3RXhwb3NlZFJlY3QpCiAKICAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0g
PDwgIkZyYW1lVmlldyAiIDw8IHRoaXMgPDwgIiBzZXRWaWV3RXhwb3NlZFJlY3QgIiA8PCAodmll
d0V4cG9zZWRSZWN0ID8gdmlld0V4cG9zZWRSZWN0LnZhbHVlKCkgOiBGbG9hdFJlY3QoKSkpOwog
Ci0gICAgYm9vbCBoYXNSZWN0Q2hhbmdlZCA9ICFtX3ZpZXdFeHBvc2VkUmVjdCA9PSAhdmlld0V4
cG9zZWRSZWN0OworICAgIGJvb2wgaGFzUmVjdEV4aXN0ZW5jZUNoYW5nZWQgPSAhbV92aWV3RXhw
b3NlZFJlY3QgPT0gIXZpZXdFeHBvc2VkUmVjdDsKICAgICBtX3ZpZXdFeHBvc2VkUmVjdCA9IHZp
ZXdFeHBvc2VkUmVjdDsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc3VwcG9ydCBjbGlwcGlu
ZyB0byB0aGUgZXhwb3NlZCByZWN0IGZvciBzdWJmcmFtZXMgYXMgd2VsbC4KQEAgLTUzNzksNyAr
NTM3OSw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8Rmxv
YXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChUaWxl
ZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMtPnRpbGVkQmFja2luZygpKSB7Ci0gICAgICAg
IGlmIChoYXNSZWN0Q2hhbmdlZCkKKyAgICAgICAgaWYgKGhhc1JlY3RFeGlzdGVuY2VDaGFuZ2Vk
KQogICAgICAgICAgICAgdXBkYXRlVGlsZWRCYWNraW5nQWRhcHRpdmVTaXppbmcoKTsKICAgICAg
ICAgYWRqdXN0VGlsZWRCYWNraW5nQ292ZXJhZ2UoKTsKICAgICAgICAgdGlsZWRCYWNraW5nLT5z
ZXRUaWxlZFNjcm9sbGluZ0luZGljYXRvclBvc2l0aW9uKG1fdmlld0V4cG9zZWRSZWN0ID8gbV92
aWV3RXhwb3NlZFJlY3QudmFsdWUoKS5sb2NhdGlvbigpIDogRmxvYXRQb2ludCgpKTsKQEAgLTUz
OTEsNiArNTM5MSwxMyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlv
bmFsPEZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KQogICAgIH0KIH0KIAorT3B0aW9uYWw8Rmxv
YXRSZWN0PiBGcmFtZVZpZXc6OnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkg
Y29uc3QKK3sKKyAgICBpZiAoIW1fdmlld0V4cG9zZWRSZWN0KQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworICAgIHJldHVybiByb290Vmlld1RvQ29udGVudHMoKm1fdmlld0V4cG9zZWRS
ZWN0KTsKK30KKwogdm9pZCBGcmFtZVZpZXc6OmNsZWFyVmlld3BvcnRTaXplT3ZlcnJpZGVGb3JD
U1NWaWV3cG9ydFVuaXRzKCkKIHsKICAgICBpZiAoIW1fb3ZlcnJpZGVWaWV3cG9ydFNpemUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCAyMWMyZWZjNmJhZmUyNGZhOTJmNTYxZWFmMzY0MmE4
YTdiNzZlNmQyLi5iNTVhYzUxMDRjOGUzZWE2NjJhYzBhYzNjNjM0MmE1OGUwMjQyMDVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTYyOCw3ICs2MjgsNyBAQCBwdWJsaWM6CiAgICAgLy8g
Y2xpcHBpbmcgYnkgb3RoZXIgVUkgZWxlbWVudHMpLCB3aGVyZWFzIHZpc2libGVDb250ZW50UmVj
dCBpcwogICAgIC8vIGludGVybmFsIHRvIFdlYkNvcmUgYW5kIGRvZXNuJ3QgcmVzcGVjdCB0aG9z
ZSB0aGluZ3MuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0
aW9uYWw8RmxvYXRSZWN0Pik7Ci0gICAgT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdFeHBvc2VkUmVjdDsgfQorICAgIFdFQkNPUkVfRVhQ
T1JUIE9wdGlvbmFsPEZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0
ZXMoKSBjb25zdDsKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgdm9pZCB1cGRh
dGVTbmFwT2Zmc2V0cygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9U
ZXh0SW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4dEluZGljYXRvci5jcHAK
aW5kZXggYWUzNGIzYjg3Zjg4ZjBiMDFhOTJiYWJhNDY3N2YxN2E5MjJlYzM1Yy4uMjc1MjdkNDIx
ZTFkYzNiMzFjNjU2NmRmMzI0ODE4ZGVhOTVjMmJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9UZXh0SW5kaWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJ
bmRpY2F0b3IuY3BwCkBAIC0zMzQsOCArMzM0LDggQEAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZUlu
ZGljYXRvcihUZXh0SW5kaWNhdG9yRGF0YSYgZGF0YSwgRnJhbWUmIGZyYW1lLCBjb25zdCBTaW0K
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGNvbnRlbnRzQ2xpcFJlY3QgPSBlbmNsb3Np
bmdJbnRSZWN0KGZyYW1lVmlldy0+ZXhwb3NlZENvbnRlbnRSZWN0KCkpOwogI2Vsc2UKLSAgICBp
ZiAoYXV0byB2aWV3RXhwb3NlZFJlY3QgPSBmcmFtZVZpZXctPnZpZXdFeHBvc2VkUmVjdCgpKQot
ICAgICAgICBjb250ZW50c0NsaXBSZWN0ID0gZnJhbWVWaWV3LT52aWV3VG9Db250ZW50cyhlbmNs
b3NpbmdJbnRSZWN0KCp2aWV3RXhwb3NlZFJlY3QpKTsKKyAgICBpZiAoYXV0byB2aWV3RXhwb3Nl
ZFJlY3QgPSBmcmFtZVZpZXctPnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkp
CisgICAgICAgIGNvbnRlbnRzQ2xpcFJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KCp2aWV3RXhwb3Nl
ZFJlY3QpOwogICAgIGVsc2UKICAgICAgICAgY29udGVudHNDbGlwUmVjdCA9IGZyYW1lVmlldy0+
dmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMDE4MzAxMTg3MzA5NjhjZTg3MWM3MDgy
MjkxNDE2YzM3NjhkODZlNy4uYjc5ZGM0Yzk5OTAzZDc4OWQ2ODMyZDVlOWY0ZTk2NDFmNWRiZmRh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKQEAgLTQwMCw3ICs0MDAsNyBAQCBzdGF0aWMgVGlsZWRCYWNraW5nOjpUaWxlQ292ZXJhZ2Ug
Y29tcHV0ZVBhZ2VUaWxlZEJhY2tpbmdDb3ZlcmFnZShjb25zdCBSZW5kZXJMYQogICAgIFRpbGVk
QmFja2luZzo6VGlsZUNvdmVyYWdlIHRpbGVDb3ZlcmFnZSA9IFRpbGVkQmFja2luZzo6Q292ZXJh
Z2VGb3JWaXNpYmxlQXJlYTsKICAgICBib29sIHVzZU1pbmltYWxUaWxlc0R1cmluZ0xpdmVSZXNp
emUgPSBmcmFtZVZpZXcuaW5MaXZlUmVzaXplKCk7CiAgICAgaWYgKGZyYW1lVmlldy5zcGVjdWxh
dGl2ZVRpbGluZ0VuYWJsZWQoKSAmJiAhdXNlTWluaW1hbFRpbGVzRHVyaW5nTGl2ZVJlc2l6ZSkg
ewotICAgICAgICBib29sIGNsaXBzVG9FeHBvc2VkUmVjdCA9IHN0YXRpY19jYXN0PGJvb2w+KGZy
YW1lVmlldy52aWV3RXhwb3NlZFJlY3QoKSk7CisgICAgICAgIGJvb2wgY2xpcHNUb0V4cG9zZWRS
ZWN0ID0gc3RhdGljX2Nhc3Q8Ym9vbD4oZnJhbWVWaWV3LnZpZXdFeHBvc2VkUmVjdEluQ29udGVu
dENvb3JkaW5hdGVzKCkpOwogICAgICAgICBpZiAoZnJhbWVWaWV3Lmhvcml6b250YWxTY3JvbGxi
YXJNb2RlKCkgIT0gU2Nyb2xsYmFyQWx3YXlzT2ZmIHx8IGNsaXBzVG9FeHBvc2VkUmVjdCkKICAg
ICAgICAgICAgIHRpbGVDb3ZlcmFnZSB8PSBUaWxlZEJhY2tpbmc6OkNvdmVyYWdlRm9ySG9yaXpv
bnRhbFNjcm9sbGluZzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBiZjA1MTJmYWFmZWQ5Njg3MjhmMjg4NGI5NjQwMzBj
NTkxYzYzMTRiLi4wM2QwNGM4MGY5M2NjYzAzMzEzZTVkMDcxNzNkNTBiMGJhZjY0MmZkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cApAQCAtNTE0LDggKzUxNCw4IEBAIEZsb2F0UmVjdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnZp
c2libGVSZWN0Rm9yTGF5ZXJGbHVzaGluZygpIGNvbnN0CiAgICAgLy8gSGF2aW5nIGEgbV9zY3Jv
bGxlZENvbnRlbnRzTGF5ZXIgaW5kaWNhdGVzIHRoYXQgd2UncmUgZG9pbmcgc2Nyb2xsaW5nIHZp
YSBHcmFwaGljc0xheWVycy4KICAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QgPSBtX3Njcm9sbGVk
Q29udGVudHNMYXllciA/IEZsb2F0UmVjdCh7IH0sIGZyYW1lVmlldy5zaXplRm9yVmlzaWJsZUNv
bnRlbnQoKSkgOiBmcmFtZVZpZXcudmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAKLSAgICBpZiAoZnJh
bWVWaWV3LnZpZXdFeHBvc2VkUmVjdCgpKQotICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3Qo
ZnJhbWVWaWV3LnZpZXdFeHBvc2VkUmVjdCgpLnZhbHVlKCkpOworICAgIGlmIChhdXRvIGV4cG9z
ZWRSZWN0ID0gZnJhbWVWaWV3LnZpZXdFeHBvc2VkUmVjdEluQ29udGVudENvb3JkaW5hdGVzKCkp
CisgICAgICAgIHZpc2libGVSZWN0LmludGVyc2VjdCgqZXhwb3NlZFJlY3QpOwogCiAgICAgcmV0
dXJuIHZpc2libGVSZWN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGRjMTE1MmY4ZWIxOWVhNTA2MDg2ZDk3
OGM3MDE3Yzg3MjI5OGQ0N2EuLjhjODBkZTJmMzJlYzQ2ODA5ZmZkMGUzMDA3Zjc3NGJmYTQ4NTFm
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCkBAIC00NCw2ICs0NCw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVu
ZGVybGF5Q29sb3I7CiAgICAgZW5jb2RlciA8PCB1c2VGaXhlZExheW91dDsKICAgICBlbmNvZGVy
IDw8IGZpeGVkTGF5b3V0U2l6ZTsKKyAgICBlbmNvZGVyIDw8IHZpZXdFeHBvc2VkUmVjdDsKICAg
ICBlbmNvZGVyIDw8IGFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOwogICAgIGVuY29kZXIg
PDwgYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShw
YWdpbmF0aW9uTW9kZSk7CkBAIC0xODgsNiArMTg5LDggQEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVj
b2QKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMuZml4ZWRMYXlvdXRTaXplKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudmlld0V4cG9zZWRSZWN0KSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMuYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIpKQogICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbHdheXNT
aG93c1ZlcnRpY2FsU2Nyb2xsZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDM3ODJhNDEyYTdmY2ZlNmE3MDA4YTlhNDNiNWJk
NDgwZDYzZWZjZjAuLmNmZjMxMzU1YzFhMjYxOGFhODM3MmM1MjdiODE0NjliYzQ2ZTQxZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
QEAgLTg0LDYgKzg0LDggQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAg
IGJvb2wgdXNlRml4ZWRMYXlvdXQ7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBmaXhlZExheW91dFNp
emU7CiAKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdDsK
KwogICAgIGJvb2wgYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXI7CiAgICAgYm9vbCBhbHdh
eXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KaW5kZXggYTg4N2NiYWQzZjMwZTIzOTc0NGEyMDUxMTcwMzNjYzVj
OTViNDcxMi4uNjNjZjQxNzM3NDZhNjhiMTY2ZjY1NmZkNjIyZDg2M2ZkM2FhOTdmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE5MDIsOCAr
MTkwMiwxMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVWaWV3RXhwb3NlZFJlY3QoKQogICAg
IGlmIChtX3VzZUNvbnRlbnRQcmVwYXJhdGlvblJlY3RGb3JWaXNpYmxlUmVjdCkKICAgICAgICAg
ZXhwb3NlZFJlY3QgPSBDR1JlY3RVbmlvbihtX2NvbnRlbnRQcmVwYXJhdGlvblJlY3QsIGV4cG9z
ZWRSZWN0KTsKIAotICAgIGlmIChhdXRvIGRyYXdpbmdBcmVhID0gbV9wYWdlLT5kcmF3aW5nQXJl
YSgpKQotICAgICAgICBkcmF3aW5nQXJlYS0+c2V0Vmlld0V4cG9zZWRSZWN0KG1fY2xpcHNUb1Zp
c2libGVSZWN0ID8gT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PihleHBvc2VkUmVjdCkgOiBX
VEY6Om51bGxvcHQpOworICAgIGlmIChtX2NsaXBzVG9WaXNpYmxlUmVjdCkKKyAgICAgICAgbV9w
YWdlLT5zZXRWaWV3RXhwb3NlZFJlY3QoeyBleHBvc2VkUmVjdCB9KTsKKyAgICBlbHNlCisgICAg
ICAgIG1fcGFnZS0+c2V0Vmlld0V4cG9zZWRSZWN0KFdURjo6bnVsbG9wdCk7CiB9CiAKIHZvaWQg
V2ViVmlld0ltcGw6OnNldENsaXBzVG9WaXNpYmxlUmVjdChib29sIGNsaXBzVG9WaXNpYmxlUmVj
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKaW5kZXgg
OWU0NmZjYTAzOTQyMmY3YzZjZTdhYmRmOGMyNjBjOTI4YjRjNjYwMy4uZDhmYTUzODE0ZDNjMmQx
NTAzYzQ2ZDU1Y2U3NDA5ODhhZWJhMDk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5jcHAKQEAgLTkxLDEzICs5MSwxMSBAQCBib29sIERyYXdpbmdBcmVh
UHJveHk6OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+IGVuY29kZXIs
IE9wdGlvbgogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotdm9pZCBEcmF3aW5nQXJlYVByb3h5Ojpz
ZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3Nl
ZFJlY3QpCit2b2lkIERyYXdpbmdBcmVhUHJveHk6OmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgp
CiB7CiAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX3ZpZXdFeHBvc2VkUmVjdCA9IHZpZXdFeHBvc2VkUmVjdDsKLQog
ICAgIGlmICghbV92aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXIuaXNBY3RpdmUoKSkKICAgICAg
ICAgbV92aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CkBA
IC0xMDcsMTEgKzEwNSwxMiBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHk6OnZpZXdFeHBvc2VkUmVj
dENoYW5nZWRUaW1lckZpcmVkKCkKICAgICBpZiAoIW1fd2ViUGFnZVByb3h5Lmhhc1J1bm5pbmdQ
cm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX3ZpZXdFeHBvc2VkUmVjdCA9
PSBtX2xhc3RTZW50Vmlld0V4cG9zZWRSZWN0KQorICAgIGF1dG8gdmlld0V4cG9zZWRSZWN0ID0g
bV93ZWJQYWdlUHJveHkudmlld0V4cG9zZWRSZWN0KCk7CisgICAgaWYgKHZpZXdFeHBvc2VkUmVj
dCA9PSBtX2xhc3RTZW50Vmlld0V4cG9zZWRSZWN0KQogICAgICAgICByZXR1cm47CiAKLSAgICBz
ZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6U2V0Vmlld0V4cG9zZWRSZWN0KG1fdmlld0V4cG9z
ZWRSZWN0KSk7Ci0gICAgbV9sYXN0U2VudFZpZXdFeHBvc2VkUmVjdCA9IG1fdmlld0V4cG9zZWRS
ZWN0OworICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpTZXRWaWV3RXhwb3NlZFJlY3Qo
dmlld0V4cG9zZWRSZWN0KSk7CisgICAgbV9sYXN0U2VudFZpZXdFeHBvc2VkUmVjdCA9IHZpZXdF
eHBvc2VkUmVjdDsKIH0KICNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCBiMGE4NTcxNjc5ZDY2YmJkZTFmMzgw
YTExNDc5N2I4OGFiMWY0NGY4Li45Zjk3M2QzNjQyODc5NGJkMDIyYWVhOWJkYmYxZDE0ZDZlZGRh
NTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC04
OSw4ICs4OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNpZW50Wm9v
bShkb3VibGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQpIHsgfQogCiAjaWYgUExBVEZPUk0oTUFDKQot
ICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRSZWN0Pik7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdFeHBvc2VkUmVjdDsgfQorICAgIHZpcnR1YWwgdm9p
ZCBkaWRDaGFuZ2VWaWV3RXhwb3NlZFJlY3QoKTsKICAgICB2b2lkIHZpZXdFeHBvc2VkUmVjdENo
YW5nZWRUaW1lckZpcmVkKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggNTU2NTkxZTcxNWNlMmI0ZDdjNTUzZTBlOTU4MDI0
ODdhYzdmYTA4NS4uODFjMWExMjE1ZDRiOTFlMTFiMjM0Y2RkMjc4M2I5YzkwMWU5NjhiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCkBAIC03MSw3
ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5n
KFdURjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRlOwog
CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgc2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0UmVjdD4pIG92ZXJyaWRlOworICAgIHZvaWQgZGlkQ2hhbmdlVmlld0V4
cG9zZWRSZWN0KCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4
IDRhNTBiODU5YWFkOTNjNDU4NjU1ZjczMGYzNmEzMTdiYWE0MzQxNDMuLmQ1NDNhNGI2NjM1Mjg3
MjQ4YWQwNTVjOGQyNDljYmIwMDQ1MjkwY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0yNzUsOSArMjc1LDkgQEAgdm9pZCBSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZCh1aW50
NjRfdCBsYXllckkKIHN0YXRpYyBjb25zdCBmbG9hdCBpbmRpY2F0b3JJbnNldCA9IDEwOwogCiAj
aWYgUExBVEZPUk0oTUFDKQotdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpz
ZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3Nl
ZFJlY3QpCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpZENoYW5nZVZp
ZXdFeHBvc2VkUmVjdCgpCiB7Ci0gICAgRHJhd2luZ0FyZWFQcm94eTo6c2V0Vmlld0V4cG9zZWRS
ZWN0KHZpZXdFeHBvc2VkUmVjdCk7CisgICAgRHJhd2luZ0FyZWFQcm94eTo6ZGlkQ2hhbmdlVmll
d0V4cG9zZWRSZWN0KCk7CiAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3JQb3NpdGlvbigpOwogfQog
I2VuZGlmCkBAIC0yOTMsOCArMjkzLDggQEAgRmxvYXRQb2ludCBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5OjppbmRpY2F0b3JMb2NhdGlvbigpIGNvbnN0CiAgICAgICAgIHRpbGVkTWFw
TG9jYXRpb24gKz0gRmxvYXRTaXplKGFic29sdXRlSW5zZXQsIGFic29sdXRlSW5zZXQpOwogI2Vs
c2UKICAgICAgICAgRmxvYXRQb2ludCB0aWxlZE1hcExvY2F0aW9uOwotICAgICAgICBpZiAodmll
d0V4cG9zZWRSZWN0KCkpCi0gICAgICAgICAgICB0aWxlZE1hcExvY2F0aW9uID0gdmlld0V4cG9z
ZWRSZWN0KCkudmFsdWUoKS5sb2NhdGlvbigpOworICAgICAgICBpZiAoYXV0byB2aWV3RXhwb3Nl
ZFJlY3QgPSBtX3dlYlBhZ2VQcm94eS52aWV3RXhwb3NlZFJlY3QoKSkKKyAgICAgICAgICAgIHRp
bGVkTWFwTG9jYXRpb24gPSB2aWV3RXhwb3NlZFJlY3QtPmxvY2F0aW9uKCk7CiAKICAgICAgICAg
dGlsZWRNYXBMb2NhdGlvbiArPSBGbG9hdFNpemUoaW5kaWNhdG9ySW5zZXQsIGluZGljYXRvcklu
c2V0KTsKICAgICAgICAgZmxvYXQgc2NhbGUgPSAxIC8gbV93ZWJQYWdlUHJveHkucGFnZVNjYWxl
RmFjdG9yKCk7CkBAIC0zNjQsOCArMzY0LDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcihJbnRTaXplIGNvbnRlbnRzU2l6ZSwKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBzY2FsZWRFeHBvc2VkUmVjdCA9IG1fd2Vi
UGFnZVByb3h5LmV4cG9zZWRDb250ZW50UmVjdCgpOwogI2Vsc2UKLSAgICAgICAgaWYgKHZpZXdF
eHBvc2VkUmVjdCgpKQotICAgICAgICAgICAgc2NhbGVkRXhwb3NlZFJlY3QgPSB2aWV3RXhwb3Nl
ZFJlY3QoKS52YWx1ZSgpOworICAgICAgICBpZiAoYXV0byB2aWV3RXhwb3NlZFJlY3QgPSBtX3dl
YlBhZ2VQcm94eS52aWV3RXhwb3NlZFJlY3QoKSkKKyAgICAgICAgICAgIHNjYWxlZEV4cG9zZWRS
ZWN0ID0gKnZpZXdFeHBvc2VkUmVjdDsKICAgICAgICAgZmxvYXQgc2NhbGUgPSAxIC8gbV93ZWJQ
YWdlUHJveHkucGFnZVNjYWxlRmFjdG9yKCk7CiAgICAgICAgIHNjYWxlZEV4cG9zZWRSZWN0LnNj
YWxlKHNjYWxlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggMGQzMDhlNmNiZjY4Njc5MjZkNDE3NzkxYTAzNDJhZGZhZjc1YzEyOC4uYjk3YmJj
NWVmNjYxMTVjNTVhMzMzNGM2ZTRlOTIxOWFiMTU1MTU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zNzc3LDYgKzM3NzcsMTYgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnNldEZpeGVkTGF5b3V0U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OlNldEZpeGVkTGF5b3V0U2l6ZShzaXplKSk7CiB9CiAKK3ZvaWQg
V2ViUGFnZVByb3h5OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRS
ZWN0PiB2aWV3RXhwb3NlZFJlY3QpCit7CisgICAgbV92aWV3RXhwb3NlZFJlY3QgPSB2aWV3RXhw
b3NlZFJlY3Q7CisKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYgKG1fZHJhd2luZ0FyZWEpCisg
ICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpOworI2VuZGlm
Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRBbHdheXNTaG93c0hvcml6b250YWxTY3JvbGxl
cihib29sIGFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyKQogewogICAgIGlmIChhbHdheXNT
aG93c0hvcml6b250YWxTY3JvbGxlciA9PSBtX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVy
KQpAQCAtNzczMCw2ICs3NzQwLDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdl
UHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICAgICBwYXJh
bWV0ZXJzLnVuZGVybGF5Q29sb3IgPSBtX3VuZGVybGF5Q29sb3I7CiAgICAgcGFyYW1ldGVycy51
c2VGaXhlZExheW91dCA9IG1fdXNlRml4ZWRMYXlvdXQ7CiAgICAgcGFyYW1ldGVycy5maXhlZExh
eW91dFNpemUgPSBtX2ZpeGVkTGF5b3V0U2l6ZTsKKyAgICBwYXJhbWV0ZXJzLnZpZXdFeHBvc2Vk
UmVjdCA9IG1fdmlld0V4cG9zZWRSZWN0OwogICAgIHBhcmFtZXRlcnMuYWx3YXlzU2hvd3NIb3Jp
em9udGFsU2Nyb2xsZXIgPSBtX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOwogICAgIHBh
cmFtZXRlcnMuYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyID0gbV9hbHdheXNTaG93c1ZlcnRp
Y2FsU2Nyb2xsZXI7CiAgICAgcGFyYW1ldGVycy5zdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMg
PSBtX3N1cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggYTM4ZDQzZWE4MDRkODU3ZTM3ZjM1ODk2OTA0M2RkYWQ4OWYxYTNi
YS4uMTBlMmJlODVmMDk4Y2U0MmUyZWJmZjQxMGM0NDQwMmRkZGNhMTk3OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTk5OCw2ICs5OTgsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCB1c2VGaXhlZExheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlRml4ZWRMYXlvdXQ7
IH07CiAgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgZml4ZWRMYXlvdXRTaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9maXhlZExheW91dFNpemU7IH07CiAKKyAgICB2b2lkIHNldFZpZXdFeHBvc2Vk
UmVjdChPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KTsKKyAgICBPcHRpb25hbDxXZWJDb3Jl
OjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld0V4cG9z
ZWRSZWN0OyB9CisKICAgICB2b2lkIHNldEFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyKGJv
b2wpOwogICAgIHZvaWQgc2V0QWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyKGJvb2wpOwogICAg
IGJvb2wgYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2Fs
d2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOyB9CkBAIC0yNDg1LDYgKzI0ODgsNyBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBtX3VzZUZpeGVkTGF5b3V0IHsgZmFsc2UgfTsKICAgICBXZWJDb3Jl
OjpJbnRTaXplIG1fZml4ZWRMYXlvdXRTaXplOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UmVjdD4gbV92aWV3RXhwb3NlZFJlY3Q7CiAKICAgICBib29sIG1fYWx3YXlzU2hvd3NIb3Jpem9u
dGFsU2Nyb2xsZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbHdheXNTaG93c1ZlcnRpY2FsU2Ny
b2xsZXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWEuaAppbmRleCAxNjQ4OTFhMWRmOWM3NWVjMTQ4ZDkyYThjNDgwNDAwYTcz
ZTA3ZTQ0Li4xYWMzOTQ0MzQ0NmUxN2E5ODM1M2ZiOTIzOWIyNzJkN2M0OTI1ZTA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAt
ODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmMoQ2FsbGJh
Y2tJRCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgc2V0Vmlld0V4cG9z
ZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4pIG92ZXJyaWRlOwotICAgIE9wdGlv
bmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdDsgfQorICAgIE9wdGlvbmFsPFdlYkNv
cmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV92aWV3RXhwb3NlZFJlY3Q7IH0KIAogICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRT
dGFydCh1aW50NjRfdCBsYXllcklELCBjb25zdCBTdHJpbmcmIGtleSwgTW9ub3RvbmljVGltZSBz
dGFydFRpbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRFbmQo
dWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5nJiBrZXkpIG92ZXJyaWRlOwpAQCAtMTA4LDcg
KzEwOCw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIGFkZE1pbGVzdG9uZXNUb0Rpc3BhdGNoKE9w
dGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KSBvdmVycmlkZTsKIAotICAgIHZvaWQg
dXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOwogICAgIHZvaWQgdXBkYXRlUm9vdExheWVycygp
OwogCiAgICAgdm9pZCBhZGRDb21taXRIYW5kbGVycygpOwpAQCAtMTQ1LDcgKzE0NCw2IEBAIHBy
aXZhdGU6CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3ZpZXdTaXplOwogCiAgICAgT3B0aW9uYWw8
V2ViQ29yZTo6RmxvYXRSZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKLSAgICBPcHRpb25hbDxXZWJD
b3JlOjpGbG9hdFJlY3Q+IG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3Q7CiAKICAgICBXZWJDb3Jl
OjpUaW1lciBtX3VwZGF0ZVJlbmRlcmluZ1RpbWVyOwogICAgIGJvb2wgbV9pc1JlbmRlcmluZ1N1
c3BlbmRlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggMTM1M2YxYmZlOTI2NTQ4OWNhMzEzYTBhYmY5ZTAw
NzdjZjVkZWU3My4uNTk5N2FlYmM2ZTE0YjYzMzFkNmQyMTI0NTcyYmJlZjkyMGY0MmJhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5t
bQpAQCAtNzMsNiArNzMsOSBAQCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWEoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgVwogICAgIC8vIERpc3Bs
YXlJRHMgbGVzcyBsaWtlbHksIGl0IGlzIG5vdCBlbnRpcmVseSBzYWZlIHRvIGhhdmUgYSBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYSBhbmQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEK
ICAgICAvLyBjb2VleGlzdCBpbiB0aGUgc2FtZSBwcm9jZXNzLgogICAgIHdlYlBhZ2Uud2luZG93
U2NyZWVuRGlkQ2hhbmdlKHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDMyX3Q+OjptYXgoKSAtIHdl
YlBhZ2UuaWRlbnRpZmllcigpLnRvVUludDY0KCkpOworCisgICAgaWYgKGF1dG8gdmlld0V4cG9z
ZWRSZWN0ID0gcGFyYW1ldGVycy52aWV3RXhwb3NlZFJlY3QpCisgICAgICAgIHNldFZpZXdFeHBv
c2VkUmVjdCh2aWV3RXhwb3NlZFJlY3QpOwogfQogCiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKCkKQEAgLTIyNyw3ICsyMzAsOSBAQCB2b2lk
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZCh1
aW50NjRfdCBsYXllcklELCBjbwogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0
Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRS
ZWN0KQogewogICAgIG1fdmlld0V4cG9zZWRSZWN0ID0gdmlld0V4cG9zZWRSZWN0OwotICAgIHVw
ZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKTsKKworICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmll
dyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCkpCisgICAgICAgIGZyYW1lVmlldy0+c2V0Vmll
d0V4cG9zZWRSZWN0KG1fdmlld0V4cG9zZWRSZWN0KTsKIH0KIAogV2ViQ29yZTo6RmxvYXRSZWN0
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpleHBvc2VkQ29udGVudFJlY3QoKSBjb25zdApA
QCAtMjUxLDIyICsyNTYsNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRF
eHBvc2VkQ29udGVudFJlY3QoY29uc3QgRmxvYXRSZWN0JiBleHBvc2VkQwogICAgIHNjaGVkdWxl
UmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6
OnVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKQotewotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKTsKLSAgICBpZiAoIWZyYW1lVmlldykKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCA9IG1fdmlld0V4cG9z
ZWRSZWN0OwotCi0jaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKG1fdmlld0V4cG9z
ZWRSZWN0KQotICAgICAgICBtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0LnZhbHVlKCkubW92ZUJ5
KGZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCkpOwotI2VuZGlmCi0KLSAgICBmcmFtZVZpZXctPnNl
dFZpZXdFeHBvc2VkUmVjdChtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0KTsKLX0KLQogVGlsZWRC
YWNraW5nKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6bWFpbkZyYW1lVGlsZWRCYWNraW5n
KCkgY29uc3QKIHsKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJh
bWVWaWV3KCk7CkBAIC0zMzMsOCArMzIyLDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYTo6dXBkYXRlUmVuZGVyaW5nKCkKICAgICBtX3dlYlBhZ2UudXBkYXRlUmVuZGVyaW5nKCk7
CiAKICAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QoRmxvYXRQb2ludCgpLCBtX3ZpZXdTaXplKTsK
LSAgICBpZiAobV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCkKLSAgICAgICAgdmlzaWJsZVJlY3Qu
aW50ZXJzZWN0KG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QudmFsdWUoKSk7CisgICAgaWYgKGF1
dG8gZXhwb3NlZFJlY3QgPSBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpLT52aWV3RXhwb3NlZFJl
Y3RJbkNvbnRlbnRDb29yZGluYXRlcygpKQorICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3Qo
KmV4cG9zZWRSZWN0KTsKIAogICAgIGFkZENvbW1pdEhhbmRsZXJzKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKaW5kZXggODhhNGY5NWIwYTljNjY5MDBhYTU0ZGNm
NmFhNDBiZDg4NmJmODRkMi4uZGIwNGI1MDVmZWEyMGVkNzMzMzE5NjU4ZmUxOTQ0Yjg0ZTYzNTBm
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKQEAgLTU4LDcgKzU4
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBEcmF3aW5nQXJlYQogICAgIHZvaWQgc2V0TmVlZHNEaXNw
bGF5KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRh
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3Jv
bGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSkgb3ZlcnJpZGUgeyB9
CiAKICAgICB2b2lkIGZvcmNlUmVwYWludCgpIG92ZXJyaWRlOwogICAgIGJvb2wgZm9yY2VSZXBh
aW50QXN5bmMoQ2FsbGJhY2tJRCkgb3ZlcnJpZGU7CkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBtYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8
V2ViQ29yZTo6RmxvYXRSZWN0Pikgb3ZlcnJpZGU7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Njcm9s
bGVkVmlld0V4cG9zZWRSZWN0OyB9CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2
aWV3RXhwb3NlZFJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3ZpZXdFeHBvc2VkUmVj
dDsgfQogCiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IGV4cG9zZWRDb250ZW50UmVjdCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwpAQCAtMTI1LDcgKzEyNSw2IEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6VGlsZWRCYWNraW5nKiBtYWluRnJhbWVUaWxlZEJhY2tpbmcoKSBjb25zdDsKICAg
ICB2b2lkIHVwZGF0ZURlYnVnSW5mb0xheWVyKGJvb2wgc2hvd0xheWVyKTsKIAotICAgIHZvaWQg
dXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOwogICAgIHZvaWQgc2NhbGVWaWV3VG9GaXREb2N1
bWVudElmTmVlZGVkKCk7CiAKICAgICB2b2lkIHNlbmRQZW5kaW5nTmV3bHlSZWFjaGVkUGFpbnRp
bmdNaWxlc3RvbmVzKCk7CkBAIC0xNDUsNyArMTQ0LDYgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5Q
dHI8Q0FMYXllcj4gbV9wZW5kaW5nUm9vdExheWVyOwogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6
RmxvYXRSZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9h
dFJlY3Q+IG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3Q7CiAKICAgICBXZWJDb3JlOjpJbnRTaXpl
IG1fbGFzdFZpZXdTaXplRm9yU2NhbGVUb0ZpdDsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbGFz
dERvY3VtZW50U2l6ZUZvclNjYWxlVG9GaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWEubW0KaW5kZXggNGJiNjdmMmY2MDNiZTQ0NTcwMTRmZjEwN2M1YTg1MTNmMGY4ZDdm
Ny4uNzBkZjI2ZGIyOWQ3OTQ0MTQ3OTE0NmNjZTM0Y2M1NGYyOWQwYzEwNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtOTEsNiArOTEsOSBAQCBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEoV2Vi
UGFnZSYgd2ViUGFnZSwgYwogICAgIHVwZGF0ZUxheWVySG9zdGluZ0NvbnRleHQoKTsKICAgICBz
ZXRDb2xvclNwYWNlKHBhcmFtZXRlcnMuY29sb3JTcGFjZSk7CiAKKyAgICBpZiAoYXV0byB2aWV3
RXhwb3NlZFJlY3QgPSBwYXJhbWV0ZXJzLnZpZXdFeHBvc2VkUmVjdCkKKyAgICAgICAgc2V0Vmll
d0V4cG9zZWRSZWN0KHZpZXdFeHBvc2VkUmVjdCk7CisKICAgICBpZiAoIXBhcmFtZXRlcnMuaXNQ
cm9jZXNzU3dhcCkKICAgICAgICAgc2VuZEVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVJ
Zk5lZWRlZCgpOwogfQpAQCAtMTM4LDExICsxNDEsNiBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkK
IHsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2Nyb2xsKGNvbnN0
IEludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQotewotICAg
IHVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKTsKLX0KLQogdm9pZCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoR3JhcGhpY3NMYXllciogZ3Jh
cGhpY3NMYXllcikKIHsKICAgICBDQUxheWVyICpyb290TGF5ZXIgPSBncmFwaGljc0xheWVyID8g
Z3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpIDogbmlsOwpAQCAtNDY3LDggKzQ2NSw4IEBA
IHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZyhVcGRh
dGVSZW5kZXJpbmdUeXBlIGZsdXNoVHlwCiAgICAgICAgIH0KIAogICAgICAgICBGbG9hdFJlY3Qg
dmlzaWJsZVJlY3QgPSBbbV9ob3N0aW5nTGF5ZXIgZnJhbWVdOwotICAgICAgICBpZiAobV9zY3Jv
bGxlZFZpZXdFeHBvc2VkUmVjdCkKLSAgICAgICAgICAgIHZpc2libGVSZWN0LmludGVyc2VjdCht
X3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0LnZhbHVlKCkpOworICAgICAgICBpZiAoYXV0byBleHBv
c2VkUmVjdCA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCktPnZpZXdFeHBvc2VkUmVjdEluQ29u
dGVudENvb3JkaW5hdGVzKCkpCisgICAgICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3QoKmV4
cG9zZWRSZWN0KTsKIAogICAgICAgICAvLyBCZWNhdXNlIG91ciB2aWV3LXJlbGF0aXZlIG92ZXJs
YXkgcm9vdCBsYXllciBpcyBub3QgYXR0YWNoZWQgdG8gdGhlIG1haW4gR3JhcGhpY3NMYXllciB0
cmVlLCB3ZSBuZWVkIHRvIGZsdXNoIGl0IG1hbnVhbGx5LgogICAgICAgICBpZiAobV92aWV3T3Zl
cmxheVJvb3RMYXllcikKQEAgLTU1Myw3ICs1NTEsOSBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhOjpyZXN1bWVQYWludGluZygpCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhw
b3NlZFJlY3QpCiB7CiAgICAgbV92aWV3RXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJlY3Q7Ci0g
ICAgdXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOworCisgICAgaWYgKEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKSkKKyAgICAgICAgZnJhbWVWaWV3LT5z
ZXRWaWV3RXhwb3NlZFJlY3QobV92aWV3RXhwb3NlZFJlY3QpOwogfQogCiBGbG9hdFJlY3QgVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmV4cG9zZWRDb250ZW50UmVjdCgpIGNvbnN0CkBA
IC01NjcsMjQgKzU2Nyw2IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNl
dEV4cG9zZWRDb250ZW50UmVjdChjb25zdCBGbG9hdFJlY3QmKQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVT
Y3JvbGxlZEV4cG9zZWRSZWN0KCkKLXsKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2Vi
UGFnZS5tYWluRnJhbWVWaWV3KCk7Ci0gICAgaWYgKCFmcmFtZVZpZXcpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QgPSBtX3ZpZXdFeHBvc2VkUmVjdDsK
LQotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGlmIChtX3ZpZXdFeHBvc2VkUmVjdCkg
ewotICAgICAgICBTY3JvbGxPZmZzZXQgc2Nyb2xsT2Zmc2V0ID0gZnJhbWVWaWV3LT5zY3JvbGxP
ZmZzZXRGcm9tUG9zaXRpb24oZnJhbWVWaWV3LT5zY3JvbGxQb3NpdGlvbigpKTsKLSAgICAgICAg
bV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdC52YWx1ZSgpLm1vdmVCeShzY3JvbGxPZmZzZXQpOwot
ICAgIH0KLSNlbmRpZgotCi0gICAgZnJhbWVWaWV3LT5zZXRWaWV3RXhwb3NlZFJlY3QobV9zY3Jv
bGxlZFZpZXdFeHBvc2VkUmVjdCk7Ci19Ci0KIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OnVwZGF0ZUdlb21ldHJ5KGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBib29sIGZsdXNo
U3luY2hyb25vdXNseSwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBmZW5jZVBvcnQpCiB7CiAg
ICAgbV9pblVwZGF0ZUdlb21ldHJ5ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwZmQ1OTE2OTVkZDUyNzg5MzQ3YTc0ODM3MTMyYTVl
YjU0Y2FmMzIxLi5mMDU1Nzc4N2JkNDdjZWU1NjcwZGU3NGYxN2UxNmI4MDE4NDM5YzI5IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMjAtMDQtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgQm9va3Mgc29tZXRpbWVzIGVuZHMgdXAgd2l0aCBibGFuayBwYWdlcywgZXNw
ZWNpYWxseSBhZnRlciBhZGp1c3RpbmcgZm9udCBzaXplCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyNjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU5ODk4MTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9WaWV3RXhwb3Nl
ZFJlY3QubW06IEFkZGVkLgorICAgICAgICAoZm9yY2VSZXBhaW50Q2FsbGJhY2spOgorICAgICAg
ICAoVEVTVCk6CisgICAgICAgIEFkZCBhIHRlc3QgZm9yIHRoZSBmaXJzdCBwcm9ibGVtLCB3aGlj
aCB3b3VsZCBwcmV2aW91c2x5IGF0dGVtcHQgdG8gYWxsb2NhdGUKKyAgICAgICAgfjkwVEIgb2Yg
dGlsZXMsIHNwaW5uaW5nIGFuZCBleHBsb2RpbmcsIGFuZCBub3cgaGFwcGlseSBqdXN0IGFsbG9j
YXRlcyBhIGZldy4KKwogMjAyMC0wNC0yOSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYmV0dGVyIGhhbmRsaW5nIG9mIGFuIHVuY2xlYXJl
ZCBidW5kbGUgaWRlbnRpZmllciBpbiBXZWJLaXRUZXN0UnVubmVyCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDczMTI5NTQ4MGM3YTc1YzliOWY2ZjE4Y2U0ZWY2YTZmZTgwNmZiZjkuLjBlNzJl
YjIxYTY5YTE0N2Q0NTJmOGJiZDdiMDFhOTQ3OGJhMjg1ZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzksNiArMTM5LDcgQEAKIAkJMkQzQ0EzQTgyMjFERjRCNDAwODhFODAzIC8qIFBh
Z2VPdmVybGF5UGx1Z2luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkQzQ0EzQTQyMjFERjIzOTAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1Z2luLm1t
ICovOyB9OwogCQkyRDRDRjhCRDFEODM2MENDMDAwMUNFOEQgLyogV0tUaHVtYm5haWxWaWV3Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ0Q0Y4QkMx
RDgzNjBDQzAwMDFDRThEIC8qIFdLVGh1bWJuYWlsVmlldy5tbSAqLzsgfTsKIAkJMkQ1MUEwQzcx
QzhCRjAwQzAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MUEwQzUxQzhCRjAwNDAw
NzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tICovOyB9OworCQkyRDUyMDYz
NTI0NUE2MDNEMDAzMzhGODggLyogVmlld0V4cG9zZWRSZWN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MjA2MzQyNDVBNjAzQzAwMzM4Rjg4IC8q
IFZpZXdFeHBvc2VkUmVjdC5tbSAqLzsgfTsKIAkJMkQ3MDA1OTYyMUVEQTBDNjAwMzQ2M0NCIC8q
IFRhYk91dE9mV2ViVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJENzAwNTk1MjFFREEwQzYwMDM0NjNDQiAvKiBUYWJPdXRPZldlYlZpZXcubW0g
Ki87IH07CiAJCTJENzAwNTk5MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3JlZW5XaW5kb3cubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDcwMDU5NzIx
RURBNEQwMDAzNDYzQ0IgLyogT2Zmc2NyZWVuV2luZG93Lm1tICovOyB9OwogCQkyRDdGRDE5MzIy
NDE5MDg3MDA3ODg3RjEgLyogRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEN0ZEMTkyMjI0MTkwODcwMDc4ODdG
MSAvKiBEb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tICovOyB9OwpAQCAtMTcyOCw2ICsxNzI5LDcg
QEAKIAkJMkQzQ0EzQTQyMjFERjIzOTAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1Z2luLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFnZU92ZXJsYXlQbHVnaW4u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENENGOEJDMUQ4MzYwQ0MwMDAxQ0U4
RCAvKiBXS1RodW1ibmFpbFZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBXS1RodW1ibmFpbFZpZXcubW07IHBhdGggPSBXZWJLaXQvV0tUaHVtYm5haWxWaWV3
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDUxQTBDNTFDOEJGMDA0MDA3NjVD
NDUgLyogRE9NSFRNTFZpZGVvRWxlbWVudFdyYXBwZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ1MjA2MzQyNDVBNjAzQzAwMzM4Rjg4IC8qIFZpZXdF
eHBvc2VkUmVjdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZp
ZXdFeHBvc2VkUmVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ2MUVDMzAy
MUIwQjc1QzAwQTdEMUNCIC8qIFBlbmNpbEtpdFRlc3RTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVu
Y2lsS2l0VGVzdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDY0MEI1NDE3
ODc1REZGMDBCRkFGOTkgLyogU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxQaW5uaW5nQmVoYXZpb3JzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ3MDA1OTUyMUVEQTBDNjAwMzQ2M0NCIC8qIFRh
Yk91dE9mV2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFRhYk91dE9mV2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMxOTIs
NiArMzE5NCw3IEBACiAJCQkJMkUxMzNCNEYyMUQ0MEFGMDAwRUQxQ0IyIC8qIFVzZVNlbGVjdGlv
bkFzRmluZFN0cmluZy5tbSAqLywKIAkJCQk5M0U5NDNGMTFDRDNFODdFMDBBQzA4QzIgLyogVmlk
ZW9Db250cm9sc01hbmFnZXIubW0gKi8sCiAJCQkJQ0QzMDY1REYyMTY1NjgyRTAwRTg5NURGIC8q
IFZpZGVvUXVhbGl0eURpc3BsYXlDb21wb3NpdGluZy5tbSAqLywKKwkJCQkyRDUyMDYzNDI0NUE2
MDNDMDAzMzhGODggLyogVmlld0V4cG9zZWRSZWN0Lm1tICovLAogCQkJCTYzNTZGQjIxMUVDNEUw
QkEwMDQ0QkYxOCAvKiBWaXNpYmxlQ29udGVudFJlY3QubW0gKi8sCiAJCQkJODM3NzlDMzcxRjgy
RkVCMDAwN0NEQThBIC8qIFZpc2l0ZWRMaW5rU3RvcmUubW0gKi8sCiAJCQkJODMwRjJFMEIyMDlB
NkE3NDAwRDM2RkYxIC8qIFdlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlLm1tICovLApAQCAt
NTE3OSw2ICs1MTgyLDcgQEAKIAkJCQk3QzgzRTAzQTFEMEE2MDI3MDBGRUJDRjMgLyogVXRpbGl0
aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBDNjFEMEE2NTRFMDBGRUJDRjMg
LyogVmlkZW9Db250cm9sc01hbmFnZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDMwNjVFMDIx
NjU2ODJFMDBFODk1REYgLyogVmlkZW9RdWFsaXR5RGlzcGxheUNvbXBvc2l0aW5nLm1tIGluIFNv
dXJjZXMgKi8sCisJCQkJMkQ1MjA2MzUyNDVBNjAzRDAwMzM4Rjg4IC8qIFZpZXdFeHBvc2VkUmVj
dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTExNUVCMzQzMUVFMEJBMDMwMDNDMkMwQSAvKiBWaWV3
cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNjM1NkZCMjIx
RUM0RTBCQTAwNDRCRjE4IC8qIFZpc2libGVDb250ZW50UmVjdC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTgzNzc5QzM4MUY4MkZFQ0UwMDdDREE4QSAvKiBWaXNpdGVkTGlua1N0b3JlLm1tIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1ZpZXdFeHBvc2VkUmVjdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvVmlld0V4cG9zZWRSZWN0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMzA4Y2M5YThkNWJmYTMwMGVk
OWY5OTI3NDQ4YzY1MGZiZjI2YjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1ZpZXdFeHBvc2VkUmVjdC5tbQpAQCAtMCwwICsxLDYzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRp
bGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisj
aW1wb3J0IDxXZWJLaXQvV0tQYWdlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQYWdlUHJpdmF0ZS5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKworQGludGVyZmFjZSBXS1dlYlZpZXcgKCkK
Ky0gKFdLUGFnZVJlZilfcGFnZUZvclRlc3Rpbmc7CitAZW5kCisKK3N0YXRpYyBib29sIGRpZEZv
cmNlUmVwYWludDsKKworc3RhdGljIHZvaWQgZm9yY2VSZXBhaW50Q2FsbGJhY2soV0tFcnJvclJl
ZiBlcnJvciwgdm9pZCopCit7CisgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgIGRpZEZvcmNl
UmVwYWludCA9IHRydWU7Cit9CisKK1RFU1QoV2ViS2l0LCBJbml0aWFsVGlsZUNvdmVyYWdlVXNl
c1ZpZXdFeHBvc2VkUmVjdCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgNTAwMDAwMCwgNTAwMDAwMCldKTsKKyAgICBbd2ViVmlldyBfc2V0Q2xpcHNUb1Zp
c2libGVSZWN0OllFU107CisgICAgW1t3ZWJWaWV3IGhvc3RXaW5kb3ddIHNldEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApIGRpc3BsYXk6Tk9dOworICAgIFt3ZWJWaWV3IGFkZFRvVGVz
dFdpbmRvd107CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07
CisKKyAgICBkaWRGb3JjZVJlcGFpbnQgPSBmYWxzZTsKKyAgICBXS1BhZ2VGb3JjZVJlcGFpbnQo
W3dlYlZpZXcgX3BhZ2VGb3JUZXN0aW5nXSwgMCwgZm9yY2VSZXBhaW50Q2FsbGJhY2spOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRm9yY2VSZXBhaW50KTsKK30KKworI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398263</attachid>
            <date>2020-05-01 17:20:01 -0700</date>
            <delta_ts>2020-05-01 17:25:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211265-20200501172000.patch</filename>
            <type>text/plain</type>
            <size>38521</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE3MjBkYzk0ZGFlYjE1
N2MwMGEwZmNmYjk5N2RkYzU3ODlhZDAwYy4uMTViMGRmYzhjZjQ0MDQzZDViNzM4MDA3ZTNmZmE1
MThhZmJhMjhiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA0LTMwICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEJvb2tzIHNvbWV0
aW1lcyBlbmRzIHVwIHdpdGggYmxhbmsgcGFnZXMsIGVzcGVjaWFsbHkgYWZ0ZXIgYWRqdXN0aW5n
IGZvbnQgc2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExMjY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTg5ODE0ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAg
ICAgICAgUmVuYW1lICJoYXNSZWN0Q2hhbmdlZCIgYmVjYXVzZSBpdCBvbmx5IHRlc3RzIGlmIHRo
ZSBvcHRpb25hbC1zdGF0ZSBvZiB0aGUKKyAgICAgICAgcmVjdCBoYXMgY2hhbmdlZCwgbm90IHRo
ZSBhY3R1YWwgdmFsdWUuCisKIDIwMjAtMDUtMDEgIEphY2sgTGVlICA8c2hpaGNoaWVoX2xlZUBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYW1lbmQgY2hhbmdlIGxvZyBlbnRyeSBm
b3IgcjI2MDgzMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzVlZjliMDM3NGRkYTg2ZTQ1NWEwYjUwOWQ5MWJlOGRh
OWYwNmFhYS4uZjdlMGM0Mjc2NDQ1OTQzNzUwZmFmMDg0NWQxZWJkYjQ5ZDgwMTAzYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw4NSBAQAorMjAyMC0wNC0zMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9y
dG9uQGFwcGxlLmNvbT4KKworICAgICAgICBCb29rcyBzb21ldGltZXMgZW5kcyB1cCB3aXRoIGJs
YW5rIHBhZ2VzLCBlc3BlY2lhbGx5IGFmdGVyIGFkanVzdGluZyBmb250IHNpemUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTI2NQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTk4OTgxNDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQSBmZXcgcHJvYmxlbXM6CisKKyAgICAgICAgLSBUaGVyZSBpcyBz
aG9ydCB0aW1lIGR1cmluZyBwYWdlIGNyZWF0aW9uIHdoZXJlIGEgV0tXZWJWaWV3IGNyZWF0ZWQK
KyAgICAgICAgd2l0aCBfY2xpcHNUb1Zpc2libGVSZWN0PVlFUyB3b3VsZCBub3QgeWV0IGhhdmUg
c2VudCBpdHMgdmlld0V4cG9zZWRSZWN0CisgICAgICAgIHRvIHRoZSBXZWIgQ29udGVudCBwcm9j
ZXNzLCBhbmQgaWYgd2UgZW5kIHVwIGNvbnN0cnVjdGluZyB0aWxlcyBkdXJpbmcKKyAgICAgICAg
dGhhdCB0aW1lLCB3ZSBjYW4gbWFrZSB3YXkgdG9vIG1hbnksIGJvZ2dpbmcgZG93biB0aGUgcHJv
Y2VzcyAob3IgY3Jhc2hpbmcpLgorCisgICAgICAgIEZpeCB0aGlzIGJ5IGFsd2F5cyBrZWVwaW5n
IHRyYWNrIG9mIHRoZSB2aWV3RXhwb3NlZFJlY3QgKG9uIFdlYlBhZ2VQcm94eSwKKyAgICAgICAg
aW5zdGVhZCBvZiB0aGUgc29tZXdoYXQtbW9yZS10cmFuc2llbnQgRHJhd2luZ0FyZWFQcm94eSkg
YW5kIHNlbmRpbmcgaXQKKyAgICAgICAgdG8gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MgaW4gdGhl
IFdlYlBhZ2UgY3JlYXRpb24gcGFyYW1ldGVycywgdG8gZW50aXJlbHkKKyAgICAgICAgcmVtb3Zl
IHRoaXMgd2luZG93LgorCisgICAgICAgIC0gRXZlbiB3aGVuIHRoZSB2aWV3RXhwb3NlZFJlY3Qg
c3VjY2Vzc2Z1bGx5IGdldHMgdG8gdGhlIFdlYiBDb250ZW50CisgICAgICAgIHByb2Nlc3MsIGl0
IGNhbiBzdGlsbCBlbmQgdXAgd2lsZGx5IHdyb25nOiB0aGUgRHJhd2luZ0FyZWEgd2FzIHRhc2tl
ZCB3aXRoCisgICAgICAgIHdhdGNoaW5nIHNjcm9sbGluZyBjaGFuZ2VzLCBhcHBseWluZyB0aGUg
c2Nyb2xsIG9mZnNldCB0byB0aGUgdmlld0V4cG9zZWRSZWN0LAorICAgICAgICBhbmQgcHVzaGlu
ZyBpdCB0byBGcmFtZVZpZXcgaW4gY29udGVudCBjb29yZGluYXRlcy4KKworICAgICAgICBJdCB0
dXJucyBvdXQgdGhhdCB0aGlzIHdhcyBhbGwgdW5uZWNlc3NhcnksIGFzIHdlIG5lZWQgdmlld0V4
cG9zZWRSZWN0CisgICAgICAgIGluIHJvb3QgdmlldyBjb29yZGluYXRlcyAoc2FtZSBzcGFjZSBh
cyB2aXNpYmxlQ29udGVudFJlY3QsIHdoaWNoIHdlCisgICAgICAgIGludGVyc2VjdCBpdCB3aXRo
KSwgYW5kIHdlIGp1c3QgZGlkbid0IG5vdGljZSBiZWNhdXNlIGFsbCBjbGllbnRzIG9mCisgICAg
ICAgIF9jbGlwc1RvVmlzaWJsZVJlY3Q6IGV4cGFuZCB0aGUgdmlldyB0byBpdHMgbGF5b3V0IHNp
emUgYW5kIGluc2VydAorICAgICAgICBhIHNjcm9sbGluZyB2aWV3IG91dHNpZGUgdGhlIHdlYiB2
aWV3LCBhbmQgc28gZG9uJ3QgdXNlIG91ciBzY3JvbGxpbmcuCisKKyAgICAgICAgQXZvaWQgdGhp
cyBjb252ZXJzaW9uIGFuZCBjb21wbGV4aXR5IGVudGlyZWx5OyBJIHRlc3RlZCBNYWlsIGFuZCBC
b29rcworICAgICAgICB3aGVyZSB0aGVyZSBpcyBubyBpbXBhY3QgKG90aGVyIHRoYW4gZml4aW5n
IHRoZSBvcmlnaW5hbCBidWcpLCBhbmQgYWxzbworICAgICAgICBhIGN1c3RvbSB0ZXN0IGFwcCB3
aXRoIGEgc2Nyb2xsYWJsZSBXS1dlYlZpZXcgaW5zaWRlIGEgTlNTY3JvbGxWaWV3LAorICAgICAg
ICB3aGljaCBpbXByb3ZlZCBzaWduaWZpY2FudGx5LgorCisgICAgICAgICogU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisgICAgICAgIFBsdW1iIHZpZXcgZXhwb3NlZCByZWN0IHZpYSBXZWJQ
YWdlIGNyZWF0aW9uIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVWaWV3RXhw
b3NlZFJlY3QpOgorICAgICAgICBTZW5kIHZpZXdFeHBvc2VkUmVjdCBjaGFuZ2VzIHRvIFdlYlBh
Z2VQcm94eSBpbnN0ZWFkIG9mIERyYXdpbmdBcmVhUHJveHkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJv
eHk6OmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdB
cmVhUHJveHk6OnZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKToKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFQcm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpE
cmF3aW5nQXJlYVByb3h5Ojp2aWV3RXhwb3NlZFJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eTo6ZGlkQ2hhbmdlVmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aW5kaWNhdG9yTG9jYXRpb24g
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHk6OnNldFZpZXdFeHBvc2VkUmVjdCk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlld0V4cG9zZWRSZWN0IGNv
bnN0KToKKyAgICAgICAgTWFpbnRhaW4gdmlld0V4cG9zZWRSZWN0IG9uIFdlYlBhZ2VQcm94eSBp
bnN0ZWFkIG9mIERyYXdpbmdBcmVhUHJveHksCisgICAgICAgIHNvIHRoYXQgd2UgY2FuIGFsd2F5
cyBzdG9yZSBpdCBldmVuIGlmIHdlIGRvbid0IGhhdmUgYSBEcmF3aW5nQXJlYVByb3h5IHlldAor
ICAgICAgICAob3IgY2hhbmdlIERyYXdpbmdBcmVhUHJveGllcykgYW5kIGNhbiBzZW5kIGl0IGlu
IFdlYlBhZ2UgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYTo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRhdGVTY3JvbGxlZEV4cG9z
ZWRSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVw
ZGF0ZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6c2Nyb2xsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3Qp
OiBEZWxldGVkLgorICAgICAgICBQbHVtYiB2aWV3RXhwb3NlZFJlY3QgZGlyZWN0bHkgdG8gRnJh
bWVWaWV3LCBpbnN0ZWFkIG9mIHRyeWluZyB0byBhcHBseQorICAgICAgICB0aGUgcm9vdCB2aWV3
IC0+IGNvbnRlbnRzIG1hcHBpbmcgb3Vyc2VsdmVzIGFuZCBwdXNoaW5nIHVwZGF0ZXMuCisKIDIw
MjAtMDUtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
XSBQcm9jZXNzVGhyb3R0bGVyIGZhaWxzIHRvIHJlLXRha2UgUHJvY2Vzc0Fzc2VydGlvbiBpZiB0
aGUgcHJldmlvdXMgb25lIHdhcyBpbnZhbGlkYXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CmluZGV4IDUxZWU1YmY2OGNiMWZlZDIzMDk0MDAwYTFmOWZkZDBkMDZjZDM3NDcuLjQxY2ZlZjZm
MWMxMjRhMTU3N2E1ZmI3MzU5MGU5MDY1YmUzZjcyOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKQEAgLTUzNzEsNyArNTM3MSw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3Nl
ZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiAKICAgICBMT0dfV0lU
SF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIkZyYW1lVmlldyAiIDw8IHRoaXMgPDwgIiBz
ZXRWaWV3RXhwb3NlZFJlY3QgIiA8PCAodmlld0V4cG9zZWRSZWN0ID8gdmlld0V4cG9zZWRSZWN0
LnZhbHVlKCkgOiBGbG9hdFJlY3QoKSkpOwogCi0gICAgYm9vbCBoYXNSZWN0Q2hhbmdlZCA9ICFt
X3ZpZXdFeHBvc2VkUmVjdCA9PSAhdmlld0V4cG9zZWRSZWN0OworICAgIGJvb2wgaGFzUmVjdEV4
aXN0ZW5jZUNoYW5nZWQgPSAhbV92aWV3RXhwb3NlZFJlY3QgPT0gIXZpZXdFeHBvc2VkUmVjdDsK
ICAgICBtX3ZpZXdFeHBvc2VkUmVjdCA9IHZpZXdFeHBvc2VkUmVjdDsKIAogICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgc3VwcG9ydCBjbGlwcGluZyB0byB0aGUgZXhwb3NlZCByZWN0IGZvciBzdWJm
cmFtZXMgYXMgd2VsbC4KQEAgLTUzNzksNyArNTM3OSw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRW
aWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMt
PnRpbGVkQmFja2luZygpKSB7Ci0gICAgICAgIGlmIChoYXNSZWN0Q2hhbmdlZCkKKyAgICAgICAg
aWYgKGhhc1JlY3RFeGlzdGVuY2VDaGFuZ2VkKQogICAgICAgICAgICAgdXBkYXRlVGlsZWRCYWNr
aW5nQWRhcHRpdmVTaXppbmcoKTsKICAgICAgICAgYWRqdXN0VGlsZWRCYWNraW5nQ292ZXJhZ2Uo
KTsKICAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRUaWxlZFNjcm9sbGluZ0luZGljYXRvclBvc2l0
aW9uKG1fdmlld0V4cG9zZWRSZWN0ID8gbV92aWV3RXhwb3NlZFJlY3QudmFsdWUoKS5sb2NhdGlv
bigpIDogRmxvYXRQb2ludCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0b3IuY3BwCmlu
ZGV4IGFlMzRiM2I4N2Y4OGYwYjAxYTkyYmFiYTQ2NzdmMTdhOTIyZWMzNWMuLjAyN2M3ZmM3YTIz
MDVkNjRjZjg3MjgzOWQ1YmVmYTU1NzlkODEzZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvVGV4dEluZGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9UZXh0SW5k
aWNhdG9yLmNwcApAQCAtMzM1LDcgKzMzNSw3IEBAIHN0YXRpYyBib29sIGluaXRpYWxpemVJbmRp
Y2F0b3IoVGV4dEluZGljYXRvckRhdGEmIGRhdGEsIEZyYW1lJiBmcmFtZSwgY29uc3QgU2ltCiAg
ICAgY29udGVudHNDbGlwUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoZnJhbWVWaWV3LT5leHBvc2Vk
Q29udGVudFJlY3QoKSk7CiAjZWxzZQogICAgIGlmIChhdXRvIHZpZXdFeHBvc2VkUmVjdCA9IGZy
YW1lVmlldy0+dmlld0V4cG9zZWRSZWN0KCkpCi0gICAgICAgIGNvbnRlbnRzQ2xpcFJlY3QgPSBm
cmFtZVZpZXctPnZpZXdUb0NvbnRlbnRzKGVuY2xvc2luZ0ludFJlY3QoKnZpZXdFeHBvc2VkUmVj
dCkpOworICAgICAgICBjb250ZW50c0NsaXBSZWN0ID0gZW5jbG9zaW5nSW50UmVjdCgqdmlld0V4
cG9zZWRSZWN0KTsKICAgICBlbHNlCiAgICAgICAgIGNvbnRlbnRzQ2xpcFJlY3QgPSBmcmFtZVZp
ZXctPnZpc2libGVDb250ZW50UmVjdCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDEwMmUyOWYyYmNkNGE4
NGQ4MWI5Y2Q4NjNhNzU3NWY1MDlmYjFhNDAuLjdlY2Y5Y2FlY2U4MjgxNzhhN2M5ZGM4MmE1ZDEy
ODljODk5Mjc2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwCkBAIC01MTQsOCArNTE0LDggQEAgRmxvYXRSZWN0IFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dmlzaWJsZVJlY3RGb3JMYXllckZsdXNoaW5nKCkgY29uc3QKICAgICAv
LyBIYXZpbmcgYSBtX3Njcm9sbGVkQ29udGVudHNMYXllciBpbmRpY2F0ZXMgdGhhdCB3ZSdyZSBk
b2luZyBzY3JvbGxpbmcgdmlhIEdyYXBoaWNzTGF5ZXJzLgogICAgIEZsb2F0UmVjdCB2aXNpYmxl
UmVjdCA9IG1fc2Nyb2xsZWRDb250ZW50c0xheWVyID8gRmxvYXRSZWN0KHsgfSwgZnJhbWVWaWV3
LnNpemVGb3JWaXNpYmxlQ29udGVudCgpKSA6IGZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3Qo
KTsKIAotICAgIGlmIChmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkpCi0gICAgICAgIHZpc2li
bGVSZWN0LmludGVyc2VjdChmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkudmFsdWUoKSk7Cisg
ICAgaWYgKGF1dG8gZXhwb3NlZFJlY3QgPSBmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkpCisg
ICAgICAgIHZpc2libGVSZWN0LmludGVyc2VjdCgqZXhwb3NlZFJlY3QpOwogCiAgICAgcmV0dXJu
IHZpc2libGVSZWN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGRjMTE1MmY4ZWIxOWVhNTA2MDg2ZDk3OGM3
MDE3Yzg3MjI5OGQ0N2EuLjhjODBkZTJmMzJlYzQ2ODA5ZmZkMGUzMDA3Zjc3NGJmYTQ4NTFmZTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCkBAIC00NCw2ICs0NCw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVuZGVy
bGF5Q29sb3I7CiAgICAgZW5jb2RlciA8PCB1c2VGaXhlZExheW91dDsKICAgICBlbmNvZGVyIDw8
IGZpeGVkTGF5b3V0U2l6ZTsKKyAgICBlbmNvZGVyIDw8IHZpZXdFeHBvc2VkUmVjdDsKICAgICBl
bmNvZGVyIDw8IGFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOwogICAgIGVuY29kZXIgPDwg
YWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShwYWdp
bmF0aW9uTW9kZSk7CkBAIC0xODgsNiArMTg5LDggQEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2QK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMuZml4ZWRMYXlvdXRTaXplKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudmlld0V4cG9zZWRSZWN0KSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIpKQogICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbHdheXNTaG93
c1ZlcnRpY2FsU2Nyb2xsZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDM3ODJhNDEyYTdmY2ZlNmE3MDA4YTlhNDNiNWJkNDgw
ZDYzZWZjZjAuLmNmZjMxMzU1YzFhMjYxOGFhODM3MmM1MjdiODE0NjliYzQ2ZTQxZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTg0LDYgKzg0LDggQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJv
b2wgdXNlRml4ZWRMYXlvdXQ7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBmaXhlZExheW91dFNpemU7
CiAKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdDsKKwog
ICAgIGJvb2wgYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXI7CiAgICAgYm9vbCBhbHdheXNT
aG93c1ZlcnRpY2FsU2Nyb2xsZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KaW5kZXggYTg4N2NiYWQzZjMwZTIzOTc0NGEyMDUxMTcwMzNjYzVjOTVi
NDcxMi4uMGNlMzM3NDVlZWEwMTFjZDlmMThiZmFhNjJlZmQxMGE4MjIzMzZmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE5MDIsOCArMTkw
Miw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpCiAgICAgaWYg
KG1fdXNlQ29udGVudFByZXBhcmF0aW9uUmVjdEZvclZpc2libGVSZWN0KQogICAgICAgICBleHBv
c2VkUmVjdCA9IENHUmVjdFVuaW9uKG1fY29udGVudFByZXBhcmF0aW9uUmVjdCwgZXhwb3NlZFJl
Y3QpOwogCi0gICAgaWYgKGF1dG8gZHJhd2luZ0FyZWEgPSBtX3BhZ2UtPmRyYXdpbmdBcmVhKCkp
Ci0gICAgICAgIGRyYXdpbmdBcmVhLT5zZXRWaWV3RXhwb3NlZFJlY3QobV9jbGlwc1RvVmlzaWJs
ZVJlY3QgPyBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KGV4cG9zZWRSZWN0KSA6IFdURjo6
bnVsbG9wdCk7CisgICAgbV9wYWdlLT5zZXRWaWV3RXhwb3NlZFJlY3QobV9jbGlwc1RvVmlzaWJs
ZVJlY3QgPyBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KGV4cG9zZWRSZWN0KSA6IFdURjo6
bnVsbG9wdCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldENsaXBzVG9WaXNpYmxlUmVjdChi
b29sIGNsaXBzVG9WaXNpYmxlUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eS5jcHAKaW5kZXggOWU0NmZjYTAzOTQyMmY3YzZjZTdhYmRmOGMyNjBjOTI4YjRj
NjYwMy4uZDhmYTUzODE0ZDNjMmQxNTAzYzQ2ZDU1Y2U3NDA5ODhhZWJhMDk4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKQEAgLTkxLDEzICs5MSwx
MSBAQCBib29sIERyYXdpbmdBcmVhUHJveHk6OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6OkVuY29kZXI+IGVuY29kZXIsIE9wdGlvbgogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotdm9p
ZCBEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6
RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCit2b2lkIERyYXdpbmdBcmVhUHJveHk6OmRpZENo
YW5nZVZpZXdFeHBvc2VkUmVjdCgpCiB7CiAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5u
aW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3ZpZXdFeHBvc2VkUmVjdCA9
IHZpZXdFeHBvc2VkUmVjdDsKLQogICAgIGlmICghbV92aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGlt
ZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV92aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXIuc3Rh
cnRPbmVTaG90KDBfcyk7CiB9CkBAIC0xMDcsMTEgKzEwNSwxMiBAQCB2b2lkIERyYXdpbmdBcmVh
UHJveHk6OnZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKCkKICAgICBpZiAoIW1fd2Vi
UGFnZVByb3h5Lmhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
IChtX3ZpZXdFeHBvc2VkUmVjdCA9PSBtX2xhc3RTZW50Vmlld0V4cG9zZWRSZWN0KQorICAgIGF1
dG8gdmlld0V4cG9zZWRSZWN0ID0gbV93ZWJQYWdlUHJveHkudmlld0V4cG9zZWRSZWN0KCk7Cisg
ICAgaWYgKHZpZXdFeHBvc2VkUmVjdCA9PSBtX2xhc3RTZW50Vmlld0V4cG9zZWRSZWN0KQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6U2V0Vmlld0V4
cG9zZWRSZWN0KG1fdmlld0V4cG9zZWRSZWN0KSk7Ci0gICAgbV9sYXN0U2VudFZpZXdFeHBvc2Vk
UmVjdCA9IG1fdmlld0V4cG9zZWRSZWN0OworICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVh
OjpTZXRWaWV3RXhwb3NlZFJlY3Qodmlld0V4cG9zZWRSZWN0KSk7CisgICAgbV9sYXN0U2VudFZp
ZXdFeHBvc2VkUmVjdCA9IHZpZXdFeHBvc2VkUmVjdDsKIH0KICNlbmRpZiAvLyBQTEFURk9STShN
QUMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCBi
MGE4NTcxNjc5ZDY2YmJkZTFmMzgwYTExNDc5N2I4OGFiMWY0NGY4Li45Zjk3M2QzNjQyODc5NGJk
MDIyYWVhOWJkYmYxZDE0ZDZlZGRhNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eS5oCkBAIC04OSw4ICs4OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgY29tbWl0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQpIHsgfQog
CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3Qo
T3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0Pik7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdFeHBvc2VkUmVj
dDsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3RXhwb3NlZFJlY3QoKTsKICAgICB2
b2lkIHZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKCk7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggNTU2NTkxZTcx
NWNlMmI0ZDdjNTUzZTBlOTU4MDI0ODdhYzdmYTA4NS4uODFjMWExMjE1ZDRiOTFlMTFiMjM0Y2Rk
Mjc4M2I5YzkwMWU5NjhiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eS5oCkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRj
aEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpF
cnJvcik+JiYpIG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgc2V0Vmll
d0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4pIG92ZXJyaWRlOworICAg
IHZvaWQgZGlkQ2hhbmdlVmlld0V4cG9zZWRSZWN0KCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5Lm1tCmluZGV4IDRhNTBiODU5YWFkOTNjNDU4NjU1ZjczMGYzNmEzMTdiYWE0
MzQxNDMuLmQ1NDNhNGI2NjM1Mjg3MjQ4YWQwNTVjOGQyNDljYmIwMDQ1MjkwY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0yNzUsOSAr
Mjc1LDkgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjphY2NlbGVyYXRl
ZEFuaW1hdGlvbkRpZEVuZCh1aW50NjRfdCBsYXllckkKIHN0YXRpYyBjb25zdCBmbG9hdCBpbmRp
Y2F0b3JJbnNldCA9IDEwOwogCiAjaWYgUExBVEZPUk0oTUFDKQotdm9pZCBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6
RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6OmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpCiB7Ci0gICAgRHJhd2luZ0FyZWFQ
cm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KHZpZXdFeHBvc2VkUmVjdCk7CisgICAgRHJhd2luZ0Fy
ZWFQcm94eTo6ZGlkQ2hhbmdlVmlld0V4cG9zZWRSZWN0KCk7CiAgICAgdXBkYXRlRGVidWdJbmRp
Y2F0b3JQb3NpdGlvbigpOwogfQogI2VuZGlmCkBAIC0yOTMsOCArMjkzLDggQEAgRmxvYXRQb2lu
dCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjppbmRpY2F0b3JMb2NhdGlvbigpIGNv
bnN0CiAgICAgICAgIHRpbGVkTWFwTG9jYXRpb24gKz0gRmxvYXRTaXplKGFic29sdXRlSW5zZXQs
IGFic29sdXRlSW5zZXQpOwogI2Vsc2UKICAgICAgICAgRmxvYXRQb2ludCB0aWxlZE1hcExvY2F0
aW9uOwotICAgICAgICBpZiAodmlld0V4cG9zZWRSZWN0KCkpCi0gICAgICAgICAgICB0aWxlZE1h
cExvY2F0aW9uID0gdmlld0V4cG9zZWRSZWN0KCkudmFsdWUoKS5sb2NhdGlvbigpOworICAgICAg
ICBpZiAoYXV0byB2aWV3RXhwb3NlZFJlY3QgPSBtX3dlYlBhZ2VQcm94eS52aWV3RXhwb3NlZFJl
Y3QoKSkKKyAgICAgICAgICAgIHRpbGVkTWFwTG9jYXRpb24gPSB2aWV3RXhwb3NlZFJlY3QtPmxv
Y2F0aW9uKCk7CiAKICAgICAgICAgdGlsZWRNYXBMb2NhdGlvbiArPSBGbG9hdFNpemUoaW5kaWNh
dG9ySW5zZXQsIGluZGljYXRvckluc2V0KTsKICAgICAgICAgZmxvYXQgc2NhbGUgPSAxIC8gbV93
ZWJQYWdlUHJveHkucGFnZVNjYWxlRmFjdG9yKCk7CkBAIC0zNjQsOCArMzY0LDggQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcihJbnRT
aXplIGNvbnRlbnRzU2l6ZSwKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBzY2Fs
ZWRFeHBvc2VkUmVjdCA9IG1fd2ViUGFnZVByb3h5LmV4cG9zZWRDb250ZW50UmVjdCgpOwogI2Vs
c2UKLSAgICAgICAgaWYgKHZpZXdFeHBvc2VkUmVjdCgpKQotICAgICAgICAgICAgc2NhbGVkRXhw
b3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJlY3QoKS52YWx1ZSgpOworICAgICAgICBpZiAoYXV0byB2
aWV3RXhwb3NlZFJlY3QgPSBtX3dlYlBhZ2VQcm94eS52aWV3RXhwb3NlZFJlY3QoKSkKKyAgICAg
ICAgICAgIHNjYWxlZEV4cG9zZWRSZWN0ID0gKnZpZXdFeHBvc2VkUmVjdDsKICAgICAgICAgZmxv
YXQgc2NhbGUgPSAxIC8gbV93ZWJQYWdlUHJveHkucGFnZVNjYWxlRmFjdG9yKCk7CiAgICAgICAg
IHNjYWxlZEV4cG9zZWRSZWN0LnNjYWxlKHNjYWxlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOTExMDU4ZGZlMTg4MjQwYmIzMDQxNDhlOTQ4
NzU1NmIxOTFjMTdlYy4uYmY0MDFmODkyMGUzYTBlZDEyNjI4NWJlNTAxOWIwNDI1M2EyODdiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zNzc4LDYgKzM3
NzgsMTkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldEZpeGVkTGF5b3V0U2l6ZShjb25zdCBJbnRT
aXplJiBzaXplKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldEZpeGVkTGF5b3V0U2l6
ZShzaXplKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0
aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCit7CisgICAgaWYgKG1f
dmlld0V4cG9zZWRSZWN0ID09IHZpZXdFeHBvc2VkUmVjdCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV92aWV3RXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJlY3Q7CisKKyNpZiBQTEFURk9STShN
QUMpCisgICAgaWYgKG1fZHJhd2luZ0FyZWEpCisgICAgICAgIG1fZHJhd2luZ0FyZWEtPmRpZENo
YW5nZVZpZXdFeHBvc2VkUmVjdCgpOworI2VuZGlmCit9CisKIHZvaWQgV2ViUGFnZVByb3h5Ojpz
ZXRBbHdheXNTaG93c0hvcml6b250YWxTY3JvbGxlcihib29sIGFsd2F5c1Nob3dzSG9yaXpvbnRh
bFNjcm9sbGVyKQogewogICAgIGlmIChhbHdheXNTaG93c0hvcml6b250YWxTY3JvbGxlciA9PSBt
X2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyKQpAQCAtNzcxNiw2ICs3NzI5LDcgQEAgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyhX
ZWJQcm9jZXNzUHJveHkmIHByb2MKICAgICBwYXJhbWV0ZXJzLnVuZGVybGF5Q29sb3IgPSBtX3Vu
ZGVybGF5Q29sb3I7CiAgICAgcGFyYW1ldGVycy51c2VGaXhlZExheW91dCA9IG1fdXNlRml4ZWRM
YXlvdXQ7CiAgICAgcGFyYW1ldGVycy5maXhlZExheW91dFNpemUgPSBtX2ZpeGVkTGF5b3V0U2l6
ZTsKKyAgICBwYXJhbWV0ZXJzLnZpZXdFeHBvc2VkUmVjdCA9IG1fdmlld0V4cG9zZWRSZWN0Owog
ICAgIHBhcmFtZXRlcnMuYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIgPSBtX2Fsd2F5c1No
b3dzSG9yaXpvbnRhbFNjcm9sbGVyOwogICAgIHBhcmFtZXRlcnMuYWx3YXlzU2hvd3NWZXJ0aWNh
bFNjcm9sbGVyID0gbV9hbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXI7CiAgICAgcGFyYW1ldGVy
cy5zdXBwcmVzc1Njcm9sbGJhckFuaW1hdGlvbnMgPSBtX3N1cHByZXNzU2Nyb2xsYmFyQW5pbWF0
aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYjVjYmNlNTc5
ZjQ2ODljODBlNDI0MDQyOGQ2NjA5ZGExODA0NDQwNy4uM2I0MTI5ZmUxNmIwZjhmZmZlNGIxYzhj
MTkwMDgzN2I0YzdlY2ViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTk5OCw2ICs5OTgsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCB1c2VGaXhlZExheW91dCgpIGNv
bnN0IHsgcmV0dXJuIG1fdXNlRml4ZWRMYXlvdXQ7IH07CiAgICAgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgZml4ZWRMYXlvdXRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9maXhlZExheW91dFNpemU7
IH07CiAKKyAgICB2b2lkIHNldFZpZXdFeHBvc2VkUmVjdChPcHRpb25hbDxXZWJDb3JlOjpGbG9h
dFJlY3Q+KTsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld0V4cG9zZWRSZWN0OyB9CisKICAgICB2b2lkIHNldEFs
d2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyKGJvb2wpOwogICAgIHZvaWQgc2V0QWx3YXlzU2hv
d3NWZXJ0aWNhbFNjcm9sbGVyKGJvb2wpOwogICAgIGJvb2wgYWx3YXlzU2hvd3NIb3Jpem9udGFs
U2Nyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVy
OyB9CkBAIC0yNDg4LDYgKzI0OTEsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3VzZUZpeGVk
TGF5b3V0IHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fZml4ZWRMYXlvdXRTaXpl
OworICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gbV92aWV3RXhwb3NlZFJlY3Q7CiAK
ICAgICBib29sIG1fYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9hbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXIgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCAxNjQ4
OTFhMWRmOWM3NWVjMTQ4ZDkyYThjNDgwNDAwYTczZTA3ZTQ0Li4xYWMzOTQ0MzQ0NmUxN2E5ODM1
M2ZiOTIzOWIyNzJkN2M0OTI1ZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgZm9yY2VSZXBhaW50QXN5bmMoQ2FsbGJhY2tJRCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFs
c2U7IH0KIAogICAgIHZvaWQgc2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZs
b2F0UmVjdD4pIG92ZXJyaWRlOwotICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmll
d0V4cG9zZWRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9zY3JvbGxlZFZpZXdFeHBv
c2VkUmVjdDsgfQorICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRS
ZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV92aWV3RXhwb3NlZFJlY3Q7IH0KIAogICAg
IHZvaWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBjb25z
dCBTdHJpbmcmIGtleSwgTW9ub3RvbmljVGltZSBzdGFydFRpbWUpIG92ZXJyaWRlOwogICAgIHZv
aWQgYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRFbmQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3Ry
aW5nJiBrZXkpIG92ZXJyaWRlOwpAQCAtMTA4LDcgKzEwOCw2IEBAIHByaXZhdGU6CiAKICAgICBi
b29sIGFkZE1pbGVzdG9uZXNUb0Rpc3BhdGNoKE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxl
c3RvbmU+KSBvdmVycmlkZTsKIAotICAgIHZvaWQgdXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgp
OwogICAgIHZvaWQgdXBkYXRlUm9vdExheWVycygpOwogCiAgICAgdm9pZCBhZGRDb21taXRIYW5k
bGVycygpOwpAQCAtMTQ1LDcgKzE0NCw2IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6SW50U2l6
ZSBtX3ZpZXdTaXplOwogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiBtX3ZpZXdF
eHBvc2VkUmVjdDsKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IG1fc2Nyb2xsZWRW
aWV3RXhwb3NlZFJlY3Q7CiAKICAgICBXZWJDb3JlOjpUaW1lciBtX3VwZGF0ZVJlbmRlcmluZ1Rp
bWVyOwogICAgIGJvb2wgbV9pc1JlbmRlcmluZ1N1c3BlbmRlZCB7IGZhbHNlIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXgg
MTM1M2YxYmZlOTI2NTQ4OWNhMzEzYTBhYmY5ZTAwNzdjZjVkZWU3My4uYjc3OTgyN2JiYWUzMDll
OWUwYjFmNWJiYjg0ZGViODFkMDFmMWY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAtNzMsNiArNzMsOSBAQCBSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEoV2ViUGFnZSYg
d2ViUGFnZSwgY29uc3QgVwogICAgIC8vIERpc3BsYXlJRHMgbGVzcyBsaWtlbHksIGl0IGlzIG5v
dCBlbnRpcmVseSBzYWZlIHRvIGhhdmUgYSBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYSBhbmQg
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEKICAgICAvLyBjb2VleGlzdCBpbiB0aGUgc2Ft
ZSBwcm9jZXNzLgogICAgIHdlYlBhZ2Uud2luZG93U2NyZWVuRGlkQ2hhbmdlKHN0ZDo6bnVtZXJp
Y19saW1pdHM8dWludDMyX3Q+OjptYXgoKSAtIHdlYlBhZ2UuaWRlbnRpZmllcigpLnRvVUludDY0
KCkpOworCisgICAgaWYgKGF1dG8gdmlld0V4cG9zZWRSZWN0ID0gcGFyYW1ldGVycy52aWV3RXhw
b3NlZFJlY3QpCisgICAgICAgIHNldFZpZXdFeHBvc2VkUmVjdCh2aWV3RXhwb3NlZFJlY3QpOwog
fQogCiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhKCkKQEAgLTIyNyw3ICsyMzAsOSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
OjphY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZCh1aW50NjRfdCBsYXllcklELCBjbwogdm9pZCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdl
YkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KQogewogICAgIG1fdmlld0V4cG9zZWRS
ZWN0ID0gdmlld0V4cG9zZWRSZWN0OwotICAgIHVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKTsK
KworICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3
KCkpCisgICAgICAgIGZyYW1lVmlldy0+c2V0Vmlld0V4cG9zZWRSZWN0KG1fdmlld0V4cG9zZWRS
ZWN0KTsKIH0KIAogV2ViQ29yZTo6RmxvYXRSZWN0IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
OjpleHBvc2VkQ29udGVudFJlY3QoKSBjb25zdApAQCAtMjUxLDIyICsyNTYsNiBAQCB2b2lkIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRFeHBvc2VkQ29udGVudFJlY3QoY29uc3QgRmxv
YXRSZWN0JiBleHBvc2VkQwogICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKLXZv
aWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3Qo
KQotewotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXco
KTsKLSAgICBpZiAoIWZyYW1lVmlldykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9zY3JvbGxl
ZFZpZXdFeHBvc2VkUmVjdCA9IG1fdmlld0V4cG9zZWRSZWN0OwotCi0jaWYgIVBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgaWYgKG1fdmlld0V4cG9zZWRSZWN0KQotICAgICAgICBtX3Njcm9sbGVk
Vmlld0V4cG9zZWRSZWN0LnZhbHVlKCkubW92ZUJ5KGZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCkp
OwotI2VuZGlmCi0KLSAgICBmcmFtZVZpZXctPnNldFZpZXdFeHBvc2VkUmVjdChtX3Njcm9sbGVk
Vmlld0V4cG9zZWRSZWN0KTsKLX0KLQogVGlsZWRCYWNraW5nKiBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYTo6bWFpbkZyYW1lVGlsZWRCYWNraW5nKCkgY29uc3QKIHsKICAgICBGcmFtZVZpZXcq
IGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCk7CkBAIC0zMzMsOCArMzIyLDgg
QEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6dXBkYXRlUmVuZGVyaW5nKCkKICAg
ICBtX3dlYlBhZ2UudXBkYXRlUmVuZGVyaW5nKCk7CiAKICAgICBGbG9hdFJlY3QgdmlzaWJsZVJl
Y3QoRmxvYXRQb2ludCgpLCBtX3ZpZXdTaXplKTsKLSAgICBpZiAobV9zY3JvbGxlZFZpZXdFeHBv
c2VkUmVjdCkKLSAgICAgICAgdmlzaWJsZVJlY3QuaW50ZXJzZWN0KG1fc2Nyb2xsZWRWaWV3RXhw
b3NlZFJlY3QudmFsdWUoKSk7CisgICAgaWYgKGF1dG8gZXhwb3NlZFJlY3QgPSBtX3dlYlBhZ2Uu
bWFpbkZyYW1lVmlldygpLT52aWV3RXhwb3NlZFJlY3QoKSkKKyAgICAgICAgdmlzaWJsZVJlY3Qu
aW50ZXJzZWN0KCpleHBvc2VkUmVjdCk7CiAKICAgICBhZGRDb21taXRIYW5kbGVycygpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCmluZGV4IDg4YTRmOTViMGE5YzY2
OTAwYWE1NGRjZjZhYTQwYmQ4ODZiZjg0ZDIuLmRiMDRiNTA1ZmVhMjBlZDczMzMxOTY1OGZlMTk0
NGI4NGU2MzUwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCkBA
IC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgLy8gRHJhd2luZ0FyZWEKICAgICB2b2lkIHNl
dE5lZWRzRGlzcGxheSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKLSAgICB2b2lkIHNjcm9sbChjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBz
Y3JvbGxEZWx0YSkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEpIG92
ZXJyaWRlIHsgfQogCiAgICAgdm9pZCBmb3JjZVJlcGFpbnQoKSBvdmVycmlkZTsKICAgICBib29s
IGZvcmNlUmVwYWludEFzeW5jKENhbGxiYWNrSUQpIG92ZXJyaWRlOwpAQCAtNzIsNyArNzIsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0Vmlld0V4cG9zZWRSZWN0
KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4pIG92ZXJyaWRlOwotICAgIE9wdGlvbmFsPFdl
YkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdDsgfQorICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZs
b2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV92aWV3
RXhwb3NlZFJlY3Q7IH0KIAogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBleHBvc2VkQ29udGVudFJl
Y3QoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldEV4cG9zZWRDb250ZW50UmVjdChjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKQEAgLTEyNSw3ICsxMjUsNiBAQCBwcml2
YXRlOgogICAgIFdlYkNvcmU6OlRpbGVkQmFja2luZyogbWFpbkZyYW1lVGlsZWRCYWNraW5nKCkg
Y29uc3Q7CiAgICAgdm9pZCB1cGRhdGVEZWJ1Z0luZm9MYXllcihib29sIHNob3dMYXllcik7CiAK
LSAgICB2b2lkIHVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKTsKICAgICB2b2lkIHNjYWxlVmll
d1RvRml0RG9jdW1lbnRJZk5lZWRlZCgpOwogCiAgICAgdm9pZCBzZW5kUGVuZGluZ05ld2x5UmVh
Y2hlZFBhaW50aW5nTWlsZXN0b25lcygpOwpAQCAtMTQ1LDcgKzE0NCw2IEBAIHByaXZhdGU6CiAg
ICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fcGVuZGluZ1Jvb3RMYXllcjsKIAogICAgIE9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0UmVjdD4gbV92aWV3RXhwb3NlZFJlY3Q7Ci0gICAgT3B0aW9uYWw8V2Vi
Q29yZTo6RmxvYXRSZWN0PiBtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0OwogCiAgICAgV2ViQ29y
ZTo6SW50U2l6ZSBtX2xhc3RWaWV3U2l6ZUZvclNjYWxlVG9GaXQ7CiAgICAgV2ViQ29yZTo6SW50
U2l6ZSBtX2xhc3REb2N1bWVudFNpemVGb3JTY2FsZVRvRml0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4IDRiYjY3ZjJmNjAzYmU0NDU3MDE0ZmYxMDdjNWE4
NTEzZjBmOGQ3ZjcuLjZiNWFmNjczNTc5OGI0Y2FmM2UxOTRiNjlkNmM5OGY1ZTEwOWQ2MzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTkxLDYgKzkxLDkg
QEAgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhKFdlYlBhZ2UmIHdlYlBhZ2UsIGMKICAgICB1cGRhdGVMYXllckhvc3RpbmdDb250ZXh0
KCk7CiAgICAgc2V0Q29sb3JTcGFjZShwYXJhbWV0ZXJzLmNvbG9yU3BhY2UpOwogCisgICAgaWYg
KGF1dG8gdmlld0V4cG9zZWRSZWN0ID0gcGFyYW1ldGVycy52aWV3RXhwb3NlZFJlY3QpCisgICAg
ICAgIHNldFZpZXdFeHBvc2VkUmVjdCh2aWV3RXhwb3NlZFJlY3QpOworCiAgICAgaWYgKCFwYXJh
bWV0ZXJzLmlzUHJvY2Vzc1N3YXApCiAgICAgICAgIHNlbmRFbnRlckFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlSWZOZWVkZWQoKTsKIH0KQEAgLTEzOCwxMSArMTQxLDYgQEAgdm9pZCBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IEludFJl
Y3QmIHJlY3QpCiB7CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNj
cm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0
YSkKLXsKLSAgICB1cGRhdGVTY3JvbGxlZEV4cG9zZWRSZWN0KCk7Ci19Ci0KIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKEdyYXBoaWNz
TGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgQ0FMYXllciAqcm9vdExheWVyID0gZ3JhcGhp
Y3NMYXllciA/IGdyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSA6IG5pbDsKQEAgLTQ2Nyw4
ICs0NjUsOCBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVSZW5k
ZXJpbmcoVXBkYXRlUmVuZGVyaW5nVHlwZSBmbHVzaFR5cAogICAgICAgICB9CiAKICAgICAgICAg
RmxvYXRSZWN0IHZpc2libGVSZWN0ID0gW21faG9zdGluZ0xheWVyIGZyYW1lXTsKLSAgICAgICAg
aWYgKG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QpCi0gICAgICAgICAgICB2aXNpYmxlUmVjdC5p
bnRlcnNlY3QobV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdC52YWx1ZSgpKTsKKyAgICAgICAgaWYg
KGF1dG8gZXhwb3NlZFJlY3QgPSBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpLT52aWV3RXhwb3Nl
ZFJlY3QoKSkKKyAgICAgICAgICAgIHZpc2libGVSZWN0LmludGVyc2VjdCgqZXhwb3NlZFJlY3Qp
OwogCiAgICAgICAgIC8vIEJlY2F1c2Ugb3VyIHZpZXctcmVsYXRpdmUgb3ZlcmxheSByb290IGxh
eWVyIGlzIG5vdCBhdHRhY2hlZCB0byB0aGUgbWFpbiBHcmFwaGljc0xheWVyIHRyZWUsIHdlIG5l
ZWQgdG8gZmx1c2ggaXQgbWFudWFsbHkuCiAgICAgICAgIGlmIChtX3ZpZXdPdmVybGF5Um9vdExh
eWVyKQpAQCAtNTUzLDcgKzU1MSw5IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OnJlc3VtZVBhaW50aW5nKCkKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OnNldFZpZXdFeHBvc2VkUmVjdChPcHRpb25hbDxGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCkK
IHsKICAgICBtX3ZpZXdFeHBvc2VkUmVjdCA9IHZpZXdFeHBvc2VkUmVjdDsKLSAgICB1cGRhdGVT
Y3JvbGxlZEV4cG9zZWRSZWN0KCk7CisKKyAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBt
X3dlYlBhZ2UubWFpbkZyYW1lVmlldygpKQorICAgICAgICBmcmFtZVZpZXctPnNldFZpZXdFeHBv
c2VkUmVjdChtX3ZpZXdFeHBvc2VkUmVjdCk7CiB9CiAKIEZsb2F0UmVjdCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6ZXhwb3NlZENvbnRlbnRSZWN0KCkgY29uc3QKQEAgLTU2NywyNCAr
NTY3LDYgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2V0RXhwb3NlZENv
bnRlbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9
CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhw
b3NlZFJlY3QoKQotewotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV93ZWJQYWdlLm1haW5G
cmFtZVZpZXcoKTsKLSAgICBpZiAoIWZyYW1lVmlldykKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
bV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdCA9IG1fdmlld0V4cG9zZWRSZWN0OwotCi0jaWYgIVBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgaWYgKG1fdmlld0V4cG9zZWRSZWN0KSB7Ci0gICAgICAg
IFNjcm9sbE9mZnNldCBzY3JvbGxPZmZzZXQgPSBmcmFtZVZpZXctPnNjcm9sbE9mZnNldEZyb21Q
b3NpdGlvbihmcmFtZVZpZXctPnNjcm9sbFBvc2l0aW9uKCkpOwotICAgICAgICBtX3Njcm9sbGVk
Vmlld0V4cG9zZWRSZWN0LnZhbHVlKCkubW92ZUJ5KHNjcm9sbE9mZnNldCk7Ci0gICAgfQotI2Vu
ZGlmCi0KLSAgICBmcmFtZVZpZXctPnNldFZpZXdFeHBvc2VkUmVjdChtX3Njcm9sbGVkVmlld0V4
cG9zZWRSZWN0KTsKLX0KLQogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBk
YXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJvb2wgZmx1c2hTeW5jaHJvbm91
c2x5LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIGZlbmNlUG9ydCkKIHsKICAgICBtX2luVXBk
YXRlR2VvbWV0cnkgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGVjZjU5Y2IwMDJiMWZkNTk1YjQ4MGQ1OGU1ZGZiOTExN2NiYjc5ZDgu
LjU1MGM3NDRhN2M1ODlhNzQyMWU2YzZlYmNhMDBjMGI2NjkzN2ZkNDAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAy
MC0wNC0zMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAg
ICBCb29rcyBzb21ldGltZXMgZW5kcyB1cCB3aXRoIGJsYW5rIHBhZ2VzLCBlc3BlY2lhbGx5IGFm
dGVyIGFkanVzdGluZyBmb250IHNpemUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMTI2NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk4OTgxNDQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ZpZXdFeHBvc2VkUmVjdC5tbTog
QWRkZWQuCisgICAgICAgIChmb3JjZVJlcGFpbnRDYWxsYmFjayk6CisgICAgICAgIChURVNUKToK
KyAgICAgICAgQWRkIGEgdGVzdCBmb3IgdGhlIGZpcnN0IHByb2JsZW0sIHdoaWNoIHdvdWxkIHBy
ZXZpb3VzbHkgYXR0ZW1wdCB0byBhbGxvY2F0ZQorICAgICAgICB+OTBUQiBvZiB0aWxlcywgc3Bp
bm5pbmcgYW5kIGV4cGxvZGluZywgYW5kIG5vdyBoYXBwaWx5IGp1c3QgYWxsb2NhdGVzIGEgZmV3
LgorCiAyMDIwLTA1LTAxICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXSBFdmVyeSBydW5uaW5nIFdlYkNvbnRlbnQgcHJvY2VzcyBzaG91bGQgYmUg
Z3JhbnRlZCBhY2Nlc3MgdG8gZnJvbnRib2FyZCBzZXJ2aWNlcyB3aGVuIEFjY2Vzc2liaWxpdHkg
aXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZGRjMmUzNjAyOGJjMjZjMTUx
MjU2MmRmOWZlZTYzMzUzYTllZjU0Li41ZTU1NzVlZTRlYzdkMGI1ZDMwNjE3MGQ2OGJiZDY2ODVh
OTk4YjJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQwLDYgKzE0MCw3IEBACiAJCTJE
M0NBM0E4MjIxREY0QjQwMDg4RTgwMyAvKiBQYWdlT3ZlcmxheVBsdWdpbi5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEM0NBM0E0MjIxREYyMzkwMDg4
RTgwMyAvKiBQYWdlT3ZlcmxheVBsdWdpbi5tbSAqLzsgfTsKIAkJMkQ0Q0Y4QkQxRDgzNjBDQzAw
MDFDRThEIC8qIFdLVGh1bWJuYWlsVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJENENGOEJDMUQ4MzYwQ0MwMDAxQ0U4RCAvKiBXS1RodW1ibmFp
bFZpZXcubW0gKi87IH07CiAJCTJENTFBMEM3MUM4QkYwMEMwMDc2NUM0NSAvKiBET01IVE1MVmlk
ZW9FbGVtZW50V3JhcHBlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJENTFBMEM1MUM4QkYwMDQwMDc2NUM0NSAvKiBET01IVE1MVmlkZW9FbGVtZW50
V3JhcHBlci5tbSAqLzsgfTsKKwkJMkQ1MjA2MzUyNDVBNjAzRDAwMzM4Rjg4IC8qIFZpZXdFeHBv
c2VkUmVjdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJENTIwNjM0MjQ1QTYwM0MwMDMzOEY4OCAvKiBWaWV3RXhwb3NlZFJlY3QubW0gKi87IH07CiAJ
CTJENzAwNTk2MjFFREEwQzYwMDM0NjNDQiAvKiBUYWJPdXRPZldlYlZpZXcubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDcwMDU5NTIxRURBMEM2MDAz
NDYzQ0IgLyogVGFiT3V0T2ZXZWJWaWV3Lm1tICovOyB9OwogCQkyRDcwMDU5OTIxRURBNEQwMDAz
NDYzQ0IgLyogT2Zmc2NyZWVuV2luZG93Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkQ3MDA1OTcyMUVEQTREMDAwMzQ2M0NCIC8qIE9mZnNjcmVlbldp
bmRvdy5tbSAqLzsgfTsKIAkJMkQ3RkQxOTMyMjQxOTA4NzAwNzg4N0YxIC8qIERvY3VtZW50RWRp
dGluZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDdGRDE5MjIyNDE5MDg3MDA3ODg3RjEgLyogRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5t
bSAqLzsgfTsKQEAgLTE3MzQsNiArMTczNSw3IEBACiAJCTJEM0NBM0E0MjIxREYyMzkwMDg4RTgw
MyAvKiBQYWdlT3ZlcmxheVBsdWdpbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFBhZ2VPdmVybGF5UGx1Z2luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyRDRDRjhCQzFEODM2MENDMDAwMUNFOEQgLyogV0tUaHVtYm5haWxWaWV3Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tUaHVtYm5haWxWaWV3Lm1tOyBw
YXRoID0gV2ViS2l0L1dLVGh1bWJuYWlsVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkQ1MUEwQzUxQzhCRjAwNDAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFw
cGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTFZp
ZGVvRWxlbWVudFdyYXBwZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJENTIw
NjM0MjQ1QTYwM0MwMDMzOEY4OCAvKiBWaWV3RXhwb3NlZFJlY3QubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWV3RXhwb3NlZFJlY3QubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJENjFFQzMwMjFCMEI3NUMwMEE3RDFDQiAvKiBQZW5jaWxLaXRU
ZXN0U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlbmNpbEtpdFRlc3RTUEkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkQ2NDBCNTQxNzg3NURGRjAwQkZBRjk5IC8qIFNjcm9sbFBpbm5p
bmdCZWhhdmlvcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Ny
b2xsUGlubmluZ0JlaGF2aW9ycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
NzAwNTk1MjFFREEwQzYwMDM0NjNDQiAvKiBUYWJPdXRPZldlYlZpZXcubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUYWJPdXRPZldlYlZpZXcubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjAwLDYgKzMyMDIsNyBAQAogCQkJCTJFMTMzQjRGMjFE
NDBBRjAwMEVEMUNCMiAvKiBVc2VTZWxlY3Rpb25Bc0ZpbmRTdHJpbmcubW0gKi8sCiAJCQkJOTNF
OTQzRjExQ0QzRTg3RTAwQUMwOEMyIC8qIFZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tICovLAogCQkJ
CUNEMzA2NURGMjE2NTY4MkUwMEU4OTVERiAvKiBWaWRlb1F1YWxpdHlEaXNwbGF5Q29tcG9zaXRp
bmcubW0gKi8sCisJCQkJMkQ1MjA2MzQyNDVBNjAzQzAwMzM4Rjg4IC8qIFZpZXdFeHBvc2VkUmVj
dC5tbSAqLywKIAkJCQk2MzU2RkIyMTFFQzRFMEJBMDA0NEJGMTggLyogVmlzaWJsZUNvbnRlbnRS
ZWN0Lm1tICovLAogCQkJCTgzNzc5QzM3MUY4MkZFQjAwMDdDREE4QSAvKiBWaXNpdGVkTGlua1N0
b3JlLm1tICovLAogCQkJCTgzMEYyRTBCMjA5QTZBNzQwMEQzNkZGMSAvKiBXZWJDb250ZW50UHJv
Y2Vzc0RpZFRlcm1pbmF0ZS5tbSAqLywKQEAgLTUxODksNiArNTE5Miw3IEBACiAJCQkJN0M4M0Uw
M0ExRDBBNjAyNzAwRkVCQ0YzIC8qIFV0aWxpdGllc0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0M4M0UwQzYxRDBBNjU0RTAwRkVCQ0YzIC8qIFZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0QzMDY1RTAyMTY1NjgyRTAwRTg5NURGIC8qIFZpZGVvUXVhbGl0
eURpc3BsYXlDb21wb3NpdGluZy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTJENTIwNjM1MjQ1QTYw
M0QwMDMzOEY4OCAvKiBWaWV3RXhwb3NlZFJlY3QubW0gaW4gU291cmNlcyAqLywKIAkJCQkxMTVF
QjM0MzFFRTBCQTAzMDAzQzJDMEEgLyogVmlld3BvcnRTaXplRm9yVmlld3BvcnRVbml0cy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTYzNTZGQjIyMUVDNEUwQkEwMDQ0QkYxOCAvKiBWaXNpYmxlQ29u
dGVudFJlY3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk4Mzc3OUMzODFGODJGRUNFMDA3Q0RBOEEg
LyogVmlzaXRlZExpbmtTdG9yZS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9WaWV3RXhwb3NlZFJlY3QubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ZpZXdFeHBvc2VkUmVjdC5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kYjMwOGNjOWE4ZDViZmEzMDBlZDlmOTkyNzQ0OGM2NTBmYmYyNmIwCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9WaWV3RXhw
b3NlZFJlY3QubW0KQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZp
Zy5oIgorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdC5oIgor
I2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUGFnZS5oPgorI2lt
cG9ydCA8V2ViS2l0L1dLUGFnZVByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQ
cml2YXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKKyNpZiBQTEFURk9STShNQUMp
CisKK0BpbnRlcmZhY2UgV0tXZWJWaWV3ICgpCistIChXS1BhZ2VSZWYpX3BhZ2VGb3JUZXN0aW5n
OworQGVuZAorCitzdGF0aWMgYm9vbCBkaWRGb3JjZVJlcGFpbnQ7CisKK3N0YXRpYyB2b2lkIGZv
cmNlUmVwYWludENhbGxiYWNrKFdLRXJyb3JSZWYgZXJyb3IsIHZvaWQqKQoreworICAgIEVYUEVD
VF9OVUxMKGVycm9yKTsKKyAgICBkaWRGb3JjZVJlcGFpbnQgPSB0cnVlOworfQorCitURVNUKFdl
YktpdCwgSW5pdGlhbFRpbGVDb3ZlcmFnZVVzZXNWaWV3RXhwb3NlZFJlY3QpCit7CisgICAgUmV0
YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDUwMDAwMDAsIDUwMDAwMDApXSk7
CisgICAgW3dlYlZpZXcgX3NldENsaXBzVG9WaXNpYmxlUmVjdDpZRVNdOworICAgIFtbd2ViVmll
dyBob3N0V2luZG93XSBzZXRGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBkaXNwbGF5
Ok5PXTsKKyAgICBbd2ViVmlldyBhZGRUb1Rlc3RXaW5kb3ddOworICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisgICAgZGlkRm9yY2VSZXBhaW50ID0gZmFs
c2U7CisgICAgV0tQYWdlRm9yY2VSZXBhaW50KFt3ZWJWaWV3IF9wYWdlRm9yVGVzdGluZ10sIDAs
IGZvcmNlUmVwYWludENhbGxiYWNrKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRp
ZEZvcmNlUmVwYWludCk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTY0
Y2NiYzAzMGFhZDhhYWY5MjI0YmUzYzUyMTQxOGJhMDU4ZDQ1ZC4uZTI3OTUyYjc3NjhkOTdmOWNm
MmI1MzQ0ZmQ3MzA0OWVkNTIyNDM0YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA1LTAx
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEJvb2tz
IHNvbWV0aW1lcyBlbmRzIHVwIHdpdGggYmxhbmsgcGFnZXMsIGVzcGVjaWFsbHkgYWZ0ZXIgYWRq
dXN0aW5nIGZvbnQgc2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjExMjY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTg5ODE0ND4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRpbGVkLWRyYXdp
bmcvdGlsZS1jb3ZlcmFnZS1zY3JvbGxlZC12aWV3LWV4cG9zZWQtcmVjdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHRpbGVkLWRyYXdpbmcvdGlsZS1jb3ZlcmFnZS1zY3JvbGxlZC12
aWV3LWV4cG9zZWQtcmVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgQWRkIGEgdGVzdCBlbnN1cmlu
ZyB0aGF0IHdlIGNyZWF0ZSB0aGUgY29ycmVjdCB0aWxlcyB3aXRoIGEKKyAgICAgICAgc2Nyb2xs
ZWQgd2ViIHZpZXcgdGhhdCBhbHNvIHVzZXMgY2xpcHNUb1Zpc2libGVSZWN0PVlFUy4KKwogMjAy
MC0wNS0wMSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBb
V2ViR0wyXSBSZWZhY3RvciB0ZXhJbWFnZTJEIGFuZCB0ZXhTdWJJbWFnZTJEIHRha2luZyBJbWFn
ZUJpdG1hcCwgSW1hZ2VEYXRhLCBJbWFnZSwgQXJyYXlCdWZmZXJWaWV3CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3RpbGUtY292ZXJhZ2Utc2Nyb2xsZWQtdmlldy1leHBv
c2VkLXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy90aWxlLWNv
dmVyYWdlLXNjcm9sbGVkLXZpZXctZXhwb3NlZC1yZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kOWUzZGM5MDk1MGRkZmM4MzVkN2Q5YmM2ZDc5NjRkNjMzZmZkMmRkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy90aWxlLWNvdmVyYWdlLXNjcm9sbGVkLXZp
ZXctZXhwb3NlZC1yZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACisoR3JhcGhpY3NM
YXllcgorICAoYW5jaG9yIDAuMDAgMC4wMCkKKyAgKGJvdW5kcyA3ODUuMDAgNTExNC4wMCkKKyAg
KGNoaWxkcmVuIDEKKyAgICAoR3JhcGhpY3NMYXllcgorICAgICAgKGJvdW5kcyA3ODUuMDAgNTEx
NC4wMCkKKyAgICAgIChjb250ZW50c09wYXF1ZSAxKQorICAgICAgKHRpbGUgY2FjaGUgY292ZXJh
Z2UgMCwgNDYwOCA3ODUgeCA1MDYpCisgICAgICAodGlsZSBzaXplIDUxMiB4IDUxMikKKyAgICAg
ICh0b3AgbGVmdCB0aWxlIDAsIDkgdGlsZXMgZ3JpZCAyIHggMSkKKyAgICAgIChpbiB3aW5kb3cg
MSkKKyAgICApCisgICkKKykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2lu
Zy90aWxlLWNvdmVyYWdlLXNjcm9sbGVkLXZpZXctZXhwb3NlZC1yZWN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy90aWxlZC1kcmF3aW5nL3RpbGUtY292ZXJhZ2Utc2Nyb2xsZWQtdmlldy1leHBvc2VkLXJl
Y3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45YjBmZDFjYjk5MzhkOTc4MmZlNmQ2YTUxNGI0MmM0NGQxNjk4
MGRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy90aWxlLWNv
dmVyYWdlLXNjcm9sbGVkLXZpZXctZXhwb3NlZC1yZWN0Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAor
PCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKworICAgICAgICAgICAgLy8gIkV4cG9zZSIgdGhlIGJvdHRvbSAyMDBweCBvZiB0aGUg
dmlldy4KKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAg
IGludGVybmFscy5zZXRWaWV3RXhwb3NlZFJlY3QoMCwgMjMwMCwgODAwLCAyMDApOworCisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldFZpZXdTaXplKDgwMCwgMjUwMCk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IGRvVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIHNjcm9sbFRvKDAsIDUwMDApOworCisgICAgICAgICAg
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2xheWVycycpLmlubmVyVGV4dCA9IGludGVybmFscy5sYXllclRy
ZWVBc1RleHQoZG9jdW1lbnQsIGludGVybmFscy5MQVlFUl9UUkVFX0lOQ0xVREVTX1RJTEVfQ0FD
SEVTKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICAgICAgfSwgMCk7CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHByZSBpZD0ibGF5ZXJzIj5MYXllciB0cmVlIGdvZXMgaGVyZTwvcD4KKzxkaXYgc3R5
bGU9J2hlaWdodDogNTAwMHB4Oyc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398264</attachid>
            <date>2020-05-01 17:25:40 -0700</date>
            <delta_ts>2020-05-01 21:57:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211265-20200501172539.patch</filename>
            <type>text/plain</type>
            <size>38766</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE3MjBkYzk0ZGFlYjE1
N2MwMGEwZmNmYjk5N2RkYzU3ODlhZDAwYy4uMTViMGRmYzhjZjQ0MDQzZDViNzM4MDA3ZTNmZmE1
MThhZmJhMjhiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA0LTMwICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEJvb2tzIHNvbWV0
aW1lcyBlbmRzIHVwIHdpdGggYmxhbmsgcGFnZXMsIGVzcGVjaWFsbHkgYWZ0ZXIgYWRqdXN0aW5n
IGZvbnQgc2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjExMjY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTg5ODE0ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAg
ICAgICAgUmVuYW1lICJoYXNSZWN0Q2hhbmdlZCIgYmVjYXVzZSBpdCBvbmx5IHRlc3RzIGlmIHRo
ZSBvcHRpb25hbC1zdGF0ZSBvZiB0aGUKKyAgICAgICAgcmVjdCBoYXMgY2hhbmdlZCwgbm90IHRo
ZSBhY3R1YWwgdmFsdWUuCisKIDIwMjAtMDUtMDEgIEphY2sgTGVlICA8c2hpaGNoaWVoX2xlZUBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYW1lbmQgY2hhbmdlIGxvZyBlbnRyeSBm
b3IgcjI2MDgzMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzVlZjliMDM3NGRkYTg2ZTQ1NWEwYjUwOWQ5MWJlOGRh
OWYwNmFhYS4uZjdlMGM0Mjc2NDQ1OTQzNzUwZmFmMDg0NWQxZWJkYjQ5ZDgwMTAzYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw4NSBAQAorMjAyMC0wNC0zMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9y
dG9uQGFwcGxlLmNvbT4KKworICAgICAgICBCb29rcyBzb21ldGltZXMgZW5kcyB1cCB3aXRoIGJs
YW5rIHBhZ2VzLCBlc3BlY2lhbGx5IGFmdGVyIGFkanVzdGluZyBmb250IHNpemUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTI2NQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNTk4OTgxNDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQSBmZXcgcHJvYmxlbXM6CisKKyAgICAgICAgLSBUaGVyZSBpcyBz
aG9ydCB0aW1lIGR1cmluZyBwYWdlIGNyZWF0aW9uIHdoZXJlIGEgV0tXZWJWaWV3IGNyZWF0ZWQK
KyAgICAgICAgd2l0aCBfY2xpcHNUb1Zpc2libGVSZWN0PVlFUyB3b3VsZCBub3QgeWV0IGhhdmUg
c2VudCBpdHMgdmlld0V4cG9zZWRSZWN0CisgICAgICAgIHRvIHRoZSBXZWIgQ29udGVudCBwcm9j
ZXNzLCBhbmQgaWYgd2UgZW5kIHVwIGNvbnN0cnVjdGluZyB0aWxlcyBkdXJpbmcKKyAgICAgICAg
dGhhdCB0aW1lLCB3ZSBjYW4gbWFrZSB3YXkgdG9vIG1hbnksIGJvZ2dpbmcgZG93biB0aGUgcHJv
Y2VzcyAob3IgY3Jhc2hpbmcpLgorCisgICAgICAgIEZpeCB0aGlzIGJ5IGFsd2F5cyBrZWVwaW5n
IHRyYWNrIG9mIHRoZSB2aWV3RXhwb3NlZFJlY3QgKG9uIFdlYlBhZ2VQcm94eSwKKyAgICAgICAg
aW5zdGVhZCBvZiB0aGUgc29tZXdoYXQtbW9yZS10cmFuc2llbnQgRHJhd2luZ0FyZWFQcm94eSkg
YW5kIHNlbmRpbmcgaXQKKyAgICAgICAgdG8gdGhlIFdlYiBDb250ZW50IHByb2Nlc3MgaW4gdGhl
IFdlYlBhZ2UgY3JlYXRpb24gcGFyYW1ldGVycywgdG8gZW50aXJlbHkKKyAgICAgICAgcmVtb3Zl
IHRoaXMgd2luZG93LgorCisgICAgICAgIC0gRXZlbiB3aGVuIHRoZSB2aWV3RXhwb3NlZFJlY3Qg
c3VjY2Vzc2Z1bGx5IGdldHMgdG8gdGhlIFdlYiBDb250ZW50CisgICAgICAgIHByb2Nlc3MsIGl0
IGNhbiBzdGlsbCBlbmQgdXAgd2lsZGx5IHdyb25nOiB0aGUgRHJhd2luZ0FyZWEgd2FzIHRhc2tl
ZCB3aXRoCisgICAgICAgIHdhdGNoaW5nIHNjcm9sbGluZyBjaGFuZ2VzLCBhcHBseWluZyB0aGUg
c2Nyb2xsIG9mZnNldCB0byB0aGUgdmlld0V4cG9zZWRSZWN0LAorICAgICAgICBhbmQgcHVzaGlu
ZyBpdCB0byBGcmFtZVZpZXcgaW4gY29udGVudCBjb29yZGluYXRlcy4KKworICAgICAgICBJdCB0
dXJucyBvdXQgdGhhdCB0aGlzIHdhcyBhbGwgdW5uZWNlc3NhcnksIGFzIHdlIG5lZWQgdmlld0V4
cG9zZWRSZWN0CisgICAgICAgIGluIHJvb3QgdmlldyBjb29yZGluYXRlcyAoc2FtZSBzcGFjZSBh
cyB2aXNpYmxlQ29udGVudFJlY3QsIHdoaWNoIHdlCisgICAgICAgIGludGVyc2VjdCBpdCB3aXRo
KSwgYW5kIHdlIGp1c3QgZGlkbid0IG5vdGljZSBiZWNhdXNlIGFsbCBjbGllbnRzIG9mCisgICAg
ICAgIF9jbGlwc1RvVmlzaWJsZVJlY3Q6IGV4cGFuZCB0aGUgdmlldyB0byBpdHMgbGF5b3V0IHNp
emUgYW5kIGluc2VydAorICAgICAgICBhIHNjcm9sbGluZyB2aWV3IG91dHNpZGUgdGhlIHdlYiB2
aWV3LCBhbmQgc28gZG9uJ3QgdXNlIG91ciBzY3JvbGxpbmcuCisKKyAgICAgICAgQXZvaWQgdGhp
cyBjb252ZXJzaW9uIGFuZCBjb21wbGV4aXR5IGVudGlyZWx5OyBJIHRlc3RlZCBNYWlsIGFuZCBC
b29rcworICAgICAgICB3aGVyZSB0aGVyZSBpcyBubyBpbXBhY3QgKG90aGVyIHRoYW4gZml4aW5n
IHRoZSBvcmlnaW5hbCBidWcpLCBhbmQgYWxzbworICAgICAgICBhIGN1c3RvbSB0ZXN0IGFwcCB3
aXRoIGEgc2Nyb2xsYWJsZSBXS1dlYlZpZXcgaW5zaWRlIGEgTlNTY3JvbGxWaWV3LAorICAgICAg
ICB3aGljaCBpbXByb3ZlZCBzaWduaWZpY2FudGx5LgorCisgICAgICAgICogU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisgICAgICAgIFBsdW1iIHZpZXcgZXhwb3NlZCByZWN0IHZpYSBXZWJQ
YWdlIGNyZWF0aW9uIHBhcmFtZXRlcnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVWaWV3RXhw
b3NlZFJlY3QpOgorICAgICAgICBTZW5kIHZpZXdFeHBvc2VkUmVjdCBjaGFuZ2VzIHRvIFdlYlBh
Z2VQcm94eSBpbnN0ZWFkIG9mIERyYXdpbmdBcmVhUHJveHkuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvRHJhd2luZ0FyZWFQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJv
eHk6OmRpZENoYW5nZVZpZXdFeHBvc2VkUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdB
cmVhUHJveHk6OnZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKToKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWFQcm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpE
cmF3aW5nQXJlYVByb3h5Ojp2aWV3RXhwb3NlZFJlY3QgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eTo6ZGlkQ2hhbmdlVmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aW5kaWNhdG9yTG9jYXRpb24g
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHk6OnNldFZpZXdFeHBvc2VkUmVjdCk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlld0V4cG9zZWRSZWN0IGNv
bnN0KToKKyAgICAgICAgTWFpbnRhaW4gdmlld0V4cG9zZWRSZWN0IG9uIFdlYlBhZ2VQcm94eSBp
bnN0ZWFkIG9mIERyYXdpbmdBcmVhUHJveHksCisgICAgICAgIHNvIHRoYXQgd2UgY2FuIGFsd2F5
cyBzdG9yZSBpdCBldmVuIGlmIHdlIGRvbid0IGhhdmUgYSBEcmF3aW5nQXJlYVByb3h5IHlldAor
ICAgICAgICAob3IgY2hhbmdlIERyYXdpbmdBcmVhUHJveGllcykgYW5kIGNhbiBzZW5kIGl0IGlu
IFdlYlBhZ2UgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYTo6c2V0Vmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZyk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRhdGVTY3JvbGxlZEV4cG9z
ZWRSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVw
ZGF0ZVJlbmRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6c2Nyb2xsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3Qp
OiBEZWxldGVkLgorICAgICAgICBQbHVtYiB2aWV3RXhwb3NlZFJlY3QgZGlyZWN0bHkgdG8gRnJh
bWVWaWV3LCBpbnN0ZWFkIG9mIHRyeWluZyB0byBhcHBseQorICAgICAgICB0aGUgcm9vdCB2aWV3
IC0+IGNvbnRlbnRzIG1hcHBpbmcgb3Vyc2VsdmVzIGFuZCBwdXNoaW5nIHVwZGF0ZXMuCisKIDIw
MjAtMDUtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
XSBQcm9jZXNzVGhyb3R0bGVyIGZhaWxzIHRvIHJlLXRha2UgUHJvY2Vzc0Fzc2VydGlvbiBpZiB0
aGUgcHJldmlvdXMgb25lIHdhcyBpbnZhbGlkYXRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CmluZGV4IDUxZWU1YmY2OGNiMWZlZDIzMDk0MDAwYTFmOWZkZDBkMDZjZDM3NDcuLjQxY2ZlZjZm
MWMxMjRhMTU3N2E1ZmI3MzU5MGU5MDY1YmUzZjcyOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKQEAgLTUzNzEsNyArNTM3MSw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRWaWV3RXhwb3Nl
ZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiAKICAgICBMT0dfV0lU
SF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIkZyYW1lVmlldyAiIDw8IHRoaXMgPDwgIiBz
ZXRWaWV3RXhwb3NlZFJlY3QgIiA8PCAodmlld0V4cG9zZWRSZWN0ID8gdmlld0V4cG9zZWRSZWN0
LnZhbHVlKCkgOiBGbG9hdFJlY3QoKSkpOwogCi0gICAgYm9vbCBoYXNSZWN0Q2hhbmdlZCA9ICFt
X3ZpZXdFeHBvc2VkUmVjdCA9PSAhdmlld0V4cG9zZWRSZWN0OworICAgIGJvb2wgaGFzUmVjdEV4
aXN0ZW5jZUNoYW5nZWQgPSAhbV92aWV3RXhwb3NlZFJlY3QgPT0gIXZpZXdFeHBvc2VkUmVjdDsK
ICAgICBtX3ZpZXdFeHBvc2VkUmVjdCA9IHZpZXdFeHBvc2VkUmVjdDsKIAogICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgc3VwcG9ydCBjbGlwcGluZyB0byB0aGUgZXhwb3NlZCByZWN0IGZvciBzdWJm
cmFtZXMgYXMgd2VsbC4KQEAgLTUzNzksNyArNTM3OSw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRW
aWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChUaWxlZEJhY2tpbmcqIHRpbGVkQmFja2luZyA9IHRoaXMt
PnRpbGVkQmFja2luZygpKSB7Ci0gICAgICAgIGlmIChoYXNSZWN0Q2hhbmdlZCkKKyAgICAgICAg
aWYgKGhhc1JlY3RFeGlzdGVuY2VDaGFuZ2VkKQogICAgICAgICAgICAgdXBkYXRlVGlsZWRCYWNr
aW5nQWRhcHRpdmVTaXppbmcoKTsKICAgICAgICAgYWRqdXN0VGlsZWRCYWNraW5nQ292ZXJhZ2Uo
KTsKICAgICAgICAgdGlsZWRCYWNraW5nLT5zZXRUaWxlZFNjcm9sbGluZ0luZGljYXRvclBvc2l0
aW9uKG1fdmlld0V4cG9zZWRSZWN0ID8gbV92aWV3RXhwb3NlZFJlY3QudmFsdWUoKS5sb2NhdGlv
bigpIDogRmxvYXRQb2ludCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVGV4
dEluZGljYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1RleHRJbmRpY2F0b3IuY3BwCmlu
ZGV4IGFlMzRiM2I4N2Y4OGYwYjAxYTkyYmFiYTQ2NzdmMTdhOTIyZWMzNWMuLjAyN2M3ZmM3YTIz
MDVkNjRjZjg3MjgzOWQ1YmVmYTU1NzlkODEzZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvVGV4dEluZGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9UZXh0SW5k
aWNhdG9yLmNwcApAQCAtMzM1LDcgKzMzNSw3IEBAIHN0YXRpYyBib29sIGluaXRpYWxpemVJbmRp
Y2F0b3IoVGV4dEluZGljYXRvckRhdGEmIGRhdGEsIEZyYW1lJiBmcmFtZSwgY29uc3QgU2ltCiAg
ICAgY29udGVudHNDbGlwUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoZnJhbWVWaWV3LT5leHBvc2Vk
Q29udGVudFJlY3QoKSk7CiAjZWxzZQogICAgIGlmIChhdXRvIHZpZXdFeHBvc2VkUmVjdCA9IGZy
YW1lVmlldy0+dmlld0V4cG9zZWRSZWN0KCkpCi0gICAgICAgIGNvbnRlbnRzQ2xpcFJlY3QgPSBm
cmFtZVZpZXctPnZpZXdUb0NvbnRlbnRzKGVuY2xvc2luZ0ludFJlY3QoKnZpZXdFeHBvc2VkUmVj
dCkpOworICAgICAgICBjb250ZW50c0NsaXBSZWN0ID0gZW5jbG9zaW5nSW50UmVjdCgqdmlld0V4
cG9zZWRSZWN0KTsKICAgICBlbHNlCiAgICAgICAgIGNvbnRlbnRzQ2xpcFJlY3QgPSBmcmFtZVZp
ZXctPnZpc2libGVDb250ZW50UmVjdCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDEwMmUyOWYyYmNkNGE4
NGQ4MWI5Y2Q4NjNhNzU3NWY1MDlmYjFhNDAuLjdlY2Y5Y2FlY2U4MjgxNzhhN2M5ZGM4MmE1ZDEy
ODljODk5Mjc2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckNvbXBvc2l0b3IuY3BwCkBAIC01MTQsOCArNTE0LDggQEAgRmxvYXRSZWN0IFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dmlzaWJsZVJlY3RGb3JMYXllckZsdXNoaW5nKCkgY29uc3QKICAgICAv
LyBIYXZpbmcgYSBtX3Njcm9sbGVkQ29udGVudHNMYXllciBpbmRpY2F0ZXMgdGhhdCB3ZSdyZSBk
b2luZyBzY3JvbGxpbmcgdmlhIEdyYXBoaWNzTGF5ZXJzLgogICAgIEZsb2F0UmVjdCB2aXNpYmxl
UmVjdCA9IG1fc2Nyb2xsZWRDb250ZW50c0xheWVyID8gRmxvYXRSZWN0KHsgfSwgZnJhbWVWaWV3
LnNpemVGb3JWaXNpYmxlQ29udGVudCgpKSA6IGZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3Qo
KTsKIAotICAgIGlmIChmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkpCi0gICAgICAgIHZpc2li
bGVSZWN0LmludGVyc2VjdChmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkudmFsdWUoKSk7Cisg
ICAgaWYgKGF1dG8gZXhwb3NlZFJlY3QgPSBmcmFtZVZpZXcudmlld0V4cG9zZWRSZWN0KCkpCisg
ICAgICAgIHZpc2libGVSZWN0LmludGVyc2VjdCgqZXhwb3NlZFJlY3QpOwogCiAgICAgcmV0dXJu
IHZpc2libGVSZWN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGRjMTE1MmY4ZWIxOWVhNTA2MDg2ZDk3OGM3
MDE3Yzg3MjI5OGQ0N2EuLjhjODBkZTJmMzJlYzQ2ODA5ZmZkMGUzMDA3Zjc3NGJmYTQ4NTFmZTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCkBAIC00NCw2ICs0NCw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IHVuZGVy
bGF5Q29sb3I7CiAgICAgZW5jb2RlciA8PCB1c2VGaXhlZExheW91dDsKICAgICBlbmNvZGVyIDw8
IGZpeGVkTGF5b3V0U2l6ZTsKKyAgICBlbmNvZGVyIDw8IHZpZXdFeHBvc2VkUmVjdDsKICAgICBl
bmNvZGVyIDw8IGFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOwogICAgIGVuY29kZXIgPDwg
YWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShwYWdp
bmF0aW9uTW9kZSk7CkBAIC0xODgsNiArMTg5LDggQEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2QK
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMuZml4ZWRMYXlvdXRTaXplKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudmlld0V4cG9zZWRSZWN0KSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIpKQogICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hbHdheXNTaG93
c1ZlcnRpY2FsU2Nyb2xsZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDM3ODJhNDEyYTdmY2ZlNmE3MDA4YTlhNDNiNWJkNDgw
ZDYzZWZjZjAuLmNmZjMxMzU1YzFhMjYxOGFhODM3MmM1MjdiODE0NjliYzQ2ZTQxZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTg0LDYgKzg0LDggQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJv
b2wgdXNlRml4ZWRMYXlvdXQ7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBmaXhlZExheW91dFNpemU7
CiAKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBvc2VkUmVjdDsKKwog
ICAgIGJvb2wgYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXI7CiAgICAgYm9vbCBhbHdheXNT
aG93c1ZlcnRpY2FsU2Nyb2xsZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KaW5kZXggYTg4N2NiYWQzZjMwZTIzOTc0NGEyMDUxMTcwMzNjYzVjOTVi
NDcxMi4uMGNlMzM3NDVlZWEwMTFjZDlmMThiZmFhNjJlZmQxMGE4MjIzMzZmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE5MDIsOCArMTkw
Miw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpCiAgICAgaWYg
KG1fdXNlQ29udGVudFByZXBhcmF0aW9uUmVjdEZvclZpc2libGVSZWN0KQogICAgICAgICBleHBv
c2VkUmVjdCA9IENHUmVjdFVuaW9uKG1fY29udGVudFByZXBhcmF0aW9uUmVjdCwgZXhwb3NlZFJl
Y3QpOwogCi0gICAgaWYgKGF1dG8gZHJhd2luZ0FyZWEgPSBtX3BhZ2UtPmRyYXdpbmdBcmVhKCkp
Ci0gICAgICAgIGRyYXdpbmdBcmVhLT5zZXRWaWV3RXhwb3NlZFJlY3QobV9jbGlwc1RvVmlzaWJs
ZVJlY3QgPyBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KGV4cG9zZWRSZWN0KSA6IFdURjo6
bnVsbG9wdCk7CisgICAgbV9wYWdlLT5zZXRWaWV3RXhwb3NlZFJlY3QobV9jbGlwc1RvVmlzaWJs
ZVJlY3QgPyBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KGV4cG9zZWRSZWN0KSA6IFdURjo6
bnVsbG9wdCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldENsaXBzVG9WaXNpYmxlUmVjdChi
b29sIGNsaXBzVG9WaXNpYmxlUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0RyYXdpbmdBcmVhUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eS5jcHAKaW5kZXggOWU0NmZjYTAzOTQyMmY3YzZjZTdhYmRmOGMyNjBjOTI4YjRj
NjYwMy4uZDhmYTUzODE0ZDNjMmQxNTAzYzQ2ZDU1Y2U3NDA5ODhhZWJhMDk4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5jcHAKQEAgLTkxLDEzICs5MSwx
MSBAQCBib29sIERyYXdpbmdBcmVhUHJveHk6OnNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVlX3B0cjxJ
UEM6OkVuY29kZXI+IGVuY29kZXIsIE9wdGlvbgogfQogCiAjaWYgUExBVEZPUk0oTUFDKQotdm9p
ZCBEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6
RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QpCit2b2lkIERyYXdpbmdBcmVhUHJveHk6OmRpZENo
YW5nZVZpZXdFeHBvc2VkUmVjdCgpCiB7CiAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5u
aW5nUHJvY2VzcygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3ZpZXdFeHBvc2VkUmVjdCA9
IHZpZXdFeHBvc2VkUmVjdDsKLQogICAgIGlmICghbV92aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGlt
ZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV92aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXIuc3Rh
cnRPbmVTaG90KDBfcyk7CiB9CkBAIC0xMDcsMTEgKzEwNSwxMiBAQCB2b2lkIERyYXdpbmdBcmVh
UHJveHk6OnZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKCkKICAgICBpZiAoIW1fd2Vi
UGFnZVByb3h5Lmhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
IChtX3ZpZXdFeHBvc2VkUmVjdCA9PSBtX2xhc3RTZW50Vmlld0V4cG9zZWRSZWN0KQorICAgIGF1
dG8gdmlld0V4cG9zZWRSZWN0ID0gbV93ZWJQYWdlUHJveHkudmlld0V4cG9zZWRSZWN0KCk7Cisg
ICAgaWYgKHZpZXdFeHBvc2VkUmVjdCA9PSBtX2xhc3RTZW50Vmlld0V4cG9zZWRSZWN0KQogICAg
ICAgICByZXR1cm47CiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6U2V0Vmlld0V4
cG9zZWRSZWN0KG1fdmlld0V4cG9zZWRSZWN0KSk7Ci0gICAgbV9sYXN0U2VudFZpZXdFeHBvc2Vk
UmVjdCA9IG1fdmlld0V4cG9zZWRSZWN0OworICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVh
OjpTZXRWaWV3RXhwb3NlZFJlY3Qodmlld0V4cG9zZWRSZWN0KSk7CisgICAgbV9sYXN0U2VudFZp
ZXdFeHBvc2VkUmVjdCA9IHZpZXdFeHBvc2VkUmVjdDsKIH0KICNlbmRpZiAvLyBQTEFURk9STShN
QUMpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCBi
MGE4NTcxNjc5ZDY2YmJkZTFmMzgwYTExNDc5N2I4OGFiMWY0NGY4Li41OWNkZmRhZmFiMWQ4NWVh
M2E1YWVjYjNjZDIyOTNlNmRmYjFlYjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eS5oCkBAIC04OSw4ICs4OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgY29tbWl0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQpIHsgfQog
CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3Qo
T3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0Pik7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdFeHBvc2VkUmVj
dDsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3RXhwb3NlZFJlY3QoKTsKICAgICB2
b2lkIHZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKCk7CiAjZW5kaWYKIApAQCAtMTUz
LDcgKzE1Miw2IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgUnVuTG9vcDo6
VGltZXI8RHJhd2luZ0FyZWFQcm94eT4gbV92aWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXI7Ci0g
ICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKICAgICBP
cHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IG1fbGFzdFNlbnRWaWV3RXhwb3NlZFJlY3Q7CiAj
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkuaAppbmRleCA1NTY1OTFlNzE1Y2UyYjRkN2M1NTNlMGU5NTgw
MjQ4N2FjN2ZhMDg1Li44MWMxYTEyMTVkNGI5MWUxMWIyMzRjZGQyNzgzYjljOTAxZTk2OGI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKQEAgLTcx
LDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdp
bmcoV1RGOjpGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJikgb3ZlcnJpZGU7
CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRSZWN0Pikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRDaGFuZ2VWaWV3
RXhwb3NlZFJlY3QoKSBvdmVycmlkZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KaW5k
ZXggNGE1MGI4NTlhYWQ5M2M0NTg2NTVmNzMwZjM2YTMxN2JhYTQzNDE0My4uZDU0M2E0YjY2MzUy
ODcyNDhhZDA1NWM4ZDI0OWNiYjAwNDUyOTBjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHku
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KQEAgLTI3NSw5ICsyNzUsOSBAQCB2b2lkIFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5kKHVp
bnQ2NF90IGxheWVySQogc3RhdGljIGNvbnN0IGZsb2F0IGluZGljYXRvckluc2V0ID0gMTA7CiAK
ICNpZiBQTEFURk9STShNQUMpCi12b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6
OnNldFZpZXdFeHBvc2VkUmVjdChPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHZpZXdFeHBv
c2VkUmVjdCkKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlkQ2hhbmdl
Vmlld0V4cG9zZWRSZWN0KCkKIHsKLSAgICBEcmF3aW5nQXJlYVByb3h5OjpzZXRWaWV3RXhwb3Nl
ZFJlY3Qodmlld0V4cG9zZWRSZWN0KTsKKyAgICBEcmF3aW5nQXJlYVByb3h5OjpkaWRDaGFuZ2VW
aWV3RXhwb3NlZFJlY3QoKTsKICAgICB1cGRhdGVEZWJ1Z0luZGljYXRvclBvc2l0aW9uKCk7CiB9
CiAjZW5kaWYKQEAgLTI5Myw4ICsyOTMsOCBAQCBGbG9hdFBvaW50IFJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHk6OmluZGljYXRvckxvY2F0aW9uKCkgY29uc3QKICAgICAgICAgdGlsZWRN
YXBMb2NhdGlvbiArPSBGbG9hdFNpemUoYWJzb2x1dGVJbnNldCwgYWJzb2x1dGVJbnNldCk7CiAj
ZWxzZQogICAgICAgICBGbG9hdFBvaW50IHRpbGVkTWFwTG9jYXRpb247Ci0gICAgICAgIGlmICh2
aWV3RXhwb3NlZFJlY3QoKSkKLSAgICAgICAgICAgIHRpbGVkTWFwTG9jYXRpb24gPSB2aWV3RXhw
b3NlZFJlY3QoKS52YWx1ZSgpLmxvY2F0aW9uKCk7CisgICAgICAgIGlmIChhdXRvIHZpZXdFeHBv
c2VkUmVjdCA9IG1fd2ViUGFnZVByb3h5LnZpZXdFeHBvc2VkUmVjdCgpKQorICAgICAgICAgICAg
dGlsZWRNYXBMb2NhdGlvbiA9IHZpZXdFeHBvc2VkUmVjdC0+bG9jYXRpb24oKTsKIAogICAgICAg
ICB0aWxlZE1hcExvY2F0aW9uICs9IEZsb2F0U2l6ZShpbmRpY2F0b3JJbnNldCwgaW5kaWNhdG9y
SW5zZXQpOwogICAgICAgICBmbG9hdCBzY2FsZSA9IDEgLyBtX3dlYlBhZ2VQcm94eS5wYWdlU2Nh
bGVGYWN0b3IoKTsKQEAgLTM2NCw4ICszNjQsOCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHk6OnVwZGF0ZURlYnVnSW5kaWNhdG9yKEludFNpemUgY29udGVudHNTaXplLAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIHNjYWxlZEV4cG9zZWRSZWN0ID0gbV93
ZWJQYWdlUHJveHkuZXhwb3NlZENvbnRlbnRSZWN0KCk7CiAjZWxzZQotICAgICAgICBpZiAodmll
d0V4cG9zZWRSZWN0KCkpCi0gICAgICAgICAgICBzY2FsZWRFeHBvc2VkUmVjdCA9IHZpZXdFeHBv
c2VkUmVjdCgpLnZhbHVlKCk7CisgICAgICAgIGlmIChhdXRvIHZpZXdFeHBvc2VkUmVjdCA9IG1f
d2ViUGFnZVByb3h5LnZpZXdFeHBvc2VkUmVjdCgpKQorICAgICAgICAgICAgc2NhbGVkRXhwb3Nl
ZFJlY3QgPSAqdmlld0V4cG9zZWRSZWN0OwogICAgICAgICBmbG9hdCBzY2FsZSA9IDEgLyBtX3dl
YlBhZ2VQcm94eS5wYWdlU2NhbGVGYWN0b3IoKTsKICAgICAgICAgc2NhbGVkRXhwb3NlZFJlY3Qu
c2NhbGUoc2NhbGUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAppbmRleCA5MTEwNThkZmUxODgyNDBiYjMwNDE0OGU5NDg3NTU2YjE5MWMxN2VjLi5iZjQw
MWY4OTIwZTNhMGVkMTI2Mjg1YmU1MDE5YjA0MjUzYTI4N2I2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTM3NzgsNiArMzc3OCwxOSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6c2V0Rml4ZWRMYXlvdXRTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Rml4ZWRMYXlvdXRTaXplKHNpemUpKTsKIH0KIAordm9p
ZCBXZWJQYWdlUHJveHk6OnNldFZpZXdFeHBvc2VkUmVjdChPcHRpb25hbDxXZWJDb3JlOjpGbG9h
dFJlY3Q+IHZpZXdFeHBvc2VkUmVjdCkKK3sKKyAgICBpZiAobV92aWV3RXhwb3NlZFJlY3QgPT0g
dmlld0V4cG9zZWRSZWN0KQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZpZXdFeHBvc2VkUmVj
dCA9IHZpZXdFeHBvc2VkUmVjdDsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAobV9kcmF3
aW5nQXJlYSkKKyAgICAgICAgbV9kcmF3aW5nQXJlYS0+ZGlkQ2hhbmdlVmlld0V4cG9zZWRSZWN0
KCk7CisjZW5kaWYKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldEFsd2F5c1Nob3dzSG9yaXpv
bnRhbFNjcm9sbGVyKGJvb2wgYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIpCiB7CiAgICAg
aWYgKGFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyID09IG1fYWx3YXlzU2hvd3NIb3Jpem9u
dGFsU2Nyb2xsZXIpCkBAIC03NzE2LDYgKzc3MjksNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJv
YwogICAgIHBhcmFtZXRlcnMudW5kZXJsYXlDb2xvciA9IG1fdW5kZXJsYXlDb2xvcjsKICAgICBw
YXJhbWV0ZXJzLnVzZUZpeGVkTGF5b3V0ID0gbV91c2VGaXhlZExheW91dDsKICAgICBwYXJhbWV0
ZXJzLmZpeGVkTGF5b3V0U2l6ZSA9IG1fZml4ZWRMYXlvdXRTaXplOworICAgIHBhcmFtZXRlcnMu
dmlld0V4cG9zZWRSZWN0ID0gbV92aWV3RXhwb3NlZFJlY3Q7CiAgICAgcGFyYW1ldGVycy5hbHdh
eXNTaG93c0hvcml6b250YWxTY3JvbGxlciA9IG1fYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xs
ZXI7CiAgICAgcGFyYW1ldGVycy5hbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXIgPSBtX2Fsd2F5
c1Nob3dzVmVydGljYWxTY3JvbGxlcjsKICAgICBwYXJhbWV0ZXJzLnN1cHByZXNzU2Nyb2xsYmFy
QW5pbWF0aW9ucyA9IG1fc3VwcHJlc3NTY3JvbGxiYXJBbmltYXRpb25zOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiNWNiY2U1NzlmNDY4OWM4MGU0MjQwNDI4ZDY2
MDlkYTE4MDQ0NDA3Li4zYjQxMjlmZTE2YjBmOGZmZmU0YjFjOGMxOTAwODM3YjRjN2VjZWI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtOTk4LDYgKzk5OCw5IEBA
IHB1YmxpYzoKICAgICBib29sIHVzZUZpeGVkTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV91c2VG
aXhlZExheW91dDsgfTsKICAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBmaXhlZExheW91dFNp
emUoKSBjb25zdCB7IHJldHVybiBtX2ZpeGVkTGF5b3V0U2l6ZTsgfTsKIAorICAgIHZvaWQgc2V0
Vmlld0V4cG9zZWRSZWN0KE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4pOworICAgIE9wdGlv
bmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KCkgY29uc3QgeyByZXR1cm4g
bV92aWV3RXhwb3NlZFJlY3Q7IH0KKwogICAgIHZvaWQgc2V0QWx3YXlzU2hvd3NIb3Jpem9udGFs
U2Nyb2xsZXIoYm9vbCk7CiAgICAgdm9pZCBzZXRBbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXIo
Ym9vbCk7CiAgICAgYm9vbCBhbHdheXNTaG93c0hvcml6b250YWxTY3JvbGxlcigpIGNvbnN0IHsg
cmV0dXJuIG1fYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXI7IH0KQEAgLTI0ODgsNiArMjQ5
MSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fdXNlRml4ZWRMYXlvdXQgeyBmYWxzZSB9Owog
ICAgIFdlYkNvcmU6OkludFNpemUgbV9maXhlZExheW91dFNpemU7CisgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6RmxvYXRSZWN0PiBtX3ZpZXdFeHBvc2VkUmVjdDsKIAogICAgIGJvb2wgbV9hbHdheXNT
aG93c0hvcml6b250YWxTY3JvbGxlciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2Fsd2F5c1Nob3dz
VmVydGljYWxTY3JvbGxlciB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IDE2NDg5MWExZGY5Yzc1ZWMxNDhkOTJh
OGM0ODA0MDBhNzNlMDdlNDQuLjFhYzM5NDQzNDQ2ZTE3YTk4MzUzZmI5MjM5YjI3MmQ3YzQ5MjVl
MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYS5oCkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBmb3JjZVJlcGFpbnRB
c3luYyhDYWxsYmFja0lEKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdm9pZCBz
ZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0Pikgb3ZlcnJpZGU7
Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0OyB9CisgICAgT3B0
aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3NlZFJlY3QoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX3ZpZXdFeHBvc2VkUmVjdDsgfQogCiAgICAgdm9pZCBhY2NlbGVyYXRlZEFu
aW1hdGlvbkRpZFN0YXJ0KHVpbnQ2NF90IGxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5LCBNb25v
dG9uaWNUaW1lIHN0YXJ0VGltZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBhY2NlbGVyYXRlZEFuaW1h
dGlvbkRpZEVuZCh1aW50NjRfdCBsYXllcklELCBjb25zdCBTdHJpbmcmIGtleSkgb3ZlcnJpZGU7
CkBAIC0xMDgsNyArMTA4LDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgYWRkTWlsZXN0b25lc1Rv
RGlzcGF0Y2goT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pIG92ZXJyaWRlOwog
Ci0gICAgdm9pZCB1cGRhdGVTY3JvbGxlZEV4cG9zZWRSZWN0KCk7CiAgICAgdm9pZCB1cGRhdGVS
b290TGF5ZXJzKCk7CiAKICAgICB2b2lkIGFkZENvbW1pdEhhbmRsZXJzKCk7CkBAIC0xNDUsNyAr
MTQ0LDYgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fdmlld1NpemU7CiAKICAg
ICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IG1fdmlld0V4cG9zZWRSZWN0OwotICAgIE9w
dGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdDsKIAog
ICAgIFdlYkNvcmU6OlRpbWVyIG1fdXBkYXRlUmVuZGVyaW5nVGltZXI7CiAgICAgYm9vbCBtX2lz
UmVuZGVyaW5nU3VzcGVuZGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCAxMzUzZjFiZmU5MjY1NDg5Y2Ez
MTNhMGFiZjllMDA3N2NmNWRlZTczLi5iNzc5ODI3YmJhZTMwOWU5ZTBiMWY1YmJiODRkZWI4MWQw
MWYxZjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhLm1tCkBAIC03Myw2ICs3Myw5IEBAIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYShXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBXCiAg
ICAgLy8gRGlzcGxheUlEcyBsZXNzIGxpa2VseSwgaXQgaXMgbm90IGVudGlyZWx5IHNhZmUgdG8g
aGF2ZSBhIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhIGFuZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYQogICAgIC8vIGNvZWV4aXN0IGluIHRoZSBzYW1lIHByb2Nlc3MuCiAgICAgd2Vi
UGFnZS53aW5kb3dTY3JlZW5EaWRDaGFuZ2Uoc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46
Om1heCgpIC0gd2ViUGFnZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CisKKyAgICBpZiAoYXV0
byB2aWV3RXhwb3NlZFJlY3QgPSBwYXJhbWV0ZXJzLnZpZXdFeHBvc2VkUmVjdCkKKyAgICAgICAg
c2V0Vmlld0V4cG9zZWRSZWN0KHZpZXdFeHBvc2VkUmVjdCk7CiB9CiAKIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhOjp+UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEoKQpAQCAtMjI3LDcgKzIz
MCw5IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFjY2VsZXJhdGVkQW5pbWF0
aW9uRGlkRW5kKHVpbnQ2NF90IGxheWVySUQsIGNvCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhOjpzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2
aWV3RXhwb3NlZFJlY3QpCiB7CiAgICAgbV92aWV3RXhwb3NlZFJlY3QgPSB2aWV3RXhwb3NlZFJl
Y3Q7Ci0gICAgdXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpOworCisgICAgaWYgKEZyYW1lVmll
dyogZnJhbWVWaWV3ID0gbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKSkKKyAgICAgICAgZnJhbWVW
aWV3LT5zZXRWaWV3RXhwb3NlZFJlY3QobV92aWV3RXhwb3NlZFJlY3QpOwogfQogCiBXZWJDb3Jl
OjpGbG9hdFJlY3QgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmV4cG9zZWRDb250ZW50UmVj
dCgpIGNvbnN0CkBAIC0yNTEsMjIgKzI1Niw2IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWE6OnNldEV4cG9zZWRDb250ZW50UmVjdChjb25zdCBGbG9hdFJlY3QmIGV4cG9zZWRDCiAg
ICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAotdm9pZCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6dXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpCi17Ci0gICAgRnJhbWVWaWV3
KiBmcmFtZVZpZXcgPSBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpOwotICAgIGlmICghZnJhbWVW
aWV3KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0ID0g
bV92aWV3RXhwb3NlZFJlY3Q7Ci0KLSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpZiAo
bV92aWV3RXhwb3NlZFJlY3QpCi0gICAgICAgIG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QudmFs
dWUoKS5tb3ZlQnkoZnJhbWVWaWV3LT5zY3JvbGxPZmZzZXQoKSk7Ci0jZW5kaWYKLQotICAgIGZy
YW1lVmlldy0+c2V0Vmlld0V4cG9zZWRSZWN0KG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QpOwot
fQotCiBUaWxlZEJhY2tpbmcqIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjptYWluRnJhbWVU
aWxlZEJhY2tpbmcoKSBjb25zdAogewogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV93ZWJQ
YWdlLm1haW5GcmFtZVZpZXcoKTsKQEAgLTMzMyw4ICszMjIsOCBAQCB2b2lkIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhOjp1cGRhdGVSZW5kZXJpbmcoKQogICAgIG1fd2ViUGFnZS51cGRhdGVS
ZW5kZXJpbmcoKTsKIAogICAgIEZsb2F0UmVjdCB2aXNpYmxlUmVjdChGbG9hdFBvaW50KCksIG1f
dmlld1NpemUpOwotICAgIGlmIChtX3Njcm9sbGVkVmlld0V4cG9zZWRSZWN0KQotICAgICAgICB2
aXNpYmxlUmVjdC5pbnRlcnNlY3QobV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdC52YWx1ZSgpKTsK
KyAgICBpZiAoYXV0byBleHBvc2VkUmVjdCA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCktPnZp
ZXdFeHBvc2VkUmVjdCgpKQorICAgICAgICB2aXNpYmxlUmVjdC5pbnRlcnNlY3QoKmV4cG9zZWRS
ZWN0KTsKIAogICAgIGFkZENvbW1pdEhhbmRsZXJzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLmgKaW5kZXggODhhNGY5NWIwYTljNjY5MDBhYTU0ZGNmNmFhNDBiZDg4
NmJmODRkMi4uZGIwNGI1MDVmZWEyMGVkNzMzMzE5NjU4ZmUxOTQ0Yjg0ZTYzNTBmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHJp
dmF0ZToKICAgICAvLyBEcmF3aW5nQXJlYQogICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHNjcm9sbFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSkgb3ZlcnJpZGUgeyB9CiAKICAgICB2
b2lkIGZvcmNlUmVwYWludCgpIG92ZXJyaWRlOwogICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmMo
Q2FsbGJhY2tJRCkgb3ZlcnJpZGU7CkBAIC03Miw3ICs3Miw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBtYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92
ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRWaWV3RXhwb3NlZFJlY3QoT3B0aW9uYWw8V2ViQ29yZTo6
RmxvYXRSZWN0Pikgb3ZlcnJpZGU7Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2
aWV3RXhwb3NlZFJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Njcm9sbGVkVmlld0V4
cG9zZWRSZWN0OyB9CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB2aWV3RXhwb3Nl
ZFJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3ZpZXdFeHBvc2VkUmVjdDsgfQogCiAg
ICAgV2ViQ29yZTo6RmxvYXRSZWN0IGV4cG9zZWRDb250ZW50UmVjdCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZvaWQgc2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYpIG92ZXJyaWRlOwpAQCAtMTI1LDcgKzEyNSw2IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6
VGlsZWRCYWNraW5nKiBtYWluRnJhbWVUaWxlZEJhY2tpbmcoKSBjb25zdDsKICAgICB2b2lkIHVw
ZGF0ZURlYnVnSW5mb0xheWVyKGJvb2wgc2hvd0xheWVyKTsKIAotICAgIHZvaWQgdXBkYXRlU2Ny
b2xsZWRFeHBvc2VkUmVjdCgpOwogICAgIHZvaWQgc2NhbGVWaWV3VG9GaXREb2N1bWVudElmTmVl
ZGVkKCk7CiAKICAgICB2b2lkIHNlbmRQZW5kaW5nTmV3bHlSZWFjaGVkUGFpbnRpbmdNaWxlc3Rv
bmVzKCk7CkBAIC0xNDUsNyArMTQ0LDYgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8Q0FMYXll
cj4gbV9wZW5kaW5nUm9vdExheWVyOwogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0
PiBtX3ZpZXdFeHBvc2VkUmVjdDsKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IG1f
c2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3Q7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbGFzdFZp
ZXdTaXplRm9yU2NhbGVUb0ZpdDsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbGFzdERvY3VtZW50
U2l6ZUZvclNjYWxlVG9GaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
bW0KaW5kZXggNGJiNjdmMmY2MDNiZTQ0NTcwMTRmZjEwN2M1YTg1MTNmMGY4ZDdmNy4uNmI1YWY2
NzM1Nzk4YjRjYWYzZTE5NGI2OWQ2Yzk4ZjVlMTA5ZDYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtOTEsNiArOTEsOSBAQCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEoV2ViUGFnZSYgd2Vi
UGFnZSwgYwogICAgIHVwZGF0ZUxheWVySG9zdGluZ0NvbnRleHQoKTsKICAgICBzZXRDb2xvclNw
YWNlKHBhcmFtZXRlcnMuY29sb3JTcGFjZSk7CiAKKyAgICBpZiAoYXV0byB2aWV3RXhwb3NlZFJl
Y3QgPSBwYXJhbWV0ZXJzLnZpZXdFeHBvc2VkUmVjdCkKKyAgICAgICAgc2V0Vmlld0V4cG9zZWRS
ZWN0KHZpZXdFeHBvc2VkUmVjdCk7CisKICAgICBpZiAoIXBhcmFtZXRlcnMuaXNQcm9jZXNzU3dh
cCkKICAgICAgICAgc2VuZEVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVJZk5lZWRlZCgp
OwogfQpAQCAtMTM4LDExICsxNDEsNiBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKIH0KIAot
dm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2Nyb2xsKGNvbnN0IEludFJlY3Qm
IHNjcm9sbFJlY3QsIGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQotewotICAgIHVwZGF0ZVNj
cm9sbGVkRXhwb3NlZFJlY3QoKTsKLX0KLQogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXll
cikKIHsKICAgICBDQUxheWVyICpyb290TGF5ZXIgPSBncmFwaGljc0xheWVyID8gZ3JhcGhpY3NM
YXllci0+cGxhdGZvcm1MYXllcigpIDogbmlsOwpAQCAtNDY3LDggKzQ2NSw4IEBAIHZvaWQgVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZyhVcGRhdGVSZW5kZXJp
bmdUeXBlIGZsdXNoVHlwCiAgICAgICAgIH0KIAogICAgICAgICBGbG9hdFJlY3QgdmlzaWJsZVJl
Y3QgPSBbbV9ob3N0aW5nTGF5ZXIgZnJhbWVdOwotICAgICAgICBpZiAobV9zY3JvbGxlZFZpZXdF
eHBvc2VkUmVjdCkKLSAgICAgICAgICAgIHZpc2libGVSZWN0LmludGVyc2VjdChtX3Njcm9sbGVk
Vmlld0V4cG9zZWRSZWN0LnZhbHVlKCkpOworICAgICAgICBpZiAoYXV0byBleHBvc2VkUmVjdCA9
IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCktPnZpZXdFeHBvc2VkUmVjdCgpKQorICAgICAgICAg
ICAgdmlzaWJsZVJlY3QuaW50ZXJzZWN0KCpleHBvc2VkUmVjdCk7CiAKICAgICAgICAgLy8gQmVj
YXVzZSBvdXIgdmlldy1yZWxhdGl2ZSBvdmVybGF5IHJvb3QgbGF5ZXIgaXMgbm90IGF0dGFjaGVk
IHRvIHRoZSBtYWluIEdyYXBoaWNzTGF5ZXIgdHJlZSwgd2UgbmVlZCB0byBmbHVzaCBpdCBtYW51
YWxseS4KICAgICAgICAgaWYgKG1fdmlld092ZXJsYXlSb290TGF5ZXIpCkBAIC01NTMsNyArNTUx
LDkgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cmVzdW1lUGFpbnRpbmco
KQogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2V0Vmlld0V4cG9zZWRSZWN0
KE9wdGlvbmFsPEZsb2F0UmVjdD4gdmlld0V4cG9zZWRSZWN0KQogewogICAgIG1fdmlld0V4cG9z
ZWRSZWN0ID0gdmlld0V4cG9zZWRSZWN0OwotICAgIHVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3Qo
KTsKKworICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVW
aWV3KCkpCisgICAgICAgIGZyYW1lVmlldy0+c2V0Vmlld0V4cG9zZWRSZWN0KG1fdmlld0V4cG9z
ZWRSZWN0KTsKIH0KIAogRmxvYXRSZWN0IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpl
eHBvc2VkQ29udGVudFJlY3QoKSBjb25zdApAQCAtNTY3LDI0ICs1NjcsNiBAQCB2b2lkIFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRFeHBvc2VkQ29udGVudFJlY3QoY29uc3QgRmxv
YXRSZWN0JikKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlU2Nyb2xsZWRFeHBvc2VkUmVjdCgpCi17Ci0gICAg
RnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpOwotICAgIGlm
ICghZnJhbWVWaWV3KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3Njcm9sbGVkVmlld0V4cG9z
ZWRSZWN0ID0gbV92aWV3RXhwb3NlZFJlY3Q7Ci0KLSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkK
LSAgICBpZiAobV92aWV3RXhwb3NlZFJlY3QpIHsKLSAgICAgICAgU2Nyb2xsT2Zmc2V0IHNjcm9s
bE9mZnNldCA9IGZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKGZyYW1lVmlldy0+
c2Nyb2xsUG9zaXRpb24oKSk7Ci0gICAgICAgIG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QudmFs
dWUoKS5tb3ZlQnkoc2Nyb2xsT2Zmc2V0KTsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGZyYW1lVmll
dy0+c2V0Vmlld0V4cG9zZWRSZWN0KG1fc2Nyb2xsZWRWaWV3RXhwb3NlZFJlY3QpOwotfQotCiB2
b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJ
bnRTaXplJiB2aWV3U2l6ZSwgYm9vbCBmbHVzaFN5bmNocm9ub3VzbHksIGNvbnN0IFdURjo6TWFj
aFNlbmRSaWdodCYgZmVuY2VQb3J0KQogewogICAgIG1faW5VcGRhdGVHZW9tZXRyeSA9IHRydWU7
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZWNm
NTljYjAwMmIxZmQ1OTViNDgwZDU4ZTVkZmI5MTE3Y2JiNzlkOC4uNTUwYzc0NGE3YzU4OWE3NDIx
ZTZjNmViY2EwMGMwYjY2OTM3ZmQ0MCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA0LTMwICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEJvb2tzIHNvbWV0aW1lcyBl
bmRzIHVwIHdpdGggYmxhbmsgcGFnZXMsIGVzcGVjaWFsbHkgYWZ0ZXIgYWRqdXN0aW5nIGZvbnQg
c2l6ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEx
MjY1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTg5ODE0ND4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvVmlld0V4cG9zZWRSZWN0Lm1tOiBBZGRlZC4KKyAgICAgICAgKGZv
cmNlUmVwYWludENhbGxiYWNrKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICBBZGQgYSB0ZXN0
IGZvciB0aGUgZmlyc3QgcHJvYmxlbSwgd2hpY2ggd291bGQgcHJldmlvdXNseSBhdHRlbXB0IHRv
IGFsbG9jYXRlCisgICAgICAgIH45MFRCIG9mIHRpbGVzLCBzcGlubmluZyBhbmQgZXhwbG9kaW5n
LCBhbmQgbm93IGhhcHBpbHkganVzdCBhbGxvY2F0ZXMgYSBmZXcuCisKIDIwMjAtMDUtMDEgIFBl
ciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEV2ZXJ5
IHJ1bm5pbmcgV2ViQ29udGVudCBwcm9jZXNzIHNob3VsZCBiZSBncmFudGVkIGFjY2VzcyB0byBm
cm9udGJvYXJkIHNlcnZpY2VzIHdoZW4gQWNjZXNzaWJpbGl0eSBpcyBlbmFibGVkCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDJkZGMyZTM2MDI4YmMyNmMxNTEyNTYyZGY5ZmVlNjMzNTNhOWVm
NTQuLjVlNTU3NWVlNGVjN2QwYjVkMzA2MTcwZDY4YmJkNjY4NWE5OThiMmEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xNDAsNiArMTQwLDcgQEAKIAkJMkQzQ0EzQTgyMjFERjRCNDAwODhF
ODAzIC8qIFBhZ2VPdmVybGF5UGx1Z2luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkQzQ0EzQTQyMjFERjIzOTAwODhFODAzIC8qIFBhZ2VPdmVybGF5
UGx1Z2luLm1tICovOyB9OwogCQkyRDRDRjhCRDFEODM2MENDMDAwMUNFOEQgLyogV0tUaHVtYm5h
aWxWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkQ0Q0Y4QkMxRDgzNjBDQzAwMDFDRThEIC8qIFdLVGh1bWJuYWlsVmlldy5tbSAqLzsgfTsKIAkJ
MkQ1MUEwQzcxQzhCRjAwQzAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MUEwQzUx
QzhCRjAwNDAwNzY1QzQ1IC8qIERPTUhUTUxWaWRlb0VsZW1lbnRXcmFwcGVyLm1tICovOyB9Owor
CQkyRDUyMDYzNTI0NUE2MDNEMDAzMzhGODggLyogVmlld0V4cG9zZWRSZWN0Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ1MjA2MzQyNDVBNjAzQzAw
MzM4Rjg4IC8qIFZpZXdFeHBvc2VkUmVjdC5tbSAqLzsgfTsKIAkJMkQ3MDA1OTYyMUVEQTBDNjAw
MzQ2M0NCIC8qIFRhYk91dE9mV2ViVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJENzAwNTk1MjFFREEwQzYwMDM0NjNDQiAvKiBUYWJPdXRPZldl
YlZpZXcubW0gKi87IH07CiAJCTJENzAwNTk5MjFFREE0RDAwMDM0NjNDQiAvKiBPZmZzY3JlZW5X
aW5kb3cubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDcwMDU5NzIxRURBNEQwMDAzNDYzQ0IgLyogT2Zmc2NyZWVuV2luZG93Lm1tICovOyB9OwogCQky
RDdGRDE5MzIyNDE5MDg3MDA3ODg3RjEgLyogRG9jdW1lbnRFZGl0aW5nQ29udGV4dC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEN0ZEMTkyMjI0MTkw
ODcwMDc4ODdGMSAvKiBEb2N1bWVudEVkaXRpbmdDb250ZXh0Lm1tICovOyB9OwpAQCAtMTczNCw2
ICsxNzM1LDcgQEAKIAkJMkQzQ0EzQTQyMjFERjIzOTAwODhFODAzIC8qIFBhZ2VPdmVybGF5UGx1
Z2luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFnZU92ZXJs
YXlQbHVnaW4ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJENENGOEJDMUQ4MzYw
Q0MwMDAxQ0U4RCAvKiBXS1RodW1ibmFpbFZpZXcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBXS1RodW1ibmFpbFZpZXcubW07IHBhdGggPSBXZWJLaXQvV0tUaHVt
Ym5haWxWaWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDUxQTBDNTFDOEJG
MDA0MDA3NjVDNDUgLyogRE9NSFRNTFZpZGVvRWxlbWVudFdyYXBwZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MVmlkZW9FbGVtZW50V3JhcHBlci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQ1MjA2MzQyNDVBNjAzQzAwMzM4Rjg4
IC8qIFZpZXdFeHBvc2VkUmVjdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFZpZXdFeHBvc2VkUmVjdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkQ2MUVDMzAyMUIwQjc1QzAwQTdEMUNCIC8qIFBlbmNpbEtpdFRlc3RTUEkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGVuY2lsS2l0VGVzdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
RDY0MEI1NDE3ODc1REZGMDBCRkFGOTkgLyogU2Nyb2xsUGlubmluZ0JlaGF2aW9ycy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxQaW5uaW5nQmVoYXZpb3Jz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ3MDA1OTUyMUVEQTBDNjAwMzQ2
M0NCIC8qIFRhYk91dE9mV2ViVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFRhYk91dE9mV2ViVmlldy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTMyMDAsNiArMzIwMiw3IEBACiAJCQkJMkUxMzNCNEYyMUQ0MEFGMDAwRUQxQ0IyIC8qIFVz
ZVNlbGVjdGlvbkFzRmluZFN0cmluZy5tbSAqLywKIAkJCQk5M0U5NDNGMTFDRDNFODdFMDBBQzA4
QzIgLyogVmlkZW9Db250cm9sc01hbmFnZXIubW0gKi8sCiAJCQkJQ0QzMDY1REYyMTY1NjgyRTAw
RTg5NURGIC8qIFZpZGVvUXVhbGl0eURpc3BsYXlDb21wb3NpdGluZy5tbSAqLywKKwkJCQkyRDUy
MDYzNDI0NUE2MDNDMDAzMzhGODggLyogVmlld0V4cG9zZWRSZWN0Lm1tICovLAogCQkJCTYzNTZG
QjIxMUVDNEUwQkEwMDQ0QkYxOCAvKiBWaXNpYmxlQ29udGVudFJlY3QubW0gKi8sCiAJCQkJODM3
NzlDMzcxRjgyRkVCMDAwN0NEQThBIC8qIFZpc2l0ZWRMaW5rU3RvcmUubW0gKi8sCiAJCQkJODMw
RjJFMEIyMDlBNkE3NDAwRDM2RkYxIC8qIFdlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlLm1t
ICovLApAQCAtNTE4OSw2ICs1MTkyLDcgQEAKIAkJCQk3QzgzRTAzQTFEMEE2MDI3MDBGRUJDRjMg
LyogVXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBDNjFEMEE2NTRF
MDBGRUJDRjMgLyogVmlkZW9Db250cm9sc01hbmFnZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlD
RDMwNjVFMDIxNjU2ODJFMDBFODk1REYgLyogVmlkZW9RdWFsaXR5RGlzcGxheUNvbXBvc2l0aW5n
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkQ1MjA2MzUyNDVBNjAzRDAwMzM4Rjg4IC8qIFZpZXdF
eHBvc2VkUmVjdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTExNUVCMzQzMUVFMEJBMDMwMDNDMkMw
QSAvKiBWaWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NjM1NkZCMjIxRUM0RTBCQTAwNDRCRjE4IC8qIFZpc2libGVDb250ZW50UmVjdC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTgzNzc5QzM4MUY4MkZFQ0UwMDdDREE4QSAvKiBWaXNpdGVkTGlua1N0b3Jl
Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1ZpZXdFeHBvc2VkUmVjdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvVmlld0V4cG9zZWRSZWN0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiMzA4Y2M5YThk
NWJmYTMwMGVkOWY5OTI3NDQ4YzY1MGZiZjI2YjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ZpZXdFeHBvc2VkUmVjdC5tbQpAQCAtMCww
ICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBs
YXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJW
aWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQYWdlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tQYWdl
UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKworQGludGVyZmFjZSBXS1dl
YlZpZXcgKCkKKy0gKFdLUGFnZVJlZilfcGFnZUZvclRlc3Rpbmc7CitAZW5kCisKK3N0YXRpYyBi
b29sIGRpZEZvcmNlUmVwYWludDsKKworc3RhdGljIHZvaWQgZm9yY2VSZXBhaW50Q2FsbGJhY2so
V0tFcnJvclJlZiBlcnJvciwgdm9pZCopCit7CisgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAg
IGRpZEZvcmNlUmVwYWludCA9IHRydWU7Cit9CisKK1RFU1QoV2ViS2l0LCBJbml0aWFsVGlsZUNv
dmVyYWdlVXNlc1ZpZXdFeHBvc2VkUmVjdCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmll
dz4gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgNTAwMDAwMCwgNTAwMDAwMCldKTsKKyAgICBbd2ViVmlldyBfc2V0
Q2xpcHNUb1Zpc2libGVSZWN0OllFU107CisgICAgW1t3ZWJWaWV3IGhvc3RXaW5kb3ddIHNldEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGRpc3BsYXk6Tk9dOworICAgIFt3ZWJWaWV3
IGFkZFRvVGVzdFdpbmRvd107CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3Ry
aW5nOkAiIl07CisKKyAgICBkaWRGb3JjZVJlcGFpbnQgPSBmYWxzZTsKKyAgICBXS1BhZ2VGb3Jj
ZVJlcGFpbnQoW3dlYlZpZXcgX3BhZ2VGb3JUZXN0aW5nXSwgMCwgZm9yY2VSZXBhaW50Q2FsbGJh
Y2spOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkRm9yY2VSZXBhaW50KTsKK30K
KworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhNjRjY2JjMDMwYWFkOGFhZjkyMjRi
ZTNjNTIxNDE4YmEwNThkNDVkLi5lMjc5NTJiNzc2OGQ5N2Y5Y2YyYjUzNDRmZDczMDQ5ZWQ1MjI0
MzRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDUtMDEgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQm9va3Mgc29tZXRpbWVzIGVuZHMgdXAg
d2l0aCBibGFuayBwYWdlcywgZXNwZWNpYWxseSBhZnRlciBhZGp1c3RpbmcgZm9udCBzaXplCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTEyNjUKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5ODk4MTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGlsZWQtZHJhd2luZy90aWxlLWNvdmVyYWdlLXNj
cm9sbGVkLXZpZXctZXhwb3NlZC1yZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
dGlsZWQtZHJhd2luZy90aWxlLWNvdmVyYWdlLXNjcm9sbGVkLXZpZXctZXhwb3NlZC1yZWN0Lmh0
bWw6IEFkZGVkLgorICAgICAgICBBZGQgYSB0ZXN0IGVuc3VyaW5nIHRoYXQgd2UgY3JlYXRlIHRo
ZSBjb3JyZWN0IHRpbGVzIHdpdGggYQorICAgICAgICBzY3JvbGxlZCB3ZWIgdmlldyB0aGF0IGFs
c28gdXNlcyBjbGlwc1RvVmlzaWJsZVJlY3Q9WUVTLgorCiAyMDIwLTA1LTAxICBLZW5uZXRoIFJ1
c3NlbGwgIDxrYnJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtXZWJHTDJdIFJlZmFjdG9yIHRl
eEltYWdlMkQgYW5kIHRleFN1YkltYWdlMkQgdGFraW5nIEltYWdlQml0bWFwLCBJbWFnZURhdGEs
IEltYWdlLCBBcnJheUJ1ZmZlclZpZXcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RpbGVkLWRy
YXdpbmcvdGlsZS1jb3ZlcmFnZS1zY3JvbGxlZC12aWV3LWV4cG9zZWQtcmVjdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3RpbGUtY292ZXJhZ2Utc2Nyb2xsZWQtdmll
dy1leHBvc2VkLXJlY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5ZTNkYzkwOTUwZGRmYzgz
NWQ3ZDliYzZkNzk2NGQ2MzNmZmQyZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90
aWxlZC1kcmF3aW5nL3RpbGUtY292ZXJhZ2Utc2Nyb2xsZWQtdmlldy1leHBvc2VkLXJlY3QtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKKyhHcmFwaGljc0xheWVyCisgIChhbmNob3IgMC4w
MCAwLjAwKQorICAoYm91bmRzIDc4NS4wMCA1MTE0LjAwKQorICAoY2hpbGRyZW4gMQorICAgIChH
cmFwaGljc0xheWVyCisgICAgICAoYm91bmRzIDc4NS4wMCA1MTE0LjAwKQorICAgICAgKGNvbnRl
bnRzT3BhcXVlIDEpCisgICAgICAodGlsZSBjYWNoZSBjb3ZlcmFnZSAwLCA0NjA4IDc4NSB4IDUw
NikKKyAgICAgICh0aWxlIHNpemUgNTEyIHggNTEyKQorICAgICAgKHRvcCBsZWZ0IHRpbGUgMCwg
OSB0aWxlcyBncmlkIDIgeCAxKQorICAgICAgKGluIHdpbmRvdyAxKQorICAgICkKKyAgKQorKQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3RpbGUtY292ZXJhZ2Utc2Ny
b2xsZWQtdmlldy1leHBvc2VkLXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcv
dGlsZS1jb3ZlcmFnZS1zY3JvbGxlZC12aWV3LWV4cG9zZWQtcmVjdC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQwNmE1ODczZWMwYjdiZDViOWQ2NTdlNDMwZjk3OGFmM2FjYTgxNWQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3RpbGUtY292ZXJhZ2Utc2Nyb2xsZWQtdmll
dy1leHBvc2VkLXJlY3QuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICAgICAg
Ly8gIkV4cG9zZSIgdGhlIGJvdHRvbSAyMDBweCBvZiB0aGUgdmlldy4KKyAgICAgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAgIGludGVybmFscy5zZXRWaWV3RXhw
b3NlZFJlY3QoMCwgMjMwMCwgODAwLCAyMDApOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dFZpZXdTaXplKDgwMCwgMjUwMCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
ICAgIHNjcm9sbFRvKDAsIDUwMDApOworCisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsYXll
cnMnKS5pbm5lclRleHQgPSBpbnRlcm5hbHMubGF5ZXJUcmVlQXNUZXh0KGRvY3VtZW50LCBpbnRl
cm5hbHMuTEFZRVJfVFJFRV9JTkNMVURFU19USUxFX0NBQ0hFUyk7CisKKyAgICAgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfSwgMCk7CisgICAgICAgIH0KKworICAgICAgICB3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOworICAgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cHJlIGlkPSJsYXllcnMiPkxheWVyIHRyZWUgZ29lcyBo
ZXJlPC9wPgorPGRpdiBzdHlsZT0naGVpZ2h0OiA1MDAwcHg7Jz48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>