<?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>5404</bug_id>
          
          <creation_ts>2005-10-17 15:42:18 -0700</creation_ts>
          <short_desc>fix createMarkup to support XML</short_desc>
          <delta_ts>2019-02-06 09:03:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>3275</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>cdumez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>22177</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-10-17 15:42:18 -0700</bug_when>
    <thetext>The attached patch fixes createMarkup to better support serializing XML.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22178</commentid>
    <comment_count>1</comment_count>
      <attachid>4386</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-10-17 15:48:05 -0700</bug_when>
    <thetext>Created attachment 4386
Fixes createMarkup&apos;s XML support.

This fix is covered at least by XSLT test cases soon to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22375</commentid>
    <comment_count>2</comment_count>
      <attachid>4426</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-10-20 13:14:05 -0700</bug_when>
    <thetext>Created attachment 4426
Patch to fix toString() and createMarkup() to better support xml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22381</commentid>
    <comment_count>3</comment_count>
      <attachid>4426</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-10-20 13:50:10 -0700</bug_when>
    <thetext>Comment on attachment 4426
Patch to fix toString() and createMarkup() to better support xml

I noticed that the doesHTMLForbidEndTag function doesn&apos;t do the right thing for
XML.

Otherwise, patch looks pretty good. Need test cases to test all the things
fixed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22391</commentid>
    <comment_count>4</comment_count>
      <attachid>4431</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-10-20 15:05:00 -0700</bug_when>
    <thetext>Created attachment 4431
One patched test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22878</commentid>
    <comment_count>5</comment_count>
      <attachid>4468</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-10-24 22:52:19 -0700</bug_when>
    <thetext>Created attachment 4468
Another new test case, using innerHTML</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22879</commentid>
    <comment_count>6</comment_count>
      <attachid>4468</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-10-24 22:54:32 -0700</bug_when>
    <thetext>Comment on attachment 4468
Another new test case, using innerHTML

NOTE, view this as source if you want to see what it really looks like.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22880</commentid>
    <comment_count>7</comment_count>
      <attachid>4469</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-10-24 23:01:07 -0700</bug_when>
    <thetext>Created attachment 4469
Patch w/ darin&apos;s suggested fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22883</commentid>
    <comment_count>8</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-10-25 00:43:32 -0700</bug_when>
    <thetext>r- for some issues Eric and I discussed. HTML tags that have no children but aren&apos;t assumed empty, such 
as &lt;span&gt;, will serialize without a close tag, this is wrong. I also strongly suggested that XHTML should 
be emitted as HTML-compatible when possible, that is, self-closing tags should be used only for tags 
where an end tag would be forbidden in HTML.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22915</commentid>
    <comment_count>9</comment_count>
      <attachid>4468</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-10-25 08:48:08 -0700</bug_when>
    <thetext>Comment on attachment 4468
Another new test case, using innerHTML

Clearing review flag from the test case. It&apos;s fine, but we don&apos;t want this to
show up as a &quot;bug with a reviewed patch&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22939</commentid>
    <comment_count>10</comment_count>
      <attachid>4478</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-10-25 12:18:20 -0700</bug_when>
    <thetext>Created attachment 4478
Patch addressing mjs&apos;s compatibility concerns.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22940</commentid>
    <comment_count>11</comment_count>
      <attachid>4479</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-10-25 12:20:17 -0700</bug_when>
    <thetext>Created attachment 4479
Additional innerHTML test cases (both for xhtml and html)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22966</commentid>
    <comment_count>12</comment_count>
      <attachid>4478</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-10-25 22:11:39 -0700</bug_when>
    <thetext>Comment on attachment 4478
Patch addressing mjs&apos;s compatibility concerns.

It&apos;s strange to forward-declare a function inline as you do
doesHTMLForbidEndTag and shouldSelfClose. If the thing isn&apos;t defined until
after it&apos;s used, it won&apos;t get inlined, but if it&apos;s defined before it&apos;s used, it
doesn&apos;t need to be forward-declared.

Patch looks fine, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22967</commentid>
    <comment_count>13</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-10-25 22:17:05 -0700</bug_when>
    <thetext>+// Rules of self-closure
+// 1. all html elements in html documents close with &gt;
+// 2. all elements w/ children close with &gt;
+// 3. all non-html elements w/o children close with /&gt;
+static inline bool shouldSelfClose(const NodeImpl *node)

A few comments on this:

1) I do not think this is a complete statement of the rules. You should also mention that HTML elements 
in an XML document which do not allow a close tag in HTML should use the self-closing syntax.

