<?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>183648</bug_id>
          
          <creation_ts>2018-03-14 16:54:15 -0700</creation_ts>
          <short_desc>[iOS WK2] Hit-testing fails when specifying a large top content inset</short_desc>
          <delta_ts>2019-08-21 17:09:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=184893</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bburg</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kevin</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1406552</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-03-14 16:54:15 -0700</bug_when>
    <thetext>To reproduce:

- Make a WKWebView
- Set the WKWebView&apos;s scrollView&apos;s contentInset to something like UIEdgeInsetsMake(500, 0, 0, 0)
- Load a page with clickable elements, such as links or buttons
- Scroll so that the links or buttons are in view
- Try to tap on them

Expected: elements should be clicked
Observed: elements are not clicked

Tested on latest iOS 11.3 beta.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406570</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-03-14 18:09:48 -0700</bug_when>
    <thetext>WKWebView conflates obscured insets (which cover parts of the viewport) with content insets (which allow scrolling beyond content bounds in a scroll view).

This manifests in incorrect behavior when computing the unobscured content rect if the web view&apos;s scrollview has a top content inset, since we&apos;ll think that there&apos;s a region as tall as the content inset that obscures the viewport, when in fact, the viewport isn&apos;t obscured.

This causes all hit-testing in this region to fail because FrameView::visibleContentRect is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406573</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-03-14 18:18:49 -0700</bug_when>
    <thetext>It appears this bug has existed since the early days of WebKit2 (see: &lt;http://trac.webkit.org/changeset/170361&gt;).

It also seems others have also run into this before: https://stackoverflow.com/questions/27755251/wkwebview-isnt-clickable-outside-its-contentinset</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406578</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-03-14 18:25:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/38421894&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406595</commentid>
    <comment_count>4</comment_count>
      <attachid>335827</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-03-14 20:28:37 -0700</bug_when>
    <thetext>Created attachment 335827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406777</commentid>
    <comment_count>5</comment_count>
      <attachid>335827</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-03-15 13:24:54 -0700</bug_when>
    <thetext>Comment on attachment 335827
Patch

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406786</commentid>
    <comment_count>6</comment_count>
      <attachid>335827</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-15 13:50:08 -0700</bug_when>
    <thetext>Comment on attachment 335827
Patch

Clearing flags on attachment: 335827

Committed r229641: &lt;https://trac.webkit.org/changeset/229641&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406787</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-15 13:50:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407771</commentid>
    <comment_count>8</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2018-03-20 13:23:25 -0700</bug_when>
    <thetext>👏🏼👏🏼👏🏼</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563817</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2019-08-21 17:09:48 -0700</bug_when>
    <thetext>*** Bug 153439 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335827</attachid>
            <date>2018-03-14 20:28:37 -0700</date>
            <delta_ts>2018-03-15 13:50:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183648-20180314202836.patch</filename>
            <type>text/plain</type>
            <size>29511</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5NTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQwZTgzOWEwYmNiMGI1NWQz
MWRkYjRmMTY2ZmZlNTNkY2I0ZTk4MmMuLjgyYjcyODViNmJjMDVhMWRmZDMxZmFkNmRkODI5NWI5
ZTMxNjMzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODkgQEAKKzIwMTgtMDMtMTQgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBXSzJdIEhpdC10
ZXN0aW5nIGZhaWxzIHdoZW4gc3BlY2lmeWluZyBhIGxhcmdlIHRvcCBjb250ZW50IGluc2V0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM2NDgKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NDIxODk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJlbnRseSwgaW4gdGhlIHByb2Nlc3Mgb2YgY29t
cHV0aW5nIHVub2JzY3VyZWQgY29udGVudCByZWN0IGluIHRoZSBVSSBwcm9jZXNzIG9uIGlPUywg
d2Ugc3VidHJhY3QgYXdheSBwYXJ0cworICAgICAgICBvZiB0aGUgdmlldyB0aGF0IGFyZSBvYnNj
dXJlZCBieSBpbnNldHMgKGUuZy4gTW9iaWxlU2FmYXJpJ3MgY2hyb21lKS4gVGhlIGhlbHBlciBt
ZXRob2QgLVtXS1dlYlZpZXcKKyAgICAgICAgX2NvbXB1dGVDb250ZW50SW5zZXRdIGlzIGludGVu
ZGVkIHRvIGNvbXB1dGUgdGhlc2Ugb2JzY3VyaW5nIGluc2V0cyBhcm91bmQgdGhlIHZpZXcsIGJ1
dCBpdCB0YWtlcyBzY3JvbGwgdmlldworICAgICAgICBpbnNldHMgaW50byBhY2NvdW50LiBUaGlz
IG1lYW5zIHRoYXQgaWYgV0tXZWJWaWV3J3MgaW5uZXIgc2Nyb2xsIHZpZXcgaGFzIGNvbnRlbnQg
aW5zZXRzLCB3ZSdsbCBlbmQgdXAgc2hyaW5raW5nCisgICAgICAgIHRoZSB1bm9ic2N1cmVkIGNv
bnRlbnQgcmVjdCBhcyBpZiB0aGUgaW5zZXR0ZWQgcmVnaW9uIG9ic2N1cmVzIHRoZSB2aWV3cG9y
dDsgdGhpcyBjYXVzZXMgdmlzaWJsZSBjb250ZW50IG9uIHRoZQorICAgICAgICBwYWdlIHRvIGJl
IHVuaW50ZXJhY3RpYmxlLCBzaW5jZSBXS1dlYlZpZXcgZXJyb25lb3VzbHkgdGhpbmtzIGl0J3Mg
b2JzY3VyZWQuCisKKyAgICAgICAgVG8gYWRkcmVzcyB0aGlzLCB3ZSByZW5hbWUgX2NvbXB1dGVD
b250ZW50SW5zZXQgdG8gX2NvbXB1dGVPYnNjdXJlZEluc2V0LCBhbmQgbWFrZSBpdCBfbm90XyBh
ZmZlY3RlZCBieSB0aGUKKyAgICAgICAgc2Nyb2xsIHZpZXcncyBjb250ZW50IGluc2V0cy4gRnJv
bSBjb2RlIGluc3BlY3Rpb24gYW5kIHRlc3RpbmcsIGFsbCBidXQgb25lIG9mIHRoZSBmb3JtZXIg
Y2FsbCBzaXRlcyBvZgorICAgICAgICBfY29tcHV0ZUNvbnRlbnRJbnNldCByZWFsbHkgbmVlZCB0
aGUgb2JzY3VyZWQgaW5zZXQgaW5zdGVhZCAoc2VlIGJlbG93KS4gVGhlIG9uZSBleGNlcHRpb24s
IC1bV0tXZWJWaWV3CisgICAgICAgIF9hZGp1c3RlZENvbnRlbnRPZmZzZXQ6XSwgdGFrZXMgYSBz
Y3JvbGwgcG9zaXRpb24gZnJvbSB0aGUgcGFnZSBhbmQgbWFwcyBpdCB0byBhIGNvbnRlbnQgb2Zm
c2V0IGluIHRoZSBpbm5lcgorICAgICAgICBVSVNjcm9sbFZpZXcgKHNlZSBiZWxvdyBmb3IgbW9y
ZSBkZXRhaWxzKS4KKworICAgICAgICBUZXN0czogIFNjcm9sbFZpZXdJbnNldFRlc3RzLklubmVy
SGVpZ2h0V2l0aExhcmdlVG9wQ29udGVudEluc2V0CisgICAgICAgICAgICAgICAgU2Nyb2xsVmll
d0luc2V0VGVzdHMuSW5uZXJIZWlnaHRXaXRoTGFyZ2VCb3R0b21Db250ZW50SW5zZXQKKyAgICAg
ICAgICAgICAgICBTY3JvbGxWaWV3SW5zZXRUZXN0cy5SZXN0b3JlSW5pdGlhbENvbnRlbnRPZmZz
ZXRBZnRlckNyYXNoCisgICAgICAgICAgICAgICAgU2Nyb2xsVmlld0luc2V0VGVzdHMuUmVzdG9y
ZUluaXRpYWxDb250ZW50T2Zmc2V0QWZ0ZXJOYXZpZ2F0aW9uCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRIYXND
dXN0b21Db250ZW50Vmlldzpsb2FkZWRNSU1FVHlwZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9pbml0aWFsQ29udGVudE9mZnNldEZvclNjcm9sbFZpZXddKToKKworICAgICAgICBTZWUgLV9j
b250ZW50T2Zmc2V0QWRqdXN0ZWRGb3JPYnNjdXJlZEluc2V0OiBiZWxvdy4KKworICAgICAgICAo
LVtXS1dlYlZpZXcgX2NvbnRlbnRPZmZzZXRBZGp1c3RlZEZvck9ic2N1cmVkSW5zZXQ6XSk6CisK
KyAgICAgICAgRm9ybWVybHkgLV9hZGp1c3RlZENvbnRlbnRPZmZzZXQ6LiAtX2NvbnRlbnRPZmZz
ZXRBZGp1c3RlZEZvck9ic2N1cmVkSW5zZXQ6IG5vIGxvbmdlciB0YWtlcyBzY3JvbGwgdmlldyBj
b250ZW50CisgICAgICAgIGluc2V0IGludG8gYWNjb3VudCwgYW5kIG9ubHkgY2FyZXMgYWJvdXQg
aW5zZXRzIHRoYXQgb2JzY3VyZSB0aGUgdmlldy4gVGhpcyBtZWFucyB0aGF0IHRoZSBzY3JvbGwg
cG9zaXRpb24KKyAgICAgICAgKDAsIDApIGluIHRoZSBkb2N1bWVudCBub3cgbWFwcyB0byB0aGUg
Y29udGVudCBvZmZzZXQgaW4gdGhlIGlubmVyIFVJU2Nyb2xsVmlldywgc3VjaCB0aGF0IHRoZSB0
b3Agb2YgdGhlIHBhZ2UKKyAgICAgICAgaXMgYWxpZ25lZCB3aXRoIHRoZSB0b3Agb2YgdGhlIHZp
ZXdwb3J0LgorCisgICAgICAgIEhvd2V2ZXIsIG1hbnkgY2FsbCBzaXRlcyBvZiAtX2FkanVzdGVk
Q29udGVudE9mZnNldDogd2VyZSBpbnRlbmRlZCB0byBjb21wdXRlIHRoZSBpbml0aWFsLCB0b3At
bGVmdC1tb3N0IGNvbnRlbnQKKyAgICAgICAgb2Zmc2V0IGluIHRoZSBzY3JvbGwgdmlldyB0byBz
Y3JvbGwgdG8gd2hlbiByZXNldHRpbmcgdGhlIHdlYiB2aWV3IChpLmUuLCB0aGV5IHBhc3MgaW4g
Q0dQb2ludFplcm8gZm9yIHRoZQorICAgICAgICBzY3JvbGwgcG9zaXRpb24pLiBBbiBleGFtcGxl
IG9mIHRoaXMgaXMgdGhlIHNjcm9sbCBwb3NpdGlvbiB0byBqdW1wIHRvIGFmdGVyIHdlYiBjb250
ZW50IHByb2Nlc3MgdGVybWluYXRpb24sIG9yCisgICAgICAgIHRoZSBzY3JvbGwgcG9zaXRpb24g
YWZ0ZXIgbWFpbiBmcmFtZSBuYXZpZ2F0aW9uLiBJbiB0aGVzZSBjYXNlcywgd2UgYWN0dWFsbHkg
d2FudCB0byBqdW1wIHRvIHRoZSB0b3Agb2YgdGhlCisgICAgICAgIHNjcm9sbCB2aWV3LCBzbyB3
ZSBkbyB3YW50IHRvIHVzZSB0aGUgdmVyc2lvbiBvZiB0aGUgY29tcHV0ZWQgY29udGVudCBpbnNl
dHMgdGhhdCBhY2NvdW50cyBmb3Igc2Nyb2xsIHZpZXcKKyAgICAgICAgaW5zZXRzLgorCisgICAg
ICAgIFNpbmNlIHRoZXNlIGNhc2VzIGFyZSBsaW1pdGVkIHRvIGZpbmRpbmcgdGhlIHRvcC1sZWZ0
LW1vc3Qgc2Nyb2xsIHBvc2l0aW9uLCB3ZSBwdWxsIHRoaXMgb3V0IGludG8gYSBzZXBhcmF0ZQor
ICAgICAgICBoZWxwZXIgbWV0aG9kICgtX2luaXRpYWxDb250ZW50T2Zmc2V0Rm9yU2Nyb2xsVmll
dykgYW5kIHJlcGxhY2UgY2FsbHMgdG8KKyAgICAgICAgYC1bc2VsZiBfYWRqdXN0ZWRDb250ZW50
T2Zmc2V0OkNHUG9pbnRaZXJvXWAgd2l0aCB0aGlzIGluc3RlYWQuCisKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF9jb21wdXRlZE9ic2N1cmVkSW5zZXRdKToKKworICAgICAgICBBIHZlcnNpb24gb2Yg
LV9jb21wdXRlQ29udGVudEluc2V0IHRoYXQgZG9lc24ndCBjYXJlIGFib3V0IHNjcm9sbCB2aWV3
IGluc2V0cy4gVXNlZCB3aGVyZWV2ZXIgd2UgbmVlZCB0byBhY2NvdW50CisgICAgICAgIGZvciBv
YnNjdXJlZCBpbnNldHMgcmF0aGVyIHRoYW4gdGhlIGNvbWJpbmF0aW9uIG9mIGNvbnRlbnQgaW5z
ZXRzIGFuZCB1bm9ic2N1cmVkIGluc2V0cyAoZS5nLgorICAgICAgICAtX2luaXRpYWxDb250ZW50
T2Zmc2V0Rm9yU2Nyb2xsVmlldykuCisKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9wcm9jZXNzRGlk
RXhpdF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZENvbW1pdExheWVyVHJlZTpdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9keW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2VkVGFyZ2V0VG9T
Y2FsZTpwb3NpdGlvbjpuZXh0VmFsaWRMYXllclRyZWVUcmFuc2FjdGlvbklEOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3Njcm9sbFRvQ29udGVudFNjcm9sbFBvc2l0aW9uOnNjcm9sbE9yaWdp
bjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFZpZXdXaWxsRW5kRHJhZ2dpbmc6d2l0
aFZlbG9jaXR5OnRhcmdldENvbnRlbnRPZmZzZXQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0c10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX25hdmln
YXRpb25HZXN0dXJlRGlkQmVnaW5dKToKKworICAgICAgICBJbiBhbGwgdGhlc2UgcGxhY2VzIHdo
ZXJlIHdlIGluc2V0IHRoZSB2aWV3IGJvdW5kcyB0byBjb21wdXRlIHRoZSB1bm9ic2N1cmVkIHJl
Z2lvbiBvZiB0aGUgdmlld3BvcnQsIGl0IGRvZXNuJ3QKKyAgICAgICAgbWFrZSBzZW5zZSB0byBh
ZGRpdGlvbmFsbHkgaW5zZXQgYnkgdGhlIHNjcm9sbCB2aWV3J3MgY29udGVudCBpbnNldHMsIHNp
bmNlICgxKSB0aGUgc2Nyb2xsIHZpZXcncyBjb250ZW50IGluc2V0cworICAgICAgICBkb24ndCBv
YnNjdXJlIHRoZSB2aWV3cG9ydCwgYW5kICgyKSBpdCdzIHBlcmZlY3RseSB2YWxpZCBmb3IgdGhl
IGlubmVyIHNjcm9sbCB2aWV3IHRvIGhhdmUgYXJiaXRyYXJpbHkgbGFyZ2UKKyAgICAgICAgY29u
dGVudCBpbnNldHMuCisKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9hZGp1c3RlZENvbnRlbnRPZmZz
ZXQ6XSk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVuYW1lZCB0byAtX2NvbnRlbnRPZmZzZXRBZGp1
c3RlZEZvck9ic2N1cmVkSW5zZXQ6LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1t
OgorICAgICAgICAoLVtXS1BERlZpZXcgX29mZnNldEZvclBhZ2VOdW1iZXJJbmRpY2F0b3JdKToK
KworICAgICAgICBTaW1pbGFyIHRvIC1fc2Nyb2xsVG9GcmFnbWVudDogKHNlZSBiZWxvdykuCisK
KyAgICAgICAgKC1bV0tQREZWaWV3IF9zY3JvbGxUb0ZyYWdtZW50Ol0pOgorCisgICAgICAgIFRo
aXMgaGVscGVyIGZpZ3VyZXMgb3V0IHdoaWNoIGNvbnRlbnQgb2Zmc2V0IHRvIHNjcm9sbCB0bywg
Z2l2ZW4gdGhlIHktb3JpZ2luIG9mIGEgcGFnZSBpbiBhIFBERiBkb2N1bWVudC4gSWYKKyAgICAg
ICAgaW5zZXRzIGFyZSBhZGRlZCB0byB0aGUgc2Nyb2xsIHZpZXcsIHdlIGVuZCB1cCBzY3JvbGxp
bmcgdG8gdGhlIHdyb25nIGNvbnRlbnQgb2Zmc2V0IHNpbmNlIHdlJ2xsIGFkZCB0aGUgaGVpZ2h0
CisgICAgICAgIG9mIHRoZSB0b3AgY29udGVudCBpbnNldCAoaW1hZ2luZSB0aGF0IHRoZSB0b3Ag
Y29udGVudCBpbnNldCBpcyBlbm9ybW91cyDigJQgdGhlbiB3ZSdsbCBzY3JvbGwgYW4gYW1vdW50
IGVxdWFsIHRvCisgICAgICAgIHRoZSB0b3AgY29udGVudCBpbnNldCBfcGFzdF8gdGhlIHBvaW50
IHdoZXJlIHRoZSB5LW9yaWdpbiBvZiB0aGUgcGFnZSBpcyBhdCB0aGUgdG9wIG9mIHRoZSB2aWV3
cG9ydCkuCisKIDIwMTgtMDMtMTQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgRml4IHRoZSBidWlsZCBhZnRlciByMjI5NTY3CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAyYWRlNjE0NmMzM2Yy
NzYwZGFjMGJlYTQ4OWJmNGM4YzZkODc1OTcwLi44YzExNDhiNmY1ZTU1OTQ3YWY4YTNlZTYzMWYz
M2IwNGMxN2NmN2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KQEAgLTE0NjEsNyArMTQ2MSw3IEBAIC0gKHZvaWQpX3NldEhhc0N1c3RvbUNv
bnRlbnRWaWV3OihCT09MKXBhZ2VIYXNDdXN0b21Db250ZW50VmlldyBsb2FkZWRNSU1FVHlwZToo
CiAgICAgICAgIFtfY3VzdG9tQ29udGVudFZpZXcgd2ViX3NldEZpeGVkT3ZlcmxheVZpZXc6X2N1
c3RvbUNvbnRlbnRGaXhlZE92ZXJsYXlWaWV3LmdldCgpXTsKIAogICAgICAgICBfc2Nyb2xsVmll
d0JhY2tncm91bmRDb2xvciA9IFdlYkNvcmU6OkNvbG9yKCk7Ci0gICAgICAgIFtfc2Nyb2xsVmll
dyBzZXRDb250ZW50T2Zmc2V0OltzZWxmIF9hZGp1c3RlZENvbnRlbnRPZmZzZXQ6Q0dQb2ludFpl
cm9dXTsKKyAgICAgICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6W3NlbGYgX2luaXRp
YWxDb250ZW50T2Zmc2V0Rm9yU2Nyb2xsVmlld11dOwogCiAgICAgICAgIFtzZWxmIF9zZXRBdm9p
ZHNVbnNhZmVBcmVhOk5PXTsKICAgICB9IGVsc2UgaWYgKF9jdXN0b21Db250ZW50VmlldykgewpA
QCAtMTU4MSwxMCArMTU4MSwxNiBAQCAtICh2b2lkKV92aWRlb0NvbnRyb2xzTWFuYWdlckRpZENo
YW5nZQogI2VuZGlmCiB9CiAKLS0gKENHUG9pbnQpX2FkanVzdGVkQ29udGVudE9mZnNldDooQ0dQ
b2ludClwb2ludAorLSAoQ0dQb2ludClfaW5pdGlhbENvbnRlbnRPZmZzZXRGb3JTY3JvbGxWaWV3
Cit7CisgICAgYXV0byBjb21iaW5lZFVub2JzY3VyZWRBbmRTY3JvbGxWaWV3SW5zZXQgPSBbc2Vs
ZiBfY29tcHV0ZWRDb250ZW50SW5zZXRdOworICAgIHJldHVybiBDR1BvaW50TWFrZSgtY29tYmlu
ZWRVbm9ic2N1cmVkQW5kU2Nyb2xsVmlld0luc2V0LmxlZnQsIC1jb21iaW5lZFVub2JzY3VyZWRB
bmRTY3JvbGxWaWV3SW5zZXQudG9wKTsKK30KKworLSAoQ0dQb2ludClfY29udGVudE9mZnNldEFk
anVzdGVkRm9yT2JzY3VyZWRJbnNldDooQ0dQb2ludClwb2ludAogewogICAgIENHUG9pbnQgcmVz
dWx0ID0gcG9pbnQ7Ci0gICAgVUlFZGdlSW5zZXRzIGNvbnRlbnRJbnNldCA9IFtzZWxmIF9jb21w
dXRlZENvbnRlbnRJbnNldF07CisgICAgVUlFZGdlSW5zZXRzIGNvbnRlbnRJbnNldCA9IFtzZWxm
IF9jb21wdXRlZE9ic2N1cmVkSW5zZXRdOwogCiAgICAgcmVzdWx0LnggLT0gY29udGVudEluc2V0
LmxlZnQ7CiAgICAgcmVzdWx0LnkgLT0gY29udGVudEluc2V0LnRvcDsKQEAgLTE1OTksNiArMTYw
NSwxOSBAQCAtIChVSVJlY3RFZGdlKV9lZmZlY3RpdmVPYnNjdXJlZEluc2V0RWRnZXNBZmZlY3Rl
ZEJ5U2FmZUFyZWEKICAgICByZXR1cm4gX29ic2N1cmVkSW5zZXRFZGdlc0FmZmVjdGVkQnlTYWZl
QXJlYTsKIH0KIAorLSAoVUlFZGdlSW5zZXRzKV9jb21wdXRlZE9ic2N1cmVkSW5zZXQKK3sKKyAg
ICBpZiAoX2hhdmVTZXRPYnNjdXJlZEluc2V0cykKKyAgICAgICAgcmV0dXJuIF9vYnNjdXJlZElu
c2V0czsKKworI2lmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMAor
ICAgIGlmIChzZWxmLl9zYWZlQXJlYVNob3VsZEFmZmVjdE9ic2N1cmVkSW5zZXRzKQorICAgICAg
ICByZXR1cm4gVUlFZGdlSW5zZXRzQWRkKFVJRWRnZUluc2V0c1plcm8sIHNlbGYuX3Njcm9sbFZp
ZXdTeXN0ZW1Db250ZW50SW5zZXQsIHNlbGYuX2VmZmVjdGl2ZU9ic2N1cmVkSW5zZXRFZGdlc0Fm
ZmVjdGVkQnlTYWZlQXJlYSk7CisjZW5kaWYKKworICAgIHJldHVybiBVSUVkZ2VJbnNldHNaZXJv
OworfQorCiAtIChVSUVkZ2VJbnNldHMpX2NvbXB1dGVkQ29udGVudEluc2V0CiB7CiAgICAgaWYg
KF9oYXZlU2V0T2JzY3VyZWRJbnNldHMpCkBAIC0xNjQxLDcgKzE2NjAsNyBAQCAtICh2b2lkKV9w
cm9jZXNzRGlkRXhpdAogICAgIH0KICAgICBbX2NvbnRlbnRWaWV3IHNldEZyYW1lOnNlbGYuYm91
bmRzXTsKICAgICBbX3Njcm9sbFZpZXcgc2V0QmFja2dyb3VuZENvbG9yOltVSUNvbG9yIHdoaXRl
Q29sb3JdXTsKLSAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudE9mZnNldDpbc2VsZiBfYWRqdXN0
ZWRDb250ZW50T2Zmc2V0OkNHUG9pbnRaZXJvXV07CisgICAgW19zY3JvbGxWaWV3IHNldENvbnRl
bnRPZmZzZXQ6W3NlbGYgX2luaXRpYWxDb250ZW50T2Zmc2V0Rm9yU2Nyb2xsVmlld11dOwogICAg
IFtfc2Nyb2xsVmlldyBzZXRab29tU2NhbGU6MV07CiAKICAgICBfdmlld3BvcnRNZXRhVGFnV2lk
dGggPSBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRvOwpAQCAtMTc3OCw3ICsx
Nzk3LDcgQEAgLSAodm9pZClfZGlkQ29tbWl0TGF5ZXJUcmVlOihjb25zdCBXZWJLaXQ6OlJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uJilsYXllclRyZWUKIAogICAgIGlmIChfbmVlZHNSZXNldFZp
ZXdTdGF0ZUFmdGVyQ29tbWl0TG9hZEZvck1haW5GcmFtZSAmJiBsYXllclRyZWVUcmFuc2FjdGlv
bi50cmFuc2FjdGlvbklEKCkgPj0gX2ZpcnN0UGFpbnRBZnRlckNvbW1pdExvYWRUcmFuc2FjdGlv
bklEKSB7CiAgICAgICAgIF9uZWVkc1Jlc2V0Vmlld1N0YXRlQWZ0ZXJDb21taXRMb2FkRm9yTWFp
bkZyYW1lID0gTk87Ci0gICAgICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50T2Zmc2V0OltzZWxm
IF9hZGp1c3RlZENvbnRlbnRPZmZzZXQ6Q0dQb2ludFplcm9dXTsKKyAgICAgICAgW19zY3JvbGxW
aWV3IHNldENvbnRlbnRPZmZzZXQ6W3NlbGYgX2luaXRpYWxDb250ZW50T2Zmc2V0Rm9yU2Nyb2xs
Vmlld11dOwogICAgICAgICBpZiAoX29ic2VydmVkUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMgJiBf
V0tSZW5kZXJpbmdQcm9ncmVzc0V2ZW50Rmlyc3RQYWludCkKICAgICAgICAgICAgIF9uYXZpZ2F0
aW9uU3RhdGUtPmRpZEZpcnN0UGFpbnQoKTsKIApAQCAtMTg0Nyw3ICsxODY2LDcgQEAgLSAodm9p
ZClfZHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldFRvU2NhbGU6KGRvdWJsZSluZXdT
Y2FsZSBwb3NpdGlvbjooQ0cKICAgICAgICAgZG91YmxlIHNjYWxlID0gbmV3U2NhbGUgLyBjdXJy
ZW50VGFyZ2V0U2NhbGU7CiAgICAgICAgIF9yZXNpemVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3Rt
ZW50cyA9IENBVHJhbnNmb3JtM0RNYWtlU2NhbGUoc2NhbGUsIHNjYWxlLCAxKTsKIAotICAgICAg
ICBDR1BvaW50IG5ld0NvbnRlbnRPZmZzZXQgPSBbc2VsZiBfYWRqdXN0ZWRDb250ZW50T2Zmc2V0
OkNHUG9pbnRNYWtlKG5ld1Njcm9sbFBvc2l0aW9uLnggKiBuZXdTY2FsZSwgbmV3U2Nyb2xsUG9z
aXRpb24ueSAqIG5ld1NjYWxlKV07CisgICAgICAgIENHUG9pbnQgbmV3Q29udGVudE9mZnNldCA9
IFtzZWxmIF9jb250ZW50T2Zmc2V0QWRqdXN0ZWRGb3JPYnNjdXJlZEluc2V0OkNHUG9pbnRNYWtl
KG5ld1Njcm9sbFBvc2l0aW9uLnggKiBuZXdTY2FsZSwgbmV3U2Nyb2xsUG9zaXRpb24ueSAqIG5l
d1NjYWxlKV07CiAgICAgICAgIENHUG9pbnQgY3VycmVudENvbnRlbnRPZmZzZXQgPSBbX3Njcm9s
bFZpZXcgY29udGVudE9mZnNldF07CiAKICAgICAgICAgX3Jlc2l6ZUFuaW1hdGlvblRyYW5zZm9y
bUFkanVzdG1lbnRzLm00MSA9IChjdXJyZW50Q29udGVudE9mZnNldC54IC0gbmV3Q29udGVudE9m
ZnNldC54KSAvIGFuaW1hdGluZ1NjYWxlVGFyZ2V0OwpAQCAtMjAwNiw3ICsyMDI1LDcgQEAgLSAo
dm9pZClfc2Nyb2xsVG9Db250ZW50U2Nyb2xsUG9zaXRpb246KFdlYkNvcmU6OkZsb2F0UG9pbnQp
c2Nyb2xsUG9zaXRpb24gc2Nyb2wKICAgICBDR0Zsb2F0IHpvb21TY2FsZSA9IGNvbnRlbnRab29t
U2NhbGUoc2VsZik7CiAgICAgc2NhbGVkT2Zmc2V0LnNjYWxlKHpvb21TY2FsZSk7CiAKLSAgICBD
R1BvaW50IGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyA9IFtzZWxmIF9hZGp1
c3RlZENvbnRlbnRPZmZzZXQ6c2NhbGVkT2Zmc2V0XTsKKyAgICBDR1BvaW50IGNvbnRlbnRPZmZz
ZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyA9IFtzZWxmIF9jb250ZW50T2Zmc2V0QWRqdXN0ZWRG
b3JPYnNjdXJlZEluc2V0OnNjYWxlZE9mZnNldF07CiAgICAgY29udGVudE9mZnNldEluU2Nyb2xs
Vmlld0Nvb3JkaW5hdGVzID0gY29udGVudE9mZnNldEJvdW5kZWRJblZhbGlkUmFuZ2UoX3Njcm9s
bFZpZXcuZ2V0KCksIGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyk7CiAKICAg
ICBbX3Njcm9sbFZpZXcgX3N0b3BTY3JvbGxpbmdBbmRab29taW5nQW5pbWF0aW9uc107CkBAIC0y
MzczLDE3ICsyMzkyLDE1IEBAIC0gKHZvaWQpc2Nyb2xsVmlld1dpbGxFbmREcmFnZ2luZzooVUlT
Y3JvbGxWaWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9pCiAgICAgICAgIC8vIEZJ
WE1FOiBIZXJlLCBJJ20gZmluZGluZyB0aGUgbWF4aW11bSBob3Jpem9udGFsL3ZlcnRpY2FsIHNj
cm9sbCBvZmZzZXRzLiBUaGVyZSdzIHByb2JhYmx5IGEgYmV0dGVyIHdheSB0byBkbyB0aGlzLgog
ICAgICAgICBDR1NpemUgbWF4U2Nyb2xsT2Zmc2V0cyA9IENHU2l6ZU1ha2Uoc2Nyb2xsVmlldy5j
b250ZW50U2l6ZS53aWR0aCAtIHNjcm9sbFZpZXcuYm91bmRzLnNpemUud2lkdGgsIHNjcm9sbFZp
ZXcuY29udGVudFNpemUuaGVpZ2h0IC0gc2Nyb2xsVmlldy5ib3VuZHMuc2l6ZS5oZWlnaHQpOwog
Ci0gICAgICAgIENHUmVjdCBmdWxsVmlld1JlY3QgPSBzZWxmLmJvdW5kczsKLQotICAgICAgICBV
SUVkZ2VJbnNldHMgY29udGVudEluc2V0OworICAgICAgICBVSUVkZ2VJbnNldHMgb2JzY3VyZWRJ
bnNldDsKIAogICAgICAgICBpZDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlUHJpdmF0
ZSA9IHN0YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPj4oW3NlbGYgVUlEZWxlZ2F0
ZV0pOwogICAgICAgICBpZiAoW3VpRGVsZWdhdGVQcml2YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6ZmluYWxPYnNjdXJlZEluc2V0c0ZvclNjcm9sbFZpZXc6d2l0aFZl
bG9jaXR5OnRhcmdldENvbnRlbnRPZmZzZXQ6KV0pCi0gICAgICAgICAgICBjb250ZW50SW5zZXQg
PSBbdWlEZWxlZ2F0ZVByaXZhdGUgX3dlYlZpZXc6c2VsZiBmaW5hbE9ic2N1cmVkSW5zZXRzRm9y
U2Nyb2xsVmlldzpzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eTp2ZWxvY2l0eSB0YXJnZXRDb250ZW50
T2Zmc2V0OnRhcmdldENvbnRlbnRPZmZzZXRdOworICAgICAgICAgICAgb2JzY3VyZWRJbnNldCA9
IFt1aURlbGVnYXRlUHJpdmF0ZSBfd2ViVmlldzpzZWxmIGZpbmFsT2JzY3VyZWRJbnNldHNGb3JT
Y3JvbGxWaWV3OnNjcm9sbFZpZXcgd2l0aFZlbG9jaXR5OnZlbG9jaXR5IHRhcmdldENvbnRlbnRP
ZmZzZXQ6dGFyZ2V0Q29udGVudE9mZnNldF07CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNv
bnRlbnRJbnNldCA9IFtzZWxmIF9jb21wdXRlZENvbnRlbnRJbnNldF07CisgICAgICAgICAgICBv
YnNjdXJlZEluc2V0ID0gW3NlbGYgX2NvbXB1dGVkT2JzY3VyZWRJbnNldF07CiAKLSAgICAgICAg
Q0dSZWN0IHVub2JzY3VyZWRSZWN0ID0gVUlFZGdlSW5zZXRzSW5zZXRSZWN0KGZ1bGxWaWV3UmVj
dCwgY29udGVudEluc2V0KTsKKyAgICAgICAgQ0dSZWN0IHVub2JzY3VyZWRSZWN0ID0gVUlFZGdl
SW5zZXRzSW5zZXRSZWN0KHNlbGYuYm91bmRzLCBvYnNjdXJlZEluc2V0KTsKIAogICAgICAgICBj
b29yZGluYXRvci0+YWRqdXN0VGFyZ2V0Q29udGVudE9mZnNldEZvclNuYXBwaW5nKG1heFNjcm9s
bE9mZnNldHMsIHZlbG9jaXR5LCB1bm9ic2N1cmVkUmVjdC5vcmlnaW4ueSwgdGFyZ2V0Q29udGVu
dE9mZnNldCk7CiAgICAgfQpAQCAtMjc1MCwxNiArMjc2NywxNSBAQCAtICh2b2lkKV91cGRhdGVW
aXNpYmxlQ29udGVudFJlY3RzCiAgICAgICAgIHx8IF9jdXJyZW50bHlBZGp1c3RpbmdTY3JvbGxW
aWV3SW5zZXRzRm9yS2V5Ym9hcmQpCiAgICAgICAgIHJldHVybjsKIAotICAgIENHUmVjdCBmdWxs
Vmlld1JlY3QgPSBzZWxmLmJvdW5kczsKICAgICBDR1JlY3QgdmlzaWJsZVJlY3RJbkNvbnRlbnRD
b29yZGluYXRlcyA9IFtzZWxmIF92aXNpYmxlQ29udGVudFJlY3RdOwogCi0gICAgVUlFZGdlSW5z
ZXRzIGNvbXB1dGVkQ29udGVudEluc2V0VW5hZGp1c3RlZEZvcktleWJvYXJkID0gW3NlbGYgX2Nv
bXB1dGVkQ29udGVudEluc2V0XTsKKyAgICBVSUVkZ2VJbnNldHMgY29tcHV0ZWRDb250ZW50SW5z
ZXRVbmFkanVzdGVkRm9yS2V5Ym9hcmQgPSBbc2VsZiBfY29tcHV0ZWRPYnNjdXJlZEluc2V0XTsK
ICAgICBpZiAoIV9oYXZlU2V0T2JzY3VyZWRJbnNldHMpCiAgICAgICAgIGNvbXB1dGVkQ29udGVu
dEluc2V0VW5hZGp1c3RlZEZvcktleWJvYXJkLmJvdHRvbSAtPSBfdG90YWxTY3JvbGxWaWV3Qm90
dG9tSW5zZXRBZGp1c3RtZW50Rm9yS2V5Ym9hcmQ7CiAKICAgICBDR0Zsb2F0IHNjYWxlRmFjdG9y
ID0gY29udGVudFpvb21TY2FsZShzZWxmKTsKIAotICAgIENHUmVjdCB1bm9ic2N1cmVkUmVjdCA9
IFVJRWRnZUluc2V0c0luc2V0UmVjdChmdWxsVmlld1JlY3QsIGNvbXB1dGVkQ29udGVudEluc2V0
VW5hZGp1c3RlZEZvcktleWJvYXJkKTsKKyAgICBDR1JlY3QgdW5vYnNjdXJlZFJlY3QgPSBVSUVk
Z2VJbnNldHNJbnNldFJlY3Qoc2VsZi5ib3VuZHMsIGNvbXB1dGVkQ29udGVudEluc2V0VW5hZGp1
c3RlZEZvcktleWJvYXJkKTsKICAgICBDR1JlY3QgdW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRDb29y
ZGluYXRlcyA9IF9mcm96ZW5Vbm9ic2N1cmVkQ29udGVudFJlY3QgPyBfZnJvemVuVW5vYnNjdXJl
ZENvbnRlbnRSZWN0LnZhbHVlKCkgOiBbc2VsZiBjb252ZXJ0UmVjdDp1bm9ic2N1cmVkUmVjdCB0
b1ZpZXc6X2NvbnRlbnRWaWV3LmdldCgpXTsKICAgICB1bm9ic2N1cmVkUmVjdEluQ29udGVudENv
b3JkaW5hdGVzID0gQ0dSZWN0SW50ZXJzZWN0aW9uKHVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29v
cmRpbmF0ZXMsIFtzZWxmIF9jb250ZW50Qm91bmRzRXh0ZW5kZWRGb3JSdWJiZXJiYW5kaW5nV2l0
aFNjYWxlOnNjYWxlRmFjdG9yXSk7CiAKQEAgLTI3NjcsOCArMjc4Myw2IEBAIC0gKHZvaWQpX3Vw
ZGF0ZVZpc2libGVDb250ZW50UmVjdHMKICAgICBpZiAoaW5TdGFibGVTdGF0ZSkgewogICAgICAg
ICBXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIGNvb3JkaW5hdG9yID0g
X3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKICAgICAgICAgaWYgKGNvb3JkaW5h
dG9yICYmIGNvb3JkaW5hdG9yLT5oYXNBY3RpdmVTbmFwUG9pbnQoKSkgewotICAgICAgICAgICAg
Q0dSZWN0IHVub2JzY3VyZWRSZWN0ID0gVUlFZGdlSW5zZXRzSW5zZXRSZWN0KGZ1bGxWaWV3UmVj
dCwgY29tcHV0ZWRDb250ZW50SW5zZXRVbmFkanVzdGVkRm9yS2V5Ym9hcmQpOwotCiAgICAgICAg
ICAgICBDR1BvaW50IGN1cnJlbnRQb2ludCA9IFtfc2Nyb2xsVmlldyBjb250ZW50T2Zmc2V0XTsK
ICAgICAgICAgICAgIENHUG9pbnQgYWN0aXZlUG9pbnQgPSBjb29yZGluYXRvci0+bmVhcmVzdEFj
dGl2ZUNvbnRlbnRJbnNldEFkanVzdGVkU25hcFBvaW50KHVub2JzY3VyZWRSZWN0Lm9yaWdpbi55
LCBjdXJyZW50UG9pbnQpOwogCkBAIC0yOTQ4LDcgKzI5NjIsNyBAQCAtICh2b2lkKV9uYXZpZ2F0
aW9uR2VzdHVyZURpZEJlZ2luCiAgICAgLy8gYW4gb2Zmc2V0IGFuZCBhbmltYXRpb24gb24gaXQs
IHdoaWNoIHJlc3VsdHMgaW4gY29tcHV0aW5nIGluY29ycmVjdCByZWN0YW5nbGVzLiBXb3JrIGFy
b3VuZCBieSB1c2luZwogICAgIC8vIGZyb3plbiByZWN0cyBkdXJpbmcgc3dpcGVzLgogICAgIENH
UmVjdCBmdWxsVmlld1JlY3QgPSBzZWxmLmJvdW5kczsKLSAgICBDR1JlY3QgdW5vYnNjdXJlZFJl
Y3QgPSBVSUVkZ2VJbnNldHNJbnNldFJlY3QoZnVsbFZpZXdSZWN0LCBbc2VsZiBfY29tcHV0ZWRD
b250ZW50SW5zZXRdKTsKKyAgICBDR1JlY3QgdW5vYnNjdXJlZFJlY3QgPSBVSUVkZ2VJbnNldHNJ
bnNldFJlY3QoZnVsbFZpZXdSZWN0LCBbc2VsZiBfY29tcHV0ZWRPYnNjdXJlZEluc2V0XSk7CiAK
ICAgICBfZnJvemVuVmlzaWJsZUNvbnRlbnRSZWN0ID0gW3NlbGYgY29udmVydFJlY3Q6ZnVsbFZp
ZXdSZWN0IHRvVmlldzpfY29udGVudFZpZXcuZ2V0KCldOwogICAgIF9mcm96ZW5Vbm9ic2N1cmVk
Q29udGVudFJlY3QgPSBbc2VsZiBjb252ZXJ0UmVjdDp1bm9ic2N1cmVkUmVjdCB0b1ZpZXc6X2Nv
bnRlbnRWaWV3LmdldCgpXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKaW5kZXggMDVkNDYyYjg3NGJiNTk4ZmVmNDM1Njkx
NzliMjg5MzA2M2YzYTNmMC4uMDM1ZjNmMDg5NzYyNjhlNzY4NTY5MjJlNDE5NTFlOWVjOGViNDli
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld0ludGVybmFsLmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBzdHJ1Y3QgUHJpbnRJbmZvOwogQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS1NlbGVjdGlvbkdyYW51bGFyaXR5IF9zZWxl
Y3Rpb25HcmFudWxhcml0eTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09M
IF9hbGxvd3NEb3VibGVUYXBHZXN0dXJlczsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgVUlFZGdlSW5zZXRzIF9jb21wdXRlZENvbnRlbnRJbnNldDsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgVUlFZGdlSW5zZXRzIF9jb21wdXRlZE9ic2N1cmVkSW5zZXQ7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJRWRnZUluc2V0cyBfY29tcHV0ZWRVbm9ic2N1
cmVkU2FmZUFyZWFJbnNldDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
UERGVmlldy5tbQppbmRleCBmNjg5ODc3NmUzZDcwM2JkOTJhMmFiYzc3Y2I0NTllNGFkMjNkMzI3
Li5kZjIxMzJmNTZlNjMyNGNhYzljYzk3YjY2NTg1Y2U4MTlmM2UxZDJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0KQEAgLTMwOCw3ICszMDgsNyBAQCAtICh2b2lk
KV9yZXZhbGlkYXRlVmlld3MKIAogLSAoQ0dQb2ludClfb2Zmc2V0Rm9yUGFnZU51bWJlckluZGlj
YXRvcgogewotICAgIFVJRWRnZUluc2V0cyBpbnNldHMgPSBVSUVkZ2VJbnNldHNBZGQoX3dlYlZp
ZXcuX2NvbXB1dGVkVW5vYnNjdXJlZFNhZmVBcmVhSW5zZXQsIF93ZWJWaWV3Ll9jb21wdXRlZENv
bnRlbnRJbnNldCwgVUlSZWN0RWRnZUFsbCk7CisgICAgVUlFZGdlSW5zZXRzIGluc2V0cyA9IFVJ
RWRnZUluc2V0c0FkZChfd2ViVmlldy5fY29tcHV0ZWRVbm9ic2N1cmVkU2FmZUFyZWFJbnNldCwg
X3dlYlZpZXcuX2NvbXB1dGVkT2JzY3VyZWRJbnNldCwgVUlSZWN0RWRnZUFsbCk7CiAgICAgcmV0
dXJuIENHUG9pbnRNYWtlKGluc2V0cy5sZWZ0LCBpbnNldHMudG9wICsgX292ZXJsYWlkQWNjZXNz
b3J5Vmlld3NJbnNldC5oZWlnaHQpOwogfQogCkBAIC0zNjYsNyArMzY2LDcgQEAgLSAodm9pZClf
c2Nyb2xsVG9GcmFnbWVudDooTlNTdHJpbmcgKilmcmFnbWVudAogICAgIFtzZWxmIF9yZXNldFpv
b21BbmltYXRlZDpOT107CiAKICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgcGFnZSBtYXJnaW4gaXMg
dmlzaWJsZSBiZWxvdyB0aGUgY29udGVudCBpbnNldC4KLSAgICBjb25zdCBDR0Zsb2F0IHZlcnRp
Y2FsT2Zmc2V0ID0gX3BhZ2VzW3BhZ2VJbmRleF0uZnJhbWUub3JpZ2luLnkgLSBfd2ViVmlldy5f
Y29tcHV0ZWRDb250ZW50SW5zZXQudG9wIC0gcGRmUGFnZU1hcmdpbjsKKyAgICBjb25zdCBDR0Zs
b2F0IHZlcnRpY2FsT2Zmc2V0ID0gX3BhZ2VzW3BhZ2VJbmRleF0uZnJhbWUub3JpZ2luLnkgLSBf
d2ViVmlldy5fY29tcHV0ZWRPYnNjdXJlZEluc2V0LnRvcCAtIHBkZlBhZ2VNYXJnaW47CiAgICAg
W19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6Q0dQb2ludE1ha2UoX3Njcm9sbFZpZXcuY29u
dGVudE9mZnNldC54LCB2ZXJ0aWNhbE9mZnNldCkgYW5pbWF0ZWQ6Tk9dOwogCiAgICAgX2lzUGVy
Zm9ybWluZ1NhbWVEb2N1bWVudE5hdmlnYXRpb24gPSBOTzsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxYmI2YjNiZGM3MDNjNjE3MmExNDMxNzNk
MDU0NDk4ODI5NWU4NWIzLi4yYTk1OWVlODk2ODlkNTRhYTkyOThkZmUxODg0ZGY3ZDU1YThhZWRj
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTgtMDMtMTQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CisKKyAgICAgICAgW2lPUyBXSzJdIEhpdC10ZXN0aW5nIGZhaWxzIHdoZW4gc3BlY2lm
eWluZyBhIGxhcmdlIHRvcCBjb250ZW50IGluc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM2NDgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4
NDIxODk0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgZm91ciBuZXcgQVBJIHRlc3RzIHRvIHZlcmlmeSB0aGF0IGFkZGluZyB0b3Agb3IgYm90
dG9tIGNvbnRlbnQgaW5zZXRzIHRvIHRoZSBXS1dlYlZpZXcncyBzY3JvbGwgdmlldyBkb2VzCisg
ICAgICAgIG5vdCBjYXVzZSB0aGUgRE9NV2luZG93J3MgaW5uZXJIZWlnaHQgdG8gc2hyaW5rLiBD
dXJyZW50bHksIGRvaW5nIHNvIHdvdWxkIGNhdXNlIHRoZSBpbm5lckhlaWdodCB0byBiZSByZXBv
cnRlZAorICAgICAgICBhcyAodmlld0hlaWdodCAtIGluc2V0LnRvcCkgb3IgKHZpZXdIZWlnaHQg
LSBpbnNldC5ib3R0b20pLgorCisgICAgICAgIFNlZSBXZWJLaXQgQ2hhbmdlTG9nIGZvciBtb3Jl
IGRldGFpbHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9T
Y3JvbGxWaWV3SW5zZXRUZXN0cy5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKwogMjAxOC0wMy0xNCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMYXlvdXRSZWxvYWRlZF0gQWRkIElubGluZUJveCBkdW1wCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDM2YzZkYjEzOTIxYzA2YmJjZWRhZmUyMDljZmJjMTJhNWNkYjU3MDEuLmIz
OTQ4ODUwY2MwNzE1ZDQzNjZiNDk1OWQwMmNkNjI0ZjU0OTI2NWMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC03NjgsNiArNzY4LDcgQEAKIAkJRjRCODI1RDgxRUY0REJGQjAwNkU0MTdGIC8q
IGNvbXByZXNzZWQtZmlsZXMuemlwIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0QjgyNUQ2MUVGNERCRDQwMDZFNDE3RiAvKiBjb21wcmVzc2Vk
LWZpbGVzLnppcCAqLzsgfTsKIAkJRjRCRkE2OEUxRTRBRDA4MDAwMTU0Mjk4IC8qIERyYWdBbmRE
cm9wUGFzdGVib2FyZFRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjRCRkE2OEMxRTRBRDA4MDAwMTU0Mjk4IC8qIERyYWdBbmREcm9wUGFzdGVi
b2FyZFRlc3RzLm1tICovOyB9OwogCQlGNEMyQUIyMjFERDZEOTVFMDBFMDZENUIgLyogZW5vcm1v
dXMtdmlkZW8td2l0aC1zb3VuZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QzJBQjIxMURENkQ5NDEwMEUwNkQ1QiAvKiBlbm9ybW91
cy12aWRlby13aXRoLXNvdW5kLmh0bWwgKi87IH07CisJCUY0Qzg3OTdGMjA1OUQ4RDMwMDlDRDAw
QiAvKiBTY3JvbGxWaWV3SW5zZXRUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0Qzg3OTdFMjA1OUQ4RDMwMDlDRDAwQiAvKiBTY3JvbGxWaWV3
SW5zZXRUZXN0cy5tbSAqLzsgfTsKIAkJRjRENEYzQjYxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJ
bnRlcmFjdGlvblNpbXVsYXRvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0RDRGM0I0MUU0RTJCQ0IwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25T
aW11bGF0b3IubW0gKi87IH07CiAJCUY0RDRGM0I5MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50
ZXJhY3Rpb25UZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0RDRGM0I3MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5t
bSAqLzsgfTsKIAkJRjRENUU0RTgxRjBDNUQzODAwOEMxQTQ5IC8qIGRyYWdzdGFydC1jbGVhci1z
ZWxlY3Rpb24uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNEQ1RTRFNzFGMEM1RDI3MDA4QzFBNDkgLyogZHJhZ3N0YXJ0LWNsZWFyLXNl
bGVjdGlvbi5odG1sICovOyB9OwpAQCAtODUzLDcgKzg1NCw2IEBACiAJCQlkc3RQYXRoID0gVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXM7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gNzsKIAkJCWZpbGVz
ID0gKAotCQkJCUNENzU4QTZGMjA1NzJFQTAwMDcxODM0QSAvKiB2aWRlby13aXRoLXBhdXNlZC1h
dWRpby1hbmQtcGxheWluZy1tdXRlZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTFB
OUU1MkM5MTNFNjVFRjQwMDY5MTdGNSAvKiAxOC1jaGFyYWN0ZXJzLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJMzc5MDI4QjkxNEZBQzI0QzAwN0U2QjQzIC8qIGFjY2VwdHNGaXJzdE1v
dXNlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMUMyQjgxODcxQzg5MjVBMDAwQTU1
MjlGIC8qIEFoZW0udHRmIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTA4OCw2ICsxMDg4LDcg
QEAKIAkJCQlDREM4RTQ5NTFCQzZGMTA4MDA1OTRGRUMgLyogdmlkZW8td2l0aC1hdWRpby5tcDQg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0QzMjFCMDQxRTNBODVGQTAwRUIyMUM4IC8qIHZp
ZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJQ0RCNDExNUExRTBCMDBEQjAwRUFEMzUyIC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVk
aW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlDRDc1OEE2RjIwNTcyRUEwMDA3MTgz
NEEgLyogdmlkZW8td2l0aC1wYXVzZWQtYXVkaW8tYW5kLXBsYXlpbmctbXV0ZWQuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQlDREM4RTQ5NjFCQzZGMTA4MDA1OTRGRUMgLyogdmlkZW8t
d2l0aG91dC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUNEQzhFNDk3MUJD
NkYxMDgwMDU5NEZFQyAvKiB2aWRlby13aXRob3V0LWF1ZGlvLm1wNCBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQkxQzJCODE4NjFDODkyNTlEMDBBNTUyOUYgLyogd2ViZm9udC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLApAQCAtMTkwNyw2ICsxOTA4LDcgQEAKIAkJRjRCODI1RDYxRUY0REJE
NDAwNkU0MTdGIC8qIGNvbXByZXNzZWQtZmlsZXMuemlwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gYXJjaGl2ZS56aXA7IHBhdGggPSAiY29tcHJlc3Nl
ZC1maWxlcy56aXAiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEJGQTY4QzFFNEFE
MDgwMDAxNTQyOTggLyogRHJhZ0FuZERyb3BQYXN0ZWJvYXJkVGVzdHMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDMkFCMjExREQ2RDk0MTAwRTA2RDVC
IC8qIGVub3Jtb3VzLXZpZGVvLXdpdGgtc291bmQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJlbm9ybW91cy12aWRlby13aXRoLXNvdW5kLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNEM4Nzk3RTIwNTlEOEQzMDA5Q0QwMEIgLyogU2Nyb2xsVmlld0luc2V0
VGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxWaWV3SW5zZXRUZXN0cy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8q
IERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjRENEYzQjUxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlv
blNpbXVsYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhSW50ZXJh
Y3Rpb25TaW11bGF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENEYzQjcx
RTRFMzZFNDAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblRlc3RzLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YUludGVyYWN0aW9uVGVzdHMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzE5LDYgKzIzMjEsNyBAQAogCQkJCUY0NUI2M0ZD
MUYxOUQ0MTAwMDlEMzhCOSAvKiBBY3Rpb25TaGVldFRlc3RzLm1tICovLAogCQkJCUY0RDRGM0I3
MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSAqLywKIAkJCQk3NTYw
OTE3NzE5MjU5QzU5MDA5RUYwNkUgLyogTWVtb3J5Q2FjaGVBZGRJbWFnZVRvQ2FjaGVJT1MubW0g
Ki8sCisJCQkJRjRDODc5N0UyMDU5RDhEMzAwOUNEMDBCIC8qIFNjcm9sbFZpZXdJbnNldFRlc3Rz
Lm1tICovLAogCQkJCUY0Njg0OUJEMUVFRjU4RTQwMEI5MzdGRSAvKiBVSVBhc3RlYm9hcmRUZXN0
cy5tbSAqLywKIAkJCQkyRTFCODgxRTIwNDBFRTUzMDBGRkY2QTkgLyogVmlld3BvcnRTaXppbmdU
ZXN0cy5tbSAqLywKIAkJCQk1MTQ5NThCRDFGNzQyN0FDMDBFODdCQUQgLyogV0tXZWJWaWV3QXV0
b2ZpbGxUZXN0cy5tbSAqLywKQEAgLTMxMDcsOCArMzExMCw4IEBACiAJCQkJQ0RDOEU0ODkxQkM1
Qzk2MjAwNTk0RkVDIC8qIHZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLywKIAkJCQlDREM4RTQ4QTFC
QzVDOTYyMDA1OTRGRUMgLyogdmlkZW8td2l0aC1hdWRpby5tcDQgKi8sCiAJCQkJQ0QzMjFCMDMx
RTNBODRCNzAwRUIyMUM4IC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8tYW5kLXdlYmF1ZGlvLmh0
bWwgKi8sCi0JCQkJQ0Q3NThBNkUyMDU3MkQ1NDAwNzE4MzRBIC8qIHZpZGVvLXdpdGgtcGF1c2Vk
LWF1ZGlvLWFuZC1wbGF5aW5nLW11dGVkLmh0bWwgKi8sCiAJCQkJQ0RCNDExNTkxRTA5REE4RTAw
RUFEMzUyIC8qIHZpZGVvLXdpdGgtbXV0ZWQtYXVkaW8uaHRtbCAqLywKKwkJCQlDRDc1OEE2RTIw
NTcyRDU0MDA3MTgzNEEgLyogdmlkZW8td2l0aC1wYXVzZWQtYXVkaW8tYW5kLXBsYXlpbmctbXV0
ZWQuaHRtbCAqLywKIAkJCQlDREM4RTQ4QjFCQzVDOTYyMDA1OTRGRUMgLyogdmlkZW8td2l0aG91
dC1hdWRpby5odG1sICovLAogCQkJCUNEQzhFNDhDMUJDNUM5NjIwMDU5NEZFQyAvKiB2aWRlby13
aXRob3V0LWF1ZGlvLm1wNCAqLywKIAkJCSk7CkBAIC0zNjM3LDYgKzM2NDAsNyBAQAogCQkJCUEx
ODBDMEZBMUVFNjdERjAwMDQ2OEY0NyAvKiBSdW5PcGVuUGFuZWwubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDRENGQTdBQTFFNDUxODMyMDBDMjQzM0QgLyogU2FtcGxlTWFwLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDQ0U3RjEyMUE0MTFBRTYwMDQ0N0M0QyAvKiBTY3JvbGxQaW5uaW5nQmVoYXZp
b3JzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY0Qzg3OTdGMjA1OUQ4RDMwMDlDRDAwQiAvKiBT
Y3JvbGxWaWV3SW5zZXRUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNFMDZERjlCMUUxODUx
RjIwMEU1NzBDOSAvKiBTZWN1cml0eU9yaWdpbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NzY5
QzUwQjFEOUIwMDAyMDAwODQ3RkIgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1MUVCMTI5NDFGREYwNTI1MDBBNUExQkQgLyogU2VydmljZVdvcmtlckJh
c2ljLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL2lvcy9TY3JvbGxWaWV3SW5zZXRUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvaW9zL1Njcm9sbFZpZXdJbnNldFRlc3RzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiYTIxYmJjZGRjYjc4
YjQ5NTk4NzhjMzBjZTcxZjkxNzZhMTVjNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL2lvcy9TY3JvbGxWaWV3SW5zZXRUZXN0cy5tbQpAQCAtMCwwICsxLDEz
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0FQSV9FTkFC
TEVEICYmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNp
bXBvcnQgIlRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcu
aCIKKyNpbXBvcnQgIlVJS2l0U1BJLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0
ZS5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyBjb25zdCBDR0Zsb2F0
IHZpZXdIZWlnaHQgPSA1MDA7CitzdGF0aWMgTlNTdHJpbmcgKnZlcnlUYWxsRG9jdW1lbnRNYXJr
dXAgPSBAIjxtZXRhIG5hbWU9J3ZpZXdwb3J0JyBjb250ZW50PSd3aWR0aD1kZXZpY2Utd2lkdGgs
IGluaXRpYWwtc2NhbGU9MSc+PGJvZHkgc3R5bGU9J3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDUwMDBw
eCc+IjsKKworVEVTVChTY3JvbGxWaWV3SW5zZXRUZXN0cywgSW5uZXJIZWlnaHRXaXRoTGFyZ2VU
b3BDb250ZW50SW5zZXQpCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIHZpZXdIZWln
aHQpXSk7CisgICAgW3dlYlZpZXcgc2Nyb2xsVmlld10uY29udGVudEluc2V0ID0gVUlFZGdlSW5z
ZXRzTWFrZSg0MDAsIDAsIDAsIDApOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRN
TFN0cmluZzp2ZXJ5VGFsbERvY3VtZW50TWFya3VwXTsKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAic2Nyb2xsVG8oMCwgMTApIl07CisgICAgW3dlYlZpZXcgd2Fp
dEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9FUSh2aWV3SGVpZ2h0LCBb
W3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImlubmVySGVpZ2h0Il0gZmxv
YXRWYWx1ZV0pOworICAgIEVYUEVDVF9FUSgxMCwgW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGlu
Z0phdmFTY3JpcHQ6QCJwYWdlWU9mZnNldCJdIGZsb2F0VmFsdWVdKTsKKworICAgIFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJzY3JvbGxCeSgwLCAtMTApIl07CisgICAg
W3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVDVF9FUSh2
aWV3SGVpZ2h0LCBbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImlubmVy
SGVpZ2h0Il0gZmxvYXRWYWx1ZV0pOworICAgIEVYUEVDVF9FUSgwLCBbW3dlYlZpZXcgb2JqZWN0
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInBhZ2VZT2Zmc2V0Il0gZmxvYXRWYWx1ZV0pOworCisg
ICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInNjcm9sbEJ5KDAsIDIw
KSJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBF
WFBFQ1RfRVEodmlld0hlaWdodCwgW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJpbm5lckhlaWdodCJdIGZsb2F0VmFsdWVdKTsKKyAgICBFWFBFQ1RfRVEoMjAsIFtbd2Vi
VmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAicGFnZVlPZmZzZXQiXSBmbG9hdFZh
bHVlXSk7Cit9CisKK1RFU1QoU2Nyb2xsVmlld0luc2V0VGVzdHMsIElubmVySGVpZ2h0V2l0aExh
cmdlQm90dG9tQ29udGVudEluc2V0KQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCB2
aWV3SGVpZ2h0KV0pOworICAgIFt3ZWJWaWV3IHNjcm9sbFZpZXddLmNvbnRlbnRJbnNldCA9IFVJ
RWRnZUluc2V0c01ha2UoMCwgMCwgNDAwLCAwKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5
TG9hZEhUTUxTdHJpbmc6dmVyeVRhbGxEb2N1bWVudE1hcmt1cF07CisgICAgW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInNjcm9sbFRvKDAsIDEwKSJdOworICAgIFt3ZWJW
aWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfRVEodmlld0hl
aWdodCwgW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJpbm5lckhlaWdo
dCJdIGZsb2F0VmFsdWVdKTsKKyAgICBFWFBFQ1RfRVEoMTAsIFtbd2ViVmlldyBvYmplY3RCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAicGFnZVlPZmZzZXQiXSBmbG9hdFZhbHVlXSk7CisKKyAgICBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic2Nyb2xsQnkoMCwgLTEwKSJd
OworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBF
Q1RfRVEodmlld0hlaWdodCwgW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJpbm5lckhlaWdodCJdIGZsb2F0VmFsdWVdKTsKKyAgICBFWFBFQ1RfRVEoMCwgW1t3ZWJWaWV3
IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJwYWdlWU9mZnNldCJdIGZsb2F0VmFsdWVd
KTsKKworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJzY3JvbGxC
eSgwLCAyMCkiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07
CisgICAgRVhQRUNUX0VRKHZpZXdIZWlnaHQsIFtbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdK
YXZhU2NyaXB0OkAiaW5uZXJIZWlnaHQiXSBmbG9hdFZhbHVlXSk7CisgICAgRVhQRUNUX0VRKDIw
LCBbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInBhZ2VZT2Zmc2V0Il0g
ZmxvYXRWYWx1ZV0pOworfQorCitURVNUKFNjcm9sbFZpZXdJbnNldFRlc3RzLCBSZXN0b3JlSW5p
dGlhbENvbnRlbnRPZmZzZXRBZnRlck5hdmlnYXRpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgw
LCAwLCAzMjAsIHZpZXdIZWlnaHQpXSk7CisgICAgW3dlYlZpZXcgc2Nyb2xsVmlld10uY29udGVu
dEluc2V0ID0gVUlFZGdlSW5zZXRzTWFrZSg0MDAsIDAsIDAsIDApOworICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzp2ZXJ5VGFsbERvY3VtZW50TWFya3VwXTsKKyAgICBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAic2Nyb2xsVG8oMCwgMTAwMCki
XTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisKKyAgICBD
R1BvaW50IGNvbnRlbnRPZmZzZXRBZnRlclNjcm9sbGluZyA9IFt3ZWJWaWV3IHNjcm9sbFZpZXdd
LmNvbnRlbnRPZmZzZXQ7CisgICAgRVhQRUNUX0VRKDAsIGNvbnRlbnRPZmZzZXRBZnRlclNjcm9s
bGluZy54KTsKKyAgICBFWFBFQ1RfRVEoMTAwMCwgY29udGVudE9mZnNldEFmdGVyU2Nyb2xsaW5n
LnkpOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGJvZHkg
Ymdjb2xvcj0ncmVkJz4iXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVw
ZGF0ZV07CisKKyAgICBDR1BvaW50IGNvbnRlbnRPZmZzZXRBZnRlck5hdmlnYXRpb24gPSBbd2Vi
VmlldyBzY3JvbGxWaWV3XS5jb250ZW50T2Zmc2V0OworICAgIEVYUEVDVF9FUSgwLCBjb250ZW50
T2Zmc2V0QWZ0ZXJOYXZpZ2F0aW9uLngpOworICAgIEVYUEVDVF9FUSgtNDAwLCBjb250ZW50T2Zm
c2V0QWZ0ZXJOYXZpZ2F0aW9uLnkpOworfQorCitURVNUKFNjcm9sbFZpZXdJbnNldFRlc3RzLCBS
ZXN0b3JlSW5pdGlhbENvbnRlbnRPZmZzZXRBZnRlckNyYXNoKQoreworICAgIGF1dG8gZGVsZWdh
dGUgPSBhZG9wdE5TKFtbVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAg
IGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCB2aWV3SGVpZ2h0KV0pOworICAgIFt3ZWJWaWV3IHNj
cm9sbFZpZXddLmNvbnRlbnRJbnNldCA9IFVJRWRnZUluc2V0c01ha2UoNDAwLCAwLCAwLCAwKTsK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6dmVyeVRhbGxEb2N1bWVu
dE1hcmt1cF07CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsKKworICAgIENHUG9pbnQgaW5pdGlhbENvbnRlbnRPZmZzZXQgPSBbd2ViVmlldyBzY3Jv
bGxWaWV3XS5jb250ZW50T2Zmc2V0OworICAgIF9fYmxvY2sgQ0dQb2ludCBjb250ZW50T2Zmc2V0
QWZ0ZXJDcmFzaCA9IENHUG9pbnRaZXJvOworICAgIF9fYmxvY2sgYm9vbCBkb25lID0gZmFsc2U7
CisgICAgW2RlbGVnYXRlIHNldFdlYkNvbnRlbnRQcm9jZXNzRGlkVGVybWluYXRlOl4oV0tXZWJW
aWV3ICp3ZWJWaWV3KSB7CisgICAgICAgIGNvbnRlbnRPZmZzZXRBZnRlckNyYXNoID0gd2ViVmll
dy5zY3JvbGxWaWV3LmNvbnRlbnRPZmZzZXQ7CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1d
OworCisgICAgW3dlYlZpZXcgX2tpbGxXZWJDb250ZW50UHJvY2Vzc0FuZFJlc2V0U3RhdGVdOwor
ICAgIFV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBFWFBFQ1RfRVEoaW5pdGlhbENvbnRlbnRPZmZz
ZXQueCwgY29udGVudE9mZnNldEFmdGVyQ3Jhc2gueCk7CisgICAgRVhQRUNUX0VRKGluaXRpYWxD
b250ZW50T2Zmc2V0LnksIGNvbnRlbnRPZmZzZXRBZnRlckNyYXNoLnkpOworICAgIEVYUEVDVF9F
USgwLCBpbml0aWFsQ29udGVudE9mZnNldC54KTsKKyAgICBFWFBFQ1RfRVEoLTQwMCwgaW5pdGlh
bENvbnRlbnRPZmZzZXQueSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKwor
I2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVEICYmIFBMQVRGT1JNKElPUykK
</data>

          </attachment>
      

    </bug>

</bugzilla>