<?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>33923</bug_id>
          
          <creation_ts>2010-01-20 15:55:59 -0800</creation_ts>
          <short_desc>REGRESSION (Safari 4): AXValueChanged no longer sent for text area scrollbars</short_desc>
          <delta_ts>2013-09-30 12:56:37 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>33300</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>adele</cc>
    
    <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>cfleizach</cc>
    
    <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>jcraig</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>182956</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-01-20 15:55:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/6942686&gt;

When we switched off of AppKit form controls, we stopped sending AXValueChanged notifications when textareas and other scrollable regions inside the WebView are scrolled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182959</commentid>
    <comment_count>1</comment_count>
      <attachid>47075</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-01-20 16:10:57 -0800</bug_when>
    <thetext>Created attachment 47075
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182966</commentid>
    <comment_count>2</comment_count>
      <attachid>47075</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-01-20 16:23:27 -0800</bug_when>
    <thetext>Comment on attachment 47075
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182968</commentid>
    <comment_count>3</comment_count>
      <attachid>47075</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-20 16:29:50 -0800</bug_when>
    <thetext>Comment on attachment 47075
Patch

I know Oliver already reviewed by I have a few comments and questions.

&gt; +void AXObjectCache::postNotification(AccessibilityObject* obj, AXNotification notification, bool postToElement, PostType postType)

New code should use &quot;object&quot;, not &quot;obj&quot;. I understand this was just copied and pasted, but still I would prefer a word to an abbreviation.

&gt;      void postNotification(RenderObject*, AXNotification, bool postToElement, PostType = PostAsynchronously);
&gt; +    void postNotification(AccessibilityObject*, AXNotification, bool postToElement, PostType = PostAsynchronously);

I think the new postNotification code should share code with the old one. Maybe the old one could call the new one?

&gt; +    return adoptRef(new AccessibilityScrollbar());

No parentheses needed here.

&gt; +        return 0.0f;

Just 0 is our style, not 0.0f.

