<?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>28968</bug_id>
          
          <creation_ts>2009-09-04 04:16:32 -0700</creation_ts>
          <short_desc>execCommand(&quot;fontsize&quot;) on certain selected html generates too many SPAN tags.</short_desc>
          <delta_ts>2010-09-10 15:26:56 -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>HasReduction</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>45008</dependson>
    
    <dependson>45026</dependson>
          <blocked>27818</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dan POPA">dpopa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>jparent</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>144783</commentid>
    <comment_count>0</comment_count>
    <who name="Dan POPA">dpopa</who>
    <bug_when>2009-09-04 04:16:32 -0700</bug_when>
    <thetext>execCommand(&quot;fontsize&quot;) on certain selected html generates too many SPAN tags.

1. Have this HTML code inside a contentEditable DIV:
  (code beautified, class=&quot;Apple-span-style&quot; removed)

A man with 2 
&lt;span style=&quot;font-family: Courier New, Courier&quot;&gt;
	font faces
&lt;/span&gt;
&lt;br /&gt;
Death comes in all 
&lt;span style=&quot;font-size: large&quot;&gt;
	font sizes
&lt;/span&gt;


2. Select all and apply execCommand(&quot;fontsize&quot;, false, 7)


Actual results:
&lt;span style=&quot;font-size: -webkit-xxx-large;&quot;&gt;
	A man with 2 
&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier&quot;&gt;
	&lt;span style=&quot;font-size: -webkit-xxx-large;&quot;&gt;
		font faces
	&lt;/span&gt;
&lt;/span&gt;
&lt;span style=&quot;font-size: -webkit-xxx-large;&quot;&gt;
	&lt;br&gt;
	Death comes in all font sizes
&lt;/span&gt;




Expected results:
&lt;span style=&quot;font-size: -webkit-xxx-large;&quot;&gt;
	A man with 2 
	&lt;span style=&quot;font-family: Courier New, Courier&quot;&gt;
		font faces
	&lt;/span&gt;
	&lt;br&gt;
	Death comes in all font sizes
&lt;/span&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256286</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-07-26 15:33:40 -0700</bug_when>
    <thetext>This bug seems to be related to https://bugs.webkit.org/show_bug.cgi?id=30836.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272477</commentid>
    <comment_count>2</comment_count>
      <attachid>66135</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-31 16:26:31 -0700</bug_when>
    <thetext>Created attachment 66135
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272481</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-08-31 16:28:48 -0700</bug_when>
    <thetext>Work in progress requires rebaselines for 
editing/execCommand/toggle-compound-styles.html
editing/inserting/insert-3659587-fix.html
editing/style/style-3690704-fix.html
as well even though they are not included in the patch.

Fixing this bug ended up revealing a lot of bugs around remove/apply inline styles.  I&apos;ll file a bug and do some cleanup on applyInlineStyleToRange to reduce the size of patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277451</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-10 14:58:43 -0700</bug_when>
    <thetext>Very interesting.  This bug has magically been fixed!  Will add a test.  Probably http://trac.webkit.org/changeset/67170 fixed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277470</commentid>
    <comment_count>5</comment_count>
      <attachid>67246</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-10 15:13:21 -0700</bug_when>
    <thetext>Created attachment 67246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277472</commentid>
    <comment_count>6</comment_count>
      <attachid>67246</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-10 15:16:14 -0700</bug_when>
    <thetext>Comment on attachment 67246
Patch

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

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277480</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-09-10 15:26:56 -0700</bug_when>
    <thetext>Committed r67243: &lt;http://trac.webkit.org/changeset/67243&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66135</attachid>
            <date>2010-08-31 16:26:31 -0700</date>
            <delta_ts>2010-09-10 15:13:18 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-28968-20100831162630.patch</filename>
            <type>text/plain</type>
            <size>40145</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjU1MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMDgtMzEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZXhl
