<?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>17733</bug_id>
          
          <creation_ts>2008-03-09 18:12:28 -0700</creation_ts>
          <short_desc>execCommand with super/subscript doesn&apos;t toggle back to baseline</short_desc>
          <delta_ts>2009-01-21 14:19:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://tom.me.uk/2008/3/webkit-execcommand.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>GoogleBug, HasReduction, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>23366</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tom Gilder">tom</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>futurama</cc>
    
    <cc>grossmann.mark</cc>
    
    <cc>jparent</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>73151</commentid>
    <comment_count>0</comment_count>
    <who name="Tom Gilder">tom</who>
    <bug_when>2008-03-09 18:12:28 -0700</bug_when>
    <thetext>Calling execCommand(&apos;Superscript&apos;) or execCommand(&apos;Subscript&apos;) correctly subs or supers the text, but calling it again doesn&apos;t un-do this, so the text doesn&apos;t return to baseline, unlike IE. Every other execCommand (such as Bold) does toggle. 

See URL for testcase, select text below buttons and click a button twice. Text should go back to normal on second click.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73152</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-03-09 18:13:33 -0700</bug_when>
    <thetext>Confirmed in Safari 3.0.4 and TOT WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>74175</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2008-03-17 15:21:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/5803699&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81254</commentid>
    <comment_count>3</comment_count>
      <attachid>21304</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-05-22 14:20:15 -0700</bug_when>
    <thetext>Created attachment 21304
Test case (from URL)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81259</commentid>
    <comment_count>4</comment_count>
      <attachid>21305</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-05-22 14:45:38 -0700</bug_when>
    <thetext>Created attachment 21305
Naive fix

I didn&apos;t run the layout tests or write at test case.  But this does fix the bug as described.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81260</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-05-22 15:06:23 -0700</bug_when>
    <thetext>If you&apos;re using this in an application which needs a workaround in shipping versions of Safari, I would encourage you to use document.executeCommand(&quot;Unscript&quot;); to remove any subscript/superscripts.  That should work in both IE and Safari.  Sadly, that also means you have to maintain your own &quot;is this subscripted/superscripted&quot; state.  You could use getComputedStyle on some portion of the selected text in order to discover the vertical-align value however.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>81435</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Grossmann">grossmann.mark</who>
    <bug_when>2008-05-25 05:08:25 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; If you&apos;re using this in an application which needs a workaround in shipping
&gt; versions of Safari, I would encourage you to use
&gt; document.executeCommand(&quot;Unscript&quot;); to remove any subscript/superscripts. 
&gt; That should work in both IE and Safari.  Sadly, that also means you have to
&gt; maintain your own &quot;is this subscripted/superscripted&quot; state.  You could use
&gt; getComputedStyle on some portion of the selected text in order to discover the
&gt; vertical-align value however.
&gt; 
For some reason it did not work for me in Safari 3.0.3 and 3.1.1. I used the same test case and simply added another button with onclick=&quot;document.execCommand(&apos;Unscript&apos;)&quot;.
It does not work in IE6/7 either (results in js exception). 

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88729</commentid>
    <comment_count>7</comment_count>
    <who name="David Bloom">futurama</who>
    <bug_when>2008-08-18 09:50:33 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; If you&apos;re using this in an application which needs a workaround in shipping
&gt; &gt; versions of Safari, I would encourage you to use
&gt; &gt; document.executeCommand(&quot;Unscript&quot;); to remove any subscript/superscripts. 
&gt; &gt; That should work in both IE and Safari.  Sadly, that also means you have to
&gt; &gt; maintain your own &quot;is this subscripted/superscripted&quot; state.  You could use
&gt; &gt; getComputedStyle on some portion of the selected text in order to discover the
&gt; &gt; vertical-align value however.
&gt; &gt; 
&gt; For some reason it did not work for me in Safari 3.0.3 and 3.1.1. I used the
&gt; same test case and simply added another button with
&gt; onclick=&quot;document.execCommand(&apos;Unscript&apos;)&quot;.
&gt; It does not work in IE6/7 either (results in js exception). 
&gt; 

I have no idea what&apos;s up with IE6/7 supporting this...it doesn&apos;t appear on MSDN anywhere.

In any case, http://svn.webkit.org/repository/webkit/trunk/WebCore/editing/EditorCommand.cpp seems to limit the &quot;unscript&quot; command identifier to &quot;supportedFromMenuOrKeyBinding&quot;. So, this command identifier is useless for web developers...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88827</commentid>
    <comment_count>8</comment_count>
    <who name="David Bloom">futurama</who>
    <bug_when>2008-08-19 11:11:33 -0700</bug_when>
    <thetext>Slightly offtopic, but is there any reason that WebKit doesn&apos;t use the &lt;sup&gt; and &lt;sub&gt; elements instead of an Apple-style-span? &lt;sup&gt; and &lt;sub&gt; aren&apos;t deprecated, and superscript/subscript do have some semantic meaning, so I don&apos;t understand why they aren&apos;t used. Other browsers usually can&apos;t remove Apple-style-span formatting, so Safari&apos;s current behavior is less interoperable in a collaborative and/or multiple-browser environment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106153</commentid>
    <comment_count>9</comment_count>
      <attachid>26819</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-16 17:58:56 -0800</bug_when>
    <thetext>Created attachment 26819
Fix execCommand() &apos;super&apos; and &apos;sub&apos; commands to add &lt;sup&gt; and &lt;sub&gt; in quirks mode, and to toggle when called twice

 LayoutTests/ChangeLog                              |    9 ++
 .../editing/execCommand/toggle-styles-expected.txt |   12 ++--
 WebCore/ChangeLog                                  |   24 ++++++
 WebCore/editing/ApplyStyleCommand.cpp              |   84 ++++++++++++++------
 WebCore/editing/EditorCommand.cpp                  |    4 +-
 WebCore/editing/htmlediting.cpp                    |    7 ++-
 WebCore/editing/htmlediting.h                      |    1 +
 7 files changed, 107 insertions(+), 34 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106386</commentid>
    <comment_count>10</comment_count>
      <attachid>26819</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2009-01-20 14:17:14 -0800</bug_when>
    <thetext>Comment on attachment 26819
Fix execCommand() &apos;super&apos; and &apos;sub&apos; commands to add &lt;sup&gt; and &lt;sub&gt; in quirks mode, and to toggle when called twice

-FAIL superscript removing vertical-align: superscript -- &lt;span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;vertical-align: super;&quot;&gt;test&lt;/span&gt;&lt;/span&gt;
+FAIL superscript removing vertical-align: superscript -- &lt;span&gt;&lt;sup&gt;test&lt;/sup&gt;&lt;/span&gt;

What&apos;s up here?

Rest looks good, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106390</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-20 14:29:44 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 26819 [review])
&gt; -FAIL superscript removing vertical-align: superscript -- &lt;span&gt;&lt;span
&gt; class=&quot;Apple-style-span&quot; style=&quot;vertical-align: super;&quot;&gt;test&lt;/span&gt;&lt;/span&gt;
&gt; +FAIL superscript removing vertical-align: superscript --
&gt; &lt;span&gt;&lt;sup&gt;test&lt;/sup&gt;&lt;/span&gt;
&gt; 
&gt; What&apos;s up here?

Hum... you&apos;re right.  That&apos;s still wrong.  I don&apos;t know how I didn&apos;t notice.  The &lt;sup&gt; tags shouldn&apos;t be there.
&gt; Rest looks good, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106498</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-21 14:02:25 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 26819 [review] [review])
&gt; &gt; -FAIL superscript removing vertical-align: superscript -- &lt;span&gt;&lt;span
&gt; &gt; class=&quot;Apple-style-span&quot; style=&quot;vertical-align: super;&quot;&gt;test&lt;/span&gt;&lt;/span&gt;
&gt; &gt; +FAIL superscript removing vertical-align: superscript --
&gt; &gt; &lt;span&gt;&lt;sup&gt;test&lt;/sup&gt;&lt;/span&gt;
&gt; &gt; 
&gt; &gt; What&apos;s up here?
&gt; 
&gt; Hum... you&apos;re right.  That&apos;s still wrong.  I don&apos;t know how I didn&apos;t notice. 
&gt; The &lt;sup&gt; tags shouldn&apos;t be there.

Ha!  Turns out the behavior was correct.  The test was incorrectly using &quot;vertical-align: superscript;&quot; which is an invalid value (should be &quot;vertical-align: super&quot;), thus the resulting resolved style was still vertical-align: baseline, and the editing command worked as intended.  It removed the bogus vertical-align value, and applied the superscript/subscript using a &quot;legacy&quot; tag.

I&apos;ll upload the updated patch which I&apos;m about to land.  Thanks again!

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106500</commentid>
    <comment_count>13</comment_count>
      <attachid>26904</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-21 14:12:00 -0800</bug_when>
    <thetext>Created attachment 26904
Fix execCommand() &apos;super&apos; and &apos;sub&apos; commands to add &lt;sup&gt; and &lt;sub&gt; in quirks mode, and to toggle when called twice

 LayoutTests/ChangeLog                              |    9 ++
 .../editing/execCommand/resources/toggle-styles.js |    4 +-
 .../editing/execCommand/toggle-styles-expected.txt |   12 ++--
 WebCore/ChangeLog                                  |   24 ++++++
 WebCore/editing/ApplyStyleCommand.cpp              |   84 ++++++++++++++------
 WebCore/editing/EditorCommand.cpp                  |    4 +-
 WebCore/editing/htmlediting.cpp                    |    7 ++-
 WebCore/editing/htmlediting.h                      |    1 +
 8 files changed, 109 insertions(+), 36 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>106501</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-21 14:19:27 -0800</bug_when>
    <thetext>Thanks for the cookie Julie!
http://trac.webkit.org/changeset/40097</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>21304</attachid>
            <date>2008-05-22 14:20:15 -0700</date>
            <delta_ts>2008-05-22 14:20:15 -0700</delta_ts>
            <desc>Test case (from URL)</desc>
            <filename>webkit-execcommand.html</filename>
            <type>text/html</type>
            <size>1167</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIiAiaHR0cDov