&gt; +class AccessibilityScrollbar : public AccessibilityObject {
&gt; +    
&gt; +public:

No blank line needed.

&gt; +    virtual ~AccessibilityScrollbar() { }

No need to define this destructor explicitly. It should work fine without this.

&gt; +    virtual AccessibilityRole roleValue() const { return ScrollBarRole; }

Can’t you call setRoleValue instead of overriding this?

&gt; +    virtual bool accessibilityIsIgnored() const { return false; }

I think this should be private since it would be a programming mistake to call it directly.

&gt; +    virtual IntSize size() const { return IntSize(); }
&gt; +    virtual IntRect elementRect() const { return IntRect(); }
&gt; +    virtual AccessibilityObject* parentObject() const { return 0; }
&gt; +    virtual float valueForRange() const;

These could probably also all be private.

Is it really right for these all to be empty and zero in this way? Shouldn’t the scrollbar be a child of the accessibility object representing the container it scrolls or something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182974</commentid>
    <comment_count>4</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-01-20 16:47:10 -0800</bug_when>
    <thetext>I will update my patch to fix all of the things you mentioned, but I want to respond to you last comment in the meantime.

&gt; 
&gt; Is it really right for these all to be empty and zero in this way? Shouldn’t
&gt; the scrollbar be a child of the accessibility object representing the container
&gt; it scrolls or something?

There are three options for the empty-and-zero functions thing:

1. They are empty and zero.
2. I make it so those functions are no longer pure virtual, and therefore, they have no implementation in AccessibilityScrollbar.
3. They return real values. 

#3 may seem obviously right to you, but it was not to me. To my knowledge, scrollbars in accessibility only need to send out this notification and potentially report on their placement (hence the implementation of valueForRange() in the class), so they don&apos;t need to report on their size or anything. I arbitrarily selected between the three options because there was no clear winner to me, but I am open to doing it a different way.

Since, as I explained above, to my knowledge scrollbars do not need to do anything else in accessibility besides send this notification, I did not make them a child of the container it scrolls. I considered doing it that way, but a renderer for the container is not available in Scrollbar::scroll(), so it didn&apos;t make sense to me to find a spot where the renderer is available since I don&apos;t know of any value of having the scrollbar be a child of the container it scrolls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182975</commentid>
    <comment_count>5</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-01-20 16:47:51 -0800</bug_when>
    <thetext>Darin, I am adding you as a cc since I would like your feedback on my comment to your comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182980</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-20 16:52:51 -0800</bug_when>
    <thetext>I think you should add ASSERT_NOT_REACHED as we discussed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183300</commentid>
    <comment_count>7</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-01-21 13:32:38 -0800</bug_when>
    <thetext>With Darin&apos;s feedback, I committed r53644.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183335</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-21 15:01:40 -0800</bug_when>
    <thetext>Looks like this broke Leopard:
http://build.webkit.org/results/Leopard%20Intel%20Release%20(Tests)/r53644%20(9697)/platform/mac/editing/deleting/backward-delete-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183337</commentid>
    <comment_count>9</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-01-21 15:06:12 -0800</bug_when>
    <thetext>Hmm, I am not convinced that this change could have caused such a failure. Are you sure it was this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183341</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-21 15:16:34 -0800</bug_when>
    <thetext>I was just looking at http://build.webkit.org/console.

just before this checkin, r53643 is green: http://build.webkit.org/builders/Leopard%20Intel%20Release%20%28Tests%29/builds/9696

this checkin, r53644 is RED:
http://build.webkit.org/builders/Leopard%20Intel%20Release%20%28Tests%29/builds/9697

the next checkin 53645 is RED:
http://build.webkit.org/builders/Leopard%20Intel%20Release%20%28Tests%29/builds/9698
(for the same reason)

It&apos;s possible something changed on the bot.  But the buildbot seems to incriminate r53644 which was this bug.
http://trac.webkit.org/changeset/53644</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183369</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-21 16:23:50 -0800</bug_when>
    <thetext>The AX notification stuff is suspect, see bug 33300.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183371</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-21 16:26:43 -0800</bug_when>
    <thetext>All the tests pass when I do:
run-webkit-tests --release -i platform/mac/accessibility/change-notification-on-scroll.html

This checkin is definitely at fault.  Not sure why yet.  We should roll it out if we don&apos;t have a fix in the works or plan to skip this new test, no need to leave the bots green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183372</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-21 16:28:31 -0800</bug_when>
    <thetext>CCing author of http://trac.webkit.org/browser/trunk/LayoutTests/platform/mac/editing/deleting/backward-delete.html

and cfleizach (who wrote the DRT AX system).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183374</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-21 16:28:58 -0800</bug_when>
    <thetext>I ran
run-webkit-tests --release --guard
platform/mac/accessibility/change-notification-on-scroll.html

and saw no failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183376</commentid>
    <comment_count>15</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2010-01-21 16:29:45 -0800</bug_when>
    <thetext>I will add the test to the Skipped list for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183378</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-21 16:34:59 -0800</bug_when>
    <thetext>All tests just passed on the bot?
http://build.webkit.org/builders/Leopard%20Intel%20Release%20%28Tests%29/builds/9710

Maybe this change caused a flakey test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186667</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-01 16:14:27 -0800</bug_when>
    <thetext>Attachment 47075 was posted by a committer and has review+, assigning to Beth Dakin for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187139</commentid>
    <comment_count>18</comment_count>
      <attachid>47075</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-02 14:12:33 -0800</bug_when>
    <thetext>Comment on attachment 47075
Patch

Obsoleting this patch since it was landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>934770</commentid>
    <comment_count>19</comment_count>
    <who name="James Craig">jcraig</who>
    <bug_when>2013-09-30 12:56:37 -0700</bug_when>
    <thetext>Closing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47075</attachid>
            <date>2010-01-20 16:10:57 -0800</date>
            <delta_ts>2010-02-02 14:12:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>forReview.txt</filename>
            <type>text/plain</type>
            <size>18927</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MzU3NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTAtMDEtMjAgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBm
b3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzOTIzIFJFR1JFU1NJ
T04gCisgICAgICAgIChTYWZhcmkgNCk6IEFYVmFsdWVDaGFuZ2VkIG5vIGxvbmdlciBzZW50IGZv
ciB0ZXh0IGFyZWEgc2Nyb2xsYmFycworICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS82OTQyNjg2PgorCisgICAgICAgIE5ldyBjbGFzcyBBY2Nlc3Np
YmlsaXR5U2Nyb2xsYmFyIGluaGVyaXRzIGRpcmVjdGx5IGZyb20gCisgICAgICAgIEFjY2Vzc2li
aWxpdHlPYmplY3QuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNjcm9sbGJhcjo6QWNjZXNzaWJp
bGl0eVNjcm9sbGJhcik6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNjcm9sbGJhcjo6dmFs
dWVGb3JSYW5nZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2Nyb2xs
YmFyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVNjcm9sbGJhcjo6
fkFjY2Vzc2liaWxpdHlTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eVNjcm9sbGJhcjo6cm9sZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlT
Y3JvbGxiYXI6OmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVNjcm9sbGJhcjo6c2V0U2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlTY3JvbGxiYXI6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVNjcm9sbGJhcjo6ZWxlbWVudFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVNjcm9sbGJhcjo6cGFyZW50T2JqZWN0KToKKworICAgICAgICBBWE9iamVjdENhY2hlOjpn
ZXRPckNyZWF0ZSgpIG5vdyBoYXMgYSBjYXNlIGZvciBTY3JvbGxCYXJSb2xlLCAKKyAgICAgICAg
d2hpY2ggd2lsbCBjcmVhdGUgYSBuZXcgQWNjZXNzaWJpbGl0eVNjcm9sbGJhci4gSSBhbHNvIGFk
ZGVkIGEgbmV3IAorICAgICAgICB2ZXJzaW9uIG9mIHBvc3ROb3RpZmljYXRpb24oKSB0aGF0IGRv
ZXMgbm90IHJlcXVpcmUgYSByZW5kZXJlci4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Z2V0T3JDcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbik6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CisKKyAgICAgICAgV2hl
biBBWCBpcyBlbmFibGVkLCBnZXRPckNyZWF0ZSBhbiBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyIGFu
ZCBzZW5kIAorICAgICAgICBhIG5vdGlmaWNhdGlvbi4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpzY3JvbGwpOgorCiAyMDEw
LTAxLTIwICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEbWl0cnkgVGl0b3YuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gNTM1NTcpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjI5NSw2ICsyMjk1LDggQEAKIAkJ
OTM2MjY0MEIwREUxMTM3RDAwOUQ1QTAwIC8qIENTU1JlZmxlY3Rpb25EaXJlY3Rpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNjI2NDBBMERFMTEz
N0QwMDlENUEwMCAvKiBDU1NSZWZsZWN0aW9uRGlyZWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM2M0I2MkMwRjhFOEZFMDAwODAzODEw
IC8qIEhpc3RvcnlQcm9wZXJ0eUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM2M0I2MkEwRjhFOEZFMDAwODAzODEwIC8qIEhpc3RvcnlQcm9w
ZXJ0eUxpc3QuY3BwICovOyB9OwogCQk5MzYzQjYyRDBGOEU4RkUwMDA4MDM4MTAgLyogSGlzdG9y
eVByb3BlcnR5TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTM2M0I2MkIwRjhFOEZFMDAwODAzODEwIC8qIEhpc3RvcnlQcm9wZXJ0eUxpc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzY4ODM4
RDExMDc5RDEzMDA3NzM1NDIgLyogQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzY4ODM4QjExMDc5RDEzMDA3
NzM1NDIgLyogQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHAgKi87IH07CisJCTkzNjg4MzhFMTEw
NzlEMTMwMDc3MzU0MiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzY4ODM4QzExMDc5RDEzMDA3NzM1NDIg
LyogQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oICovOyB9OwogCQk5Mzc5OUVGODBCRjI3NDM2MDBE
MEYyMzAgLyogUmVuZGVyV29yZEJyZWFrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzNzk5RUY2MEJGMjc0MzYwMEQwRjIzMCAvKiBSZW5kZXJXb3Jk
QnJlYWsuY3BwICovOyB9OwogCQk5Mzc5OUVGOTBCRjI3NDM2MDBEMEYyMzAgLyogUmVuZGVyV29y
ZEJyZWFrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
Mzc5OUVGNzBCRjI3NDM2MDBEMEYyMzAgLyogUmVuZGVyV29yZEJyZWFrLmggKi87IH07CiAJCTkz
ODBGNDczMDlBMTFBQjQwMDFGREIzNCAvKiBXaWRnZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM4MEY0NzEwOUExMUFCNDAwMUZEQjM0IC8qIFdp
ZGdldC5jcHAgKi87IH07CkBAIC03NjI3LDYgKzc2MjksOCBAQAogCQk5MzYyNjQwQTBERTExMzdE
MDA5RDVBMDAgLyogQ1NTUmVmbGVjdGlvbkRpcmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDU1NSZWZsZWN0aW9uRGlyZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzNjNCNjJBMEY4RThGRTAwMDgwMzgxMCAvKiBIaXN0b3J5UHJvcGVydHlM
aXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpc3RvcnlQcm9w
ZXJ0eUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzYzQjYyQjBGOEU4
RkUwMDA4MDM4MTAgLyogSGlzdG9yeVByb3BlcnR5TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIaXN0b3J5UHJvcGVydHlMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTkzNjg4MzhCMTEwNzlEMTMwMDc3MzU0MiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xs
YmFyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjY2Vzc2liaWxp
dHlTY3JvbGxiYXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzY4ODM4QzEx
MDc5RDEzMDA3NzM1NDIgLyogQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzNkREMDNBMDlDRUFDMjcwMDU2QUU4QyAvKiBSYW5nZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmFuZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5Mzc5OUVGNjBCRjI3NDM2MDBEMEYyMzAgLyogUmVuZGVyV29yZEJyZWFrLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlcldvcmRCcmVhay5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNzk5RUY3MEJGMjc0MzYwMEQwRjIzMCAv
KiBSZW5kZXJXb3JkQnJlYWsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyV29yZEJyZWFrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDYyNyw2ICsx
MDYzMSw4IEBACiAJCQkJMjlBODEyMTgwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlP
YmplY3QuaCAqLywKIAkJCQkyOUE4MTIwODBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAgKi8sCiAJCQkJMjlBODEyMUIwRkJCOUMxRDAwNTEwMjkzIC8qIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCAqLywKKwkJCQk5MzY4ODM4QjExMDc5RDEzMDA3NzM1
NDIgLyogQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHAgKi8sCisJCQkJOTM2ODgzOEMxMTA3OUQx
MzAwNzczNTQyIC8qIEFjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaCAqLywKIAkJCQkwNzA5RkM0QjEw
MjVERUQ4MDA1OUNEQkEgLyogQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAgKi8sCiAJCQkJMDcwOUZD
NEQxMDI1REVFMzAwNTlDREJBIC8qIEFjY2Vzc2liaWxpdHlTbGlkZXIuaCAqLywKIAkJCQkyOUE4
MTIwOTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlLmNwcCAqLywKQEAgLTE4
Mzk3LDYgKzE4NDAzLDcgQEAKIAkJCQk3NkNERDJGNTExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNz
aWJpbGl0eU1lbnVMaXN0UG9wdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2Q0REMkY3MTEwM0RB
NjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTU5MTM5NTNCMTEwNzU4NDUwMDgzRUM1NSAvKiBKTklCcmlkZ2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTkzNjg4MzhFMTEwNzlEMTMwMDc3MzU0MiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xs
YmFyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIwNTY3LDYgKzIwNTc0LDcgQEAKIAkJCQk3NkNERDJG
NDExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNzZDREQyRjYxMTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlN
ZW51TGlzdE9wdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1OTEzOTUzRDExMDc1ODRFMDA4
M0VDNTUgLyogSk5JQnJpZGdlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzNjg4MzhEMTEwNzlE
MTMwMDc3MzU0MiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJ
bmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAkocmV2aXNpb24gNTM1
NTcpCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5TWVudUxpc3RQ
b3B1cC5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbi5oIgogI2luY2x1
ZGUgIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5
U2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVNsaWRlci5oIgogI2luY2x1ZGUg
IkFjY2Vzc2liaWxpdHlUYWJsZS5oIgogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlUYWJsZUNlbGwu
aCIKQEAgLTIyMCw2ICsyMjEsOSBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hl
OjpnZXRPCiAgICAgY2FzZSBNZW51TGlzdE9wdGlvblJvbGU6CiAgICAgICAgIG9iaiA9IEFjY2Vz
c2liaWxpdHlNZW51TGlzdE9wdGlvbjo6Y3JlYXRlKCk7CiAgICAgICAgIGJyZWFrOworICAgIGNh
c2UgU2Nyb2xsQmFyUm9sZToKKyAgICAgICAgb2JqID0gQWNjZXNzaWJpbGl0eVNjcm9sbGJhcjo6
Y3JlYXRlKCk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIG9iaiA9IDA7
CiAgICAgfQpAQCAtMzk1LDYgKzM5OSwyNSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3Rp
ZmljYXRpb24oUmVuCiAgICAgICAgIHBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihvYmouZ2V0KCks
IG5vdGlmaWNhdGlvbik7CiB9CiAKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwg
Ym9vbCBwb3N0VG9FbGVtZW50LCBQb3N0VHlwZSBwb3N0VHlwZSkKK3sKKyAgICBpZiAoIW9iaikK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG9iaiAmJiAhcG9zdFRvRWxlbWVudCkKKyAgICAg
ICAgb2JqID0gb2JqLT5vYnNlcnZhYmxlT2JqZWN0KCk7CisgICAgCisgICAgaWYgKCFvYmopCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChwb3N0VHlwZSA9PSBQb3N0QXN5bmNocm9ub3VzbHkp
IHsKKyAgICAgICAgbV9ub3RpZmljYXRpb25zVG9Qb3N0LmFwcGVuZChtYWtlX3BhaXIob2JqLCBu
b3RpZmljYXRpb24pKTsKKyAgICAgICAgaWYgKCFtX25vdGlmaWNhdGlvblBvc3RUaW1lci5pc0Fj
dGl2ZSgpKQorICAgICAgICAgICAgbV9ub3RpZmljYXRpb25Qb3N0VGltZXIuc3RhcnRPbmVTaG90
KDApOworICAgIH0gZWxzZQorICAgICAgICBwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24ob2JqLCBu
b3RpZmljYXRpb24pOworfQorCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5D
aGFuZ2VkKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiB7CiAgICAgcG9zdE5vdGlmaWNhdGlvbihy
ZW5kZXJlciwgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCwgdHJ1ZSk7CkluZGV4OiBXZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgJKHJldmlzaW9uIDUzNTU3KQorKysgV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYgKzEx
OCw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgdm9pZCBwb3N0Tm90aWZpY2F0aW9uKFJlbmRl
ck9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBib29sIHBvc3RUb0VsZW1lbnQsIFBvc3RUeXBlID0g
UG9zdEFzeW5jaHJvbm91c2x5KTsKKyAgICB2b2lkIHBvc3ROb3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uLCBib29sIHBvc3RUb0VsZW1lbnQsIFBvc3RUeXBl
ID0gUG9zdEFzeW5jaHJvbm91c2x5KTsKIAogcHJvdGVjdGVkOgogICAgIHZvaWQgcG9zdFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNhdGlvbik7Cklu
ZGV4OiBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIu
Y3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlT
Y3JvbGxiYXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgi
QXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oIgorCisjaW5jbHVkZSAi
U2Nyb2xsYmFyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQWNjZXNzaWJpbGl0eVNjcm9s
bGJhcjo6QWNjZXNzaWJpbGl0eVNjcm9sbGJhcigpCisgICAgOiBtX3Njcm9sbGJhcigwKQorewor
fQorCitQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlTY3JvbGxiYXI+IEFjY2Vzc2liaWxpdHlTY3Jv
bGxiYXI6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBY2Nlc3NpYmlsaXR5
U2Nyb2xsYmFyKCkpOworfQorCitmbG9hdCBBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyOjp2YWx1ZUZv
clJhbmdlKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fc2Nyb2xsYmFyKQorICAgICAgICByZXR1cm4g
MC4wZjsKKyAgICByZXR1cm4gbV9zY3JvbGxiYXItPmN1cnJlbnRQb3MoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlTY3JvbGxiYXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVNjcm9sbGJhci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlTY3JvbGxiYXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21w
dXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
KyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAK
KyNpZm5kZWYgQWNjZXNzaWJpbGl0eVNjcm9sbGJhcl9oCisjZGVmaW5lIEFjY2Vzc2liaWxpdHlT
Y3JvbGxiYXJfaAorCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9iamVjdC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFNjcm9sbGJhcjsKKworY2xhc3MgQWNjZXNzaWJpbGl0eVNj
cm9sbGJhciA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0IHsKKyAgICAKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyPiBjcmVhdGUoKTsKKyAg
ICB2aXJ0dWFsIH5BY2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKCkgeyB9CisKKyAgICB2aXJ0dWFsIEFj
Y2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIFNjcm9sbEJhclJvbGU7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgYWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisKKyAgICB2b2lkIHNldFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJh
cikgeyBtX3Njcm9sbGJhciA9IHNjcm9sbGJhcjsgfQorCisgICAgdmlydHVhbCBJbnRTaXplIHNp
emUoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKCk7IH0KKyAgICB2aXJ0dWFsIEludFJlY3QgZWxl
bWVudFJlY3QoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KCk7IH0KKyAgICB2aXJ0dWFsIEFjY2Vz
c2liaWxpdHlPYmplY3QqIHBhcmVudE9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2
aXJ0dWFsIGZsb2F0IHZhbHVlRm9yUmFuZ2UoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBBY2Nl
c3NpYmlsaXR5U2Nyb2xsYmFyKCk7CisKKyAgICBTY3JvbGxiYXIqIG1fc2Nyb2xsYmFyOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gQWNjZXNzaWJpbGl0eVNjcm9s
bGJhcl9oCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCShyZXZpc2lvbiA1MzU1NykKKysrIFdl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYs
OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcm9sbGJhci5oIgogCisjaW5j
bHVkZSAiQWNjZXNzaWJpbGl0eVNjcm9sbGJhci5oIgorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkZyYW1lVmlldy5oIgpAQCAtMTE3LDYgKzExOSwxNSBAQCB2b2lkIFNjcm9sbGJhcjo6c2V0
U3RlcHMoaW50IGxpbmVTdGVwLCBpCiAKIGJvb2wgU2Nyb2xsYmFyOjpzY3JvbGwoU2Nyb2xsRGly
ZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGZsb2F0IG11
bHRpcGxpZXIpCiB7CisgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVk
KCkpIHsKKyAgICAgICAgaWYgKHBhcmVudCgpICYmIHBhcmVudCgpLT5pc0ZyYW1lVmlldygpKSB7
CisgICAgICAgICAgICBBWE9iamVjdENhY2hlKiBjYWNoZSA9IHN0YXRpY19jYXN0PEZyYW1lVmll
dyo+KHBhcmVudCgpKS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+YXhPYmplY3RDYWNoZSgpOworICAg
ICAgICAgICAgQWNjZXNzaWJpbGl0eVNjcm9sbGJhciogYXhPYmplY3QgPSBzdGF0aWNfY2FzdDxB
Y2Nlc3NpYmlsaXR5U2Nyb2xsYmFyKj4oY2FjaGUtPmdldE9yQ3JlYXRlKFNjcm9sbEJhclJvbGUp
KTsKKyAgICAgICAgICAgIGF4T2JqZWN0LT5zZXRTY3JvbGxiYXIodGhpcyk7CisgICAgICAgICAg
ICBjYWNoZS0+cG9zdE5vdGlmaWNhdGlvbihheE9iamVjdCwgQVhPYmplY3RDYWNoZTo6QVhWYWx1
ZUNoYW5nZWQsIHRydWUpOworICAgICAgICB9CisgICAgfQorCiAgICAgZmxvYXQgc3RlcCA9IDA7
CiAgICAgaWYgKChkaXJlY3Rpb24gPT0gU2Nyb2xsVXAgJiYgbV9vcmllbnRhdGlvbiA9PSBWZXJ0
aWNhbFNjcm9sbGJhcikgfHwgKGRpcmVjdGlvbiA9PSBTY3JvbGxMZWZ0ICYmIG1fb3JpZW50YXRp
b24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikpCiAgICAgICAgIHN0ZXAgPSAtMTsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDUzNTc0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDEtMjAgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMzkyMyBSRUdS
RVNTSU9OIAorICAgICAgICAoU2FmYXJpIDQpOiBBWFZhbHVlQ2hhbmdlZCBubyBsb25nZXIgc2Vu
dCBmb3IgdGV4dCBhcmVhIHNjcm9sbGJhcnMKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjk0MjY4Nj4KKworICAgICAgICAqIHBsYXRmb3JtL21h
Yy9hY2Nlc3NpYmlsaXR5L2NoYW5nZS1ub3RpZmljYXRpb24tb24tc2Nyb2xsLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvY2hhbmdlLW5v
dGlmaWNhdGlvbi1vbi1zY3JvbGwuaHRtbDogQWRkZWQuCisKIDIwMTAtMDEtMjAgIENocmlzIEZs
ZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCZXRo
IERha2luLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvY2hh
bmdlLW5vdGlmaWNhdGlvbi1vbi1zY3JvbGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2NoYW5nZS1ub3RpZmljYXRpb24t
b24tc2Nyb2xsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L2NoYW5nZS1ub3RpZmljYXRpb24tb24tc2Nyb2xsLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACisKK1N1Y2Nlc3MhCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9jaGFuZ2Utbm90aWZpY2F0aW9u
LW9uLXNjcm9sbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L2NoYW5nZS1ub3RpZmljYXRpb24tb24tc2Nyb2xsLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9jaGFuZ2Utbm90
aWZpY2F0aW9uLW9uLXNjcm9sbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM2IEBACis8
aHRtbD4KKzxib2R5PgorPHRleHRhcmVhIHJvd3M9MjUgY29scz0xMCBpZD0idGV4dGFyZWEiPgor
aGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVs
bG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8g
aGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVs
bG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8g
aGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVs
bG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8g
aGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVs
bG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8g
aGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVs
bG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8g
aGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVs
bG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8g
aGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVs
bG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8g
aGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVs
bG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8g
aGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVs
bG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8g
aGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVs
bG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8g
aGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVs
bG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8g
aGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVs
bG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8gaGVsbG8g
aGVsbG8gaGVsbG8gCis8L3RleHRhcmVhPgorCis8ZGl2IGlkPSJyZXN1bHQiPlRoaXMgdGVzdCBo
YXMgZWl0aGVyIGZhaWxlZCwgb3IgaXQgaXMgYmVpbmcgcnVuIG1hbnVhbGx5LjwvZGl2PgorCis8
c2NyaXB0PgorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZnVuY3Rpb24gYXJpYUNh
bGxiYWNrKG5vdGlmaWNhdGlvbikgeworICAgICAgICBpZiAobm90aWZpY2F0aW9uID09ICJBWFZh
bHVlQ2hhbmdlZCIpIHsKKyAgICAgICAgICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgicmVzdWx0Iik7CisgICAgICAgICAgICByZXN1bHQuaW5uZXJIVE1MID0gIlN1Y2Nl
c3MhIjsgCisgICAgICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcikgeworICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dGFyZWEiKS5mb2N1
cygpOworICAgICAgICB2YXIgdGV4dGFyZWEgPSB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuZm9jdXNlZEVsZW1lbnQ7CisgICAgICAgIAorICAgICAgICB2YXIgYWRkZWROb3RpZmljYXRp
b24gPSB0ZXh0YXJlYS5hZGROb3RpZmljYXRpb25MaXN0ZW5lcihhcmlhQ2FsbGJhY2spOworICAg
ICAgICAKKyAgICAgICAgd2luZG93LmV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDgwLCAxNTApOwor
ICAgICAgICB3aW5kb3cuZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIHdpbmRvdy5l
dmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgfQorPC9zY3JpcHQ+CisKKzwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>