Y0NvbW1hbmQoImZvbnRzaXplIikgb24gY2VydGFpbiBzZWxlY3RlZCBodG1sIGdlbmVyYXRlcyB0
b28gbWFueSBTUEFOIHRhZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yODk2OAorCisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpjb250YWluc05vbkVkaXRhYmxlUmVnaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjphcHBseUlubGluZVN0eWxlVG9SYW5nZSk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6cmVtb3ZlSW5saW5lU3R5bGVG
cm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6cmVtb3Zl
SW1wbGljaXRseVN0eWxlZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNv
bW1hbmQ6OmV4dHJhY3RJbmxpbmVTdHlsZVRvUHVzaERvd24pOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbHlTdHlsZUNvbW1hbmQ6OnB1c2hEb3duQW5kUmVtb3ZlSW5saW5lU3R5bGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUlubGluZVN0eWxlRnJvbVJhbmdl
KToKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmg6CisKIDIwMTAtMDgtMzEg
IEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
dmUgSHlhdHQuCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAJKHJldmlz
aW9uIDY2NDMwKQorKysgV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtOTk0LDE0ICs5OTQsMTQgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6
YXBwbHlJbmxpbmVTdHlsZQogICAgICAgICAgICAgZW1iZWRkaW5nU3R5bGUtPnNldFByb3BlcnR5
KENTU1Byb3BlcnR5VW5pY29kZUJpZGksIENTU1ZhbHVlRW1iZWQpOwogICAgICAgICAgICAgZW1i
ZWRkaW5nU3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5RGlyZWN0aW9uLCBkaXJlY3Rpb24p
OwogICAgICAgICAgICAgaWYgKGNvbXBhcmVQb3NpdGlvbnMoZW1iZWRkaW5nUmVtb3ZlU3RhcnQs
IGVtYmVkZGluZ1JlbW92ZUVuZCkgPD0gMCkKLSAgICAgICAgICAgICAgICByZW1vdmVJbmxpbmVT
dHlsZShlbWJlZGRpbmdTdHlsZSwgZW1iZWRkaW5nUmVtb3ZlU3RhcnQsIGVtYmVkZGluZ1JlbW92
ZUVuZCk7CisgICAgICAgICAgICAgICAgcHVzaERvd25BbmRSZW1vdmVJbmxpbmVTdHlsZShlbWJl
ZGRpbmdTdHlsZSwgZW1iZWRkaW5nUmVtb3ZlU3RhcnQsIGVtYmVkZGluZ1JlbW92ZUVuZCk7CiAg
ICAgICAgICAgICBzdHlsZVdpdGhvdXRFbWJlZGRpbmcgPSBzdHlsZS0+Y29weSgpOwogICAgICAg
ICAgICAgc3R5bGVXaXRob3V0RW1iZWRkaW5nLT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eVVu
aWNvZGVCaWRpKTsKICAgICAgICAgICAgIHN0eWxlV2l0aG91dEVtYmVkZGluZy0+cmVtb3ZlUHJv
cGVydHkoQ1NTUHJvcGVydHlEaXJlY3Rpb24pOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmVt
b3ZlSW5saW5lU3R5bGUoc3R5bGVXaXRob3V0RW1iZWRkaW5nID8gc3R5bGVXaXRob3V0RW1iZWRk
aW5nLmdldCgpIDogc3R5bGUsIHJlbW92ZVN0YXJ0LCBlbmQpOworICAgIHB1c2hEb3duQW5kUmVt
b3ZlSW5saW5lU3R5bGUoc3R5bGVXaXRob3V0RW1iZWRkaW5nID8gc3R5bGVXaXRob3V0RW1iZWRk
aW5nLmdldCgpIDogc3R5bGUsIHJlbW92ZVN0YXJ0LCBlbmQpOwogICAgIHN0YXJ0ID0gc3RhcnRQ
b3NpdGlvbigpOwogICAgIGVuZCA9IGVuZFBvc2l0aW9uKCk7CiAKQEAgLTEwNTcsNzggKzEwNTcs
MTA0IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5lU3R5bGUKICAgICAgICAg
Y2xlYW51cFVuc3R5bGVkQXBwbGVTdHlsZVNwYW5zKGVuZER1bW15U3BhbkFuY2VzdG9yKTsKIH0K
IAorc3RhdGljIGJvb2wgY29udGFpbnNOb25FZGl0YWJsZVJlZ2lvbihOb2RlKiBub2RlKQorewor
ICAgIGlmICghbm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICBOb2RlKiBzaWJsaW5nID0gbm9kZS0+dHJhdmVyc2VOZXh0U2libGluZygpOworICAg
IGZvciAoTm9kZSogZGVzY2VuZGVudCA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsgZGVzY2VuZGVudCAm
JiBkZXNjZW5kZW50ICE9IHNpYmxpbmc7IGRlc2NlbmRlbnQgPSBkZXNjZW5kZW50LT50cmF2ZXJz
ZU5leHROb2RlKCkpIHsKKyAgICAgICAgaWYgKCFkZXNjZW5kZW50LT5pc0NvbnRlbnRFZGl0YWJs
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsK
K30KKwogdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHlsZVRvUmFuZ2UoQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBjb25zdCBQb3NpdGlvbiYgc3RhcnQsIGNv
bnN0IFBvc2l0aW9uJiByYW5nZUVuZCkKIHsKICAgICBOb2RlKiBub2RlID0gc3RhcnQubm9kZSgp
OwogICAgIFBvc2l0aW9uIGVuZCA9IHJhbmdlRW5kOwogCi0gICAgYm9vbCByYW5nZUlzRW1wdHkg
PSBmYWxzZTsKLQogICAgIGlmIChzdGFydC5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpID49IGNh
cmV0TWF4T2Zmc2V0KHN0YXJ0Lm5vZGUoKSkpIHsKICAgICAgICAgbm9kZSA9IG5vZGUtPnRyYXZl
cnNlTmV4dE5vZGUoKTsKICAgICAgICAgUG9zaXRpb24gbmV3U3RhcnQgPSBQb3NpdGlvbihub2Rl
LCAwKTsKICAgICAgICAgaWYgKCFub2RlIHx8IGNvbXBhcmVQb3NpdGlvbnMoZW5kLCBuZXdTdGFy
dCkgPCAwKQotICAgICAgICAgICAgcmFuZ2VJc0VtcHR5ID0gdHJ1ZTsKKyAgICAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpZiAoIXJhbmdlSXNFbXB0eSkgewotICAgICAgICAvLyBwYXN0
RW5kTm9kZSBpcyB0aGUgbm9kZSBhZnRlciB0aGUgbGFzdCBmdWxseSBzZWxlY3RlZCBub2RlLgot
ICAgICAgICBOb2RlKiBwYXN0RW5kTm9kZSA9IGVuZC5ub2RlKCk7Ci0gICAgICAgIGlmIChlbmQu
ZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSA+PSBjYXJldE1heE9mZnNldChlbmQubm9kZSgpKSkK
LSAgICAgICAgICAgIHBhc3RFbmROb2RlID0gZW5kLm5vZGUoKS0+dHJhdmVyc2VOZXh0U2libGlu
ZygpOwotICAgICAgICAvLyBGSVhNRTogQ2FsbGVycyBzaG91bGQgcGVyZm9ybSB0aGlzIG9wZXJh
dGlvbiBvbiBhIFJhbmdlIHRoYXQgaW5jbHVkZXMgdGhlIGJyCi0gICAgICAgIC8vIGlmIHRoZXkg
d2FudCBzdHlsZSBhcHBsaWVkIHRvIHRoZSBlbXB0eSBsaW5lLgotICAgICAgICBpZiAoc3RhcnQg
PT0gZW5kICYmIHN0YXJ0Lm5vZGUoKS0+aGFzVGFnTmFtZShiclRhZykpCi0gICAgICAgICAgICBw
YXN0RW5kTm9kZSA9IHN0YXJ0Lm5vZGUoKS0+dHJhdmVyc2VOZXh0Tm9kZSgpOwotICAgICAgICAv
LyBBZGQgdGhlIHN0eWxlIHRvIHNlbGVjdGVkIGlubGluZSBydW5zLgotICAgICAgICBmb3IgKE5v
ZGUqIG5leHQ7IG5vZGUgJiYgbm9kZSAhPSBwYXN0RW5kTm9kZTsgbm9kZSA9IG5leHQpIHsKLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgbmV4dCA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoKTsK
LSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCFub2RlLT5yZW5kZXJlcigpIHx8ICFub2Rl
LT5pc0NvbnRlbnRFZGl0YWJsZSgpKQorICAgIC8vIElmIHN0YXJ0IGlzIGEgZGVlcCBlcXVpdmFs
ZW50LCB0aGVuIHRyYXZlcnNlIHRoZSB0cmVlIHVwd2FyZHMgdG8gaW5jbHVkZSB2aXNpYmx5IHNl
bGVjdGVkIHdyYXBwaW5nIG5vZGVzCisgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpj
cmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgc3RhcnQsIHJhbmdlRW5kKTsKKyAgICBFbGVtZW50KiBl
ZGl0YWJsZVJvb3QgPSBub2RlLT5yb290RWRpdGFibGVFbGVtZW50KCk7CisgICAgd2hpbGUgKGVk
aXRhYmxlUm9vdCAmJiBub2RlLT5wYXJlbnROb2RlKCkgIT0gZWRpdGFibGVSb290ICYmIGlzTm9k
ZVZpc2libHlDb250YWluZWRXaXRoaW4obm9kZS0+cGFyZW50Tm9kZSgpLCByYW5nZS5nZXQoKSkp
CisgICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7CisKKyAgICAvLyBwYXN0RW5kTm9k
ZSBpcyB0aGUgbm9kZSBhZnRlciB0aGUgbGFzdCBmdWxseSBzZWxlY3RlZCBub2RlLgorICAgIE5v
ZGUqIHBhc3RFbmROb2RlID0gZW5kLm5vZGUoKTsKKyAgICBpZiAoZW5kLmRlcHJlY2F0ZWRFZGl0
aW5nT2Zmc2V0KCkgPj0gY2FyZXRNYXhPZmZzZXQoZW5kLm5vZGUoKSkpCisgICAgICAgIHBhc3RF
bmROb2RlID0gZW5kLm5vZGUoKS0+dHJhdmVyc2VOZXh0U2libGluZygpOworICAgIC8vIEZJWE1F
OiBDYWxsZXJzIHNob3VsZCBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIG9uIGEgUmFuZ2UgdGhhdCBp
bmNsdWRlcyB0aGUgYnIKKyAgICAvLyBpZiB0aGV5IHdhbnQgc3R5bGUgYXBwbGllZCB0byB0aGUg
ZW1wdHkgbGluZS4KKyAgICBpZiAoc3RhcnQgPT0gZW5kICYmIHN0YXJ0Lm5vZGUoKS0+aGFzVGFn
TmFtZShiclRhZykpCisgICAgICAgIHBhc3RFbmROb2RlID0gc3RhcnQubm9kZSgpLT50cmF2ZXJz
ZU5leHROb2RlKCk7CisKKyAgICAvLyBBZGQgdGhlIHN0eWxlIHRvIHNlbGVjdGVkIGlubGluZSBy
dW5zLgorICAgIGZvciAoTm9kZSogbmV4dDsgbm9kZSAmJiBub2RlICE9IHBhc3RFbmROb2RlOyBu
b2RlID0gbmV4dCkgeworICAgICAgICBuZXh0ID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSgpOwor
CisgICAgICAgIGlmICghbm9kZS0+cmVuZGVyZXIoKSB8fCAhbm9kZS0+aXNDb250ZW50RWRpdGFi
bGUoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoIW5vZGUtPmlzQ29udGVu
dFJpY2hseUVkaXRhYmxlKCkgJiYgbm9kZS0+aXNIVE1MRWxlbWVudCgpKSB7CisgICAgICAgICAg
ICAvLyBUaGlzIGlzIGEgcGxhaW50ZXh0LW9ubHkgcmVnaW9uLiBPbmx5IHByb2NlZWQgaWYgaXQn
cyBmdWxseSBzZWxlY3RlZC4KKyAgICAgICAgICAgIC8vIHBhc3RFbmROb2RlIGlzIHRoZSBub2Rl
IGFmdGVyIHRoZSBsYXN0IGZ1bGx5IHNlbGVjdGVkIG5vZGUsIHNvIGlmIGl0J3MgaW5zaWRlIG5v
ZGUgdGhlbgorICAgICAgICAgICAgLy8gbm9kZSBpc24ndCBmdWxseSBzZWxlY3RlZC4KKyAgICAg
ICAgICAgIGlmIChwYXN0RW5kTm9kZSAmJiBwYXN0RW5kTm9kZS0+aXNEZXNjZW5kYW50T2Yobm9k
ZSkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAvLyBBZGQgdG8gdGhpcyBl
bGVtZW50J3MgaW5saW5lIHN0eWxlIGFuZCBza2lwIG92ZXIgaXRzIGNvbnRlbnRzLgorICAgICAg
ICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KG5v
ZGUpOworICAgICAgICAgICAgUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBpbmxp
bmVTdHlsZSA9IGVsZW1lbnQtPmdldElubGluZVN0eWxlRGVjbCgpLT5jb3B5KCk7CisgICAgICAg
ICAgICBpbmxpbmVTdHlsZS0+bWVyZ2Uoc3R5bGUpOworICAgICAgICAgICAgc2V0Tm9kZUF0dHJp
YnV0ZShlbGVtZW50LCBzdHlsZUF0dHIsIGlubGluZVN0eWxlLT5jc3NUZXh0KCkpOworICAgICAg
ICAgICAgbmV4dCA9IG5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmcoKTsKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICB9CisgICAgICAgIGlmIChpc0Jsb2NrKG5vZGUpKQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIGlmIChub2RlLT5jaGlsZE5vZGVDb3VudCgpKSB7CisgICAg
ICAgICAgICBpZiAobm9kZS0+Y29udGFpbnMocGFzdEVuZE5vZGUpIHx8IGNvbnRhaW5zTm9uRWRp
dGFibGVSZWdpb24obm9kZSkgfHwgIW5vZGUtPnBhcmVudE5vZGUoKS0+aXNDb250ZW50RWRpdGFi
bGUoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgaWYgKCFub2RlLT5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpICYmIG5vZGUtPmlzSFRNTEVs
ZW1lbnQoKSkgewotICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBwbGFpbnRleHQtb25seSBy
ZWdpb24uIE9ubHkgcHJvY2VlZCBpZiBpdCdzIGZ1bGx5IHNlbGVjdGVkLgotICAgICAgICAgICAg
ICAgIC8vIHBhc3RFbmROb2RlIGlzIHRoZSBub2RlIGFmdGVyIHRoZSBsYXN0IGZ1bGx5IHNlbGVj
dGVkIG5vZGUsIHNvIGlmIGl0J3MgaW5zaWRlIG5vZGUgdGhlbgotICAgICAgICAgICAgICAgIC8v
IG5vZGUgaXNuJ3QgZnVsbHkgc2VsZWN0ZWQuCi0gICAgICAgICAgICAgICAgaWYgKHBhc3RFbmRO
b2RlICYmIHBhc3RFbmROb2RlLT5pc0Rlc2NlbmRhbnRPZihub2RlKSkKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgLy8gQWRkIHRvIHRoaXMgZWxlbWVudCdzIGlu
bGluZSBzdHlsZSBhbmQgc2tpcCBvdmVyIGl0cyBjb250ZW50cy4KLSAgICAgICAgICAgICAgICBI
VE1MRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4obm9kZSk7Ci0g
ICAgICAgICAgICAgICAgUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBpbmxpbmVT
dHlsZSA9IGVsZW1lbnQtPmdldElubGluZVN0eWxlRGVjbCgpLT5jb3B5KCk7Ci0gICAgICAgICAg
ICAgICAgaW5saW5lU3R5bGUtPm1lcmdlKHN0eWxlKTsKLSAgICAgICAgICAgICAgICBzZXROb2Rl
QXR0cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0ciwgaW5saW5lU3R5bGUtPmNzc1RleHQoKSk7Cisg
ICAgICAgICAgICBpZiAoZWRpdGluZ0lnbm9yZXNDb250ZW50KG5vZGUpKSB7CiAgICAgICAgICAg
ICAgICAgbmV4dCA9IG5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmcoKTsKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgICAgICBpZiAoaXNC
bG9jayhub2RlKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZE5vZGVDb3VudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGVkaXRpbmdJZ25vcmVzQ29udGVudChub2RlKSkgewotICAgICAgICAgICAgICAgICAg
ICBuZXh0ID0gbm9kZS0+dHJhdmVyc2VOZXh0U2libGluZygpOwotICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIE5vZGUqIHJ1blN0YXJ0
ID0gbm9kZTsKLSAgICAgICAgICAgIC8vIEZpbmQgdGhlIGVuZCBvZiB0aGUgcnVuLgotICAgICAg
ICAgICAgTm9kZSogc2libGluZyA9IG5vZGUtPm5leHRTaWJsaW5nKCk7Ci0gICAgICAgICAgICBT
dHlsZUNoYW5nZSBzdGFydENoYW5nZShzdHlsZSwgUG9zaXRpb24obm9kZSwgMCkpOwotICAgICAg
ICAgICAgd2hpbGUgKHNpYmxpbmcgJiYgc2libGluZyAhPSBwYXN0RW5kTm9kZSAmJiAhc2libGlu
Zy0+Y29udGFpbnMocGFzdEVuZE5vZGUpCi0gICAgICAgICAgICAgICAgICAgJiYgKCFpc0Jsb2Nr
KHNpYmxpbmcpIHx8IHNpYmxpbmctPmhhc1RhZ05hbWUoYnJUYWcpKQotICAgICAgICAgICAgICAg
ICAgICYmIFN0eWxlQ2hhbmdlKHN0eWxlLCBQb3NpdGlvbihzaWJsaW5nLCAwKSkgPT0gc3RhcnRD
aGFuZ2UpIHsKLSAgICAgICAgICAgICAgICBub2RlID0gc2libGluZzsKLSAgICAgICAgICAgICAg
ICBzaWJsaW5nID0gbm9kZS0+bmV4dFNpYmxpbmcoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIC8vIFJlY29tcHV0ZSBuZXh0LCBzaW5jZSBub2RlIGhhcyBjaGFuZ2VkLgotICAgICAgICAg
ICAgbmV4dCA9IG5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmcoKTsKLSAgICAgICAgICAgIC8vIEFw
cGx5IHRoZSBzdHlsZSB0byB0aGUgcnVuLgotICAgICAgICAgICAgYWRkSW5saW5lU3R5bGVJZk5l
ZWRlZChzdHlsZSwgcnVuU3RhcnQsIG5vZGUsIG1fcmVtb3ZlT25seSA/IERvTm90QWRkU3R5bGVk
RWxlbWVudCA6IEFkZFN0eWxlZEVsZW1lbnQpOwogICAgICAgICB9CisKKyAgICAgICAgTm9kZSog
cnVuU3RhcnQgPSBub2RlOworICAgICAgICAvLyBGaW5kIHRoZSBlbmQgb2YgdGhlIHJ1bi4KKyAg
ICAgICAgTm9kZSogc2libGluZyA9IG5vZGUtPm5leHRTaWJsaW5nKCk7CisgICAgICAgIFN0eWxl
Q2hhbmdlIHN0YXJ0Q2hhbmdlKHN0eWxlLCBQb3NpdGlvbihub2RlLCAwKSk7CisgICAgICAgIHdo
aWxlIChzaWJsaW5nICYmIHNpYmxpbmcgIT0gcGFzdEVuZE5vZGUgJiYgIXNpYmxpbmctPmNvbnRh
aW5zKHBhc3RFbmROb2RlKQorICAgICAgICAgICAgICAgJiYgKCFpc0Jsb2NrKHNpYmxpbmcpIHx8
IHNpYmxpbmctPmhhc1RhZ05hbWUoYnJUYWcpKQorICAgICAgICAgICAgICAgJiYgIWNvbnRhaW5z
Tm9uRWRpdGFibGVSZWdpb24oc2libGluZykKKyAgICAgICAgICAgICAgICYmIG5vZGUtPnBhcmVu
dE5vZGUoKS0+aXNDb250ZW50RWRpdGFibGUoKSkgeworICAgICAgICAgICAgbm9kZSA9IHNpYmxp
bmc7CisgICAgICAgICAgICBzaWJsaW5nID0gbm9kZS0+bmV4dFNpYmxpbmcoKTsKKyAgICAgICAg
fQorICAgICAgICAvLyBSZWNvbXB1dGUgbmV4dCwgc2luY2Ugbm9kZSBoYXMgY2hhbmdlZC4KKyAg
ICAgICAgbmV4dCA9IG5vZGUtPnRyYXZlcnNlTmV4dFNpYmxpbmcoKTsKKworICAgICAgICBQb3Np
dGlvbiBzdGFydE9mUnVuID0gZmlyc3RQb3NpdGlvbkluTm9kZShydW5TdGFydCk7CisgICAgICAg
IE5vZGUqIGxhc3REZXNjZW5kYW50SW5FbmQgPSBub2RlOworICAgICAgICB3aGlsZSAobGFzdERl
c2NlbmRhbnRJbkVuZC0+bGFzdENoaWxkKCkpCisgICAgICAgICAgICBsYXN0RGVzY2VuZGFudElu
RW5kID0gbGFzdERlc2NlbmRhbnRJbkVuZC0+bGFzdENoaWxkKCk7CisgICAgICAgIFBvc2l0aW9u
IGVuZE9mUnVuID0gbGFzdFBvc2l0aW9uSW5Ob2RlKGxhc3REZXNjZW5kYW50SW5FbmQpOworICAg
ICAgICByZW1vdmVJbmxpbmVTdHlsZUZyb21SYW5nZShzdHlsZSwgc3RhcnRPZlJ1biwgZW5kT2ZS
dW4sIFJlbW92ZUFsd2F5cyk7CisgICAgICAgIC8vIEFwcGx5IHRoZSBzdHlsZSB0byB0aGUgcnVu
LgorCisgICAgICAgIE5vZGUqIGVuZE9mUnVuTm9kZSA9IGVuZE9mUnVuLm5vZGUoKTsKKyAgICAg
ICAgd2hpbGUgKGVuZE9mUnVuTm9kZSAmJiBlbmRPZlJ1bk5vZGUtPnBhcmVudE5vZGUoKSAhPSBz
dGFydE9mUnVuLm5vZGUoKS0+cGFyZW50Tm9kZSgpKQorICAgICAgICAgICAgZW5kT2ZSdW5Ob2Rl
ID0gZW5kT2ZSdW5Ob2RlLT5wYXJlbnROb2RlKCk7CisgICAgICAgIEFTU0VSVChlbmRPZlJ1bk5v
ZGUpOworICAgICAgICBhZGRJbmxpbmVTdHlsZUlmTmVlZGVkKHN0eWxlLCBzdGFydE9mUnVuLm5v
ZGUoKSwgZW5kT2ZSdW5Ob2RlLCBtX3JlbW92ZU9ubHkgPyBEb05vdEFkZFN0eWxlZEVsZW1lbnQg
OiBBZGRTdHlsZWRFbGVtZW50KTsKICAgICB9CiB9CiAKQEAgLTExMzgsNyArMTE2NCw3IEBAIGJv
b2wgQXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUlubGluZVN0eWwKICAgICBBU1NFUlQoZWxlbWVu
dCk7CiAKICAgICBpZiAobV9zdHlsZWRJbmxpbmVFbGVtZW50ICYmIGVsZW1lbnQtPmhhc1RhZ05h
bWUobV9zdHlsZWRJbmxpbmVFbGVtZW50LT50YWdRTmFtZSgpKSkgewotICAgICAgICBpZiAobW9k
ZSA9PSBSZW1vdmVBdHRyaWJ1dGVzQW5kRWxlbWVudHMpCisgICAgICAgIGlmIChtb2RlICE9IFJl
bW92ZU5vbmUpCiAgICAgICAgICAgICByZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKGVsZW1l
bnQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0xMjEyLDEwICsxMjM4LDEyIEBA
IGJvb2wgQXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUltcGxpY2l0bHkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1hcFZhbHVlID0gQ1NT
UHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIoZXF1aXZhbGVudC5wcmltaXRpdmVJZCk7
CiAKLSAgICAgICAgaWYgKGVxdWl2YWxlbnQuaXNWYWx1ZUxpc3QgJiYgc3R5bGVWYWx1ZS0+aXNW
YWx1ZUxpc3QoKSAmJiBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPihzdHlsZVZhbHVlLmdldCgp
KS0+aGFzVmFsdWUobWFwVmFsdWUuZ2V0KCkpKQotICAgICAgICAgICAgY29udGludWU7IC8vIElm
IENTUyB2YWx1ZSBhc3N1bWVzIENTU1ZhbHVlTGlzdCwgdGhlbiBvbmx5IHNraXAgaWYgdGhlIHZh
bHVlIHdhcyBwcmVzZW50IGluIHN0eWxlIHRvIGFwcGx5LgotICAgICAgICBlbHNlIGlmIChzdHls
ZVZhbHVlLT5jc3NUZXh0KCkgPT0gbWFwVmFsdWUtPmNzc1RleHQoKSkKLSAgICAgICAgICAgIGNv
bnRpbnVlOyAvLyBJZiBDU1MgdmFsdWUgaXMgcHJpbWl0aXZlLCB0aGVuIHNraXAgaWYgdGhleSBh
cmUgZXF1YWwuCisgICAgICAgIGlmIChtb2RlICE9IFJlbW92ZUFsd2F5cykgeworICAgICAgICAg
ICAgaWYgKGVxdWl2YWxlbnQuaXNWYWx1ZUxpc3QgJiYgc3R5bGVWYWx1ZS0+aXNWYWx1ZUxpc3Qo
KSAmJiBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPihzdHlsZVZhbHVlLmdldCgpKS0+aGFzVmFs
dWUobWFwVmFsdWUuZ2V0KCkpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBJZiBDU1Mg
dmFsdWUgYXNzdW1lcyBDU1NWYWx1ZUxpc3QsIHRoZW4gb25seSBza2lwIGlmIHRoZSB2YWx1ZSB3
YXMgcHJlc2VudCBpbiBzdHlsZSB0byBhcHBseS4KKyAgICAgICAgICAgIGVsc2UgaWYgKHN0eWxl
VmFsdWUtPmNzc1RleHQoKSA9PSBtYXBWYWx1ZS0+Y3NzVGV4dCgpKQorICAgICAgICAgICAgICAg
IGNvbnRpbnVlOyAvLyBJZiBDU1MgdmFsdWUgaXMgcHJpbWl0aXZlLCB0aGVuIHNraXAgaWYgdGhl
eSBhcmUgZXF1YWwuCisgICAgICAgIH0KIAogICAgICAgICBpZiAoZXh0cmFjdGVkU3R5bGUpIHsK
ICAgICAgICAgICAgIGlmIChlcXVpdmFsZW50LnByaW1pdGl2ZUlkID09IENTU1ZhbHVlSW52YWxp
ZCkKQEAgLTEzMzgsNyArMTM2Niw3IEBAIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24+IEEKIAogICAgIGlmICghc3R5bGUpIHsKICAgICAgICAgc3R5bGUgPSBDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbjo6Y3JlYXRlKCk7Ci0gICAgICAgIHJlbW92ZUltcGxpY2l0bHlTdHls
ZWRFbGVtZW50KHN0eWxlVG9BcHBseSwgZWxlbWVudCwgUmVtb3ZlQXR0cmlidXRlc0FuZEVsZW1l
bnRzLCBzdHlsZS5nZXQoKSk7CisgICAgICAgIHJlbW92ZUltcGxpY2l0bHlTdHlsZWRFbGVtZW50
KHN0eWxlVG9BcHBseSwgZWxlbWVudCwgUmVtb3ZlSWZOZWVkZWQsIHN0eWxlLmdldCgpKTsKICAg
ICAgICAgcmV0dXJuIHN0eWxlLnJlbGVhc2UoKTsKICAgICB9CiAKQEAgLTEzNjAsNyArMTM4OCw3
IEBAIFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IEEKICAgICBpZiAoaXNT
cGFuV2l0aG91dEF0dHJpYnV0ZXNPclVuc3R5bGVTdHlsZVNwYW4oZWxlbWVudCkpCiAgICAgICAg
IHJlbW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4oZWxlbWVudCk7CiAKLSAgICByZW1vdmVJbXBs
aWNpdGx5U3R5bGVkRWxlbWVudChzdHlsZVRvQXBwbHksIGVsZW1lbnQsIFJlbW92ZUF0dHJpYnV0
ZXNBbmRFbGVtZW50cywgc3R5bGUuZ2V0KCkpOworICAgIHJlbW92ZUltcGxpY2l0bHlTdHlsZWRF
bGVtZW50KHN0eWxlVG9BcHBseSwgZWxlbWVudCwgUmVtb3ZlSWZOZWVkZWQsIHN0eWxlLmdldCgp
KTsKIAogICAgIHJldHVybiBzdHlsZS5yZWxlYXNlKCk7CiB9CkBAIC0xNDc5LDcgKzE1MDcsNyBA
QCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjpwdXNoRG93bklubGluZVN0CiAgICAgfQogfQogCi12
b2lkIEFwcGx5U3R5bGVDb21tYW5kOjpyZW1vdmVJbmxpbmVTdHlsZShQYXNzUmVmUHRyPENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uPiBzdHlsZSwgY29uc3QgUG9zaXRpb24gJnN0YXJ0LCBjb25z
dCBQb3NpdGlvbiAmZW5kKQordm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6cHVzaERvd25BbmRSZW1v
dmVJbmxpbmVTdHlsZShQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBzdHls
ZSwgY29uc3QgUG9zaXRpb24gJnN0YXJ0LCBjb25zdCBQb3NpdGlvbiAmZW5kKQogewogICAgIEFT
U0VSVChzdGFydC5pc05vdE51bGwoKSk7CiAgICAgQVNTRVJUKGVuZC5pc05vdE51bGwoKSk7CkBA
IC0xNTEzLDYgKzE1NDEsMTUgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6cmVtb3ZlSW5saW5l
U3R5bAogICAgIFBvc2l0aW9uIHMgPSBzdGFydC5pc051bGwoKSB8fCBzdGFydC5pc09ycGhhbigp
ID8gcHVzaERvd25TdGFydCA6IHN0YXJ0OwogICAgIFBvc2l0aW9uIGUgPSBlbmQuaXNOdWxsKCkg
fHwgZW5kLmlzT3JwaGFuKCkgPyBwdXNoRG93bkVuZCA6IGVuZDsKIAorICAgIHJlbW92ZUlubGlu
ZVN0eWxlRnJvbVJhbmdlKHN0eWxlLCBzLCBlLCBSZW1vdmVJZk5lZWRlZCk7CisKKyAgICBBU1NF
UlQocy5ub2RlKCktPmluRG9jdW1lbnQoKSk7CisgICAgQVNTRVJUKGUubm9kZSgpLT5pbkRvY3Vt
ZW50KCkpOworICAgIHVwZGF0ZVN0YXJ0RW5kKHMsIGUpOworfQorCit2b2lkIEFwcGx5U3R5bGVD
b21tYW5kOjpyZW1vdmVJbmxpbmVTdHlsZUZyb21SYW5nZShQYXNzUmVmUHRyPENTU011dGFibGVT
dHlsZURlY2xhcmF0aW9uPiBzdHlsZSwgUG9zaXRpb24gJnN0YXJ0LCBQb3NpdGlvbiAmZW5kLCBJ
bmxpbmVTdHlsZVJlbW92YWxNb2RlIG1vZGUpCit7CiAgICAgTm9kZSogbm9kZSA9IHN0YXJ0Lm5v
ZGUoKTsKICAgICB3aGlsZSAobm9kZSkgewogICAgICAgICBOb2RlKiBuZXh0ID0gbm9kZS0+dHJh
dmVyc2VOZXh0Tm9kZSgpOwpAQCAtMTUyMCwyMCArMTU1NywyMCBAQCB2b2lkIEFwcGx5U3R5bGVD
b21tYW5kOjpyZW1vdmVJbmxpbmVTdHlsCiAgICAgICAgICAgICBIVE1MRWxlbWVudCogZWxlbSA9
IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4obm9kZSk7CiAgICAgICAgICAgICBOb2RlKiBwcmV2
ID0gZWxlbS0+dHJhdmVyc2VQcmV2aW91c05vZGVQb3N0T3JkZXIoKTsKICAgICAgICAgICAgIE5v
ZGUqIG5leHQgPSBlbGVtLT50cmF2ZXJzZU5leHROb2RlKCk7Ci0gICAgICAgICAgICByZW1vdmVJ
bmxpbmVTdHlsZUZyb21FbGVtZW50KHN0eWxlLmdldCgpLCBlbGVtKTsKKyAgICAgICAgICAgIHJl
bW92ZUlubGluZVN0eWxlRnJvbUVsZW1lbnQoc3R5bGUuZ2V0KCksIGVsZW0sIG1vZGUpOwogICAg
ICAgICAgICAgaWYgKCFlbGVtLT5pbkRvY3VtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAo
cy5ub2RlKCkgPT0gZWxlbSkgeworICAgICAgICAgICAgICAgIGlmIChzdGFydC5ub2RlKCkgPT0g
ZWxlbSkgewogICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSBlbGVtIG11c3QgaGF2ZSBiZWVu
IGZ1bGx5IHNlbGVjdGVkLCBhbmQgaXQgaXMgYXQgdGhlIHN0YXJ0CiAgICAgICAgICAgICAgICAg
ICAgIC8vIG9mIHRoZSBzZWxlY3Rpb24sIGl0IGlzIGNsZWFyIHdlIGNhbiBzZXQgdGhlIG5ldyBz
IG9mZnNldCB0byAwLgotICAgICAgICAgICAgICAgICAgICBBU1NFUlQocy5kZXByZWNhdGVkRWRp
dGluZ09mZnNldCgpIDw9IGNhcmV0TWluT2Zmc2V0KHMubm9kZSgpKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIHMgPSBQb3NpdGlvbihuZXh0LCAwKTsKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJU
KHN0YXJ0LmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCkgPD0gY2FyZXRNaW5PZmZzZXQoc3RhcnQu
bm9kZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gUG9zaXRpb24obmV4dCwgMCk7
CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChlLm5vZGUoKSA9PSBlbGVt
KSB7CisgICAgICAgICAgICAgICAgaWYgKGVuZC5ub2RlKCkgPT0gZWxlbSkgewogICAgICAgICAg
ICAgICAgICAgICAvLyBTaW5jZSBlbGVtIG11c3QgaGF2ZSBiZWVuIGZ1bGx5IHNlbGVjdGVkLCBh
bmQgaXQgaXMgYXQgdGhlIGVuZAogICAgICAgICAgICAgICAgICAgICAvLyBvZiB0aGUgc2VsZWN0
aW9uLCBpdCBpcyBjbGVhciB3ZSBjYW4gc2V0IHRoZSBuZXcgZSBvZmZzZXQgdG8KICAgICAgICAg
ICAgICAgICAgICAgLy8gdGhlIG1heCByYW5nZSBvZmZzZXQgb2YgcHJldi4KLSAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKGUuZGVwcmVjYXRlZEVkaXRpbmdPZmZzZXQoKSA+PSBsYXN0T2Zmc2V0
Rm9yRWRpdGluZyhlLm5vZGUoKSkpOwotICAgICAgICAgICAgICAgICAgICBlID0gUG9zaXRpb24o
cHJldiwgbGFzdE9mZnNldEZvckVkaXRpbmcocHJldikpOworICAgICAgICAgICAgICAgICAgICBB
U1NFUlQoZW5kLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCkgPj0gbGFzdE9mZnNldEZvckVkaXRp
bmcoZW5kLm5vZGUoKSkpOworICAgICAgICAgICAgICAgICAgICBlbmQgPSBQb3NpdGlvbihwcmV2
LCBsYXN0T2Zmc2V0Rm9yRWRpdGluZyhwcmV2KSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQogICAgICAgICB9CkBAIC0xNTQxLDEwICsxNTc4LDYgQEAgdm9pZCBBcHBseVN0eWxl
Q29tbWFuZDo6cmVtb3ZlSW5saW5lU3R5bAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIG5v
ZGUgPSBuZXh0OwogICAgIH0KLSAgICAKLSAgICBBU1NFUlQocy5ub2RlKCktPmluRG9jdW1lbnQo
KSk7Ci0gICAgQVNTRVJUKGUubm9kZSgpLT5pbkRvY3VtZW50KCkpOwotICAgIHVwZGF0ZVN0YXJ0
RW5kKHMsIGUpOwogfQogCiBib29sIEFwcGx5U3R5bGVDb21tYW5kOjpub2RlRnVsbHlTZWxlY3Rl
ZChOb2RlICpub2RlLCBjb25zdCBQb3NpdGlvbiAmc3RhcnQsIGNvbnN0IFBvc2l0aW9uICZlbmQp
IGNvbnN0CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAkocmV2aXNpb24gNjY0
MzApCisrKyBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaAkod29ya2luZyBjb3B5
KQpAQCAtNDIsNyArNDIsNyBAQCBlbnVtIFNob3VsZEluY2x1ZGVUeXBpbmdTdHlsZSB7CiBjbGFz
cyBBcHBseVN0eWxlQ29tbWFuZCA6IHB1YmxpYyBDb21wb3NpdGVFZGl0Q29tbWFuZCB7CiBwdWJs
aWM6CiAgICAgZW51bSBFUHJvcGVydHlMZXZlbCB7IFByb3BlcnR5RGVmYXVsdCwgRm9yY2VCbG9j
a1Byb3BlcnRpZXMgfTsKLSAgICBlbnVtIElubGluZVN0eWxlUmVtb3ZhbE1vZGUgeyBSZW1vdmVB
dHRyaWJ1dGVzQW5kRWxlbWVudHMsIFJlbW92ZU5vbmUgfTsKKyAgICBlbnVtIElubGluZVN0eWxl
UmVtb3ZhbE1vZGUgeyBSZW1vdmVJZk5lZWRlZCwgUmVtb3ZlQWx3YXlzLCBSZW1vdmVOb25lIH07
CiAgICAgZW51bSBFQWRkU3R5bGVkRWxlbWVudCB7IEFkZFN0eWxlZEVsZW1lbnQsIERvTm90QWRk
U3R5bGVkRWxlbWVudCB9OwogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8QXBwbHlTdHlsZUNvbW1h
bmQ+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxl
LCBFZGl0QWN0aW9uIGFjdGlvbiA9IEVkaXRBY3Rpb25DaGFuZ2VBdHRyaWJ1dGVzLCBFUHJvcGVy
dHlMZXZlbCBsZXZlbCA9IFByb3BlcnR5RGVmYXVsdCkKQEAgLTcxLDE2ICs3MSwxNyBAQCBwcml2
YXRlOgogICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc3R5bGUuZ2V0KCk7IH0KIAogICAgIC8vIHN0eWxlLXJlbW92YWwgaGVscGVycwotICAg
IGJvb2wgcmVtb3ZlSW5saW5lU3R5bGVGcm9tRWxlbWVudChDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbiosIEhUTUxFbGVtZW50KiwgSW5saW5lU3R5bGVSZW1vdmFsTW9kZSA9IFJlbW92ZUF0dHJp
YnV0ZXNBbmRFbGVtZW50cyk7CisgICAgYm9vbCByZW1vdmVJbmxpbmVTdHlsZUZyb21FbGVtZW50
KENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwgSFRNTEVsZW1lbnQqLCBJbmxpbmVTdHlsZVJl
bW92YWxNb2RlID0gUmVtb3ZlSWZOZWVkZWQpOwogICAgIGlubGluZSBib29sIHNob3VsZFJlbW92
ZUlubGluZVN0eWxlRnJvbUVsZW1lbnQoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIHN0eWxl
LCBIVE1MRWxlbWVudCogZWxlbWVudCkge3JldHVybiByZW1vdmVJbmxpbmVTdHlsZUZyb21FbGVt
ZW50KHN0eWxlLCBlbGVtZW50LCBSZW1vdmVOb25lKTt9CiAgICAgYm9vbCByZW1vdmVJbXBsaWNp
dGx5U3R5bGVkRWxlbWVudChDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIEhUTUxFbGVtZW50
KiwgSW5saW5lU3R5bGVSZW1vdmFsTW9kZSwgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qIGV4
dHJhY3RlZFN0eWxlID0gMCk7CiAgICAgdm9pZCByZXBsYWNlV2l0aFNwYW5PclJlbW92ZUlmV2l0
aG91dEF0dHJpYnV0ZXMoSFRNTEVsZW1lbnQqJik7Ci0gICAgYm9vbCByZW1vdmVDU1NTdHlsZShD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIEhUTUxFbGVtZW50KiwgSW5saW5lU3R5bGVSZW1v
dmFsTW9kZSA9IFJlbW92ZUF0dHJpYnV0ZXNBbmRFbGVtZW50cyk7CisgICAgYm9vbCByZW1vdmVD
U1NTdHlsZShDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiosIEhUTUxFbGVtZW50KiwgSW5saW5l
U3R5bGVSZW1vdmFsTW9kZSA9IFJlbW92ZUlmTmVlZGVkKTsKICAgICBIVE1MRWxlbWVudCogaGln
aGVzdEFuY2VzdG9yV2l0aENvbmZsaWN0aW5nSW5saW5lU3R5bGUoQ1NTTXV0YWJsZVN0eWxlRGVj
bGFyYXRpb24qLCBOb2RlKik7CiAgICAgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbj4gZXh0cmFjdElubGluZVN0eWxlVG9QdXNoRG93bihDU1NNdXRhYmxlU3R5bGVEZWNsYXJh
dGlvbiosIE5vZGUqLCBib29sIGlzU3R5bGVkRWxlbWVudCk7CiAgICAgdm9pZCBhcHBseUlubGlu
ZVN0eWxlVG9QdXNoRG93bihOb2RlKiwgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24gKnN0eWxl
KTsKICAgICB2b2lkIHB1c2hEb3duSW5saW5lU3R5bGVBcm91bmROb2RlKENTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uKiwgTm9kZSopOwotICAgIHZvaWQgcmVtb3ZlSW5saW5lU3R5bGUoUGFzc1Jl
ZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4sIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwg
Y29uc3QgUG9zaXRpb24mIGVuZCk7CisgICAgdm9pZCBwdXNoRG93bkFuZFJlbW92ZUlubGluZVN0
eWxlKFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+LCBjb25zdCBQb3NpdGlv
biYgc3RhcnQsIGNvbnN0IFBvc2l0aW9uJiBlbmQpOworICAgIHZvaWQgcmVtb3ZlSW5saW5lU3R5
bGVGcm9tUmFuZ2UoUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4sIFBvc2l0
aW9uICZzdGFydCwgUG9zaXRpb24gJmVuZCwgSW5saW5lU3R5bGVSZW1vdmFsTW9kZSk7CiAgICAg
Ym9vbCBub2RlRnVsbHlTZWxlY3RlZChOb2RlKiwgY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25z
dCBQb3NpdGlvbiYgZW5kKSBjb25zdDsKICAgICBib29sIG5vZGVGdWxseVVuc2VsZWN0ZWQoTm9k
ZSosIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCkgY29uc3Q7CiAK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDY2NTUyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDgtMzEgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgZXhlY0NvbW1hbmQoImZvbnRzaXplIikgb24gY2VydGFpbiBzZWxlY3RlZCBodG1s
IGdlbmVyYXRlcyB0b28gbWFueSBTUEFOIHRhZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODk2OAorCisgICAgICAgICogZWRpdGluZy9leGVjQ29t
bWFuZC9jcmVhdGVMaW5rLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL2V4ZWNDb21t
YW5kL2VtcHR5LXNwYW4tcmVtb3ZhbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9l
eGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMvZW1wdHktc3Bhbi1yZW1vdmFsLmpzOgorICAgICAgICAq
IGVkaXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL3RvZ2dsZS1saW5rLmpzOgorICAgICAg
ICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL3RvZ2dsZS1zdHlsZS0yLmpzOgor
ICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL3RvZ2dsZS1zdHlsZS0z
LmpzOgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLWxpbmstZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLXN0eWxlLTItZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvdG9nZ2xlLXN0eWxlLTMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvZXhlY0NvbW1hbmQvdW5saW5rLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL3N0eWxlL21ha2UtdGV4dC13cml0aW5nLWRpcmVjdGlv
bi1pbmxpbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRpbmcvc3R5bGUvc2NyaXB0LXRl
c3RzL21ha2UtdGV4dC13cml0aW5nLWRpcmVjdGlvbi1pbmxpbmUuanM6CisKIDIwMTAtMDgtMzEg
IEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
dmUgSHlhdHQuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2NyZWF0ZUxp
bmstZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvY3JlYXRlTGluay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY2NDMwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9jcmVhdGVMaW5rLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMjMsMTAgKzIzLDEwIEBAIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRC
ZWdpbkVkaXRpbmcKIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb246
V2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbk5vdGlmaWNhdGlvbgogRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbjpXZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uTm90aWZp
Y2F0aW9uCiBFRElUSU5HIERFTEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb25Ob3RpZmljYXRpb24KLUVESVRJTkcgREVMRUdBVEU6IHNob3Vs
ZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6KG51bGwpIHRvRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9m
ICN0ZXh0ID4gQSA+IFNQQU4gPiBESVYgPiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1l
bnQgdG8gMTIxIG9mICN0ZXh0ID4gQSA+IERJViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNk
b2N1bWVudCBhZmZpbml0eTpOU1NlbGVjdGlvbkFmZmluaXR5RG93bnN0cmVhbSBzdGlsbFNlbGVj
dGluZzpGQUxTRQorRURJVElORyBERUxFR0FURTogc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5n
ZToobnVsbCkgdG9ET01SYW5nZTpyYW5nZSBmcm9tIDAgb2YgI3RleHQgPiBTUEFOID4gQSA+IERJ
ViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMjEgb2YgI3RleHQgPiBB
ID4gRElWID4gTEkgPiBPTCA+IEJPRFkgPiBIVE1MID4gI2RvY3VtZW50IGFmZmluaXR5Ok5TU2Vs
ZWN0aW9uQWZmaW5pdHlEb3duc3RyZWFtIHN0aWxsU2VsZWN0aW5nOkZBTFNFCiBFRElUSU5HIERF
TEVHQVRFOiB3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uOldlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rp
b25Ob3RpZmljYXRpb24KIEVESVRJTkcgREVMRUdBVEU6IHdlYlZpZXdEaWRDaGFuZ2U6V2ViVmll
d0RpZENoYW5nZU5vdGlmaWNhdGlvbgotRURJVElORyBERUxFR0FURTogc2hvdWxkRW5kRWRpdGlu
Z0luRE9NUmFuZ2U6cmFuZ2UgZnJvbSAwIG9mIERJViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+
ICNkb2N1bWVudCB0byA0IG9mIERJViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVu
dAorRURJVElORyBERUxFR0FURTogc2hvdWxkRW5kRWRpdGluZ0luRE9NUmFuZ2U6cmFuZ2UgZnJv
bSAwIG9mIERJViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAzIG9mIERJ
ViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudAogRURJVElORyBERUxFR0FURTog
d2ViVmlld0RpZEVuZEVkaXRpbmc6V2ViVmlld0RpZEVuZEVkaXRpbmdOb3RpZmljYXRpb24KIEVE
SVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE9NUmFuZ2U6cmFuZ2UgZnJvbSAw
IG9mIERJViA+IExJID4gT0wgPiBCT0RZID4gSFRNTCA+ICNkb2N1bWVudCB0byAxMyBvZiBESVYg
PiBMSSA+IE9MID4gQk9EWSA+IEhUTUwgPiAjZG9jdW1lbnQKIEVESVRJTkcgREVMRUdBVEU6IHdl
YlZpZXdEaWRCZWdpbkVkaXRpbmc6V2ViVmlld0RpZEJlZ2luRWRpdGluZ05vdGlmaWNhdGlvbgpJ
bmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9lbXB0eS1zcGFuLXJlbW92YWwt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1h
bmQvZW1wdHktc3Bhbi1yZW1vdmFsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjY0MzApCisrKyBM
YXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL2VtcHR5LXNwYW4tcmVtb3ZhbC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBAIFBBU1Mgb25lIGJvbGQgY29tbWFu
ZCBjb252ZXJ0ZWQgPHNwYW4+PHMKIFBBU1Mgb25lIGJvbGQgY29tbWFuZCBjb252ZXJ0ZWQgPHNw
YW4gc3R5bGU9J2ZvbnQtd2VpZ2h0OiBib2xkJz48c3Bhbj50ZXN0PC9zcGFuPjwvc3Bhbj4gdG8g
dGVzdAogUEFTUyBvbmUgYm9sZCBjb21tYW5kIGNvbnZlcnRlZCA8c3BhbiBzdHlsZT0nZm9udC13
ZWlnaHQ6IGJvbGQnPjxzcGFuIHN0eWxlPSdmb250LXdlaWdodDogYm9sZCc+dGVzdDwvc3Bhbj48
L3NwYW4+IHRvIHRlc3QKIFBBU1Mgb25lIGJvbGQgY29tbWFuZCBjb252ZXJ0ZWQgPHNwYW4gZm9v
PSJiYXIiIHN0eWxlPSdmb250LXdlaWdodDogYm9sZCc+dGVzdDwvc3Bhbj4gdG8gPHNwYW4gZm9v
PSJiYXIiPnRlc3Q8L3NwYW4+Ci1QQVNTIHR3byBib2xkIGNvbW1hbmRzIGNvbnZlcnRlZCA8c3Bh
bj50ZXN0PC9zcGFuPiB0byA8c3Bhbj50ZXN0PC9zcGFuPgorUEFTUyB0d28gYm9sZCBjb21tYW5k
cyBjb252ZXJ0ZWQgPHNwYW4+dGVzdDwvc3Bhbj4gdG8gdGVzdAogUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL3RvZ2dsZS1saW5rLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1saW5rLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gNjY0MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1s
aW5rLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCwxMiArNCwxMiBAQCBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIAogUEFTUyBzZWxlY3QgYWxsIG9m
ICJoZWxsbyA8Yj53b3JsZDwvYj4iIGFuZCBjcmVhdGVMaW5rIChodHRwOi8vd2Via2l0Lm9yZy8p
IHlpZWxkcyAiPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvIj5oZWxsbyA8Yj53b3JsZDwvYj48
L2E+IgotUEFTUyBzZWxlY3QgYWxsIG9mICI8dT5oZWxsbyB3b3JsZDwvdT4iIGFuZCBjcmVhdGVM
aW5rIChodHRwOi8vd2Via2l0Lm9yZy8pIHlpZWxkcyAiPHU+PGEgaHJlZj0iaHR0cDovL3dlYmtp
dC5vcmcvIj5oZWxsbyB3b3JsZDwvYT48L3U+IgorRkFJTCBzZWxlY3QgYWxsIG9mICI8dT5oZWxs
byB3b3JsZDwvdT4iIGFuZCBjcmVhdGVMaW5rIChodHRwOi8vd2Via2l0Lm9yZy8pIHlpZWxkcyAi
PGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvIj48dT5oZWxsbyB3b3JsZDwvdT48L2E+IiwgZXhw
ZWN0ZWQgIjxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+PHU+aGVsbG8gd29ybGQ8L2E+Igog
UEFTUyBzZWxlY3QgYWxsIG9mICJoZWxsbyA8YSBocmVmPSJodHRwOi8vYnVncy53ZWJraXQub3Jn
LyI+d29ybGQ8L2E+IiBhbmQgY3JlYXRlTGluayAoaHR0cDovL3dlYmtpdC5vcmcvKSB5aWVsZHMg
IjxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+aGVsbG8gd29ybGQ8L2E+IgogUEFTUyBzZWxl
Y3QgYWxsIG9mICJoZWxsbyA8YSBocmVmPSJodHRwOi8vYnVncy53ZWJraXQub3JnLyIgc3R5bGU9
ImZvbnQtd2VpZ2h0OiBib2xkIj53b3JsZDwvYT4iIGFuZCBjcmVhdGVMaW5rIChodHRwOi8vd2Vi
a2l0Lm9yZy8pIHlpZWxkcyAiPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5vcmcvIj5oZWxsbyA8Yj53
b3JsZDwvYj48L2E+IgogUEFTUyBzZWxlY3QgZmlyc3QgdHdvIHdvcmRzIG9mICJoZWxsbyA8Yj53
b3JsZDwvYj4gV2ViS2l0IiBhbmQgY3JlYXRlTGluayAoaHR0cDovL3dlYmtpdC5vcmcvKSB5aWVs
ZHMgIjxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+aGVsbG8gPGI+d29ybGQ8L2I+PC9hPiBX
ZWJLaXQiCiBQQVNTIHNlbGVjdCBmaXJzdCB0d28gd29yZHMgb2YgIjxhIGhyZWY9Imh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvIj5oZWxsbyA8Yj53b3JsZDwvYj48L2E+IFdlYktpdCIgYW5kIGNyZWF0
ZUxpbmsgKGh0dHA6Ly93ZWJraXQub3JnLykgeWllbGRzICI8YSBocmVmPSJodHRwOi8vd2Via2l0
Lm9yZy8iPmhlbGxvIDxiPndvcmxkPC9iPjwvYT4gV2ViS2l0IgotUEFTUyBzZWxlY3QgZmlyc3Qg
dHdvIHdvcmRzIG9mICI8YSBocmVmPSJodHRwOi8vdHJhYy53ZWJraXQub3JnLyIgc3R5bGU9ImZv
bnQtc3R5bGU6IGl0YWxpYzsiPmhlbGxvIHdvcmxkPC9hPiBXZWJLaXQiIGFuZCBjcmVhdGVMaW5r
IChodHRwOi8vd2Via2l0Lm9yZy8pIHlpZWxkcyAiPGk+PGEgaHJlZj0iaHR0cDovL3dlYmtpdC5v
cmcvIj5oZWxsbyB3b3JsZDwvYT48L2k+IFdlYktpdCIKK1BBU1Mgc2VsZWN0IGZpcnN0IHR3byB3
b3JkcyBvZiAiPGEgaHJlZj0iaHR0cDovL3RyYWMud2Via2l0Lm9yZy8iIHN0eWxlPSJmb250LXN0
eWxlOiBpdGFsaWM7Ij5oZWxsbyB3b3JsZDwvYT4gV2ViS2l0IiBhbmQgY3JlYXRlTGluayAoaHR0
cDovL3dlYmtpdC5vcmcvKSB5aWVsZHMgIjxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+PGk+
aGVsbG8gd29ybGQ8L2k+PC9hPiBXZWJLaXQiCiBQQVNTIHNlbGVjdCBmaXJzdCB0d28gd29yZHMg
b2YgImhlbGxvIDxhIGhyZWY9Imh0dHA6Ly90cmFjLndlYmtpdC5vcmcvIj48Yj53b3JsZDwvYj4g
V2ViS2l0PC9hPiIgYW5kIGNyZWF0ZUxpbmsgKGh0dHA6Ly93ZWJraXQub3JnLykgeWllbGRzICI8
YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy8iPmhlbGxvIDxiPndvcmxkPC9iPjwvYT48YSBocmVm
PSJodHRwOi8vdHJhYy53ZWJraXQub3JnLyI+IFdlYktpdDwvYT4iCiBQQVNTIHNlbGVjdCBmaXJz
dCB0d28gd29yZHMgb2YgImhlbGxvIDxhIGhyZWY9Imh0dHA6Ly90cmFjLndlYmtpdC5vcmcvIiBz
dHlsZT0iZm9udC1zdHlsZTogaXRhbGljOyI+PGI+d29ybGQ8L2I+IFdlYktpdDwvYT4iIGFuZCBj
cmVhdGVMaW5rIChodHRwOi8vd2Via2l0Lm9yZy8pIHlpZWxkcyAiPGEgaHJlZj0iaHR0cDovL3dl
YmtpdC5vcmcvIj5oZWxsbyA8YiBzdHlsZT0iZm9udC1zdHlsZTogaXRhbGljOyAiPndvcmxkPC9i
PjwvYT48YSBocmVmPSJodHRwOi8vdHJhYy53ZWJraXQub3JnLyI+PGk+IFdlYktpdDwvaT48L2E+
IgogUEFTUyBzZWxlY3QgbGFzdCB3b3JkIG9mICJoZWxsbyA8Yj53b3JsZDwvYj4gV2ViS2l0IiBh
bmQgY3JlYXRlTGluayAoaHR0cDovL3dlYmtpdC5vcmcvKSB5aWVsZHMgImhlbGxvIDxiPndvcmxk
PC9iPiA8YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy8iPldlYktpdDwvYT4iCkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1zdHlsZS0yLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3RvZ2dsZS1zdHls
ZS0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjY0MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5n
L2V4ZWNDb21tYW5kL3RvZ2dsZS1zdHlsZS0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtNCwxMyArNCwxMyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
CiAKIAogUEFTUyBvbmUgdW5kZXJsaW5lIGNvbW1hbmQgY29udmVydGVkIHRlc3QgdG8gPHU+dGVz
dDwvdT4KLVBBU1Mgb25lIHVuZGVybGluZSBjb21tYW5kIGNvbnZlcnRlZCA8dT48Yj48cz50ZXN0
PC9zPjwvYj48L3U+IHRvIDxiPjxzPnRlc3Q8L3M+PC9iPgorUEFTUyBvbmUgdW5kZXJsaW5lIGNv
bW1hbmQgY29udmVydGVkIDx1PjxiPjxzPnRlc3Q8L3M+PC9iPjwvdT4gdG8gPHM+PGI+dGVzdDwv
Yj48L3M+CiBQQVNTIHR3byB1bmRlcmxpbmUgY29tbWFuZHMgY29udmVydGVkIHRlc3QgdG8gdGVz
dAogUEFTUyBvbmUgc3RyaWtldGhyb3VnaCBjb21tYW5kIGNvbnZlcnRlZCB0ZXN0IHRvIDxzPnRl
c3Q8L3M+CiBQQVNTIG9uZSBzdHJpa2V0aHJvdWdoIGNvbW1hbmQgY29udmVydGVkIDx1PjxiPjxz
PnRlc3Q8L3M+PC9iPjwvdT4gdG8gPHU+PGI+dGVzdDwvYj48L3U+CiBQQVNTIHR3byBzdHJpa2V0
aHJvdWdoIGNvbW1hbmRzIGNvbnZlcnRlZCB0ZXN0IHRvIHRlc3QKIFBBU1Mgb25lIHN0cmlrZXRo
cm91Z2ggY29tbWFuZCBjb252ZXJ0ZWQgPHU+dGVzdDwvdT4gdG8gPHU+PHM+dGVzdDwvcz48L3U+
Ci1QQVNTIG9uZSB1bmRlcmxpbmUgY29tbWFuZCBjb252ZXJ0ZWQgPHM+dGVzdDwvcz4gdG8gPHM+
PHU+dGVzdDwvdT48L3M+CitQQVNTIG9uZSB1bmRlcmxpbmUgY29tbWFuZCBjb252ZXJ0ZWQgPHM+
dGVzdDwvcz4gdG8gPHU+PHM+dGVzdDwvcz48L3U+CiBGQUlMIG9uZSBzdHJpa2V0aHJvdWdoIGNv
bW1hbmQgY29udmVydGVkIDxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IG92ZXJsaW5lOyI+
dGVzdDwvc3Bhbj4gdG8gPHNwYW4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJ0ZXh0
LWRlY29yYXRpb246IG92ZXJsaW5lOyI+PHM+dGVzdDwvcz48L3NwYW4+LCBleHBlY3RlZCA8c3Bh
biBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBvdmVybGluZTsiPjxzPnRlc3Q8L3M+PC9zcGFuPgog
RkFJTCBvbmUgdW5kZXJsaW5lIGNvbW1hbmQgY29udmVydGVkIDxzcGFuIHN0eWxlPSJ0ZXh0LWRl
Y29yYXRpb246IG92ZXJsaW5lOyI+dGVzdDwvc3Bhbj4gdG8gPHNwYW4gY2xhc3M9IkFwcGxlLXN0
eWxlLXNwYW4iIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IG92ZXJsaW5lOyI+PHU+dGVzdDwvdT48
L3NwYW4+LCBleHBlY3RlZCA8c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBvdmVybGluZTsi
Pjx1PnRlc3Q8L3U+PC9zcGFuPgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtc3R5bGUtMy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC90b2dn
bGUtc3R5bGUtMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDY2NDMwKQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9leGVjQ29tbWFuZC90b2dnbGUtc3R5bGUtMy1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTMsNyArMyw3IEBAIFRlc3QgdG8gbWFrZSBzdXJlIHdlIHJlbW92ZSBzcGFuIHRh
Z3Mgd2kKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIG9uZSBib2xkIGNvbW1h
bmQgY29udmVydGVkIGhlbGxvPGIgaWQ9InRlc3QiPndvcmxkPC9iPiB0byA8Yj5oZWxsbzwvYj48
YiBpZD0idGVzdCI+d29ybGQ8L2I+CitQQVNTIG9uZSBib2xkIGNvbW1hbmQgY29udmVydGVkIGhl
bGxvPGIgaWQ9InRlc3QiPndvcmxkPC9iPiB0byA8Yj5oZWxsbzxzcGFuIGlkPSJ0ZXN0Ij53b3Js
ZDwvc3Bhbj48L2I+CiBQQVNTIG9uZSBib2xkIGNvbW1hbmQgY29udmVydGVkIGhlbGxvPGI+PGk+
d29ybGQ8L2k+PC9iPiB0byA8Yj5oZWxsbzxpPndvcmxkPC9pPjwvYj4KIFBBU1Mgb25lIGl0YWxp
YyBjb21tYW5kIGNvbnZlcnRlZCBoZWxsbyA8aT53b3JsZDwvaT4gPGI+d2Via2l0PC9iPiB0byA8
aT5oZWxsbyB3b3JsZCA8Yj53ZWJraXQ8L2I+PC9pPgogUEFTUyBvbmUgaXRhbGljIGNvbW1hbmQg
Y29udmVydGVkIGhlbGxvIDxpPndvcmxkPC9pPiB3ZWJraXQgdG8gPGk+aGVsbG8gd29ybGQgd2Vi
a2l0PC9pPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC91bmxpbmstZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQv
dW5saW5rLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNjY0MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL2V4ZWNDb21tYW5kL3VubGluay1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTY1
LDQgKzY1LDQgQEAgVGhlIGlubmVySFRNTCBvZiBlZGl0YWJsZSByZWdpb25zIGFmdGVyIAogVGhp
cyBwYXJhZ3JhcGggc2hvdWxkIHNob3VsZCBlbmQgdXAgdW5saW5rZWQuCiA8YSBocmVmPSJodHRw
Oi8vd3d3LmFwcGxlLmNvbS8iPlRoZTwvYT4gc2Vjb25kPGEgaHJlZj0iaHR0cDovL3d3dy5hcHBs
ZS5jb20vIj4gd29yZCBpbiB0aGlzIHBhcmFncmFwaCBzaG91bGQgZW5kIHVwIGJlaW5nIHVubGlu
a2VkLCBldmVyeXRoaW5nIGVsc2Ugc2hvdWxkIGJlIGEgbGluay48L2E+CiBUaGlzIHBhcmFncmFw
aCBzdGFydHMgd2l0aCA8aT48YSBocmVmPSJodHRwOi8vd3d3Lmdvb2dsZS5jb20iPmE8L2E+PC9p
PjxzcGFuIGlkPSJ0ZXN0M3N0YXJ0Ij4gbGluazwvc3Bhbj4gaW4gdGhlIG1pZGRsZS4gT25seSB0
aGUgJ2EnIGluIHRoZSBwcmV2aW91cyBzZW50ZW5jZSBzaG91bGQgYmUgbGlua2VkIGFmdGVyIHRo
ZSB0ZXN0LgotPHA+VGhpcyA8aT5lZGl0YWJsZSByZWdpb248L2k+IGNvbnRhaW5zIGxpc3RzLCB0
YWJsZXMsIHN0eWxlZCB0ZXh0LCBhbmQgaW1hZ2VzLiBFdmVyeXRoaW5nIGluIHRoaXMgcmVnaW9u
IHRoYXQgaXMgbm90IHNlbGVjdGVkIHNob3VsZCBiZSBhIGxpbmssIG5vdGhpbmcgdGhhdCBpcyBz
ZWxlY3RlZCBzaG91bGQgYmUgYSBsaW5rLjwvcD4gPHVsPiA8bGk+SXRlbSAxPC9saT4gPGxpPkl0
ZW0gMjwvbGk+IDwvdWw+IDx0YWJsZSBib3JkZXI9IjEiPjx0Ym9keT48dHI+PHRkPjE8L3RkPjx0
ZD4yPC90ZD48dGQ+PHNwYW4gaWQ9InRlc3Q0ZW5kIj48YSBocmVmPSJodHRwOi8vd3d3Lmdvb2ds
ZS5jb20vIj4zPC9hPjwvc3Bhbj48L3RkPjwvdHI+PC90Ym9keT48L3RhYmxlPiA8YSBocmVmPSJo
dHRwOi8vd3d3Lmdvb2dsZS5jb20vIj48YnI+IFRoaXMgPGI+bGluZTwvYj4gY29udGFpbnMgPGlt
ZyBzcmM9Ii4uL3Jlc291cmNlcy9hYmUucG5nIj4gYW4gaW1hZ2UuIDwvYT4KKzxwPlRoaXMgPGk+
ZWRpdGFibGUgcmVnaW9uPC9pPiBjb250YWlucyBsaXN0cywgdGFibGVzLCBzdHlsZWQgdGV4dCwg
YW5kIGltYWdlcy4gRXZlcnl0aGluZyBpbiB0aGlzIHJlZ2lvbiB0aGF0IGlzIG5vdCBzZWxlY3Rl
ZCBzaG91bGQgYmUgYSBsaW5rLCBub3RoaW5nIHRoYXQgaXMgc2VsZWN0ZWQgc2hvdWxkIGJlIGEg
bGluay48L3A+IDx1bD4gPGxpPkl0ZW0gMTwvbGk+IDxsaT5JdGVtIDI8L2xpPiA8L3VsPiA8dGFi
bGUgYm9yZGVyPSIxIj48dGJvZHk+PHRyPjx0ZD4xPC90ZD48dGQ+MjwvdGQ+PHRkPjxhIGhyZWY9
Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8iPjxzcGFuIGlkPSJ0ZXN0NGVuZCI+Mzwvc3Bhbj48L2E+
PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT4gPGEgaHJlZj0iaHR0cDovL3d3dy5nb29nbGUuY29t
LyI+PGJyPiBUaGlzIDxiPmxpbmU8L2I+IGNvbnRhaW5zIDxpbWcgc3JjPSIuLi9yZXNvdXJjZXMv
YWJlLnBuZyI+IGFuIGltYWdlLiA8L2E+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWND
b21tYW5kL3NjcmlwdC10ZXN0cy9lbXB0eS1zcGFuLXJlbW92YWwuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9zY3JpcHQtdGVzdHMvZW1wdHktc3Bhbi1y
ZW1vdmFsLmpzCShyZXZpc2lvbiA2NjQzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0Nv
bW1hbmQvc2NyaXB0LXRlc3RzL2VtcHR5LXNwYW4tcmVtb3ZhbC5qcwkod29ya2luZyBjb3B5KQpA
QCAtMzMsNyArMzMsNyBAQCB0ZXN0U2luZ2xlVG9nZ2xlKCJib2xkIiwgIjxzcGFuPjxzcGFuIHN0
CiB0ZXN0U2luZ2xlVG9nZ2xlKCJib2xkIiwgIjxzcGFuIHN0eWxlPSdmb250LXdlaWdodDogYm9s
ZCc+PHNwYW4+dGVzdDwvc3Bhbj48L3NwYW4+IiwgInRlc3QiKTsKIHRlc3RTaW5nbGVUb2dnbGUo
ImJvbGQiLCAiPHNwYW4gc3R5bGU9J2ZvbnQtd2VpZ2h0OiBib2xkJz48c3BhbiBzdHlsZT0nZm9u
dC13ZWlnaHQ6IGJvbGQnPnRlc3Q8L3NwYW4+PC9zcGFuPiIsICJ0ZXN0Iik7CiB0ZXN0U2luZ2xl
VG9nZ2xlKCJib2xkIiwgIjxzcGFuIGZvbz1cImJhclwiIHN0eWxlPSdmb250LXdlaWdodDogYm9s
ZCc+dGVzdDwvc3Bhbj4iLCAiPHNwYW4gZm9vPVwiYmFyXCI+dGVzdDwvc3Bhbj4iKTsKLXRlc3RE
b3VibGVUb2dnbGUoImJvbGQiLCAiPHNwYW4+dGVzdDwvc3Bhbj4iLCAiPHNwYW4+dGVzdDwvc3Bh
bj4iKTsKK3Rlc3REb3VibGVUb2dnbGUoImJvbGQiLCAiPHNwYW4+dGVzdDwvc3Bhbj4iLCAidGVz
dCIpOwogCiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRlc3RDb250YWluZXIpOwogCkluZGV4
OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3NjcmlwdC10ZXN0cy90b2dnbGUtbGlu
ay5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3Njcmlw
dC10ZXN0cy90b2dnbGUtbGluay5qcwkocmV2aXNpb24gNjY0MzApCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL3NjcmlwdC10ZXN0cy90b2dnbGUtbGluay5qcwkod29ya2luZyBj
b3B5KQpAQCAtMzUsMTIgKzM1LDEyIEBAIGZ1bmN0aW9uIHNlbGVjdExhc3RXb3JkKGNvbnRhaW5l
cikgewogfQogCiB0ZXN0U2luZ2xlVG9nZ2xlKCJjcmVhdGVMaW5rIiwgJ2hlbGxvIDxiPndvcmxk
PC9iPicsIHNlbGVjdEFsbCwgJzxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+aGVsbG8gPGI+
d29ybGQ8L2I+PC9hPicpOwotdGVzdFNpbmdsZVRvZ2dsZSgiY3JlYXRlTGluayIsICc8dT5oZWxs
byB3b3JsZDwvdT4nLCBzZWxlY3RBbGwsICc8dT48YSBocmVmPSJodHRwOi8vd2Via2l0Lm9yZy8i
PmhlbGxvIHdvcmxkPC9hPjwvdT4nKTsKK3Rlc3RTaW5nbGVUb2dnbGUoImNyZWF0ZUxpbmsiLCAn
PHU+aGVsbG8gd29ybGQ8L3U+Jywgc2VsZWN0QWxsLCAnPGEgaHJlZj0iaHR0cDovL3dlYmtpdC5v
cmcvIj48dT5oZWxsbyB3b3JsZDwvYT4nKTsKIHRlc3RTaW5nbGVUb2dnbGUoImNyZWF0ZUxpbmsi
LCAnaGVsbG8gPGEgaHJlZj0iaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy8iPndvcmxkPC9hPicsIHNl
bGVjdEFsbCwgJzxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+aGVsbG8gd29ybGQ8L2E+Jyk7
CiB0ZXN0U2luZ2xlVG9nZ2xlKCJjcmVhdGVMaW5rIiwgJ2hlbGxvIDxhIGhyZWY9Imh0dHA6Ly9i
dWdzLndlYmtpdC5vcmcvIiBzdHlsZT0iZm9udC13ZWlnaHQ6IGJvbGQiPndvcmxkPC9hPicsIHNl
bGVjdEFsbCwgJzxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+aGVsbG8gPGI+d29ybGQ8L2I+
PC9hPicpOwogdGVzdFNpbmdsZVRvZ2dsZSgiY3JlYXRlTGluayIsICdoZWxsbyA8Yj53b3JsZDwv
Yj4gV2ViS2l0Jywgc2VsZWN0Rmlyc3RUd29Xb3JkcywgJzxhIGhyZWY9Imh0dHA6Ly93ZWJraXQu
b3JnLyI+aGVsbG8gPGI+d29ybGQ8L2I+PC9hPiBXZWJLaXQnKTsKIHRlc3RTaW5nbGVUb2dnbGUo
ImNyZWF0ZUxpbmsiLCAnPGEgaHJlZj0iaHR0cDovL3RyYWMud2Via2l0Lm9yZy8iPmhlbGxvIDxi
PndvcmxkPC9iPjwvYT4gV2ViS2l0Jywgc2VsZWN0Rmlyc3RUd29Xb3JkcywgJzxhIGhyZWY9Imh0
dHA6Ly93ZWJraXQub3JnLyI+aGVsbG8gPGI+d29ybGQ8L2I+PC9hPiBXZWJLaXQnKTsKLXRlc3RT
aW5nbGVUb2dnbGUoImNyZWF0ZUxpbmsiLCAnPGEgaHJlZj0iaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy8iIHN0eWxlPSJmb250LXN0eWxlOiBpdGFsaWM7Ij5oZWxsbyB3b3JsZDwvYT4gV2ViS2l0Jywg
c2VsZWN0Rmlyc3RUd29Xb3JkcywgJzxpPjxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+aGVs
bG8gd29ybGQ8L2E+PC9pPiBXZWJLaXQnKTsKK3Rlc3RTaW5nbGVUb2dnbGUoImNyZWF0ZUxpbmsi
LCAnPGEgaHJlZj0iaHR0cDovL3RyYWMud2Via2l0Lm9yZy8iIHN0eWxlPSJmb250LXN0eWxlOiBp
dGFsaWM7Ij5oZWxsbyB3b3JsZDwvYT4gV2ViS2l0Jywgc2VsZWN0Rmlyc3RUd29Xb3JkcywgJzxh
IGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+PGk+aGVsbG8gd29ybGQ8L2k+PC9hPiBXZWJLaXQn
KTsKIHRlc3RTaW5nbGVUb2dnbGUoImNyZWF0ZUxpbmsiLCAnaGVsbG8gPGEgaHJlZj0iaHR0cDov
L3RyYWMud2Via2l0Lm9yZy8iPjxiPndvcmxkPC9iPiBXZWJLaXQ8L2E+Jywgc2VsZWN0Rmlyc3RU
d29Xb3JkcywgJzxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3JnLyI+aGVsbG8gPGI+d29ybGQ8L2I+
PC9hPjxhIGhyZWY9Imh0dHA6Ly90cmFjLndlYmtpdC5vcmcvIj4gV2ViS2l0PC9hPicpOwogdGVz
dFNpbmdsZVRvZ2dsZSgiY3JlYXRlTGluayIsICdoZWxsbyA8YSBocmVmPSJodHRwOi8vdHJhYy53
ZWJraXQub3JnLyIgc3R5bGU9ImZvbnQtc3R5bGU6IGl0YWxpYzsiPjxiPndvcmxkPC9iPiBXZWJL
aXQ8L2E+Jywgc2VsZWN0Rmlyc3RUd29Xb3JkcywgJzxhIGhyZWY9Imh0dHA6Ly93ZWJraXQub3Jn
LyI+aGVsbG8gPGIgc3R5bGU9ImZvbnQtc3R5bGU6IGl0YWxpYzsgIj53b3JsZDwvYj48L2E+PGEg
aHJlZj0iaHR0cDovL3RyYWMud2Via2l0Lm9yZy8iPjxpPiBXZWJLaXQ8L2k+PC9hPicpOwogdGVz
dFNpbmdsZVRvZ2dsZSgiY3JlYXRlTGluayIsICdoZWxsbyA8Yj53b3JsZDwvYj4gV2ViS2l0Jywg
c2VsZWN0TGFzdFdvcmQsICdoZWxsbyA8Yj53b3JsZDwvYj4gPGEgaHJlZj0iaHR0cDovL3dlYmtp
dC5vcmcvIj5XZWJLaXQ8L2E+Jyk7CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21t
YW5kL3NjcmlwdC10ZXN0cy90b2dnbGUtc3R5bGUtMi5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3NjcmlwdC10ZXN0cy90b2dnbGUtc3R5bGUtMi5qcwko
cmV2aXNpb24gNjY0MzApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2V4ZWNDb21tYW5kL3Njcmlw
dC10ZXN0cy90b2dnbGUtc3R5bGUtMi5qcwkod29ya2luZyBjb3B5KQpAQCAtMzAsMTQgKzMwLDE0
IEBAIGZ1bmN0aW9uIHRlc3REb3VibGVUb2dnbGUodG9nZ2xlQ29tbWFuZCwKIH0KIAogdGVzdFNp
bmdsZVRvZ2dsZSgidW5kZXJsaW5lIiwgInRlc3QiLCAiPHU+dGVzdDwvdT4iKTsKLXRlc3RTaW5n
bGVUb2dnbGUoInVuZGVybGluZSIsICI8dT48Yj48cz50ZXN0PC9zPjwvYj48L3U+IiwgIjxiPjxz
PnRlc3Q8L3M+PC9iPiIpOwordGVzdFNpbmdsZVRvZ2dsZSgidW5kZXJsaW5lIiwgIjx1PjxiPjxz
PnRlc3Q8L3M+PC9iPjwvdT4iLCAiPHM+PGI+dGVzdDwvYj48L3M+Iik7CiB0ZXN0RG91YmxlVG9n
Z2xlKCJ1bmRlcmxpbmUiLCAidGVzdCIsICJ0ZXN0Iik7CiB0ZXN0U2luZ2xlVG9nZ2xlKCJzdHJp
a2V0aHJvdWdoIiwgInRlc3QiLCAiPHM+dGVzdDwvcz4iKTsKIHRlc3RTaW5nbGVUb2dnbGUoInN0
cmlrZXRocm91Z2giLCAiPHU+PGI+PHM+dGVzdDwvcz48L2I+PC91PiIsICI8dT48Yj50ZXN0PC9i
PjwvdT4iKTsKIHRlc3REb3VibGVUb2dnbGUoInN0cmlrZXRocm91Z2giLCAidGVzdCIsICJ0ZXN0
Iik7CiAKIHRlc3RTaW5nbGVUb2dnbGUoInN0cmlrZXRocm91Z2giLCAiPHU+dGVzdDwvdT4iLCAi
PHU+PHM+dGVzdDwvcz48L3U+Iik7Ci10ZXN0U2luZ2xlVG9nZ2xlKCJ1bmRlcmxpbmUiLCAiPHM+
dGVzdDwvcz4iLCAiPHM+PHU+dGVzdDwvdT48L3M+Iik7Cit0ZXN0U2luZ2xlVG9nZ2xlKCJ1bmRl
cmxpbmUiLCAiPHM+dGVzdDwvcz4iLCAiPHU+PHM+dGVzdDwvcz48L3U+Iik7CiAKIHRlc3RTaW5n
bGVUb2dnbGUoInN0cmlrZXRocm91Z2giLCAnPHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjog
b3ZlcmxpbmU7Ij50ZXN0PC9zcGFuPicsICc8c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiBv
dmVybGluZTsiPjxzPnRlc3Q8L3M+PC9zcGFuPicpOwogdGVzdFNpbmdsZVRvZ2dsZSgidW5kZXJs
aW5lIiwgJzxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IG92ZXJsaW5lOyI+dGVzdDwvc3Bh
bj4nLCAnPHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjogb3ZlcmxpbmU7Ij48dT50ZXN0PC91
Pjwvc3Bhbj4nKTsKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0
LXRlc3RzL3RvZ2dsZS1zdHlsZS0zLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL3RvZ2dsZS1zdHlsZS0zLmpzCShyZXZpc2lvbiA2
NjQzMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZXhlY0NvbW1hbmQvc2NyaXB0LXRlc3RzL3Rv
Z2dsZS1zdHlsZS0zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw3ICsxNiw3IEBAIGZ1bmN0aW9u
IHRlc3RTaW5nbGVUb2dnbGUodG9nZ2xlQ29tbWFuZCwKICAgICB9CiB9CiAKLXRlc3RTaW5nbGVU
b2dnbGUoImJvbGQiLCAnaGVsbG88YiBpZD0idGVzdCI+d29ybGQ8L2I+JywgJzxiPmhlbGxvPC9i
PjxiIGlkPSJ0ZXN0Ij53b3JsZDwvYj4nKTsKK3Rlc3RTaW5nbGVUb2dnbGUoImJvbGQiLCAnaGVs
bG88YiBpZD0idGVzdCI+d29ybGQ8L2I+JywgJzxiPmhlbGxvPHNwYW4gaWQ9InRlc3QiPndvcmxk
PC9zcGFuPjwvYj4nKTsKIHRlc3RTaW5nbGVUb2dnbGUoImJvbGQiLCAnaGVsbG88Yj48aT53b3Js
ZDwvaT48L2I+JywgJzxiPmhlbGxvPGk+d29ybGQ8L2k+PC9iPicpOwogdGVzdFNpbmdsZVRvZ2ds
ZSgiaXRhbGljIiwgJ2hlbGxvIDxpPndvcmxkPC9pPiA8Yj53ZWJraXQ8L2I+JywgJzxpPmhlbGxv
IHdvcmxkIDxiPndlYmtpdDwvYj48L2k+Jyk7CiB0ZXN0U2luZ2xlVG9nZ2xlKCJpdGFsaWMiLCAn
aGVsbG8gPGk+d29ybGQ8L2k+IHdlYmtpdCcsICc8aT5oZWxsbyB3b3JsZCB3ZWJraXQ8L2k+Jyk7
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3N0eWxlL21ha2UtdGV4dC13cml0aW5nLWRpcmVj
dGlvbi1pbmxpbmUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRp
bmcvc3R5bGUvbWFrZS10ZXh0LXdyaXRpbmctZGlyZWN0aW9uLWlubGluZS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDY2NDMwKQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9tYWtlLXRleHQt
d3JpdGluZy1kaXJlY3Rpb24taW5saW5lLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MTAsNyArMTAsNyBAQCBQQVNTIE5hdHVyYWwgb24gc2Vjb25kIGFuZCB0aGlyZCB3b3JkcyBvCiBQ
QVNTIExlZnRUb1JpZ2h0IG9uIHNlY29uZCBhbmQgdGhpcmQgd29yZHMgb2YgIjxiPmhlbGxvIHdv
cmxkPC9iPiB3ZWJraXQiCiBQQVNTIFJpZ2h0VG9MZWZ0IG9uIHNlY29uZCBhbmQgdGhpcmQgd29y
ZHMgb2YgIjxiPmhlbGxvIHdvcmxkPC9iPiB3ZWJraXQiCiBGQUlMIChkdWUgdG8gdGhlIGJ1ZyA0
NDM1OSkgTmF0dXJhbCBvbiB0aGlyZCB3b3JkIG9mICI8c3BhbiBkaXI9InJ0bCI+aGVsbG8gPHNw
YW4gZGlyPSJsdHIiPndvcmxkIHdlYmtpdCByb2Nrczwvc3Bhbj48L3NwYW4+IiB5aWVsZGVkIDxz
cGFuIGRpcj0icnRsIj5oZWxsbyA8c3BhbiBkaXI9Imx0ciI+d29ybGQ8L3NwYW4+PC9zcGFuPjxz
cGFuPjxzcGFuPiB3ZWJraXQ8L3NwYW4+PC9zcGFuPjxzcGFuIGRpcj0icnRsIj48c3BhbiBkaXI9
Imx0ciI+IHJvY2tzPC9zcGFuPjwvc3Bhbj4gYnV0IGV4cGVjdGVkIDxzcGFuIGRpcj0icnRsIj5o
ZWxsbyA8c3BhbiBkaXI9Imx0ciI+d29ybGQ8L3NwYW4+PC9zcGFuPiB3ZWJraXQ8c3BhbiBkaXI9
InJ0bCI+PHNwYW4gZGlyPSJsdHIiPiByb2Nrczwvc3Bhbj48L3NwYW4+Ci1GQUlMIChkdWUgdG8g
dGhlIGJ1ZyA0NDM1OSkgTGVmdFRvUmlnaHQgb24gdGhpcmQgd29yZCBvZiAiPHNwYW4gZGlyPSJy
dGwiPmhlbGxvIDxzcGFuIGRpcj0ibHRyIj53b3JsZCB3ZWJraXQgcm9ja3M8L3NwYW4+PC9zcGFu
PiIgeWllbGRlZCA8c3BhbiBkaXI9InJ0bCI+aGVsbG8gPHNwYW4gZGlyPSJsdHIiPndvcmxkPC9z
cGFuPjwvc3Bhbj48c3Bhbj48c3Bhbj48c3BhbiBzdHlsZT0idW5pY29kZS1iaWRpOiBlbWJlZDsi
PiB3ZWJraXQ8L3NwYW4+PC9zcGFuPjwvc3Bhbj48c3BhbiBkaXI9InJ0bCI+PHNwYW4gZGlyPSJs
dHIiPiByb2Nrczwvc3Bhbj48L3NwYW4+IGJ1dCBleHBlY3RlZCA8c3BhbiBkaXI9InJ0bCI+aGVs
bG8gPHNwYW4gZGlyPSJsdHIiPndvcmxkPC9zcGFuPjwvc3Bhbj48c3BhbiBzdHlsZT0idW5pY29k
ZS1iaWRpOiBlbWJlZDsiPiB3ZWJraXQ8L3NwYW4+PHNwYW4gZGlyPSJydGwiPjxzcGFuIGRpcj0i
bHRyIj4gcm9ja3M8L3NwYW4+PC9zcGFuPgorRkFJTCAoZHVlIHRvIHRoZSBidWcgNDQzNTkpIExl
ZnRUb1JpZ2h0IG9uIHRoaXJkIHdvcmQgb2YgIjxzcGFuIGRpcj0icnRsIj5oZWxsbyA8c3BhbiBk
aXI9Imx0ciI+d29ybGQgd2Via2l0IHJvY2tzPC9zcGFuPjwvc3Bhbj4iIHlpZWxkZWQgPHNwYW4g
ZGlyPSJydGwiPmhlbGxvIDxzcGFuIGRpcj0ibHRyIj53b3JsZDwvc3Bhbj48L3NwYW4+PHNwYW4g
c3R5bGU9InVuaWNvZGUtYmlkaTogZW1iZWQ7Ij48c3Bhbj48c3Bhbj4gd2Via2l0PC9zcGFuPjwv
c3Bhbj48L3NwYW4+PHNwYW4gZGlyPSJydGwiPjxzcGFuIGRpcj0ibHRyIj4gcm9ja3M8L3NwYW4+
PC9zcGFuPiBidXQgZXhwZWN0ZWQgPHNwYW4gZGlyPSJydGwiPmhlbGxvIDxzcGFuIGRpcj0ibHRy
Ij53b3JsZDwvc3Bhbj48L3NwYW4+PHNwYW4gc3R5bGU9InVuaWNvZGUtYmlkaTogZW1iZWQ7Ij4g
d2Via2l0PC9zcGFuPjxzcGFuIGRpcj0icnRsIj48c3BhbiBkaXI9Imx0ciI+IHJvY2tzPC9zcGFu
Pjwvc3Bhbj4KIEZBSUwgKGR1ZSB0byB0aGUgYnVnIDQ0MzU5KSBSaWdodFRvTGVmdCBvbiB0aGly
ZCB3b3JkIG9mICI8c3BhbiBkaXI9InJ0bCI+aGVsbG8gPHNwYW4gZGlyPSJsdHIiPndvcmxkIHdl
YmtpdCByb2Nrczwvc3Bhbj48L3NwYW4+IiB5aWVsZGVkIDxzcGFuIGRpcj0icnRsIj5oZWxsbyA8
c3BhbiBkaXI9Imx0ciI+d29ybGQ8L3NwYW4+PHNwYW4+IHdlYmtpdDwvc3Bhbj48c3BhbiBkaXI9
Imx0ciI+IHJvY2tzPC9zcGFuPjwvc3Bhbj4gYnV0IGV4cGVjdGVkIDxzcGFuIGRpcj0icnRsIj5o
ZWxsbyA8c3BhbiBkaXI9Imx0ciI+d29ybGQ8L3NwYW4+IHdlYmtpdDxzcGFuIGRpcj0ibHRyIj4g
cm9ja3M8L3NwYW4+PC9zcGFuPgogUEFTUyBOYXR1cmFsIG9uIGZpcnN0IHdvcmQgb2YgItmH2YbY
pyDZitmD2KrYqCDYp9mE2YbYtSDYp9mE2LnYsdio2YoiCiBQQVNTIExlZnRUb1JpZ2h0IG9uIGZp
cnN0IHdvcmQgb2YgItmH2YbYpyDZitmD2KrYqCDYp9mE2YbYtSDYp9mE2LnYsdio2YoiCkBAIC0y
Niw3ICsyNiw3IEBAIFBBU1MgTGVmdFRvUmlnaHQgb24gc2Vjb25kIGFuZCB0aGlyZCB3b3IKIFBB
U1MgUmlnaHRUb0xlZnQgb24gc2Vjb25kIGFuZCB0aGlyZCB3b3JkcyBvZiAiPGRpdiBkaXI9InJ0
bCI+PGI+2YfZhtinINmK2YPYqtioPC9iPiDYp9mE2YbYtSDYp9mE2LnYsdio2Yo8L2Rpdj4iCiBG
QUlMIChkdWUgdG8gdGhlIGJ1ZyA0NDM1OSkgTmF0dXJhbCBvbiB0aGlyZCB3b3JkIG9mICI8ZGl2
IGRpcj0icnRsIj7Zh9mG2KcgPHNwYW4gZGlyPSJsdHIiPtmK2YPYqtioINin2YTZhti1INin2YTY
udix2KjZijwvc3Bhbj48L2Rpdj4iIHlpZWxkZWQgPGRpdiBkaXI9InJ0bCI+2YfZhtinIDxzcGFu
IGRpcj0ibHRyIj7ZitmD2KrYqDwvc3Bhbj48c3Bhbj4g2KfZhNmG2LU8L3NwYW4+PHNwYW4gZGly
PSJsdHIiPiDYp9mE2LnYsdio2Yo8L3NwYW4+PC9kaXY+IGJ1dCBleHBlY3RlZCA8ZGl2IGRpcj0i
cnRsIj7Zh9mG2KcgPHNwYW4gZGlyPSJsdHIiPtmK2YPYqtioPC9zcGFuPiDYp9mE2YbYtTxzcGFu
IGRpcj0ibHRyIj4g2KfZhNi52LHYqNmKPC9zcGFuPjwvZGl2PgogUEFTUyBMZWZ0VG9SaWdodCBv
biB0aGlyZCB3b3JkIG9mICI8ZGl2IGRpcj0icnRsIj7Zh9mG2KcgPHNwYW4gZGlyPSJsdHIiPtmK
2YPYqtioINin2YTZhti1INin2YTYudix2KjZijwvc3Bhbj48L2Rpdj4iCi1GQUlMIChkdWUgdG8g
dGhlIGJ1ZyA0NDM1OSkgUmlnaHRUb0xlZnQgb24gdGhpcmQgd29yZCBvZiAiPGRpdiBkaXI9InJ0
bCI+2YfZhtinIDxzcGFuIGRpcj0ibHRyIj7ZitmD2KrYqCDYp9mE2YbYtSDYp9mE2LnYsdio2Yo8
L3NwYW4+PC9kaXY+IiB5aWVsZGVkIDxkaXYgZGlyPSJydGwiPtmH2YbYpyA8c3BhbiBkaXI9Imx0
ciI+2YrZg9iq2Kg8L3NwYW4+PHNwYW4+PHNwYW4gc3R5bGU9InVuaWNvZGUtYmlkaTogZW1iZWQ7
Ij4g2KfZhNmG2LU8L3NwYW4+PC9zcGFuPjxzcGFuIGRpcj0ibHRyIj4g2KfZhNi52LHYqNmKPC9z
cGFuPjwvZGl2PiBidXQgZXhwZWN0ZWQgPGRpdiBkaXI9InJ0bCI+2YfZhtinIDxzcGFuIGRpcj0i
bHRyIj7ZitmD2KrYqDwvc3Bhbj48c3BhbiBzdHlsZT0idW5pY29kZS1iaWRpOiBlbWJlZDsiPiDY
p9mE2YbYtTwvc3Bhbj48c3BhbiBkaXI9Imx0ciI+INin2YTYudix2KjZijwvc3Bhbj48L2Rpdj4K
K0ZBSUwgKGR1ZSB0byB0aGUgYnVnIDQ0MzU5KSBSaWdodFRvTGVmdCBvbiB0aGlyZCB3b3JkIG9m
ICI8ZGl2IGRpcj0icnRsIj7Zh9mG2KcgPHNwYW4gZGlyPSJsdHIiPtmK2YPYqtioINin2YTZhti1
INin2YTYudix2KjZijwvc3Bhbj48L2Rpdj4iIHlpZWxkZWQgPGRpdiBkaXI9InJ0bCI+2YfZhtin
IDxzcGFuIGRpcj0ibHRyIj7ZitmD2KrYqDwvc3Bhbj48c3BhbiBzdHlsZT0idW5pY29kZS1iaWRp
OiBlbWJlZDsiPjxzcGFuPiDYp9mE2YbYtTwvc3Bhbj48L3NwYW4+PHNwYW4gZGlyPSJsdHIiPiDY
p9mE2LnYsdio2Yo8L3NwYW4+PC9kaXY+IGJ1dCBleHBlY3RlZCA8ZGl2IGRpcj0icnRsIj7Zh9mG
2KcgPHNwYW4gZGlyPSJsdHIiPtmK2YPYqtioPC9zcGFuPjxzcGFuIHN0eWxlPSJ1bmljb2RlLWJp
ZGk6IGVtYmVkOyI+INin2YTZhti1PC9zcGFuPjxzcGFuIGRpcj0ibHRyIj4g2KfZhNi52LHYqNmK
PC9zcGFuPjwvZGl2PgogUEFTUyBOYXR1cmFsIG9uIGZpcnN0IHdvcmQgb2YgIuWGmeS4reaWhyIK
IFBBU1MgTGVmdFRvUmlnaHQgb24gZmlyc3Qgd29yZCBvZiAi5YaZ5Lit5paHIgogUEFTUyBSaWdo
dFRvTGVmdCBvbiBmaXJzdCB3b3JkIG9mICLlhpnkuK3mlociCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3N0eWxlL3NjcmlwdC10ZXN0cy9tYWtlLXRleHQtd3JpdGluZy1kaXJlY3Rpb24taW5s
aW5lLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvc2NyaXB0LXRl
c3RzL21ha2UtdGV4dC13cml0aW5nLWRpcmVjdGlvbi1pbmxpbmUuanMJKHJldmlzaW9uIDY2NDMw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9zY3JpcHQtdGVzdHMvbWFrZS10ZXh0LXdy
aXRpbmctZGlyZWN0aW9uLWlubGluZS5qcwkod29ya2luZyBjb3B5KQpAQCAtOTcsNyArOTcsNyBA
QCBtb2RpZnlXcml0aW5nRGlyZWN0aW9uKCc8ZGl2IGRpcj0icnRsIj48CiBtb2RpZnlXcml0aW5n
RGlyZWN0aW9uKCc8ZGl2IGRpcj0icnRsIj7Zh9mG2KcgPHNwYW4gZGlyPSJsdHIiPtmK2YPYqtio
INin2YTZhti1INin2YTYudix2KjZijwvc3Bhbj48L2Rpdj4nLCBzZWxlY3RUaGlyZFdvcmQsICdO
YXR1cmFsJywKICAgICAgICAgICAgICAgICAgICAgICAgJzxkaXYgZGlyPSJydGwiPtmH2YbYpyA8
c3BhbiBkaXI9Imx0ciI+2YrZg9iq2Kg8L3NwYW4+INin2YTZhti1PHNwYW4gZGlyPSJsdHIiPiDY
p9mE2LnYsdio2Yo8L3NwYW4+PC9kaXY+Jyk7CiBtb2RpZnlXcml0aW5nRGlyZWN0aW9uKCc8ZGl2
IGRpcj0icnRsIj7Zh9mG2KcgPHNwYW4gZGlyPSJsdHIiPtmK2YPYqtioINin2YTZhti1INin2YTY
udix2KjZijwvc3Bhbj48L2Rpdj4nLCBzZWxlY3RUaGlyZFdvcmQsICdMZWZ0VG9SaWdodCcsCi0g
ICAgICAgICAgICAgICAgICAgICAgICc8ZGl2IGRpcj0icnRsIj48c3BhbiBzdHlsZT0iZGlyZWN0
aW9uOiBsdHI7Ij7Zh9mG2KcgPC9zcGFuPjxzcGFuIGRpcj0ibHRyIj7ZitmD2KrYqCDYp9mE2YbY
tSDYp9mE2LnYsdio2Yo8L3NwYW4+PC9kaXY+Jyk7CisgICAgICAgICAgICAgICAgICAgICAgICc8
ZGl2IGRpcj0icnRsIj48c3BhbiBzdHlsZT0iZGlyZWN0aW9uOiBsdHI7Ij7Zh9mG2Kcg2YrZg9iq
2Kgg2KfZhNmG2LUg2KfZhNi52LHYqNmKPC9zcGFuPjwvZGl2PicpOwogbW9kaWZ5V3JpdGluZ0Rp
cmVjdGlvbignPGRpdiBkaXI9InJ0bCI+2YfZhtinIDxzcGFuIGRpcj0ibHRyIj7ZitmD2KrYqCDY
p9mE2YbYtSDYp9mE2LnYsdio2Yo8L3NwYW4+PC9kaXY+Jywgc2VsZWN0VGhpcmRXb3JkLCAnUmln
aHRUb0xlZnQnLAogICAgICAgICAgICAgICAgICAgICAgICAnPGRpdiBkaXI9InJ0bCI+2YfZhtin
IDxzcGFuIGRpcj0ibHRyIj7ZitmD2KrYqDwvc3Bhbj48c3BhbiBzdHlsZT0idW5pY29kZS1iaWRp
OiBlbWJlZDsiPiDYp9mE2YbYtTwvc3Bhbj48c3BhbiBkaXI9Imx0ciI+INin2YTYudix2KjZijwv
c3Bhbj48L2Rpdj4nKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67246</attachid>
            <date>2010-09-10 15:13:21 -0700</date>
            <delta_ts>2010-09-10 15:16:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-28968-20100910151320.patch</filename>
            <type>text/plain</type>
            <size>2660</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDY3MjM5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDktMTAgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgZXhlY0NvbW1hbmQoImZvbnRzaXplIikgb24gY2VydGFpbiBzZWxlY3RlZCBodG1s