2) Technically, XML refers to tags like &lt;foo/&gt; as &quot;minimized&quot;, not &quot;self-closing&quot;, perhaps you would 
like to comply with the official terminology and call this function shouldMinimize (and make other 
corresponding changes.

I&apos;ll leave the patch reviewed and leave it to your judgment how to address these remarks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>22968</commentid>
    <comment_count>14</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-10-25 22:17:56 -0700</bug_when>
    <thetext>Also I think what Darin said about the inliner is wrong in the latest gcc. As long as a function has an inline 
declaration in the same compilation unit, it will get inlined.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23051</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-10-26 23:31:43 -0700</bug_when>
    <thetext>Fixed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502885</commentid>
    <comment_count>16</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:03:00 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4386</attachid>
            <date>2005-10-17 15:48:05 -0700</date>
            <delta_ts>2005-10-20 13:14:05 -0700</delta_ts>
            <desc>Fixes createMarkup&apos;s XML support.</desc>
            <filename>fix_xml.patch</filename>
            <type>text/plain</type>
            <size>8715</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IG1hcmt1cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUv
a2h0bWwvZWRpdGluZy9tYXJrdXAuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjM3CmRpZmYg
LXAgLXUgLXIxLjM3IG1hcmt1cC5jcHAKLS0tIG1hcmt1cC5jcHAJMyBPY3QgMjAwNSAyMToxMjoy
MCAtMDAwMAkxLjM3CisrKyBtYXJrdXAuY3BwCTE3IE9jdCAyMDA1IDIyOjQ2OjQxIC0wMDAwCkBA
IC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiZWRpdGluZy92aXNpYmxlX3VuaXRzLmgiCiAjaW5j
bHVkZSAiaHRtbC9odG1sX2VsZW1lbnRpbXBsLmgiCiAjaW5jbHVkZSAieG1sL2RvbV9wb3NpdGlv
bi5oIgorI2luY2x1ZGUgInhtbC9kb21feG1saW1wbC5oIgogI2luY2x1ZGUgInhtbC9kb20yX3Jh
bmdlaW1wbC5oIgogI2luY2x1ZGUgInJlbmRlcmluZy9yZW5kZXJfdGV4dC5oIgogI2luY2x1ZGUg
Imh0bWxuYW1lcy5oIgpAQCAtNDIsNiArNDMsNyBAQCB1c2luZyBuYW1lc3BhY2UgRE9NOjpIVE1M
TmFtZXM7CiAKIHVzaW5nIERPTTo6QXR0cmlidXRlSW1wbDsKIHVzaW5nIERPTTo6Q29tbWVudElt
cGw7Cit1c2luZyBET006OlByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGw7CiB1c2luZyBET006OkNT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbkltcGw7CiB1c2luZyBET006OkNTU011dGFibGVTdHls
ZURlY2xhcmF0aW9uSW1wbDsKIHVzaW5nIERPTTo6RG9jdW1lbnRGcmFnbWVudEltcGw7CkBAIC0x
NzMsNiArMTc1LDcgQEAgc3RhdGljIFFTdHJpbmcgcmVuZGVyZWRUZXh0KGNvbnN0IE5vZGVJbQog
CiBzdGF0aWMgUVN0cmluZyBzdGFydE1hcmt1cChjb25zdCBOb2RlSW1wbCAqbm9kZSwgY29uc3Qg
UmFuZ2VJbXBsICpyYW5nZSwgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2UgYW5ub3RhdGUsIENTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uSW1wbCAqZGVmYXVsdFN0eWxlKQogeworICAgIGJvb2wgZG9j
dW1lbnRJc0hUTUwgPSBub2RlLT5nZXREb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpOwogICAg
IHVuc2lnbmVkIHNob3J0IHR5cGUgPSBub2RlLT5ub2RlVHlwZSgpOwogICAgIHN3aXRjaCAodHlw
ZSkgewogICAgICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERTogewpAQCAtMTg3LDE4ICsxOTAsMTQg
QEAgc3RhdGljIFFTdHJpbmcgc3RhcnRNYXJrdXAoY29uc3QgTm9kZUltcAogICAgICAgICAgICAg
aWYgKGRlZmF1bHRTdHlsZSkgewogICAgICAgICAgICAgICAgIE5vZGVJbXBsICplbGVtZW50ID0g
bm9kZS0+cGFyZW50Tm9kZSgpOwogICAgICAgICAgICAgICAgIGlmIChlbGVtZW50KSB7Ci0gICAg
ICAgICAgICAgICAgICAgIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbkltcGwgKmNvbXB1dGVk
U3R5bGUgPSBQb3NpdGlvbihlbGVtZW50LCAwKS5jb21wdXRlZFN0eWxlKCk7Ci0gICAgICAgICAg
ICAgICAgICAgIGNvbXB1dGVkU3R5bGUtPnJlZigpOwotICAgICAgICAgICAgICAgICAgICBDU1NN
dXRhYmxlU3R5bGVEZWNsYXJhdGlvbkltcGwgKnN0eWxlID0gY29tcHV0ZWRTdHlsZS0+Y29weUlu
aGVyaXRhYmxlUHJvcGVydGllcygpOwotICAgICAgICAgICAgICAgICAgICBjb21wdXRlZFN0eWxl
LT5kZXJlZigpOwotICAgICAgICAgICAgICAgICAgICBzdHlsZS0+cmVmKCk7Ci0gICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHRTdHlsZS0+ZGlmZihzdHlsZSk7CisgICAgICAgICAgICAgICAgICAg
IFNoYXJlZFB0cjxDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb25JbXBsPiBjb21wdXRlZFN0eWxl
ID0gUG9zaXRpb24oZWxlbWVudCwgMCkuY29tcHV0ZWRTdHlsZSgpOworICAgICAgICAgICAgICAg
ICAgICBTaGFyZWRQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25JbXBsPiBzdHlsZSA9IGNv
bXB1dGVkU3R5bGUtPmNvcHlJbmhlcml0YWJsZVByb3BlcnRpZXMoKTsKKyAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdFN0eWxlLT5kaWZmKHN0eWxlLmdldCgpKTsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKHN0eWxlLT5sZW5ndGgoKSA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBIYW5kbGUgY2FzZSB3aGVyZSBzdHlsZS0+Y3NzVGV4dCgpIGhhcyBpbGxlZ2FsIGNo
YXJhY3RlcnMgaW4gaXQsIGxpa2UgIgogICAgICAgICAgICAgICAgICAgICAgICAgUVN0cmluZyBv
cGVuVGFnID0gUVN0cmluZygiPHNwYW4gY2xhc3M9XCIiKSArIEFwcGxlU3R5bGVTcGFuQ2xhc3Mg
KyAiXCIgc3R5bGU9XCIiICsgc3R5bGUtPmNzc1RleHQoKS5xc3RyaW5nKCkgKyAiXCI+IjsKICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcmt1cCA9IG9wZW5UYWcgKyBtYXJrdXAgKyAiPC9zcGFu
PiI7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgc3R5bGUtPmRl
cmVmKCk7CiAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgIAogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgcmV0dXJuIGFubm90YXRlID8gY29udmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZv
cm1hdChtYXJrdXApIDogbWFya3VwOwpAQCAtMjA3LDI1ICsyMDYsMjMgQEAgc3RhdGljIFFTdHJp
bmcgc3RhcnRNYXJrdXAoY29uc3QgTm9kZUltcAogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGNvbnN0IENvbW1lbnRJbXBsICo+KG5vZGUpLT50b1N0cmluZygpLnFzdHJpbmcoKTsKICAg
ICAgICAgY2FzZSBOb2RlOjpET0NVTUVOVF9OT0RFOgogICAgICAgICAgICAgcmV0dXJuICIiOwor
ICAgICAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKKyAgICAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsICo+
KG5vZGUpLT50b1N0cmluZygpLnFzdHJpbmcoKTsKICAgICAgICAgZGVmYXVsdDogewogICAgICAg
ICAgICAgUVN0cmluZyBtYXJrdXAgPSBRQ2hhcignPCcpICsgbm9kZS0+bm9kZU5hbWUoKS5xc3Ry
aW5nKCk7CiAgICAgICAgICAgICBpZiAodHlwZSA9PSBOb2RlOjpFTEVNRU5UX05PREUpIHsKICAg
ICAgICAgICAgICAgICBjb25zdCBFbGVtZW50SW1wbCAqZWwgPSBzdGF0aWNfY2FzdDxjb25zdCBF
bGVtZW50SW1wbCAqPihub2RlKTsKICAgICAgICAgICAgICAgICBET01TdHJpbmcgYWRkaXRpb25h
bFN0eWxlOwogICAgICAgICAgICAgICAgIGlmIChkZWZhdWx0U3R5bGUgJiYgZWwtPmlzSFRNTEVs
ZW1lbnQoKSkgewotICAgICAgICAgICAgICAgICAgICBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b25JbXBsICpjb21wdXRlZFN0eWxlID0gUG9zaXRpb24oY29uc3RfY2FzdDxFbGVtZW50SW1wbCAq
PihlbCksIDApLmNvbXB1dGVkU3R5bGUoKTsKLSAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWRT
dHlsZS0+cmVmKCk7Ci0gICAgICAgICAgICAgICAgICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0
aW9uSW1wbCAqc3R5bGUgPSBjb21wdXRlZFN0eWxlLT5jb3B5SW5oZXJpdGFibGVQcm9wZXJ0aWVz
KCk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkU3R5bGUtPmRlcmVmKCk7Ci0gICAgICAg
ICAgICAgICAgICAgIHN0eWxlLT5yZWYoKTsKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFN0
eWxlLT5kaWZmKHN0eWxlKTsKKyAgICAgICAgICAgICAgICAgICAgU2hhcmVkUHRyPENTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbkltcGw+IGNvbXB1dGVkU3R5bGUgPSBQb3NpdGlvbihjb25zdF9j
YXN0PEVsZW1lbnRJbXBsICo+KGVsKSwgMCkuY29tcHV0ZWRTdHlsZSgpOworICAgICAgICAgICAg
ICAgICAgICBTaGFyZWRQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25JbXBsPiBzdHlsZSA9
IGNvbXB1dGVkU3R5bGUtPmNvcHlJbmhlcml0YWJsZVByb3BlcnRpZXMoKTsKKyAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdFN0eWxlLT5kaWZmKHN0eWxlLmdldCgpKTsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKHN0eWxlLT5sZW5ndGgoKSA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uSW1wbCAqaW5saW5lU3R5bGVEZWNsID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgSFRNTEVsZW1lbnRJbXBsICo+KGVsKS0+aW5saW5lU3R5bGVEZWNsKCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5saW5lU3R5bGVEZWNsKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlubGluZVN0eWxlRGVjbC0+ZGlmZihzdHlsZSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW5saW5lU3R5bGVEZWNsLT5kaWZmKHN0eWxlLmdldCgpKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxTdHlsZSA9IHN0eWxlLT5jc3NUZXh0KCk7
CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgc3R5bGUtPmRlcmVm
KCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIE5hbWVkQXR0ck1hcEltcGwg
KmF0dHJzID0gZWwtPmF0dHJpYnV0ZXMoKTsKICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5n
dGggPSBhdHRycy0+bGVuZ3RoKCk7CkBAIC0yNDAsMjUgKzIzNywzNSBAQCBzdGF0aWMgUVN0cmlu
ZyBzdGFydE1hcmt1cChjb25zdCBOb2RlSW1wCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
YXR0ci0+bmFtZSgpID09IHN0eWxlQXR0ciAmJiBhZGRpdGlvbmFsU3R5bGUubGVuZ3RoKCkgPiAw
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlICs9ICI7ICIgKyBhZGRpdGlvbmFs
U3R5bGU7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIGNhc2Ugd2hl
cmUgdmFsdWUgaGFzIGlsbGVnYWwgY2hhcmFjdGVycyBpbiBpdCwgbGlrZSAiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogTmFtZXNwYWNlcyEgWE1MISBBY2shCi0gICAgICAgICAg
ICAgICAgICAgICAgICBtYXJrdXAgKz0gIiAiICsgYXR0ci0+bmFtZSgpLmxvY2FsTmFtZSgpLnFz
dHJpbmcoKSArICI9XCIiICsgdmFsdWUucXN0cmluZygpICsgIlwiIjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChkb2N1bWVudElzSFRNTCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYXJrdXAgKz0gIiAiICsgYXR0ci0+bmFtZSgpLmxvY2FsTmFtZSgpLnFzdHJpbmcoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
YXJrdXAgKz0gIiAiICsgYXR0ci0+bmFtZSgpLnRvU3RyaW5nKCkucXN0cmluZygpOworICAgICAg
ICAgICAgICAgICAgICAgICAgbWFya3VwICs9ICI9XCIiICsgdmFsdWUucXN0cmluZygpICsgIlwi
IjsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIG1hcmt1cCArPSBub2RlLT5pc0hUTUxFbGVtZW50KCkgPyAiPiIgOiAi
Lz4iOworICAgICAgICAgICAgaWYgKCFkb2N1bWVudElzSFRNTCAmJiAhbm9kZS0+aGFzQ2hpbGRO
b2RlcygpKQorICAgICAgICAgICAgICAgIG1hcmt1cCArPSAiLz4iOworICAgICAgICAgICAgZWxz
ZSAKKyAgICAgICAgICAgICAgICBtYXJrdXAgKz0gIj4iOwogICAgICAgICAgICAgcmV0dXJuIG1h
cmt1cDsKICAgICAgICAgfQogICAgIH0KIH0KIAotc3RhdGljIFFTdHJpbmcgZW5kTWFya3VwKGNv
bnN0IE5vZGVJbXBsICpub2RlKQorc3RhdGljIGlubGluZSBib29sIGRvZXNIVE1MRm9yYmlkRW5k
VGFnKGNvbnN0IE5vZGVJbXBsICpub2RlKQogewotICAgIGJvb2wgaGFzRW5kVGFnID0gbm9kZS0+
aXNFbGVtZW50Tm9kZSgpOwogICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkpIHsKICAgICAg
ICAgY29uc3QgSFRNTEVsZW1lbnRJbXBsKiBodG1sRWx0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRN
TEVsZW1lbnRJbXBsKj4obm9kZSk7Ci0gICAgICAgIGhhc0VuZFRhZyA9IChodG1sRWx0LT5lbmRU
YWdSZXF1aXJlbWVudCgpICE9IFRhZ1N0YXR1c0ZvcmJpZGRlbik7CisgICAgICAgIHJldHVybiAo
aHRtbEVsdC0+ZW5kVGFnUmVxdWlyZW1lbnQoKSA9PSBUYWdTdGF0dXNGb3JiaWRkZW4pOwogICAg
IH0KLSAgICBpZiAoaGFzRW5kVGFnKQorICAgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIFFT
dHJpbmcgZW5kTWFya3VwKGNvbnN0IE5vZGVJbXBsICpub2RlKQoreworICAgIGlmIChub2RlLT5p
c0VsZW1lbnROb2RlKCkgJiYgbm9kZS0+aGFzQ2hpbGROb2RlcygpICYmICFkb2VzSFRNTEZvcmJp
ZEVuZFRhZyhub2RlKSkKICAgICAgICAgcmV0dXJuICI8LyIgKyBub2RlLT5ub2RlTmFtZSgpLnFz
dHJpbmcoKSArICI+IjsKICAgICByZXR1cm4gIiI7CiB9CkBAIC0yNzAsMjcgKzI3NywxOCBAQCBz
dGF0aWMgUVN0cmluZyBtYXJrdXAoY29uc3QgTm9kZUltcGwgKnN0CiAgICAgUVN0cmluZyBtZSA9
ICIiOwogICAgIGZvciAoY29uc3QgTm9kZUltcGwgKmN1cnJlbnQgPSBzdGFydE5vZGU7IGN1cnJl
bnQgIT0gTlVMTDsgY3VycmVudCA9IGluY2x1ZGVTaWJsaW5ncyA/IGN1cnJlbnQtPm5leHRTaWJs
aW5nKCkgOiBOVUxMKSB7CiAgICAgICAgIGlmICghb25seUluY2x1ZGVDaGlsZHJlbikgewotICAg
ICAgICAgICAgaWYgKG5vZGVzKSB7CisgICAgICAgICAgICBpZiAobm9kZXMpCiAgICAgICAgICAg
ICAgICAgbm9kZXMtPmFwcGVuZChjdXJyZW50KTsKLSAgICAgICAgICAgIH0KICAgICAgICAgICAg
IG1lICs9IHN0YXJ0TWFya3VwKGN1cnJlbnQsIDAsIERvTm90QW5ub3RhdGVGb3JJbnRlcmNoYW5n
ZSwgMCk7CiAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGJvb2wgY29udGFpbmVyID0gdHJ1
ZTsKLSAgICAgICAgaWYgKGN1cnJlbnQtPmlzSFRNTEVsZW1lbnQoKSkgewotICAgICAgICAgICAg
Y29uc3QgSFRNTEVsZW1lbnRJbXBsKiBoID0gc3RhdGljX2Nhc3Q8Y29uc3QgSFRNTEVsZW1lbnRJ
bXBsKj4oY3VycmVudCk7Ci0gICAgICAgICAgICBjb250YWluZXIgPSBoLT5lbmRUYWdSZXF1aXJl
bWVudCgpICE9IFRhZ1N0YXR1c0ZvcmJpZGRlbjsKLSAgICAgICAgfQotICAgICAgICBpZiAoY29u
dGFpbmVyKSB7Ci0gICAgICAgICAgICAvLyBwcmludCBjaGlsZHJlbgotICAgICAgICAgICAgaWYg
KE5vZGVJbXBsICpuID0gY3VycmVudC0+Zmlyc3RDaGlsZCgpKSB7CisgICAgICAgIC8vIHByaW50
IGNoaWxkcmVuCisgICAgICAgIGlmIChOb2RlSW1wbCAqbiA9IGN1cnJlbnQtPmZpcnN0Q2hpbGQo
KSkKKyAgICAgICAgICAgIGlmICghZG9lc0hUTUxGb3JiaWRFbmRUYWcoY3VycmVudCkpCiAgICAg
ICAgICAgICAgICAgbWUgKz0gbWFya3VwKG4sIGZhbHNlLCB0cnVlLCBub2Rlcyk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAvLyBQcmludCBteSBlbmRpbmcgdGFnCi0gICAgICAgICAgICBp
ZiAoIW9ubHlJbmNsdWRlQ2hpbGRyZW4pIHsKLSAgICAgICAgICAgICAgICBtZSArPSBlbmRNYXJr
dXAoY3VycmVudCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgICAgICAgICAK
KyAgICAgICAgLy8gUHJpbnQgbXkgZW5kaW5nIHRhZworICAgICAgICBpZiAoIW9ubHlJbmNsdWRl
Q2hpbGRyZW4pCisgICAgICAgICAgICBtZSArPSBlbmRNYXJrdXAoY3VycmVudCk7CiAgICAgfQog
ICAgIHJldHVybiBtZTsKIH0KQEAgLTQ3Nyw2ICs0NzUsNyBAQCBRU3RyaW5nIGNyZWF0ZU1hcmt1
cChjb25zdCBSYW5nZUltcGwgKnJhCiAKIERvY3VtZW50RnJhZ21lbnRJbXBsICpjcmVhdGVGcmFn
bWVudEZyb21NYXJrdXAoRG9jdW1lbnRJbXBsICpkb2N1bWVudCwgY29uc3QgUVN0cmluZyAmbWFy
a3VwLCBjb25zdCBRU3RyaW5nICZiYXNlVVJMKQogeworICAgIEFTU0VSVChkb2N1bWVudC0+ZG9j
dW1lbnRFbGVtZW50KCktPmlzSFRNTEVsZW1lbnQoKSk7CiAgICAgLy8gRklYTUU6IFdoYXQgaWYg
dGhlIGRvY3VtZW50IGVsZW1lbnQgaXMgbm90IGFuIEhUTUwgZWxlbWVudD8KICAgICBIVE1MRWxl
bWVudEltcGwgKmVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudEltcGwgKj4oZG9jdW1l
bnQtPmRvY3VtZW50RWxlbWVudCgpKTsKIApAQCAtNDkzLDE0ICs0OTIsNyBAQCBRU3RyaW5nIGNy
ZWF0ZU1hcmt1cChjb25zdCBET006Ok5vZGVJbXBsCiAgICAgUVB0ckxpc3Q8RE9NOjpOb2RlSW1w
bD4gKm5vZGVzLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSBhbm5vdGF0ZSkKIHsKICAgICBBU1NF
UlQoYW5ub3RhdGUgPT0gRG9Ob3RBbm5vdGF0ZUZvckludGVyY2hhbmdlKTsgLy8gYW5ub3RhdGlv
biBub3QgeWV0IGltcGxlbWVudGVkIGZvciB0aGlzIGNvZGUgcGF0aAotCi0gICAgLy8gRklYTUU6
IFdlIGNvdWxkIHRha2Ugb3V0IHRoaXMgaWYgc3RhdGVtZW50IGlmIHdlIGhhZCBtb3JlIHRpbWUg
dG8gdGVzdC4KLSAgICAvLyBJJ20gY29uY2VybmVkIHRoYXQgbWFraW5nIHRoaXMgY3Jhc2ggd2hl
biB0aGUgZG9jdW1lbnQgaXMgbmlsIG1pZ2h0IGJlIHRvbyByaXNreSBhIGNoYW5nZSBhdCB0aGUg
bW9tZW50LgotICAgIERvY3VtZW50SW1wbCAqZG9jID0gbm9kZS0+Z2V0RG9jdW1lbnQoKTsKLSAg
ICBhc3NlcnQoZG9jKTsKLSAgICBpZiAoZG9jKQotICAgICAgICBkb2MtPnVwZGF0ZUxheW91dCgp
OwotCisgICAgbm9kZS0+Z2V0RG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CiAgICAgcmV0dXJu
IG1hcmt1cChub2RlLCBpbmNsdWRlQ2hpbGRyZW4sIGZhbHNlLCBub2Rlcyk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4426</attachid>
            <date>2005-10-20 13:14:05 -0700</date>
            <delta_ts>2005-10-24 23:01:07 -0700</delta_ts>
            <desc>Patch to fix toString() and createMarkup() to better support xml</desc>
            <filename>markup_fix.patch</filename>
            <type>text/plain</type>
            <size>14892</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGVkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9raHRtbC9lZGl0aW5nL21hcmt1cC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MzcKZGlmZiAtcCAtdSAtcjEuMzcgZWRpdGluZy9tYXJrdXAuY3BwCi0tLSBlZGl0aW5nL21hcmt1
cC5jcHAJMyBPY3QgMjAwNSAyMToxMjoyMCAtMDAwMAkxLjM3CisrKyBlZGl0aW5nL21hcmt1cC5j
cHAJMjAgT2N0IDIwMDUgMjA6MTA6MzEgLTAwMDAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJlZGl0aW5nL3Zpc2libGVfdW5pdHMuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfZWxlbWVudGlt
cGwuaCIKICNpbmNsdWRlICJ4bWwvZG9tX3Bvc2l0aW9uLmgiCisjaW5jbHVkZSAieG1sL2RvbV94
bWxpbXBsLmgiCiAjaW5jbHVkZSAieG1sL2RvbTJfcmFuZ2VpbXBsLmgiCiAjaW5jbHVkZSAicmVu
ZGVyaW5nL3JlbmRlcl90ZXh0LmgiCiAjaW5jbHVkZSAiaHRtbG5hbWVzLmgiCkBAIC00Miw2ICs0
Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBET006OkhUTUxOYW1lczsKIAogdXNpbmcgRE9NOjpBdHRy
aWJ1dGVJbXBsOwogdXNpbmcgRE9NOjpDb21tZW50SW1wbDsKK3VzaW5nIERPTTo6UHJvY2Vzc2lu
Z0luc3RydWN0aW9uSW1wbDsKIHVzaW5nIERPTTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
SW1wbDsKIHVzaW5nIERPTTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25JbXBsOwogdXNpbmcg
RE9NOjpEb2N1bWVudEZyYWdtZW50SW1wbDsKQEAgLTE3Myw2ICsxNzUsNyBAQCBzdGF0aWMgUVN0
cmluZyByZW5kZXJlZFRleHQoY29uc3QgTm9kZUltCiAKIHN0YXRpYyBRU3RyaW5nIHN0YXJ0TWFy
a3VwKGNvbnN0IE5vZGVJbXBsICpub2RlLCBjb25zdCBSYW5nZUltcGwgKnJhbmdlLCBFQW5ub3Rh
dGVGb3JJbnRlcmNoYW5nZSBhbm5vdGF0ZSwgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25JbXBs
ICpkZWZhdWx0U3R5bGUpCiB7CisgICAgYm9vbCBkb2N1bWVudElzSFRNTCA9IG5vZGUtPmdldERv
Y3VtZW50KCktPmlzSFRNTERvY3VtZW50KCk7CiAgICAgdW5zaWduZWQgc2hvcnQgdHlwZSA9IG5v
ZGUtPm5vZGVUeXBlKCk7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgTm9kZTo6
VEVYVF9OT0RFOiB7CkBAIC0xODcsMTggKzE5MCwxNCBAQCBzdGF0aWMgUVN0cmluZyBzdGFydE1h
cmt1cChjb25zdCBOb2RlSW1wCiAgICAgICAgICAgICBpZiAoZGVmYXVsdFN0eWxlKSB7CiAgICAg
ICAgICAgICAgICAgTm9kZUltcGwgKmVsZW1lbnQgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAg
ICAgICAgICAgICAgaWYgKGVsZW1lbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uSW1wbCAqY29tcHV0ZWRTdHlsZSA9IFBvc2l0aW9uKGVsZW1lbnQs
IDApLmNvbXB1dGVkU3R5bGUoKTsKLSAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWRTdHlsZS0+
cmVmKCk7Ci0gICAgICAgICAgICAgICAgICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uSW1w
bCAqc3R5bGUgPSBjb21wdXRlZFN0eWxlLT5jb3B5SW5oZXJpdGFibGVQcm9wZXJ0aWVzKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkU3R5bGUtPmRlcmVmKCk7Ci0gICAgICAgICAgICAg
ICAgICAgIHN0eWxlLT5yZWYoKTsKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFN0eWxlLT5k
aWZmKHN0eWxlKTsKKyAgICAgICAgICAgICAgICAgICAgU2hhcmVkUHRyPENTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbkltcGw+IGNvbXB1dGVkU3R5bGUgPSBQb3NpdGlvbihlbGVtZW50LCAwKS5j
b21wdXRlZFN0eWxlKCk7CisgICAgICAgICAgICAgICAgICAgIFNoYXJlZFB0cjxDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbkltcGw+IHN0eWxlID0gY29tcHV0ZWRTdHlsZS0+Y29weUluaGVyaXRh
YmxlUHJvcGVydGllcygpOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0U3R5bGUtPmRpZmYo
c3R5bGUuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoc3R5bGUtPmxlbmd0aCgpID4g
MCkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBjYXNlIHdoZXJl
IHN0eWxlLT5jc3NUZXh0KCkgaGFzIGlsbGVnYWwgY2hhcmFjdGVycyBpbiBpdCwgbGlrZSAiCiAg
ICAgICAgICAgICAgICAgICAgICAgICBRU3RyaW5nIG9wZW5UYWcgPSBRU3RyaW5nKCI8c3BhbiBj
bGFzcz1cIiIpICsgQXBwbGVTdHlsZVNwYW5DbGFzcyArICJcIiBzdHlsZT1cIiIgKyBzdHlsZS0+
Y3NzVGV4dCgpLnFzdHJpbmcoKSArICJcIj4iOwogICAgICAgICAgICAgICAgICAgICAgICAgbWFy
a3VwID0gb3BlblRhZyArIG1hcmt1cCArICI8L3NwYW4+IjsKICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICBzdHlsZS0+ZGVyZWYoKTsKICAgICAgICAgICAgICAgICB9
ICAgICAgICAgICAgCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gYW5ub3RhdGUg
PyBjb252ZXJ0SFRNTFRleHRUb0ludGVyY2hhbmdlRm9ybWF0KG1hcmt1cCkgOiBtYXJrdXA7CkBA
IC0yMDcsMjUgKzIwNiwyMyBAQCBzdGF0aWMgUVN0cmluZyBzdGFydE1hcmt1cChjb25zdCBOb2Rl
SW1wCiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ29tbWVudEltcGwgKj4o
bm9kZSktPnRvU3RyaW5nKCkucXN0cmluZygpOwogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5U
X05PREU6CiAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VT
U0lOR19JTlNUUlVDVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGwgKj4obm9kZSktPnRvU3RyaW5nKCkucXN0cmlu
ZygpOwogICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgICBRU3RyaW5nIG1hcmt1cCA9IFFD
aGFyKCc8JykgKyBub2RlLT5ub2RlTmFtZSgpLnFzdHJpbmcoKTsKICAgICAgICAgICAgIGlmICh0
eXBlID09IE5vZGU6OkVMRU1FTlRfTk9ERSkgewogICAgICAgICAgICAgICAgIGNvbnN0IEVsZW1l
bnRJbXBsICplbCA9IHN0YXRpY19jYXN0PGNvbnN0IEVsZW1lbnRJbXBsICo+KG5vZGUpOwogICAg
ICAgICAgICAgICAgIERPTVN0cmluZyBhZGRpdGlvbmFsU3R5bGU7CiAgICAgICAgICAgICAgICAg
aWYgKGRlZmF1bHRTdHlsZSAmJiBlbC0+aXNIVE1MRWxlbWVudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbkltcGwgKmNvbXB1dGVkU3R5bGUgPSBQ
b3NpdGlvbihjb25zdF9jYXN0PEVsZW1lbnRJbXBsICo+KGVsKSwgMCkuY29tcHV0ZWRTdHlsZSgp
OwotICAgICAgICAgICAgICAgICAgICBjb21wdXRlZFN0eWxlLT5yZWYoKTsKLSAgICAgICAgICAg
ICAgICAgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25JbXBsICpzdHlsZSA9IGNvbXB1dGVk
U3R5bGUtPmNvcHlJbmhlcml0YWJsZVByb3BlcnRpZXMoKTsKLSAgICAgICAgICAgICAgICAgICAg
Y29tcHV0ZWRTdHlsZS0+ZGVyZWYoKTsKLSAgICAgICAgICAgICAgICAgICAgc3R5bGUtPnJlZigp
OwotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0U3R5bGUtPmRpZmYoc3R5bGUpOworICAgICAg
ICAgICAgICAgICAgICBTaGFyZWRQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uSW1wbD4g
Y29tcHV0ZWRTdHlsZSA9IFBvc2l0aW9uKGNvbnN0X2Nhc3Q8RWxlbWVudEltcGwgKj4oZWwpLCAw
KS5jb21wdXRlZFN0eWxlKCk7CisgICAgICAgICAgICAgICAgICAgIFNoYXJlZFB0cjxDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbkltcGw+IHN0eWxlID0gY29tcHV0ZWRTdHlsZS0+Y29weUluaGVy
aXRhYmxlUHJvcGVydGllcygpOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0U3R5bGUtPmRp
ZmYoc3R5bGUuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoc3R5bGUtPmxlbmd0aCgp
ID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b25JbXBsICppbmxpbmVTdHlsZURlY2wgPSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MRWxlbWVudElt
cGwgKj4oZWwpLT5pbmxpbmVTdHlsZURlY2woKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChpbmxpbmVTdHlsZURlY2wpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lU3R5
bGVEZWNsLT5kaWZmKHN0eWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmxpbmVT
dHlsZURlY2wtPmRpZmYoc3R5bGUuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgYWRk
aXRpb25hbFN0eWxlID0gc3R5bGUtPmNzc1RleHQoKTsKICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICBzdHlsZS0+ZGVyZWYoKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgTmFtZWRBdHRyTWFwSW1wbCAqYXR0cnMgPSBlbC0+YXR0cmlidXRlcygp
OwogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGF0dHJzLT5sZW5ndGgoKTsKQEAg
LTI0MCwyNSArMjM3LDM1IEBAIHN0YXRpYyBRU3RyaW5nIHN0YXJ0TWFya3VwKGNvbnN0IE5vZGVJ
bXAKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gc3R5bGVBdHRy
ICYmIGFkZGl0aW9uYWxTdHlsZS5sZW5ndGgoKSA+IDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFsdWUgKz0gIjsgIiArIGFkZGl0aW9uYWxTdHlsZTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgY2FzZSB3aGVyZSB2YWx1ZSBoYXMgaWxsZWdhbCBjaGFy
YWN0ZXJzIGluIGl0LCBsaWtlICIKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBO
YW1lc3BhY2VzISBYTUwhIEFjayEKLSAgICAgICAgICAgICAgICAgICAgICAgIG1hcmt1cCArPSAi
ICIgKyBhdHRyLT5uYW1lKCkubG9jYWxOYW1lKCkucXN0cmluZygpICsgIj1cIiIgKyB2YWx1ZS5x
c3RyaW5nKCkgKyAiXCIiOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50SXNI
VE1MKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmt1cCArPSAiICIgKyBhdHRyLT5u
YW1lKCkubG9jYWxOYW1lKCkucXN0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmt1cCArPSAiICIgKyBhdHRyLT5uYW1l
KCkudG9TdHJpbmcoKS5xc3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXJrdXAg
Kz0gIj1cIiIgKyB2YWx1ZS5xc3RyaW5nKCkgKyAiXCIiOwogICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAgbWFya3VwICs9
IG5vZGUtPmlzSFRNTEVsZW1lbnQoKSA/ICI+IiA6ICIvPiI7CisgICAgICAgICAgICBpZiAoIWRv
Y3VtZW50SXNIVE1MICYmICFub2RlLT5oYXNDaGlsZE5vZGVzKCkpCisgICAgICAgICAgICAgICAg
bWFya3VwICs9ICIvPiI7CisgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgIG1hcmt1
cCArPSAiPiI7CiAgICAgICAgICAgICByZXR1cm4gbWFya3VwOwogICAgICAgICB9CiAgICAgfQog
fQogCi1zdGF0aWMgUVN0cmluZyBlbmRNYXJrdXAoY29uc3QgTm9kZUltcGwgKm5vZGUpCitzdGF0
aWMgaW5saW5lIGJvb2wgZG9lc0hUTUxGb3JiaWRFbmRUYWcoY29uc3QgTm9kZUltcGwgKm5vZGUp
CiB7Ci0gICAgYm9vbCBoYXNFbmRUYWcgPSBub2RlLT5pc0VsZW1lbnROb2RlKCk7CiAgICAgaWYg
KG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkgewogICAgICAgICBjb25zdCBIVE1MRWxlbWVudEltcGwq
IGh0bWxFbHQgPSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MRWxlbWVudEltcGwqPihub2RlKTsKLSAg
ICAgICAgaGFzRW5kVGFnID0gKGh0bWxFbHQtPmVuZFRhZ1JlcXVpcmVtZW50KCkgIT0gVGFnU3Rh
dHVzRm9yYmlkZGVuKTsKKyAgICAgICAgcmV0dXJuIChodG1sRWx0LT5lbmRUYWdSZXF1aXJlbWVu
dCgpID09IFRhZ1N0YXR1c0ZvcmJpZGRlbik7CiAgICAgfQotICAgIGlmIChoYXNFbmRUYWcpCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgUVN0cmluZyBlbmRNYXJrdXAoY29uc3QgTm9k
ZUltcGwgKm5vZGUpCit7CisgICAgaWYgKG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiBub2RlLT5o
YXNDaGlsZE5vZGVzKCkgJiYgIWRvZXNIVE1MRm9yYmlkRW5kVGFnKG5vZGUpKQogICAgICAgICBy
ZXR1cm4gIjwvIiArIG5vZGUtPm5vZGVOYW1lKCkucXN0cmluZygpICsgIj4iOwogICAgIHJldHVy
biAiIjsKIH0KQEAgLTI3MCwyNyArMjc3LDE4IEBAIHN0YXRpYyBRU3RyaW5nIG1hcmt1cChjb25z
dCBOb2RlSW1wbCAqc3QKICAgICBRU3RyaW5nIG1lID0gIiI7CiAgICAgZm9yIChjb25zdCBOb2Rl
SW1wbCAqY3VycmVudCA9IHN0YXJ0Tm9kZTsgY3VycmVudCAhPSBOVUxMOyBjdXJyZW50ID0gaW5j
bHVkZVNpYmxpbmdzID8gY3VycmVudC0+bmV4dFNpYmxpbmcoKSA6IE5VTEwpIHsKICAgICAgICAg
aWYgKCFvbmx5SW5jbHVkZUNoaWxkcmVuKSB7Ci0gICAgICAgICAgICBpZiAobm9kZXMpIHsKKyAg
ICAgICAgICAgIGlmIChub2RlcykKICAgICAgICAgICAgICAgICBub2Rlcy0+YXBwZW5kKGN1cnJl
bnQpOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgbWUgKz0gc3RhcnRNYXJrdXAoY3VycmVu
dCwgMCwgRG9Ob3RBbm5vdGF0ZUZvckludGVyY2hhbmdlLCAwKTsKICAgICAgICAgfQotICAgICAg
ICAKLSAgICAgICAgYm9vbCBjb250YWluZXIgPSB0cnVlOwotICAgICAgICBpZiAoY3VycmVudC0+
aXNIVE1MRWxlbWVudCgpKSB7Ci0gICAgICAgICAgICBjb25zdCBIVE1MRWxlbWVudEltcGwqIGgg
PSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MRWxlbWVudEltcGwqPihjdXJyZW50KTsKLSAgICAgICAg
ICAgIGNvbnRhaW5lciA9IGgtPmVuZFRhZ1JlcXVpcmVtZW50KCkgIT0gVGFnU3RhdHVzRm9yYmlk
ZGVuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChjb250YWluZXIpIHsKLSAgICAgICAgICAgIC8v
IHByaW50IGNoaWxkcmVuCi0gICAgICAgICAgICBpZiAoTm9kZUltcGwgKm4gPSBjdXJyZW50LT5m
aXJzdENoaWxkKCkpIHsKKyAgICAgICAgLy8gcHJpbnQgY2hpbGRyZW4KKyAgICAgICAgaWYgKE5v
ZGVJbXBsICpuID0gY3VycmVudC0+Zmlyc3RDaGlsZCgpKQorICAgICAgICAgICAgaWYgKCFkb2Vz
SFRNTEZvcmJpZEVuZFRhZyhjdXJyZW50KSkKICAgICAgICAgICAgICAgICBtZSArPSBtYXJrdXAo
biwgZmFsc2UsIHRydWUsIG5vZGVzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIFBy
aW50IG15IGVuZGluZyB0YWcKLSAgICAgICAgICAgIGlmICghb25seUluY2x1ZGVDaGlsZHJlbikg
ewotICAgICAgICAgICAgICAgIG1lICs9IGVuZE1hcmt1cChjdXJyZW50KTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAgICAvLyBQcmludCBteSBlbmRp
bmcgdGFnCisgICAgICAgIGlmICghb25seUluY2x1ZGVDaGlsZHJlbikKKyAgICAgICAgICAgIG1l
ICs9IGVuZE1hcmt1cChjdXJyZW50KTsKICAgICB9CiAgICAgcmV0dXJuIG1lOwogfQpAQCAtNDc3
LDYgKzQ3NSw3IEBAIFFTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdlSW1wbCAqcmEKIAog
RG9jdW1lbnRGcmFnbWVudEltcGwgKmNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cChEb2N1bWVudElt
cGwgKmRvY3VtZW50LCBjb25zdCBRU3RyaW5nICZtYXJrdXAsIGNvbnN0IFFTdHJpbmcgJmJhc2VV
UkwpCiB7CisgICAgQVNTRVJUKGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKS0+aXNIVE1MRWxl
bWVudCgpKTsKICAgICAvLyBGSVhNRTogV2hhdCBpZiB0aGUgZG9jdW1lbnQgZWxlbWVudCBpcyBu
b3QgYW4gSFRNTCBlbGVtZW50PwogICAgIEhUTUxFbGVtZW50SW1wbCAqZWxlbWVudCA9IHN0YXRp
Y19jYXN0PEhUTUxFbGVtZW50SW1wbCAqPihkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCkpOwog
CkBAIC00OTMsMTQgKzQ5Miw3IEBAIFFTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IERPTTo6Tm9k
ZUltcGwKICAgICBRUHRyTGlzdDxET006Ok5vZGVJbXBsPiAqbm9kZXMsIEVBbm5vdGF0ZUZvcklu
dGVyY2hhbmdlIGFubm90YXRlKQogewogICAgIEFTU0VSVChhbm5vdGF0ZSA9PSBEb05vdEFubm90
YXRlRm9ySW50ZXJjaGFuZ2UpOyAvLyBhbm5vdGF0aW9uIG5vdCB5ZXQgaW1wbGVtZW50ZWQgZm9y
IHRoaXMgY29kZSBwYXRoCi0KLSAgICAvLyBGSVhNRTogV2UgY291bGQgdGFrZSBvdXQgdGhpcyBp
ZiBzdGF0ZW1lbnQgaWYgd2UgaGFkIG1vcmUgdGltZSB0byB0ZXN0LgotICAgIC8vIEknbSBjb25j
ZXJuZWQgdGhhdCBtYWtpbmcgdGhpcyBjcmFzaCB3aGVuIHRoZSBkb2N1bWVudCBpcyBuaWwgbWln
aHQgYmUgdG9vIHJpc2t5IGEgY2hhbmdlIGF0IHRoZSBtb21lbnQuCi0gICAgRG9jdW1lbnRJbXBs
ICpkb2MgPSBub2RlLT5nZXREb2N1bWVudCgpOwotICAgIGFzc2VydChkb2MpOwotICAgIGlmIChk
b2MpCi0gICAgICAgIGRvYy0+dXBkYXRlTGF5b3V0KCk7Ci0KKyAgICBub2RlLT5nZXREb2N1bWVu
dCgpLT51cGRhdGVMYXlvdXQoKTsKICAgICByZXR1cm4gbWFya3VwKG5vZGUsIGluY2x1ZGVDaGls
ZHJlbiwgZmFsc2UsIG5vZGVzKTsKIH0KIApJbmRleDogaHRtbC9odG1sX2VsZW1lbnRpbXBsLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWxf
ZWxlbWVudGltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEwOApkaWZmIC1wIC11IC1y
MS4xMDggaHRtbC9odG1sX2VsZW1lbnRpbXBsLmNwcAotLS0gaHRtbC9odG1sX2VsZW1lbnRpbXBs
LmNwcAk5IE9jdCAyMDA1IDAyOjE0OjA1IC0wMDAwCTEuMTA4CisrKyBodG1sL2h0bWxfZWxlbWVu
dGltcGwuY3BwCTIwIE9jdCAyMDA1IDIwOjEwOjMzIC0wMDAwCkBAIC0yODYsMjMgKzI4NiwxNSBA
QCBEb2N1bWVudEZyYWdtZW50SW1wbCAqSFRNTEVsZW1lbnRJbXBsOjpjCiAgICAgRG9jdW1lbnRG
cmFnbWVudEltcGwgKmZyYWdtZW50ID0gbmV3IERvY3VtZW50RnJhZ21lbnRJbXBsKGRvY1B0cigp
KTsKICAgICBmcmFnbWVudC0+cmVmKCk7CiAgICAgCi0gICAgaWYgKCFnZXREb2N1bWVudCgpLT5p
c0hUTUxEb2N1bWVudCgpKSB7Ci0gICAgICAgIGJvb2wgcmV0ID0gcGFyc2VYTUxEb2N1bWVudEZy
YWdtZW50KGh0bWwsIGZyYWdtZW50LCB0aGlzKTsKLSAgICAgICAgCi0gICAgICAgIGlmICghcmV0
KSB7CisgICAgaWYgKGdldERvY3VtZW50KCktPmlzSFRNTERvY3VtZW50KCkpCisgICAgICAgICBw
YXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KGh0bWwsIGZyYWdtZW50KTsKKyAgICBlbHNlIHsKKyAg
ICAgICAgaWYgKCFwYXJzZVhNTERvY3VtZW50RnJhZ21lbnQoaHRtbCwgZnJhZ21lbnQsIHRoaXMp
KSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb3BhZ2F0ZSBhIHN5bnRheCBl
cnJvciBleGNlcHRpb24gb3V0IGhlcmUuCiAgICAgICAgICAgICBmcmFnbWVudC0+ZGVyZWYoKTsK
ICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgfQotICAgIGVsc2UKLSAgICB7
Ci0gICAgICAgIEhUTUxUb2tlbml6ZXIgdG9rKGRvY1B0cigpLCBmcmFnbWVudCk7Ci0gICAgICAg
IHRvay5zZXRGb3JjZVN5bmNocm9ub3VzKHRydWUpOyAgICAgICAgICAgIC8vIGRpc2FibGUgYXN5
bmNocm9ub3VzIHBhcnNpbmcKLSAgICAgICAgdG9rLndyaXRlKCBodG1sLnFzdHJpbmcoKSwgdHJ1
ZSApOwotICAgICAgICB0b2suZmluaXNoKCk7Ci0gICAgICAgIGFzc2VydCghdG9rLnByb2Nlc3Np
bmdEYXRhKCkpOyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB3ZSdyZSBkb25lIChzZWUgMzk2MzE1
MSkKLSAgICB9CiAKICAgICAvLyBFeGNlcHRpb25zIGFyZSBpZ25vcmVkIGJlY2F1c2Ugbm9uZSBv
dWdodCB0byBoYXBwZW4gaGVyZS4KICAgICBpbnQgaWdub3JlZEV4Y2VwdGlvbkNvZGU7CkBAIC02
MDMsNyArNTk1LDcgQEAgdm9pZCBIVE1MRWxlbWVudEltcGw6OmFjY2Vzc0tleUFjdGlvbihibwog
CiBET01TdHJpbmcgSFRNTEVsZW1lbnRJbXBsOjp0b1N0cmluZygpIGNvbnN0CiB7Ci0gICAgaWYg
KCFoYXNDaGlsZE5vZGVzKCkpIHsKKyAgICBpZiAoIWhhc0NoaWxkTm9kZXMoKSAmJiBnZXREb2N1
bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpKSB7CiAJRE9NU3RyaW5nIHJlc3VsdCA9IG9wZW5UYWdT
dGFydFRvU3RyaW5nKCk7CiAJcmVzdWx0ICs9ICI+IjsKIApJbmRleDogaHRtbC9odG1sdG9rZW5p
emVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9odG1s
L2h0bWx0b2tlbml6ZXIuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEyMApkaWZmIC1wIC11
IC1yMS4xMjAgaHRtbC9odG1sdG9rZW5pemVyLmNwcAotLS0gaHRtbC9odG1sdG9rZW5pemVyLmNw
cAkyMCBPY3QgMjAwNSAwNjowMjoyMyAtMDAwMAkxLjEyMAorKysgaHRtbC9odG1sdG9rZW5pemVy
LmNwcAkyMCBPY3QgMjAwNSAyMDoxMDozNSAtMDAwMApAQCAtMTg0MCw0ICsxODQwLDEzIEBAIHZv
aWQgSFRNTFRva2VuaXplcjo6c2V0T25Ib2xkKGJvb2wgX29uSG8KICAgICBvbkhvbGQgPSBfb25I
b2xkOwogfQogCit2b2lkIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQoY29uc3QgRE9NOjpET01T
dHJpbmcgJnNvdXJjZSwgRE9NOjpEb2N1bWVudEZyYWdtZW50SW1wbCAqZnJhZ21lbnQpCit7Cisg
ICAgSFRNTFRva2VuaXplciB0b2soZnJhZ21lbnQtPmRvY1B0cigpLCBmcmFnbWVudCk7CisgICAg
dG9rLnNldEZvcmNlU3luY2hyb25vdXModHJ1ZSk7CisgICAgdG9rLndyaXRlKHNvdXJjZS5xc3Ry
aW5nKCksIHRydWUpOworICAgIHRvay5maW5pc2goKTsKKyAgICBhc3NlcnQoIXRvay5wcm9jZXNz
aW5nRGF0YSgpKTsgICAgICAvLyBtYWtlIHN1cmUgd2UncmUgZG9uZSAoc2VlIDM5NjMxNTEpCit9
CisKIH0KSW5kZXg6IGh0bWwvaHRtbHRva2VuaXplci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9XZWJDb3JlL2todG1sL2h0bWwvaHRtbHRva2VuaXplci5oLHYKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjQyCmRpZmYgLXAgLXUgLXIxLjQyIGh0bWwvaHRtbHRva2VuaXplci5oCi0tLSBo
dG1sL2h0bWx0b2tlbml6ZXIuaAkxOCBPY3QgMjAwNSAwMzoxNToyOSAtMDAwMAkxLjQyCisrKyBo
dG1sL2h0bWx0b2tlbml6ZXIuaAkyMCBPY3QgMjAwNSAyMDoxMDozNiAtMDAwMApAQCAtMzgxLDYg
KzM4MSw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIGluV3JpdGU7CiB9OwogCit2b2lkIHBhcnNl
SFRNTERvY3VtZW50RnJhZ21lbnQoY29uc3QgRE9NOjpET01TdHJpbmcgJiwgRE9NOjpEb2N1bWVu
dEZyYWdtZW50SW1wbCAqKTsKKwogfQogCiAjaWYgQVBQTEVfQ0hBTkdFUwpJbmRleDogeG1sL2Rv
bV94bWxpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRt
bC94bWwvZG9tX3htbGltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjE2CmRpZmYgLXAg
LXUgLXIxLjE2IHhtbC9kb21feG1saW1wbC5jcHAKLS0tIHhtbC9kb21feG1saW1wbC5jcHAJMyBP
Y3QgMjAwNSAyMToxMjo1NCAtMDAwMAkxLjE2CisrKyB4bWwvZG9tX3htbGltcGwuY3BwCTIwIE9j
dCAyMDA1IDIwOjEwOjM4IC0wMDAwCkBAIC0zMDMsNyArMzAzLDYgQEAgUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uSW1wbDo6UHJvY2Vzc2luZ0lucwogICAgIG1fdGFyZ2V0ID0gMDsKICAgICBtX2RhdGEg
PSAwOwogICAgIG1fbG9jYWxIcmVmID0gMDsKLSAgICBtX3NoZWV0ID0gMDsKICAgICBtX2NhY2hl
ZFNoZWV0ID0gMDsKICAgICBtX2xvYWRpbmcgPSBmYWxzZTsKICNpZmRlZiBLSFRNTF9YU0xUCkBA
IC0zMTksNyArMzE4LDYgQEAgUHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbDo6UHJvY2Vzc2luZ0lu
cwogICAgIG1fZGF0YSA9IF9kYXRhLmltcGwoKTsKICAgICBpZiAobV9kYXRhKQogICAgICAgICBt
X2RhdGEtPnJlZigpOwotICAgIG1fc2hlZXQgPSAwOwogICAgIG1fY2FjaGVkU2hlZXQgPSAwOwog
ICAgIG1fbG9jYWxIcmVmID0gMDsKICNpZmRlZiBLSFRNTF9YU0xUCkBAIC0zMzUsOCArMzMzLDYg
QEAgUHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbDo6flByb2Nlc3NpbmdJbgogICAgICAgICBtX2Rh
dGEtPmRlcmVmKCk7CiAgICAgaWYgKG1fY2FjaGVkU2hlZXQpCiAJbV9jYWNoZWRTaGVldC0+ZGVy
ZWYodGhpcyk7Ci0gICAgaWYgKG1fc2hlZXQpCi0JbV9zaGVldC0+ZGVyZWYoKTsKIH0KIAogRE9N
U3RyaW5nIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGw6OnRhcmdldCgpIGNvbnN0CkBAIC00OTIs
MTEgKzQ4OCw2IEBAIGJvb2wgUHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbDo6Y2hlY2tTdHkKICAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAotU3R5bGVTaGVldEltcGwqIFByb2Nlc3NpbmdJbnN0cnVjdGlv
bkltcGw6OnNoZWV0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zaGVldDsKLX0KLQogYm9vbCBQ
cm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsOjppc0xvYWRpbmcoKSBjb25zdAogewogICAgIGlmICht
X2xvYWRpbmcpCkBAIC01MzUsMjIgKzUyNiwxMyBAQCB2b2lkIFByb2Nlc3NpbmdJbnN0cnVjdGlv
bkltcGw6OnNldFN0eWxlCiAgICAgICAgIGdldERvY3VtZW50KCktPnN0eWxlc2hlZXRMb2FkZWQo
KTsKIH0KIAotdm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsOjpzZXRTdHlsZVNoZWV0KENT
U1N0eWxlU2hlZXRJbXBsKiBzaGVldCkKLXsKLSAgICBpZiAobV9zaGVldCkKLSAgICAgICAgbV9z
aGVldC0+ZGVyZWYoKTsKLSAgICBtX3NoZWV0ID0gc2hlZXQ7Ci0gICAgaWYgKG1fc2hlZXQpCi0g
ICAgICAgIG1fc2hlZXQtPnJlZigpOwotfQotCiBET01TdHJpbmcgUHJvY2Vzc2luZ0luc3RydWN0
aW9uSW1wbDo6dG9TdHJpbmcoKSBjb25zdAogewogICAgIERPTVN0cmluZyByZXN1bHQgPSAiPD8i
OwogICAgIHJlc3VsdCArPSBtX3RhcmdldDsKICAgICByZXN1bHQgKz0gIiAiOwogICAgIHJlc3Vs
dCArPSBtX2RhdGE7Ci0gICAgcmVzdWx0ICs9ICI+IjsKKyAgICByZXN1bHQgKz0gIj8+IjsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCkluZGV4OiB4bWwvZG9tX3htbGltcGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX3htbGltcGwuaCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS4xMwpkaWZmIC1wIC11IC1yMS4xMyB4bWwvZG9tX3htbGltcGwu
aAotLS0geG1sL2RvbV94bWxpbXBsLmgJMTAgTWF5IDIwMDUgMjE6NTk6MTUgLTAwMDAJMS4xMwor
KysgeG1sL2RvbV94bWxpbXBsLmgJMjAgT2N0IDIwMDUgMjA6MTA6MzkgLTAwMDAKQEAgLTIzLDYg
KzIzLDcgQEAKICNpZm5kZWYgX0RPTV9YbWxJbXBsX2hfCiAjZGVmaW5lIF9ET01fWG1sSW1wbF9o
XwogCisjaW5jbHVkZSAiY3NzX3N0eWxlc2hlZXRpbXBsLmgiCiAjaW5jbHVkZSAieG1sL2RvbV9u
b2RlaW1wbC5oIgogI2luY2x1ZGUgIm1pc2MvbG9hZGVyX2NsaWVudC5oIgogCkBAIC0zMyw4ICsz
NCw2IEBAIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQ7CiBuYW1lc3BhY2UgRE9NIHsKIAogY2xh
c3MgRG9jdW1lbnRJbXBsOwotY2xhc3MgQ1NTU3R5bGVTaGVldEltcGw7Ci1jbGFzcyBTdHlsZVNo
ZWV0SW1wbDsKIGNsYXNzIERPTVN0cmluZzsKICNpZiBBUFBMRV9DSEFOR0VTCiBjbGFzcyBQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb247CkBAIC0xNTAsMTAgKzE0OSwxMCBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIERPTVN0cmluZyBsb2NhbEhyZWYoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgY2hp
bGRUeXBlQWxsb3dlZCggdW5zaWduZWQgc2hvcnQgdHlwZSApOwotICAgIFN0eWxlU2hlZXRJbXBs
ICpzaGVldCgpIGNvbnN0OworICAgIFN0eWxlU2hlZXRJbXBsICpzaGVldCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2hlZXQuZ2V0KCk7IH0KICAgICBib29sIGNoZWNrU3R5bGVTaGVldCgpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTdHlsZVNoZWV0KGNvbnN0IERPTVN0cmluZyAmdXJsLCBjb25zdCBET01T
dHJpbmcgJnNoZWV0KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3R5bGVTaGVldChDU1NTdHlsZVNo
ZWV0SW1wbCogc2hlZXQpOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdHlsZVNoZWV0KENTU1N0eWxl
U2hlZXRJbXBsICpzaGVldCkgeyBtX3NoZWV0ID0gc2hlZXQ7IH0KICAgICBib29sIGlzTG9hZGlu
ZygpIGNvbnN0OwogICAgIHZvaWQgc2hlZXRMb2FkZWQoKTsKIApAQCAtMTY4LDcgKzE2Nyw3IEBA
IHByb3RlY3RlZDoKICAgICBET01TdHJpbmdJbXBsICptX2RhdGE7CiAgICAgRE9NU3RyaW5nSW1w
bCAqbV9sb2NhbEhyZWY7CiAgICAga2h0bWw6OkNhY2hlZE9iamVjdCAqbV9jYWNoZWRTaGVldDsK
LSAgICBTdHlsZVNoZWV0SW1wbCAqbV9zaGVldDsKKyAgICBTaGFyZWRQdHI8U3R5bGVTaGVldElt
cGw+IG1fc2hlZXQ7CiAgICAgYm9vbCBtX2xvYWRpbmc7CiAjaWZkZWYgS0hUTUxfWFNMVAogICAg
IGJvb2wgbV9pc1hTTDsK
</data>
<flag name="review"
          id="760"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4431</attachid>
            <date>2005-10-20 15:05:00 -0700</date>
            <delta_ts>2005-10-20 15:05:00 -0700</delta_ts>
            <desc>One patched test</desc>
            <filename>test.patch</filename>
            <type>text/plain</type>
            <size>1091</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGRvbS9kb20tcGFyc2Utc2VyaWFsaXplLWRpc3BsYXktZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9MYXlvdXRUZXN0cy9mYXN0L2RvbS9kb20tcGFyc2Ut
c2VyaWFsaXplLWRpc3BsYXktZXhwZWN0ZWQudHh0LHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIK
ZGlmZiAtcCAtdSAtcjEuMiBkb20vZG9tLXBhcnNlLXNlcmlhbGl6ZS1kaXNwbGF5LWV4cGVjdGVk
LnR4dAotLS0gZG9tL2RvbS1wYXJzZS1zZXJpYWxpemUtZGlzcGxheS1leHBlY3RlZC50eHQJMTkg
SnVsIDIwMDUgMTg6MzU6NTIgLTAwMDAJMS4yCisrKyBkb20vZG9tLXBhcnNlLXNlcmlhbGl6ZS1k
aXNwbGF5LWV4cGVjdGVkLnR4dAkyMCBPY3QgMjAwNSAyMjowNTo0OSAtMDAwMApAQCAtNDQsNyAr
NDQsNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJUZXh0
IHtURVhUfSBhdCAoMCwwKSBzaXplIDB4MAogICAgICAgICBSZW5kZXJCbG9jayB7UFJFfSBhdCAo
MjcsMzIpIHNpemUgNzU2eDYwCiAgICAgICAgICAgUmVuZGVyVGV4dCB7VEVYVH0gYXQgKDAsMCkg
c2l6ZSA1MzZ4NjAKLSAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ1NjogIjw/
eG1sLXN0eWxlc2hlZXQgaHJlZj1cImRpc3BsYXkuY3NzXCIgdHlwZT1cInRleHQvY3NzXCI+PGRv
Yz4iCisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NjQ6ICI8P3htbC1zdHls
ZXNoZWV0IGhyZWY9XCJkaXNwbGF5LmNzc1wiIHR5cGU9XCJ0ZXh0L2Nzc1wiPz48ZG9jPiIKICAg
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE1KSB3aWR0aCA1MzY6ICIgIDxmb28geG1sbnM9XCJm
b29iYXJcIj5PbmU8L2Zvbz4gPHg6YmFyIHhtbG5zOng9XCJiYXJmb29cIj5Ud288L3g6YmFyPiIK
ICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDMwKSB3aWR0aCAxODQ6ICIgIDxkIGlkPVwiaWQz
XCI+VGhyZWU8L2Q+IgogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsNDUpIHdpZHRoIDQ4OiAi
PC9kb2M+Igo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4468</attachid>
            <date>2005-10-24 22:52:19 -0700</date>
            <delta_ts>2005-10-25 12:20:17 -0700</delta_ts>
            <desc>Another new test case, using innerHTML</desc>
            <filename>additional_test.patch</filename>
            <type>text/plain</type>
            <size>1992</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IDAwNC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogMDA0LWV4cGVjdGVk
LnR4dApkaWZmIC1OIDAwNC1leHBlY3RlZC50eHQKLS0tIDAwNC1leHBlY3RlZC50eHQJMSBKYW4g
MTk3MCAwMDowMDowMCAtMDAwMAorKysgMDA0LWV4cGVjdGVkLnR4dAkyNSBPY3QgMjAwNSAwNTo1
Mjo0OCAtMDAwMApAQCAtMCwwICsxLDIwIEBACitDb250ZW50OgorCis8aGVhZD4KKzxtZXRhIG5h
bWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJUaGlzIHRlc3RzIHNpbmd1bGFyIGVsZW1lbnRzIHRv
byIvPgorPHRpdGxlPnhodG1sIGlubmVySFRNTCB0ZXN0PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5
PgorPHNwYW4+Q29udGVudDo8L3NwYW4+Cis8cHJlIGlkPSJjb250ZW50Ij5wbGFjZWhvbGRlcjwv
cHJlPgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5r
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjIwMCI+
CisgIDw/eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiIGhyZWY9IiI/PgorICA8Y2lyY2xl
IGN4PSIxNTAiIGN5PSIxMDAiIHI9IjUwIiB4bGluazp0aXRsZT0idGVzdCIvPgorPC9zdmc+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKwlsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIp
LmZpcnN0Q2hpbGQubm9kZVZhbHVlID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRN
TDsKKzwvc2NyaXB0PgorPC9ib2R5PgorCkluZGV4OiAwMDQueGh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1Mg
ZmlsZTogMDA0LnhodG1sCmRpZmYgLU4gMDA0LnhodG1sCi0tLSAwMDQueGh0bWwJMSBKYW4gMTk3
MCAwMDowMDowMCAtMDAwMAorKysgMDA0LnhodG1sCTI1IE9jdCAyMDA1IDA1OjUyOjQ4IC0wMDAw
CkBAIC0wLDAgKzEsMjMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+
Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMKKyAgICAiLS8vVzNDLy9EVEQgWEhUTUwgMS4xIHBsdXMg
TWF0aE1MIDIuMCBwbHVzIFNWRyAxLjEvL0VOIgorICAgICJodHRwOi8vd3d3LnczLm9yZy8yMDAy
LzA0L3hodG1sLW1hdGgtc3ZnL3hodG1sLW1hdGgtc3ZnLWZsYXQuZHRkIj4KKzxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPG1ldGEgbmFtZT0iZGVz
Y3JpcHRpb24iIGNvbnRlbnQ9IlRoaXMgdGVzdHMgc2luZ3VsYXIgZWxlbWVudHMgdG9vIiAvPgor
PHRpdGxlPnhodG1sIGlubmVySFRNTCB0ZXN0PC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorPHNw
YW4+Q29udGVudDo8L3NwYW4+Cis8cHJlIGlkPSJjb250ZW50Ij5wbGFjZWhvbGRlcjwvcHJlPgor
PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjIwMCI+CisgIDw/
eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiIGhyZWY9IiI/PgorICA8Y2lyY2xlIGN4PSIx
NTAiIGN5PSIxMDAiIHI9IjUwIiB4bGluazp0aXRsZT0idGVzdCIvPgorPC9zdmc+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKwlsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGVudCIpLmZpcnN0
Q2hpbGQubm9kZVZhbHVlID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTDsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4469</attachid>
            <date>2005-10-24 23:01:07 -0700</date>
            <delta_ts>2005-10-25 12:18:20 -0700</delta_ts>
            <desc>Patch w/ darin&apos;s suggested fixes.</desc>
            <filename>new.patch</filename>
            <type>text/plain</type>
            <size>14967</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGVkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9raHRtbC9lZGl0aW5nL21hcmt1cC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MzcKZGlmZiAtcCAtdSAtcjEuMzcgZWRpdGluZy9tYXJrdXAuY3BwCi0tLSBlZGl0aW5nL21hcmt1
cC5jcHAJMyBPY3QgMjAwNSAyMToxMjoyMCAtMDAwMAkxLjM3CisrKyBlZGl0aW5nL21hcmt1cC5j
cHAJMjUgT2N0IDIwMDUgMDY6MDA6MzkgLTAwMDAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJlZGl0aW5nL3Zpc2libGVfdW5pdHMuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfZWxlbWVudGlt
cGwuaCIKICNpbmNsdWRlICJ4bWwvZG9tX3Bvc2l0aW9uLmgiCisjaW5jbHVkZSAieG1sL2RvbV94
bWxpbXBsLmgiCiAjaW5jbHVkZSAieG1sL2RvbTJfcmFuZ2VpbXBsLmgiCiAjaW5jbHVkZSAicmVu
ZGVyaW5nL3JlbmRlcl90ZXh0LmgiCiAjaW5jbHVkZSAiaHRtbG5hbWVzLmgiCkBAIC00Miw2ICs0
Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBET006OkhUTUxOYW1lczsKIAogdXNpbmcgRE9NOjpBdHRy
aWJ1dGVJbXBsOwogdXNpbmcgRE9NOjpDb21tZW50SW1wbDsKK3VzaW5nIERPTTo6UHJvY2Vzc2lu
Z0luc3RydWN0aW9uSW1wbDsKIHVzaW5nIERPTTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
SW1wbDsKIHVzaW5nIERPTTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25JbXBsOwogdXNpbmcg
RE9NOjpEb2N1bWVudEZyYWdtZW50SW1wbDsKQEAgLTE3Myw2ICsxNzUsNyBAQCBzdGF0aWMgUVN0
cmluZyByZW5kZXJlZFRleHQoY29uc3QgTm9kZUltCiAKIHN0YXRpYyBRU3RyaW5nIHN0YXJ0TWFy
a3VwKGNvbnN0IE5vZGVJbXBsICpub2RlLCBjb25zdCBSYW5nZUltcGwgKnJhbmdlLCBFQW5ub3Rh
dGVGb3JJbnRlcmNoYW5nZSBhbm5vdGF0ZSwgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25JbXBs
ICpkZWZhdWx0U3R5bGUpCiB7CisgICAgYm9vbCBkb2N1bWVudElzSFRNTCA9IG5vZGUtPmdldERv
Y3VtZW50KCktPmlzSFRNTERvY3VtZW50KCk7CiAgICAgdW5zaWduZWQgc2hvcnQgdHlwZSA9IG5v
ZGUtPm5vZGVUeXBlKCk7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgICAgIGNhc2UgTm9kZTo6
VEVYVF9OT0RFOiB7CkBAIC0xODcsMTggKzE5MCwxNCBAQCBzdGF0aWMgUVN0cmluZyBzdGFydE1h
cmt1cChjb25zdCBOb2RlSW1wCiAgICAgICAgICAgICBpZiAoZGVmYXVsdFN0eWxlKSB7CiAgICAg
ICAgICAgICAgICAgTm9kZUltcGwgKmVsZW1lbnQgPSBub2RlLT5wYXJlbnROb2RlKCk7CiAgICAg
ICAgICAgICAgICAgaWYgKGVsZW1lbnQpIHsKLSAgICAgICAgICAgICAgICAgICAgQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uSW1wbCAqY29tcHV0ZWRTdHlsZSA9IFBvc2l0aW9uKGVsZW1lbnQs
IDApLmNvbXB1dGVkU3R5bGUoKTsKLSAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWRTdHlsZS0+
cmVmKCk7Ci0gICAgICAgICAgICAgICAgICAgIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uSW1w
bCAqc3R5bGUgPSBjb21wdXRlZFN0eWxlLT5jb3B5SW5oZXJpdGFibGVQcm9wZXJ0aWVzKCk7Ci0g
ICAgICAgICAgICAgICAgICAgIGNvbXB1dGVkU3R5bGUtPmRlcmVmKCk7Ci0gICAgICAgICAgICAg
ICAgICAgIHN0eWxlLT5yZWYoKTsKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFN0eWxlLT5k
aWZmKHN0eWxlKTsKKyAgICAgICAgICAgICAgICAgICAgU2hhcmVkUHRyPENTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbkltcGw+IGNvbXB1dGVkU3R5bGUgPSBQb3NpdGlvbihlbGVtZW50LCAwKS5j
b21wdXRlZFN0eWxlKCk7CisgICAgICAgICAgICAgICAgICAgIFNoYXJlZFB0cjxDU1NNdXRhYmxl
U3R5bGVEZWNsYXJhdGlvbkltcGw+IHN0eWxlID0gY29tcHV0ZWRTdHlsZS0+Y29weUluaGVyaXRh
YmxlUHJvcGVydGllcygpOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0U3R5bGUtPmRpZmYo
c3R5bGUuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoc3R5bGUtPmxlbmd0aCgpID4g
MCkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBjYXNlIHdoZXJl
IHN0eWxlLT5jc3NUZXh0KCkgaGFzIGlsbGVnYWwgY2hhcmFjdGVycyBpbiBpdCwgbGlrZSAiCiAg
ICAgICAgICAgICAgICAgICAgICAgICBRU3RyaW5nIG9wZW5UYWcgPSBRU3RyaW5nKCI8c3BhbiBj
bGFzcz1cIiIpICsgQXBwbGVTdHlsZVNwYW5DbGFzcyArICJcIiBzdHlsZT1cIiIgKyBzdHlsZS0+
Y3NzVGV4dCgpLnFzdHJpbmcoKSArICJcIj4iOwogICAgICAgICAgICAgICAgICAgICAgICAgbWFy
a3VwID0gb3BlblRhZyArIG1hcmt1cCArICI8L3NwYW4+IjsKICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICBzdHlsZS0+ZGVyZWYoKTsKICAgICAgICAgICAgICAgICB9
ICAgICAgICAgICAgCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gYW5ub3RhdGUg
PyBjb252ZXJ0SFRNTFRleHRUb0ludGVyY2hhbmdlRm9ybWF0KG1hcmt1cCkgOiBtYXJrdXA7CkBA
IC0yMDcsMjUgKzIwNiwyMyBAQCBzdGF0aWMgUVN0cmluZyBzdGFydE1hcmt1cChjb25zdCBOb2Rl
SW1wCiAgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgQ29tbWVudEltcGwgKj4o
bm9kZSktPnRvU3RyaW5nKCkucXN0cmluZygpOwogICAgICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5U
X05PREU6CiAgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgIGNhc2UgTm9kZTo6UFJPQ0VT
U0lOR19JTlNUUlVDVElPTl9OT0RFOgorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGwgKj4obm9kZSktPnRvU3RyaW5nKCkucXN0cmlu
ZygpOwogICAgICAgICBkZWZhdWx0OiB7CiAgICAgICAgICAgICBRU3RyaW5nIG1hcmt1cCA9IFFD
aGFyKCc8JykgKyBub2RlLT5ub2RlTmFtZSgpLnFzdHJpbmcoKTsKICAgICAgICAgICAgIGlmICh0
eXBlID09IE5vZGU6OkVMRU1FTlRfTk9ERSkgewogICAgICAgICAgICAgICAgIGNvbnN0IEVsZW1l
bnRJbXBsICplbCA9IHN0YXRpY19jYXN0PGNvbnN0IEVsZW1lbnRJbXBsICo+KG5vZGUpOwogICAg
ICAgICAgICAgICAgIERPTVN0cmluZyBhZGRpdGlvbmFsU3R5bGU7CiAgICAgICAgICAgICAgICAg
aWYgKGRlZmF1bHRTdHlsZSAmJiBlbC0+aXNIVE1MRWxlbWVudCgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbkltcGwgKmNvbXB1dGVkU3R5bGUgPSBQ
b3NpdGlvbihjb25zdF9jYXN0PEVsZW1lbnRJbXBsICo+KGVsKSwgMCkuY29tcHV0ZWRTdHlsZSgp
OwotICAgICAgICAgICAgICAgICAgICBjb21wdXRlZFN0eWxlLT5yZWYoKTsKLSAgICAgICAgICAg
ICAgICAgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25JbXBsICpzdHlsZSA9IGNvbXB1dGVk
U3R5bGUtPmNvcHlJbmhlcml0YWJsZVByb3BlcnRpZXMoKTsKLSAgICAgICAgICAgICAgICAgICAg
Y29tcHV0ZWRTdHlsZS0+ZGVyZWYoKTsKLSAgICAgICAgICAgICAgICAgICAgc3R5bGUtPnJlZigp
OwotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0U3R5bGUtPmRpZmYoc3R5bGUpOworICAgICAg
ICAgICAgICAgICAgICBTaGFyZWRQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uSW1wbD4g
Y29tcHV0ZWRTdHlsZSA9IFBvc2l0aW9uKGNvbnN0X2Nhc3Q8RWxlbWVudEltcGwgKj4oZWwpLCAw
KS5jb21wdXRlZFN0eWxlKCk7CisgICAgICAgICAgICAgICAgICAgIFNoYXJlZFB0cjxDU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbkltcGw+IHN0eWxlID0gY29tcHV0ZWRTdHlsZS0+Y29weUluaGVy
aXRhYmxlUHJvcGVydGllcygpOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0U3R5bGUtPmRp
ZmYoc3R5bGUuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoc3R5bGUtPmxlbmd0aCgp
ID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRp
b25JbXBsICppbmxpbmVTdHlsZURlY2wgPSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MRWxlbWVudElt
cGwgKj4oZWwpLT5pbmxpbmVTdHlsZURlY2woKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChpbmxpbmVTdHlsZURlY2wpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lU3R5
bGVEZWNsLT5kaWZmKHN0eWxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmxpbmVT
dHlsZURlY2wtPmRpZmYoc3R5bGUuZ2V0KCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgYWRk
aXRpb25hbFN0eWxlID0gc3R5bGUtPmNzc1RleHQoKTsKICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICBzdHlsZS0+ZGVyZWYoKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICAgTmFtZWRBdHRyTWFwSW1wbCAqYXR0cnMgPSBlbC0+YXR0cmlidXRlcygp
OwogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxlbmd0aCA9IGF0dHJzLT5sZW5ndGgoKTsKQEAg
LTI0MCwyNSArMjM3LDM1IEBAIHN0YXRpYyBRU3RyaW5nIHN0YXJ0TWFya3VwKGNvbnN0IE5vZGVJ
bXAKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gc3R5bGVBdHRy
ICYmIGFkZGl0aW9uYWxTdHlsZS5sZW5ndGgoKSA+IDApCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmFsdWUgKz0gIjsgIiArIGFkZGl0aW9uYWxTdHlsZTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgY2FzZSB3aGVyZSB2YWx1ZSBoYXMgaWxsZWdhbCBjaGFy
YWN0ZXJzIGluIGl0LCBsaWtlICIKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBO
YW1lc3BhY2VzISBYTUwhIEFjayEKLSAgICAgICAgICAgICAgICAgICAgICAgIG1hcmt1cCArPSAi
ICIgKyBhdHRyLT5uYW1lKCkubG9jYWxOYW1lKCkucXN0cmluZygpICsgIj1cIiIgKyB2YWx1ZS5x
c3RyaW5nKCkgKyAiXCIiOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50SXNI
VE1MKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmt1cCArPSAiICIgKyBhdHRyLT5u
YW1lKCkubG9jYWxOYW1lKCkucXN0cmluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmt1cCArPSAiICIgKyBhdHRyLT5uYW1l
KCkudG9TdHJpbmcoKS5xc3RyaW5nKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBtYXJrdXAg
Kz0gIj1cIiIgKyB2YWx1ZS5xc3RyaW5nKCkgKyAiXCIiOwogICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAgbWFya3VwICs9
IG5vZGUtPmlzSFRNTEVsZW1lbnQoKSA/ICI+IiA6ICIvPiI7CisgICAgICAgICAgICBpZiAoIWRv
Y3VtZW50SXNIVE1MICYmICFub2RlLT5oYXNDaGlsZE5vZGVzKCkpCisgICAgICAgICAgICAgICAg
bWFya3VwICs9ICIvPiI7CisgICAgICAgICAgICBlbHNlIAorICAgICAgICAgICAgICAgIG1hcmt1
cCArPSAiPiI7CiAgICAgICAgICAgICByZXR1cm4gbWFya3VwOwogICAgICAgICB9CiAgICAgfQog
fQogCi1zdGF0aWMgUVN0cmluZyBlbmRNYXJrdXAoY29uc3QgTm9kZUltcGwgKm5vZGUpCitzdGF0
aWMgaW5saW5lIGJvb2wgZG9lc0hUTUxGb3JiaWRFbmRUYWcoY29uc3QgTm9kZUltcGwgKm5vZGUp
CiB7Ci0gICAgYm9vbCBoYXNFbmRUYWcgPSBub2RlLT5pc0VsZW1lbnROb2RlKCk7Ci0gICAgaWYg
KG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkgeworICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkg
JiYgbm9kZS0+Z2V0RG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkgewogICAgICAgICBjb25z
dCBIVE1MRWxlbWVudEltcGwqIGh0bWxFbHQgPSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MRWxlbWVu
dEltcGwqPihub2RlKTsKLSAgICAgICAgaGFzRW5kVGFnID0gKGh0bWxFbHQtPmVuZFRhZ1JlcXVp
cmVtZW50KCkgIT0gVGFnU3RhdHVzRm9yYmlkZGVuKTsKKyAgICAgICAgcmV0dXJuIChodG1sRWx0
LT5lbmRUYWdSZXF1aXJlbWVudCgpID09IFRhZ1N0YXR1c0ZvcmJpZGRlbik7CiAgICAgfQotICAg
IGlmIChoYXNFbmRUYWcpCisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgUVN0cmluZyBl
bmRNYXJrdXAoY29uc3QgTm9kZUltcGwgKm5vZGUpCit7CisgICAgaWYgKG5vZGUtPmlzRWxlbWVu
dE5vZGUoKSAmJiBub2RlLT5oYXNDaGlsZE5vZGVzKCkgJiYgIWRvZXNIVE1MRm9yYmlkRW5kVGFn
KG5vZGUpKQogICAgICAgICByZXR1cm4gIjwvIiArIG5vZGUtPm5vZGVOYW1lKCkucXN0cmluZygp
ICsgIj4iOwogICAgIHJldHVybiAiIjsKIH0KQEAgLTI3MCwyNyArMjc3LDE4IEBAIHN0YXRpYyBR
U3RyaW5nIG1hcmt1cChjb25zdCBOb2RlSW1wbCAqc3QKICAgICBRU3RyaW5nIG1lID0gIiI7CiAg
ICAgZm9yIChjb25zdCBOb2RlSW1wbCAqY3VycmVudCA9IHN0YXJ0Tm9kZTsgY3VycmVudCAhPSBO
VUxMOyBjdXJyZW50ID0gaW5jbHVkZVNpYmxpbmdzID8gY3VycmVudC0+bmV4dFNpYmxpbmcoKSA6
IE5VTEwpIHsKICAgICAgICAgaWYgKCFvbmx5SW5jbHVkZUNoaWxkcmVuKSB7Ci0gICAgICAgICAg
ICBpZiAobm9kZXMpIHsKKyAgICAgICAgICAgIGlmIChub2RlcykKICAgICAgICAgICAgICAgICBu
b2Rlcy0+YXBwZW5kKGN1cnJlbnQpOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgbWUgKz0g
c3RhcnRNYXJrdXAoY3VycmVudCwgMCwgRG9Ob3RBbm5vdGF0ZUZvckludGVyY2hhbmdlLCAwKTsK
ICAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgYm9vbCBjb250YWluZXIgPSB0cnVlOwotICAg
ICAgICBpZiAoY3VycmVudC0+aXNIVE1MRWxlbWVudCgpKSB7Ci0gICAgICAgICAgICBjb25zdCBI
VE1MRWxlbWVudEltcGwqIGggPSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MRWxlbWVudEltcGwqPihj
dXJyZW50KTsKLSAgICAgICAgICAgIGNvbnRhaW5lciA9IGgtPmVuZFRhZ1JlcXVpcmVtZW50KCkg
IT0gVGFnU3RhdHVzRm9yYmlkZGVuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChjb250YWluZXIp
IHsKLSAgICAgICAgICAgIC8vIHByaW50IGNoaWxkcmVuCi0gICAgICAgICAgICBpZiAoTm9kZUlt
cGwgKm4gPSBjdXJyZW50LT5maXJzdENoaWxkKCkpIHsKKyAgICAgICAgLy8gcHJpbnQgY2hpbGRy
ZW4KKyAgICAgICAgaWYgKE5vZGVJbXBsICpuID0gY3VycmVudC0+Zmlyc3RDaGlsZCgpKQorICAg
ICAgICAgICAgaWYgKCFkb2VzSFRNTEZvcmJpZEVuZFRhZyhjdXJyZW50KSkKICAgICAgICAgICAg
ICAgICBtZSArPSBtYXJrdXAobiwgZmFsc2UsIHRydWUsIG5vZGVzKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIC8vIFByaW50IG15IGVuZGluZyB0YWcKLSAgICAgICAgICAgIGlmICghb25s
eUluY2x1ZGVDaGlsZHJlbikgewotICAgICAgICAgICAgICAgIG1lICs9IGVuZE1hcmt1cChjdXJy
ZW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICAgICAgICAgIAorICAgICAg
ICAvLyBQcmludCBteSBlbmRpbmcgdGFnCisgICAgICAgIGlmICghb25seUluY2x1ZGVDaGlsZHJl
bikKKyAgICAgICAgICAgIG1lICs9IGVuZE1hcmt1cChjdXJyZW50KTsKICAgICB9CiAgICAgcmV0
dXJuIG1lOwogfQpAQCAtNDc3LDYgKzQ3NSw3IEBAIFFTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0
IFJhbmdlSW1wbCAqcmEKIAogRG9jdW1lbnRGcmFnbWVudEltcGwgKmNyZWF0ZUZyYWdtZW50RnJv
bU1hcmt1cChEb2N1bWVudEltcGwgKmRvY3VtZW50LCBjb25zdCBRU3RyaW5nICZtYXJrdXAsIGNv
bnN0IFFTdHJpbmcgJmJhc2VVUkwpCiB7CisgICAgQVNTRVJUKGRvY3VtZW50LT5kb2N1bWVudEVs
ZW1lbnQoKS0+aXNIVE1MRWxlbWVudCgpKTsKICAgICAvLyBGSVhNRTogV2hhdCBpZiB0aGUgZG9j
dW1lbnQgZWxlbWVudCBpcyBub3QgYW4gSFRNTCBlbGVtZW50PwogICAgIEhUTUxFbGVtZW50SW1w
bCAqZWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50SW1wbCAqPihkb2N1bWVudC0+ZG9j
dW1lbnRFbGVtZW50KCkpOwogCkBAIC00OTMsMTQgKzQ5Miw3IEBAIFFTdHJpbmcgY3JlYXRlTWFy
a3VwKGNvbnN0IERPTTo6Tm9kZUltcGwKICAgICBRUHRyTGlzdDxET006Ok5vZGVJbXBsPiAqbm9k
ZXMsIEVBbm5vdGF0ZUZvckludGVyY2hhbmdlIGFubm90YXRlKQogewogICAgIEFTU0VSVChhbm5v
dGF0ZSA9PSBEb05vdEFubm90YXRlRm9ySW50ZXJjaGFuZ2UpOyAvLyBhbm5vdGF0aW9uIG5vdCB5
ZXQgaW1wbGVtZW50ZWQgZm9yIHRoaXMgY29kZSBwYXRoCi0KLSAgICAvLyBGSVhNRTogV2UgY291
bGQgdGFrZSBvdXQgdGhpcyBpZiBzdGF0ZW1lbnQgaWYgd2UgaGFkIG1vcmUgdGltZSB0byB0ZXN0
LgotICAgIC8vIEknbSBjb25jZXJuZWQgdGhhdCBtYWtpbmcgdGhpcyBjcmFzaCB3aGVuIHRoZSBk
b2N1bWVudCBpcyBuaWwgbWlnaHQgYmUgdG9vIHJpc2t5IGEgY2hhbmdlIGF0IHRoZSBtb21lbnQu
Ci0gICAgRG9jdW1lbnRJbXBsICpkb2MgPSBub2RlLT5nZXREb2N1bWVudCgpOwotICAgIGFzc2Vy
dChkb2MpOwotICAgIGlmIChkb2MpCi0gICAgICAgIGRvYy0+dXBkYXRlTGF5b3V0KCk7Ci0KKyAg
ICBub2RlLT5nZXREb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKICAgICByZXR1cm4gbWFya3Vw
KG5vZGUsIGluY2x1ZGVDaGlsZHJlbiwgZmFsc2UsIG5vZGVzKTsKIH0KIApJbmRleDogaHRtbC9o
dG1sX2VsZW1lbnRpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9raHRtbC9odG1sL2h0bWxfZWxlbWVudGltcGwuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjEwOApkaWZmIC1wIC11IC1yMS4xMDggaHRtbC9odG1sX2VsZW1lbnRpbXBsLmNwcAotLS0gaHRt
bC9odG1sX2VsZW1lbnRpbXBsLmNwcAk5IE9jdCAyMDA1IDAyOjE0OjA1IC0wMDAwCTEuMTA4Cisr
KyBodG1sL2h0bWxfZWxlbWVudGltcGwuY3BwCTI1IE9jdCAyMDA1IDA2OjAwOjQzIC0wMDAwCkBA
IC0yODYsMjMgKzI4NiwxNSBAQCBEb2N1bWVudEZyYWdtZW50SW1wbCAqSFRNTEVsZW1lbnRJbXBs
OjpjCiAgICAgRG9jdW1lbnRGcmFnbWVudEltcGwgKmZyYWdtZW50ID0gbmV3IERvY3VtZW50RnJh
Z21lbnRJbXBsKGRvY1B0cigpKTsKICAgICBmcmFnbWVudC0+cmVmKCk7CiAgICAgCi0gICAgaWYg
KCFnZXREb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpKSB7Ci0gICAgICAgIGJvb2wgcmV0ID0g
cGFyc2VYTUxEb2N1bWVudEZyYWdtZW50KGh0bWwsIGZyYWdtZW50LCB0aGlzKTsKLSAgICAgICAg
Ci0gICAgICAgIGlmICghcmV0KSB7CisgICAgaWYgKGdldERvY3VtZW50KCktPmlzSFRNTERvY3Vt
ZW50KCkpCisgICAgICAgICBwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KGh0bWwsIGZyYWdtZW50
KTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKCFwYXJzZVhNTERvY3VtZW50RnJhZ21lbnQoaHRt
bCwgZnJhZ21lbnQsIHRoaXMpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBy
b3BhZ2F0ZSBhIHN5bnRheCBlcnJvciBleGNlcHRpb24gb3V0IGhlcmUuCiAgICAgICAgICAgICBm
cmFnbWVudC0+ZGVyZWYoKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAg
fQotICAgIGVsc2UKLSAgICB7Ci0gICAgICAgIEhUTUxUb2tlbml6ZXIgdG9rKGRvY1B0cigpLCBm
cmFnbWVudCk7Ci0gICAgICAgIHRvay5zZXRGb3JjZVN5bmNocm9ub3VzKHRydWUpOyAgICAgICAg
ICAgIC8vIGRpc2FibGUgYXN5bmNocm9ub3VzIHBhcnNpbmcKLSAgICAgICAgdG9rLndyaXRlKCBo
dG1sLnFzdHJpbmcoKSwgdHJ1ZSApOwotICAgICAgICB0b2suZmluaXNoKCk7Ci0gICAgICAgIGFz
c2VydCghdG9rLnByb2Nlc3NpbmdEYXRhKCkpOyAgICAgICAgICAgIC8vIG1ha2Ugc3VyZSB3ZSdy
ZSBkb25lIChzZWUgMzk2MzE1MSkKLSAgICB9CiAKICAgICAvLyBFeGNlcHRpb25zIGFyZSBpZ25v
cmVkIGJlY2F1c2Ugbm9uZSBvdWdodCB0byBoYXBwZW4gaGVyZS4KICAgICBpbnQgaWdub3JlZEV4
Y2VwdGlvbkNvZGU7CkBAIC02MDMsNyArNTk1LDcgQEAgdm9pZCBIVE1MRWxlbWVudEltcGw6OmFj
Y2Vzc0tleUFjdGlvbihibwogCiBET01TdHJpbmcgSFRNTEVsZW1lbnRJbXBsOjp0b1N0cmluZygp
IGNvbnN0CiB7Ci0gICAgaWYgKCFoYXNDaGlsZE5vZGVzKCkpIHsKKyAgICBpZiAoIWhhc0NoaWxk
Tm9kZXMoKSAmJiBnZXREb2N1bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpKSB7CiAJRE9NU3RyaW5n
IHJlc3VsdCA9IG9wZW5UYWdTdGFydFRvU3RyaW5nKCk7CiAJcmVzdWx0ICs9ICI+IjsKIApJbmRl
eDogaHRtbC9odG1sdG9rZW5pemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9raHRtbC9odG1sL2h0bWx0b2tlbml6ZXIuY3BwLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjEyMgpkaWZmIC1wIC11IC1yMS4xMjIgaHRtbC9odG1sdG9rZW5pemVyLmNwcAotLS0gaHRt
bC9odG1sdG9rZW5pemVyLmNwcAkyNCBPY3QgMjAwNSAwMTozOTo0MCAtMDAwMAkxLjEyMgorKysg
aHRtbC9odG1sdG9rZW5pemVyLmNwcAkyNSBPY3QgMjAwNSAwNjowMToxOCAtMDAwMApAQCAtMTg0
NCw0ICsxODQ0LDEzIEBAIHZvaWQgSFRNTFRva2VuaXplcjo6c2V0T25Ib2xkKGJvb2wgX29uSG8K
ICAgICBvbkhvbGQgPSBfb25Ib2xkOwogfQogCit2b2lkIHBhcnNlSFRNTERvY3VtZW50RnJhZ21l
bnQoY29uc3QgRE9NOjpET01TdHJpbmcgJnNvdXJjZSwgRE9NOjpEb2N1bWVudEZyYWdtZW50SW1w
bCAqZnJhZ21lbnQpCit7CisgICAgSFRNTFRva2VuaXplciB0b2soZnJhZ21lbnQtPmRvY1B0cigp
LCBmcmFnbWVudCk7CisgICAgdG9rLnNldEZvcmNlU3luY2hyb25vdXModHJ1ZSk7CisgICAgdG9r
LndyaXRlKHNvdXJjZS5xc3RyaW5nKCksIHRydWUpOworICAgIHRvay5maW5pc2goKTsKKyAgICBh
c3NlcnQoIXRvay5wcm9jZXNzaW5nRGF0YSgpKTsgICAgICAvLyBtYWtlIHN1cmUgd2UncmUgZG9u
ZSAoc2VlIDM5NjMxNTEpCit9CisKIH0KSW5kZXg6IGh0bWwvaHRtbHRva2VuaXplci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2h0bWwvaHRtbHRva2VuaXpl
ci5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjQzCmRpZmYgLXAgLXUgLXIxLjQzIGh0bWwvaHRt
bHRva2VuaXplci5oCi0tLSBodG1sL2h0bWx0b2tlbml6ZXIuaAkyMiBPY3QgMjAwNSAwMTo0MToz
NSAtMDAwMAkxLjQzCisrKyBodG1sL2h0bWx0b2tlbml6ZXIuaAkyNSBPY3QgMjAwNSAwNjowMToz
NiAtMDAwMApAQCAtMzgxLDYgKzM4MSw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIGluV3JpdGU7
CiB9OwogCit2b2lkIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQoY29uc3QgRE9NOjpET01TdHJp
bmcgJiwgRE9NOjpEb2N1bWVudEZyYWdtZW50SW1wbCAqKTsKKwogfQogCiAjaWYgQVBQTEVfQ0hB
TkdFUwpJbmRleDogeG1sL2RvbV94bWxpbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvV2ViQ29yZS9raHRtbC94bWwvZG9tX3htbGltcGwuY3BwLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjE2CmRpZmYgLXAgLXUgLXIxLjE2IHhtbC9kb21feG1saW1wbC5jcHAKLS0tIHhtbC9k
b21feG1saW1wbC5jcHAJMyBPY3QgMjAwNSAyMToxMjo1NCAtMDAwMAkxLjE2CisrKyB4bWwvZG9t
X3htbGltcGwuY3BwCTI1IE9jdCAyMDA1IDA2OjAxOjM5IC0wMDAwCkBAIC0zMDMsNyArMzAzLDYg
QEAgUHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbDo6UHJvY2Vzc2luZ0lucwogICAgIG1fdGFyZ2V0
ID0gMDsKICAgICBtX2RhdGEgPSAwOwogICAgIG1fbG9jYWxIcmVmID0gMDsKLSAgICBtX3NoZWV0
ID0gMDsKICAgICBtX2NhY2hlZFNoZWV0ID0gMDsKICAgICBtX2xvYWRpbmcgPSBmYWxzZTsKICNp
ZmRlZiBLSFRNTF9YU0xUCkBAIC0zMTksNyArMzE4LDYgQEAgUHJvY2Vzc2luZ0luc3RydWN0aW9u
SW1wbDo6UHJvY2Vzc2luZ0lucwogICAgIG1fZGF0YSA9IF9kYXRhLmltcGwoKTsKICAgICBpZiAo
bV9kYXRhKQogICAgICAgICBtX2RhdGEtPnJlZigpOwotICAgIG1fc2hlZXQgPSAwOwogICAgIG1f
Y2FjaGVkU2hlZXQgPSAwOwogICAgIG1fbG9jYWxIcmVmID0gMDsKICNpZmRlZiBLSFRNTF9YU0xU
CkBAIC0zMzUsOCArMzMzLDYgQEAgUHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbDo6flByb2Nlc3Np
bmdJbgogICAgICAgICBtX2RhdGEtPmRlcmVmKCk7CiAgICAgaWYgKG1fY2FjaGVkU2hlZXQpCiAJ
bV9jYWNoZWRTaGVldC0+ZGVyZWYodGhpcyk7Ci0gICAgaWYgKG1fc2hlZXQpCi0JbV9zaGVldC0+
ZGVyZWYoKTsKIH0KIAogRE9NU3RyaW5nIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGw6OnRhcmdl
dCgpIGNvbnN0CkBAIC00OTIsMTEgKzQ4OCw2IEBAIGJvb2wgUHJvY2Vzc2luZ0luc3RydWN0aW9u
SW1wbDo6Y2hlY2tTdHkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotU3R5bGVTaGVldEltcGwqIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbkltcGw6OnNoZWV0KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9z
aGVldDsKLX0KLQogYm9vbCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsOjppc0xvYWRpbmcoKSBj
b25zdAogewogICAgIGlmIChtX2xvYWRpbmcpCkBAIC01MzUsMjIgKzUyNiwxMyBAQCB2b2lkIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbkltcGw6OnNldFN0eWxlCiAgICAgICAgIGdldERvY3VtZW50KCkt
PnN0eWxlc2hlZXRMb2FkZWQoKTsKIH0KIAotdm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBs
OjpzZXRTdHlsZVNoZWV0KENTU1N0eWxlU2hlZXRJbXBsKiBzaGVldCkKLXsKLSAgICBpZiAobV9z
aGVldCkKLSAgICAgICAgbV9zaGVldC0+ZGVyZWYoKTsKLSAgICBtX3NoZWV0ID0gc2hlZXQ7Ci0g
ICAgaWYgKG1fc2hlZXQpCi0gICAgICAgIG1fc2hlZXQtPnJlZigpOwotfQotCiBET01TdHJpbmcg
UHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbDo6dG9TdHJpbmcoKSBjb25zdAogewogICAgIERPTVN0
cmluZyByZXN1bHQgPSAiPD8iOwogICAgIHJlc3VsdCArPSBtX3RhcmdldDsKICAgICByZXN1bHQg
Kz0gIiAiOwogICAgIHJlc3VsdCArPSBtX2RhdGE7Ci0gICAgcmVzdWx0ICs9ICI+IjsKKyAgICBy
ZXN1bHQgKz0gIj8+IjsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkluZGV4OiB4bWwvZG9tX3ht
bGltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC94bWwv
ZG9tX3htbGltcGwuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMwpkaWZmIC1wIC11IC1yMS4x
MyB4bWwvZG9tX3htbGltcGwuaAotLS0geG1sL2RvbV94bWxpbXBsLmgJMTAgTWF5IDIwMDUgMjE6
NTk6MTUgLTAwMDAJMS4xMworKysgeG1sL2RvbV94bWxpbXBsLmgJMjUgT2N0IDIwMDUgMDY6MDE6
NDIgLTAwMDAKQEAgLTIzLDYgKzIzLDcgQEAKICNpZm5kZWYgX0RPTV9YbWxJbXBsX2hfCiAjZGVm
aW5lIF9ET01fWG1sSW1wbF9oXwogCisjaW5jbHVkZSAiY3NzX3N0eWxlc2hlZXRpbXBsLmgiCiAj
aW5jbHVkZSAieG1sL2RvbV9ub2RlaW1wbC5oIgogI2luY2x1ZGUgIm1pc2MvbG9hZGVyX2NsaWVu
dC5oIgogCkBAIC0zMyw4ICszNCw2IEBAIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQ7CiBuYW1l
c3BhY2UgRE9NIHsKIAogY2xhc3MgRG9jdW1lbnRJbXBsOwotY2xhc3MgQ1NTU3R5bGVTaGVldElt
cGw7Ci1jbGFzcyBTdHlsZVNoZWV0SW1wbDsKIGNsYXNzIERPTVN0cmluZzsKICNpZiBBUFBMRV9D
SEFOR0VTCiBjbGFzcyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247CkBAIC0xNTAsMTAgKzE0OSwxMCBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIERPTVN0cmluZyBsb2NhbEhyZWYoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZCggdW5zaWduZWQgc2hvcnQgdHlwZSApOwot
ICAgIFN0eWxlU2hlZXRJbXBsICpzaGVldCgpIGNvbnN0OworICAgIFN0eWxlU2hlZXRJbXBsICpz
aGVldCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hlZXQuZ2V0KCk7IH0KICAgICBib29sIGNoZWNrU3R5
bGVTaGVldCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdHlsZVNoZWV0KGNvbnN0IERPTVN0cmlu
ZyAmdXJsLCBjb25zdCBET01TdHJpbmcgJnNoZWV0KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3R5
bGVTaGVldChDU1NTdHlsZVNoZWV0SW1wbCogc2hlZXQpOworICAgIHZpcnR1YWwgdm9pZCBzZXRT
dHlsZVNoZWV0KENTU1N0eWxlU2hlZXRJbXBsICpzaGVldCkgeyBtX3NoZWV0ID0gc2hlZXQ7IH0K
ICAgICBib29sIGlzTG9hZGluZygpIGNvbnN0OwogICAgIHZvaWQgc2hlZXRMb2FkZWQoKTsKIApA
QCAtMTY4LDcgKzE2Nyw3IEBAIHByb3RlY3RlZDoKICAgICBET01TdHJpbmdJbXBsICptX2RhdGE7
CiAgICAgRE9NU3RyaW5nSW1wbCAqbV9sb2NhbEhyZWY7CiAgICAga2h0bWw6OkNhY2hlZE9iamVj
dCAqbV9jYWNoZWRTaGVldDsKLSAgICBTdHlsZVNoZWV0SW1wbCAqbV9zaGVldDsKKyAgICBTaGFy
ZWRQdHI8U3R5bGVTaGVldEltcGw+IG1fc2hlZXQ7CiAgICAgYm9vbCBtX2xvYWRpbmc7CiAjaWZk
ZWYgS0hUTUxfWFNMVAogICAgIGJvb2wgbV9pc1hTTDsK
</data>
<flag name="review"
          id="777"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4478</attachid>
            <date>2005-10-25 12:18:20 -0700</date>
            <delta_ts>2005-10-25 22:11:39 -0700</delta_ts>
            <desc>Patch addressing mjs&apos;s compatibility concerns.</desc>
            <filename>markup.patch</filename>
            <type>text/plain</type>
            <size>15886</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGVkaXRpbmcvbWFya3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3Qv
V2ViQ29yZS9raHRtbC9lZGl0aW5nL21hcmt1cC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MzcKZGlmZiAtcCAtdSAtcjEuMzcgZWRpdGluZy9tYXJrdXAuY3BwCi0tLSBlZGl0aW5nL21hcmt1
cC5jcHAJMyBPY3QgMjAwNSAyMToxMjoyMCAtMDAwMAkxLjM3CisrKyBlZGl0aW5nL21hcmt1cC5j
cHAJMjUgT2N0IDIwMDUgMTk6MTY6MTcgLTAwMDAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJlZGl0aW5nL3Zpc2libGVfdW5pdHMuaCIKICNpbmNsdWRlICJodG1sL2h0bWxfZWxlbWVudGlt
cGwuaCIKICNpbmNsdWRlICJ4bWwvZG9tX3Bvc2l0aW9uLmgiCisjaW5jbHVkZSAieG1sL2RvbV94
bWxpbXBsLmgiCiAjaW5jbHVkZSAieG1sL2RvbTJfcmFuZ2VpbXBsLmgiCiAjaW5jbHVkZSAicmVu
ZGVyaW5nL3JlbmRlcl90ZXh0LmgiCiAjaW5jbHVkZSAiaHRtbG5hbWVzLmgiCkBAIC00Miw2ICs0
Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBET006OkhUTUxOYW1lczsKIAogdXNpbmcgRE9NOjpBdHRy
aWJ1dGVJbXBsOwogdXNpbmcgRE9NOjpDb21tZW50SW1wbDsKK3VzaW5nIERPTTo6UHJvY2Vzc2lu
Z0luc3RydWN0aW9uSW1wbDsKIHVzaW5nIERPTTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
SW1wbDsKIHVzaW5nIERPTTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25JbXBsOwogdXNpbmcg
RE9NOjpEb2N1bWVudEZyYWdtZW50SW1wbDsKQEAgLTcxLDYgKzczLDkgQEAgdXNpbmcgRE9NOjpU
ZXh0SW1wbDsKIAogbmFtZXNwYWNlIGtodG1sIHsKIAorc3RhdGljIGlubGluZSBib29sIGRvZXNI
VE1MRm9yYmlkRW5kVGFnKGNvbnN0IE5vZGVJbXBsICpub2RlKTsKK3N0YXRpYyBpbmxpbmUgYm9v
bCBzaG91bGRTZWxmQ2xvc2UoY29uc3QgTm9kZUltcGwgKm5vZGUpOworCiBzdGF0aWMgUVN0cmlu
ZyBlc2NhcGVIVE1MKGNvbnN0IFFTdHJpbmcgJmluKQogewogICAgIFFTdHJpbmcgcyA9ICIiOwpA
QCAtMTczLDYgKzE3OCw3IEBAIHN0YXRpYyBRU3RyaW5nIHJlbmRlcmVkVGV4dChjb25zdCBOb2Rl
SW0KIAogc3RhdGljIFFTdHJpbmcgc3RhcnRNYXJrdXAoY29uc3QgTm9kZUltcGwgKm5vZGUsIGNv
bnN0IFJhbmdlSW1wbCAqcmFuZ2UsIEVBbm5vdGF0ZUZvckludGVyY2hhbmdlIGFubm90YXRlLCBD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkltcGwgKmRlZmF1bHRTdHlsZSkKIHsKKyAgICBib29s
IGRvY3VtZW50SXNIVE1MID0gbm9kZS0+Z2V0RG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKTsK
ICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlID0gbm9kZS0+bm9kZVR5cGUoKTsKICAgICBzd2l0Y2gg
KHR5cGUpIHsKICAgICAgICAgY2FzZSBOb2RlOjpURVhUX05PREU6IHsKQEAgLTE4NywxOCArMTkz
LDE0IEBAIHN0YXRpYyBRU3RyaW5nIHN0YXJ0TWFya3VwKGNvbnN0IE5vZGVJbXAKICAgICAgICAg
ICAgIGlmIChkZWZhdWx0U3R5bGUpIHsKICAgICAgICAgICAgICAgICBOb2RlSW1wbCAqZWxlbWVu
dCA9IG5vZGUtPnBhcmVudE5vZGUoKTsKICAgICAgICAgICAgICAgICBpZiAoZWxlbWVudCkgewot
ICAgICAgICAgICAgICAgICAgICBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb25JbXBsICpjb21w
dXRlZFN0eWxlID0gUG9zaXRpb24oZWxlbWVudCwgMCkuY29tcHV0ZWRTdHlsZSgpOwotICAgICAg
ICAgICAgICAgICAgICBjb21wdXRlZFN0eWxlLT5yZWYoKTsKLSAgICAgICAgICAgICAgICAgICAg
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb25JbXBsICpzdHlsZSA9IGNvbXB1dGVkU3R5bGUtPmNv
cHlJbmhlcml0YWJsZVByb3BlcnRpZXMoKTsKLSAgICAgICAgICAgICAgICAgICAgY29tcHV0ZWRT
dHlsZS0+ZGVyZWYoKTsKLSAgICAgICAgICAgICAgICAgICAgc3R5bGUtPnJlZigpOwotICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0U3R5bGUtPmRpZmYoc3R5bGUpOworICAgICAgICAgICAgICAg
ICAgICBTaGFyZWRQdHI8Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uSW1wbD4gY29tcHV0ZWRT
dHlsZSA9IFBvc2l0aW9uKGVsZW1lbnQsIDApLmNvbXB1dGVkU3R5bGUoKTsKKyAgICAgICAgICAg
ICAgICAgICAgU2hhcmVkUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uSW1wbD4gc3R5bGUg
PSBjb21wdXRlZFN0eWxlLT5jb3B5SW5oZXJpdGFibGVQcm9wZXJ0aWVzKCk7CisgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHRTdHlsZS0+ZGlmZihzdHlsZS5nZXQoKSk7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChzdHlsZS0+bGVuZ3RoKCkgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogSGFuZGxlIGNhc2Ugd2hlcmUgc3R5bGUtPmNzc1RleHQoKSBoYXMgaWxsZWdh
bCBjaGFyYWN0ZXJzIGluIGl0LCBsaWtlICIKICAgICAgICAgICAgICAgICAgICAgICAgIFFTdHJp
bmcgb3BlblRhZyA9IFFTdHJpbmcoIjxzcGFuIGNsYXNzPVwiIikgKyBBcHBsZVN0eWxlU3BhbkNs
YXNzICsgIlwiIHN0eWxlPVwiIiArIHN0eWxlLT5jc3NUZXh0KCkucXN0cmluZygpICsgIlwiPiI7
CiAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrdXAgPSBvcGVuVGFnICsgbWFya3VwICsgIjwv
c3Bhbj4iOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHN0eWxl
LT5kZXJlZigpOwogICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIHJldHVybiBhbm5vdGF0ZSA/IGNvbnZlcnRIVE1MVGV4dFRvSW50ZXJjaGFu
Z2VGb3JtYXQobWFya3VwKSA6IG1hcmt1cDsKQEAgLTIwNywyNSArMjA5LDIzIEBAIHN0YXRpYyBR
U3RyaW5nIHN0YXJ0TWFya3VwKGNvbnN0IE5vZGVJbXAKICAgICAgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxjb25zdCBDb21tZW50SW1wbCAqPihub2RlKS0+dG9TdHJpbmcoKS5xc3RyaW5nKCk7
CiAgICAgICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgICAgICAgIHJldHVybiAi
IjsKKyAgICAgICAgY2FzZSBOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgICAg
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUHJvY2Vzc2luZ0luc3RydWN0aW9uSW1w
bCAqPihub2RlKS0+dG9TdHJpbmcoKS5xc3RyaW5nKCk7CiAgICAgICAgIGRlZmF1bHQ6IHsKICAg
ICAgICAgICAgIFFTdHJpbmcgbWFya3VwID0gUUNoYXIoJzwnKSArIG5vZGUtPm5vZGVOYW1lKCku
cXN0cmluZygpOwogICAgICAgICAgICAgaWYgKHR5cGUgPT0gTm9kZTo6RUxFTUVOVF9OT0RFKSB7
CiAgICAgICAgICAgICAgICAgY29uc3QgRWxlbWVudEltcGwgKmVsID0gc3RhdGljX2Nhc3Q8Y29u
c3QgRWxlbWVudEltcGwgKj4obm9kZSk7CiAgICAgICAgICAgICAgICAgRE9NU3RyaW5nIGFkZGl0
aW9uYWxTdHlsZTsKICAgICAgICAgICAgICAgICBpZiAoZGVmYXVsdFN0eWxlICYmIGVsLT5pc0hU
TUxFbGVtZW50KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgQ1NTQ29tcHV0ZWRTdHlsZURlY2xh
cmF0aW9uSW1wbCAqY29tcHV0ZWRTdHlsZSA9IFBvc2l0aW9uKGNvbnN0X2Nhc3Q8RWxlbWVudElt
cGwgKj4oZWwpLCAwKS5jb21wdXRlZFN0eWxlKCk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbXB1
dGVkU3R5bGUtPnJlZigpOwotICAgICAgICAgICAgICAgICAgICBDU1NNdXRhYmxlU3R5bGVEZWNs
YXJhdGlvbkltcGwgKnN0eWxlID0gY29tcHV0ZWRTdHlsZS0+Y29weUluaGVyaXRhYmxlUHJvcGVy
dGllcygpOwotICAgICAgICAgICAgICAgICAgICBjb21wdXRlZFN0eWxlLT5kZXJlZigpOwotICAg
ICAgICAgICAgICAgICAgICBzdHlsZS0+cmVmKCk7Ci0gICAgICAgICAgICAgICAgICAgIGRlZmF1
bHRTdHlsZS0+ZGlmZihzdHlsZSk7CisgICAgICAgICAgICAgICAgICAgIFNoYXJlZFB0cjxDU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb25JbXBsPiBjb21wdXRlZFN0eWxlID0gUG9zaXRpb24oY29u
c3RfY2FzdDxFbGVtZW50SW1wbCAqPihlbCksIDApLmNvbXB1dGVkU3R5bGUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgU2hhcmVkUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uSW1wbD4gc3R5
bGUgPSBjb21wdXRlZFN0eWxlLT5jb3B5SW5oZXJpdGFibGVQcm9wZXJ0aWVzKCk7CisgICAgICAg
ICAgICAgICAgICAgIGRlZmF1bHRTdHlsZS0+ZGlmZihzdHlsZS5nZXQoKSk7CiAgICAgICAgICAg
ICAgICAgICAgIGlmIChzdHlsZS0+bGVuZ3RoKCkgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICBDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbkltcGwgKmlubGluZVN0eWxlRGVjbCA9IHN0
YXRpY19jYXN0PGNvbnN0IEhUTUxFbGVtZW50SW1wbCAqPihlbCktPmlubGluZVN0eWxlRGVjbCgp
OwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlubGluZVN0eWxlRGVjbCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbmxpbmVTdHlsZURlY2wtPmRpZmYoc3R5bGUpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlubGluZVN0eWxlRGVjbC0+ZGlmZihzdHlsZS5nZXQoKSk7
CiAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsU3R5bGUgPSBzdHlsZS0+Y3NzVGV4
dCgpOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHN0eWxlLT5k
ZXJlZigpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBOYW1lZEF0dHJNYXBJ
bXBsICphdHRycyA9IGVsLT5hdHRyaWJ1dGVzKCk7CiAgICAgICAgICAgICAgICAgdW5zaWduZWQg
bGVuZ3RoID0gYXR0cnMtPmxlbmd0aCgpOwpAQCAtMjQwLDI1ICsyNDAsNTUgQEAgc3RhdGljIFFT
dHJpbmcgc3RhcnRNYXJrdXAoY29uc3QgTm9kZUltcAogICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGF0dHItPm5hbWUoKSA9PSBzdHlsZUF0dHIgJiYgYWRkaXRpb25hbFN0eWxlLmxlbmd0aCgp
ID4gMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSArPSAiOyAiICsgYWRkaXRp
b25hbFN0eWxlOwogICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEhhbmRsZSBjYXNl
IHdoZXJlIHZhbHVlIGhhcyBpbGxlZ2FsIGNoYXJhY3RlcnMgaW4gaXQsIGxpa2UgIgotICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IE5hbWVzcGFjZXMhIFhNTCEgQWNrIQotICAgICAg
ICAgICAgICAgICAgICAgICAgbWFya3VwICs9ICIgIiArIGF0dHItPm5hbWUoKS5sb2NhbE5hbWUo
KS5xc3RyaW5nKCkgKyAiPVwiIiArIHZhbHVlLnFzdHJpbmcoKSArICJcIiI7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoZG9jdW1lbnRJc0hUTUwpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWFya3VwICs9ICIgIiArIGF0dHItPm5hbWUoKS5sb2NhbE5hbWUoKS5xc3RyaW5nKCk7
CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFya3VwICs9ICIgIiArIGF0dHItPm5hbWUoKS50b1N0cmluZygpLnFzdHJpbmcoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcmt1cCArPSAiPVwiIiArIHZhbHVlLnFzdHJpbmcoKSAr
ICJcIiI7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBtYXJrdXAgKz0gbm9kZS0+aXNIVE1MRWxlbWVudCgpID8gIj4i
IDogIi8+IjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNob3VsZFNlbGZDbG9zZShu
b2RlKSkgeworICAgICAgICAgICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkpCisgICAg
ICAgICAgICAgICAgICAgIG1hcmt1cCArPSAiICI7IC8vIFhIVE1MIDEuMCA8LT4gSFRNTCBjb21w
YXRpYmlsaXR5LgorICAgICAgICAgICAgICAgIG1hcmt1cCArPSAiLz4iOworICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgbWFya3VwICs9ICI+IjsKKyAgICAgICAgICAgIAogICAg
ICAgICAgICAgcmV0dXJuIG1hcmt1cDsKICAgICAgICAgfQogICAgIH0KIH0KIAotc3RhdGljIFFT
dHJpbmcgZW5kTWFya3VwKGNvbnN0IE5vZGVJbXBsICpub2RlKQorc3RhdGljIGlubGluZSBib29s
IGRvZXNIVE1MRm9yYmlkRW5kVGFnKGNvbnN0IE5vZGVJbXBsICpub2RlKQogewotICAgIGJvb2wg
aGFzRW5kVGFnID0gbm9kZS0+aXNFbGVtZW50Tm9kZSgpOwogICAgIGlmIChub2RlLT5pc0hUTUxF
bGVtZW50KCkpIHsKICAgICAgICAgY29uc3QgSFRNTEVsZW1lbnRJbXBsKiBodG1sRWx0ID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgSFRNTEVsZW1lbnRJbXBsKj4obm9kZSk7Ci0gICAgICAgIGhhc0VuZFRh
ZyA9IChodG1sRWx0LT5lbmRUYWdSZXF1aXJlbWVudCgpICE9IFRhZ1N0YXR1c0ZvcmJpZGRlbik7
CisgICAgICAgIHJldHVybiAoaHRtbEVsdC0+ZW5kVGFnUmVxdWlyZW1lbnQoKSA9PSBUYWdTdGF0
dXNGb3JiaWRkZW4pOwogICAgIH0KLSAgICBpZiAoaGFzRW5kVGFnKQorICAgIHJldHVybiBmYWxz
ZTsKK30KKworLy8gUnVsZXMgb2Ygc2VsZi1jbG9zdXJlCisvLyAxLiBhbGwgaHRtbCBlbGVtZW50
cyBpbiBodG1sIGRvY3VtZW50cyBjbG9zZSB3aXRoID4KKy8vIDIuIGFsbCBlbGVtZW50cyB3LyBj
aGlsZHJlbiBjbG9zZSB3aXRoID4KKy8vIDMuIGFsbCBub24taHRtbCBlbGVtZW50cyB3L28gY2hp
bGRyZW4gY2xvc2Ugd2l0aCAvPgorc3RhdGljIGlubGluZSBib29sIHNob3VsZFNlbGZDbG9zZShj
b25zdCBOb2RlSW1wbCAqbm9kZSkKK3sKKyAgICBib29sIGh0bWxGb3JiaWRzRW5kVGFnID0gZG9l
c0hUTUxGb3JiaWRFbmRUYWcobm9kZSk7CisgICAgYm9vbCBkb2N1bWVudElzSFRNTCA9IG5vZGUt
PmdldERvY3VtZW50KCktPmlzSFRNTERvY3VtZW50KCk7CisgICAgCisgICAgaWYgKG5vZGUtPmlz
SFRNTEVsZW1lbnQoKSAmJiAoZG9jdW1lbnRJc0hUTUwgfHwgIWh0bWxGb3JiaWRzRW5kVGFnKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGVsc2UgaWYgKCFub2RlLT5oYXNDaGlsZE5vZGVz
KCkgfHwgaHRtbEZvcmJpZHNFbmRUYWcpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVy
biBmYWxzZTsKK30KKworc3RhdGljIFFTdHJpbmcgZW5kTWFya3VwKGNvbnN0IE5vZGVJbXBsICpu
b2RlKQoreworICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgIXNob3VsZFNlbGZDbG9z
ZShub2RlKSAmJiAhZG9lc0hUTUxGb3JiaWRFbmRUYWcobm9kZSkpCiAgICAgICAgIHJldHVybiAi
PC8iICsgbm9kZS0+bm9kZU5hbWUoKS5xc3RyaW5nKCkgKyAiPiI7CiAgICAgcmV0dXJuICIiOwog
fQpAQCAtMjcwLDI3ICszMDAsMTggQEAgc3RhdGljIFFTdHJpbmcgbWFya3VwKGNvbnN0IE5vZGVJ
bXBsICpzdAogICAgIFFTdHJpbmcgbWUgPSAiIjsKICAgICBmb3IgKGNvbnN0IE5vZGVJbXBsICpj
dXJyZW50ID0gc3RhcnROb2RlOyBjdXJyZW50ICE9IE5VTEw7IGN1cnJlbnQgPSBpbmNsdWRlU2li
bGluZ3MgPyBjdXJyZW50LT5uZXh0U2libGluZygpIDogTlVMTCkgewogICAgICAgICBpZiAoIW9u
bHlJbmNsdWRlQ2hpbGRyZW4pIHsKLSAgICAgICAgICAgIGlmIChub2RlcykgeworICAgICAgICAg
ICAgaWYgKG5vZGVzKQogICAgICAgICAgICAgICAgIG5vZGVzLT5hcHBlbmQoY3VycmVudCk7Ci0g
ICAgICAgICAgICB9CiAgICAgICAgICAgICBtZSArPSBzdGFydE1hcmt1cChjdXJyZW50LCAwLCBE
b05vdEFubm90YXRlRm9ySW50ZXJjaGFuZ2UsIDApOwogICAgICAgICB9Ci0gICAgICAgIAotICAg
ICAgICBib29sIGNvbnRhaW5lciA9IHRydWU7Ci0gICAgICAgIGlmIChjdXJyZW50LT5pc0hUTUxF
bGVtZW50KCkpIHsKLSAgICAgICAgICAgIGNvbnN0IEhUTUxFbGVtZW50SW1wbCogaCA9IHN0YXRp
Y19jYXN0PGNvbnN0IEhUTUxFbGVtZW50SW1wbCo+KGN1cnJlbnQpOwotICAgICAgICAgICAgY29u
dGFpbmVyID0gaC0+ZW5kVGFnUmVxdWlyZW1lbnQoKSAhPSBUYWdTdGF0dXNGb3JiaWRkZW47Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKGNvbnRhaW5lcikgewotICAgICAgICAgICAgLy8gcHJpbnQg
Y2hpbGRyZW4KLSAgICAgICAgICAgIGlmIChOb2RlSW1wbCAqbiA9IGN1cnJlbnQtPmZpcnN0Q2hp
bGQoKSkgeworICAgICAgICAvLyBwcmludCBjaGlsZHJlbgorICAgICAgICBpZiAoTm9kZUltcGwg
Km4gPSBjdXJyZW50LT5maXJzdENoaWxkKCkpCisgICAgICAgICAgICBpZiAoIShuLT5nZXREb2N1
bWVudCgpLT5pc0hUTUxEb2N1bWVudCgpICYmIGRvZXNIVE1MRm9yYmlkRW5kVGFnKGN1cnJlbnQp
KSkKICAgICAgICAgICAgICAgICBtZSArPSBtYXJrdXAobiwgZmFsc2UsIHRydWUsIG5vZGVzKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIFByaW50IG15IGVuZGluZyB0YWcKLSAgICAg
ICAgICAgIGlmICghb25seUluY2x1ZGVDaGlsZHJlbikgewotICAgICAgICAgICAgICAgIG1lICs9
IGVuZE1hcmt1cChjdXJyZW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICAK
KyAgICAgICAgLy8gUHJpbnQgbXkgZW5kaW5nIHRhZworICAgICAgICBpZiAoIW9ubHlJbmNsdWRl
Q2hpbGRyZW4pCisgICAgICAgICAgICBtZSArPSBlbmRNYXJrdXAoY3VycmVudCk7CiAgICAgfQog
ICAgIHJldHVybiBtZTsKIH0KQEAgLTQ3Nyw2ICs0OTgsNyBAQCBRU3RyaW5nIGNyZWF0ZU1hcmt1
cChjb25zdCBSYW5nZUltcGwgKnJhCiAKIERvY3VtZW50RnJhZ21lbnRJbXBsICpjcmVhdGVGcmFn
bWVudEZyb21NYXJrdXAoRG9jdW1lbnRJbXBsICpkb2N1bWVudCwgY29uc3QgUVN0cmluZyAmbWFy
a3VwLCBjb25zdCBRU3RyaW5nICZiYXNlVVJMKQogeworICAgIEFTU0VSVChkb2N1bWVudC0+ZG9j
dW1lbnRFbGVtZW50KCktPmlzSFRNTEVsZW1lbnQoKSk7CiAgICAgLy8gRklYTUU6IFdoYXQgaWYg
dGhlIGRvY3VtZW50IGVsZW1lbnQgaXMgbm90IGFuIEhUTUwgZWxlbWVudD8KICAgICBIVE1MRWxl
bWVudEltcGwgKmVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudEltcGwgKj4oZG9jdW1l
bnQtPmRvY3VtZW50RWxlbWVudCgpKTsKIApAQCAtNDkzLDE0ICs1MTUsNyBAQCBRU3RyaW5nIGNy
ZWF0ZU1hcmt1cChjb25zdCBET006Ok5vZGVJbXBsCiAgICAgUVB0ckxpc3Q8RE9NOjpOb2RlSW1w
bD4gKm5vZGVzLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSBhbm5vdGF0ZSkKIHsKICAgICBBU1NF
UlQoYW5ub3RhdGUgPT0gRG9Ob3RBbm5vdGF0ZUZvckludGVyY2hhbmdlKTsgLy8gYW5ub3RhdGlv
biBub3QgeWV0IGltcGxlbWVudGVkIGZvciB0aGlzIGNvZGUgcGF0aAotCi0gICAgLy8gRklYTUU6
IFdlIGNvdWxkIHRha2Ugb3V0IHRoaXMgaWYgc3RhdGVtZW50IGlmIHdlIGhhZCBtb3JlIHRpbWUg
dG8gdGVzdC4KLSAgICAvLyBJJ20gY29uY2VybmVkIHRoYXQgbWFraW5nIHRoaXMgY3Jhc2ggd2hl
biB0aGUgZG9jdW1lbnQgaXMgbmlsIG1pZ2h0IGJlIHRvbyByaXNreSBhIGNoYW5nZSBhdCB0aGUg
bW9tZW50LgotICAgIERvY3VtZW50SW1wbCAqZG9jID0gbm9kZS0+Z2V0RG9jdW1lbnQoKTsKLSAg
ICBhc3NlcnQoZG9jKTsKLSAgICBpZiAoZG9jKQotICAgICAgICBkb2MtPnVwZGF0ZUxheW91dCgp
OwotCisgICAgbm9kZS0+Z2V0RG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CiAgICAgcmV0dXJu
IG1hcmt1cChub2RlLCBpbmNsdWRlQ2hpbGRyZW4sIGZhbHNlLCBub2Rlcyk7CiB9CiAKSW5kZXg6
IGh0bWwvaHRtbF9lbGVtZW50aW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva2h0bWwvaHRtbC9odG1sX2VsZW1lbnRpbXBsLmNwcCx2CnJldHJpZXZpbmcgcmV2
aXNpb24gMS4xMDgKZGlmZiAtcCAtdSAtcjEuMTA4IGh0bWwvaHRtbF9lbGVtZW50aW1wbC5jcHAK
LS0tIGh0bWwvaHRtbF9lbGVtZW50aW1wbC5jcHAJOSBPY3QgMjAwNSAwMjoxNDowNSAtMDAwMAkx
LjEwOAorKysgaHRtbC9odG1sX2VsZW1lbnRpbXBsLmNwcAkyNSBPY3QgMjAwNSAxOToxNjoyMCAt
MDAwMApAQCAtMjg2LDIzICsyODYsMTUgQEAgRG9jdW1lbnRGcmFnbWVudEltcGwgKkhUTUxFbGVt
ZW50SW1wbDo6YwogICAgIERvY3VtZW50RnJhZ21lbnRJbXBsICpmcmFnbWVudCA9IG5ldyBEb2N1
bWVudEZyYWdtZW50SW1wbChkb2NQdHIoKSk7CiAgICAgZnJhZ21lbnQtPnJlZigpOwogICAgIAot
ICAgIGlmICghZ2V0RG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkgewotICAgICAgICBib29s
IHJldCA9IHBhcnNlWE1MRG9jdW1lbnRGcmFnbWVudChodG1sLCBmcmFnbWVudCwgdGhpcyk7Ci0g
ICAgICAgIAotICAgICAgICBpZiAoIXJldCkgeworICAgIGlmIChnZXREb2N1bWVudCgpLT5pc0hU
TUxEb2N1bWVudCgpKQorICAgICAgICAgcGFyc2VIVE1MRG9jdW1lbnRGcmFnbWVudChodG1sLCBm
cmFnbWVudCk7CisgICAgZWxzZSB7CisgICAgICAgIGlmICghcGFyc2VYTUxEb2N1bWVudEZyYWdt
ZW50KGh0bWwsIGZyYWdtZW50LCB0aGlzKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBwcm9wYWdhdGUgYSBzeW50YXggZXJyb3IgZXhjZXB0aW9uIG91dCBoZXJlLgogICAgICAg
ICAgICAgZnJhZ21lbnQtPmRlcmVmKCk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAg
fQogICAgIH0KLSAgICBlbHNlCi0gICAgewotICAgICAgICBIVE1MVG9rZW5pemVyIHRvayhkb2NQ
dHIoKSwgZnJhZ21lbnQpOwotICAgICAgICB0b2suc2V0Rm9yY2VTeW5jaHJvbm91cyh0cnVlKTsg
ICAgICAgICAgICAvLyBkaXNhYmxlIGFzeW5jaHJvbm91cyBwYXJzaW5nCi0gICAgICAgIHRvay53
cml0ZSggaHRtbC5xc3RyaW5nKCksIHRydWUgKTsKLSAgICAgICAgdG9rLmZpbmlzaCgpOwotICAg
ICAgICBhc3NlcnQoIXRvay5wcm9jZXNzaW5nRGF0YSgpKTsgICAgICAgICAgICAvLyBtYWtlIHN1
cmUgd2UncmUgZG9uZSAoc2VlIDM5NjMxNTEpCi0gICAgfQogCiAgICAgLy8gRXhjZXB0aW9ucyBh
cmUgaWdub3JlZCBiZWNhdXNlIG5vbmUgb3VnaHQgdG8gaGFwcGVuIGhlcmUuCiAgICAgaW50IGln
bm9yZWRFeGNlcHRpb25Db2RlOwpAQCAtNjAzLDcgKzU5NSw3IEBAIHZvaWQgSFRNTEVsZW1lbnRJ
bXBsOjphY2Nlc3NLZXlBY3Rpb24oYm8KIAogRE9NU3RyaW5nIEhUTUxFbGVtZW50SW1wbDo6dG9T
dHJpbmcoKSBjb25zdAogewotICAgIGlmICghaGFzQ2hpbGROb2RlcygpKSB7CisgICAgaWYgKCFo
YXNDaGlsZE5vZGVzKCkgJiYgZ2V0RG9jdW1lbnQoKS0+aXNIVE1MRG9jdW1lbnQoKSkgewogCURP
TVN0cmluZyByZXN1bHQgPSBvcGVuVGFnU3RhcnRUb1N0cmluZygpOwogCXJlc3VsdCArPSAiPiI7
CiAKSW5kZXg6IGh0bWwvaHRtbHRva2VuaXplci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L1dlYkNvcmUva2h0bWwvaHRtbC9odG1sdG9rZW5pemVyLmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS4xMjIKZGlmZiAtcCAtdSAtcjEuMTIyIGh0bWwvaHRtbHRva2VuaXplci5jcHAK
LS0tIGh0bWwvaHRtbHRva2VuaXplci5jcHAJMjQgT2N0IDIwMDUgMDE6Mzk6NDAgLTAwMDAJMS4x
MjIKKysrIGh0bWwvaHRtbHRva2VuaXplci5jcHAJMjUgT2N0IDIwMDUgMTk6MTY6MjQgLTAwMDAK
QEAgLTE4NDQsNCArMTg0NCwxMyBAQCB2b2lkIEhUTUxUb2tlbml6ZXI6OnNldE9uSG9sZChib29s
IF9vbkhvCiAgICAgb25Ib2xkID0gX29uSG9sZDsKIH0KIAordm9pZCBwYXJzZUhUTUxEb2N1bWVu
dEZyYWdtZW50KGNvbnN0IERPTTo6RE9NU3RyaW5nICZzb3VyY2UsIERPTTo6RG9jdW1lbnRGcmFn
bWVudEltcGwgKmZyYWdtZW50KQoreworICAgIEhUTUxUb2tlbml6ZXIgdG9rKGZyYWdtZW50LT5k
b2NQdHIoKSwgZnJhZ21lbnQpOworICAgIHRvay5zZXRGb3JjZVN5bmNocm9ub3VzKHRydWUpOwor
ICAgIHRvay53cml0ZShzb3VyY2UucXN0cmluZygpLCB0cnVlKTsKKyAgICB0b2suZmluaXNoKCk7
CisgICAgYXNzZXJ0KCF0b2sucHJvY2Vzc2luZ0RhdGEoKSk7ICAgICAgLy8gbWFrZSBzdXJlIHdl
J3JlIGRvbmUgKHNlZSAzOTYzMTUxKQorfQorCiB9CkluZGV4OiBodG1sL2h0bWx0b2tlbml6ZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9odG1sL2h0bWx0
b2tlbml6ZXIuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS40MwpkaWZmIC1wIC11IC1yMS40MyBo
dG1sL2h0bWx0b2tlbml6ZXIuaAotLS0gaHRtbC9odG1sdG9rZW5pemVyLmgJMjIgT2N0IDIwMDUg
MDE6NDE6MzUgLTAwMDAJMS40MworKysgaHRtbC9odG1sdG9rZW5pemVyLmgJMjUgT2N0IDIwMDUg
MTk6MTY6MjkgLTAwMDAKQEAgLTM4MSw2ICszODEsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBp
bldyaXRlOwogfTsKIAordm9pZCBwYXJzZUhUTUxEb2N1bWVudEZyYWdtZW50KGNvbnN0IERPTTo6
RE9NU3RyaW5nICYsIERPTTo6RG9jdW1lbnRGcmFnbWVudEltcGwgKik7CisKIH0KIAogI2lmIEFQ
UExFX0NIQU5HRVMKSW5kZXg6IHhtbC9kb21feG1saW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwveG1sL2RvbV94bWxpbXBsLmNwcCx2CnJldHJpZXZp
bmcgcmV2aXNpb24gMS4xNgpkaWZmIC1wIC11IC1yMS4xNiB4bWwvZG9tX3htbGltcGwuY3BwCi0t
LSB4bWwvZG9tX3htbGltcGwuY3BwCTMgT2N0IDIwMDUgMjE6MTI6NTQgLTAwMDAJMS4xNgorKysg
eG1sL2RvbV94bWxpbXBsLmNwcAkyNSBPY3QgMjAwNSAxOToxNjozMiAtMDAwMApAQCAtMzAzLDcg
KzMwMyw2IEBAIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGw6OlByb2Nlc3NpbmdJbnMKICAgICBt
X3RhcmdldCA9IDA7CiAgICAgbV9kYXRhID0gMDsKICAgICBtX2xvY2FsSHJlZiA9IDA7Ci0gICAg
bV9zaGVldCA9IDA7CiAgICAgbV9jYWNoZWRTaGVldCA9IDA7CiAgICAgbV9sb2FkaW5nID0gZmFs
c2U7CiAjaWZkZWYgS0hUTUxfWFNMVApAQCAtMzE5LDcgKzMxOCw2IEBAIFByb2Nlc3NpbmdJbnN0
cnVjdGlvbkltcGw6OlByb2Nlc3NpbmdJbnMKICAgICBtX2RhdGEgPSBfZGF0YS5pbXBsKCk7CiAg
ICAgaWYgKG1fZGF0YSkKICAgICAgICAgbV9kYXRhLT5yZWYoKTsKLSAgICBtX3NoZWV0ID0gMDsK
ICAgICBtX2NhY2hlZFNoZWV0ID0gMDsKICAgICBtX2xvY2FsSHJlZiA9IDA7CiAjaWZkZWYgS0hU
TUxfWFNMVApAQCAtMzM1LDggKzMzMyw2IEBAIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGw6On5Q
cm9jZXNzaW5nSW4KICAgICAgICAgbV9kYXRhLT5kZXJlZigpOwogICAgIGlmIChtX2NhY2hlZFNo
ZWV0KQogCW1fY2FjaGVkU2hlZXQtPmRlcmVmKHRoaXMpOwotICAgIGlmIChtX3NoZWV0KQotCW1f
c2hlZXQtPmRlcmVmKCk7CiB9CiAKIERPTVN0cmluZyBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBs
Ojp0YXJnZXQoKSBjb25zdApAQCAtNDkyLDExICs0ODgsNiBAQCBib29sIFByb2Nlc3NpbmdJbnN0
cnVjdGlvbkltcGw6OmNoZWNrU3R5CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVN0eWxlU2hlZXRJ
bXBsKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsOjpzaGVldCgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fc2hlZXQ7Ci19Ci0KIGJvb2wgUHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbDo6aXNMb2Fk
aW5nKCkgY29uc3QKIHsKICAgICBpZiAobV9sb2FkaW5nKQpAQCAtNTM1LDIyICs1MjYsMTMgQEAg
dm9pZCBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25JbXBsOjpzZXRTdHlsZQogICAgICAgICBnZXREb2N1
bWVudCgpLT5zdHlsZXNoZWV0TG9hZGVkKCk7CiB9CiAKLXZvaWQgUHJvY2Vzc2luZ0luc3RydWN0
aW9uSW1wbDo6c2V0U3R5bGVTaGVldChDU1NTdHlsZVNoZWV0SW1wbCogc2hlZXQpCi17Ci0gICAg
aWYgKG1fc2hlZXQpCi0gICAgICAgIG1fc2hlZXQtPmRlcmVmKCk7Ci0gICAgbV9zaGVldCA9IHNo
ZWV0OwotICAgIGlmIChtX3NoZWV0KQotICAgICAgICBtX3NoZWV0LT5yZWYoKTsKLX0KLQogRE9N
U3RyaW5nIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGw6OnRvU3RyaW5nKCkgY29uc3QKIHsKICAg
ICBET01TdHJpbmcgcmVzdWx0ID0gIjw/IjsKICAgICByZXN1bHQgKz0gbV90YXJnZXQ7CiAgICAg
cmVzdWx0ICs9ICIgIjsKICAgICByZXN1bHQgKz0gbV9kYXRhOwotICAgIHJlc3VsdCArPSAiPiI7
CisgICAgcmVzdWx0ICs9ICI/PiI7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApJbmRleDogeG1s
L2RvbV94bWxpbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0
bWwveG1sL2RvbV94bWxpbXBsLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTMKZGlmZiAtcCAt
dSAtcjEuMTMgeG1sL2RvbV94bWxpbXBsLmgKLS0tIHhtbC9kb21feG1saW1wbC5oCTEwIE1heSAy
MDA1IDIxOjU5OjE1IC0wMDAwCTEuMTMKKysrIHhtbC9kb21feG1saW1wbC5oCTI1IE9jdCAyMDA1
IDE5OjE2OjQyIC0wMDAwCkBAIC0yMyw2ICsyMyw3IEBACiAjaWZuZGVmIF9ET01fWG1sSW1wbF9o
XwogI2RlZmluZSBfRE9NX1htbEltcGxfaF8KIAorI2luY2x1ZGUgImNzc19zdHlsZXNoZWV0aW1w
bC5oIgogI2luY2x1ZGUgInhtbC9kb21fbm9kZWltcGwuaCIKICNpbmNsdWRlICJtaXNjL2xvYWRl
cl9jbGllbnQuaCIKIApAQCAtMzMsOCArMzQsNiBAQCBjbGFzcyBDYWNoZWRDU1NTdHlsZVNoZWV0
OwogbmFtZXNwYWNlIERPTSB7CiAKIGNsYXNzIERvY3VtZW50SW1wbDsKLWNsYXNzIENTU1N0eWxl
U2hlZXRJbXBsOwotY2xhc3MgU3R5bGVTaGVldEltcGw7CiBjbGFzcyBET01TdHJpbmc7CiAjaWYg
QVBQTEVfQ0hBTkdFUwogY2xhc3MgUHJvY2Vzc2luZ0luc3RydWN0aW9uOwpAQCAtMTUwLDEwICsx
NDksMTAgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBET01TdHJpbmcgbG9jYWxIcmVmKCkgY29u
c3Q7CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoIHVuc2lnbmVkIHNob3J0IHR5
cGUgKTsKLSAgICBTdHlsZVNoZWV0SW1wbCAqc2hlZXQoKSBjb25zdDsKKyAgICBTdHlsZVNoZWV0
SW1wbCAqc2hlZXQoKSBjb25zdCB7IHJldHVybiBtX3NoZWV0LmdldCgpOyB9CiAgICAgYm9vbCBj
aGVja1N0eWxlU2hlZXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3R5bGVTaGVldChjb25zdCBE
T01TdHJpbmcgJnVybCwgY29uc3QgRE9NU3RyaW5nICZzaGVldCk7Ci0gICAgdmlydHVhbCB2b2lk
IHNldFN0eWxlU2hlZXQoQ1NTU3R5bGVTaGVldEltcGwqIHNoZWV0KTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0U3R5bGVTaGVldChDU1NTdHlsZVNoZWV0SW1wbCAqc2hlZXQpIHsgbV9zaGVldCA9IHNo
ZWV0OyB9CiAgICAgYm9vbCBpc0xvYWRpbmcoKSBjb25zdDsKICAgICB2b2lkIHNoZWV0TG9hZGVk
KCk7CiAKQEAgLTE2OCw3ICsxNjcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgRE9NU3RyaW5nSW1wbCAq
bV9kYXRhOwogICAgIERPTVN0cmluZ0ltcGwgKm1fbG9jYWxIcmVmOwogICAgIGtodG1sOjpDYWNo
ZWRPYmplY3QgKm1fY2FjaGVkU2hlZXQ7Ci0gICAgU3R5bGVTaGVldEltcGwgKm1fc2hlZXQ7Cisg
ICAgU2hhcmVkUHRyPFN0eWxlU2hlZXRJbXBsPiBtX3NoZWV0OwogICAgIGJvb2wgbV9sb2FkaW5n
OwogI2lmZGVmIEtIVE1MX1hTTFQKICAgICBib29sIG1faXNYU0w7Cg==
</data>
<flag name="review"
          id="780"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4479</attachid>
            <date>2005-10-25 12:20:17 -0700</date>
            <delta_ts>2005-10-25 22:12:24 -0700</delta_ts>
            <desc>Additional innerHTML test cases (both for xhtml and html)</desc>
            <filename>new-innerHTML-tests.patch</filename>
            <type>text/plain</type>
            <size>3515</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IDAwNC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogMDA0LWV4cGVjdGVk
LnR4dApkaWZmIC1OIDAwNC1leHBlY3RlZC50eHQKLS0tIDAwNC1leHBlY3RlZC50eHQJMSBKYW4g
MTk3MCAwMDowMDowMCAtMDAwMAorKysgMDA0LWV4cGVjdGVkLnR4dAkyNSBPY3QgMjAwNSAxOToy
MDo1MCAtMDAwMApAQCAtMCwwICsxLDI2IEBACitDb250ZW50OgorCis8aGVhZD4KKzxtZXRhIG5h
bWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJUaGlzIHRlc3RzIHNpbmd1bGFyIGVsZW1lbnRzIHRv
byIgLz4KKzx0aXRsZT54aHRtbCBpbm5lckhUTUwgdGVzdDwvdGl0bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzcGFuPkNvbnRlbnQ6PC9zcGFuPgorPHByZSBpZD0iY29udGVudCI+cGxhY2Vob2xkZXI8
L3ByZT4KKzxkaXY+PC9kaXY+Cis8c3Bhbj48L3NwYW4+Cis8Yj50ZXN0PC9iPgorPGJyIC8+Cis8
ZGl2PjwvZGl2PgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5z
OnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzAwIiBoZWlnaHQ9
IjIwMCI+CisgIDw/eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiIGhyZWY9IiI/PgorICA8
Y2lyY2xlIGN4PSIxNTAiIGN5PSIxMDAiIHI9IjUwIiB4bGluazp0aXRsZT0idGVzdCIvPgorPC9z
dmc+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKwlsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
dGVudCIpLmZpcnN0Q2hpbGQubm9kZVZhbHVlID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmlu
bmVySFRNTDsKKzwvc2NyaXB0PgorPC9ib2R5PgordGVzdCAKKwpJbmRleDogMDA0LnhodG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IDAwNC54aHRtbApkaWZmIC1OIDAwNC54aHRtbAotLS0gMDA0Lnho
dG1sCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIDAwNC54aHRtbAkyNSBPY3QgMjAwNSAx
OToyMDo1MCAtMDAwMApAQCAtMCwwICsxLDI5IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29k
aW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDCisgICAgIi0vL1czQy8vRFREIFhI
VE1MIDEuMSBwbHVzIE1hdGhNTCAyLjAgcGx1cyBTVkcgMS4xLy9FTiIKKyAgICAiaHR0cDovL3d3
dy53My5vcmcvMjAwMi8wNC94aHRtbC1tYXRoLXN2Zy94aHRtbC1tYXRoLXN2Zy1mbGF0LmR0ZCI+
Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxt
ZXRhIG5hbWU9ImRlc2NyaXB0aW9uIiBjb250ZW50PSJUaGlzIHRlc3RzIHNpbmd1bGFyIGVsZW1l
bnRzIHRvbyIgLz4KKzx0aXRsZT54aHRtbCBpbm5lckhUTUwgdGVzdDwvdGl0bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzcGFuPkNvbnRlbnQ6PC9zcGFuPgorPHByZSBpZD0iY29udGVudCI+cGxhY2Vo
b2xkZXI8L3ByZT4KKzxkaXY+PC9kaXY+Cis8c3Bhbj48L3NwYW4+Cis8Yj50ZXN0PC9iPgorPGJy
IC8+Cis8ZGl2PjwvZGl2PgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
IHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzAwIiBo
ZWlnaHQ9IjIwMCI+CisgIDw/eG1sLXN0eWxlc2hlZXQgdHlwZT0idGV4dC94c2wiIGhyZWY9IiI/
PgorICA8Y2lyY2xlIGN4PSIxNTAiIGN5PSIxMDAiIHI9IjUwIiB4bGluazp0aXRsZT0idGVzdCIv
PgorPC9zdmc+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKwls
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29udGVudCIpLmZpcnN0Q2hpbGQubm9kZVZhbHVlID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVt
ZW50LmlubmVySFRNTDsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCkluZGV4OiAwMDUt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IDAwNS1leHBlY3RlZC50eHQKZGlmZiAt
TiAwMDUtZXhwZWN0ZWQudHh0Ci0tLSAwMDUtZXhwZWN0ZWQudHh0CTEgSmFuIDE5NzAgMDA6MDA6
MDAgLTAwMDAKKysrIDAwNS1leHBlY3RlZC50eHQJMjUgT2N0IDIwMDUgMTk6MjA6NTAgLTAwMDAK
QEAgLTAsMCArMSwxNyBAQAorQ29udGVudDoKKzxIRUFEPgorPE1FVEEgbmFtZT0iZGVzY3JpcHRp
b24iIGNvbnRlbnQ9IlRoaXMgdGVzdHMgaHRtbCBvdXRwdXQiPgorPFRJVExFPmh0bWwgaW5uZXJI
VE1MIHRlc3Q8L1RJVExFPgorPC9IRUFEPjxCT0RZPgorPFNQQU4+Q29udGVudDo8L1NQQU4+Cis8
UFJFIGlkPSJjb250ZW50Ij5wbGFjZWhvbGRlcjwvUFJFPjxESVY+PC9ESVY+Cis8U1BBTj48L1NQ
QU4+Cis8Qj50ZXN0PC9CPgorPEJSPgorPFNDUklQVD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisJbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5maXJzdENoaWxkLm5vZGVWYWx1ZSA9IGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudC5pbm5lckhUTUw7Cis8L1NDUklQVD48L0JPRFk+Cit0ZXN0IAorCklu
ZGV4OiAwMDUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAwMDUuaHRtbApkaWZmIC1OIDAwNS5o
dG1sCi0tLSAwMDUuaHRtbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyAwMDUuaHRtbAky
NSBPY3QgMjAwNSAxOToyMDo1MCAtMDAwMApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRt
bCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iVGhpcyB0ZXN0cyBo
dG1sIG91dHB1dCIgLz4KKzx0aXRsZT5odG1sIGlubmVySFRNTCB0ZXN0PC90aXRsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPHNwYW4+Q29udGVudDo8L3NwYW4+Cis8cHJlIGlkPSJjb250ZW50Ij5wbGFj
ZWhvbGRlcjwvcHJlPgorPGRpdj48L2Rpdj4KKzxzcGFuPjwvc3Bhbj4KKzxiPnRlc3Q8L2I+Cis8
YnI+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKwlsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
dGVudCIpLmZpcnN0Q2hpbGQubm9kZVZhbHVlID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lmlu
bmVySFRNTDsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="781"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>