<?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>6141</bug_id>
          
          <creation_ts>2005-12-18 14:32:49 -0800</creation_ts>
          <short_desc>DOMCSSPrimitiveValue is always returning values in pixels when using getComputedStyle:</short_desc>
          <delta_ts>2006-04-22 12:23:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ohmson">ohmson</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>26143</commentid>
    <comment_count>0</comment_count>
    <who name="Ohmson">ohmson</who>
    <bug_when>2005-12-18 14:32:49 -0800</bug_when>
    <thetext>I get a DOMCSSStyleDeclaration when using -[DOMDocument getComputedStyle::]. From the 
declaration, I can get the DOMCSSValue when using -getPropertyCSSValue. In my case, I needed to find 
the CSS &apos;font-size&apos; of an element.

The object returned in getPropertyCSSValue is actually a DOMCSSPrimitiveValue object. In my CSS file, I 
actually have &apos;font-size: 10pt;&apos; but when I try to use -[DOMCSSPrimitiveValue primitiveType], it is always 
returning me DOM_CSS_PX

Maybe because the values are &apos;computed&apos; and so everything is in one kind of metrics, &apos;px&apos;...

But at least -[DOMCSSPrimitiveValue getFloatValue:DOM_CSS_PT] should have given me back the &apos;10.0&apos;, 
instead of &apos;13.3333&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33115</commentid>
    <comment_count>1</comment_count>
    <who name="Joost de Valk (AlthA)">joost</who>
    <bug_when>2006-02-17 01:44:46 -0800</bug_when>
    <thetext>It&apos;s getting the computed style, the final value is always in px effectively... I&apos;m sorry, this is a wontfix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33149</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-17 13:44:46 -0800</bug_when>
    <thetext>What about the final part of the report? It indeed looks strange that the specified unit type is ignored:

double getFloatValue(unsigned short /* unitType */) const { return m_value.num; }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>33161</commentid>
    <comment_count>3</comment_count>
      <attachid>6570</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-17 14:33:50 -0800</bug_when>
    <thetext>Created attachment 6570
JS test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40069</commentid>
    <comment_count>4</comment_count>
      <attachid>7887</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2006-04-21 16:19:13 -0700</bug_when>
    <thetext>Created attachment 7887
Patch

Here is a patch that fixes the bug. I talked through this design with Hyatt. Since we use getFloatValue() internally a lot, I created another version that still just returns m_value.num since that is what the internal callers expect and since passing in the type was clunky and unnecessary. It is also worth noting that the given test case does not contain the exact value we return. The test case expects that we render floating point pixels, but we round to integers. This causes the expected calculation to be off from the actual calculation. (It also means that our results, while accurate, do not match Firefox exactly.) I will upload a more accurate test in a minute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40070</commentid>
    <comment_count>5</comment_count>
      <attachid>7888</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2006-04-21 16:21:09 -0700</bug_when>
    <thetext>Created attachment 7888
Updated layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40081</commentid>
    <comment_count>6</comment_count>
      <attachid>7887</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-04-21 22:01:14 -0700</bug_when>
    <thetext>Comment on attachment 7887
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>40170</commentid>
    <comment_count>7</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2006-04-22 12:23:37 -0700</bug_when>
    <thetext>I committed the patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>6570</attachid>
            <date>2006-02-17 14:33:50 -0800</date>
            <delta_ts>2006-04-21 16:21:09 -0700</delta_ts>
            <desc>JS test case</desc>
            <filename>getFloatValue.html</filename>
            <type>text/html</type>
            <size>303</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">PGJvZHk+CjxkaXYgaWQ9J2QnIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjwvZGl2PgoxMHB0ID0g
CjxzY3JpcHQ+Ci8vQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX01NCmRvY3VtZW50LndyaXRlKGRvY3Vt
ZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2QnKSwgJycpLmdldFByb3BlcnR5Q1NTVmFsdWUoJ2ZvbnQtc2l6ZScpLmdldEZsb2F0VmFsdWUo
NykpOwpkb2N1bWVudC53cml0ZSgibW0gKHNob3VsZCBiZSAzLjUyNzc4NTA2Mjc4OTkxNykiKTsK
PC9zY3JpcHQ+CjwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7887</attachid>
            <date>2006-04-21 16:19:13 -0700</date>
            <delta_ts>2006-04-21 22:01:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>getFloatValueForUnit.txt</filename>
            <type>text/plain</type>
            <size>20902</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IGVkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGVkaXRp
bmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCShyZXZpc2lvbiAxMzk5NykKKysrIGVkaXRpbmcvQXBw
bHlTdHlsZUNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjMsNyArNDIzLDcgQEAKICAg
ICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19QWCkgewogICAgICAgICAgICAgLy8gT25seSBQWCBoYW5kbGVkIG5vdy4gSWYg
d2UgaGFuZGxlIG1vcmUgdHlwZXMgaW4gdGhlIGZ1dHVyZSwgcGVyaGFwcwogICAgICAgICAgICAg
Ly8gYSBzd2l0Y2ggc3RhdGVtZW50IGhlcmUgd291bGQgYmUgbW9yZSBhcHByb3ByaWF0ZS4KLSAg
ICAgICAgICAgIGFkanVzdG1lbnQgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BYKTsKKyAgICAgICAgICAgIGFkanVzdG1lbnQgPSBwcmltaXRp
dmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpOwogICAgICAgICB9CiAgICAgfQogICAgIHN0eWxlLT5y
ZW1vdmVQcm9wZXJ0eShDU1NfUFJPUF9fV0VCS0lUX0ZPTlRfU0laRV9ERUxUQSk7CkluZGV4OiBj
c3MvY3NzcGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjc3MvY3NzcGFyc2VyLmNwcAkocmV2aXNp
b24gMTM5OTcpCisrKyBjc3MvY3NzcGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ0OCwx
NiArMjQ0OCwxNiBAQAogICAgIHZvaWQgY29tbWl0Qm9yZGVySW1hZ2UoQ1NTUGFyc2VyKiBwLCBp
bnQgcHJvcElkLCBib29sIGltcG9ydGFudCkgewogICAgICAgICAvLyBXZSBuZWVkIHRvIGNsb25l
IGFuZCByZXBlYXQgdmFsdWVzIGZvciBhbnkgb21pc3Npb25zLgogICAgICAgICBpZiAoIW1fcmln
aHQpIHsKLSAgICAgICAgICAgIG1fcmlnaHQgPSBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUobV90b3At
PmdldEZsb2F0VmFsdWUobV90b3AtPnByaW1pdGl2ZVR5cGUoKSksIChDU1NQcmltaXRpdmVWYWx1
ZTo6VW5pdFR5cGVzKW1fdG9wLT5wcmltaXRpdmVUeXBlKCkpOwotICAgICAgICAgICAgbV9ib3R0
b20gPSBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUobV90b3AtPmdldEZsb2F0VmFsdWUobV90b3AtPnBy
aW1pdGl2ZVR5cGUoKSksIChDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzKW1fdG9wLT5wcmlt
aXRpdmVUeXBlKCkpOwotICAgICAgICAgICAgbV9sZWZ0ID0gbmV3IENTU1ByaW1pdGl2ZVZhbHVl
KG1fdG9wLT5nZXRGbG9hdFZhbHVlKG1fdG9wLT5wcmltaXRpdmVUeXBlKCkpLCAoQ1NTUHJpbWl0
aXZlVmFsdWU6OlVuaXRUeXBlcyltX3RvcC0+cHJpbWl0aXZlVHlwZSgpKTsKKyAgICAgICAgICAg
IG1fcmlnaHQgPSBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUobV90b3AtPmdldEZsb2F0VmFsdWUoKSwg
KENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpbV90b3AtPnByaW1pdGl2ZVR5cGUoKSk7Cisg
ICAgICAgICAgICBtX2JvdHRvbSA9IG5ldyBDU1NQcmltaXRpdmVWYWx1ZShtX3RvcC0+Z2V0Rmxv
YXRWYWx1ZSgpLCAoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyltX3RvcC0+cHJpbWl0aXZl
VHlwZSgpKTsKKyAgICAgICAgICAgIG1fbGVmdCA9IG5ldyBDU1NQcmltaXRpdmVWYWx1ZShtX3Rv
cC0+Z2V0RmxvYXRWYWx1ZSgpLCAoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyltX3RvcC0+
cHJpbWl0aXZlVHlwZSgpKTsKICAgICAgICAgfQogICAgICAgICBpZiAoIW1fYm90dG9tKSB7Ci0g
ICAgICAgICAgICBtX2JvdHRvbSA9IG5ldyBDU1NQcmltaXRpdmVWYWx1ZShtX3RvcC0+Z2V0Rmxv
YXRWYWx1ZShtX3RvcC0+cHJpbWl0aXZlVHlwZSgpKSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0
VHlwZXMpbV90b3AtPnByaW1pdGl2ZVR5cGUoKSk7Ci0gICAgICAgICAgICBtX2xlZnQgPSBuZXcg
Q1NTUHJpbWl0aXZlVmFsdWUobV9yaWdodC0+Z2V0RmxvYXRWYWx1ZShtX3JpZ2h0LT5wcmltaXRp
dmVUeXBlKCkpLCAoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyltX3JpZ2h0LT5wcmltaXRp
dmVUeXBlKCkpOworICAgICAgICAgICAgbV9ib3R0b20gPSBuZXcgQ1NTUHJpbWl0aXZlVmFsdWUo
bV90b3AtPmdldEZsb2F0VmFsdWUoKSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpbV90
b3AtPnByaW1pdGl2ZVR5cGUoKSk7CisgICAgICAgICAgICBtX2xlZnQgPSBuZXcgQ1NTUHJpbWl0
aXZlVmFsdWUobV9yaWdodC0+Z2V0RmxvYXRWYWx1ZSgpLCAoQ1NTUHJpbWl0aXZlVmFsdWU6OlVu
aXRUeXBlcyltX3JpZ2h0LT5wcmltaXRpdmVUeXBlKCkpOwogICAgICAgICB9CiAgICAgICAgIGlm
ICghbV9sZWZ0KQotICAgICAgICAgICAgIG1fbGVmdCA9IG5ldyBDU1NQcmltaXRpdmVWYWx1ZSht
X3RvcC0+Z2V0RmxvYXRWYWx1ZShtX3RvcC0+cHJpbWl0aXZlVHlwZSgpKSwgKENTU1ByaW1pdGl2
ZVZhbHVlOjpVbml0VHlwZXMpbV90b3AtPnByaW1pdGl2ZVR5cGUoKSk7CisgICAgICAgICAgICAg
bV9sZWZ0ID0gbmV3IENTU1ByaW1pdGl2ZVZhbHVlKG1fdG9wLT5nZXRGbG9hdFZhbHVlKCksIChD
U1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzKW1fdG9wLT5wcmltaXRpdmVUeXBlKCkpOwogICAg
ICAgICAgICAgIAogICAgICAgICAvLyBOb3cgYnVpbGQgYSByZWN0IHZhbHVlIHRvIGhvbGQgYWxs
IGZvdXIgb2Ygb3VyIHByaW1pdGl2ZSB2YWx1ZXMuCiAgICAgICAgIFJlY3RJbXBsKiByZWN0ID0g
bmV3IFJlY3RJbXBsOwpJbmRleDogY3NzL2Nzc192YWx1ZWltcGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGNzcy9jc3NfdmFsdWVpbXBsLmNwcAkocmV2aXNpb24gMTM5OTcpCisrKyBjc3MvY3NzX3ZhbHVl
aW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyMSw3ICs5MjEsNyBAQAogICAgICAgICByZXR1
cm4gLTE7CiAgICAgfQogCi0gICAgcmV0dXJuIGdldEZsb2F0VmFsdWUodHlwZSkqZmFjdG9yOwor
ICAgIHJldHVybiBnZXRGbG9hdFZhbHVlKCkgKiBmYWN0b3I7CiB9CiAKIHZvaWQgQ1NTUHJpbWl0
aXZlVmFsdWU6OnNldEZsb2F0VmFsdWUoIHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBkb3VibGUg
ZmxvYXRWYWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC05MzgsNiArOTM4LDU0IEBACiAgICAg
bV90eXBlID0gdW5pdFR5cGU7CiB9CiAKK2RvdWJsZSBzY2FsZUZhY3RvckZvckNvbnZlcnNpb24o
dW5zaWduZWQgc2hvcnQgdW5pdFR5cGUpCit7CisgICAgZG91YmxlIGNzc1BpeGVsc1BlckluY2gg
PSA5Ni4wOworICAgIGRvdWJsZSBmYWN0b3IgPSAxLjA7CisgICAgCisgICAgc3dpdGNoKHVuaXRU
eXBlKSB7CisgICAgICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QWDoKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfQ006CisgICAg
ICAgICAgICBmYWN0b3IgPSBjc3NQaXhlbHNQZXJJbmNoIC8gMi41NDsgLy8gKDIuNTQgY20vaW4p
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X01NOgorICAgICAgICAgICAgZmFjdG9yID0gY3NzUGl4ZWxzUGVySW5jaCAvIDI1LjQ7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0lOOgor
ICAgICAgICAgICAgZmFjdG9yID0gY3NzUGl4ZWxzUGVySW5jaDsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUFQ6CisgICAgICAgICAgICBm
YWN0b3IgPSBjc3NQaXhlbHNQZXJJbmNoIC8gNzIuMDsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEM6CisgICAgICAgICAgICBmYWN0b3Ig
PSBjc3NQaXhlbHNQZXJJbmNoICogMTIuMCAvIDcyLjA7IC8vIDEgcGMgPT0gMTIgcHQKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIAorICAgIHJldHVybiBmYWN0b3I7Cit9CisKK2RvdWJsZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Z2V0RmxvYXRWYWx1ZSh1bnNpZ25lZCBzaG9ydCB1bml0VHlwZSkKK3sKKyAgICBpZiAodW5p
dFR5cGUgPT0gbV90eXBlIHx8IHVuaXRUeXBlIDwgQ1NTX1BYIHx8IHVuaXRUeXBlID4gQ1NTX1BD
KQorICAgICAgICByZXR1cm4gbV92YWx1ZS5udW07CisgICAgCisgICAgZG91YmxlIGNvbnZlcnRl
ZFZhbHVlID0gbV92YWx1ZS5udW07CisgICAgCisgICAgLy8gRmlyc3QgY29udmVydCB0aGUgdmFs
dWUgZnJvbSBtX3R5cGUgaW50byBDU1NQaXhlbHMKKyAgICBkb3VibGUgZmFjdG9yID0gc2NhbGVG
YWN0b3JGb3JDb252ZXJzaW9uKG1fdHlwZSk7CisgICAgY29udmVydGVkVmFsdWUgKj0gZmFjdG9y
OworICAgIAorICAgIC8vIE5vdyBjb252ZXJ0IGZyb20gQ1NTUGl4ZWxzIHRvIHRoZSBzcGVjaWZp
ZWQgdW5pdFR5cGUKKyAgICBmYWN0b3IgPSBzY2FsZUZhY3RvckZvckNvbnZlcnNpb24odW5pdFR5
cGUpOworICAgIGNvbnZlcnRlZFZhbHVlIC89IGZhY3RvcjsKKyAgICAKKyAgICByZXR1cm4gY29u
dmVydGVkVmFsdWU7Cit9CisKIHZvaWQgQ1NTUHJpbWl0aXZlVmFsdWU6OnNldFN0cmluZ1ZhbHVl
KCB1bnNpZ25lZCBzaG9ydCBzdHJpbmdUeXBlLCBjb25zdCBTdHJpbmcgJnN0cmluZ1ZhbHVlLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBlYyA9IDA7CkluZGV4OiBjc3MvY3Nzc3R5bGVzZWxl
Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gY3NzL2Nzc3N0eWxlc2VsZWN0b3IuY3BwCShyZXZpc2lv
biAxMzk5NykKKysrIGNzcy9jc3NzdHlsZXNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTYyNCw5ICsxNjI0LDkgQEAKICAgICAgICAgaWYodHlwZSA+IENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfUEVSQ0VOVEFHRSAmJiB0eXBlIDwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19ERUcpCiAgICAg
ICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVuZ3RoSW50Rm9yTGVu
Z3RoKHN0eWxlKSwgRml4ZWQpOwogICAgICAgICBlbHNlIGlmKHR5cGUgPT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19QRVJDRU5UQUdFKQotICAgICAgICAgICAgbCA9IExlbmd0aChpbnQocHJpbWl0
aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdF
KSksIFBlcmNlbnQpOworICAgICAgICAgICAgbCA9IExlbmd0aChpbnQocHJpbWl0aXZlVmFsdWUt
PmdldEZsb2F0VmFsdWUoKSksIFBlcmNlbnQpOwogICAgICAgICBlbHNlIGlmKHR5cGUgPT0gQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpCi0gICAgICAgICAgICBsID0gTGVuZ3RoKGludChw
cmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJF
UikqMTAwKSwgUGVyY2VudCk7CisgICAgICAgICAgICBsID0gTGVuZ3RoKGludChwcmltaXRpdmVW
YWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpICogMTAwKSwgUGVyY2VudCk7CiAgICAgICAgIGVsc2UgaWYg
KG9rKQogICAgICAgICAgICAgKm9rID0gZmFsc2U7CiAgICAgfQpAQCAtMjU3NCw3ICsyNTc0LDcg
QEAKICAgICAgICAgICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlTGVu
Z3RoSW50Rm9yTGVuZ3RoKHN0eWxlKSwgRml4ZWQsIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJpbWl0aXZlVmFsdWUtPmlzUXVpcmtWYWx1ZSgpKTsKICAgICAgICAgICAgIGVsc2UgaWYo
dHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCi0gICAgICAgICAgICAg
ICAgbCA9IExlbmd0aCgoaW50KXByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOworICAgICAgICAgICAgICAgIGwg
PSBMZW5ndGgoKGludClwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpLCBQZXJjZW50KTsK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBp
ZiAoaWQgPT0gQ1NTX1BST1BfUEFERElOR19MRUZUIHx8IGlkID09IENTU19QUk9QX1BBRERJTkdf
UklHSFQgfHwKQEAgLTI2NTcsNyArMjY1Nyw3IEBACiAgICAgICAgICAgICBpZiAodHlwZSA+IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSAmJiB0eXBlIDwgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19ERUcpCiAgICAgICAgICAgICAgICAgbCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+
Y29tcHV0ZUxlbmd0aEludEZvckxlbmd0aChzdHlsZSksIEZpeGVkKTsKICAgICAgICAgICAgIGVs
c2UgaWYgKHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQotICAgICAg
ICAgICAgICAgIGwgPSBMZW5ndGgoKGludClwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpLCBQZXJjZW50KTsKKyAgICAgICAgICAg
ICAgICBsID0gTGVuZ3RoKChpbnQpcHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSwgUGVy
Y2VudCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgYXBwbHkgPSB0cnVlOwpAQCAtMjcxMyw3ICsyNzEzLDcgQEAKICAgICAgICAgICBpZih0
eXBlID4gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFICYmIHR5cGUgPCBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX0RFRykKICAgICAgICAgICAgIGwgPSBMZW5ndGgocHJpbWl0aXZlVmFs
dWUtPmNvbXB1dGVMZW5ndGhJbnRGb3JMZW5ndGgoc3R5bGUpLCBGaXhlZCk7CiAgICAgICAgICAg
ZWxzZSBpZih0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKLSAgICAg
ICAgICAgIGwgPSBMZW5ndGgoaW50KHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkpLCBQZXJjZW50KTsKKyAgICAgICAgICAgIGwg
PSBMZW5ndGgoaW50KHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkpLCBQZXJjZW50KTsK
IAogICAgICAgICAgIHN0eWxlLT5zZXRWZXJ0aWNhbEFsaWduKExFTkdUSCk7CiAgICAgICAgICAg
c3R5bGUtPnNldFZlcnRpY2FsQWxpZ25MZW5ndGgobCk7CkBAIC0yNzcxLDggKzI3NzEsNyBAQAog
ICAgICAgICAgICAgaWYgKHR5cGUgPiBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0Ug
JiYgdHlwZSA8IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfREVHKQogICAgICAgICAgICAgICAgIHNp
emUgPSBwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxlbmd0aEZsb2F0KHBhcmVudFN0eWxlLCBmYWxz
ZSk7CiAgICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19Q
RVJDRU5UQUdFKQotICAgICAgICAgICAgICAgIHNpemUgPSAocHJpbWl0aXZlVmFsdWUtPmdldEZs
b2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQotICAgICAgICAgICAg
ICAgICAgICAgICAgKiBvbGRTaXplKSAvIDEwMDsKKyAgICAgICAgICAgICAgICBzaXplID0gKHBy
aW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkgKiBvbGRTaXplKSAvIDEwMDsKICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTI4MDUsNyAr
MjgwNCw3IEBACiAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpICE9
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKQogICAgICAgICAgICAgcmV0dXJuOyAvLyBF
cnJvciBjYXNlLgogICAgICAgICAKLSAgICAgICAgc3R5bGUtPnNldFpJbmRleCgoaW50KXByaW1p
dGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSk7
CisgICAgICAgIHN0eWxlLT5zZXRaSW5kZXgoKGludClwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRW
YWx1ZSgpKTsKICAgICAgICAgCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yODE1LDcgKzI4
MTQsNyBAQAogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTCh3aWRvd3MsIFdpZG93
cykKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSB8fCBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0
aXZlVHlwZSgpICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKQogICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBzdHlsZS0+c2V0V2lkb3dzKChpbnQpcHJpbWl0aXZlVmFsdWUtPmdl
dEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpKTsKKyAgICAgICAgc3R5
bGUtPnNldFdpZG93cygoaW50KXByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgICAgIApAQCAtMjgyNCw3ICsyODIzLDcgQEAKICAgICAg
ICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwob3JwaGFucywgT3JwaGFucykKICAgICAgICAg
aWYgKCFwcmltaXRpdmVWYWx1ZSB8fCBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpICE9
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKQogICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICBzdHlsZS0+c2V0T3JwaGFucygoaW50KXByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVl
KENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSk7CisgICAgICAgIHN0eWxlLT5zZXRPcnBo
YW5zKChpbnQpcHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0gICAgICAgIAogCkBAIC0yODQ2LDkgKzI4NDUsOSBAQAogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgbGluZUhlaWdodCA9IExlbmd0aChwcmltaXRpdmVWYWx1ZS0+Y29tcHV0ZUxl
bmd0aEludEZvckxlbmd0aChzdHlsZSwgbXVsdGlwbGllciksIEZpeGVkKTsKICAgICAgICAgfSBl
bHNlIGlmICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKLSAgICAg
ICAgICAgIGxpbmVIZWlnaHQgPSBMZW5ndGgoKHN0eWxlLT5mb250U2l6ZSgpICogaW50KHByaW1p
dGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFH
RSkpKSAvIDEwMCwgRml4ZWQpOworICAgICAgICAgICAgbGluZUhlaWdodCA9IExlbmd0aCgoc3R5
bGUtPmZvbnRTaXplKCkgKiBpbnQocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSkpIC8g
MTAwLCBGaXhlZCk7CiAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19OVU1CRVIpCi0gICAgICAgICAgICBsaW5lSGVpZ2h0ID0gTGVuZ3RoKGludChwcmltaXRp
dmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikqMTAw
KSwgUGVyY2VudCk7CisgICAgICAgICAgICBsaW5lSGVpZ2h0ID0gTGVuZ3RoKGludChwcmltaXRp
dmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpICogMTAwKSwgUGVyY2VudCk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgc3R5bGUtPnNldExpbmVIZWlnaHQobGluZUhl
aWdodCk7CkBAIC0zMzExLDE5ICszMzEwLDE5IEBACiAgICAgICAgICAgICBMZW5ndGhCb3gmIGwg
PSBpbWFnZS5tX3NsaWNlczsKICAgICAgICAgICAgIFJlY3RJbXBsKiByID0gYm9yZGVySW1hZ2Ut
Pm1faW1hZ2VTbGljZVJlY3QuZ2V0KCk7CiAgICAgICAgICAgICBpZiAoci0+dG9wKCktPnByaW1p
dGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCi0gICAgICAg
ICAgICAgICAgbC50b3AgPSBMZW5ndGgoKGludClyLT50b3AoKS0+Z2V0RmxvYXRWYWx1ZShDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpLCBQZXJjZW50KTsKKyAgICAgICAgICAgICAg
ICBsLnRvcCA9IExlbmd0aCgoaW50KXItPnRvcCgpLT5nZXRGbG9hdFZhbHVlKCksIFBlcmNlbnQp
OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGwudG9wID0gTGVuZ3RoKChpbnQp
ci0+dG9wKCktPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpLCBG
aXhlZCk7CiAgICAgICAgICAgICBpZiAoci0+Ym90dG9tKCktPnByaW1pdGl2ZVR5cGUoKSA9PSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCi0gICAgICAgICAgICAgICAgbC5ib3R0
b20gPSBMZW5ndGgoKGludClyLT5ib3R0b20oKS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1BFUkNFTlRBR0UpLCBQZXJjZW50KTsKKyAgICAgICAgICAgICAgICBsLmJvdHRv
bSA9IExlbmd0aCgoaW50KXItPmJvdHRvbSgpLT5nZXRGbG9hdFZhbHVlKCksIFBlcmNlbnQpOwog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIGwuYm90dG9tID0gTGVuZ3RoKChpbnQp
ci0+Ym90dG9tKCktPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIp
LCBGaXhlZCk7CiAgICAgICAgICAgICBpZiAoci0+bGVmdCgpLT5wcmltaXRpdmVUeXBlKCkgPT0g
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQotICAgICAgICAgICAgICAgIGwubGVm
dCA9IExlbmd0aCgoaW50KXItPmxlZnQoKS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1BFUkNFTlRBR0UpLCBQZXJjZW50KTsKKyAgICAgICAgICAgICAgICBsLmxlZnQgPSBM
ZW5ndGgoKGludClyLT5sZWZ0KCktPmdldEZsb2F0VmFsdWUoKSwgUGVyY2VudCk7CiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbC5sZWZ0ID0gTGVuZ3RoKChpbnQpci0+bGVmdCgp
LT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSwgRml4ZWQpOwog
ICAgICAgICAgICAgaWYgKHItPnJpZ2h0KCktPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCi0gICAgICAgICAgICAgICAgbC5yaWdodCA9IExlbmd0
aCgoaW50KXItPnJpZ2h0KCktPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19Q
RVJDRU5UQUdFKSwgUGVyY2VudCk7CisgICAgICAgICAgICAgICAgbC5yaWdodCA9IExlbmd0aCgo
aW50KXItPnJpZ2h0KCktPmdldEZsb2F0VmFsdWUoKSwgUGVyY2VudCk7CiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgbC5yaWdodCA9IExlbmd0aCgoaW50KXItPnJpZ2h0KCktPmdl
dEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpLCBGaXhlZCk7CiAgICAg
ICAgICAgICAKQEAgLTM0NjksNyArMzQ2OCw3IEBACiAgICAgICAgIGlmICghcHJpbWl0aXZlVmFs
dWUgfHwgcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSAhPSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX05VTUJFUikKICAgICAgICAgICAgIHJldHVybjsgLy8gRXJyb3IgY2FzZS4KICAgICAg
ICAgLy8gQ2xhbXAgb3BhY2l0eSB0byB0aGUgcmFuZ2UgMC0xCi0gICAgICAgIHN0eWxlLT5zZXRP
cGFjaXR5KG1pbigxLjAsIG1heCgwLjAsIHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKSkpKTsKKyAgICAgICAgc3R5bGUtPnNldE9wYWNp
dHkobWluKDEuMCwgbWF4KDAuMCwgcHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKSkpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ1NTX1BST1BfX1dFQktJVF9CT1hfQUxJR046CiAg
ICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGJveEFsaWduLCBCb3hBbGlnbikKQEAg
LTM1NDMsMTkgKzM1NDIsMTkgQEAKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwo
Ym94RmxleCwgQm94RmxleCkKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSB8fCBwcmltaXRp
dmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVS
KQogICAgICAgICAgICAgcmV0dXJuOyAvLyBFcnJvciBjYXNlLgotICAgICAgICBzdHlsZS0+c2V0
Qm94RmxleChwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX05VTUJFUikpOworICAgICAgICBzdHlsZS0+c2V0Qm94RmxleChwcmltaXRpdmVWYWx1ZS0+
Z2V0RmxvYXRWYWx1ZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ1NTX1BST1BfX1dF
QktJVF9CT1hfRkxFWF9HUk9VUDoKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwo
Ym94RmxleEdyb3VwLCBCb3hGbGV4R3JvdXApCiAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUg
fHwgcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX05VTUJFUikKICAgICAgICAgICAgIHJldHVybjsgLy8gRXJyb3IgY2FzZS4KLSAgICAgICAg
c3R5bGUtPnNldEJveEZsZXhHcm91cCgodW5zaWduZWQgaW50KShwcmltaXRpdmVWYWx1ZS0+Z2V0
RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikpKTsKKyAgICAgICAgc3R5
bGUtPnNldEJveEZsZXhHcm91cCgodW5zaWduZWQgaW50KShwcmltaXRpdmVWYWx1ZS0+Z2V0Rmxv
YXRWYWx1ZSgpKSk7CiAgICAgICAgIHJldHVybjsgICAgICAgIAogICAgIGNhc2UgQ1NTX1BST1Bf
X1dFQktJVF9CT1hfT1JESU5BTF9HUk9VUDoKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lO
SVRJQUwoYm94T3JkaW5hbEdyb3VwLCBCb3hPcmRpbmFsR3JvdXApCiAgICAgICAgIGlmICghcHJp
bWl0aXZlVmFsdWUgfHwgcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSAhPSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikKICAgICAgICAgICAgIHJldHVybjsgLy8gRXJyb3IgY2Fz
ZS4KLSAgICAgICAgc3R5bGUtPnNldEJveE9yZGluYWxHcm91cCgodW5zaWduZWQgaW50KShwcmlt
aXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikp
KTsKKyAgICAgICAgc3R5bGUtPnNldEJveE9yZGluYWxHcm91cCgodW5zaWduZWQgaW50KShwcmlt
aXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpKSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNl
IENTU19QUk9QX0JPWF9TSVpJTkc6CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFM
KGJveFNpemluZywgQm94U2l6aW5nKQpAQCAtMzU3OSw3ICszNTc4LDcgQEAKICAgICAgICAgaWYg
KHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU19WQUxfSU5GSU5JVEUpCiAgICAgICAg
ICAgICBzdHlsZS0+c2V0TWFycXVlZUxvb3BDb3VudCgtMSk7IC8vIC0xIG1lYW5zIHJlcGVhdCBm
b3JldmVyLgogICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgp
ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKQotICAgICAgICAgICAgc3R5bGUtPnNl
dE1hcnF1ZWVMb29wQ291bnQoKGludCkocHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpKSk7CisgICAgICAgICAgICBzdHlsZS0+c2V0TWFy
cXVlZUxvb3BDb3VudCgoaW50KShwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIENTU19QUk9QX19XRUJLSVRfTUFSUVVFRV9T
UEVFRDogewpAQCAtMzYwMCwxMSArMzU5OSwxMSBAQAogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19TKQotICAgICAgICAgICAgc3R5bGUtPnNldE1hcnF1ZWVTcGVl
ZChpbnQoMTAwMCpwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1MpKSk7CisgICAgICAgICAgICBzdHlsZS0+c2V0TWFycXVlZVNwZWVkKGludCgxMDAw
KnByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCkpKTsKICAgICAgICAgZWxzZSBpZiAocHJp
bWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX01T
KQotICAgICAgICAgICAgc3R5bGUtPnNldE1hcnF1ZWVTcGVlZChpbnQocHJpbWl0aXZlVmFsdWUt
PmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19NUykpKTsKKyAgICAgICAgICAg
IHN0eWxlLT5zZXRNYXJxdWVlU3BlZWQoaW50KHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVl
KCkpKTsKICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikgLy8gRm9yIHNjcm9sbGFtb3VudCBzdXBw
b3J0LgotICAgICAgICAgICAgc3R5bGUtPnNldE1hcnF1ZWVTcGVlZChpbnQocHJpbWl0aXZlVmFs
dWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpKSk7CisgICAg
ICAgICAgICBzdHlsZS0+c2V0TWFycXVlZVNwZWVkKGludChwcmltaXRpdmVWYWx1ZS0+Z2V0Rmxv
YXRWYWx1ZSgpKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIENTU19QUk9QX19X
RUJLSVRfTUFSUVVFRV9JTkNSRU1FTlQ6IHsKQEAgLTM5ODgsNyArMzk4Nyw3IEBACiAgICAgZWxz
ZSBpZiAoZmlyc3RUeXBlID4gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFICYmIGZp
cnN0VHlwZSA8IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfREVHKQogICAgICAgICBmaXJzdExlbmd0
aCA9IExlbmd0aChmaXJzdC0+Y29tcHV0ZUxlbmd0aEludEZvckxlbmd0aChzdHlsZSksIEZpeGVk
KTsKICAgICBlbHNlIGlmIChmaXJzdFR5cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJD
RU5UQUdFKQotICAgICAgICBmaXJzdExlbmd0aCA9IExlbmd0aCgoaW50KWZpcnN0LT5nZXRGbG9h
dFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNlbnQpOworICAg
ICAgICBmaXJzdExlbmd0aCA9IExlbmd0aCgoaW50KWZpcnN0LT5nZXRGbG9hdFZhbHVlKCksIFBl
cmNlbnQpOwogICAgIGVsc2UKICAgICAgICAgcmV0dXJuOwogCkBAIC0zOTk3LDcgKzM5OTYsNyBA
QAogICAgIGVsc2UgaWYgKHNlY29uZFR5cGUgPiBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNF
TlRBR0UgJiYgc2Vjb25kVHlwZSA8IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfREVHKQogICAgICAg
ICBzZWNvbmRMZW5ndGggPSBMZW5ndGgoc2Vjb25kLT5jb21wdXRlTGVuZ3RoSW50Rm9yTGVuZ3Ro
KHN0eWxlKSwgRml4ZWQpOwogICAgIGVsc2UgaWYgKHNlY29uZFR5cGUgPT0gQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19QRVJDRU5UQUdFKQotICAgICAgICBzZWNvbmRMZW5ndGggPSBMZW5ndGgoKGlu
dClzZWNvbmQtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdF
KSwgUGVyY2VudCk7CisgICAgICAgIHNlY29uZExlbmd0aCA9IExlbmd0aCgoaW50KXNlY29uZC0+
Z2V0RmxvYXRWYWx1ZSgpLCBQZXJjZW50KTsKICAgICBlbHNlCiAgICAgICAgIHJldHVybjsKICAg
ICAKQEAgLTQwMjEsNyArNDAyMCw3IEBACiAgICAgaWYodHlwZSA+IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfUEVSQ0VOVEFHRSAmJiB0eXBlIDwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19ERUcpCiAg
ICAgICAgIGwgPSBMZW5ndGgocHJpbWl0aXZlVmFsdWUtPmNvbXB1dGVMZW5ndGhJbnRGb3JMZW5n
dGgoc3R5bGUpLCBGaXhlZCk7CiAgICAgZWxzZSBpZih0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfUEVSQ0VOVEFHRSkKLSAgICAgICAgbCA9IExlbmd0aCgoaW50KXByaW1pdGl2ZVZhbHVl
LT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSksIFBlcmNl
bnQpOworICAgICAgICBsID0gTGVuZ3RoKChpbnQpcHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFs
dWUoKSwgUGVyY2VudCk7CiAgICAgZWxzZQogICAgICAgICByZXR1cm47CiAgICAgbGF5ZXItPnNl
dEJhY2tncm91bmRYUG9zaXRpb24obCk7CkBAIC00MDQyLDcgKzQwNDEsNyBAQAogICAgIGlmKHR5
cGUgPiBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UgJiYgdHlwZSA8IENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfREVHKQogICAgICAgICBsID0gTGVuZ3RoKHByaW1pdGl2ZVZhbHVlLT5j
b21wdXRlTGVuZ3RoSW50Rm9yTGVuZ3RoKHN0eWxlKSwgRml4ZWQpOwogICAgIGVsc2UgaWYodHlw
ZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCi0gICAgICAgIGwgPSBMZW5n
dGgoKGludClwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1BFUkNFTlRBR0UpLCBQZXJjZW50KTsKKyAgICAgICAgbCA9IExlbmd0aCgoaW50KXByaW1p
dGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCksIFBlcmNlbnQpOwogICAgIGVsc2UKICAgICAgICAg
cmV0dXJuOwogICAgIGxheWVyLT5zZXRCYWNrZ3JvdW5kWVBvc2l0aW9uKGwpOwpJbmRleDogY3Nz
L2Nzc192YWx1ZWltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjc3MvY3NzX3ZhbHVlaW1wbC5oCShyZXZp
c2lvbiAxMzk5NykKKysrIGNzcy9jc3NfdmFsdWVpbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTIy
Nyw3ICsyMjcsOCBAQAogICAgIC8vIHVzZSB3aXRoIGNhcmUhISEKICAgICB2b2lkIHNldFByaW1p
dGl2ZVR5cGUodW5zaWduZWQgc2hvcnQgdHlwZSkgeyBtX3R5cGUgPSB0eXBlOyB9CiAgICAgdm9p
ZCBzZXRGbG9hdFZhbHVlKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlLCBkb3VibGUgZmxvYXRWYWx1
ZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIGRvdWJsZSBnZXRGbG9hdFZhbHVlKHVuc2lnbmVkIHNo
b3J0IC8qIHVuaXRUeXBlICovKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlLm51bTsgfQorICAgIGRv
dWJsZSBnZXRGbG9hdFZhbHVlKHVuc2lnbmVkIHNob3J0IHVuaXRUeXBlKTsKKyAgICBkb3VibGUg
Z2V0RmxvYXRWYWx1ZSgpIHsgcmV0dXJuIG1fdmFsdWUubnVtOyB9CiAKICAgICB2b2lkIHNldFN0
cmluZ1ZhbHVlKHVuc2lnbmVkIHNob3J0IHN0cmluZ1R5cGUsIGNvbnN0IFN0cmluZyYgc3RyaW5n
VmFsdWUsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBTdHJpbmcgZ2V0U3RyaW5nVmFsdWUoKSBjb25z
dDsKSW5kZXg6IGtzdmcyL2Nzcy9TVkdDU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBrc3ZnMi9jc3MvU1ZHQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDEzOTk3KQorKysg
a3N2ZzIvY3NzL1NWR0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MzEs
OSArNDMxLDkgQEAKICAgICAgICAgICAgIGZsb2F0IGYgPSAwLjA7ICAgIAogICAgICAgICAgICAg
aW50IHR5cGUgPSBwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpOwogICAgICAgICAgICAg
aWYodHlwZSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCi0gICAgICAgICAg
ICAgICAgZiA9IHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfUEVSQ0VOVEFHRSkgLyAxMDAuOworICAgICAgICAgICAgICAgIGYgPSBwcmltaXRpdmVW
YWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpIC8gMTAwLjsKICAgICAgICAgICAgIGVsc2UgaWYodHlwZSA9
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUikKLSAgICAgICAgICAgICAgICBmID0gcHJp
bWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIp
OworICAgICAgICAgICAgICAgIGYgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpOwog
ICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJldHVybjsKIApAQCAtNDQ5LDkgKzQ0
OSw5IEBACiAgICAgICAgICAgICBmbG9hdCBmID0gMC4wOyAgICAKICAgICAgICAgICAgIGludCB0
eXBlID0gcHJpbWl0aXZlVmFsdWUtPnByaW1pdGl2ZVR5cGUoKTsKICAgICAgICAgICAgIGlmKHR5
cGUgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdFKQotICAgICAgICAgICAgICAg
IGYgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X1BFUkNFTlRBR0UpIC8gMTAwLjsKKyAgICAgICAgICAgICAgICBmID0gcHJpbWl0aXZlVmFsdWUt
PmdldEZsb2F0VmFsdWUoKSAvIDEwMC47CiAgICAgICAgICAgICBlbHNlIGlmKHR5cGUgPT0gQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpCi0gICAgICAgICAgICAgICAgZiA9IHByaW1pdGl2
ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKTsKKyAg
ICAgICAgICAgICAgICBmID0gcHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoKTsKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTQ2Nyw5ICs0NjcsOSBA
QAogICAgICAgICAgICAgZmxvYXQgZiA9IDAuMDsgICAgCiAgICAgICAgICAgICBpbnQgdHlwZSA9
IHByaW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCk7CiAgICAgICAgICAgICBpZih0eXBlID09
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFHRSkKLSAgICAgICAgICAgICAgICBmID0g
cHJpbWl0aXZlVmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJD
RU5UQUdFKSAvIDEwMC47CisgICAgICAgICAgICAgICAgZiA9IHByaW1pdGl2ZVZhbHVlLT5nZXRG
bG9hdFZhbHVlKCkgLyAxMDAuOwogICAgICAgICAgICAgZWxzZSBpZih0eXBlID09IENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfTlVNQkVSKQotICAgICAgICAgICAgICAgIGYgPSBwcmltaXRpdmVWYWx1
ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CisgICAgICAg
ICAgICAgICAgZiA9IHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCk7CiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC01NTUsNyArNTU1LDcgQEAKICAg
ICAgICAgICAgIGZsb2F0IGYgPSAwLjA7CiAgICAgICAgICAgICBpbnQgdHlwZSA9IHByaW1pdGl2
ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCk7CiAgICAgICAgICAgICBpZih0eXBlID09IENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfTlVNQkVSKQotICAgICAgICAgICAgICAgIGYgPSBwcmltaXRpdmVWYWx1
ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUik7CisgICAgICAg
ICAgICAgICAgZiA9IHByaW1pdGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKCk7CiAgICAgICAgICAg
ICBlbHNlCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCkBAIC02OTYsOSArNjk2LDkgQEAKICAg
ICAgICAgICAgIGZsb2F0IGYgPSAwLjA7ICAgIAogICAgICAgICAgICAgaW50IHR5cGUgPSBwcmlt
aXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpOwogICAgICAgICAgICAgaWYodHlwZSA9PSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpCi0gICAgICAgICAgICAgICAgZiA9IHByaW1p
dGl2ZVZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEVSQ0VOVEFH
RSkgLyAxMDAuOworICAgICAgICAgICAgICAgIGYgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRW
YWx1ZSgpIC8gMTAwLjsKICAgICAgICAgICAgIGVsc2UgaWYodHlwZSA9PSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX05VTUJFUikKLSAgICAgICAgICAgICAgICBmID0gcHJpbWl0aXZlVmFsdWUtPmdl
dEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpOworICAgICAgICAgICAg
ICAgIGYgPSBwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZSgpOwogICAgICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgICAgIHJldHVybjsKIApJbmRleDoga3N2ZzIvbWlzYy9LQ2FudmFzUmVu
ZGVyaW5nU3R5bGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtzdmcyL21pc2MvS0NhbnZhc1JlbmRlcmlu
Z1N0eWxlLmNwcAkocmV2aXNpb24gMTM5OTcpCisrKyBrc3ZnMi9taXNjL0tDYW52YXNSZW5kZXJp
bmdTdHlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MCw3ICsxNDAsNyBAQAogICAgICAgICBT
VkdFbGVtZW50ICp2aWV3cG9ydEVsZW1lbnQgPSAoZWxlbWVudCA/IGVsZW1lbnQtPnZpZXdwb3J0
RWxlbWVudCgpIDogMCk7CiAgICAgICAgIGlmKHZpZXdwb3J0RWxlbWVudCkKICAgICAgICAgewot
ICAgICAgICAgICAgZG91YmxlIHJlc3VsdCA9IHByaW1pdGl2ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX1BFUkNFTlRBR0UpIC8gMTAwLjA7CisgICAgICAgICAgICBkb3Vi
bGUgcmVzdWx0ID0gcHJpbWl0aXZlLT5nZXRGbG9hdFZhbHVlKCkgLyAxMDAuMDsKICAgICAgICAg
ICAgIHJldHVybiBTVkdIZWxwZXI6OlBlcmNlbnRhZ2VPZlZpZXdwb3J0KHJlc3VsdCwgdmlld3Bv
cnRFbGVtZW50LCBMTV9PVEhFUik7CiAgICAgICAgIH0KICAgICB9Cg==
</data>
<flag name="review"
          id="2170"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>7888</attachid>
            <date>2006-04-21 16:21:09 -0700</date>
            <delta_ts>2006-04-21 16:21:09 -0700</delta_ts>
            <desc>Updated layout test</desc>
            <filename>testo.html</filename>
            <type>text/html</type>
            <size>303</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">PGJvZHk+CjxkaXYgaWQ9J2QnIHN0eWxlPSJmb250LXNpemU6IDEwcHQiPjwvZGl2PgoxMHB0ID0g
CjxzY3JpcHQ+Ci8vQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX01NCmRvY3VtZW50LndyaXRlKGRvY3Vt
ZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2QnKSwgJycpLmdldFByb3BlcnR5Q1NTVmFsdWUoJ2ZvbnQtc2l6ZScpLmdldEZsb2F0VmFsdWUo
NykpOwpkb2N1bWVudC53cml0ZSgibW0gKHNob3VsZCBiZSAzLjQzOTU4MzMzMzMzMzMzMjgpIik7
Cjwvc2NyaXB0Pgo8L2JvZHk+
</data>

          </attachment>
      

    </bug>

</bugzilla>