<?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>43639</bug_id>
          
          <creation_ts>2010-08-06 13:37:46 -0700</creation_ts>
          <short_desc>Undo fails in RemoveCSSPropertyCommand when the corresponding style attribute is removed</short_desc>
          <delta_ts>2010-08-09 16:25:28 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>26871</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>jparent</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>261425</commentid>
    <comment_count>0</comment_count>
      <attachid>63755</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-06 13:37:46 -0700</bug_when>
    <thetext>Created attachment 63755
demonstrates the bug

Currently, the only usage of RemoveCSSPropertyCommand to trim some CSS property from a given HTML element.  However, because it only modifies CSSMutableStyleDeclaration and not the attribute of the styled element, RemoveCSSPropertyCommand cannot undo the removal if the style attribute of the corresponding element gets removed afterwards.  This happens when a CSS style is removed and style attribute becomes empty.

To fix this problem, we should re-implement removeCSSProperty using setNodeAttribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261496</commentid>
    <comment_count>1</comment_count>
      <attachid>63763</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-06 14:47:26 -0700</bug_when>
    <thetext>Created attachment 63763
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261497</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-06 14:48:25 -0700</bug_when>
    <thetext>The patch is large because I had to delete RemoveCSSPropertyCommand.h/.cpp from all build files but the code change itself is trivial and must be easy to review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261507</commentid>
    <comment_count>3</comment_count>
      <attachid>63763</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-06 14:57:34 -0700</bug_when>
    <thetext>Comment on attachment 63763
fixes the bug

Need to add one more test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261519</commentid>
    <comment_count>4</comment_count>
      <attachid>63769</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-06 15:17:12 -0700</bug_when>
    <thetext>Created attachment 63769
Added more tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262237</commentid>
    <comment_count>5</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2010-08-09 11:25:22 -0700</bug_when>
    <thetext>&gt; Currently, the only usage of RemoveCSSPropertyCommand to trim some CSS property from a given HTML element.  However, because it only modifies CSSMutableStyleDeclaration and not the attribute of the styled element, RemoveCSSPropertyCommand cannot undo the removal if the style attribute of the corresponding element gets removed afterwards.  This happens when a CSS style is removed and style attribute becomes empty.

The new approach has a higher memory overhead, since we hold on to the entire style string just to remove one property.  Can we just give RemoveCSSPropertyCommand the ability to remove the style attribute if removing the property empties the inline style declaration?

And I can&apos;t see where the new implementation removes the style attribute when necessary like you say:

-void CompositeEditCommand::removeCSSProperty(PassRefPtr&lt;CSSMutableStyleDeclaration&gt; style, CSSPropertyID property)
+void CompositeEditCommand::removeCSSProperty(PassRefPtr&lt;StyledElement&gt; element, CSSPropertyID property)
 {
-    applyCommandToComposite(RemoveCSSPropertyCommand::create(document(), style, property));
+    RefPtr&lt;CSSMutableStyleDeclaration&gt; style = element-&gt;inlineStyleDecl();
+    if (!style-&gt;getPropertyCSSValue(property))
+        return;
+    style = style-&gt;copy();
+    style-&gt;removeProperty(property);
+    setNodeAttribute(element, styleAttr, style-&gt;cssText());
 }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262238</commentid>
    <comment_count>6</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2010-08-09 11:27:15 -0700</bug_when>
    <thetext>&gt; And I can&apos;t see where the new implementation removes the style attribute when necessary like you say:

Oops, looks like Element::setAttribute does it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262263</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-09 12:22:45 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; The new approach has a higher memory overhead, since we hold on to the entire style string just to remove one property.  Can we just give RemoveCSSPropertyCommand the ability to remove the style attribute if removing the property empties the inline style declaration?

Right, it&apos;s a higher overhead but I don&apos;t think removing the style attribute within RemoveCSSPropertyCommand solves the problem because there are other places (applyRelativeFontStyleChange, applyInlineStyleToRange, &amp; applyTextDecorationStyle in ApplyStyleCommand for example) where we generate style attribute as a string and use setNodeAttribute to update, resulting in the loss of CSSMutableStyleDeclaration.

We could remember the property we removed though.

&gt; And I can&apos;t see where the new implementation removes the style attribute when necessary like you say:

My point isn&apos;t really to remove the attribute inside of removeCSSProperty.  removeCSSProperty is used in ApplyStyleCommand to remove text decoration and such and we manually remove the attribute whenever style attribute is empty (see applyRelativeFontStyleChange, removeEmbeddingUpToEnclosingBlock, removeHTMLBidiEmbeddingStyle, removeCSSStyle for instance).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262351</commentid>
    <comment_count>8</comment_count>
      <attachid>63942</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-09 15:31:35 -0700</bug_when>
    <thetext>Created attachment 63942
modified RemoveCSSPropertyCommand to restore styled element instead of style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262383</commentid>
    <comment_count>9</comment_count>
      <attachid>63942</attachid>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2010-08-09 16:07:59 -0700</bug_when>
    <thetext>Comment on attachment 63942
modified RemoveCSSPropertyCommand to restore styled element instead of style

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262387</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-09 16:21:04 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 63942 [details])
&gt; r=me

Thanks for the promptly review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262392</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-09 16:25:28 -0700</bug_when>
    <thetext>Committed r65014: &lt;http://trac.webkit.org/changeset/65014&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>63755</attachid>
            <date>2010-08-06 13:37:46 -0700</date>
            <delta_ts>2010-08-06 13:37:46 -0700</delta_ts>
            <desc>demonstrates the bug</desc>
            <filename>remove-css-property-and-prune.html</filename>
            <type>text/html</type>
            <size>238</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">PGRpdiBpZD0idGVzdCIgY29udGVudGVkaXRhYmxlPgo8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6
IDkwMDsiPiB0ZXN0IDwvc3Bhbj4KPC9kaXY+CjxzY3JpcHQ+Cgp3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuc2VsZWN0QWxsQ2hpbGRyZW4odGVzdCk7CmRvY3VtZW50LmV4ZWNDb21tYW5kKCdib2xkJywg
ZmFsc2UsIG51bGwpOwpkb2N1bWVudC5leGVjQ29tbWFuZCgndW5kbycsIGZhbHNlLCBudWxsKTsK
Cjwvc2NyaXB0Pg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63763</attachid>
            <date>2010-08-06 14:47:26 -0700</date>
            <delta_ts>2010-08-06 14:57:34 -0700</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-43639-20100806144725.patch</filename>
            <type>text/plain</type>
            <size>27194</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDg2NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTAtMDgtMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5k
byBmYWlscyBpbiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQgd2hlbiB0aGUgY29ycmVzcG9uZGlu
ZyBzdHlsZSBhdHRyaWJ1dGUgaXMgcmVtb3ZlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM2MzkKKworICAgICAgICBSZW1vdmVkIFJlbW92ZUNTU1By
b3BlcnR5Q29tbWFuZCBhbmQgcmVpbXBsZW1lbnRlZCByZW1vdmVDU1NQcm9wZXJ0eSB1c2luZyBz
ZXROb2RlQXR0cmlidXRlLgorICAgICAgICBBbHNvIGNoYW5nZWQgdGhlIGZpcnN0IGFyZ3VtZW50
IG9mIHJlbW92ZUNTU1Byb3BlcnR5IHRvIFBhc3NSZWZQdHI8U3R5bGVkRWxlbWVudD4KKyAgICAg
ICAgZnJvbSBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPi4KKworICAgICAg
ICBUZXN0czogZWRpdGluZy91bmRvL3JlbW92ZS1jc3MtcHJvcGVydHktYW5kLXJlbW92ZS1zdHls
ZS5odG1sCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOiBSZW1vdmVkIEFwcGx5U3R5bGVDb21tYW5k
LmNwcC4KKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogUmVtb3ZlZCBBcHBseVN0eWxlQ29tbWFu
ZC5oLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBSZW1vdmVkIEFwcGx5U3R5bGVDb21tYW5k
LmNwcCBhbmQgQXBwbHlTdHlsZUNvbW1hbmQuaAorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0
dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6IFJlbW92ZWQg
QXBwbHlTdHlsZUNvbW1hbmQgYW5kIGl0cyBtZW1iZXIgZnVuY3Rpb25zLgorICAgICAgICAqIGVk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHls
ZUNvbW1hbmQ6OnJlbW92ZUNTU1N0eWxlKTogQ2FsbHMgcmVtb3ZlQ1NTUHJvcGVydHkuCisgICAg
ICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6ZXh0cmFjdFRleHREZWNvcmF0aW9uU3R5
bGUpOiBDYWxscyByZW1vdmVDU1NQcm9wZXJ0eS4KKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjpyZW1vdmVDU1NQcm9wZXJ0eSk6IFVzZXMgc2V0Tm9kZUF0dHJpYnV0ZS4KKyAgICAgICAgKiBl
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmg6IENoYW5nZWQgdGhlIHByb3RvdHlwZSBvZiBy
ZW1vdmVDU1NQcm9wZXJ0eQorICAgICAgICAgIGFuZCBpbmNsdWRlZCBTdHlsZWRFbGVtZW50LmgK
KyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHA6IFJlbW92ZWQgI2luY2x1ZGUg
PFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHA+CisgICAgICAgICogZWRpdGluZy9SZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGVkaXRpbmcvUmVtb3Zl
Q1NTUHJvcGVydHlDb21tYW5kLmg6IFJlbW92ZWQuCisKIDIwMTAtMDgtMDYgIEd1c3Rhdm8gTm9y
b25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpJbmRleDogV2ViQ29yZS9BbmRyb2lkLm1rCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvQW5kcm9pZC5tawkocmV2aXNpb24gNjQ4NjcpCisrKyBXZWJDb3JlL0Fu
ZHJvaWQubWsJKHdvcmtpbmcgY29weSkKQEAgLTIyMSw3ICsyMjEsNiBAQCBMT0NBTF9TUkNfRklM
RVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAllZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVu
dHNDb21tYW5kLmNwcCBcCiAJZWRpdGluZy9Nb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwIFwK
IAllZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCBcCi0JZWRpdGluZy9SZW1vdmVDU1NQ
cm9wZXJ0eUNvbW1hbmQuY3BwIFwKIAllZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuY3BwIFwK
IAllZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcCBcCiAJZWRpdGluZy9SZW1vdmVOb2RlUHJl
c2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAgXApJbmRleDogV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA2NDg2NykK
KysrIFdlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTkwMSw3ICs5MDEs
NiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1l
bnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAK
ICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAotICAgIGVkaXRpbmcvUmVtb3Zl
Q1NTUHJvcGVydHlDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlRm9ybWF0Q29tbWFuZC5j
cHAKICAgICBlZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3Zl
Tm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCkluZGV4OiBXZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDY0
ODY3KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMTI0NSw4
ICsxMjQ1LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2VkaXRpbmcvTW9kaWZ5
U2VsZWN0aW9uTGlzdExldmVsLmggXAogCVdlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29t
bWFuZC5jcHAgXAogCVdlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIFwKLQlX
ZWJDb3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCBcCi0JV2ViQ29yZS9l
ZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvUmVt
b3ZlRm9ybWF0Q29tbWFuZC5jcHAgXAogCVdlYkNvcmUvZWRpdGluZy9SZW1vdmVGb3JtYXRDb21t
YW5kLmggXAogCVdlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAgXApJbmRleDog
V2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJ
KHJldmlzaW9uIDY0ODY3KQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkK
QEAgLTEzNjUsOCArMTM2NSw2IEBACiAgICAgICAgICAgICAnZWRpdGluZy9Nb2RpZnlTZWxlY3Rp
b25MaXN0TGV2ZWwuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAnLAogICAgICAgICAgICAgJ2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCcsCi0g
ICAgICAgICAgICAnZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwJywKLSAgICAg
ICAgICAgICdlZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oJywKICAgICAgICAgICAg
ICdlZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5n
L1JlbW92ZUZvcm1hdENvbW1hbmQuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9SZW1vdmVOb2Rl
Q29tbWFuZC5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLm9yZGVyCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS5vcmRlcgkocmV2aXNpb24gNjQ4NjcpCisrKyBXZWJDb3JlL1dlYkNv
cmUub3JkZXIJKHdvcmtpbmcgY29weSkKQEAgLTE3NjM2LDkgKzE3NjM2LDYgQEAgX19aTjdXZWJD
b3JlMjBDb21wb3NpdGVFZGl0Q29tbWFuZDEwYXBwbAogX19aTjdXZWJDb3JlMTdBcHBseVN0eWxl
Q29tbWFuZEMxRVBOU184RG9jdW1lbnRFUE5TXzE5Q1NTU3R5bGVEZWNsYXJhdGlvbkVSS05TXzhQ
b3NpdGlvbkVTN19OU18xMEVkaXRBY3Rpb25FTlMwXzE0RVByb3BlcnR5TGV2ZQogX19aTjdXZWJD
b3JlMTdBcHBseVN0eWxlQ29tbWFuZEMyRVBOU184RG9jdW1lbnRFUE5TXzE5Q1NTU3R5bGVEZWNs
YXJhdGlvbkVSS05TXzhQb3NpdGlvbkVTN19OU18xMEVkaXRBY3Rpb25FTlMwXzE0RVByb3BlcnR5
TGV2ZQogX19aTjdXZWJDb3JlMjBDb21wb3NpdGVFZGl0Q29tbWFuZDE3cmVtb3ZlQ1NTUHJvcGVy
dHlFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMjZDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkVFRTEz
Q1NTUHJvcGVydHlJRAotX19aTjdXZWJDb3JlMjRSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmRDMUVQ
TlNfOERvY3VtZW50RU4zV1RGMTBQYXNzUmVmUHRySU5TXzI2Q1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb25FRUUxM0NTU1Byb3BlcnR5SUQKLV9fWk43V2ViQ29yZTI0UmVtb3ZlQ1NTUHJvcGVydHlD
b21tYW5kQzJFUE5TXzhEb2N1bWVudEVOM1dURjEwUGFzc1JlZlB0cklOU18yNkNTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uRUVFMTNDU1NQcm9wZXJ0eUlECi1fX1pON1dlYkNvcmUyNFJlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZDdkb0FwcGx5RXYKIF9fWk43V2ViQ29yZTIwQ29tcG9zaXRlRWRpdENv
bW1hbmQxOXJlbW92ZU5vZGVBdHRyaWJ1dGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfN0VsZW1lbnRF
RUVSS05TXzEzUXVhbGlmaWVkTmFtZUUKIF9fWk5LN1dlYkNvcmUxOEZvcm1hdEJsb2NrQ29tbWFu
ZDEzZWRpdGluZ0FjdGlvbkV2CiBfX1pON1dlYkNvcmUyNUpTQ2xpZW50UmVjdExpc3RQcm90b3R5
cGVEMUV2CkBAIC0xNzY0OCw3ICsxNzY0NSw2IEBAIF9fWk43V2ViQ29yZTE0Q2xpZW50UmVjdExp
c3REMUV2CiBfX1pON1dlYkNvcmUxNENsaWVudFJlY3RMaXN0RDJFdgogX19aTjNXVEY2VmVjdG9y
SU5TXzZSZWZQdHJJTjdXZWJDb3JlMTBDbGllbnRSZWN0RUVFTG0wRUU2c2hyaW5rRW0KIF9fWk43
V2ViQ29yZTE4Rm9ybWF0QmxvY2tDb21tYW5kRDBFdgotX19aTjdXZWJDb3JlMjRSZW1vdmVDU1NQ
cm9wZXJ0eUNvbW1hbmREMEV2CiBfX1pON1dlYkNvcmVMMjZlbmFibGVkUmFuZ2VJbkVkaXRhYmxl
VGV4dEVQTlNfNUZyYW1lRVBOU181RXZlbnRFTlNfMTlFZGl0b3JDb21tYW5kU291cmNlRQogX19a
TjdXZWJDb3JlTDE5ZXhlY3V0ZVJlbW92ZUZvcm1hdEVQTlNfNUZyYW1lRVBOU181RXZlbnRFTlNf
MTlFZGl0b3JDb21tYW5kU291cmNlRVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTZFZGl0b3Iy
NHJlbW92ZUZvcm1hdHRpbmdBbmRTdHlsZUV2CkBAIC0xNzg0OSw3ICsxNzg0NSw2IEBAIF9fWk43
V2ViQ29yZTE3UmVtb3ZlTm9kZUNvbW1hbmQ5ZG9VbmFwcGwKIF9fWk43V2ViQ29yZTIzSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ5ZG9VbmFwcGx5RXYKIF9fWk43V2ViQ29yZTI2UmVwbGFjZU5vZGVX
aXRoU3BhbkNvbW1hbmQ5ZG9VbmFwcGx5RXYKIF9fWk43V2ViQ29yZTIzU2V0Tm9kZUF0dHJpYnV0
ZUNvbW1hbmQ5ZG9VbmFwcGx5RXYKLV9fWk43V2ViQ29yZTI0UmVtb3ZlQ1NTUHJvcGVydHlDb21t
YW5kOWRvVW5hcHBseUV2CiBfX1pON1dlYkNvcmUyNlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5k
RDBFdgogX19aTks3V2ViQ29yZTE0Q2xpcGJvYXJkRXZlbnQxNmlzQ2xpcGJvYXJkRXZlbnRFdgog
X19aTks3V2ViQ29yZTE0Q2xpcGJvYXJkRXZlbnQ5Y2xpcGJvYXJkRXYKSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24g
NjQ4NjcpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC01OTAsNyAr
NTkwLDYgQEAgU09VUkNFUyArPSBcCiAgICAgZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1lbnRz
Q29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcCBc
CiAgICAgZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgXAotICAgIGVkaXRpbmcvUmVt
b3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21t
YW5kLmNwcCBcCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAgXAogICAgIGVkaXRp
bmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwIFwKQEAgLTEzNTQsNyAr
MTM1Myw2IEBAIEhFQURFUlMgKz0gXAogICAgIGVkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50
c0NvbW1hbmQuaCBcCiAgICAgZWRpdGluZy9Nb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCBcCiAg
ICAgZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIFwKLSAgICBlZGl0aW5nL1JlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZC5oIFwKICAgICBlZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuaCBc
CiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oIFwKICAgICBlZGl0aW5nL1JlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2NDg2NykKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTM1MDk3LDYyICszNTA5Nyw2IEBA
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVk
aXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCINCi0JCQkJPg0KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98
V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxU
b29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iUmVs
ZWFzZV9DYWlyb3xXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJ
Pg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4N
Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
Ci0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0J
CQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxl
DQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQu
aCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGVkaXRpbmdcUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDY0ODY3KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI0MjgsOCArMjQyOCw2IEBACiAJCTkzMzA5REZB
MDk5RTY0OTIwMDU2RTU4MSAvKiBNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDlEQUIwOTlFNjQ5
MTAwNTZFNTgxIC8qIE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmggKi87IH07CiAJCTkz
MzA5REZCMDk5RTY0OTIwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzMwOURBQzA5OUU2NDkx
MDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovOyB9OwogCQk5MzMwOURGQzA5
OUU2NDkyMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAv
KiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTkzMzA5RTAwMDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVDU1NQ
cm9wZXJ0eUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTMzMDlEQjEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29t
bWFuZC5jcHAgKi87IH07Ci0JCTkzMzA5RTAxMDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVDU1NQ
cm9wZXJ0eUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1h
bmQuaCAqLzsgfTsKIAkJOTMzMDlFMDQwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlbW92ZU5vZGVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
MzA5REI1MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFuZC5jcHAgKi87IH07CiAJ
CTkzMzA5RTA1MDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDlEQjYwOTlFNjQ5MTAw
NTZFNTgxIC8qIFJlbW92ZU5vZGVDb21tYW5kLmggKi87IH07CiAJCTkzMzA5RTA2MDk5RTY0OTIw
MDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzMwOURCNzA5OUU2NDkx
MDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwICovOyB9
OwpAQCAtODIzNiw4ICs4MjM0LDYgQEAKIAkJOTMzMDlEQUIwOTlFNjQ5MTAwNTZFNTgxIC8qIE1l
cmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzMzA5REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29t
bWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb3ZlU2VsZWN0
aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMzA5REFEMDk5
RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk5MzMwOURCMTA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlQ1NTUHJvcGVy
dHlDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW92
ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkz
MzA5REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMzA5REI1MDk5RTY0OTEwMDU2RTU4MSAv
KiBSZW1vdmVOb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdmVOb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzMzA5REI2MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdmVOb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzMwOURCNzA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlTm9k
ZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM3MjEsOCArMTM3MTcsNiBAQAogCQkJCUM2RDc0
QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJ
CQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICov
LAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5o
ICovLAotCQkJCTkzMzA5REIxMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNv
bW1hbmQuY3BwICovLAotCQkJCTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQ
cm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVt
b3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8sCiAJCQkJRDA2QzBEOEQwQ0ZEMTE0NjAwNjVGNDNGIC8q
IFJlbW92ZUZvcm1hdENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCNTA5OUU2NDkxMDA1NkU1ODEg
LyogUmVtb3ZlTm9kZUNvbW1hbmQuY3BwICovLApAQCAtMTkzODQsNyArMTkzNzgsNiBAQAogCQkJ
CTk3OUY0M0Q0MTA3NUU0NEEwMDAwRjgzQiAvKiBSZWRpcmVjdFNjaGVkdWxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODUwMzFCNEMwQTQ0RUZDNzAwRjk5MkUwIC8qIFJlZ2lzdGVyZWRFdmVudExp
c3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEyRDBEMDA2QzFEMDBFRjZGMjYgLyog
UmVndWxhckV4cHJlc3Npb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTkzMzA5RTAxMDk5RTY0OTIw
MDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUQwNkMwRDhGMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzMwOUUwNTA5OUU2NDkyMDA1NkU1ODEgLyogUmVtb3ZlTm9kZUNvbW1h
bmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTA3MDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1v
dmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTg3
Myw3ICsyMTg2Niw2IEBACiAJCQkJODUwMzFCNEIwQTQ0RUZDNzAwRjk5MkUwIC8qIFJlZ2lzdGVy
ZWRFdmVudExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQzNEQTJDMEQwMDZDMUQw
MEVGNkYyNiAvKiBSZWd1bGFyRXhwcmVzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0RjRG
NUZGQjExQ0JEMkUxMDBBMTg2QkYgLyogUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJOTMzMDlFMDAwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3Bl
cnR5Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEMDZDMEQ5MDBDRkQxMTQ2MDA2NUY0
M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUw
NDA5OUU2NDkyMDA1NkU1ODEgLyogUmVtb3ZlTm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTMzMDlFMDYwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hp
bGRyZW5Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9lZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuY3BwCShyZXZpc2lvbiA2NDg2NykKKysrIFdlYkNvcmUvZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMTgsOSArMTMxOCw5IEBAIGJv
b2wgQXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUNTU1N0eWxlKEMKICAgICAgICAgICAgIHJlbW92
ZWQgPSB0cnVlOwogICAgICAgICAgICAgaWYgKG1vZGUgPT0gUmVtb3ZlTm9uZSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIHJlbW92ZUNTU1Byb3BlcnR5KGRlY2ws
IHByb3BlcnR5SUQpOworICAgICAgICAgICAgcmVtb3ZlQ1NTUHJvcGVydHkoZWxlbSwgcHJvcGVy
dHlJRCk7CiAgICAgICAgICAgICBpZiAocHJvcGVydHlJRCA9PSBDU1NQcm9wZXJ0eVVuaWNvZGVC
aWRpICYmICFkZWNsLT5nZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5RGlyZWN0aW9uKS5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICAgICAgcmVtb3ZlQ1NTUHJvcGVydHkoZGVjbCwgQ1NTUHJvcGVy
dHlEaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIHJlbW92ZUNTU1Byb3BlcnR5KGVsZW0sIENT
U1Byb3BlcnR5RGlyZWN0aW9uKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTM4MCw3ICsxMzgw
LDcgQEAgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gQQogCiAgICAgUmVm
UHRyPENTU1ZhbHVlPiBwcm9wZXJ0eSA9IHN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1By
b3BlcnR5VGV4dERlY29yYXRpb24pOwogICAgIGlmIChwcm9wZXJ0eSAmJiAhZXF1YWxJZ25vcmlu
Z0Nhc2UocHJvcGVydHktPmNzc1RleHQoKSwgIm5vbmUiKSkKLSAgICAgICAgcmVtb3ZlQ1NTUHJv
cGVydHkoc3R5bGUuZ2V0KCksIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb24pOworICAgICAgICBy
ZW1vdmVDU1NQcm9wZXJ0eShlbGVtZW50LCBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uKTsKIAog
ICAgIHJldHVybiB0ZXh0RGVjb3JhdGlvblN0eWxlLnJlbGVhc2UoKTsKIH0KSW5kZXg6IFdlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAkocmV2aXNpb24gNjQ4NjcpCisrKyBX
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Nyw3ICs0Nyw2IEBACiAjaW5jbHVkZSAiSm9pblRleHROb2Rlc0NvbW1hbmQuaCIKICNpbmNs
dWRlICJNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJhbmdlLmgi
Ci0jaW5jbHVkZSAiUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVtb3Zl
Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29t
bWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCkBAIC0zNzAs
OSArMzY5LDE0IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVNlbGVjdGkKICAg
ICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3Jl
YXRlKHNlbGVjdGlvbiwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxh
Y2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cykpOwogfQogCi12b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZW1vdmVDU1NQcm9wZXJ0eShQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uPiBzdHlsZSwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkKK3ZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlbW92ZUNTU1Byb3BlcnR5KFBhc3NSZWZQdHI8U3R5bGVkRWxlbWVudD4gZWxl
bWVudCwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBv
c2l0ZShSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzdHlsZSwg
cHJvcGVydHkpKTsKKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxl
ID0gZWxlbWVudC0+aW5saW5lU3R5bGVEZWNsKCk7CisgICAgaWYgKCFzdHlsZS0+Z2V0UHJvcGVy
dHlDU1NWYWx1ZShwcm9wZXJ0eSkpCisgICAgICAgIHJldHVybjsKKyAgICBzdHlsZSA9IHN0eWxl
LT5jb3B5KCk7CisgICAgc3R5bGUtPnJlbW92ZVByb3BlcnR5KHByb3BlcnR5KTsKKyAgICBzZXRO
b2RlQXR0cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0ciwgc3R5bGUtPmNzc1RleHQoKSk7CiB9CiAK
IHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVBdHRyaWJ1dGUoUGFzc1JlZlB0
cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUpCkluZGV4
OiBXZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAkocmV2aXNpb24gNjQ4NjcpCisr
KyBXZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJD
U1NQcm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjgsNyArNjksNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CiAgICAgdm9pZCByZWJh
bGFuY2VXaGl0ZXNwYWNlQXQoY29uc3QgUG9zaXRpb24mKTsKICAgICB2b2lkIHByZXBhcmVXaGl0
ZXNwYWNlQXRQb3NpdGlvbkZvclNwbGl0KFBvc2l0aW9uJik7Ci0gICAgdm9pZCByZW1vdmVDU1NQ
cm9wZXJ0eShQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiwgQ1NTUHJvcGVy
dHlJRCk7CisgICAgdm9pZCByZW1vdmVDU1NQcm9wZXJ0eShQYXNzUmVmUHRyPFN0eWxlZEVsZW1l
bnQ+LCBDU1NQcm9wZXJ0eUlEKTsKICAgICB2b2lkIHJlbW92ZU5vZGVBdHRyaWJ1dGUoUGFzc1Jl
ZlB0cjxFbGVtZW50PiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlKTsKICAgICB2b2lk
IHJlbW92ZUNoaWxkcmVuSW5SYW5nZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCB0byk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZU5vZGUoUGFzc1JlZlB0cjxOb2Rl
Pik7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAkocmV2aXNpb24gNjQ4Njcp
CisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTAsNyArNTAsNiBAQAogI2luY2x1ZGUgPE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5k
LmNwcD4KICNpbmNsdWRlIDxNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwPgogI2luY2x1ZGUg
PE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcD4KLSNpbmNsdWRlIDxSZW1vdmVDU1NQcm9wZXJ0eUNv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwPgogI2luY2x1ZGUg
PFJlbW92ZU5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZC5jcHA+CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVy
dHlDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJv
cGVydHlDb21tYW5kLmNwcAkocmV2aXNpb24gNjQ4NjcpCisrKyBXZWJDb3JlL2VkaXRpbmcvUmVt
b3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1NSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZC5oIgotCi0jaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uaCIKLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLVJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZDo6UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kKERv
Y3VtZW50KiBkb2N1bWVudCwgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4g
c3R5bGUsIENTU1Byb3BlcnR5SUQgcHJvcGVydHkpCi0gICAgOiBTaW1wbGVFZGl0Q29tbWFuZChk
b2N1bWVudCkKLSAgICAsIG1fc3R5bGUoc3R5bGUpCi0gICAgLCBtX3Byb3BlcnR5KHByb3BlcnR5
KQotICAgICwgbV9pbXBvcnRhbnQoZmFsc2UpCi17Ci0gICAgQVNTRVJUKG1fc3R5bGUpOwotfQot
Ci12b2lkIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZDo6ZG9BcHBseSgpCi17Ci0gICAgbV9vbGRW
YWx1ZSA9IG1fc3R5bGUtPmdldFByb3BlcnR5VmFsdWUobV9wcm9wZXJ0eSk7Ci0gICAgbV9pbXBv
cnRhbnQgPSBtX3N0eWxlLT5nZXRQcm9wZXJ0eVByaW9yaXR5KG1fcHJvcGVydHkpOwotICAgIG1f
c3R5bGUtPnJlbW92ZVByb3BlcnR5KG1fcHJvcGVydHkpOwotfQotCi12b2lkIFJlbW92ZUNTU1By
b3BlcnR5Q29tbWFuZDo6ZG9VbmFwcGx5KCkKLXsKLSAgICBtX3N0eWxlLT5zZXRQcm9wZXJ0eSht
X3Byb3BlcnR5LCBtX29sZFZhbHVlLCBtX2ltcG9ydGFudCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5k
LmgJKHJldmlzaW9uIDY0ODY3KQorKysgV2ViQ29yZS9lZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaWZuZGVmIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZF9oCi0jZGVmaW5lIFJlbW92
ZUNTU1Byb3BlcnR5Q29tbWFuZF9oCi0KLSNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgotI2luY2x1
ZGUgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCi0jaW5jbHVkZSAiQ1NTUHJvcGVydHlO
YW1lcy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50LCBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBzdHlsZSwgQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kKGRvY3VtZW50LCBzdHlsZSwgcHJvcGVydHkpKTsKLSAg
ICB9Ci0KLXByaXZhdGU6Ci0gICAgUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kKERvY3VtZW50Kiwg
UGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4sIENTU1Byb3BlcnR5SUQgcHJv
cGVydHkpOwotCi0gICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZG9VbmFwcGx5KCk7Ci0KLSAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IG1f
c3R5bGU7Ci0gICAgQ1NTUHJvcGVydHlJRCBtX3Byb3BlcnR5OwotICAgIFN0cmluZyBtX29sZFZh
bHVlOwotICAgIGJvb2wgbV9pbXBvcnRhbnQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmRfaApJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gNjQ4NjgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNiBAQAorMjAxMC0wOC0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbmRvIGZh
aWxzIGluIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZCB3aGVuIHRoZSBjb3JyZXNwb25kaW5nIHN0
eWxlIGF0dHJpYnV0ZSBpcyByZW1vdmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MzYzOQorCisgICAgICAgIEFkZGVkIGEgdGVzdCB0byByZW1vdmUg
c3R5bGUgYXR0cmlidXRlIGFmdGVyIHJlbW92aW5nIGEgQ1NTIHByb3BlcnR5IGZyb20gdGhlIHN0
eWxlLgorICAgICAgICBVbmRvIHNob3VsZCByZXN0b3JlIGJvdGggc3R5bGUgYXR0cmlidXRlIGFu
ZCB0aGUgcmVtb3ZlZCBDU1MgcHJvcGVydHkuCisKKyAgICAgICAgKiBlZGl0aW5nL3VuZG8vcmVt
b3ZlLWNzcy1wcm9wZXJ0eS1hbmQtcmVtb3ZlLXN0eWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZWRpdGluZy91bmRvL3JlbW92ZS1jc3MtcHJvcGVydHktYW5kLXJlbW92ZS1zdHls
ZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wOC0wNiAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVXBkYXRlIGNocm9taXVtIHRlc3QgcmVzdWx0cy4KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvdW5kby9yZW1vdmUtY3NzLXByb3BlcnR5LWFuZC1yZW1vdmUtc3R5bGUt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvdW5kby9yZW1v
dmUtY3NzLXByb3BlcnR5LWFuZC1yZW1vdmUtc3R5bGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL3JlbW92ZS1jc3MtcHJvcGVydHktYW5kLXJl
bW92ZS1zdHlsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDIgQEAKK1Ro
aXMgdGVzdHMgcmVtb3Zpbmcgc3R5bGUgYXR0cmlidXRlIGFmdGVyIHJlbW92aW5nIENTUyBwcm9w
ZXJ0eS4gVW5kbyBzaG91bGQgYnJpbmcgYmFjayB0aGUgQ1NTIHByb3BlcnR5IHdlIHJlbW92ZWQu
CisKK0luaXRpYWxseSAidGVzdCIgc2hvdWxkIGJlIGJvbGQgd3JhcHBlZCB3aXRoIGEgc3BhbjoK
K3wgPHNwYW4+Cit8ICAgc3R5bGU9ImZvbnQtd2VpZ2h0OiA5MDA7IgorfCAgICJ0ZXN0IgorCitV
bmJvbGRpbmcgc2hvdWxkIHJlbW92ZSB0aGUgQ1NTIHN0eWxlIGFuZCBhbHNvIHJlbW92ZSB0aGUg
c3BhbjoKK3wgIjwjc2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNzZWxlY3Rpb24tZm9jdXM+IgorCitV
bmRvIHNob3VsZCBicmluZyBiYWNrIGJvdGggdGhlIHNwYW4gYW5kIHN0eWxlIGF0dHJpYnV0ZSBz
byB0aGF0ICJ0ZXN0IiBpcyBvbmNlIGFnYWluIGJvbGQ6Cit8IDxzcGFuPgorfCAgIHN0eWxlPSJm
b250LXdlaWdodDogOTAwOyIKK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPnRlc3Q8I3NlbGVjdGlv
bi1mb2N1cz4iCisKK1JlZG8gc2hvdWxkIHVuYm9sZCAidGVzdCIgYW5kIHRoZXJlIHNob3VsZCBi
ZSBubyBzcGFuOgorfCAiPCNzZWxlY3Rpb24tYW5jaG9yPnRlc3Q8I3NlbGVjdGlvbi1mb2N1cz4i
CisKK1VuZG8gb25jZSBtb3JlOgorfCA8c3Bhbj4KK3wgICBzdHlsZT0iZm9udC13ZWlnaHQ6IDkw
MDsiCit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNzZWxlY3Rpb24tZm9jdXM+IgorCitB
ZGRlZCBjb2xvcjpibHVlOgorfCA8c3Bhbj4KK3wgICBzdHlsZT0iZm9udC13ZWlnaHQ6IDkwMDsg
Y29sb3I6IGJsdWU7ICIKK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPnRlc3Q8I3NlbGVjdGlvbi1m
b2N1cz4iCisKK0FnYWluLCB1bmJvbGRpbmcgc2hvdWxkIHJlbW92ZSB0aGUgQ1NTIHN0eWxlIGJ1
dCBzaG91bGRuJ3QgcmVtb3ZlIHRoZSBzcGFuOgorfCA8c3Bhbj4KK3wgICBzdHlsZT0iY29sb3I6
IGJsdWU7ICIKK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPnRlc3Q8I3NlbGVjdGlvbi1mb2N1cz4i
CisKK1VuZG8gc2hvdWxkIGJyaW5nIHJlc2V0IHRoZSBzdHlsZSBhdHRyaWJ1dGUgc28gdGhhdCAi
dGVzdCIgaXMgYm90aCBib2xkIGFuZCBibHVlOgorfCA8c3Bhbj4KK3wgICBzdHlsZT0iZm9udC13
ZWlnaHQ6IDkwMDsgY29sb3I6IGJsdWU7ICIKK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPnRlc3Q8
I3NlbGVjdGlvbi1mb2N1cz4iCisKK1JlZG8gc2hvdWxkIG9ubHkgcmVtb3ZlIGZvbnQtd2VpZ2h0
IGFuZCBsZWF2ZSAidGVzdCIgYm9sZDoKK3wgPHNwYW4+Cit8ICAgc3R5bGU9ImNvbG9yOiBibHVl
OyAiCit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNzZWxlY3Rpb24tZm9jdXM+IgpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL3JlbW92ZS1jc3MtcHJvcGVydHktYW5kLXJlbW92
ZS1zdHlsZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvdW5kby9yZW1v
dmUtY3NzLXByb3BlcnR5LWFuZC1yZW1vdmUtc3R5bGUuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvdW5kby9yZW1vdmUtY3NzLXByb3BlcnR5LWFuZC1yZW1vdmUtc3R5
bGUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNyBAQAorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8cD5UaGlzIHRlc3RzIHJl
bW92aW5nIHN0eWxlIGF0dHJpYnV0ZSBhZnRlciByZW1vdmluZyBDU1MgcHJvcGVydHkuIFVuZG8g
c2hvdWxkIGJyaW5nIGJhY2sgdGhlIENTUyBwcm9wZXJ0eSB3ZSByZW1vdmVkLjwvcD4KKzxkaXYg
aWQ9InRlc3QiIGNvbnRlbnRlZGl0YWJsZT48c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IDkwMDsi
PnRlc3Q8L3NwYW4+PC9kaXY+Cis8c2NyaXB0PgorCitNYXJrdXAuZGVzY3JpcHRpb24oJ1RoaXMg
dGVzdHMgcmVtb3Zpbmcgc3R5bGUgYXR0cmlidXRlIGFmdGVyIHJlbW92aW5nIENTUyBwcm9wZXJ0
eS4gVW5kbyBzaG91bGQgYnJpbmcgYmFjayB0aGUgQ1NTIHByb3BlcnR5IHdlIHJlbW92ZWQuJyk7
CisKK01hcmt1cC5kdW1wKCd0ZXN0JywgJ0luaXRpYWxseSAidGVzdCIgc2hvdWxkIGJlIGJvbGQg
d3JhcHBlZCB3aXRoIGEgc3BhbicpOword2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENo
aWxkcmVuKHRlc3QpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2JvbGQnLCBmYWxzZSwgbnVsbCk7
CitNYXJrdXAuZHVtcCgndGVzdCcsICdVbmJvbGRpbmcgc2hvdWxkIHJlbW92ZSB0aGUgQ1NTIHN0
eWxlIGFuZCBhbHNvIHJlbW92ZSB0aGUgc3BhbicpOworCitkb2N1bWVudC5leGVjQ29tbWFuZCgn
dW5kbycsIGZhbHNlLCBudWxsKTsKK01hcmt1cC5kdW1wKCd0ZXN0JywgJ1VuZG8gc2hvdWxkIGJy
aW5nIGJhY2sgYm90aCB0aGUgc3BhbiBhbmQgc3R5bGUgYXR0cmlidXRlIHNvIHRoYXQgInRlc3Qi
IGlzIG9uY2UgYWdhaW4gYm9sZCcpOworCitkb2N1bWVudC5leGVjQ29tbWFuZCgncmVkbycsIGZh
bHNlLCBudWxsKTsKK01hcmt1cC5kdW1wKCd0ZXN0JywgJ1JlZG8gc2hvdWxkIHVuYm9sZCAidGVz
dCIgYW5kIHRoZXJlIHNob3VsZCBiZSBubyBzcGFuJyk7CisKK2RvY3VtZW50LmV4ZWNDb21tYW5k
KCd1bmRvJywgZmFsc2UsIG51bGwpOworTWFya3VwLmR1bXAoJ3Rlc3QnLCAnVW5kbyBvbmNlIG1v
cmUnKTsKKwordmFyIHNwYW4gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc3Bhbicp
OworaWYgKHNwYW4ubGVuZ3RoID4gMCkgeworICAgIHNwYW5bMF0uc3R5bGUuY29sb3IgPSAnYmx1
ZSc7CisgICAgTWFya3VwLmR1bXAoJ3Rlc3QnLCAnQWRkZWQgY29sb3I6Ymx1ZScpOworCisgICAg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2JvbGQnLCBmYWxzZSwgbnVsbCk7CisgICAgTWFya3VwLmR1
bXAoJ3Rlc3QnLCAnQWdhaW4sIHVuYm9sZGluZyBzaG91bGQgcmVtb3ZlIHRoZSBDU1Mgc3R5bGUg
YnV0IHNob3VsZG5cJ3QgcmVtb3ZlIHRoZSBzcGFuJyk7CisKKyAgICBkb2N1bWVudC5leGVjQ29t
bWFuZCgndW5kbycsIGZhbHNlLCBudWxsKTsKKyAgICBNYXJrdXAuZHVtcCgndGVzdCcsICdVbmRv
IHNob3VsZCBicmluZyByZXNldCB0aGUgc3R5bGUgYXR0cmlidXRlIHNvIHRoYXQgInRlc3QiIGlz
IGJvdGggYm9sZCBhbmQgYmx1ZScpOworCisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ3JlZG8n
LCBmYWxzZSwgbnVsbCk7CisgICAgTWFya3VwLmR1bXAoJ3Rlc3QnLCAnUmVkbyBzaG91bGQgb25s
eSByZW1vdmUgZm9udC13ZWlnaHQgYW5kIGxlYXZlICJ0ZXN0IiBib2xkJyk7Cit9CisKKzwvc2Ny
aXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63769</attachid>
            <date>2010-08-06 15:17:12 -0700</date>
            <delta_ts>2010-08-09 15:31:30 -0700</delta_ts>
            <desc>Added more tests</desc>
            <filename>bug-43639-20100806151711.patch</filename>
            <type>text/plain</type>
            <size>29235</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDg2NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTAtMDgtMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5k
byBmYWlscyBpbiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQgd2hlbiB0aGUgY29ycmVzcG9uZGlu
ZyBzdHlsZSBhdHRyaWJ1dGUgaXMgcmVtb3ZlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM2MzkKKworICAgICAgICBSZW1vdmVkIFJlbW92ZUNTU1By
b3BlcnR5Q29tbWFuZCBhbmQgcmVpbXBsZW1lbnRlZCByZW1vdmVDU1NQcm9wZXJ0eSB1c2luZyBz
ZXROb2RlQXR0cmlidXRlLgorICAgICAgICBBbHNvIGNoYW5nZWQgdGhlIGZpcnN0IGFyZ3VtZW50
IG9mIHJlbW92ZUNTU1Byb3BlcnR5IHRvIFBhc3NSZWZQdHI8U3R5bGVkRWxlbWVudD4KKyAgICAg
ICAgZnJvbSBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPi4KKworICAgICAg
ICBUZXN0czogZWRpdGluZy91bmRvL3JlbW92ZS1jc3MtcHJvcGVydHktYW5kLXJlbW92ZS1zdHls
ZS5odG1sCisKKyAgICAgICAgKiBBbmRyb2lkLm1rOiBSZW1vdmVkIEFwcGx5U3R5bGVDb21tYW5k
LmNwcC4KKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogUmVtb3ZlZCBBcHBseVN0eWxlQ29tbWFu
ZC5oLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBSZW1vdmVkIEFwcGx5U3R5bGVDb21tYW5k
LmNwcCBhbmQgQXBwbHlTdHlsZUNvbW1hbmQuaAorICAgICAgICAqIFdlYkNvcmUuZ3lwaTogRGl0
dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUub3JkZXI6IFJlbW92ZWQg
QXBwbHlTdHlsZUNvbW1hbmQgYW5kIGl0cyBtZW1iZXIgZnVuY3Rpb25zLgorICAgICAgICAqIGVk
aXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHls
ZUNvbW1hbmQ6OnJlbW92ZUNTU1N0eWxlKTogQ2FsbHMgcmVtb3ZlQ1NTUHJvcGVydHkuCisgICAg
ICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6ZXh0cmFjdFRleHREZWNvcmF0aW9uU3R5
bGUpOiBDYWxscyByZW1vdmVDU1NQcm9wZXJ0eS4KKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjpyZW1vdmVDU1NQcm9wZXJ0eSk6IFVzZXMgc2V0Tm9kZUF0dHJpYnV0ZS4KKyAgICAgICAgKiBl
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmg6IENoYW5nZWQgdGhlIHByb3RvdHlwZSBvZiBy
ZW1vdmVDU1NQcm9wZXJ0eQorICAgICAgICAgIGFuZCBpbmNsdWRlZCBTdHlsZWRFbGVtZW50LmgK
KyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdBbGxJbk9uZS5jcHA6IFJlbW92ZWQgI2luY2x1ZGUg
PFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHA+CisgICAgICAgICogZWRpdGluZy9SZW1vdmVD
U1NQcm9wZXJ0eUNvbW1hbmQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGVkaXRpbmcvUmVtb3Zl
Q1NTUHJvcGVydHlDb21tYW5kLmg6IFJlbW92ZWQuCisKIDIwMTAtMDgtMDYgIEd1c3Rhdm8gTm9y
b25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpJbmRleDogV2ViQ29yZS9BbmRyb2lkLm1rCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvQW5kcm9pZC5tawkocmV2aXNpb24gNjQ4NjcpCisrKyBXZWJDb3JlL0Fu
ZHJvaWQubWsJKHdvcmtpbmcgY29weSkKQEAgLTIyMSw3ICsyMjEsNiBAQCBMT0NBTF9TUkNfRklM
RVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAllZGl0aW5nL01lcmdlSWRlbnRpY2FsRWxlbWVu
dHNDb21tYW5kLmNwcCBcCiAJZWRpdGluZy9Nb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwIFwK
IAllZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCBcCi0JZWRpdGluZy9SZW1vdmVDU1NQ
cm9wZXJ0eUNvbW1hbmQuY3BwIFwKIAllZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuY3BwIFwK
IAllZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcCBcCiAJZWRpdGluZy9SZW1vdmVOb2RlUHJl
c2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAgXApJbmRleDogV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA2NDg2NykK
KysrIFdlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTkwMSw3ICs5MDEs
NiBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1l
bnRzQ29tbWFuZC5jcHAKICAgICBlZGl0aW5nL01vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHAK
ICAgICBlZGl0aW5nL01vdmVTZWxlY3Rpb25Db21tYW5kLmNwcAotICAgIGVkaXRpbmcvUmVtb3Zl
Q1NTUHJvcGVydHlDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3ZlRm9ybWF0Q29tbWFuZC5j
cHAKICAgICBlZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcAogICAgIGVkaXRpbmcvUmVtb3Zl
Tm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwCkluZGV4OiBXZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDY0
ODY3KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMTI0NSw4
ICsxMjQ1LDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2VkaXRpbmcvTW9kaWZ5
U2VsZWN0aW9uTGlzdExldmVsLmggXAogCVdlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29t
bWFuZC5jcHAgXAogCVdlYkNvcmUvZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIFwKLQlX
ZWJDb3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCBcCi0JV2ViQ29yZS9l
ZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oIFwKIAlXZWJDb3JlL2VkaXRpbmcvUmVt
b3ZlRm9ybWF0Q29tbWFuZC5jcHAgXAogCVdlYkNvcmUvZWRpdGluZy9SZW1vdmVGb3JtYXRDb21t
YW5kLmggXAogCVdlYkNvcmUvZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAgXApJbmRleDog
V2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJ
KHJldmlzaW9uIDY0ODY3KQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkK
QEAgLTEzNjUsOCArMTM2NSw2IEBACiAgICAgICAgICAgICAnZWRpdGluZy9Nb2RpZnlTZWxlY3Rp
b25MaXN0TGV2ZWwuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFu
ZC5jcHAnLAogICAgICAgICAgICAgJ2VkaXRpbmcvTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCcsCi0g
ICAgICAgICAgICAnZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwJywKLSAgICAg
ICAgICAgICdlZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oJywKICAgICAgICAgICAg
ICdlZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5n
L1JlbW92ZUZvcm1hdENvbW1hbmQuaCcsCiAgICAgICAgICAgICAnZWRpdGluZy9SZW1vdmVOb2Rl
Q29tbWFuZC5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLm9yZGVyCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS5vcmRlcgkocmV2aXNpb24gNjQ4NjcpCisrKyBXZWJDb3JlL1dlYkNv
cmUub3JkZXIJKHdvcmtpbmcgY29weSkKQEAgLTE3NjM2LDkgKzE3NjM2LDYgQEAgX19aTjdXZWJD
b3JlMjBDb21wb3NpdGVFZGl0Q29tbWFuZDEwYXBwbAogX19aTjdXZWJDb3JlMTdBcHBseVN0eWxl
Q29tbWFuZEMxRVBOU184RG9jdW1lbnRFUE5TXzE5Q1NTU3R5bGVEZWNsYXJhdGlvbkVSS05TXzhQ
b3NpdGlvbkVTN19OU18xMEVkaXRBY3Rpb25FTlMwXzE0RVByb3BlcnR5TGV2ZQogX19aTjdXZWJD
b3JlMTdBcHBseVN0eWxlQ29tbWFuZEMyRVBOU184RG9jdW1lbnRFUE5TXzE5Q1NTU3R5bGVEZWNs
YXJhdGlvbkVSS05TXzhQb3NpdGlvbkVTN19OU18xMEVkaXRBY3Rpb25FTlMwXzE0RVByb3BlcnR5
TGV2ZQogX19aTjdXZWJDb3JlMjBDb21wb3NpdGVFZGl0Q29tbWFuZDE3cmVtb3ZlQ1NTUHJvcGVy
dHlFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMjZDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkVFRTEz
Q1NTUHJvcGVydHlJRAotX19aTjdXZWJDb3JlMjRSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmRDMUVQ
TlNfOERvY3VtZW50RU4zV1RGMTBQYXNzUmVmUHRySU5TXzI2Q1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb25FRUUxM0NTU1Byb3BlcnR5SUQKLV9fWk43V2ViQ29yZTI0UmVtb3ZlQ1NTUHJvcGVydHlD
b21tYW5kQzJFUE5TXzhEb2N1bWVudEVOM1dURjEwUGFzc1JlZlB0cklOU18yNkNTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uRUVFMTNDU1NQcm9wZXJ0eUlECi1fX1pON1dlYkNvcmUyNFJlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZDdkb0FwcGx5RXYKIF9fWk43V2ViQ29yZTIwQ29tcG9zaXRlRWRpdENv
bW1hbmQxOXJlbW92ZU5vZGVBdHRyaWJ1dGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfN0VsZW1lbnRF
RUVSS05TXzEzUXVhbGlmaWVkTmFtZUUKIF9fWk5LN1dlYkNvcmUxOEZvcm1hdEJsb2NrQ29tbWFu
ZDEzZWRpdGluZ0FjdGlvbkV2CiBfX1pON1dlYkNvcmUyNUpTQ2xpZW50UmVjdExpc3RQcm90b3R5
cGVEMUV2CkBAIC0xNzY0OCw3ICsxNzY0NSw2IEBAIF9fWk43V2ViQ29yZTE0Q2xpZW50UmVjdExp
c3REMUV2CiBfX1pON1dlYkNvcmUxNENsaWVudFJlY3RMaXN0RDJFdgogX19aTjNXVEY2VmVjdG9y
SU5TXzZSZWZQdHJJTjdXZWJDb3JlMTBDbGllbnRSZWN0RUVFTG0wRUU2c2hyaW5rRW0KIF9fWk43
V2ViQ29yZTE4Rm9ybWF0QmxvY2tDb21tYW5kRDBFdgotX19aTjdXZWJDb3JlMjRSZW1vdmVDU1NQ
cm9wZXJ0eUNvbW1hbmREMEV2CiBfX1pON1dlYkNvcmVMMjZlbmFibGVkUmFuZ2VJbkVkaXRhYmxl
VGV4dEVQTlNfNUZyYW1lRVBOU181RXZlbnRFTlNfMTlFZGl0b3JDb21tYW5kU291cmNlRQogX19a
TjdXZWJDb3JlTDE5ZXhlY3V0ZVJlbW92ZUZvcm1hdEVQTlNfNUZyYW1lRVBOU181RXZlbnRFTlNf
MTlFZGl0b3JDb21tYW5kU291cmNlRVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTZFZGl0b3Iy
NHJlbW92ZUZvcm1hdHRpbmdBbmRTdHlsZUV2CkBAIC0xNzg0OSw3ICsxNzg0NSw2IEBAIF9fWk43
V2ViQ29yZTE3UmVtb3ZlTm9kZUNvbW1hbmQ5ZG9VbmFwcGwKIF9fWk43V2ViQ29yZTIzSW5zZXJ0
Tm9kZUJlZm9yZUNvbW1hbmQ5ZG9VbmFwcGx5RXYKIF9fWk43V2ViQ29yZTI2UmVwbGFjZU5vZGVX
aXRoU3BhbkNvbW1hbmQ5ZG9VbmFwcGx5RXYKIF9fWk43V2ViQ29yZTIzU2V0Tm9kZUF0dHJpYnV0
ZUNvbW1hbmQ5ZG9VbmFwcGx5RXYKLV9fWk43V2ViQ29yZTI0UmVtb3ZlQ1NTUHJvcGVydHlDb21t
YW5kOWRvVW5hcHBseUV2CiBfX1pON1dlYkNvcmUyNlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5k
RDBFdgogX19aTks3V2ViQ29yZTE0Q2xpcGJvYXJkRXZlbnQxNmlzQ2xpcGJvYXJkRXZlbnRFdgog
X19aTks3V2ViQ29yZTE0Q2xpcGJvYXJkRXZlbnQ5Y2xpcGJvYXJkRXYKSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24g
NjQ4NjcpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC01OTAsNyAr
NTkwLDYgQEAgU09VUkNFUyArPSBcCiAgICAgZWRpdGluZy9NZXJnZUlkZW50aWNhbEVsZW1lbnRz
Q29tbWFuZC5jcHAgXAogICAgIGVkaXRpbmcvTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcCBc
CiAgICAgZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgXAotICAgIGVkaXRpbmcvUmVt
b3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCBcCiAgICAgZWRpdGluZy9SZW1vdmVGb3JtYXRDb21t
YW5kLmNwcCBcCiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5jcHAgXAogICAgIGVkaXRp
bmcvUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwIFwKQEAgLTEzNTQsNyAr
MTM1Myw2IEBAIEhFQURFUlMgKz0gXAogICAgIGVkaXRpbmcvTWVyZ2VJZGVudGljYWxFbGVtZW50
c0NvbW1hbmQuaCBcCiAgICAgZWRpdGluZy9Nb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCBcCiAg
ICAgZWRpdGluZy9Nb3ZlU2VsZWN0aW9uQ29tbWFuZC5oIFwKLSAgICBlZGl0aW5nL1JlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZC5oIFwKICAgICBlZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuaCBc
CiAgICAgZWRpdGluZy9SZW1vdmVOb2RlQ29tbWFuZC5oIFwKICAgICBlZGl0aW5nL1JlbW92ZU5v
ZGVQcmVzZXJ2aW5nQ2hpbGRyZW5Db21tYW5kLmggXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2NDg2NykKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTM1MDk3LDYyICszNTA5Nyw2IEBA
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGVk
aXRpbmdcUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcCINCi0JCQkJPg0KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQotCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQot
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98
V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCT4NCi0JCQkJCTxU
b29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCS8+DQotCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQotCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQkJTmFtZT0iUmVs
ZWFzZV9DYWlyb3xXaW4zMiINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJ
Pg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4N
Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
Ci0JCQkJCT4NCi0JCQkJCTxUb29sDQotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0J
CQkJCS8+DQotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxl
DQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZWRpdGluZ1xSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQu
aCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGVkaXRpbmdcUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25m
aWd1cmF0aW9uDQpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDY0ODY3KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI0MjgsOCArMjQyOCw2IEBACiAJCTkzMzA5REZB
MDk5RTY0OTIwMDU2RTU4MSAvKiBNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDlEQUIwOTlFNjQ5
MTAwNTZFNTgxIC8qIE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmggKi87IH07CiAJCTkz
MzA5REZCMDk5RTY0OTIwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzMwOURBQzA5OUU2NDkx
MDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICovOyB9OwogCQk5MzMwOURGQzA5
OUU2NDkyMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAv
KiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTkzMzA5RTAwMDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVDU1NQ
cm9wZXJ0eUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTMzMDlEQjEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29t
bWFuZC5jcHAgKi87IH07Ci0JCTkzMzA5RTAxMDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVDU1NQ
cm9wZXJ0eUNvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1h
bmQuaCAqLzsgfTsKIAkJOTMzMDlFMDQwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlbW92ZU5vZGVDb21t
YW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
MzA5REI1MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFuZC5jcHAgKi87IH07CiAJ
CTkzMzA5RTA1MDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFuZC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDlEQjYwOTlFNjQ5MTAw
NTZFNTgxIC8qIFJlbW92ZU5vZGVDb21tYW5kLmggKi87IH07CiAJCTkzMzA5RTA2MDk5RTY0OTIw
MDU2RTU4MSAvKiBSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzMwOURCNzA5OUU2NDkx
MDA1NkU1ODEgLyogUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwICovOyB9
OwpAQCAtODIzNiw4ICs4MjM0LDYgQEAKIAkJOTMzMDlEQUIwOTlFNjQ5MTAwNTZFNTgxIC8qIE1l
cmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzMzA5REFDMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29t
bWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb3ZlU2VsZWN0
aW9uQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMzA5REFEMDk5
RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk5MzMwOURCMTA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlQ1NTUHJvcGVy
dHlDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW92
ZUNTU1Byb3BlcnR5Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkz
MzA5REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMzA5REI1MDk5RTY0OTEwMDU2RTU4MSAv
KiBSZW1vdmVOb2RlQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZW1vdmVOb2RlQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzMzA5REI2MDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFuZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdmVOb2RlQ29tbWFuZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MzMwOURCNzA5OUU2NDkxMDA1NkU1ODEgLyogUmVtb3ZlTm9k
ZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbkNvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTM3MjEsOCArMTM3MTcsNiBAQAogCQkJCUM2RDc0
QUQzMDlBQTI4MkUwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCAqLywKIAkJ
CQk5MzMwOURBQzA5OUU2NDkxMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuY3BwICov
LAogCQkJCTkzMzA5REFEMDk5RTY0OTEwMDU2RTU4MSAvKiBNb3ZlU2VsZWN0aW9uQ29tbWFuZC5o
ICovLAotCQkJCTkzMzA5REIxMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNv
bW1hbmQuY3BwICovLAotCQkJCTkzMzA5REIyMDk5RTY0OTEwMDU2RTU4MSAvKiBSZW1vdmVDU1NQ
cm9wZXJ0eUNvbW1hbmQuaCAqLywKIAkJCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0YgLyogUmVt
b3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8sCiAJCQkJRDA2QzBEOEQwQ0ZEMTE0NjAwNjVGNDNGIC8q
IFJlbW92ZUZvcm1hdENvbW1hbmQuaCAqLywKIAkJCQk5MzMwOURCNTA5OUU2NDkxMDA1NkU1ODEg
LyogUmVtb3ZlTm9kZUNvbW1hbmQuY3BwICovLApAQCAtMTkzODQsNyArMTkzNzgsNiBAQAogCQkJ
CTk3OUY0M0Q0MTA3NUU0NEEwMDAwRjgzQiAvKiBSZWRpcmVjdFNjaGVkdWxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODUwMzFCNEMwQTQ0RUZDNzAwRjk5MkUwIC8qIFJlZ2lzdGVyZWRFdmVudExp
c3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEyRDBEMDA2QzFEMDBFRjZGMjYgLyog
UmVndWxhckV4cHJlc3Npb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTkzMzA5RTAxMDk5RTY0OTIw
MDU2RTU4MSAvKiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUQwNkMwRDhGMENGRDExNDYwMDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzMwOUUwNTA5OUU2NDkyMDA1NkU1ODEgLyogUmVtb3ZlTm9kZUNvbW1h
bmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTA3MDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1v
dmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTg3
Myw3ICsyMTg2Niw2IEBACiAJCQkJODUwMzFCNEIwQTQ0RUZDNzAwRjk5MkUwIC8qIFJlZ2lzdGVy
ZWRFdmVudExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQzNEQTJDMEQwMDZDMUQw
MEVGNkYyNiAvKiBSZWd1bGFyRXhwcmVzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0RjRG
NUZGQjExQ0JEMkUxMDBBMTg2QkYgLyogUmVtb3RlSW5zcGVjdG9yRnJvbnRlbmQuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJOTMzMDlFMDAwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3Bl
cnR5Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEMDZDMEQ5MDBDRkQxMTQ2MDA2NUY0
M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUUw
NDA5OUU2NDkyMDA1NkU1ODEgLyogUmVtb3ZlTm9kZUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTMzMDlFMDYwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hp
bGRyZW5Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9lZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQXBwbHlT
dHlsZUNvbW1hbmQuY3BwCShyZXZpc2lvbiA2NDg2NykKKysrIFdlYkNvcmUvZWRpdGluZy9BcHBs
eVN0eWxlQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMTgsOSArMTMxOCw5IEBAIGJv
b2wgQXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUNTU1N0eWxlKEMKICAgICAgICAgICAgIHJlbW92
ZWQgPSB0cnVlOwogICAgICAgICAgICAgaWYgKG1vZGUgPT0gUmVtb3ZlTm9uZSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIHJlbW92ZUNTU1Byb3BlcnR5KGRlY2ws
IHByb3BlcnR5SUQpOworICAgICAgICAgICAgcmVtb3ZlQ1NTUHJvcGVydHkoZWxlbSwgcHJvcGVy
dHlJRCk7CiAgICAgICAgICAgICBpZiAocHJvcGVydHlJRCA9PSBDU1NQcm9wZXJ0eVVuaWNvZGVC
aWRpICYmICFkZWNsLT5nZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5RGlyZWN0aW9uKS5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICAgICAgcmVtb3ZlQ1NTUHJvcGVydHkoZGVjbCwgQ1NTUHJvcGVy
dHlEaXJlY3Rpb24pOworICAgICAgICAgICAgICAgIHJlbW92ZUNTU1Byb3BlcnR5KGVsZW0sIENT
U1Byb3BlcnR5RGlyZWN0aW9uKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTM4MCw3ICsxMzgw
LDcgQEAgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gQQogCiAgICAgUmVm
UHRyPENTU1ZhbHVlPiBwcm9wZXJ0eSA9IHN0eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1By
b3BlcnR5VGV4dERlY29yYXRpb24pOwogICAgIGlmIChwcm9wZXJ0eSAmJiAhZXF1YWxJZ25vcmlu
Z0Nhc2UocHJvcGVydHktPmNzc1RleHQoKSwgIm5vbmUiKSkKLSAgICAgICAgcmVtb3ZlQ1NTUHJv
cGVydHkoc3R5bGUuZ2V0KCksIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb24pOworICAgICAgICBy
ZW1vdmVDU1NQcm9wZXJ0eShlbGVtZW50LCBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uKTsKIAog
ICAgIHJldHVybiB0ZXh0RGVjb3JhdGlvblN0eWxlLnJlbGVhc2UoKTsKIH0KSW5kZXg6IFdlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAkocmV2aXNpb24gNjQ4NjcpCisrKyBX
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Nyw3ICs0Nyw2IEBACiAjaW5jbHVkZSAiSm9pblRleHROb2Rlc0NvbW1hbmQuaCIKICNpbmNs
dWRlICJNZXJnZUlkZW50aWNhbEVsZW1lbnRzQ29tbWFuZC5oIgogI2luY2x1ZGUgIlJhbmdlLmgi
Ci0jaW5jbHVkZSAiUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmgiCiAjaW5jbHVkZSAiUmVtb3Zl
Tm9kZUNvbW1hbmQuaCIKICNpbmNsdWRlICJSZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuQ29t
bWFuZC5oIgogI2luY2x1ZGUgIlJlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5kLmgiCkBAIC0zNzAs
OSArMzY5LDE0IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OmRlbGV0ZVNlbGVjdGkKICAg
ICAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y3Jl
YXRlKHNlbGVjdGlvbiwgc21hcnREZWxldGUsIG1lcmdlQmxvY2tzQWZ0ZXJEZWxldGUsIHJlcGxh
Y2UsIGV4cGFuZEZvclNwZWNpYWxFbGVtZW50cykpOwogfQogCi12b2lkIENvbXBvc2l0ZUVkaXRD
b21tYW5kOjpyZW1vdmVDU1NQcm9wZXJ0eShQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uPiBzdHlsZSwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkKK3ZvaWQgQ29tcG9zaXRlRWRp
dENvbW1hbmQ6OnJlbW92ZUNTU1Byb3BlcnR5KFBhc3NSZWZQdHI8U3R5bGVkRWxlbWVudD4gZWxl
bWVudCwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkKIHsKLSAgICBhcHBseUNvbW1hbmRUb0NvbXBv
c2l0ZShSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBzdHlsZSwg
cHJvcGVydHkpKTsKKyAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxl
ID0gZWxlbWVudC0+aW5saW5lU3R5bGVEZWNsKCk7CisgICAgaWYgKCFzdHlsZS0+Z2V0UHJvcGVy
dHlDU1NWYWx1ZShwcm9wZXJ0eSkpCisgICAgICAgIHJldHVybjsKKyAgICBzdHlsZSA9IHN0eWxl
LT5jb3B5KCk7CisgICAgc3R5bGUtPnJlbW92ZVByb3BlcnR5KHByb3BlcnR5KTsKKyAgICBzZXRO
b2RlQXR0cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0ciwgc3R5bGUtPmNzc1RleHQoKSk7CiB9CiAK
IHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZU5vZGVBdHRyaWJ1dGUoUGFzc1JlZlB0
cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUpCkluZGV4
OiBXZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAkocmV2aXNpb24gNjQ4NjcpCisr
KyBXZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRWRpdENvbW1hbmQuaCIKICNpbmNsdWRlICJD
U1NQcm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVkZSAiU3R5bGVkRWxlbWVudC5oIgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjgsNyArNjksNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCByZWJhbGFuY2VXaGl0ZXNwYWNlKCk7CiAgICAgdm9pZCByZWJh
bGFuY2VXaGl0ZXNwYWNlQXQoY29uc3QgUG9zaXRpb24mKTsKICAgICB2b2lkIHByZXBhcmVXaGl0
ZXNwYWNlQXRQb3NpdGlvbkZvclNwbGl0KFBvc2l0aW9uJik7Ci0gICAgdm9pZCByZW1vdmVDU1NQ
cm9wZXJ0eShQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiwgQ1NTUHJvcGVy
dHlJRCk7CisgICAgdm9pZCByZW1vdmVDU1NQcm9wZXJ0eShQYXNzUmVmUHRyPFN0eWxlZEVsZW1l
bnQ+LCBDU1NQcm9wZXJ0eUlEKTsKICAgICB2b2lkIHJlbW92ZU5vZGVBdHRyaWJ1dGUoUGFzc1Jl
ZlB0cjxFbGVtZW50PiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlKTsKICAgICB2b2lk
IHJlbW92ZUNoaWxkcmVuSW5SYW5nZShQYXNzUmVmUHRyPE5vZGU+LCB1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCB0byk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZU5vZGUoUGFzc1JlZlB0cjxOb2Rl
Pik7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAkocmV2aXNpb24gNjQ4Njcp
CisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdGluZ0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTAsNyArNTAsNiBAQAogI2luY2x1ZGUgPE1lcmdlSWRlbnRpY2FsRWxlbWVudHNDb21tYW5k
LmNwcD4KICNpbmNsdWRlIDxNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwPgogI2luY2x1ZGUg
PE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcD4KLSNpbmNsdWRlIDxSZW1vdmVDU1NQcm9wZXJ0eUNv
bW1hbmQuY3BwPgogI2luY2x1ZGUgPFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwPgogI2luY2x1ZGUg
PFJlbW92ZU5vZGVDb21tYW5kLmNwcD4KICNpbmNsdWRlIDxSZW1vdmVOb2RlUHJlc2VydmluZ0No
aWxkcmVuQ29tbWFuZC5jcHA+CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVy
dHlDb21tYW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJv
cGVydHlDb21tYW5kLmNwcAkocmV2aXNpb24gNjQ4NjcpCisrKyBXZWJDb3JlL2VkaXRpbmcvUmVt
b3ZlQ1NTUHJvcGVydHlDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1NSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA1LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlJlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZC5oIgotCi0jaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b24uaCIKLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLVJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZDo6UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kKERv
Y3VtZW50KiBkb2N1bWVudCwgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4g
c3R5bGUsIENTU1Byb3BlcnR5SUQgcHJvcGVydHkpCi0gICAgOiBTaW1wbGVFZGl0Q29tbWFuZChk
b2N1bWVudCkKLSAgICAsIG1fc3R5bGUoc3R5bGUpCi0gICAgLCBtX3Byb3BlcnR5KHByb3BlcnR5
KQotICAgICwgbV9pbXBvcnRhbnQoZmFsc2UpCi17Ci0gICAgQVNTRVJUKG1fc3R5bGUpOwotfQot
Ci12b2lkIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZDo6ZG9BcHBseSgpCi17Ci0gICAgbV9vbGRW
YWx1ZSA9IG1fc3R5bGUtPmdldFByb3BlcnR5VmFsdWUobV9wcm9wZXJ0eSk7Ci0gICAgbV9pbXBv
cnRhbnQgPSBtX3N0eWxlLT5nZXRQcm9wZXJ0eVByaW9yaXR5KG1fcHJvcGVydHkpOwotICAgIG1f
c3R5bGUtPnJlbW92ZVByb3BlcnR5KG1fcHJvcGVydHkpOwotfQotCi12b2lkIFJlbW92ZUNTU1By
b3BlcnR5Q29tbWFuZDo6ZG9VbmFwcGx5KCkKLXsKLSAgICBtX3N0eWxlLT5zZXRQcm9wZXJ0eSht
X3Byb3BlcnR5LCBtX29sZFZhbHVlLCBtX2ltcG9ydGFudCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5k
LmgJKHJldmlzaW9uIDY0ODY3KQorKysgV2ViQ29yZS9lZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotCi0jaWZuZGVmIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZF9oCi0jZGVmaW5lIFJlbW92
ZUNTU1Byb3BlcnR5Q29tbWFuZF9oCi0KLSNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgotI2luY2x1
ZGUgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCi0jaW5jbHVkZSAiQ1NTUHJvcGVydHlO
YW1lcy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFJlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZCA6IHB1YmxpYyBTaW1wbGVFZGl0Q29tbWFuZCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50LCBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBzdHlsZSwgQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kKGRvY3VtZW50LCBzdHlsZSwgcHJvcGVydHkpKTsKLSAg
ICB9Ci0KLXByaXZhdGU6Ci0gICAgUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kKERvY3VtZW50Kiwg
UGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4sIENTU1Byb3BlcnR5SUQgcHJv
cGVydHkpOwotCi0gICAgdmlydHVhbCB2b2lkIGRvQXBwbHkoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZG9VbmFwcGx5KCk7Ci0KLSAgICBSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IG1f
c3R5bGU7Ci0gICAgQ1NTUHJvcGVydHlJRCBtX3Byb3BlcnR5OwotICAgIFN0cmluZyBtX29sZFZh
bHVlOwotICAgIGJvb2wgbV9pbXBvcnRhbnQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmRfaApJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gNjQ4NjgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxNiBAQAorMjAxMC0wOC0wNiAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbmRvIGZh
aWxzIGluIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZCB3aGVuIHRoZSBjb3JyZXNwb25kaW5nIHN0
eWxlIGF0dHJpYnV0ZSBpcyByZW1vdmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00MzYzOQorCisgICAgICAgIEFkZGVkIGEgdGVzdCB0byByZW1vdmUg
c3R5bGUgYXR0cmlidXRlIGFmdGVyIHJlbW92aW5nIGEgQ1NTIHByb3BlcnR5IGZyb20gdGhlIHN0
eWxlLgorICAgICAgICBVbmRvIHNob3VsZCByZXN0b3JlIGJvdGggc3R5bGUgYXR0cmlidXRlIGFu
ZCB0aGUgcmVtb3ZlZCBDU1MgcHJvcGVydHkuCisKKyAgICAgICAgKiBlZGl0aW5nL3VuZG8vcmVt
b3ZlLWNzcy1wcm9wZXJ0eS1hbmQtcmVtb3ZlLXN0eWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZWRpdGluZy91bmRvL3JlbW92ZS1jc3MtcHJvcGVydHktYW5kLXJlbW92ZS1zdHls
ZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wOC0wNiAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVXBkYXRlIGNocm9taXVtIHRlc3QgcmVzdWx0cy4KSW5kZXg6IExheW91
dFRlc3RzL2VkaXRpbmcvdW5kby9yZW1vdmUtY3NzLXByb3BlcnR5LWFuZC1yZW1vdmUtc3R5bGUt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvdW5kby9yZW1v
dmUtY3NzLXByb3BlcnR5LWFuZC1yZW1vdmUtc3R5bGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL3JlbW92ZS1jc3MtcHJvcGVydHktYW5kLXJl
bW92ZS1zdHlsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzYgQEAKK1Ro
aXMgdGVzdHMgcmVtb3Zpbmcgc3R5bGUgYXR0cmlidXRlIGFmdGVyIHJlbW92aW5nIENTUyBwcm9w
ZXJ0eS4gVW5kbyBzaG91bGQgYnJpbmcgYmFjayB0aGUgQ1NTIHByb3BlcnR5IHdlIHJlbW92ZWQu
CisKK0luaXRpYWxseSAidGVzdCIgc2hvdWxkIGJlIGJvbGQgd3JhcHBlZCB3aXRoIGEgc3BhbjoK
K3wgPHNwYW4+Cit8ICAgc3R5bGU9ImZvbnQtd2VpZ2h0OiA5MDA7IgorfCAgICJ0ZXN0IgorCitV
bmJvbGRpbmcgc2hvdWxkIHJlbW92ZSB0aGUgQ1NTIHN0eWxlIGFuZCBhbHNvIHJlbW92ZSB0aGUg
c3BhbjoKK3wgIjwjc2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNzZWxlY3Rpb24tZm9jdXM+IgorCitV
bmRvIHNob3VsZCBicmluZyBiYWNrIGJvdGggdGhlIHNwYW4gYW5kIHN0eWxlIGF0dHJpYnV0ZSBz
byB0aGF0ICJ0ZXN0IiBpcyBvbmNlIGFnYWluIGJvbGQ6Cit8IDxzcGFuPgorfCAgIHN0eWxlPSJm
b250LXdlaWdodDogOTAwOyIKK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPnRlc3Q8I3NlbGVjdGlv
bi1mb2N1cz4iCisKK1JlZG8gc2hvdWxkIHVuYm9sZCAidGVzdCIgYW5kIHRoZXJlIHNob3VsZCBi
ZSBubyBzcGFuOgorfCAiPCNzZWxlY3Rpb24tYW5jaG9yPnRlc3Q8I3NlbGVjdGlvbi1mb2N1cz4i
CisKK1VuZG8gb25jZSBtb3JlOgorfCA8c3Bhbj4KK3wgICBzdHlsZT0iZm9udC13ZWlnaHQ6IDkw
MDsiCit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNzZWxlY3Rpb24tZm9jdXM+IgorCitS
ZXNldCwgYW5kIGFkZGVkIGlkIGFuZCB0aXRsZToKK3wgPHNwYW4+Cit8ICAgaWQ9InRlc3Rfc3Bh
biIKK3wgICBzdHlsZT0iZm9udC13ZWlnaHQ6IDkwMDsiCit8ICAgdGl0bGU9ImhlbGxvLCB3b3Js
ZCIKK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPnRlc3Q8I3NlbGVjdGlvbi1mb2N1cz4iCisKK1Vu
Ym9sZGluZyBzaG91bGQgcmVtb3ZlIHRoZSBDU1Mgc3R5bGUgYnV0IHNob3VsZG4ndCByZW1vdmUg
dGhlIHNwYW46Cit8IDxzcGFuPgorfCAgIGlkPSJ0ZXN0X3NwYW4iCit8ICAgdGl0bGU9ImhlbGxv
LCB3b3JsZCIKK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPnRlc3Q8I3NlbGVjdGlvbi1mb2N1cz4i
CisKK1VuZG8gc2hvdWxkIHJlc3RvcmUgdGhlIHN0eWxlIGF0dHJpYnV0ZSBhbmQgInRlc3QiIHNo
b3VsZCBiZSBib2xkOgorfCA8c3Bhbj4KK3wgICBpZD0idGVzdF9zcGFuIgorfCAgIHN0eWxlPSJm
b250LXdlaWdodDogOTAwOyIKK3wgICB0aXRsZT0iaGVsbG8sIHdvcmxkIgorfCAgICI8I3NlbGVj
dGlvbi1hbmNob3I+dGVzdDwjc2VsZWN0aW9uLWZvY3VzPiIKKworUmVkbyBzaG91bGQgcmVtb3Zl
IHRoZSBzdHlsZSBhdHRyaWJ1dGUgYWdhaW46Cit8IDxzcGFuPgorfCAgIGlkPSJ0ZXN0X3NwYW4i
Cit8ICAgdGl0bGU9ImhlbGxvLCB3b3JsZCIKK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPnRlc3Q8
I3NlbGVjdGlvbi1mb2N1cz4iCisKK1Jlc2V0LCBhbmQgYWRkZWQgY29sb3I6Ymx1ZToKK3wgPHNw
YW4+Cit8ICAgc3R5bGU9ImZvbnQtd2VpZ2h0OiA5MDA7IGNvbG9yOiBibHVlOyAiCit8ICAgIjwj
c2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNzZWxlY3Rpb24tZm9jdXM+IgorCitVbmJvbGRpbmcgc2hv
dWxkIHJlbW92ZSB0aGUgZm9udC13ZWlnaHQgYnV0IHNob3VsZG4ndCByZW1vdmUgdGhlIHN0eWxl
IGF0dHJpYnV0ZToKK3wgPHNwYW4+Cit8ICAgc3R5bGU9ImNvbG9yOiBibHVlOyAiCit8ICAgIjwj
c2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNzZWxlY3Rpb24tZm9jdXM+IgorCitVbmRvIHNob3VsZCBy
ZXNldCB0aGUgc3R5bGUgYXR0cmlidXRlIHNvIHRoYXQgInRlc3QiIGlzIGJvdGggYm9sZCBhbmQg
Ymx1ZToKK3wgPHNwYW4+Cit8ICAgc3R5bGU9ImZvbnQtd2VpZ2h0OiA5MDA7IGNvbG9yOiBibHVl
OyAiCit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNzZWxlY3Rpb24tZm9jdXM+IgorCitS
ZWRvIHNob3VsZCBvbmx5IHJlbW92ZSBmb250LXdlaWdodCBhbmQgbGVhdmUgInRlc3QiIGJsdWU6
Cit8IDxzcGFuPgorfCAgIHN0eWxlPSJjb2xvcjogYmx1ZTsgIgorfCAgICI8I3NlbGVjdGlvbi1h
bmNob3I+dGVzdDwjc2VsZWN0aW9uLWZvY3VzPiIKKworU2V0dGluZyB0aGUgZm9yZWNvbG9yIHRv
IGJsYWNrIHNob3VsZCByZW1vdmUgYm90aCB0aGUgc3R5bGUgYXR0cmlidXRlIGFuZCB0aGUgc3Bh
bjoKK3wgIjwjc2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNzZWxlY3Rpb24tZm9jdXM+IgorCitVbmRv
IHNob3VsZCBtYWtlICJ0ZXN0IiBibHVlIGFnYWluOgorfCA8c3Bhbj4KK3wgICBzdHlsZT0iY29s
b3I6IGJsdWU7ICIKK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPnRlc3Q8I3NlbGVjdGlvbi1mb2N1
cz4iCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8vcmVtb3ZlLWNzcy1wcm9wZXJ0eS1h
bmQtcmVtb3ZlLXN0eWxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy91
bmRvL3JlbW92ZS1jc3MtcHJvcGVydHktYW5kLXJlbW92ZS1zdHlsZS5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL3JlbW92ZS1jc3MtcHJvcGVydHktYW5kLXJl
bW92ZS1zdHlsZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5IEBACis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpzIj48L3NjcmlwdD4KKzxwPlRoaXMg
dGVzdHMgcmVtb3Zpbmcgc3R5bGUgYXR0cmlidXRlIGFmdGVyIHJlbW92aW5nIENTUyBwcm9wZXJ0
eS4gVW5kbyBzaG91bGQgYnJpbmcgYmFjayB0aGUgQ1NTIHByb3BlcnR5IHdlIHJlbW92ZWQuPC9w
PgorPGRpdiBpZD0idGVzdCIgY29udGVudGVkaXRhYmxlPjxzcGFuIHN0eWxlPSJmb250LXdlaWdo
dDogOTAwOyI+dGVzdDwvc3Bhbj48L2Rpdj4KKzxzY3JpcHQ+CisKK01hcmt1cC5kZXNjcmlwdGlv
bignVGhpcyB0ZXN0cyByZW1vdmluZyBzdHlsZSBhdHRyaWJ1dGUgYWZ0ZXIgcmVtb3ZpbmcgQ1NT
IHByb3BlcnR5LiBVbmRvIHNob3VsZCBicmluZyBiYWNrIHRoZSBDU1MgcHJvcGVydHkgd2UgcmVt
b3ZlZC4nKTsKKworTWFya3VwLmR1bXAoJ3Rlc3QnLCAnSW5pdGlhbGx5ICJ0ZXN0IiBzaG91bGQg
YmUgYm9sZCB3cmFwcGVkIHdpdGggYSBzcGFuJyk7Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2Vs
ZWN0QWxsQ2hpbGRyZW4odGVzdCk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnYm9sZCcsIGZhbHNl
LCBudWxsKTsKK01hcmt1cC5kdW1wKCd0ZXN0JywgJ1VuYm9sZGluZyBzaG91bGQgcmVtb3ZlIHRo
ZSBDU1Mgc3R5bGUgYW5kIGFsc28gcmVtb3ZlIHRoZSBzcGFuJyk7CisKK2RvY3VtZW50LmV4ZWND
b21tYW5kKCd1bmRvJywgZmFsc2UsIG51bGwpOworTWFya3VwLmR1bXAoJ3Rlc3QnLCAnVW5kbyBz
aG91bGQgYnJpbmcgYmFjayBib3RoIHRoZSBzcGFuIGFuZCBzdHlsZSBhdHRyaWJ1dGUgc28gdGhh
dCAidGVzdCIgaXMgb25jZSBhZ2FpbiBib2xkJyk7CisKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdy
ZWRvJywgZmFsc2UsIG51bGwpOworTWFya3VwLmR1bXAoJ3Rlc3QnLCAnUmVkbyBzaG91bGQgdW5i
b2xkICJ0ZXN0IiBhbmQgdGhlcmUgc2hvdWxkIGJlIG5vIHNwYW4nKTsKKworZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoJ3VuZG8nLCBmYWxzZSwgbnVsbCk7CitNYXJrdXAuZHVtcCgndGVzdCcsICdVbmRv
IG9uY2UgbW9yZScpOworCitkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpLmlubmVySFRN
TCA9ICc8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IDkwMDsiPnRlc3Q8L3NwYW4+JzsKK3ZhciBz
cGFuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5maXJzdENoaWxkOworc3Bhbi5p
ZCA9ICd0ZXN0X3NwYW4nOworc3Bhbi50aXRsZSA9ICdoZWxsbywgd29ybGQnOword2luZG93Lmdl
dFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKHRlc3QpOworTWFya3VwLmR1bXAoJ3Rlc3Qn
LCAnUmVzZXQsIGFuZCBhZGRlZCBpZCBhbmQgdGl0bGUnKTsKKworZG9jdW1lbnQuZXhlY0NvbW1h
bmQoJ2JvbGQnLCBmYWxzZSwgbnVsbCk7CitNYXJrdXAuZHVtcCgndGVzdCcsICdVbmJvbGRpbmcg
c2hvdWxkIHJlbW92ZSB0aGUgQ1NTIHN0eWxlIGJ1dCBzaG91bGRuXCd0IHJlbW92ZSB0aGUgc3Bh
bicpOworCitkb2N1bWVudC5leGVjQ29tbWFuZCgndW5kbycsIGZhbHNlLCBudWxsKTsKK01hcmt1
cC5kdW1wKCd0ZXN0JywgJ1VuZG8gc2hvdWxkIHJlc3RvcmUgdGhlIHN0eWxlIGF0dHJpYnV0ZSBh
bmQgInRlc3QiIHNob3VsZCBiZSBib2xkJyk7CisKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdyZWRv
JywgZmFsc2UsIG51bGwpOworTWFya3VwLmR1bXAoJ3Rlc3QnLCAnUmVkbyBzaG91bGQgcmVtb3Zl
IHRoZSBzdHlsZSBhdHRyaWJ1dGUgYWdhaW4nKTsKKworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3QnKS5pbm5lckhUTUwgPSAnPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OiA5MDA7Ij50ZXN0
PC9zcGFuPic7Cit2YXIgc3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0JykuZmly
c3RDaGlsZDsKK3NwYW4uc3R5bGUuY29sb3IgPSAnYmx1ZSc7Cit3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkuc2VsZWN0QWxsQ2hpbGRyZW4odGVzdCk7CitNYXJrdXAuZHVtcCgndGVzdCcsICdSZXNldCwg
YW5kIGFkZGVkIGNvbG9yOmJsdWUnKTsKKworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2JvbGQnLCBm
YWxzZSwgbnVsbCk7CitNYXJrdXAuZHVtcCgndGVzdCcsICdVbmJvbGRpbmcgc2hvdWxkIHJlbW92
ZSB0aGUgZm9udC13ZWlnaHQgYnV0IHNob3VsZG5cJ3QgcmVtb3ZlIHRoZSBzdHlsZSBhdHRyaWJ1
dGUnKTsKKworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ3VuZG8nLCBmYWxzZSwgbnVsbCk7CitNYXJr
dXAuZHVtcCgndGVzdCcsICdVbmRvIHNob3VsZCByZXNldCB0aGUgc3R5bGUgYXR0cmlidXRlIHNv
IHRoYXQgInRlc3QiIGlzIGJvdGggYm9sZCBhbmQgYmx1ZScpOworCitkb2N1bWVudC5leGVjQ29t
bWFuZCgncmVkbycsIGZhbHNlLCBudWxsKTsKK01hcmt1cC5kdW1wKCd0ZXN0JywgJ1JlZG8gc2hv
dWxkIG9ubHkgcmVtb3ZlIGZvbnQtd2VpZ2h0IGFuZCBsZWF2ZSAidGVzdCIgYmx1ZScpOworCitk
b2N1bWVudC5leGVjQ29tbWFuZCgnZm9yZUNvbG9yJywgZmFsc2UsICIjMDAwMDAwIik7CitNYXJr
dXAuZHVtcCgndGVzdCcsICdTZXR0aW5nIHRoZSBmb3JlY29sb3IgdG8gYmxhY2sgc2hvdWxkIHJl
bW92ZSBib3RoIHRoZSBzdHlsZSBhdHRyaWJ1dGUgYW5kIHRoZSBzcGFuJyk7CisKK2RvY3VtZW50
LmV4ZWNDb21tYW5kKCd1bmRvJywgZmFsc2UsIG51bGwpOworTWFya3VwLmR1bXAoJ3Rlc3QnLCAn
VW5kbyBzaG91bGQgbWFrZSAidGVzdCIgYmx1ZSBhZ2FpbicpOworCis8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63942</attachid>
            <date>2010-08-09 15:31:35 -0700</date>
            <delta_ts>2010-08-09 16:07:59 -0700</delta_ts>
            <desc>modified RemoveCSSPropertyCommand to restore styled element instead of style</desc>
            <filename>bug-43639-20100809153133.patch</filename>
            <type>text/plain</type>
            <size>16032</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTAwNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTAtMDgtMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5k
byBmYWlscyBpbiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQgd2hlbiB0aGUgY29ycmVzcG9uZGlu
ZyBzdHlsZSBhdHRyaWJ1dGUgaXMgcmVtb3ZlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDM2MzkKKworICAgICAgICBUaGUgYnVnIHdhcyBjYXVzZWQg
d2hlbiBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQgaXMgY2FsbGVkIHdpdGggQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24gb2Ygc29tZSBzdHlsZWQgZWxlbWVudCwKKyAgICAgICAgYW5kIHRoZSBz
dHlsZSBhdHRyaWJ1dGUgb2YgdGhlIGVsZW1lbnQgaXMgcmVtb3ZlZCBzdWJzZXF1ZW50bHkuIFdo
ZW4gdGhlIGF0dHJpYnV0ZSByZW1vdmFsIGlzIHVuZG9uZSwgbmV3IGluc3RhbmNlIG9mCisgICAg
ICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uIGlzIGNyZWF0ZWQgYW5kIFJlbW92ZUNTU1By
b3BlcnR5Q29tbWFuZCdzIG1fc3R5bGUgYmVjYW1lIGRldGFjaGVkIGZyb20gdGhlIGVsZW1lbnQu
CisKKyAgICAgICAgTW9kaWZpZWQgUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kIHRvIHN0b3JlIHRo
ZSBzdHlsZWQgZWxlbWVudCBkaXJlY3RseSBpbnN0ZWFkIG9mIGl0cyBDU1NNdXRhYmxlU3R5bGVE
ZWNsYXJhdGlvbi4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3VuZG8vcmVtb3ZlLWNzcy1wcm9w
ZXJ0eS1hbmQtcmVtb3ZlLXN0eWxlLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUub3JkZXI6Cisg
ICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBseVN0eWxlQ29tbWFuZDo6cmVtb3ZlQ1NTU3R5bGUpOiBDYWxscyByZW1vdmVDU1NQcm9w
ZXJ0eS4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpleHRyYWN0VGV4dERl
Y29yYXRpb25TdHlsZSk6IENhbGxzIHJlbW92ZUNTU1Byb3BlcnR5LgorICAgICAgICAqIGVkaXRp
bmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRl
RWRpdENvbW1hbmQ6OnJlbW92ZUNTU1Byb3BlcnR5KTogVGFrZXMgU3R5bGVkRWxlbWVudCBpbnN0
ZWFkIG9mIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLgorICAgICAgICAqIGVkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuaDoKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQ6
OlJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZCk6IFRha2VzIFN0eWxlZEVsZW1lbnQgaW5zdGVhZCBv
ZiBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZDo6ZG9BcHBseSk6IFNlZSBhYm92ZS4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZDo6ZG9VbmFwcGx5KTogU2VlIGFib3ZlLgorICAgICAg
ICAqIGVkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQ6OmNyZWF0ZSk6IFNlZSBhYm92ZS4KKwogMjAxMC0w
OC0wOSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5vcmRlcgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUub3JkZXIJKHJldmlzaW9uIDY0OTk3KQorKysgV2ViQ29yZS9XZWJD
b3JlLm9yZGVyCSh3b3JraW5nIGNvcHkpCkBAIC0xNzYzNSw5ICsxNzYzNSw5IEBAIF9fWk43V2Vi
Q29yZTE2Y29tcGFyZVBvc2l0aW9uc0VSS05TXzE1VmkKIF9fWk43V2ViQ29yZTIwQ29tcG9zaXRl
RWRpdENvbW1hbmQxMGFwcGx5U3R5bGVFUE5TXzE5Q1NTU3R5bGVEZWNsYXJhdGlvbkVSS05TXzhQ
b3NpdGlvbkVTNV9OU18xMEVkaXRBY3Rpb25FCiBfX1pON1dlYkNvcmUxN0FwcGx5U3R5bGVDb21t
YW5kQzFFUE5TXzhEb2N1bWVudEVQTlNfMTlDU1NTdHlsZURlY2xhcmF0aW9uRVJLTlNfOFBvc2l0
aW9uRVM3X05TXzEwRWRpdEFjdGlvbkVOUzBfMTRFUHJvcGVydHlMZXZlCiBfX1pON1dlYkNvcmUx
N0FwcGx5U3R5bGVDb21tYW5kQzJFUE5TXzhEb2N1bWVudEVQTlNfMTlDU1NTdHlsZURlY2xhcmF0
aW9uRVJLTlNfOFBvc2l0aW9uRVM3X05TXzEwRWRpdEFjdGlvbkVOUzBfMTRFUHJvcGVydHlMZXZl
Ci1fX1pON1dlYkNvcmUyMENvbXBvc2l0ZUVkaXRDb21tYW5kMTdyZW1vdmVDU1NQcm9wZXJ0eUVO
M1dURjEwUGFzc1JlZlB0cklOU18yNkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uRUVFMTNDU1NQ
cm9wZXJ0eUlECi1fX1pON1dlYkNvcmUyNFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZEMxRVBOU184
RG9jdW1lbnRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMjZDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bkVFRTEzQ1NTUHJvcGVydHlJRAotX19aTjdXZWJDb3JlMjRSZW1vdmVDU1NQcm9wZXJ0eUNvbW1h
bmRDMkVQTlNfOERvY3VtZW50RU4zV1RGMTBQYXNzUmVmUHRySU5TXzI2Q1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb25FRUUxM0NTU1Byb3BlcnR5SUQKK19fWk43V2ViQ29yZTIwQ29tcG9zaXRlRWRp
dENvbW1hbmQxN3JlbW92ZUNTU1Byb3BlcnR5RU4zV1RGMTBQYXNzUmVmUHRySU5TXzEzU3R5bGVk
RWxlbWVudEVFRTEzQ1NTUHJvcGVydHlJRAorX19aTjdXZWJDb3JlMjRSZW1vdmVDU1NQcm9wZXJ0
eUNvbW1hbmRDMUVQTlNfOERvY3VtZW50RU4zV1RGMTBQYXNzUmVmUHRySU5TXzEzU3R5bGVkRWxl
bWVudEVFRTEzQ1NTUHJvcGVydHlJRAorX19aTjdXZWJDb3JlMjRSZW1vdmVDU1NQcm9wZXJ0eUNv
bW1hbmRDMkVQTlNfOERvY3VtZW50RU4zV1RGMTBQYXNzUmVmUHRySU5TXzEzU3R5bGVkRWxlbWVu
dEVFRTEzQ1NTUHJvcGVydHlJRAogX19aTjdXZWJDb3JlMjRSZW1vdmVDU1NQcm9wZXJ0eUNvbW1h
bmQ3ZG9BcHBseUV2CiBfX1pON1dlYkNvcmUyMENvbXBvc2l0ZUVkaXRDb21tYW5kMTlyZW1vdmVO
b2RlQXR0cmlidXRlRU4zV1RGMTBQYXNzUmVmUHRySU5TXzdFbGVtZW50RUVFUktOU18xM1F1YWxp
ZmllZE5hbWVFCiBfX1pOSzdXZWJDb3JlMThGb3JtYXRCbG9ja0NvbW1hbmQxM2VkaXRpbmdBY3Rp
b25FdgpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCShyZXZpc2lvbiA2
NDk5NykKKysrIFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzMTgsOSArMTMxOCw5IEBAIGJvb2wgQXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92
ZUNTU1N0eWxlKEMKICAgICAgICAgICAgIHJlbW92ZWQgPSB0cnVlOwogICAgICAgICAgICAgaWYg
KG1vZGUgPT0gUmVtb3ZlTm9uZSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgICAgIHJlbW92ZUNTU1Byb3BlcnR5KGRlY2wsIHByb3BlcnR5SUQpOworICAgICAgICAgICAg
cmVtb3ZlQ1NTUHJvcGVydHkoZWxlbSwgcHJvcGVydHlJRCk7CiAgICAgICAgICAgICBpZiAocHJv
cGVydHlJRCA9PSBDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpICYmICFkZWNsLT5nZXRQcm9wZXJ0eVZh
bHVlKENTU1Byb3BlcnR5RGlyZWN0aW9uKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmVt
b3ZlQ1NTUHJvcGVydHkoZGVjbCwgQ1NTUHJvcGVydHlEaXJlY3Rpb24pOworICAgICAgICAgICAg
ICAgIHJlbW92ZUNTU1Byb3BlcnR5KGVsZW0sIENTU1Byb3BlcnR5RGlyZWN0aW9uKTsKICAgICAg
ICAgfQogICAgIH0KIApAQCAtMTM4MCw3ICsxMzgwLDcgQEAgUGFzc1JlZlB0cjxDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbj4gQQogCiAgICAgUmVmUHRyPENTU1ZhbHVlPiBwcm9wZXJ0eSA9IHN0
eWxlLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5VGV4dERlY29yYXRpb24pOwogICAg
IGlmIChwcm9wZXJ0eSAmJiAhZXF1YWxJZ25vcmluZ0Nhc2UocHJvcGVydHktPmNzc1RleHQoKSwg
Im5vbmUiKSkKLSAgICAgICAgcmVtb3ZlQ1NTUHJvcGVydHkoc3R5bGUuZ2V0KCksIENTU1Byb3Bl
cnR5VGV4dERlY29yYXRpb24pOworICAgICAgICByZW1vdmVDU1NQcm9wZXJ0eShlbGVtZW50LCBD
U1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uKTsKIAogICAgIHJldHVybiB0ZXh0RGVjb3JhdGlvblN0
eWxlLnJlbGVhc2UoKTsKIH0KSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcAkocmV2aXNpb24gNjQ5OTcpCisrKyBXZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNzAsOSArMzcwLDkgQEAgdm9pZCBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6ZGVsZXRlU2VsZWN0aQogICAgICAgICBhcHBseUNvbW1hbmRUb0Nv
bXBvc2l0ZShEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoc2VsZWN0aW9uLCBzbWFydERl
bGV0ZSwgbWVyZ2VCbG9ja3NBZnRlckRlbGV0ZSwgcmVwbGFjZSwgZXhwYW5kRm9yU3BlY2lhbEVs
ZW1lbnRzKSk7CiB9CiAKLXZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlbW92ZUNTU1Byb3Bl
cnR5KFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IHN0eWxlLCBDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5KQordm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlQ1NTUHJv
cGVydHkoUGFzc1JlZlB0cjxTdHlsZWRFbGVtZW50PiBlbGVtZW50LCBDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5KQogewotICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIHN0eWxlLCBwcm9wZXJ0eSkpOworICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZDo6Y3JlYXRlKGRvY3Vt
ZW50KCksIGVsZW1lbnQsIHByb3BlcnR5KSk7CiB9CiAKIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1h
bmQ6OnJlbW92ZU5vZGVBdHRyaWJ1dGUoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUpCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRl
RWRpdENvbW1hbmQuaAkocmV2aXNpb24gNjQ5OTcpCisrKyBXZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBIVE1MRWxl
bWVudDsKK2NsYXNzIFN0eWxlZEVsZW1lbnQ7CiBjbGFzcyBUZXh0OwogCiBjbGFzcyBDb21wb3Np
dGVFZGl0Q29tbWFuZCA6IHB1YmxpYyBFZGl0Q29tbWFuZCB7CkBAIC02OCw3ICs2OSw3IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIHJlYmFsYW5jZVdoaXRlc3BhY2UoKTsKICAgICB2b2lkIHJlYmFs
YW5jZVdoaXRlc3BhY2VBdChjb25zdCBQb3NpdGlvbiYpOwogICAgIHZvaWQgcHJlcGFyZVdoaXRl
c3BhY2VBdFBvc2l0aW9uRm9yU3BsaXQoUG9zaXRpb24mKTsKLSAgICB2b2lkIHJlbW92ZUNTU1By
b3BlcnR5KFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+LCBDU1NQcm9wZXJ0
eUlEKTsKKyAgICB2b2lkIHJlbW92ZUNTU1Byb3BlcnR5KFBhc3NSZWZQdHI8U3R5bGVkRWxlbWVu
dD4sIENTU1Byb3BlcnR5SUQpOwogICAgIHZvaWQgcmVtb3ZlTm9kZUF0dHJpYnV0ZShQYXNzUmVm
UHRyPEVsZW1lbnQ+LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGUpOwogICAgIHZvaWQg
cmVtb3ZlQ2hpbGRyZW5JblJhbmdlKFBhc3NSZWZQdHI8Tm9kZT4sIHVuc2lnbmVkIGZyb20sIHVu
c2lnbmVkIHRvKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlTm9kZShQYXNzUmVmUHRyPE5vZGU+
KTsKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuY3Bw
CShyZXZpc2lvbiA2NDk5NykKKysrIFdlYkNvcmUvZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNv
bW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwyNSArMzEsMjcgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQ6OlJlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZChEb2N1bWVudCogZG9jdW1lbnQsIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24+IHN0eWxlLCBDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KQorUmVtb3ZlQ1NTUHJvcGVy
dHlDb21tYW5kOjpSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQoRG9jdW1lbnQqIGRvY3VtZW50LCBQ
YXNzUmVmUHRyPFN0eWxlZEVsZW1lbnQ+IGVsZW1lbnQsIENTU1Byb3BlcnR5SUQgcHJvcGVydHkp
CiAgICAgOiBTaW1wbGVFZGl0Q29tbWFuZChkb2N1bWVudCkKLSAgICAsIG1fc3R5bGUoc3R5bGUp
CisgICAgLCBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fcHJvcGVydHkocHJvcGVydHkpCiAg
ICAgLCBtX2ltcG9ydGFudChmYWxzZSkKIHsKLSAgICBBU1NFUlQobV9zdHlsZSk7CisgICAgQVNT
RVJUKG1fZWxlbWVudCk7CiB9CiAKIHZvaWQgUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kOjpkb0Fw
cGx5KCkKIHsKLSAgICBtX29sZFZhbHVlID0gbV9zdHlsZS0+Z2V0UHJvcGVydHlWYWx1ZShtX3By
b3BlcnR5KTsKLSAgICBtX2ltcG9ydGFudCA9IG1fc3R5bGUtPmdldFByb3BlcnR5UHJpb3JpdHko
bV9wcm9wZXJ0eSk7Ci0gICAgbV9zdHlsZS0+cmVtb3ZlUHJvcGVydHkobV9wcm9wZXJ0eSk7Cisg
ICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlID0gbV9lbGVtZW50LT5pbmxpbmVT
dHlsZURlY2woKTsKKyAgICBtX29sZFZhbHVlID0gc3R5bGUtPmdldFByb3BlcnR5VmFsdWUobV9w
cm9wZXJ0eSk7CisgICAgbV9pbXBvcnRhbnQgPSBzdHlsZS0+Z2V0UHJvcGVydHlQcmlvcml0eSht
X3Byb3BlcnR5KTsKKyAgICBzdHlsZS0+cmVtb3ZlUHJvcGVydHkobV9wcm9wZXJ0eSk7CiB9CiAK
IHZvaWQgUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kOjpkb1VuYXBwbHkoKQogewotICAgIG1fc3R5
bGUtPnNldFByb3BlcnR5KG1fcHJvcGVydHksIG1fb2xkVmFsdWUsIG1faW1wb3J0YW50KTsKKyAg
ICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUgPSBtX2VsZW1lbnQtPmlubGluZVN0
eWxlRGVjbCgpOworICAgIHN0eWxlLT5zZXRQcm9wZXJ0eShtX3Byb3BlcnR5LCBtX29sZFZhbHVl
LCBtX2ltcG9ydGFudCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNv
cmUvZWRpdGluZy9SZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2VkaXRpbmcvUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kLmgJKHJldmlzaW9uIDY0OTk3KQor
KysgV2ViQ29yZS9lZGl0aW5nL1JlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSwyMyArMjksMjQgQEAKICNpbmNsdWRlICJFZGl0Q29tbWFuZC5oIgogI2luY2x1
ZGUgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlO
YW1lcy5oIgorI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBSZW1vdmVDU1NQcm9wZXJ0eUNvbW1hbmQgOiBwdWJsaWMgU2ltcGxlRWRpdENv
bW1hbmQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW92ZUNTU1Byb3BlcnR5
Q29tbWFuZD4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgUGFzc1JlZlB0cjxDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbj4gc3R5bGUsIENTU1Byb3BlcnR5SUQgcHJvcGVydHkpCisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8UmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kPiBjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50LCBQYXNzUmVmUHRyPFN0eWxlZEVsZW1lbnQ+IGVsZW1lbnQsIENTU1Byb3BlcnR5
SUQgcHJvcGVydHkpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW92ZUNT
U1Byb3BlcnR5Q29tbWFuZChkb2N1bWVudCwgc3R5bGUsIHByb3BlcnR5KSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5kKGRvY3VtZW50LCBlbGVt
ZW50LCBwcm9wZXJ0eSkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBSZW1vdmVDU1NQcm9wZXJ0
eUNvbW1hbmQoRG9jdW1lbnQqLCBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9u
PiwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSk7CisgICAgUmVtb3ZlQ1NTUHJvcGVydHlDb21tYW5k
KERvY3VtZW50KiwgUGFzc1JlZlB0cjxTdHlsZWRFbGVtZW50PiwgQ1NTUHJvcGVydHlJRCBwcm9w
ZXJ0eSk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9BcHBseSgpOwogICAgIHZpcnR1YWwgdm9pZCBk
b1VuYXBwbHkoKTsKIAotICAgIFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gbV9z
dHlsZTsKKyAgICBSZWZQdHI8U3R5bGVkRWxlbWVudD4gbV9lbGVtZW50OwogICAgIENTU1Byb3Bl
cnR5SUQgbV9wcm9wZXJ0eTsKICAgICBTdHJpbmcgbV9vbGRWYWx1ZTsKICAgICBib29sIG1faW1w
b3J0YW50OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjUwMDYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wOC0wOSAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVbmRvIGZhaWxzIGluIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFuZCB3
aGVuIHRoZSBjb3JyZXNwb25kaW5nIHN0eWxlIGF0dHJpYnV0ZSBpcyByZW1vdmVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzYzOQorCisgICAgICAg
IEFkZGVkIGEgdGVzdCB0byByZW1vdmUgc3R5bGUgYXR0cmlidXRlIGFmdGVyIHJlbW92aW5nIGEg
Q1NTIHByb3BlcnR5IGZyb20gdGhlIHN0eWxlLgorICAgICAgICBVbmRvIHNob3VsZCByZXN0b3Jl
IGJvdGggc3R5bGUgYXR0cmlidXRlIGFuZCB0aGUgcmVtb3ZlZCBDU1MgcHJvcGVydHkuCisKKyAg
ICAgICAgKiBlZGl0aW5nL3VuZG8vcmVtb3ZlLWNzcy1wcm9wZXJ0eS1hbmQtcmVtb3ZlLXN0eWxl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy91bmRvL3JlbW92ZS1jc3Mt
cHJvcGVydHktYW5kLXJlbW92ZS1zdHlsZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wOC0wOSAgRXJp
YyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvdW5kby9yZW1vdmUtY3NzLXByb3BlcnR5
LWFuZC1yZW1vdmUtc3R5bGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2VkaXRpbmcvdW5kby9yZW1vdmUtY3NzLXByb3BlcnR5LWFuZC1yZW1vdmUtc3R5bGUtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL3JlbW92ZS1j
c3MtcHJvcGVydHktYW5kLXJlbW92ZS1zdHlsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNzYgQEAKK1RoaXMgdGVzdHMgcmVtb3Zpbmcgc3R5bGUgYXR0cmlidXRlIGFmdGVy
IHJlbW92aW5nIENTUyBwcm9wZXJ0eS4gVW5kbyBzaG91bGQgYnJpbmcgYmFjayB0aGUgQ1NTIHBy
b3BlcnR5IHdlIHJlbW92ZWQuCisKK0luaXRpYWxseSAidGVzdCIgc2hvdWxkIGJlIGJvbGQgd3Jh
cHBlZCB3aXRoIGEgc3BhbjoKK3wgPHNwYW4+Cit8ICAgc3R5bGU9ImZvbnQtd2VpZ2h0OiA5MDA7
IgorfCAgICJ0ZXN0IgorCitVbmJvbGRpbmcgc2hvdWxkIHJlbW92ZSB0aGUgQ1NTIHN0eWxlIGFu
ZCBhbHNvIHJlbW92ZSB0aGUgc3BhbjoKK3wgIjwjc2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNzZWxl
Y3Rpb24tZm9jdXM+IgorCitVbmRvIHNob3VsZCBicmluZyBiYWNrIGJvdGggdGhlIHNwYW4gYW5k
IHN0eWxlIGF0dHJpYnV0ZSBzbyB0aGF0ICJ0ZXN0IiBpcyBvbmNlIGFnYWluIGJvbGQ6Cit8IDxz
cGFuPgorfCAgIHN0eWxlPSJmb250LXdlaWdodDogOTAwOyAiCit8ICAgIjwjc2VsZWN0aW9uLWFu
Y2hvcj50ZXN0PCNzZWxlY3Rpb24tZm9jdXM+IgorCitSZWRvIHNob3VsZCB1bmJvbGQgInRlc3Qi
IGFuZCB0aGVyZSBzaG91bGQgYmUgbm8gc3BhbjoKK3wgIjwjc2VsZWN0aW9uLWFuY2hvcj50ZXN0
PCNzZWxlY3Rpb24tZm9jdXM+IgorCitVbmRvIG9uY2UgbW9yZToKK3wgPHNwYW4+Cit8ICAgc3R5
bGU9ImZvbnQtd2VpZ2h0OiA5MDA7ICIKK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9yPnRlc3Q8I3Nl
bGVjdGlvbi1mb2N1cz4iCisKK1Jlc2V0LCBhbmQgYWRkZWQgaWQgYW5kIHRpdGxlOgorfCA8c3Bh
bj4KK3wgICBpZD0idGVzdF9zcGFuIgorfCAgIHN0eWxlPSJmb250LXdlaWdodDogOTAwOyIKK3wg
ICB0aXRsZT0iaGVsbG8sIHdvcmxkIgorfCAgICI8I3NlbGVjdGlvbi1hbmNob3I+dGVzdDwjc2Vs
ZWN0aW9uLWZvY3VzPiIKKworVW5ib2xkaW5nIHNob3VsZCByZW1vdmUgdGhlIENTUyBzdHlsZSBi
dXQgc2hvdWxkbid0IHJlbW92ZSB0aGUgc3BhbjoKK3wgPHNwYW4+Cit8ICAgaWQ9InRlc3Rfc3Bh
biIKK3wgICB0aXRsZT0iaGVsbG8sIHdvcmxkIgorfCAgICI8I3NlbGVjdGlvbi1hbmNob3I+dGVz
dDwjc2VsZWN0aW9uLWZvY3VzPiIKKworVW5kbyBzaG91bGQgcmVzdG9yZSB0aGUgc3R5bGUgYXR0
cmlidXRlIGFuZCAidGVzdCIgc2hvdWxkIGJlIGJvbGQ6Cit8IDxzcGFuPgorfCAgIGlkPSJ0ZXN0
X3NwYW4iCit8ICAgc3R5bGU9ImZvbnQtd2VpZ2h0OiA5MDA7ICIKK3wgICB0aXRsZT0iaGVsbG8s
IHdvcmxkIgorfCAgICI8I3NlbGVjdGlvbi1hbmNob3I+dGVzdDwjc2VsZWN0aW9uLWZvY3VzPiIK
KworUmVkbyBzaG91bGQgcmVtb3ZlIHRoZSBzdHlsZSBhdHRyaWJ1dGUgYWdhaW46Cit8IDxzcGFu
PgorfCAgIGlkPSJ0ZXN0X3NwYW4iCit8ICAgdGl0bGU9ImhlbGxvLCB3b3JsZCIKK3wgICAiPCNz
ZWxlY3Rpb24tYW5jaG9yPnRlc3Q8I3NlbGVjdGlvbi1mb2N1cz4iCisKK1Jlc2V0LCBhbmQgYWRk
ZWQgY29sb3I6Ymx1ZToKK3wgPHNwYW4+Cit8ICAgc3R5bGU9ImZvbnQtd2VpZ2h0OiA5MDA7IGNv
bG9yOiBibHVlOyAiCit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNzZWxlY3Rpb24tZm9j
dXM+IgorCitVbmJvbGRpbmcgc2hvdWxkIHJlbW92ZSB0aGUgZm9udC13ZWlnaHQgYnV0IHNob3Vs
ZG4ndCByZW1vdmUgdGhlIHN0eWxlIGF0dHJpYnV0ZToKK3wgPHNwYW4+Cit8ICAgc3R5bGU9ImNv
bG9yOiBibHVlOyAiCit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNzZWxlY3Rpb24tZm9j
dXM+IgorCitVbmRvIHNob3VsZCByZXNldCB0aGUgc3R5bGUgYXR0cmlidXRlIHNvIHRoYXQgInRl
c3QiIGlzIGJvdGggYm9sZCBhbmQgYmx1ZToKK3wgPHNwYW4+Cit8ICAgc3R5bGU9ImNvbG9yOiBi
bHVlOyBmb250LXdlaWdodDogOTAwOyAiCit8ICAgIjwjc2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNz
ZWxlY3Rpb24tZm9jdXM+IgorCitSZWRvIHNob3VsZCBvbmx5IHJlbW92ZSBmb250LXdlaWdodCBh
bmQgbGVhdmUgInRlc3QiIGJsdWU6Cit8IDxzcGFuPgorfCAgIHN0eWxlPSJjb2xvcjogYmx1ZTsg
IgorfCAgICI8I3NlbGVjdGlvbi1hbmNob3I+dGVzdDwjc2VsZWN0aW9uLWZvY3VzPiIKKworU2V0
dGluZyB0aGUgZm9yZWNvbG9yIHRvIGJsYWNrIHNob3VsZCByZW1vdmUgYm90aCB0aGUgc3R5bGUg
YXR0cmlidXRlIGFuZCB0aGUgc3BhbjoKK3wgIjwjc2VsZWN0aW9uLWFuY2hvcj50ZXN0PCNzZWxl
Y3Rpb24tZm9jdXM+IgorCitVbmRvIHNob3VsZCBtYWtlICJ0ZXN0IiBibHVlIGFnYWluOgorfCA8
c3Bhbj4KK3wgICBzdHlsZT0iY29sb3I6IGJsdWU7ICIKK3wgICAiPCNzZWxlY3Rpb24tYW5jaG9y
PnRlc3Q8I3NlbGVjdGlvbi1mb2N1cz4iCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3VuZG8v
cmVtb3ZlLWNzcy1wcm9wZXJ0eS1hbmQtcmVtb3ZlLXN0eWxlLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL3JlbW92ZS1jc3MtcHJvcGVydHktYW5kLXJlbW92ZS1z
dHlsZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy91bmRvL3JlbW92
ZS1jc3MtcHJvcGVydHktYW5kLXJlbW92ZS1zdHlsZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDU5IEBACis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2R1bXAtYXMtbWFya3VwLmpz
Ij48L3NjcmlwdD4KKzxwPlRoaXMgdGVzdHMgcmVtb3Zpbmcgc3R5bGUgYXR0cmlidXRlIGFmdGVy
IHJlbW92aW5nIENTUyBwcm9wZXJ0eS4gVW5kbyBzaG91bGQgYnJpbmcgYmFjayB0aGUgQ1NTIHBy
b3BlcnR5IHdlIHJlbW92ZWQuPC9wPgorPGRpdiBpZD0idGVzdCIgY29udGVudGVkaXRhYmxlPjxz
cGFuIHN0eWxlPSJmb250LXdlaWdodDogOTAwOyI+dGVzdDwvc3Bhbj48L2Rpdj4KKzxzY3JpcHQ+
CisKK01hcmt1cC5kZXNjcmlwdGlvbignVGhpcyB0ZXN0cyByZW1vdmluZyBzdHlsZSBhdHRyaWJ1
dGUgYWZ0ZXIgcmVtb3ZpbmcgQ1NTIHByb3BlcnR5LiBVbmRvIHNob3VsZCBicmluZyBiYWNrIHRo
ZSBDU1MgcHJvcGVydHkgd2UgcmVtb3ZlZC4nKTsKKworTWFya3VwLmR1bXAoJ3Rlc3QnLCAnSW5p
dGlhbGx5ICJ0ZXN0IiBzaG91bGQgYmUgYm9sZCB3cmFwcGVkIHdpdGggYSBzcGFuJyk7Cit3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4odGVzdCk7Citkb2N1bWVudC5leGVj
Q29tbWFuZCgnYm9sZCcsIGZhbHNlLCBudWxsKTsKK01hcmt1cC5kdW1wKCd0ZXN0JywgJ1VuYm9s
ZGluZyBzaG91bGQgcmVtb3ZlIHRoZSBDU1Mgc3R5bGUgYW5kIGFsc28gcmVtb3ZlIHRoZSBzcGFu
Jyk7CisKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCd1bmRvJywgZmFsc2UsIG51bGwpOworTWFya3Vw
LmR1bXAoJ3Rlc3QnLCAnVW5kbyBzaG91bGQgYnJpbmcgYmFjayBib3RoIHRoZSBzcGFuIGFuZCBz
dHlsZSBhdHRyaWJ1dGUgc28gdGhhdCAidGVzdCIgaXMgb25jZSBhZ2FpbiBib2xkJyk7CisKK2Rv
Y3VtZW50LmV4ZWNDb21tYW5kKCdyZWRvJywgZmFsc2UsIG51bGwpOworTWFya3VwLmR1bXAoJ3Rl
c3QnLCAnUmVkbyBzaG91bGQgdW5ib2xkICJ0ZXN0IiBhbmQgdGhlcmUgc2hvdWxkIGJlIG5vIHNw
YW4nKTsKKworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ3VuZG8nLCBmYWxzZSwgbnVsbCk7CitNYXJr
dXAuZHVtcCgndGVzdCcsICdVbmRvIG9uY2UgbW9yZScpOworCitkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdCcpLmlubmVySFRNTCA9ICc8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6IDkwMDsi
PnRlc3Q8L3NwYW4+JzsKK3ZhciBzcGFuID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qn
KS5maXJzdENoaWxkOworc3Bhbi5pZCA9ICd0ZXN0X3NwYW4nOworc3Bhbi50aXRsZSA9ICdoZWxs
bywgd29ybGQnOword2luZG93LmdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKHRlc3Qp
OworTWFya3VwLmR1bXAoJ3Rlc3QnLCAnUmVzZXQsIGFuZCBhZGRlZCBpZCBhbmQgdGl0bGUnKTsK
KworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2JvbGQnLCBmYWxzZSwgbnVsbCk7CitNYXJrdXAuZHVt
cCgndGVzdCcsICdVbmJvbGRpbmcgc2hvdWxkIHJlbW92ZSB0aGUgQ1NTIHN0eWxlIGJ1dCBzaG91
bGRuXCd0IHJlbW92ZSB0aGUgc3BhbicpOworCitkb2N1bWVudC5leGVjQ29tbWFuZCgndW5kbycs
IGZhbHNlLCBudWxsKTsKK01hcmt1cC5kdW1wKCd0ZXN0JywgJ1VuZG8gc2hvdWxkIHJlc3RvcmUg
dGhlIHN0eWxlIGF0dHJpYnV0ZSBhbmQgInRlc3QiIHNob3VsZCBiZSBib2xkJyk7CisKK2RvY3Vt
ZW50LmV4ZWNDb21tYW5kKCdyZWRvJywgZmFsc2UsIG51bGwpOworTWFya3VwLmR1bXAoJ3Rlc3Qn
LCAnUmVkbyBzaG91bGQgcmVtb3ZlIHRoZSBzdHlsZSBhdHRyaWJ1dGUgYWdhaW4nKTsKKworZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5pbm5lckhUTUwgPSAnPHNwYW4gc3R5bGU9ImZv
bnQtd2VpZ2h0OiA5MDA7Ij50ZXN0PC9zcGFuPic7Cit2YXIgc3BhbiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0JykuZmlyc3RDaGlsZDsKK3NwYW4uc3R5bGUuY29sb3IgPSAnYmx1ZSc7
Cit3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4odGVzdCk7CitNYXJrdXAu
ZHVtcCgndGVzdCcsICdSZXNldCwgYW5kIGFkZGVkIGNvbG9yOmJsdWUnKTsKKworZG9jdW1lbnQu
ZXhlY0NvbW1hbmQoJ2JvbGQnLCBmYWxzZSwgbnVsbCk7CitNYXJrdXAuZHVtcCgndGVzdCcsICdV
bmJvbGRpbmcgc2hvdWxkIHJlbW92ZSB0aGUgZm9udC13ZWlnaHQgYnV0IHNob3VsZG5cJ3QgcmVt
b3ZlIHRoZSBzdHlsZSBhdHRyaWJ1dGUnKTsKKworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ3VuZG8n
LCBmYWxzZSwgbnVsbCk7CitNYXJrdXAuZHVtcCgndGVzdCcsICdVbmRvIHNob3VsZCByZXNldCB0
aGUgc3R5bGUgYXR0cmlidXRlIHNvIHRoYXQgInRlc3QiIGlzIGJvdGggYm9sZCBhbmQgYmx1ZScp
OworCitkb2N1bWVudC5leGVjQ29tbWFuZCgncmVkbycsIGZhbHNlLCBudWxsKTsKK01hcmt1cC5k
dW1wKCd0ZXN0JywgJ1JlZG8gc2hvdWxkIG9ubHkgcmVtb3ZlIGZvbnQtd2VpZ2h0IGFuZCBsZWF2
ZSAidGVzdCIgYmx1ZScpOworCitkb2N1bWVudC5leGVjQ29tbWFuZCgnZm9yZUNvbG9yJywgZmFs
c2UsICIjMDAwMDAwIik7CitNYXJrdXAuZHVtcCgndGVzdCcsICdTZXR0aW5nIHRoZSBmb3JlY29s
b3IgdG8gYmxhY2sgc2hvdWxkIHJlbW92ZSBib3RoIHRoZSBzdHlsZSBhdHRyaWJ1dGUgYW5kIHRo
ZSBzcGFuJyk7CisKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCd1bmRvJywgZmFsc2UsIG51bGwpOwor
TWFya3VwLmR1bXAoJ3Rlc3QnLCAnVW5kbyBzaG91bGQgbWFrZSAidGVzdCIgYmx1ZSBhZ2Fpbicp
OworCis8L3NjcmlwdD4K
</data>
<flag name="review"
          id="52388"
          type_id="1"
          status="+"
          setter="justin.garcia"
    />
          </attachment>
      

    </bug>

</bugzilla>