L3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+CjxodG1sPgoJPGhlYWQ+CgkJPHRpdGxl
PjwvdGl0bGU+CgkJPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0
L2h0bWw7Y2hhcnNldD11dGYtOCI+Cgk8L2hlYWQ+Cgk8Ym9keT4KCgkJPGgxPlN1Yi9zdXBlcnNj
cmlwdCBleGVjQ29tbWFuZDwvaDE+CgkJCgkJPG9sPgoJCQk8bGk+U2VsZWN0IHNvbWUgdGV4dCBi
ZWxvdwoJCQk8bGk+Q2xpY2sgb25lIG9mIHRoZSBidXR0b25zCgkJCTxsaT5DbGljayBhZ2Fpbiwg
dGV4dCBkb2Vzbid0IGdvIGJhY2sgdG8gbm9ybWFsIChiYXNlbGluZSkKCQk8L29sPgoJCQoJCTxo
cj4KCQkKCQk8ZGl2PgoJCQk8YnV0dG9uIG9uY2xpY2s9ImRvY3VtZW50LmV4ZWNDb21tYW5kKCdT
dXBlcnNjcmlwdCcpIj5Ub2dnbGUgc3VwZXJzY3JpcHQ8L2J1dHRvbj4KCQkJPGJ1dHRvbiBvbmNs
aWNrPSJkb2N1bWVudC5leGVjQ29tbWFuZCgnU3Vic2NyaXB0JykiPlRvZ2dsZSBzdWJzY3JpcHQ8
L2J1dHRvbj4KCQk8L2Rpdj4KCQkKCQk8ZGl2IGNvbnRlbnRFZGl0YWJsZT0idHJ1ZSI+CgkJCTxw
PgoJCQkJQWxsIHRoaXMgdGV4dCBpcyBjb250ZW50RWRpdGFibGUKCQkJPC9wPgoJCQk8cD4KCQkJ
CUxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0
LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1h
Z25hIGFsaXF1YS4gVXQgZW5pbSBhZCBtaW5pbSB2ZW5pYW0sIHF1aXMgbm9zdHJ1ZCBleGVyY2l0
YXRpb24gdWxsYW1jbyBsYWJvcmlzIG5pc2kgdXQgYWxpcXVpcCBleCBlYSBjb21tb2RvIGNvbnNl
cXVhdC4gRHVpcyBhdXRlIGlydXJlIGRvbG9yIGluIHJlcHJlaGVuZGVyaXQgaW4gdm9sdXB0YXRl
IHZlbGl0IGVzc2UgY2lsbHVtIGRvbG9yZSBldSBmdWdpYXQgbnVsbGEgcGFyaWF0dXIuIEV4Y2Vw
dGV1ciBzaW50IG9jY2FlY2F0IGN1cGlkYXRhdCBub24gcHJvaWRlbnQsIHN1bnQgaW4gY3VscGEg
cXVpIG9mZmljaWEgZGVzZXJ1bnQgbW9sbGl0IGFuaW0gaWQgZXN0IGxhYm9ydW0uCgkJCTwvcD4K
CQk8L2Rpdj4KCgk8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>21305</attachid>
            <date>2008-05-22 14:45:38 -0700</date>
            <delta_ts>2008-05-22 14:45:38 -0700</delta_ts>
            <desc>Naive fix</desc>
            <filename>foo.patch</filename>
            <type>text/plain</type>
            <size>1031</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAppbmRleCAwMjFkNjQ4Li40MzJlMjMxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC04NzEsMTIgKzg3MSwxMiBAQCBzdGF0aWMgYm9vbCBl
eGVjdXRlU3RyaWtldGhyb3VnaChGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNv
dXJjZSBzb3VyYwogCiBzdGF0aWMgYm9vbCBleGVjdXRlU3Vic2NyaXB0KEZyYW1lKiBmcmFtZSwg
RXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAg
ICByZXR1cm4gZXhlY3V0ZUFwcGx5U3R5bGUoZnJhbWUsIHNvdXJjZSwgRWRpdEFjdGlvblN1YnNj
cmlwdCwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCAic3ViIik7CisgICAgcmV0dXJuIGV4ZWN1
dGVUb2dnbGVTdHlsZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uU3Vic2NyaXB0LCBDU1NQcm9w
ZXJ0eVZlcnRpY2FsQWxpZ24sICJiYXNlbGluZSIsICJzdWIiKTsKIH0KIAogc3RhdGljIGJvb2wg
ZXhlY3V0ZVN1cGVyc2NyaXB0KEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291
cmNlIHNvdXJjZSwgY29uc3QgU3RyaW5nJikKIHsKLSAgICByZXR1cm4gZXhlY3V0ZUFwcGx5U3R5
bGUoZnJhbWUsIHNvdXJjZSwgRWRpdEFjdGlvblN1cGVyc2NyaXB0LCBDU1NQcm9wZXJ0eVZlcnRp
Y2FsQWxpZ24sICJzdXBlciIpOworICAgIHJldHVybiBleGVjdXRlVG9nZ2xlU3R5bGUoZnJhbWUs
IHNvdXJjZSwgRWRpdEFjdGlvblN1cGVyc2NyaXB0LCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24s
ICJiYXNlbGluZSIsICJzdXBlciIpOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlU3dhcFdpdGhN
YXJrKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJp
bmcmKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26819</attachid>
            <date>2009-01-16 17:58:56 -0800</date>
            <delta_ts>2009-01-20 14:17:14 -0800</delta_ts>
            <desc>Fix execCommand() &apos;super&apos; and &apos;sub&apos; commands to add &lt;sup&gt; and &lt;sub&gt; in quirks mode, and to toggle when called twice</desc>
            <filename>mmand-super-and-sub-commands-to-add-sup-and-sub-in-quirks-mode-and-to-toggle-when-called-twice.patch</filename>
            <type>text/plain</type>
            <size>13612</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">MTYxZGJkNzJmYTc3YjQ2ZGQ3N2FkZTAyODIzMTk0NTZkMGI3MTM2ZgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRkMTEyYzku
LjMwYTM5ODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAwOS0wMS0xNiAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisgICAgICAgIAorICAgICAgICBVcGRhdGVkIHJlc3VsdHMgZm9yIGV4ZWNDb21tYW5kKCkgJ3N1
YicgYW5kICdzdXBlcicgdG9nZ2xlIGZpeGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3MzMKKworICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1h
bmQvdG9nZ2xlLXN0eWxlcy1leHBlY3RlZC50eHQ6CisKIDIwMDktMDEtMTYgIENocmlzIEZsZWl6
YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIg
SHVudC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xl
LXN0eWxlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3Rv
Z2dsZS1zdHlsZXMtZXhwZWN0ZWQudHh0CmluZGV4IDM5YjNlMTYuLjg1N2NkNjQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLXN0eWxlcy1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtc3R5bGVz
LWV4cGVjdGVkLnR4dApAQCAtMTIsMTIgKzEyLDEyIEBAIFBBU1MgaXRhbGljIHRvZ2dsZQogUEFT
UyBpdGFsaWMgcmVtb3ZpbmcgaQogRkFJTCBpdGFsaWMgcmVtb3ZpbmcgZm9udC1zdHlsZTogaXRh
bGljIC0tIDxzcGFuIHN0eWxlPSIiPnRlc3Q8L3NwYW4+CiBGQUlMIGl0YWxpYyByZW1vdmluZyBl
bSAtLSA8ZW0+PHNwYW4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJmb250LXN0eWxl
OiBub3JtYWw7Ij50ZXN0PC9zcGFuPjwvZW0+Ci1GQUlMIHN1YnNjcmlwdCB0b2dnbGU6IDxzcGFu
IGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1YjsiPnRl
c3Q8L3NwYW4+Ci1GQUlMIHN1YnNjcmlwdCByZW1vdmluZyBzdWIgLS0gPHN1Yj50ZXN0PC9zdWI+
Ci1GQUlMIHN1YnNjcmlwdCByZW1vdmluZyB2ZXJ0aWNhbC1hbGlnbjogc3Vic2NyaXB0IC0tIDxz
cGFuPjxzcGFuIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBzdHlsZT0idmVydGljYWwtYWxpZ246
IHN1YjsiPnRlc3Q8L3NwYW4+PC9zcGFuPgotRkFJTCBzdXBlcnNjcmlwdCB0b2dnbGU6IDxzcGFu
IGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1cGVyOyI+
dGVzdDwvc3Bhbj4KLUZBSUwgc3VwZXJzY3JpcHQgcmVtb3Zpbmcgc3VwIC0tIDxzdXA+dGVzdDwv
c3VwPgotRkFJTCBzdXBlcnNjcmlwdCByZW1vdmluZyB2ZXJ0aWNhbC1hbGlnbjogc3VwZXJzY3Jp
cHQgLS0gPHNwYW4+PHNwYW4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJ2ZXJ0aWNh
bC1hbGlnbjogc3VwZXI7Ij50ZXN0PC9zcGFuPjwvc3Bhbj4KK1BBU1Mgc3Vic2NyaXB0IHRvZ2ds
ZQorUEFTUyBzdWJzY3JpcHQgcmVtb3Zpbmcgc3ViCitGQUlMIHN1YnNjcmlwdCByZW1vdmluZyB2
ZXJ0aWNhbC1hbGlnbjogc3Vic2NyaXB0IC0tIDxzcGFuPjxzdWI+dGVzdDwvc3ViPjwvc3Bhbj4K
K1BBU1Mgc3VwZXJzY3JpcHQgdG9nZ2xlCitQQVNTIHN1cGVyc2NyaXB0IHJlbW92aW5nIHN1cAor
RkFJTCBzdXBlcnNjcmlwdCByZW1vdmluZyB2ZXJ0aWNhbC1hbGlnbjogc3VwZXJzY3JpcHQgLS0g
PHNwYW4+PHN1cD50ZXN0PC9zdXA+PC9zcGFuPgogUEFTUyBzdHJpa2V0aHJvdWdoIHRvZ2dsZQog
RkFJTCBzdHJpa2V0aHJvdWdoIHJlbW92aW5nIHN0cmlrZSAtLSA8c3RyaWtlIHN0eWxlPSIiPjxz
cGFuIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBub25l
OyI+dGVzdDwvc3Bhbj48L3N0cmlrZT4KIEZBSUwgc3RyaWtldGhyb3VnaCByZW1vdmluZyB0ZXh0
LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaCAtLSA8c3BhbiBzdHlsZT0iIj50ZXN0PC9zcGFuPgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBh
YjRkM2FiLi5mYWQ0MTRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDA5LTAxLTE2ICBFcmljIFNlaWRlbCAg
PGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGaXggZXhlY0NvbW1hbmQoKSAnc3VwZXInIGFuZCAnc3ViJyBjb21tYW5kcyB0
byBhZGQgPHN1cD4gYW5kIDxzdWI+IGluIHF1aXJrcyBtb2RlLCBhbmQgdG8gdG9nZ2xlIHdoZW4g
Y2FsbGVkIHR3aWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzczMworICAgICAgICAKKyAgICAgICAgVGVzdCBjaGFuZ2VkOiBlZGl0aW5nL2V4ZWND
b21tYW5kL3RvZ2dsZS1zdHlsZXMtZXhwZWN0ZWQudHh0CisKKyAgICAgICAgKiBlZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ2hhbmdlOjphcHBs
eVN1YnNjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNoYW5nZTo6YXBwbHlTdXBlcnNj
cmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNoYW5nZTo6U3R5bGVDaGFuZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVDaGFuZ2U6OmluaXQpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVDaGFuZ2U6OmNoZWNrRm9yTGVnYWN5SFRNTFN0eWxlQ2hhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGx5U3R5bGVDb21tYW5kOjppc0hUTUxTdHlsZU5vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFkZElubGluZVN0eWxlSWZOZWVkZWQpOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlU3Vi
c2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVTdXBlcnNjcmlwdCk6CisgICAgICAg
ICogZWRpdGluZy9odG1sZWRpdGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVIVE1M
RWxlbWVudCk6CisgICAgICAgICogZWRpdGluZy9odG1sZWRpdGluZy5oOgorCiAyMDA5LTAxLTE2
ICBBZGVsZSBQZXRlcnNvbiAgPGFkZWxlQGFwcGxlLmNvbT4KIAogICAgICAgICBXaW5kb3dzIGJ1
aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5j
cHAgYi9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCmluZGV4IGE3NjNiZDku
LmUwMDhlZmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5j
cHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtNTIsMTQg
KzUyLDE2IEBAIGNsYXNzIFN0eWxlQ2hhbmdlIHsKIHB1YmxpYzoKICAgICBlbnVtIEVMZWdhY3lI
VE1MU3R5bGVzIHsgRG9Ob3RVc2VMZWdhY3lIVE1MU3R5bGVzLCBVc2VMZWdhY3lIVE1MU3R5bGVz
IH07CiAKLSAgICBleHBsaWNpdCBTdHlsZUNoYW5nZShDU1NTdHlsZURlY2xhcmF0aW9uICosIEVM
ZWdhY3lIVE1MU3R5bGVzIHVzZXNMZWdhY3lTdHlsZXM9VXNlTGVnYWN5SFRNTFN0eWxlcyk7Ci0g
ICAgU3R5bGVDaGFuZ2UoQ1NTU3R5bGVEZWNsYXJhdGlvbiAqLCBjb25zdCBQb3NpdGlvbiAmLCBF
TGVnYWN5SFRNTFN0eWxlcyB1c2VzTGVnYWN5U3R5bGVzPVVzZUxlZ2FjeUhUTUxTdHlsZXMpOwor
ICAgIGV4cGxpY2l0IFN0eWxlQ2hhbmdlKENTU1N0eWxlRGVjbGFyYXRpb24qLCBFTGVnYWN5SFRN
TFN0eWxlcyB1c2VzTGVnYWN5U3R5bGVzPVVzZUxlZ2FjeUhUTUxTdHlsZXMpOworICAgIFN0eWxl
Q2hhbmdlKENTU1N0eWxlRGVjbGFyYXRpb24qLCBjb25zdCBQb3NpdGlvbiYsIEVMZWdhY3lIVE1M
U3R5bGVzIHVzZXNMZWdhY3lTdHlsZXM9VXNlTGVnYWN5SFRNTFN0eWxlcyk7CiAKICAgICBzdGF0
aWMgRUxlZ2FjeUhUTUxTdHlsZXMgc3R5bGVNb2RlRm9yUGFyc2VNb2RlKGJvb2wpOwogCiAgICAg
U3RyaW5nIGNzc1N0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9jc3NTdHlsZTsgfQogICAgIGJvb2wg
YXBwbHlCb2xkKCkgY29uc3QgeyByZXR1cm4gbV9hcHBseUJvbGQ7IH0KICAgICBib29sIGFwcGx5
SXRhbGljKCkgY29uc3QgeyByZXR1cm4gbV9hcHBseUl0YWxpYzsgfQorICAgIGJvb2wgYXBwbHlT
dWJzY3JpcHQoKSBjb25zdCB7IHJldHVybiBtX2FwcGx5U3Vic2NyaXB0OyB9CisgICAgYm9vbCBh
cHBseVN1cGVyc2NyaXB0KCkgY29uc3QgeyByZXR1cm4gbV9hcHBseVN1cGVyc2NyaXB0OyB9CiAg
ICAgYm9vbCBhcHBseUZvbnRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlGb250Q29sb3Iu
bGVuZ3RoKCkgPiAwOyB9CiAgICAgYm9vbCBhcHBseUZvbnRGYWNlKCkgY29uc3QgeyByZXR1cm4g
bV9hcHBseUZvbnRGYWNlLmxlbmd0aCgpID4gMDsgfQogICAgIGJvb2wgYXBwbHlGb250U2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlGb250U2l6ZS5sZW5ndGgoKSA+IDA7IH0KQEAgLTcxLDEz
ICs3MywxNSBAQCBwdWJsaWM6CiAgICAgYm9vbCB1c2VzTGVnYWN5U3R5bGVzKCkgY29uc3QgeyBy
ZXR1cm4gbV91c2VzTGVnYWN5U3R5bGVzOyB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBpbml0KFBh
c3NSZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4sIGNvbnN0IFBvc2l0aW9uICYpOwotICAgIGJv
b2wgY2hlY2tGb3JMZWdhY3lIVE1MU3R5bGVDaGFuZ2UoY29uc3QgQ1NTUHJvcGVydHkgKik7Ci0g
ICAgc3RhdGljIGJvb2wgY3VycmVudGx5SGFzU3R5bGUoY29uc3QgUG9zaXRpb24gJiwgY29uc3Qg
Q1NTUHJvcGVydHkgKik7CisgICAgdm9pZCBpbml0KFBhc3NSZWZQdHI8Q1NTU3R5bGVEZWNsYXJh
dGlvbj4sIGNvbnN0IFBvc2l0aW9uJik7CisgICAgYm9vbCBjaGVja0ZvckxlZ2FjeUhUTUxTdHls
ZUNoYW5nZShjb25zdCBDU1NQcm9wZXJ0eSopOworICAgIHN0YXRpYyBib29sIGN1cnJlbnRseUhh
c1N0eWxlKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgQ1NTUHJvcGVydHkqKTsKICAgICAKICAgICBT
dHJpbmcgbV9jc3NTdHlsZTsKICAgICBib29sIG1fYXBwbHlCb2xkOwogICAgIGJvb2wgbV9hcHBs
eUl0YWxpYzsKKyAgICBib29sIG1fYXBwbHlTdWJzY3JpcHQ7CisgICAgYm9vbCBtX2FwcGx5U3Vw
ZXJzY3JpcHQ7CiAgICAgU3RyaW5nIG1fYXBwbHlGb250Q29sb3I7CiAgICAgU3RyaW5nIG1fYXBw
bHlGb250RmFjZTsKICAgICBTdHJpbmcgbV9hcHBseUZvbnRTaXplOwpAQCAtODYsMTQgKzkwLDIy
IEBAIHByaXZhdGU6CiAKIAogCi1TdHlsZUNoYW5nZTo6U3R5bGVDaGFuZ2UoQ1NTU3R5bGVEZWNs
YXJhdGlvbiAqc3R5bGUsIEVMZWdhY3lIVE1MU3R5bGVzIHVzZXNMZWdhY3lTdHlsZXMpCi0gICAg
OiBtX2FwcGx5Qm9sZChmYWxzZSksIG1fYXBwbHlJdGFsaWMoZmFsc2UpLCBtX3VzZXNMZWdhY3lT
dHlsZXModXNlc0xlZ2FjeVN0eWxlcykKK1N0eWxlQ2hhbmdlOjpTdHlsZUNoYW5nZShDU1NTdHls
ZURlY2xhcmF0aW9uKiBzdHlsZSwgRUxlZ2FjeUhUTUxTdHlsZXMgdXNlc0xlZ2FjeVN0eWxlcykK
KyAgICA6IG1fYXBwbHlCb2xkKGZhbHNlKQorICAgICwgbV9hcHBseUl0YWxpYyhmYWxzZSkKKyAg
ICAsIG1fYXBwbHlTdWJzY3JpcHQoZmFsc2UpCisgICAgLCBtX2FwcGx5U3VwZXJzY3JpcHQoZmFs
c2UpCisgICAgLCBtX3VzZXNMZWdhY3lTdHlsZXModXNlc0xlZ2FjeVN0eWxlcykKIHsKICAgICBp
bml0KHN0eWxlLCBQb3NpdGlvbigpKTsKIH0KIAotU3R5bGVDaGFuZ2U6OlN0eWxlQ2hhbmdlKENT
U1N0eWxlRGVjbGFyYXRpb24gKnN0eWxlLCBjb25zdCBQb3NpdGlvbiAmcG9zaXRpb24sIEVMZWdh
Y3lIVE1MU3R5bGVzIHVzZXNMZWdhY3lTdHlsZXMpCi0gICAgOiBtX2FwcGx5Qm9sZChmYWxzZSks
IG1fYXBwbHlJdGFsaWMoZmFsc2UpLCBtX3VzZXNMZWdhY3lTdHlsZXModXNlc0xlZ2FjeVN0eWxl
cykKK1N0eWxlQ2hhbmdlOjpTdHlsZUNoYW5nZShDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwg
Y29uc3QgUG9zaXRpb24mIHBvc2l0aW9uLCBFTGVnYWN5SFRNTFN0eWxlcyB1c2VzTGVnYWN5U3R5
bGVzKQorICAgIDogbV9hcHBseUJvbGQoZmFsc2UpCisgICAgLCBtX2FwcGx5SXRhbGljKGZhbHNl
KQorICAgICwgbV9hcHBseVN1YnNjcmlwdChmYWxzZSkKKyAgICAsIG1fYXBwbHlTdXBlcnNjcmlw
dChmYWxzZSkKKyAgICAsIG1fdXNlc0xlZ2FjeVN0eWxlcyh1c2VzTGVnYWN5U3R5bGVzKQogewog
ICAgIGluaXQoc3R5bGUsIHBvc2l0aW9uKTsKIH0KQEAgLTEzMiw2ICsxNDQsNyBAQCB2b2lkIFN0
eWxlQ2hhbmdlOjppbml0KFBhc3NSZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gc3R5bGUsIGNv
bnN0IFBvc2l0aW9uICZwbwogCiAgICAgICAgIGlmIChwcm9wZXJ0eS0+aWQoKSA9PSBDU1NQcm9w
ZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uc0luRWZmZWN0KSB7CiAgICAgICAgICAgICAvLyB3ZSBo
YXZlIHRvIHNwZWNpYWwtY2FzZSB0ZXh0IGRlY29yYXRpb25zCisgICAgICAgICAgICAvLyBGSVhN
RTogV2h5PwogICAgICAgICAgICAgQ1NTUHJvcGVydHkgYWx0ZXJlZFByb3BlcnR5KENTU1Byb3Bl
cnR5VGV4dERlY29yYXRpb24sIHByb3BlcnR5LT52YWx1ZSgpLCBwcm9wZXJ0eS0+aXNJbXBvcnRh
bnQoKSk7CiAgICAgICAgICAgICBzdHlsZVRleHQgKz0gYWx0ZXJlZFByb3BlcnR5LmNzc1RleHQo
KTsKICAgICAgICAgfSBlbHNlCkBAIC0xNTIsMTEgKzE2NSwxMSBAQCBTdHlsZUNoYW5nZTo6RUxl
Z2FjeUhUTUxTdHlsZXMgU3R5bGVDaGFuZ2U6OnN0eWxlTW9kZUZvclBhcnNlTW9kZShib29sIGlz
UXVpcmtzTQogICAgIHJldHVybiBpc1F1aXJrc01vZGUgPyBVc2VMZWdhY3lIVE1MU3R5bGVzIDog
RG9Ob3RVc2VMZWdhY3lIVE1MU3R5bGVzOwogfQogCi1ib29sIFN0eWxlQ2hhbmdlOjpjaGVja0Zv
ckxlZ2FjeUhUTUxTdHlsZUNoYW5nZShjb25zdCBDU1NQcm9wZXJ0eSAqcHJvcGVydHkpCisvLyBU
aGlzIGZ1bmN0aW9uIGlzIHRoZSBtYXBwaW5nIGZyb20gQ1NTIHN0eWxlcyB0byBzdHlsaW5nIHRh
Z3MgKGxpa2UgZm9udC13ZWlnaHQ6IGJvbGQgdG8gPGI+KQorYm9vbCBTdHlsZUNoYW5nZTo6Y2hl
Y2tGb3JMZWdhY3lIVE1MU3R5bGVDaGFuZ2UoY29uc3QgQ1NTUHJvcGVydHkqIHByb3BlcnR5KQog
ewotICAgIGlmICghcHJvcGVydHkgfHwgIXByb3BlcnR5LT52YWx1ZSgpKSB7CisgICAgaWYgKCFw
cm9wZXJ0eSB8fCAhcHJvcGVydHktPnZhbHVlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9CiAgICAgCiAgICAgU3RyaW5nIHZhbHVlVGV4dChwcm9wZXJ0eS0+dmFsdWUoKS0+Y3NzVGV4
dCgpKTsKICAgICBzd2l0Y2ggKHByb3BlcnR5LT5pZCgpKSB7CkBAIC0xNjYsNiArMTc5LDE2IEBA
IGJvb2wgU3R5bGVDaGFuZ2U6OmNoZWNrRm9yTGVnYWN5SFRNTFN0eWxlQ2hhbmdlKGNvbnN0IENT
U1Byb3BlcnR5ICpwcm9wZXJ0eSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1Byb3BlcnR5VmVy
dGljYWxBbGlnbjoKKyAgICAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZVRleHQs
ICJzdWIiKSkgeworICAgICAgICAgICAgICAgIG1fYXBwbHlTdWJzY3JpcHQgPSB0cnVlOworICAg
ICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlVGV4dCwgInN1cGVyIikpIHsKKyAgICAgICAgICAgICAg
ICBtX2FwcGx5U3VwZXJzY3JpcHQgPSB0cnVlOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlGb250U3R5bGU6CiAgICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWVU
ZXh0LCAiaXRhbGljIikgfHwgZXF1YWxJZ25vcmluZ0Nhc2UodmFsdWVUZXh0LCAib2JsaXF1ZSIp
KSB7CiAgICAgICAgICAgICAgICAgbV9hcHBseUl0YWxpYyA9IHRydWU7CkBAIC05MTQsMTggKzkz
NywyNCBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseUlubGluZVN0eWxlVG9SYW5nZShD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bAogICAgIH0KIH0KIAotYm9vbCBBcHBseVN0
eWxlQ29tbWFuZDo6aXNIVE1MU3R5bGVOb2RlKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uICpz
dHlsZSwgSFRNTEVsZW1lbnQgKmVsZW0pCisvLyBUaGlzIGZ1bmN0aW9uIG1hcHMgZnJvbSBzdHls
aW5nIHRhZ3MgdG8gQ1NTIHN0eWxlcy4gIFVzZWQgZm9yIGtub3dpbmcgd2hpY2gKKy8vIHN0eWxp
bmcgdGFncyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIHRvZ2dsaW5nIHN0eWxlcy4KK2Jvb2wgQXBw
bHlTdHlsZUNvbW1hbmQ6OmlzSFRNTFN0eWxlTm9kZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
biogc3R5bGUsIEhUTUxFbGVtZW50KiBlbGVtKQogewogICAgIENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uOjpjb25zdF9pdGVyYXRvciBlbmQgPSBzdHlsZS0+ZW5kKCk7CiAgICAgZm9yIChDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBzdHlsZS0+YmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIHN3aXRjaCAoKCppdCkuaWQoKSkgewotICAg
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQ6Ci0gICAgICAgICAgICAgICAgaWYg
KGVsZW0tPmhhc0xvY2FsTmFtZShiVGFnKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1Byb3BlcnR5
Rm9udFN0eWxlOgotICAgICAgICAgICAgICAgIGlmIChlbGVtLT5oYXNMb2NhbE5hbWUoaVRhZykp
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBjYXNlIENTU1Byb3Bl
cnR5Rm9udFdlaWdodDoKKyAgICAgICAgICAgIGlmIChlbGVtLT5oYXNMb2NhbE5hbWUoYlRhZykp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ246CisgICAgICAgICAgICBpZiAoZWxlbS0+
aGFzTG9jYWxOYW1lKHN1YlRhZykgfHwgZWxlbS0+aGFzTG9jYWxOYW1lKHN1cFRhZykpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUZvbnRTdHlsZToKKyAgICAgICAgICAgIGlmIChlbGVtLT5oYXNMb2NhbE5h
bWUoaVRhZykpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9
CiAKQEAgLTE0OTYsMTAgKzE1MjUsMTAgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YWRkSW5s
aW5lU3R5bGVJZk5lZWRlZChDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiAqc3R5bGUKIHsKICAg
ICBpZiAobV9yZW1vdmVPbmx5KQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAorCiAgICAgU3R5
bGVDaGFuZ2Ugc3R5bGVDaGFuZ2Uoc3R5bGUsIFBvc2l0aW9uKHN0YXJ0Tm9kZSwgMCksIFN0eWxl
Q2hhbmdlOjpzdHlsZU1vZGVGb3JQYXJzZU1vZGUoZG9jdW1lbnQoKS0+aW5Db21wYXRNb2RlKCkp
KTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAKKwogICAgIC8vCiAgICAgLy8gRm9u
dCB0YWdzIG5lZWQgdG8gZ28gb3V0c2lkZSBvZiBDU1Mgc28gdGhhdCBDU1MgZm9udCBzaXplcyBv
dmVycmlkZSBsZWFnY3kgZm9udCBzaXplcy4KICAgICAvLwpAQCAtMTUzMSwxMSArMTU2MCwxNiBA
QCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphZGRJbmxpbmVTdHlsZUlmTmVlZGVkKENTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uICpzdHlsZQogICAgIH0KIAogICAgIGlmIChzdHlsZUNoYW5nZS5h
cHBseUJvbGQoKSkKLSAgICAgICAgc3Vycm91bmROb2RlUmFuZ2VXaXRoRWxlbWVudChzdGFydE5v
ZGUsIGVuZE5vZGUsIGRvY3VtZW50KCktPmNyZWF0ZUVsZW1lbnROUyh4aHRtbE5hbWVzcGFjZVVS
SSwgImIiLCBlYykpOworICAgICAgICBzdXJyb3VuZE5vZGVSYW5nZVdpdGhFbGVtZW50KHN0YXJ0
Tm9kZSwgZW5kTm9kZSwgY3JlYXRlSFRNTEVsZW1lbnQoZG9jdW1lbnQoKSwgYlRhZykpOwogCiAg
ICAgaWYgKHN0eWxlQ2hhbmdlLmFwcGx5SXRhbGljKCkpCi0gICAgICAgIHN1cnJvdW5kTm9kZVJh
bmdlV2l0aEVsZW1lbnQoc3RhcnROb2RlLCBlbmROb2RlLCBkb2N1bWVudCgpLT5jcmVhdGVFbGVt
ZW50TlMoeGh0bWxOYW1lc3BhY2VVUkksICJpIiwgZWMpKTsKLSAgICAKKyAgICAgICAgc3Vycm91
bmROb2RlUmFuZ2VXaXRoRWxlbWVudChzdGFydE5vZGUsIGVuZE5vZGUsIGNyZWF0ZUhUTUxFbGVt
ZW50KGRvY3VtZW50KCksIGlUYWcpKTsKKworICAgIGlmIChzdHlsZUNoYW5nZS5hcHBseVN1YnNj
cmlwdCgpKQorICAgICAgICBzdXJyb3VuZE5vZGVSYW5nZVdpdGhFbGVtZW50KHN0YXJ0Tm9kZSwg
ZW5kTm9kZSwgY3JlYXRlSFRNTEVsZW1lbnQoZG9jdW1lbnQoKSwgc3ViVGFnKSk7CisgICAgZWxz
ZSBpZiAoc3R5bGVDaGFuZ2UuYXBwbHlTdXBlcnNjcmlwdCgpKQorICAgICAgICBzdXJyb3VuZE5v
ZGVSYW5nZVdpdGhFbGVtZW50KHN0YXJ0Tm9kZSwgZW5kTm9kZSwgY3JlYXRlSFRNTEVsZW1lbnQo
ZG9jdW1lbnQoKSwgc3VwVGFnKSk7CisKICAgICBpZiAobV9zdHlsZWRJbmxpbmVFbGVtZW50KQog
ICAgICAgICBzdXJyb3VuZE5vZGVSYW5nZVdpdGhFbGVtZW50KHN0YXJ0Tm9kZSwgZW5kTm9kZSwg
bV9zdHlsZWRJbmxpbmVFbGVtZW50LT5jbG9uZUVsZW1lbnQoKSk7CiB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHAKaW5kZXggY2M2ODBhNi4uZTZhYzg3ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21t
YW5kLmNwcApAQCAtOTE2LDEyICs5MTYsMTIgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVN0cmlrZXRo
cm91Z2goRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmMKIAog
c3RhdGljIGJvb2wgZXhlY3V0ZVN1YnNjcmlwdChGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9y
Q29tbWFuZFNvdXJjZSBzb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgcmV0dXJuIGV4ZWN1
dGVBcHBseVN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb25TdWJzY3JpcHQsIENTU1Byb3Bl
cnR5VmVydGljYWxBbGlnbiwgInN1YiIpOworICAgIHJldHVybiBleGVjdXRlVG9nZ2xlU3R5bGUo
ZnJhbWUsIHNvdXJjZSwgRWRpdEFjdGlvblN1YnNjcmlwdCwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFs
aWduLCAiYmFzZWxpbmUiLCAic3ViIik7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVTdXBlcnNj
cmlwdChGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UsIGNv
bnN0IFN0cmluZyYpCiB7Ci0gICAgcmV0dXJuIGV4ZWN1dGVBcHBseVN0eWxlKGZyYW1lLCBzb3Vy
Y2UsIEVkaXRBY3Rpb25TdXBlcnNjcmlwdCwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCAic3Vw
ZXIiKTsKKyAgICByZXR1cm4gZXhlY3V0ZVRvZ2dsZVN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRB
Y3Rpb25TdXBlcnNjcmlwdCwgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduLCAiYmFzZWxpbmUiLCAi
c3VwZXIiKTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZVN3YXBXaXRoTWFyayhGcmFtZSogZnJh
bWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvaHRt
bGVkaXRpbmcuY3BwCmluZGV4IGJlMmNiNWQuLmZkZmRmNWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
ZWRpdGluZy9odG1sZWRpdGluZy5jcHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmNwcApAQCAtNzg1LDkgKzc4NSwxNCBAQCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVM
aXN0SXRlbUVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIHJldHVybiBuZXcgSFRNTExJ
RWxlbWVudChsaVRhZywgZG9jdW1lbnQpOwogfQogCitQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBj
cmVhdGVIVE1MRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUpCit7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50RmFjdG9yeTo6Y3JlYXRlSFRNTEVsZW1l
bnQobmFtZSwgZG9jdW1lbnQsIDAsIGZhbHNlKTsKK30KKwogUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gY3JlYXRlSFRNTEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBBdG9taWNTdHJp
bmcmIHRhZ05hbWUpCiB7Ci0gICAgcmV0dXJuIEhUTUxFbGVtZW50RmFjdG9yeTo6Y3JlYXRlSFRN
TEVsZW1lbnQoUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgdGFnTmFtZSwgeGh0bWxOYW1lc3BhY2VV
UkkpLCBkb2N1bWVudCwgMCwgZmFsc2UpOworICAgIHJldHVybiBjcmVhdGVIVE1MRWxlbWVudChk
b2N1bWVudCwgUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgdGFnTmFtZSwgeGh0bWxOYW1lc3BhY2VV
UkkpKTsKIH0KIAogYm9vbCBpc1RhYlNwYW5Ob2RlKGNvbnN0IE5vZGUgKm5vZGUpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaCBiL1dlYkNvcmUvZWRpdGluZy9odG1s
ZWRpdGluZy5oCmluZGV4IDYzNGJiZDQuLmE4YmMwYjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRp
dGluZy9odG1sZWRpdGluZy5oCisrKyBiL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCkBA
IC04Miw2ICs4Miw3IEBAIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUJyZWFrRWxlbWVu
dChEb2N1bWVudCopOwogUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlT3JkZXJlZExpc3RF
bGVtZW50KERvY3VtZW50Kik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVVbm9yZGVy
ZWRMaXN0RWxlbWVudChEb2N1bWVudCopOwogUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRl
TGlzdEl0ZW1FbGVtZW50KERvY3VtZW50Kik7CitQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVh
dGVIVE1MRWxlbWVudChEb2N1bWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIFBhc3NSZWZQ
dHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUhUTUxFbGVtZW50KERvY3VtZW50KiwgY29uc3QgQXRvbWlj
U3RyaW5nJik7CiAKIGJvb2wgaXNUYWJTcGFuTm9kZShjb25zdCBOb2RlKik7Cg==
</data>
<flag name="review"
          id="12809"
          type_id="1"
          status="+"
          setter="justin.garcia"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26904</attachid>
            <date>2009-01-21 14:12:00 -0800</date>
            <delta_ts>2009-01-21 14:12:00 -0800</delta_ts>
            <desc>Fix execCommand() &apos;super&apos; and &apos;sub&apos; commands to add &lt;sup&gt; and &lt;sub&gt; in quirks mode, and to toggle when called twice</desc>
            <filename>mmand-super-and-sub-commands-to-add-sup-and-sub-in-quirks-mode-and-to-toggle-when-called-twice.patch</filename>
            <type>text/plain</type>
            <size>14711</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">YzZhMjZmNmQyNjZjZGFhOWZlMTM5MTliNzM4YmYyZDM5MDZhYTlmMwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI3YTM1NmUu