IGdlbmVyYXRlcyB0b28gbWFueSBTUEFOIHRhZ3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODk2OAorCisgICAgICAgIEFkZGVkIGEgdGVzdCB0byBl
bnN1cmUgb25seSBvbmUgZm9udCBlbGVtZW50IGlzIGFkZGVkIHdoZW4gYXBwbHlpbmcgZm9udC1z
aXplCisgICAgICAgIHRvIG11bHRpcGxlIGlubGluZSBub2Rlcy4KKworICAgICAgICAqIGVkaXRp
bmcvc3R5bGUvYXBwbHktZm9udC1zaXplLXRvLW11bHRpcGxlLW5vZGVzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZWRpdGluZy9zdHlsZS9hcHBseS1mb250LXNpemUtdG8tbXVsdGlw
bGUtbm9kZXMuaHRtbDogQWRkZWQuCisKIDIwMTAtMDktMTAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmUtZW5hYmxlIHNvbWUgV2luZG93cyBjb21w
b3NpdGluZyB0ZXN0cyB0aGF0IG5vIGxvbmdlciBhc3NlcnQuCkluZGV4OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3N0eWxlL2FwcGx5LWZvbnQtc2l6ZS10by1tdWx0aXBsZS1ub2Rlcy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9hcHBseS1mb250LXNp
emUtdG8tbXVsdGlwbGUtbm9kZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9zdHlsZS9hcHBseS1mb250LXNpemUtdG8tbXVsdGlwbGUtbm9kZXMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACitUZXN0IHRoYXQgV2ViS2l0
IGRvZXMgbm90IGFkZCBtdWx0aXBsZSBzcGFuIG9yIGZvbnQgZWxlbWVudHMgd2hlbiBhcHBseWlu
ZyBmb250LXNpemUgdG8gbXVsdGlwbGUgbm9kZXMuCisKK1lvdSBzaG91bGQgc2VlIGV4YWN0bHkg
b25lIGZvbnQgZWxlbWVudCB3aXRoIHNpemU9IjciIGFuZCBleGFjdGx5IG9uZSBzcGFuOgorfCA8
Zm9udD4KK3wgICBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIKK3wgICBzaXplPSI3IgorfCAgICIK
Kzwjc2VsZWN0aW9uLWFuY2hvcj5BIG1hbiB3aXRoIDIKKyIKK3wgICA8c3Bhbj4KK3wgICAgIHN0
eWxlPSJmb250LWZhbWlseTogQ291cmllciBOZXcsIENvdXJpZXIiCit8ICAgICAiZm9udCBmYWNl
cyIKK3wgICA8YnI+Cit8ICAgIgorRGVhdGggY29tZXMgaW4gYWxsCisiCit8ICAgImZvbnQgc2l6
ZXM8I3NlbGVjdGlvbi1mb2N1cz4iCit8ICIKKyIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcv
c3R5bGUvYXBwbHktZm9udC1zaXplLXRvLW11bHRpcGxlLW5vZGVzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zdHlsZS9hcHBseS1mb250LXNpemUtdG8tbXVsdGlwbGUt
bm9kZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvc3R5bGUvYXBw
bHktZm9udC1zaXplLXRvLW11bHRpcGxlLW5vZGVzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8ZGl2IGlkPSJ0ZXN0IiBjb250ZW50ZWRpdGFibGU+CitBIG1hbiB3aXRoIDIKKzxzcGFu
IHN0eWxlPSJmb250LWZhbWlseTogQ291cmllciBOZXcsIENvdXJpZXIiPmZvbnQgZmFjZXM8L3Nw
YW4+PGJyPgorRGVhdGggY29tZXMgaW4gYWxsCis8c3BhbiBzdHlsZT0iZm9udC1zaXplOiBsYXJn
ZSI+Zm9udCBzaXplczwvc3Bhbj4KKzwvZGl2PgorPHNjcmlwdD4KKwordmFyIHRlc3QgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOworZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2Vs
ZWN0QWxsQ2hpbGRyZW4odGVzdCk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnZm9udFNpemUnLCBm
YWxzZSwgNyk7CitNYXJrdXAuZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCBXZWJLaXQgZG9lcyBub3Qg
YWRkIG11bHRpcGxlIHNwYW4gb3IgZm9udCBlbGVtZW50cyB3aGVuIGFwcGx5aW5nIGZvbnQtc2l6
ZSB0byBtdWx0aXBsZSBub2Rlcy4nKQorTWFya3VwLmR1bXAodGVzdCwgJ1lvdSBzaG91bGQgc2Vl
IGV4YWN0bHkgb25lIGZvbnQgZWxlbWVudCB3aXRoIHNpemU9IjciIGFuZCBleGFjdGx5IG9uZSBz
cGFuJyk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="56505"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>