LmY5ZTBlYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAwOS0wMS0xNiAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSnVzdGluIEdhcmNpYS4K
KyAgICAgICAgCisgICAgICAgIFVwZGF0ZWQgcmVzdWx0cyBmb3IgZXhlY0NvbW1hbmQoKSAnc3Vi
JyBhbmQgJ3N1cGVyJyB0b2dnbGUgZml4ZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzczMworCisgICAgICAgICogZWRpdGluZy9leGVjQ29tbWFu
ZC90b2dnbGUtc3R5bGVzLWV4cGVjdGVkLnR4dDoKKwogMjAwOS0wMS0yMCAgTmlrb2xhcyBaaW1t
ZXJtYW5uICA8bmlrb2xhcy56aW1tZXJtYW5uQHRvcmNobW9iaWxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBHZW9yZ2UgU3RhaWtvcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvcmVzb3VyY2VzL3RvZ2dsZS1zdHlsZXMuanMgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL3Jlc291cmNlcy90b2dnbGUtc3R5bGVzLmpzCmluZGV4IDU4M2Ey
YWYuLmZmM2JkN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
cmVzb3VyY2VzL3RvZ2dsZS1zdHlsZXMuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVj
Q29tbWFuZC9yZXNvdXJjZXMvdG9nZ2xlLXN0eWxlcy5qcwpAQCAtODgsOCArODgsOCBAQCBydW5U
ZXN0cygiYm9sZCIsICJiIiwgImZvbnQtd2VpZ2h0IiwgImJvbGQiKTsKIHRlc3RUYWdSZW1vdmFs
T25Ub2dnbGUoInN0cm9uZyIsICJib2xkIik7IC8vIElFIGFkZHMgInN0cm9uZyIgdGFncyBmb3Ig
Ym9sZCwgc28gd2Ugc2hvdWxkIHJlbW92ZSB0aGVtIChldmVuIHRob3VnaCBGRiBkb2Vzbid0KQog
cnVuVGVzdHMoIml0YWxpYyIsICJpIiwgImZvbnQtc3R5bGUiLCAiaXRhbGljIik7CiB0ZXN0VGFn
UmVtb3ZhbE9uVG9nZ2xlKCJlbSIsICJpdGFsaWMiKTsgLy8gSUUgYWRkcyAiZW0iIHRhZ3MgZm9y
IGl0YWxpYywgc28gd2Ugc2hvdWxkIHJlbW92ZSB0aGVtIChldmVuIHRob3VnaCBGRiBkb2Vzbid0
KQotcnVuVGVzdHMoInN1YnNjcmlwdCIsICJzdWIiLCAidmVydGljYWwtYWxpZ24iLCAic3Vic2Ny
aXB0Iik7Ci1ydW5UZXN0cygic3VwZXJzY3JpcHQiLCAic3VwIiwgInZlcnRpY2FsLWFsaWduIiwg
InN1cGVyc2NyaXB0Iik7CitydW5UZXN0cygic3Vic2NyaXB0IiwgInN1YiIsICJ2ZXJ0aWNhbC1h
bGlnbiIsICJzdWIiKTsKK3J1blRlc3RzKCJzdXBlcnNjcmlwdCIsICJzdXAiLCAidmVydGljYWwt
YWxpZ24iLCAic3VwZXIiKTsKIHJ1blRlc3RzKCJzdHJpa2V0aHJvdWdoIiwgInN0cmlrZSIsICJ0
ZXh0LWRlY29yYXRpb24iLCAibGluZS10aHJvdWdoIik7CiB0ZXN0VGFnUmVtb3ZhbE9uVG9nZ2xl
KCJzIiwgInN0cmlrZXRocm91Z2giKTsKIHJ1blRlc3RzKCJ1bmRlcmxpbmUiLCAidSIsICJ0ZXh0
LWRlY29yYXRpb24iLCAidW5kZXJsaW5lIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1zdHlsZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtc3R5bGVzLWV4cGVjdGVkLnR4dAppbmRleCAzOWIz
ZTE2Li5mYjNiZmY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5k
L3RvZ2dsZS1zdHlsZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZXhl
Y0NvbW1hbmQvdG9nZ2xlLXN0eWxlcy1leHBlY3RlZC50eHQKQEAgLTEyLDEyICsxMiwxMiBAQCBQ
QVNTIGl0YWxpYyB0b2dnbGUKIFBBU1MgaXRhbGljIHJlbW92aW5nIGkKIEZBSUwgaXRhbGljIHJl
bW92aW5nIGZvbnQtc3R5bGU6IGl0YWxpYyAtLSA8c3BhbiBzdHlsZT0iIj50ZXN0PC9zcGFuPgog
RkFJTCBpdGFsaWMgcmVtb3ZpbmcgZW0gLS0gPGVtPjxzcGFuIGNsYXNzPSJBcHBsZS1zdHlsZS1z
cGFuIiBzdHlsZT0iZm9udC1zdHlsZTogbm9ybWFsOyI+dGVzdDwvc3Bhbj48L2VtPgotRkFJTCBz
dWJzY3JpcHQgdG9nZ2xlOiA8c3BhbiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgc3R5bGU9InZl
cnRpY2FsLWFsaWduOiBzdWI7Ij50ZXN0PC9zcGFuPgotRkFJTCBzdWJzY3JpcHQgcmVtb3Zpbmcg
c3ViIC0tIDxzdWI+dGVzdDwvc3ViPgotRkFJTCBzdWJzY3JpcHQgcmVtb3ZpbmcgdmVydGljYWwt
YWxpZ246IHN1YnNjcmlwdCAtLSA8c3Bhbj48c3BhbiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIg
c3R5bGU9InZlcnRpY2FsLWFsaWduOiBzdWI7Ij50ZXN0PC9zcGFuPjwvc3Bhbj4KLUZBSUwgc3Vw
ZXJzY3JpcHQgdG9nZ2xlOiA8c3BhbiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgc3R5bGU9InZl
cnRpY2FsLWFsaWduOiBzdXBlcjsiPnRlc3Q8L3NwYW4+Ci1GQUlMIHN1cGVyc2NyaXB0IHJlbW92
aW5nIHN1cCAtLSA8c3VwPnRlc3Q8L3N1cD4KLUZBSUwgc3VwZXJzY3JpcHQgcmVtb3ZpbmcgdmVy
dGljYWwtYWxpZ246IHN1cGVyc2NyaXB0IC0tIDxzcGFuPjxzcGFuIGNsYXNzPSJBcHBsZS1zdHls
ZS1zcGFuIiBzdHlsZT0idmVydGljYWwtYWxpZ246IHN1cGVyOyI+dGVzdDwvc3Bhbj48L3NwYW4+
CitQQVNTIHN1YnNjcmlwdCB0b2dnbGUKK1BBU1Mgc3Vic2NyaXB0IHJlbW92aW5nIHN1YgorRkFJ
TCBzdWJzY3JpcHQgcmVtb3ZpbmcgdmVydGljYWwtYWxpZ246IHN1YiAtLSA8c3BhbiBzdHlsZT0i
Ij50ZXN0PC9zcGFuPgorUEFTUyBzdXBlcnNjcmlwdCB0b2dnbGUKK1BBU1Mgc3VwZXJzY3JpcHQg
cmVtb3Zpbmcgc3VwCitGQUlMIHN1cGVyc2NyaXB0IHJlbW92aW5nIHZlcnRpY2FsLWFsaWduOiBz
dXBlciAtLSA8c3BhbiBzdHlsZT0iIj50ZXN0PC9zcGFuPgogUEFTUyBzdHJpa2V0aHJvdWdoIHRv
Z2dsZQogRkFJTCBzdHJpa2V0aHJvdWdoIHJlbW92aW5nIHN0cmlrZSAtLSA8c3RyaWtlIHN0eWxl
PSIiPjxzcGFuIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBzdHlsZT0idGV4dC1kZWNvcmF0aW9u
OiBub25lOyI+dGVzdDwvc3Bhbj48L3N0cmlrZT4KIEZBSUwgc3RyaWtldGhyb3VnaCByZW1vdmlu
ZyB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaCAtLSA8c3BhbiBzdHlsZT0iIj50ZXN0PC9z
cGFuPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA5YTkwYzViLi43NTdiNjMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDA5LTAxLTE2ICBFcmljIFNl
aWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBKdXN0aW4gR2Fy
Y2lhLgorCisgICAgICAgIEZpeCBleGVjQ29tbWFuZCgpICdzdXBlcicgYW5kICdzdWInIGNvbW1h
bmRzIHRvIGFkZCA8c3VwPiBhbmQgPHN1Yj4gaW4gcXVpcmtzIG1vZGUsIGFuZCB0byB0b2dnbGUg
d2hlbiBjYWxsZWQgdHdpY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NzMzCisgICAgICAgIAorICAgICAgICBUZXN0IGNoYW5nZWQ6IGVkaXRpbmcv
ZXhlY0NvbW1hbmQvdG9nZ2xlLXN0eWxlcy1leHBlY3RlZC50eHQKKworICAgICAgICAqIGVkaXRp
bmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDaGFuZ2U6
OmFwcGx5U3Vic2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ2hhbmdlOjphcHBseVN1
cGVyc2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ2hhbmdlOjpTdHlsZUNoYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNoYW5nZTo6aW5pdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZUNoYW5nZTo6Y2hlY2tGb3JMZWdhY3lIVE1MU3R5bGVDaGFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmlzSFRNTFN0eWxlTm9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YWRkSW5saW5lU3R5bGVJZk5lZWRlZCk6CisgICAg
ICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1
dGVTdWJzY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZVN1cGVyc2NyaXB0KToKKyAg
ICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUhUTUxFbGVtZW50KToKKyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0aW5nLmg6CisKIDIwMDkt
MDEtMjEgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvQXBw
bHlTdHlsZUNvbW1hbmQuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNw
cAppbmRleCBhNzYzYmQ5Li5lMDA4ZWZlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvQXBw
bHlTdHlsZUNvbW1hbmQuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFu
ZC5jcHAKQEAgLTUyLDE0ICs1MiwxNiBAQCBjbGFzcyBTdHlsZUNoYW5nZSB7CiBwdWJsaWM6CiAg
ICAgZW51bSBFTGVnYWN5SFRNTFN0eWxlcyB7IERvTm90VXNlTGVnYWN5SFRNTFN0eWxlcywgVXNl
TGVnYWN5SFRNTFN0eWxlcyB9OwogCi0gICAgZXhwbGljaXQgU3R5bGVDaGFuZ2UoQ1NTU3R5bGVE
ZWNsYXJhdGlvbiAqLCBFTGVnYWN5SFRNTFN0eWxlcyB1c2VzTGVnYWN5U3R5bGVzPVVzZUxlZ2Fj
eUhUTUxTdHlsZXMpOwotICAgIFN0eWxlQ2hhbmdlKENTU1N0eWxlRGVjbGFyYXRpb24gKiwgY29u
c3QgUG9zaXRpb24gJiwgRUxlZ2FjeUhUTUxTdHlsZXMgdXNlc0xlZ2FjeVN0eWxlcz1Vc2VMZWdh
Y3lIVE1MU3R5bGVzKTsKKyAgICBleHBsaWNpdCBTdHlsZUNoYW5nZShDU1NTdHlsZURlY2xhcmF0
aW9uKiwgRUxlZ2FjeUhUTUxTdHlsZXMgdXNlc0xlZ2FjeVN0eWxlcz1Vc2VMZWdhY3lIVE1MU3R5
bGVzKTsKKyAgICBTdHlsZUNoYW5nZShDU1NTdHlsZURlY2xhcmF0aW9uKiwgY29uc3QgUG9zaXRp
b24mLCBFTGVnYWN5SFRNTFN0eWxlcyB1c2VzTGVnYWN5U3R5bGVzPVVzZUxlZ2FjeUhUTUxTdHls
ZXMpOwogCiAgICAgc3RhdGljIEVMZWdhY3lIVE1MU3R5bGVzIHN0eWxlTW9kZUZvclBhcnNlTW9k
ZShib29sKTsKIAogICAgIFN0cmluZyBjc3NTdHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3NzU3R5
bGU7IH0KICAgICBib29sIGFwcGx5Qm9sZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlCb2xkOyB9
CiAgICAgYm9vbCBhcHBseUl0YWxpYygpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlJdGFsaWM7IH0K
KyAgICBib29sIGFwcGx5U3Vic2NyaXB0KCkgY29uc3QgeyByZXR1cm4gbV9hcHBseVN1YnNjcmlw
dDsgfQorICAgIGJvb2wgYXBwbHlTdXBlcnNjcmlwdCgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlT
dXBlcnNjcmlwdDsgfQogICAgIGJvb2wgYXBwbHlGb250Q29sb3IoKSBjb25zdCB7IHJldHVybiBt
X2FwcGx5Rm9udENvbG9yLmxlbmd0aCgpID4gMDsgfQogICAgIGJvb2wgYXBwbHlGb250RmFjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYXBwbHlGb250RmFjZS5sZW5ndGgoKSA+IDA7IH0KICAgICBib29s
IGFwcGx5Rm9udFNpemUoKSBjb25zdCB7IHJldHVybiBtX2FwcGx5Rm9udFNpemUubGVuZ3RoKCkg
PiAwOyB9CkBAIC03MSwxMyArNzMsMTUgQEAgcHVibGljOgogICAgIGJvb2wgdXNlc0xlZ2FjeVN0
eWxlcygpIGNvbnN0IHsgcmV0dXJuIG1fdXNlc0xlZ2FjeVN0eWxlczsgfQogCiBwcml2YXRlOgot
ICAgIHZvaWQgaW5pdChQYXNzUmVmUHRyPENTU1N0eWxlRGVjbGFyYXRpb24+LCBjb25zdCBQb3Np
dGlvbiAmKTsKLSAgICBib29sIGNoZWNrRm9yTGVnYWN5SFRNTFN0eWxlQ2hhbmdlKGNvbnN0IENT
U1Byb3BlcnR5ICopOwotICAgIHN0YXRpYyBib29sIGN1cnJlbnRseUhhc1N0eWxlKGNvbnN0IFBv
c2l0aW9uICYsIGNvbnN0IENTU1Byb3BlcnR5ICopOworICAgIHZvaWQgaW5pdChQYXNzUmVmUHRy
PENTU1N0eWxlRGVjbGFyYXRpb24+LCBjb25zdCBQb3NpdGlvbiYpOworICAgIGJvb2wgY2hlY2tG
b3JMZWdhY3lIVE1MU3R5bGVDaGFuZ2UoY29uc3QgQ1NTUHJvcGVydHkqKTsKKyAgICBzdGF0aWMg
Ym9vbCBjdXJyZW50bHlIYXNTdHlsZShjb25zdCBQb3NpdGlvbiYsIGNvbnN0IENTU1Byb3BlcnR5
Kik7CiAgICAgCiAgICAgU3RyaW5nIG1fY3NzU3R5bGU7CiAgICAgYm9vbCBtX2FwcGx5Qm9sZDsK
ICAgICBib29sIG1fYXBwbHlJdGFsaWM7CisgICAgYm9vbCBtX2FwcGx5U3Vic2NyaXB0OworICAg
IGJvb2wgbV9hcHBseVN1cGVyc2NyaXB0OwogICAgIFN0cmluZyBtX2FwcGx5Rm9udENvbG9yOwog
ICAgIFN0cmluZyBtX2FwcGx5Rm9udEZhY2U7CiAgICAgU3RyaW5nIG1fYXBwbHlGb250U2l6ZTsK
QEAgLTg2LDE0ICs5MCwyMiBAQCBwcml2YXRlOgogCiAKIAotU3R5bGVDaGFuZ2U6OlN0eWxlQ2hh
bmdlKENTU1N0eWxlRGVjbGFyYXRpb24gKnN0eWxlLCBFTGVnYWN5SFRNTFN0eWxlcyB1c2VzTGVn
YWN5U3R5bGVzKQotICAgIDogbV9hcHBseUJvbGQoZmFsc2UpLCBtX2FwcGx5SXRhbGljKGZhbHNl
KSwgbV91c2VzTGVnYWN5U3R5bGVzKHVzZXNMZWdhY3lTdHlsZXMpCitTdHlsZUNoYW5nZTo6U3R5
bGVDaGFuZ2UoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsIEVMZWdhY3lIVE1MU3R5bGVzIHVz
ZXNMZWdhY3lTdHlsZXMpCisgICAgOiBtX2FwcGx5Qm9sZChmYWxzZSkKKyAgICAsIG1fYXBwbHlJ
dGFsaWMoZmFsc2UpCisgICAgLCBtX2FwcGx5U3Vic2NyaXB0KGZhbHNlKQorICAgICwgbV9hcHBs
eVN1cGVyc2NyaXB0KGZhbHNlKQorICAgICwgbV91c2VzTGVnYWN5U3R5bGVzKHVzZXNMZWdhY3lT
dHlsZXMpCiB7CiAgICAgaW5pdChzdHlsZSwgUG9zaXRpb24oKSk7CiB9CiAKLVN0eWxlQ2hhbmdl
OjpTdHlsZUNoYW5nZShDU1NTdHlsZURlY2xhcmF0aW9uICpzdHlsZSwgY29uc3QgUG9zaXRpb24g
JnBvc2l0aW9uLCBFTGVnYWN5SFRNTFN0eWxlcyB1c2VzTGVnYWN5U3R5bGVzKQotICAgIDogbV9h
cHBseUJvbGQoZmFsc2UpLCBtX2FwcGx5SXRhbGljKGZhbHNlKSwgbV91c2VzTGVnYWN5U3R5bGVz
KHVzZXNMZWdhY3lTdHlsZXMpCitTdHlsZUNoYW5nZTo6U3R5bGVDaGFuZ2UoQ1NTU3R5bGVEZWNs
YXJhdGlvbiogc3R5bGUsIGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbiwgRUxlZ2FjeUhUTUxTdHls
ZXMgdXNlc0xlZ2FjeVN0eWxlcykKKyAgICA6IG1fYXBwbHlCb2xkKGZhbHNlKQorICAgICwgbV9h
cHBseUl0YWxpYyhmYWxzZSkKKyAgICAsIG1fYXBwbHlTdWJzY3JpcHQoZmFsc2UpCisgICAgLCBt
X2FwcGx5U3VwZXJzY3JpcHQoZmFsc2UpCisgICAgLCBtX3VzZXNMZWdhY3lTdHlsZXModXNlc0xl
Z2FjeVN0eWxlcykKIHsKICAgICBpbml0KHN0eWxlLCBwb3NpdGlvbik7CiB9CkBAIC0xMzIsNiAr
MTQ0LDcgQEAgdm9pZCBTdHlsZUNoYW5nZTo6aW5pdChQYXNzUmVmUHRyPENTU1N0eWxlRGVjbGFy
YXRpb24+IHN0eWxlLCBjb25zdCBQb3NpdGlvbiAmcG8KIAogICAgICAgICBpZiAocHJvcGVydHkt
PmlkKCkgPT0gQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCkgewogICAg
ICAgICAgICAgLy8gd2UgaGF2ZSB0byBzcGVjaWFsLWNhc2UgdGV4dCBkZWNvcmF0aW9ucworICAg
ICAgICAgICAgLy8gRklYTUU6IFdoeT8KICAgICAgICAgICAgIENTU1Byb3BlcnR5IGFsdGVyZWRQ
cm9wZXJ0eShDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uLCBwcm9wZXJ0eS0+dmFsdWUoKSwgcHJv
cGVydHktPmlzSW1wb3J0YW50KCkpOwogICAgICAgICAgICAgc3R5bGVUZXh0ICs9IGFsdGVyZWRQ
cm9wZXJ0eS5jc3NUZXh0KCk7CiAgICAgICAgIH0gZWxzZQpAQCAtMTUyLDExICsxNjUsMTEgQEAg
U3R5bGVDaGFuZ2U6OkVMZWdhY3lIVE1MU3R5bGVzIFN0eWxlQ2hhbmdlOjpzdHlsZU1vZGVGb3JQ
YXJzZU1vZGUoYm9vbCBpc1F1aXJrc00KICAgICByZXR1cm4gaXNRdWlya3NNb2RlID8gVXNlTGVn
YWN5SFRNTFN0eWxlcyA6IERvTm90VXNlTGVnYWN5SFRNTFN0eWxlczsKIH0KIAotYm9vbCBTdHls
ZUNoYW5nZTo6Y2hlY2tGb3JMZWdhY3lIVE1MU3R5bGVDaGFuZ2UoY29uc3QgQ1NTUHJvcGVydHkg
KnByb3BlcnR5KQorLy8gVGhpcyBmdW5jdGlvbiBpcyB0aGUgbWFwcGluZyBmcm9tIENTUyBzdHls
ZXMgdG8gc3R5bGluZyB0YWdzIChsaWtlIGZvbnQtd2VpZ2h0OiBib2xkIHRvIDxiPikKK2Jvb2wg
U3R5bGVDaGFuZ2U6OmNoZWNrRm9yTGVnYWN5SFRNTFN0eWxlQ2hhbmdlKGNvbnN0IENTU1Byb3Bl
cnR5KiBwcm9wZXJ0eSkKIHsKLSAgICBpZiAoIXByb3BlcnR5IHx8ICFwcm9wZXJ0eS0+dmFsdWUo
KSkgeworICAgIGlmICghcHJvcGVydHkgfHwgIXByb3BlcnR5LT52YWx1ZSgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQogICAgIAogICAgIFN0cmluZyB2YWx1ZVRleHQocHJvcGVydHkt
PnZhbHVlKCktPmNzc1RleHQoKSk7CiAgICAgc3dpdGNoIChwcm9wZXJ0eS0+aWQoKSkgewpAQCAt
MTY2LDYgKzE3OSwxNiBAQCBib29sIFN0eWxlQ2hhbmdlOjpjaGVja0ZvckxlZ2FjeUhUTUxTdHls
ZUNoYW5nZShjb25zdCBDU1NQcm9wZXJ0eSAqcHJvcGVydHkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ246CisgICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmlu
Z0Nhc2UodmFsdWVUZXh0LCAic3ViIikpIHsKKyAgICAgICAgICAgICAgICBtX2FwcGx5U3Vic2Ny
aXB0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh2YWx1ZVRleHQsICJzdXBlciIpKSB7
CisgICAgICAgICAgICAgICAgbV9hcHBseVN1cGVyc2NyaXB0ID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFN0eWxlOgogICAgICAgICAgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKHZhbHVlVGV4dCwgIml0YWxpYyIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKHZhbHVl
VGV4dCwgIm9ibGlxdWUiKSkgewogICAgICAgICAgICAgICAgIG1fYXBwbHlJdGFsaWMgPSB0cnVl
OwpAQCAtOTE0LDE4ICs5MzcsMjQgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxp
bmVTdHlsZVRvUmFuZ2UoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWwKICAgICB9CiB9
CiAKLWJvb2wgQXBwbHlTdHlsZUNvbW1hbmQ6OmlzSFRNTFN0eWxlTm9kZShDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbiAqc3R5bGUsIEhUTUxFbGVtZW50ICplbGVtKQorLy8gVGhpcyBmdW5jdGlv
biBtYXBzIGZyb20gc3R5bGluZyB0YWdzIHRvIENTUyBzdHlsZXMuICBVc2VkIGZvciBrbm93aW5n
IHdoaWNoCisvLyBzdHlsaW5nIHRhZ3Mgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiB0b2dnbGluZyBz
dHlsZXMuCitib29sIEFwcGx5U3R5bGVDb21tYW5kOjppc0hUTUxTdHlsZU5vZGUoQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBIVE1MRWxlbWVudCogZWxlbSkKIHsKICAgICBDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gc3R5bGUtPmVuZCgp
OwogICAgIGZvciAoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gc3R5bGUtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBzd2l0Y2ggKCgq
aXQpLmlkKCkpIHsKLSAgICAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGb250V2VpZ2h0OgotICAg
ICAgICAgICAgICAgIGlmIChlbGVtLT5oYXNMb2NhbE5hbWUoYlRhZykpCi0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eUZvbnRTdHlsZToKLSAgICAgICAgICAgICAgICBpZiAoZWxlbS0+aGFz
TG9jYWxOYW1lKGlUYWcpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQ6CisgICAgICAgICAgICBpZiAoZWxlbS0+aGFz
TG9jYWxOYW1lKGJUYWcpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduOgorICAgICAg
ICAgICAgaWYgKGVsZW0tPmhhc0xvY2FsTmFtZShzdWJUYWcpIHx8IGVsZW0tPmhhc0xvY2FsTmFt
ZShzdXBUYWcpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3R5bGU6CisgICAgICAgICAgICBpZiAo
ZWxlbS0+aGFzTG9jYWxOYW1lKGlUYWcpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAgICAgfQogCkBAIC0xNDk2LDEwICsxNTI1LDEwIEBAIHZvaWQgQXBwbHlTdHls
ZUNvbW1hbmQ6OmFkZElubGluZVN0eWxlSWZOZWVkZWQoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24gKnN0eWxlCiB7CiAgICAgaWYgKG1fcmVtb3ZlT25seSkKICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAKKwogICAgIFN0eWxlQ2hhbmdlIHN0eWxlQ2hhbmdlKHN0eWxlLCBQb3NpdGlvbihzdGFy
dE5vZGUsIDApLCBTdHlsZUNoYW5nZTo6c3R5bGVNb2RlRm9yUGFyc2VNb2RlKGRvY3VtZW50KCkt
PmluQ29tcGF0TW9kZSgpKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgCisKICAg
ICAvLwogICAgIC8vIEZvbnQgdGFncyBuZWVkIHRvIGdvIG91dHNpZGUgb2YgQ1NTIHNvIHRoYXQg
Q1NTIGZvbnQgc2l6ZXMgb3ZlcnJpZGUgbGVhZ2N5IGZvbnQgc2l6ZXMuCiAgICAgLy8KQEAgLTE1
MzEsMTEgKzE1NjAsMTYgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YWRkSW5saW5lU3R5bGVJ
Zk5lZWRlZChDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiAqc3R5bGUKICAgICB9CiAKICAgICBp
ZiAoc3R5bGVDaGFuZ2UuYXBwbHlCb2xkKCkpCi0gICAgICAgIHN1cnJvdW5kTm9kZVJhbmdlV2l0
aEVsZW1lbnQoc3RhcnROb2RlLCBlbmROb2RlLCBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50TlMo
eGh0bWxOYW1lc3BhY2VVUkksICJiIiwgZWMpKTsKKyAgICAgICAgc3Vycm91bmROb2RlUmFuZ2VX
aXRoRWxlbWVudChzdGFydE5vZGUsIGVuZE5vZGUsIGNyZWF0ZUhUTUxFbGVtZW50KGRvY3VtZW50
KCksIGJUYWcpKTsKIAogICAgIGlmIChzdHlsZUNoYW5nZS5hcHBseUl0YWxpYygpKQotICAgICAg
ICBzdXJyb3VuZE5vZGVSYW5nZVdpdGhFbGVtZW50KHN0YXJ0Tm9kZSwgZW5kTm9kZSwgZG9jdW1l
bnQoKS0+Y3JlYXRlRWxlbWVudE5TKHhodG1sTmFtZXNwYWNlVVJJLCAiaSIsIGVjKSk7Ci0gICAg
CisgICAgICAgIHN1cnJvdW5kTm9kZVJhbmdlV2l0aEVsZW1lbnQoc3RhcnROb2RlLCBlbmROb2Rl
LCBjcmVhdGVIVE1MRWxlbWVudChkb2N1bWVudCgpLCBpVGFnKSk7CisKKyAgICBpZiAoc3R5bGVD
aGFuZ2UuYXBwbHlTdWJzY3JpcHQoKSkKKyAgICAgICAgc3Vycm91bmROb2RlUmFuZ2VXaXRoRWxl
bWVudChzdGFydE5vZGUsIGVuZE5vZGUsIGNyZWF0ZUhUTUxFbGVtZW50KGRvY3VtZW50KCksIHN1
YlRhZykpOworICAgIGVsc2UgaWYgKHN0eWxlQ2hhbmdlLmFwcGx5U3VwZXJzY3JpcHQoKSkKKyAg
ICAgICAgc3Vycm91bmROb2RlUmFuZ2VXaXRoRWxlbWVudChzdGFydE5vZGUsIGVuZE5vZGUsIGNy
ZWF0ZUhUTUxFbGVtZW50KGRvY3VtZW50KCksIHN1cFRhZykpOworCiAgICAgaWYgKG1fc3R5bGVk
SW5saW5lRWxlbWVudCkKICAgICAgICAgc3Vycm91bmROb2RlUmFuZ2VXaXRoRWxlbWVudChzdGFy
dE5vZGUsIGVuZE5vZGUsIG1fc3R5bGVkSW5saW5lRWxlbWVudC0+Y2xvbmVFbGVtZW50KCkpOwog
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4IGNjNjgwYTYuLmU2YWM4N2UgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTkxNiwxMiArOTE2LDEyIEBAIHN0YXRpYyBib29s
IGV4ZWN1dGVTdHJpa2V0aHJvdWdoKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5k
U291cmNlIHNvdXJjCiAKIHN0YXRpYyBib29sIGV4ZWN1dGVTdWJzY3JpcHQoRnJhbWUqIGZyYW1l
LCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc291cmNlLCBjb25zdCBTdHJpbmcmKQogewot
ICAgIHJldHVybiBleGVjdXRlQXBwbHlTdHlsZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uU3Vi
c2NyaXB0LCBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ24sICJzdWIiKTsKKyAgICByZXR1cm4gZXhl
Y3V0ZVRvZ2dsZVN0eWxlKGZyYW1lLCBzb3VyY2UsIEVkaXRBY3Rpb25TdWJzY3JpcHQsIENTU1By
b3BlcnR5VmVydGljYWxBbGlnbiwgImJhc2VsaW5lIiwgInN1YiIpOwogfQogCiBzdGF0aWMgYm9v
bCBleGVjdXRlU3VwZXJzY3JpcHQoRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRT
b3VyY2Ugc291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIHJldHVybiBleGVjdXRlQXBwbHlT
dHlsZShmcmFtZSwgc291cmNlLCBFZGl0QWN0aW9uU3VwZXJzY3JpcHQsIENTU1Byb3BlcnR5VmVy
dGljYWxBbGlnbiwgInN1cGVyIik7CisgICAgcmV0dXJuIGV4ZWN1dGVUb2dnbGVTdHlsZShmcmFt
ZSwgc291cmNlLCBFZGl0QWN0aW9uU3VwZXJzY3JpcHQsIENTU1Byb3BlcnR5VmVydGljYWxBbGln
biwgImJhc2VsaW5lIiwgInN1cGVyIik7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVTd2FwV2l0
aE1hcmsoRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0
cmluZyYpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwIGIvV2Vi
Q29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAppbmRleCBiZTJjYjVkLi5mZGZkZjVmIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuY3BwCisrKyBiL1dlYkNvcmUvZWRp
dGluZy9odG1sZWRpdGluZy5jcHAKQEAgLTc4NSw5ICs3ODUsMTQgQEAgUGFzc1JlZlB0cjxIVE1M
RWxlbWVudD4gY3JlYXRlTGlzdEl0ZW1FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKICAgICBy
ZXR1cm4gbmV3IEhUTUxMSUVsZW1lbnQobGlUYWcsIGRvY3VtZW50KTsKIH0KIAorUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gY3JlYXRlSFRNTEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lKQoreworICAgIHJldHVybiBIVE1MRWxlbWVudEZhY3Rvcnk6
OmNyZWF0ZUhUTUxFbGVtZW50KG5hbWUsIGRvY3VtZW50LCAwLCBmYWxzZSk7Cit9CisKIFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGNyZWF0ZUhUTUxFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwg
Y29uc3QgQXRvbWljU3RyaW5nJiB0YWdOYW1lKQogewotICAgIHJldHVybiBIVE1MRWxlbWVudEZh
Y3Rvcnk6OmNyZWF0ZUhUTUxFbGVtZW50KFF1YWxpZmllZE5hbWUobnVsbEF0b20sIHRhZ05hbWUs
IHhodG1sTmFtZXNwYWNlVVJJKSwgZG9jdW1lbnQsIDAsIGZhbHNlKTsKKyAgICByZXR1cm4gY3Jl
YXRlSFRNTEVsZW1lbnQoZG9jdW1lbnQsIFF1YWxpZmllZE5hbWUobnVsbEF0b20sIHRhZ05hbWUs
IHhodG1sTmFtZXNwYWNlVVJJKSk7CiB9CiAKIGJvb2wgaXNUYWJTcGFuTm9kZShjb25zdCBOb2Rl
ICpub2RlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmggYi9XZWJD
b3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAppbmRleCA2MzRiYmQ0Li5hOGJjMGI0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAorKysgYi9XZWJDb3JlL2VkaXRpbmcv
aHRtbGVkaXRpbmcuaApAQCAtODIsNiArODIsNyBAQCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBj
cmVhdGVCcmVha0VsZW1lbnQoRG9jdW1lbnQqKTsKIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGNy
ZWF0ZU9yZGVyZWRMaXN0RWxlbWVudChEb2N1bWVudCopOwogUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gY3JlYXRlVW5vcmRlcmVkTGlzdEVsZW1lbnQoRG9jdW1lbnQqKTsKIFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGNyZWF0ZUxpc3RJdGVtRWxlbWVudChEb2N1bWVudCopOworUGFzc1JlZlB0cjxI
VE1MRWxlbWVudD4gY3JlYXRlSFRNTEVsZW1lbnQoRG9jdW1lbnQqLCBjb25zdCBRdWFsaWZpZWRO
YW1lJik7CiBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjcmVhdGVIVE1MRWxlbWVudChEb2N1bWVu
dCosIGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiBib29sIGlzVGFiU3Bhbk5vZGUoY29uc3QgTm9k
ZSopOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>