<?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>34029</bug_id>
          
          <creation_ts>2010-01-22 18:07:10 -0800</creation_ts>
          <short_desc>REGRESSION (r47444): PLT is 1% slower due to implementation of :valid and :invalid CSS selectors</short_desc>
          <delta_ts>2010-01-26 17:36:07 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adele Peterson">adele</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>183909</commentid>
    <comment_count>0</comment_count>
      <attachid>47253</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2010-01-22 18:07:10 -0800</bug_when>
    <thetext>Created attachment 47253
preliminary patch

:valid and :invalid CSS selectors slows down pages that make no use of the new feature

&lt;rdar://problem/7169464&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183911</commentid>
    <comment_count>1</comment_count>
      <attachid>47254</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2010-01-22 18:11:59 -0800</bug_when>
    <thetext>Created attachment 47254
preliminary patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183913</commentid>
    <comment_count>2</comment_count>
      <attachid>47255</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2010-01-22 18:24:23 -0800</bug_when>
    <thetext>Created attachment 47255
preliminary patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183992</commentid>
    <comment_count>3</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2010-01-23 08:22:12 -0800</bug_when>
    <thetext>ignore the patches above- this approach doesn&apos;t save much because of how common maxLength is</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184384</commentid>
    <comment_count>4</comment_count>
      <attachid>47360</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2010-01-25 11:28:41 -0800</bug_when>
    <thetext>Created attachment 47360
patch

I&apos;m still running tests, but I&apos;m posting this for review anyway.  I set a breakpoint and verified with this patch, I won&apos;t hit the validity checks at all while running the PLT.  The tests I&apos;m constructing now involve adding and removing valid/invalid pseudostyles and making sure that style sharing happens in the right circumstances.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184385</commentid>
    <comment_count>5</comment_count>
      <attachid>47360</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2010-01-25 11:29:09 -0800</bug_when>
    <thetext>Comment on attachment 47360
patch

Also, considerValidity is not a great name - better ideas?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184387</commentid>
    <comment_count>6</comment_count>
      <attachid>47360</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-25 11:34:27 -0800</bug_when>
    <thetext>Comment on attachment 47360
patch

&gt; +                if (!m_element-&gt;document()-&gt;considerValidity())

For boolean member functions we try to make ones that fit in a sentence &quot;document &lt;xxx&gt;&quot; so this function needs a different name, one that is not a verb phrase. Maybe &quot;containsValidityStyleRules&quot; or reverse the sense and have it be &quot;containsNoValidityStyleRules&quot; since there *may* be some rules, but there may no longer be. I hope there&apos;s a good, relatively short name. I chose the word &quot;rules&quot; over &quot;selectors&quot; in my name because of length. I&apos;m not sure &quot;contains&quot; is the right word.

&gt; +            case CSSSelector::PseudoValid: {
&gt; +                if (!e)
&gt; +                    return false;
&gt; +                e-&gt;document()-&gt;setConsiderValidity();
&gt; +                return e-&gt;willValidate() &amp;&amp; e-&gt;isValidFormControlElement();
&gt; +            } case CSSSelector::PseudoInvalid: {
&gt; +                if (!e)
&gt; +                    return false;
&gt; +                e-&gt;document()-&gt;setConsiderValidity();
&gt; +                return e-&gt;willValidate() &amp;&amp; !e-&gt;isValidFormControlElement();
&gt; +            } case CSSSelector::PseudoChecked: {

No braces needed here. It&apos;s also strange to put the end brace on the same line as the case. Not our usual style, I don&apos;t think.

review- because of the lack of a test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184394</commentid>
    <comment_count>7</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2010-01-25 11:52:44 -0800</bug_when>
    <thetext>&gt; &gt; +            case CSSSelector::PseudoValid: {
&gt; &gt; +                if (!e)
&gt; &gt; +                    return false;
&gt; &gt; +                e-&gt;document()-&gt;setConsiderValidity();
&gt; &gt; +                return e-&gt;willValidate() &amp;&amp; e-&gt;isValidFormControlElement();
&gt; &gt; +            } case CSSSelector::PseudoInvalid: {
&gt; &gt; +                if (!e)
&gt; &gt; +                    return false;
&gt; &gt; +                e-&gt;document()-&gt;setConsiderValidity();
&gt; &gt; +                return e-&gt;willValidate() &amp;&amp; !e-&gt;isValidFormControlElement();
&gt; &gt; +            } case CSSSelector::PseudoChecked: {
&gt; 
&gt; No braces needed here. It&apos;s also strange to put the end brace on the same line
&gt; as the case. Not our usual style, I don&apos;t think.

That&apos;s the style used in the rest of the method for cases with multiple lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184679</commentid>
    <comment_count>8</comment_count>
      <attachid>47434</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2010-01-26 12:43:07 -0800</bug_when>
    <thetext>Created attachment 47434
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184861</commentid>
    <comment_count>9</comment_count>
    <who name="Adele Peterson">adele</who>
    <bug_when>2010-01-26 17:36:07 -0800</bug_when>
    <thetext>Committed revision 53878.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47253</attachid>
            <date>2010-01-22 18:07:10 -0800</date>
            <delta_ts>2010-01-22 18:11:59 -0800</delta_ts>
            <desc>preliminary patch</desc>
            <filename>patch_01-22-10-plt.txt</filename>
            <type>text/plain</type>
            <size>12540</size>
            <attacher name="Adele Peterson">adele</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiA1MzcxOSkKKysrIFdlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAyLDExICsx
MDAyLDE0IEBAIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6Y2FuU2hhcmVTdHlsZVdpdGgKICAgICAg
ICAgICAgICAgICBpZiAocy0+aXNEZWZhdWx0QnV0dG9uRm9yRm9ybSgpICE9IG1fZWxlbWVudC0+
aXNEZWZhdWx0QnV0dG9uRm9yRm9ybSgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgYm9vbCB3aWxsVmFsaWRhdGUg
PSBzLT53aWxsVmFsaWRhdGUoKTsKLSAgICAgICAgICAgICAgICBpZiAod2lsbFZhbGlkYXRlICE9
IG1fZWxlbWVudC0+d2lsbFZhbGlkYXRlKCkpCisgICAgICAgICAgICAgICAgSFRNTEZvcm1Db250
cm9sRWxlbWVudCogdGhpc0Zvcm1Db250cm9sID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9s
RWxlbWVudCo+KHMpOworICAgICAgICAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIG90
aGVyRm9ybUNvbnRyb2wgPSBzdGF0aWNfY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4obV9l
bGVtZW50KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBib29sIHdpbGxWYWxp
ZGF0ZSA9IHRoaXNGb3JtQ29udHJvbC0+d2lsbFZhbGlkYXRlKCk7CisgICAgICAgICAgICAgICAg
aWYgKHdpbGxWYWxpZGF0ZSAhPSBvdGhlckZvcm1Db250cm9sLT53aWxsVmFsaWRhdGUoKSkKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIGlmICh3aWxsVmFsaWRhdGUgJiYgKHMtPmlzVmFsaWRGb3JtQ29udHJvbEVsZW1l
bnQoKSAhPSBtX2VsZW1lbnQtPmlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKSkpCisgICAgICAg
ICAgICAgICAgaWYgKHdpbGxWYWxpZGF0ZSAmJiAodGhpc0Zvcm1Db250cm9sLT5pc1ZhbGlkRm9y
bUNvbnRyb2xFbGVtZW50KCkgIT0gb3RoZXJGb3JtQ29udHJvbC0+aXNWYWxpZEZvcm1Db250cm9s
RWxlbWVudCgpKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAg
ICAgfQogCkluZGV4OiBXZWJDb3JlL2RvbS9FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9kb20vRWxlbWVudC5oCShyZXZpc2lvbiA1MzcxOSkKKysrIFdlYkNvcmUvZG9tL0VsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjU0LDggKzI1NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgaXNPcHRpb25hbEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNSZXF1aXJlZEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNEZWZhdWx0QnV0dG9uRm9yRm9ybSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHdpbGxWYWxpZGF0ZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzVmFsaWRGb3JtQ29udHJvbEVsZW1l
bnQoKSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCBib29sIGZvcm1Db250cm9sVmFs
dWVNYXRjaGVzUmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGJvb2wpIHsgfQpJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAkocmV2aXNpb24gNTM3MTkpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTgxLDkgKzgxLDYgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXRGb3JtTm9W
YQogCiBWYWxpZGl0eVN0YXRlKiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp2YWxpZGl0eSgpCiB7
Ci0gICAgaWYgKCFtX3ZhbGlkaXR5U3RhdGUpCi0gICAgICAgIG1fdmFsaWRpdHlTdGF0ZSA9IFZh
bGlkaXR5U3RhdGU6OmNyZWF0ZSh0aGlzKTsKLQogICAgIHJldHVybiBtX3ZhbGlkaXR5U3RhdGUu
Z2V0KCk7CiB9CiAKQEAgLTExMSw3ICsxMDgsNyBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OnBhcnNlTWFwcGVkCiAgICAgICAgIGJvb2wgb2xkUmVxdWlyZWQgPSBtX3JlcXVpcmVkOwog
ICAgICAgICBtX3JlcXVpcmVkID0gIWF0dHItPmlzTnVsbCgpOwogICAgICAgICBpZiAob2xkUmVx
dWlyZWQgIT0gbV9yZXF1aXJlZCkKLSAgICAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsK
KyAgICAgICAgICAgIHVwZGF0ZVZhbGlkaXR5KFVwZGF0ZUF0dHJpYnV0ZSk7CiAgICAgfSBlbHNl
CiAgICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKIH0KQEAg
LTI5OSwxMCArMjk2LDE1IEBAIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6d2lsbFZhbGlk
YXQKICAgICAvLyAgICAgIFRoZSBjb250cm9sIGlzIG5vdCBhbiBvdXRwdXQgZWxlbWVudC4KICAg
ICByZXR1cm4gZm9ybSgpICYmICFuYW1lKCkuaXNFbXB0eSgpICYmICFkaXNhYmxlZCgpICYmICFp
c1JlYWRPbmx5Rm9ybUNvbnRyb2woKTsKIH0KKyAgICAKK2Jvb2wgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6aXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpCit7CisgICAgcmV0dXJuIHZhbGlkaXR5
KCkgPyB2YWxpZGl0eSgpLT52YWxpZCgpIDogdHJ1ZTsKK30KIAogU3RyaW5nIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ6OnZhbGlkYXRpb25NZXNzYWdlKCkKIHsKLSAgICByZXR1cm4gdmFsaWRpdHko
KS0+dmFsaWRhdGlvbk1lc3NhZ2UoKTsKKyAgICByZXR1cm4gdmFsaWRpdHkoKSA/IHZhbGlkaXR5
KCktPnZhbGlkYXRpb25NZXNzYWdlKCkgOiBTdHJpbmcoKTsKIH0KIAogYm9vbCBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50OjpjaGVja1ZhbGlkaXR5KCkKQEAgLTMxNSwxNiArMzE3LDIzIEBAIGJvb2wg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6Y2hlY2tWYWxpZGkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVWYWxpZGl0eSgpCit2b2lkIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OnVwZGF0ZVZhbGlkaXR5KFZhbGlkaXR5VXBkYXRlVHlwZSB0
eXBlKQogewotICAgIGlmICh3aWxsVmFsaWRhdGUoKSkgewotICAgICAgICAvLyBVcGRhdGUgc3R5
bGUgZm9yIHBzZXVkbyBjbGFzc2VzIHN1Y2ggYXMgOnZhbGlkIDppbnZhbGlkLgotICAgICAgICBz
ZXROZWVkc1N0eWxlUmVjYWxjKCk7Ci0gICAgfQorICAgIGlmICghd2lsbFZhbGlkYXRlKCkpCisg
ICAgICAgIHJldHVybjsKKyAgICAKKyAgICBpZiAodHlwZSA9PSBVcGRhdGVBdHRyaWJ1dGUgJiYg
IW1fdmFsaWRpdHlTdGF0ZSkKKyAgICAgICAgbV92YWxpZGl0eVN0YXRlID0gVmFsaWRpdHlTdGF0
ZTo6Y3JlYXRlKHRoaXMpOworCisgICAgLy8gVXBkYXRlIHN0eWxlIGZvciBwc2V1ZG8gY2xhc3Nl
cyBzdWNoIGFzIDp2YWxpZCA6aW52YWxpZC4KKyAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7ICAg
IAogfQogCiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlkaXR5KGNv
bnN0IFN0cmluZyYgZXJyb3IpCiB7CisgICAgaWYgKCFtX3ZhbGlkaXR5U3RhdGUpCisgICAgICAg
IG1fdmFsaWRpdHlTdGF0ZSA9IFZhbGlkaXR5U3RhdGU6OmNyZWF0ZSh0aGlzKTsKKyAgICAKICAg
ICB2YWxpZGl0eSgpLT5zZXRDdXN0b21FcnJvck1lc3NhZ2UoZXJyb3IpOwogfQogICAgIApAQCAt
MzU0LDExICszNjMsNiBAQCBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzRGVmYXVsdEJ1
CiAgICAgcmV0dXJuIGlzU3VjY2Vzc2Z1bFN1Ym1pdEJ1dHRvbigpICYmIG1fZm9ybSAmJiBtX2Zv
cm0tPmRlZmF1bHRCdXR0b24oKSA9PSB0aGlzOwogfQogCi1ib29sIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ6OmlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKQotewotICAgIHJldHVybiB2YWxpZGl0
eSgpLT52YWxpZCgpOwotfQotCiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnJlbW92ZUZy
b21Gb3JtKCkKIHsKICAgICBpZiAoIW1fZm9ybSkKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuaAkocmV2aXNpb24gNTM3MTkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw5IEBAIGNsYXNzIFZp
c2libGVTZWxlY3Rpb247CiAKIGNsYXNzIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgOiBwdWJsaWMg
SFRNTEVsZW1lbnQgewogcHVibGljOgorICAgIAorICAgIGVudW0gVmFsaWRpdHlVcGRhdGVUeXBl
IHsgVXBkYXRlVmFsdWUgPSAwLCBVcGRhdGVBdHRyaWJ1dGUgfTsKKwogICAgIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqLCBIVE1M
Rm9ybUVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5IVE1MRm9ybUNvbnRyb2xFbGVtZW50KCk7CiAK
QEAgLTEwNyw5ICsxMTAsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgc2hvcnQgdGFiSW5kZXgo
KSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsVmFsaWRhdGUoKSBjb25zdDsKKyAgICBi
b29sIGlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKTsKICAgICBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2UoKTsKICAgICBib29sIGNoZWNrVmFsaWRpdHkoKTsKLSAgICB2b2lkIHVwZGF0ZVZhbGlk
aXR5KCk7CisgICAgdm9pZCB1cGRhdGVWYWxpZGl0eShWYWxpZGl0eVVwZGF0ZVR5cGUpOwogICAg
IHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHkoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29s
IHZhbHVlTWlzc2luZygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IHBhdHRlcm5NaXNtYXRjaCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0xMjYsNyArMTMw
LDYgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIEhUTUxGb3JtRWxlbWVudCog
dmlydHVhbEZvcm0oKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNEZWZhdWx0QnV0dG9uRm9y
Rm9ybSgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50
KCk7CiAKICAgICBIVE1MRm9ybUVsZW1lbnQqIG1fZm9ybTsKICAgICBPd25QdHI8VmFsaWRpdHlT
dGF0ZT4gbV92YWxpZGl0eVN0YXRlOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAko
cmV2aXNpb24gNTM3MTkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTU3OSw2ICs1NzksNDAgQEAgc3RhdGljIGNvbnN0IElucHV0VHlwZU1h
cCogY3JlYXRlVHlwZU1hcAogICAgIHJldHVybiBtYXA7CiB9CiAKK2Jvb2wgSFRNTElucHV0RWxl
bWVudDo6dHlwZUhhc1ZhbGlkYXRpb24oKSBjb25zdAoreworICAgIHN3aXRjaCAoaW5wdXRUeXBl
KCkpIHsKKyAgICAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpDT0xPUjoKKyAgICAgICAgY2Fz
ZSBIVE1MSW5wdXRFbGVtZW50OjpOVU1CRVI6CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVu
dDo6VVJMOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OkVNQUlMOgorICAgICAgICBj
YXNlIEhUTUxJbnB1dEVsZW1lbnQ6OkRBVEU6CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVu
dDo6REFURVRJTUU6CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6REFURVRJTUVMT0NB
TDoKKyAgICAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpNT05USDoKKyAgICAgICAgY2FzZSBI
VE1MSW5wdXRFbGVtZW50OjpUSU1FOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OldF
RUs6CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgY2FzZSBIVE1MSW5wdXRFbGVt
ZW50OjpCVVRUT046CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6Q0hFQ0tCT1g6Cisg
ICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6RklMRToKKyAgICAgICAgY2FzZSBIVE1MSW5w
dXRFbGVtZW50OjpISURERU46CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6SU1BR0U6
CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6SVNJTkRFWDoKKyAgICAgICAgY2FzZSBI
VE1MSW5wdXRFbGVtZW50OjpQQVNTV09SRDoKKyAgICAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50
OjpSQURJTzoKKyAgICAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpSQU5HRToKKyAgICAgICAg
Y2FzZSBIVE1MSW5wdXRFbGVtZW50OjpSRVNFVDoKKyAgICAgICAgY2FzZSBIVE1MSW5wdXRFbGVt
ZW50OjpTRUFSQ0g6CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6U1VCTUlUOgorICAg
ICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OlRFTEVQSE9ORTogLy8gRklYTUU6IElzIHRoZXJl
IHZhbGlkYXRpb24gZm9yIDxpbnB1dCB0eXBlPXRlbGVwaG9uZT4/CisgICAgICAgIGNhc2UgSFRN
TElucHV0RWxlbWVudDo6VEVYVDoKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorICAgIAogdm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRJbnB1dFR5cGUoY29uc3QgU3RyaW5nJiB0KQogewogICAg
IHN0YXRpYyBjb25zdCBJbnB1dFR5cGVNYXAqIHR5cGVNYXAgPSBjcmVhdGVUeXBlTWFwKCk7CkBA
IC02NDUsNyArNjc5LDggQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRJbnB1dFR5cGUoY29u
cwogICAgICAgICB9CiAKICAgICAgICAgSW5wdXRFbGVtZW50Ojpub3RpZnlGb3JtU3RhdGVDaGFu
Z2VkKHRoaXMpOwotICAgICAgICB1cGRhdGVWYWxpZGl0eSgpOworICAgICAgICBpZiAodHlwZUhh
c1ZhbGlkYXRpb24oKSkKKyAgICAgICAgICAgIHVwZGF0ZVZhbGlkaXR5KFVwZGF0ZUF0dHJpYnV0
ZSk7CiAgICAgfQogICAgIG1faGF2ZVR5cGUgPSB0cnVlOwogCkBAIC04NjcsMTcgKzkwMiwxOCBA
QCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmliCiAgICAgICAgIGlmICht
X2RhdGEudmFsdWUoKS5pc051bGwoKSkKICAgICAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMo
KTsKICAgICAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcihmYWxzZSk7Ci0g
ICAgICAgIHVwZGF0ZVZhbGlkaXR5KCk7CisgICAgICAgIHVwZGF0ZVZhbGlkaXR5KFVwZGF0ZVZh
bHVlKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBjaGVja2VkQXR0cikgewogICAg
ICAgICBtX2RlZmF1bHRDaGVja2VkID0gIWF0dHItPmlzTnVsbCgpOwogICAgICAgICBpZiAobV91
c2VEZWZhdWx0Q2hlY2tlZCkgewogICAgICAgICAgICAgc2V0Q2hlY2tlZChtX2RlZmF1bHRDaGVj
a2VkKTsKICAgICAgICAgICAgIG1fdXNlRGVmYXVsdENoZWNrZWQgPSB0cnVlOwogICAgICAgICB9
Ci0gICAgICAgIHVwZGF0ZVZhbGlkaXR5KCk7Ci0gICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkg
PT0gbWF4bGVuZ3RoQXR0cikKKyAgICAgICAgdXBkYXRlVmFsaWRpdHkoVXBkYXRlVmFsdWUpOwor
ICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG1heGxlbmd0aEF0dHIpIHsKICAgICAgICAg
SW5wdXRFbGVtZW50OjpwYXJzZU1heExlbmd0aEF0dHJpYnV0ZShtX2RhdGEsIHRoaXMsIHRoaXMs
IGF0dHIpOwotICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBzaXplQXR0cikKKyAgICAgICAg
dXBkYXRlVmFsaWRpdHkoVXBkYXRlQXR0cmlidXRlKTsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5h
bWUoKSA9PSBzaXplQXR0cikKICAgICAgICAgSW5wdXRFbGVtZW50OjpwYXJzZVNpemVBdHRyaWJ1
dGUobV9kYXRhLCB0aGlzLCBhdHRyKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gYWx0
QXR0cikgewogICAgICAgICBpZiAocmVuZGVyZXIoKSAmJiBpbnB1dFR5cGUoKSA9PSBJTUFHRSkK
QEAgLTkyMywxMyArOTU5LDE1IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VNYXBwZWRB
dHRyaWIKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogICAgIH0gZWxzZSBpZiAoYXR0
ci0+bmFtZSgpID09IGF1dG9zYXZlQXR0ciB8fAogICAgICAgICAgICAgIGF0dHItPm5hbWUoKSA9
PSBpbmNyZW1lbnRhbEF0dHIgfHwKLSAgICAgICAgICAgICBhdHRyLT5uYW1lKCkgPT0gbWluQXR0
ciB8fAotICAgICAgICAgICAgIGF0dHItPm5hbWUoKSA9PSBtYXhBdHRyIHx8CiAgICAgICAgICAg
ICAgYXR0ci0+bmFtZSgpID09IG11bHRpcGxlQXR0ciB8fAogICAgICAgICAgICAgIGF0dHItPm5h
bWUoKSA9PSBwcmVjaXNpb25BdHRyKQogICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7Cisg
ICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG1pbkF0dHIgfHwgYXR0ci0+bmFtZSgpID09IG1h
eEF0dHIpCisgICAgICAgIHVwZGF0ZVZhbGlkaXR5KFVwZGF0ZUF0dHJpYnV0ZSk7CiAgICAgZWxz
ZSBpZiAoYXR0ci0+bmFtZSgpID09IHBhdHRlcm5BdHRyKQotICAgICAgICB1cGRhdGVWYWxpZGl0
eSgpOworICAgICAgICB1cGRhdGVWYWxpZGl0eShVcGRhdGVBdHRyaWJ1dGUpOworICAgIGVsc2Ug
aWYgKGF0dHItPm5hbWUoKSA9PSBzdGVwQXR0cikKKyAgICAgICAgdXBkYXRlVmFsaWRpdHkoVXBk
YXRlQXR0cmlidXRlKTsKICNpZiBFTkFCTEUoREFUQUxJU1QpCiAgICAgZWxzZSBpZiAoYXR0ci0+
bmFtZSgpID09IGxpc3RBdHRyKQogICAgICAgICBtX2hhc05vbkVtcHR5TGlzdCA9ICFhdHRyLT5p
c0VtcHR5KCk7CkBAIC0xMzcxLDcgKzE0MDksNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNl
dFZhbHVlKGNvbnN0IFN0CiAgICAgICAgIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgp
OwogCiAgICAgSW5wdXRFbGVtZW50Ojpub3RpZnlGb3JtU3RhdGVDaGFuZ2VkKHRoaXMpOwotICAg
IHVwZGF0ZVZhbGlkaXR5KCk7CisgICAgdXBkYXRlVmFsaWRpdHkoVXBkYXRlVmFsdWUpOwogfQog
CiBkb3VibGUgSFRNTElucHV0RWxlbWVudDo6dmFsdWVBc0RhdGUoKSBjb25zdApAQCAtMTQ0Nyw3
ICsxNDg1LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUZyb21SZW5kZQogICAg
IG1fZGF0YS5zZXRTdWdnZXN0ZWRWYWx1ZShTdHJpbmcoKSk7CiAgICAgdXBkYXRlUGxhY2Vob2xk
ZXJWaXNpYmlsaXR5KGZhbHNlKTsKICAgICBJbnB1dEVsZW1lbnQ6OnNldFZhbHVlRnJvbVJlbmRl
cmVyKG1fZGF0YSwgdGhpcywgdGhpcywgdmFsdWUpOwotICAgIHVwZGF0ZVZhbGlkaXR5KCk7Cisg
ICAgdXBkYXRlVmFsaWRpdHkoVXBkYXRlVmFsdWUpOwogfQogCiB2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OnNldEZpbGVMaXN0RnJvbVJlbmRlcmVyKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocykK
QEAgLTE0NTksNyArMTQ5Nyw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0RmlsZUxpc3RG
cm9tUmUKIAogICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CiAg
ICAgSW5wdXRFbGVtZW50Ojpub3RpZnlGb3JtU3RhdGVDaGFuZ2VkKHRoaXMpOwotICAgIHVwZGF0
ZVZhbGlkaXR5KCk7CisgICAgdXBkYXRlVmFsaWRpdHkoVXBkYXRlVmFsdWUpOwogfQogCiBib29s
IEhUTUxJbnB1dEVsZW1lbnQ6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkgY29u
c3QKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAkocmV2aXNpb24gNTM3MTkpCisrKyBXZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODIsNiArMTgy
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2YXRlZFN1Ym1pdCgpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY3RpdmF0ZWRTdWJtaXQoYm9vbCBmbGFnKTsKIAorICAg
IGJvb2wgdHlwZUhhc1ZhbGlkYXRpb24oKSBjb25zdDsKKyAgICAKICAgICBJbnB1dFR5cGUgaW5w
dXRUeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SW5wdXRUeXBlPihtX3R5cGUpOyB9
CiAgICAgdm9pZCBzZXRJbnB1dFR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgCkluZGV4OiBXZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MzcxOSkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk5LDcgKzI5
OSw3IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0VmFsdWUoY29uc3QKIAogICAgIHNl
dE5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICBub3RpZnlGb3JtU3RhdGVDaGFuZ2VkKHRoaXMpOwot
ICAgIHVwZGF0ZVZhbGlkaXR5KCk7CisgICAgdXBkYXRlVmFsaWRpdHkoVXBkYXRlVmFsdWUpOwog
fQogCiBTdHJpbmcgSFRNTFRleHRBcmVhRWxlbWVudDo6ZGVmYXVsdFZhbHVlKCkgY29uc3QKSW5k
ZXg6IFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAJKHJldmlzaW9uIDUzNzE5KQorKysgV2ViQ29yZS9odG1s
L1ZhbGlkaXR5U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDUsOCArMTQ1LDggQEAgYm9v
bCBWYWxpZGl0eVN0YXRlOjpzdGVwTWlzbWF0Y2goKSBjb25zdAogCiBib29sIFZhbGlkaXR5U3Rh
dGU6OnZhbGlkKCkgY29uc3QKIHsKLSAgICBib29sIHNvbWVFcnJvciA9IHR5cGVNaXNtYXRjaCgp
IHx8IHN0ZXBNaXNtYXRjaCgpIHx8IHJhbmdlVW5kZXJmbG93KCkgfHwgcmFuZ2VPdmVyZmxvdygp
Ci0gICAgICAgIHx8IHRvb0xvbmcoKSB8fCBwYXR0ZXJuTWlzbWF0Y2goKSB8fCB2YWx1ZU1pc3Np
bmcoKSB8fCBjdXN0b21FcnJvcigpOworICAgIGJvb2wgc29tZUVycm9yID0gIGN1c3RvbUVycm9y
KCkgfHwgdmFsdWVNaXNzaW5nKCkgfHwgdG9vTG9uZygpIHx8IHJhbmdlVW5kZXJmbG93KCkgfHwg
cmFuZ2VPdmVyZmxvdygpCisgICAgICAgIHx8IHN0ZXBNaXNtYXRjaCgpIHx8IHBhdHRlcm5NaXNt
YXRjaCgpIHx8IHR5cGVNaXNtYXRjaCgpOwogICAgIHJldHVybiAhc29tZUVycm9yOwogfQogCklu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUu
Y3BwCShyZXZpc2lvbiA1MzcxOSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sTXVsdGlMaW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCB2b2lkIFJl
bmRlclRleHRDb250cm9sTXVsdGlMaW5lOjpzdWJ0cmVlCiAgICAgUmVuZGVyVGV4dENvbnRyb2w6
OnN1YnRyZWVIYXNDaGFuZ2VkKCk7CiAgICAgSFRNTFRleHRBcmVhRWxlbWVudCogdGV4dEFyZWEg
PSBzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4obm9kZSgpKTsKICAgICB0ZXh0QXJl
YS0+c2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcihmYWxzZSk7Ci0gICAgdGV4dEFy
ZWEtPnVwZGF0ZVZhbGlkaXR5KCk7CisgICAgdGV4dEFyZWEtPnVwZGF0ZVZhbGlkaXR5KFVwZGF0
ZVZhbHVlKTsKIAogICAgIGlmICghbm9kZSgpLT5mb2N1c2VkKCkpCiAgICAgICAgIHJldHVybjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47254</attachid>
            <date>2010-01-22 18:11:59 -0800</date>
            <delta_ts>2010-01-22 18:24:23 -0800</delta_ts>
            <desc>preliminary patch</desc>
            <filename>patch_01-22-10-plt.txt</filename>
            <type>text/plain</type>
            <size>15976</size>
            <attacher name="Adele Peterson">adele</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1Mzc0NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMTAtMDEtMjIgIEFkZWxlIFBldGVyc29uICA8YWRlbGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZp
eCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzcxNjk0NjQ+IFJFR1JFU1NJT04gKHI0NzQ0NCk6IFBMVCBp
cyAxJSBzbG93ZXIgZHVlIHRvIGltcGxlbWVudGF0aW9uIG9mIDp2YWxpZCBhbmQgOmludmFsaWQg
Q1NTIHNlbGVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzQwMjkKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpTZWxlY3RvckNoZWNrZXI6OmNo
ZWNrT25lU2VsZWN0b3IpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6IChXZWJDb3JlOjpFbGVt
ZW50Ojppc0RlZmF1bHRCdXR0b25Gb3JGb3JtKToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6dmFsaWRpdHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9s
RWxlbWVudDo6aXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp2YWxpZGF0aW9uTWVzc2FnZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVWYWxpZGl0eSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXRDdXN0b21WYWxpZGl0eSk6CisgICAg
ICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50Lmg6IChXZWJDb3JlOjpIVE1MRm9ybUNv
bnRyb2xFbGVtZW50OjopOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp0eXBlSGFzVmFsaWRhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRJbnB1dFR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVGcm9tUmVuZGVyZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0RmlsZUxpc3RGcm9tUmVuZGVyZXIpOgorICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHA6IChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRWYWx1ZSk6
CisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmNwcDogKFdlYkNvcmU6OlZhbGlkaXR5U3Rh
dGU6OnZhbGlkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxp
bmUuY3BwOiAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OnN1YnRyZWVIYXND
aGFuZ2VkKToKKwogMjAxMC0wMS0yMiAgU3RldmUgRmFsa2VuYnVyZyAgPHNmYWxrZW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDUzNzE5KQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMDIsMTEgKzEwMDIsMTQgQEAgYm9vbCBD
U1NTdHlsZVNlbGVjdG9yOjpjYW5TaGFyZVN0eWxlV2l0aAogICAgICAgICAgICAgICAgIGlmIChz
LT5pc0RlZmF1bHRCdXR0b25Gb3JGb3JtKCkgIT0gbV9lbGVtZW50LT5pc0RlZmF1bHRCdXR0b25G
b3JGb3JtKCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICBib29sIHdpbGxWYWxpZGF0ZSA9IHMtPndpbGxWYWxpZGF0
ZSgpOwotICAgICAgICAgICAgICAgIGlmICh3aWxsVmFsaWRhdGUgIT0gbV9lbGVtZW50LT53aWxs
VmFsaWRhdGUoKSkKKyAgICAgICAgICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiB0aGlz
Rm9ybUNvbnRyb2wgPSBzdGF0aWNfY2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4ocyk7Cisg
ICAgICAgICAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogb3RoZXJGb3JtQ29udHJvbCA9
IHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPihtX2VsZW1lbnQpOworICAgICAg
ICAgICAgICAgIAorICAgICAgICAgICAgICAgIGJvb2wgd2lsbFZhbGlkYXRlID0gdGhpc0Zvcm1D
b250cm9sLT53aWxsVmFsaWRhdGUoKTsKKyAgICAgICAgICAgICAgICBpZiAod2lsbFZhbGlkYXRl
ICE9IG90aGVyRm9ybUNvbnRyb2wtPndpbGxWYWxpZGF0ZSgpKQogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKHdp
bGxWYWxpZGF0ZSAmJiAocy0+aXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpICE9IG1fZWxlbWVu
dC0+aXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpKSkKKyAgICAgICAgICAgICAgICBpZiAod2ls
bFZhbGlkYXRlICYmICh0aGlzRm9ybUNvbnRyb2wtPmlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQo
KSAhPSBvdGhlckZvcm1Db250cm9sLT5pc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCkpKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAKQEAgLTI0MTAs
MTEgKzI0MTMsMTcgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpTZWxlY3RvckNoZWNrZXI6Ogog
ICAgICAgICAgICAgICAgIHJldHVybiBlICYmIGUtPmlzT3B0aW9uYWxGb3JtQ29udHJvbCgpOwog
ICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvUmVxdWlyZWQ6CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGUgJiYgZS0+aXNSZXF1aXJlZEZvcm1Db250cm9sKCk7Ci0gICAgICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9WYWxpZDoKLSAgICAgICAgICAgICAgICByZXR1cm4g
ZSAmJiBlLT53aWxsVmFsaWRhdGUoKSAmJiBlLT5pc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCk7
Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbnZhbGlkOgotICAgICAgICAg
ICAgICAgIHJldHVybiBlICYmIGUtPndpbGxWYWxpZGF0ZSgpICYmICFlLT5pc1ZhbGlkRm9ybUNv
bnRyb2xFbGVtZW50KCk7Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DaGVj
a2VkOiB7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9WYWxpZDogeworICAg
ICAgICAgICAgICAgIGlmICghZSB8fCAhZS0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQqIGZvcm1Db250cm9sID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxl
bWVudCo+KGUpOworICAgICAgICAgICAgICAgIHJldHVybiBmb3JtQ29udHJvbC0+d2lsbFZhbGlk
YXRlKCkgJiYgZm9ybUNvbnRyb2wtPmlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKTsKKyAgICAg
ICAgICAgIH0gY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW52YWxpZDogeworICAgICAgICAgICAg
ICAgIGlmICghZSB8fCAhZS0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQqIGZvcm1Db250cm9sID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+KGUp
OworICAgICAgICAgICAgICAgIHJldHVybiBmb3JtQ29udHJvbC0+d2lsbFZhbGlkYXRlKCkgJiYg
IWZvcm1Db250cm9sLT5pc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCk7ICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgfSBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DaGVja2VkOiB7CiAgICAg
ICAgICAgICAgICAgaWYgKCFlIHx8ICFlLT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKQogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAvLyBFdmVuIHRob3VnaCBXaW5J
RSBhbGxvd3MgY2hlY2tlZCBhbmQgaW5kZXRlcm1pbmF0ZSB0byBjby1leGlzdCwgdGhlIENTUyBz
ZWxlY3RvciBzcGVjIHNheXMgdGhhdApJbmRleDogV2ViQ29yZS9kb20vRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZG9tL0VsZW1lbnQuaAkocmV2aXNpb24gNTM3MTkpCisrKyBXZWJD
b3JlL2RvbS9FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1NCw4ICsyNTQsNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIGlzT3B0aW9uYWxGb3JtQ29udHJvbCgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVxdWlyZWRGb3JtQ29udHJvbCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRGVmYXVsdEJ1dHRvbkZv
ckZvcm0oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCB3aWxsVmFs
aWRhdGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlk
Rm9ybUNvbnRyb2xFbGVtZW50KCkgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgYm9v
bCBmb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcihi
b29sKSB7IH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDUzNzE5KQorKysgV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04MSw5ICs4MSw2IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6c2V0Rm9ybU5vVmEKIAogVmFsaWRpdHlTdGF0ZSogSFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6dmFsaWRpdHkoKQogewotICAgIGlmICghbV92YWxpZGl0eVN0YXRlKQotICAgICAgICBtX3Zh
bGlkaXR5U3RhdGUgPSBWYWxpZGl0eVN0YXRlOjpjcmVhdGUodGhpcyk7Ci0KICAgICByZXR1cm4g
bV92YWxpZGl0eVN0YXRlLmdldCgpOwogfQogCkBAIC0xMTEsNyArMTA4LDcgQEAgdm9pZCBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZU1hcHBlZAogICAgICAgICBib29sIG9sZFJlcXVpcmVk
ID0gbV9yZXF1aXJlZDsKICAgICAgICAgbV9yZXF1aXJlZCA9ICFhdHRyLT5pc051bGwoKTsKICAg
ICAgICAgaWYgKG9sZFJlcXVpcmVkICE9IG1fcmVxdWlyZWQpCi0gICAgICAgICAgICBzZXROZWVk
c1N0eWxlUmVjYWxjKCk7CisgICAgICAgICAgICB1cGRhdGVWYWxpZGl0eShVcGRhdGVBdHRyaWJ1
dGUpOwogICAgIH0gZWxzZQogICAgICAgICBIVE1MRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoYXR0cik7CiB9CkBAIC0yOTksMTAgKzI5NiwxNSBAQCBib29sIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ6OndpbGxWYWxpZGF0CiAgICAgLy8gICAgICBUaGUgY29udHJvbCBpcyBub3QgYW4gb3V0
cHV0IGVsZW1lbnQuCiAgICAgcmV0dXJuIGZvcm0oKSAmJiAhbmFtZSgpLmlzRW1wdHkoKSAmJiAh
ZGlzYWJsZWQoKSAmJiAhaXNSZWFkT25seUZvcm1Db250cm9sKCk7CiB9CisgICAgCitib29sIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKQoreworICAg
IHJldHVybiB2YWxpZGl0eSgpID8gdmFsaWRpdHkoKS0+dmFsaWQoKSA6IHRydWU7Cit9CiAKIFN0
cmluZyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp2YWxpZGF0aW9uTWVzc2FnZSgpCiB7Ci0gICAg
cmV0dXJuIHZhbGlkaXR5KCktPnZhbGlkYXRpb25NZXNzYWdlKCk7CisgICAgcmV0dXJuIHZhbGlk
aXR5KCkgPyB2YWxpZGl0eSgpLT52YWxpZGF0aW9uTWVzc2FnZSgpIDogU3RyaW5nKCk7CiB9CiAK
IGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6Y2hlY2tWYWxpZGl0eSgpCkBAIC0zMTUsMTYg
KzMxNywyMyBAQCBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmNoZWNrVmFsaWRpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6dXBkYXRlVmFs
aWRpdHkoKQordm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVWYWxpZGl0eShWYWxp
ZGl0eVVwZGF0ZVR5cGUgdHlwZSkKIHsKLSAgICBpZiAod2lsbFZhbGlkYXRlKCkpIHsKLSAgICAg
ICAgLy8gVXBkYXRlIHN0eWxlIGZvciBwc2V1ZG8gY2xhc3NlcyBzdWNoIGFzIDp2YWxpZCA6aW52
YWxpZC4KLSAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwotICAgIH0KKyAgICBpZiAoIXdp
bGxWYWxpZGF0ZSgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgaWYgKHR5cGUgPT0gVXBk
YXRlQXR0cmlidXRlICYmICFtX3ZhbGlkaXR5U3RhdGUpCisgICAgICAgIG1fdmFsaWRpdHlTdGF0
ZSA9IFZhbGlkaXR5U3RhdGU6OmNyZWF0ZSh0aGlzKTsKKworICAgIC8vIFVwZGF0ZSBzdHlsZSBm
b3IgcHNldWRvIGNsYXNzZXMgc3VjaCBhcyA6dmFsaWQgOmludmFsaWQuCisgICAgc2V0TmVlZHNT
dHlsZVJlY2FsYygpOyAgICAKIH0KIAogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXRD
dXN0b21WYWxpZGl0eShjb25zdCBTdHJpbmcmIGVycm9yKQogeworICAgIGlmICghbV92YWxpZGl0
eVN0YXRlKQorICAgICAgICBtX3ZhbGlkaXR5U3RhdGUgPSBWYWxpZGl0eVN0YXRlOjpjcmVhdGUo
dGhpcyk7CisgICAgCiAgICAgdmFsaWRpdHkoKS0+c2V0Q3VzdG9tRXJyb3JNZXNzYWdlKGVycm9y
KTsKIH0KICAgICAKQEAgLTM1NCwxMSArMzYzLDYgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50Ojppc0RlZmF1bHRCdQogICAgIHJldHVybiBpc1N1Y2Nlc3NmdWxTdWJtaXRCdXR0b24oKSAm
JiBtX2Zvcm0gJiYgbV9mb3JtLT5kZWZhdWx0QnV0dG9uKCkgPT0gdGhpczsKIH0KIAotYm9vbCBI
VE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCkKLXsKLSAg
ICByZXR1cm4gdmFsaWRpdHkoKS0+dmFsaWQoKTsKLX0KLQogdm9pZCBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50OjpyZW1vdmVGcm9tRm9ybSgpCiB7CiAgICAgaWYgKCFtX2Zvcm0pCkluZGV4OiBXZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJKHJldmlzaW9uIDUzNzE5KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiAr
MzYsOSBAQCBjbGFzcyBWaXNpYmxlU2VsZWN0aW9uOwogCiBjbGFzcyBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50IDogcHVibGljIEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKKyAgICAKKyAgICBlbnVtIFZh
bGlkaXR5VXBkYXRlVHlwZSB7IFVwZGF0ZVZhbHVlID0gMCwgVXBkYXRlQXR0cmlidXRlIH07CisK
ICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAgICAgdmlydHVhbCB+SFRNTEZvcm1Db250
cm9sRWxlbWVudCgpOwogCkBAIC0xMDcsOSArMTEwLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHNob3J0IHRhYkluZGV4KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZhbGlkYXRl
KCkgY29uc3Q7CisgICAgYm9vbCBpc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCk7CiAgICAgU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlKCk7CiAgICAgYm9vbCBjaGVja1ZhbGlkaXR5KCk7Ci0gICAg
dm9pZCB1cGRhdGVWYWxpZGl0eSgpOworICAgIHZvaWQgdXBkYXRlVmFsaWRpdHkoVmFsaWRpdHlV
cGRhdGVUeXBlKTsKICAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYpOwog
ICAgIHZpcnR1YWwgYm9vbCB2YWx1ZU1pc3NpbmcoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBwYXR0ZXJuTWlzbWF0Y2goKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQpAQCAtMTI2LDcgKzEzMCw2IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAgdmlydHVhbCBI
VE1MRm9ybUVsZW1lbnQqIHZpcnR1YWxGb3JtKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlz
RGVmYXVsdEJ1dHRvbkZvckZvcm0oKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZEZv
cm1Db250cm9sRWxlbWVudCgpOwogCiAgICAgSFRNTEZvcm1FbGVtZW50KiBtX2Zvcm07CiAgICAg
T3duUHRyPFZhbGlkaXR5U3RhdGU+IG1fdmFsaWRpdHlTdGF0ZTsKSW5kZXg6IFdlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAJKHJldmlzaW9uIDUzNzE5KQorKysgV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzksNiArNTc5LDQwIEBAIHN0YXRpYyBj
b25zdCBJbnB1dFR5cGVNYXAqIGNyZWF0ZVR5cGVNYXAKICAgICByZXR1cm4gbWFwOwogfQogCiti
b29sIEhUTUxJbnB1dEVsZW1lbnQ6OnR5cGVIYXNWYWxpZGF0aW9uKCkgY29uc3QKK3sKKyAgICBz
d2l0Y2ggKGlucHV0VHlwZSgpKSB7CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6Q09M
T1I6CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6TlVNQkVSOgorICAgICAgICBjYXNl
IEhUTUxJbnB1dEVsZW1lbnQ6OlVSTDoKKyAgICAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpF
TUFJTDoKKyAgICAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpEQVRFOgorICAgICAgICBjYXNl
IEhUTUxJbnB1dEVsZW1lbnQ6OkRBVEVUSU1FOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1l
bnQ6OkRBVEVUSU1FTE9DQUw6CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6TU9OVEg6
CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6VElNRToKKyAgICAgICAgY2FzZSBIVE1M
SW5wdXRFbGVtZW50OjpXRUVLOgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGNh
c2UgSFRNTElucHV0RWxlbWVudDo6QlVUVE9OOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1l
bnQ6OkNIRUNLQk9YOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OkZJTEU6CisgICAg
ICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6SElEREVOOgorICAgICAgICBjYXNlIEhUTUxJbnB1
dEVsZW1lbnQ6OklNQUdFOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OklTSU5ERVg6
CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6UEFTU1dPUkQ6CisgICAgICAgIGNhc2Ug
SFRNTElucHV0RWxlbWVudDo6UkFESU86CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6
UkFOR0U6CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6UkVTRVQ6CisgICAgICAgIGNh
c2UgSFRNTElucHV0RWxlbWVudDo6U0VBUkNIOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1l
bnQ6OlNVQk1JVDoKKyAgICAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpURUxFUEhPTkU6IC8v
IEZJWE1FOiBJcyB0aGVyZSB2YWxpZGF0aW9uIGZvciA8aW5wdXQgdHlwZT10ZWxlcGhvbmU+Pwor
ICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OlRFWFQ6CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKyAgICAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0SW5wdXRUeXBlKGNvbnN0IFN0
cmluZyYgdCkKIHsKICAgICBzdGF0aWMgY29uc3QgSW5wdXRUeXBlTWFwKiB0eXBlTWFwID0gY3Jl
YXRlVHlwZU1hcCgpOwpAQCAtNjQ1LDcgKzY3OSw4IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6
c2V0SW5wdXRUeXBlKGNvbnMKICAgICAgICAgfQogCiAgICAgICAgIElucHV0RWxlbWVudDo6bm90
aWZ5Rm9ybVN0YXRlQ2hhbmdlZCh0aGlzKTsKLSAgICAgICAgdXBkYXRlVmFsaWRpdHkoKTsKKyAg
ICAgICAgaWYgKHR5cGVIYXNWYWxpZGF0aW9uKCkpCisgICAgICAgICAgICB1cGRhdGVWYWxpZGl0
eShVcGRhdGVBdHRyaWJ1dGUpOwogICAgIH0KICAgICBtX2hhdmVUeXBlID0gdHJ1ZTsKIApAQCAt
ODY3LDE3ICs5MDIsMTggQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJp
YgogICAgICAgICBpZiAobV9kYXRhLnZhbHVlKCkuaXNOdWxsKCkpCiAgICAgICAgICAgICBzZXRO
ZWVkc1N0eWxlUmVjYWxjKCk7CiAgICAgICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVu
ZGVyZXIoZmFsc2UpOwotICAgICAgICB1cGRhdGVWYWxpZGl0eSgpOworICAgICAgICB1cGRhdGVW
YWxpZGl0eShVcGRhdGVWYWx1ZSk7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gY2hl
Y2tlZEF0dHIpIHsKICAgICAgICAgbV9kZWZhdWx0Q2hlY2tlZCA9ICFhdHRyLT5pc051bGwoKTsK
ICAgICAgICAgaWYgKG1fdXNlRGVmYXVsdENoZWNrZWQpIHsKICAgICAgICAgICAgIHNldENoZWNr
ZWQobV9kZWZhdWx0Q2hlY2tlZCk7CiAgICAgICAgICAgICBtX3VzZURlZmF1bHRDaGVja2VkID0g
dHJ1ZTsKICAgICAgICAgfQotICAgICAgICB1cGRhdGVWYWxpZGl0eSgpOwotICAgIH0gZWxzZSBp
ZiAoYXR0ci0+bmFtZSgpID09IG1heGxlbmd0aEF0dHIpCisgICAgICAgIHVwZGF0ZVZhbGlkaXR5
KFVwZGF0ZVZhbHVlKTsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBtYXhsZW5ndGhB
dHRyKSB7CiAgICAgICAgIElucHV0RWxlbWVudDo6cGFyc2VNYXhMZW5ndGhBdHRyaWJ1dGUobV9k
YXRhLCB0aGlzLCB0aGlzLCBhdHRyKTsKLSAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gc2l6
ZUF0dHIpCisgICAgICAgIHVwZGF0ZVZhbGlkaXR5KFVwZGF0ZUF0dHJpYnV0ZSk7CisgICAgfSBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gc2l6ZUF0dHIpCiAgICAgICAgIElucHV0RWxlbWVudDo6
cGFyc2VTaXplQXR0cmlidXRlKG1fZGF0YSwgdGhpcywgYXR0cik7CiAgICAgZWxzZSBpZiAoYXR0
ci0+bmFtZSgpID09IGFsdEF0dHIpIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgaW5wdXRU
eXBlKCkgPT0gSU1BR0UpCkBAIC05MjMsMTMgKzk1OSwxNSBAQCB2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmliCiAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKICAg
ICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBhdXRvc2F2ZUF0dHIgfHwKICAgICAgICAgICAg
ICBhdHRyLT5uYW1lKCkgPT0gaW5jcmVtZW50YWxBdHRyIHx8Ci0gICAgICAgICAgICAgYXR0ci0+
bmFtZSgpID09IG1pbkF0dHIgfHwKLSAgICAgICAgICAgICBhdHRyLT5uYW1lKCkgPT0gbWF4QXR0
ciB8fAogICAgICAgICAgICAgIGF0dHItPm5hbWUoKSA9PSBtdWx0aXBsZUF0dHIgfHwKICAgICAg
ICAgICAgICBhdHRyLT5uYW1lKCkgPT0gcHJlY2lzaW9uQXR0cikKICAgICAgICAgc2V0TmVlZHNT
dHlsZVJlY2FsYygpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBtaW5BdHRyIHx8IGF0
dHItPm5hbWUoKSA9PSBtYXhBdHRyKQorICAgICAgICB1cGRhdGVWYWxpZGl0eShVcGRhdGVBdHRy
aWJ1dGUpOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBwYXR0ZXJuQXR0cikKLSAgICAg
ICAgdXBkYXRlVmFsaWRpdHkoKTsKKyAgICAgICAgdXBkYXRlVmFsaWRpdHkoVXBkYXRlQXR0cmli
dXRlKTsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gc3RlcEF0dHIpCisgICAgICAgIHVw
ZGF0ZVZhbGlkaXR5KFVwZGF0ZUF0dHJpYnV0ZSk7CiAjaWYgRU5BQkxFKERBVEFMSVNUKQogICAg
IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBsaXN0QXR0cikKICAgICAgICAgbV9oYXNOb25FbXB0
eUxpc3QgPSAhYXR0ci0+aXNFbXB0eSgpOwpAQCAtMTM3MSw3ICsxNDA5LDcgQEAgdm9pZCBIVE1M
SW5wdXRFbGVtZW50OjpzZXRWYWx1ZShjb25zdCBTdAogICAgICAgICBkaXNwYXRjaEZvcm1Db250
cm9sQ2hhbmdlRXZlbnQoKTsKIAogICAgIElucHV0RWxlbWVudDo6bm90aWZ5Rm9ybVN0YXRlQ2hh
bmdlZCh0aGlzKTsKLSAgICB1cGRhdGVWYWxpZGl0eSgpOworICAgIHVwZGF0ZVZhbGlkaXR5KFVw
ZGF0ZVZhbHVlKTsKIH0KIAogZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVlQXNEYXRlKCkg
Y29uc3QKQEAgLTE0NDcsNyArMTQ4NSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFs
dWVGcm9tUmVuZGUKICAgICBtX2RhdGEuc2V0U3VnZ2VzdGVkVmFsdWUoU3RyaW5nKCkpOwogICAg
IHVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJpbGl0eShmYWxzZSk7CiAgICAgSW5wdXRFbGVtZW50Ojpz
ZXRWYWx1ZUZyb21SZW5kZXJlcihtX2RhdGEsIHRoaXMsIHRoaXMsIHZhbHVlKTsKLSAgICB1cGRh
dGVWYWxpZGl0eSgpOworICAgIHVwZGF0ZVZhbGlkaXR5KFVwZGF0ZVZhbHVlKTsKIH0KIAogdm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRGaWxlTGlzdEZyb21SZW5kZXJlcihjb25zdCBWZWN0b3I8
U3RyaW5nPiYgcGF0aHMpCkBAIC0xNDU5LDcgKzE0OTcsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OnNldEZpbGVMaXN0RnJvbVJlCiAKICAgICBzZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1Jl
bmRlcmVyKHRydWUpOwogICAgIElucHV0RWxlbWVudDo6bm90aWZ5Rm9ybVN0YXRlQ2hhbmdlZCh0
aGlzKTsKLSAgICB1cGRhdGVWYWxpZGl0eSgpOworICAgIHVwZGF0ZVZhbGlkaXR5KFVwZGF0ZVZh
bHVlKTsKIH0KIAogYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpzdG9yZXNWYWx1ZVNlcGFyYXRlRnJv
bUF0dHJpYnV0ZSgpIGNvbnN0CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgJKHJldmlzaW9u
IDUzNzE5KQorKysgV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMTgyLDYgKzE4Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmF0
ZWRTdWJtaXQoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZhdGVkU3VibWl0KGJv
b2wgZmxhZyk7CiAKKyAgICBib29sIHR5cGVIYXNWYWxpZGF0aW9uKCkgY29uc3Q7CisgICAgCiAg
ICAgSW5wdXRUeXBlIGlucHV0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PElucHV0
VHlwZT4obV90eXBlKTsgfQogICAgIHZvaWQgc2V0SW5wdXRUeXBlKGNvbnN0IFN0cmluZyYpOwog
ICAgIApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAkocmV2aXNpb24gNTM3
MTkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5OSw3ICsyOTksNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFZhbHVl
KGNvbnN0CiAKICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CiAgICAgbm90aWZ5Rm9ybVN0YXRl
Q2hhbmdlZCh0aGlzKTsKLSAgICB1cGRhdGVWYWxpZGl0eSgpOworICAgIHVwZGF0ZVZhbGlkaXR5
KFVwZGF0ZVZhbHVlKTsKIH0KIAogU3RyaW5nIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmRlZmF1bHRW
YWx1ZSgpIGNvbnN0CkluZGV4OiBXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCShyZXZpc2lvbiA1MzcxOSkK
KysrIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ1
LDggKzE0NSw4IEBAIGJvb2wgVmFsaWRpdHlTdGF0ZTo6c3RlcE1pc21hdGNoKCkgY29uc3QKIAog
Ym9vbCBWYWxpZGl0eVN0YXRlOjp2YWxpZCgpIGNvbnN0CiB7Ci0gICAgYm9vbCBzb21lRXJyb3Ig
PSB0eXBlTWlzbWF0Y2goKSB8fCBzdGVwTWlzbWF0Y2goKSB8fCByYW5nZVVuZGVyZmxvdygpIHx8
IHJhbmdlT3ZlcmZsb3coKQotICAgICAgICB8fCB0b29Mb25nKCkgfHwgcGF0dGVybk1pc21hdGNo
KCkgfHwgdmFsdWVNaXNzaW5nKCkgfHwgY3VzdG9tRXJyb3IoKTsKKyAgICBib29sIHNvbWVFcnJv
ciA9ICBjdXN0b21FcnJvcigpIHx8IHZhbHVlTWlzc2luZygpIHx8IHRvb0xvbmcoKSB8fCByYW5n
ZVVuZGVyZmxvdygpIHx8IHJhbmdlT3ZlcmZsb3coKQorICAgICAgICB8fCBzdGVwTWlzbWF0Y2go
KSB8fCBwYXR0ZXJuTWlzbWF0Y2goKSB8fCB0eXBlTWlzbWF0Y2goKTsKICAgICByZXR1cm4gIXNv
bWVFcnJvcjsKIH0KIApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xN
dWx0aUxpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sTXVsdGlMaW5lLmNwcAkocmV2aXNpb24gNTM3MTkpCisrKyBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcg
KzQ3LDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6c3VidHJlZQogICAgIFJl
bmRlclRleHRDb250cm9sOjpzdWJ0cmVlSGFzQ2hhbmdlZCgpOwogICAgIEhUTUxUZXh0QXJlYUVs
ZW1lbnQqIHRleHRBcmVhID0gc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KG5vZGUo
KSk7CiAgICAgdGV4dEFyZWEtPnNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIoZmFs
c2UpOwotICAgIHRleHRBcmVhLT51cGRhdGVWYWxpZGl0eSgpOworICAgIHRleHRBcmVhLT51cGRh
dGVWYWxpZGl0eShVcGRhdGVWYWx1ZSk7CiAKICAgICBpZiAoIW5vZGUoKS0+Zm9jdXNlZCgpKQog
ICAgICAgICByZXR1cm47Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47255</attachid>
            <date>2010-01-22 18:24:23 -0800</date>
            <delta_ts>2010-01-25 11:28:41 -0800</delta_ts>
            <desc>preliminary patch</desc>
            <filename>patch_01-22-10-plt.txt</filename>
            <type>text/plain</type>
            <size>16559</size>
            <attacher name="Adele Peterson">adele</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1Mzc0OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTAtMDEtMjIgIEFkZWxlIFBldGVyc29uICA8YWRlbGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZp
eCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzcxNjk0NjQ+IFJFR1JFU1NJT04gKHI0NzQ0NCk6IFBMVCBp
cyAxJSBzbG93ZXIgZHVlIHRvIGltcGxlbWVudGF0aW9uIG9mIDp2YWxpZCBhbmQgOmludmFsaWQg
Q1NTIHNlbGVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzQwMjkKKworICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNhblNoYXJlU3R5bGVXaXRoRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpTZWxlY3RvckNoZWNrZXI6OmNo
ZWNrT25lU2VsZWN0b3IpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6IChXZWJDb3JlOjpFbGVt
ZW50Ojppc0RlZmF1bHRCdXR0b25Gb3JGb3JtKToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVu
dDo6dmFsaWRpdHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9s
RWxlbWVudDo6aXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp2YWxpZGF0aW9uTWVzc2FnZSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVWYWxpZGl0eSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXRDdXN0b21WYWxpZGl0eSk6CisgICAg
ICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50Lmg6IChXZWJDb3JlOjpIVE1MRm9ybUNv
bnRyb2xFbGVtZW50OjopOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp0eXBlSGFzVmFsaWRhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRJbnB1dFR5cGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVGcm9tUmVuZGVyZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0RmlsZUxpc3RGcm9tUmVuZGVyZXIpOgorICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE9iamVj
dEVsZW1lbnQuaDogKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50Ojp3aWxsVmFsaWRhdGUpOgor
ICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6IChXZWJDb3JlOjpIVE1MVGV4
dEFyZWFFbGVtZW50OjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmNw
cDogKFdlYkNvcmU6OlZhbGlkaXR5U3RhdGU6OnZhbGlkKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwOiAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRy
b2xNdWx0aUxpbmU6OnN1YnRyZWVIYXNDaGFuZ2VkKToKKwogMjAxMC0wMS0yMiAgUGV0ZXIgS2Fz
dGluZyAgPHBrYXN0aW5nQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gNTM3MTkpCisr
KyBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAw
MiwxMSArMTAwMiwxNCBAQCBib29sIENTU1N0eWxlU2VsZWN0b3I6OmNhblNoYXJlU3R5bGVXaXRo
CiAgICAgICAgICAgICAgICAgaWYgKHMtPmlzRGVmYXVsdEJ1dHRvbkZvckZvcm0oKSAhPSBtX2Vs
ZW1lbnQtPmlzRGVmYXVsdEJ1dHRvbkZvckZvcm0oKSkKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGJvb2wgd2lsbFZh
bGlkYXRlID0gcy0+d2lsbFZhbGlkYXRlKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHdpbGxWYWxp
ZGF0ZSAhPSBtX2VsZW1lbnQtPndpbGxWYWxpZGF0ZSgpKQorICAgICAgICAgICAgICAgIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQqIHRoaXNGb3JtQ29udHJvbCA9IHN0YXRpY19jYXN0PEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQqPihzKTsKKyAgICAgICAgICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50KiBvdGhlckZvcm1Db250cm9sID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVu
dCo+KG1fZWxlbWVudCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYm9vbCB3
aWxsVmFsaWRhdGUgPSB0aGlzRm9ybUNvbnRyb2wtPndpbGxWYWxpZGF0ZSgpOworICAgICAgICAg
ICAgICAgIGlmICh3aWxsVmFsaWRhdGUgIT0gb3RoZXJGb3JtQ29udHJvbC0+d2lsbFZhbGlkYXRl
KCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICBpZiAod2lsbFZhbGlkYXRlICYmIChzLT5pc1ZhbGlkRm9ybUNvbnRy
b2xFbGVtZW50KCkgIT0gbV9lbGVtZW50LT5pc1ZhbGlkRm9ybUNvbnRyb2xFbGVtZW50KCkpKQor
ICAgICAgICAgICAgICAgIGlmICh3aWxsVmFsaWRhdGUgJiYgKHRoaXNGb3JtQ29udHJvbC0+aXNW
YWxpZEZvcm1Db250cm9sRWxlbWVudCgpICE9IG90aGVyRm9ybUNvbnRyb2wtPmlzVmFsaWRGb3Jt
Q29udHJvbEVsZW1lbnQoKSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgICAgIH0KIApAQCAtMjQxMCwxMSArMjQxMywxNyBAQCBib29sIENTU1N0eWxlU2VsZWN0
b3I6OlNlbGVjdG9yQ2hlY2tlcjo6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGUgJiYgZS0+aXNP
cHRpb25hbEZvcm1Db250cm9sKCk7CiAgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9SZXF1aXJlZDoKICAgICAgICAgICAgICAgICByZXR1cm4gZSAmJiBlLT5pc1JlcXVpcmVkRm9y
bUNvbnRyb2woKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1ZhbGlkOgot
ICAgICAgICAgICAgICAgIHJldHVybiBlICYmIGUtPndpbGxWYWxpZGF0ZSgpICYmIGUtPmlzVmFs
aWRGb3JtQ29udHJvbEVsZW1lbnQoKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0ludmFsaWQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGUgJiYgZS0+d2lsbFZhbGlkYXRl
KCkgJiYgIWUtPmlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKTsKLSAgICAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0NoZWNrZWQ6IHsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb1ZhbGlkOiB7CisgICAgICAgICAgICAgICAgaWYgKCFlIHx8ICFlLT5pc0Zvcm1D
b250cm9sRWxlbWVudCgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgICAgICAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogZm9ybUNvbnRyb2wgPSBzdGF0aWNf
Y2FzdDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4oZSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGZvcm1Db250cm9sLT53aWxsVmFsaWRhdGUoKSAmJiBmb3JtQ29udHJvbC0+aXNWYWxpZEZvcm1D
b250cm9sRWxlbWVudCgpOworICAgICAgICAgICAgfSBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9J
bnZhbGlkOiB7CisgICAgICAgICAgICAgICAgaWYgKCFlIHx8ICFlLT5pc0Zvcm1Db250cm9sRWxl
bWVudCgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICAg
ICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogZm9ybUNvbnRyb2wgPSBzdGF0aWNfY2FzdDxIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50Kj4oZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1Db250
cm9sLT53aWxsVmFsaWRhdGUoKSAmJiAhZm9ybUNvbnRyb2wtPmlzVmFsaWRGb3JtQ29udHJvbEVs
ZW1lbnQoKTsgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9IGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0NoZWNrZWQ6IHsKICAgICAgICAgICAgICAgICBpZiAoIWUgfHwgIWUtPmlzRm9ybUNv
bnRyb2xFbGVtZW50KCkpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIC8vIEV2ZW4gdGhvdWdoIFdpbklFIGFsbG93cyBjaGVja2VkIGFuZCBpbmRldGVybWluYXRl
IHRvIGNvLWV4aXN0LCB0aGUgQ1NTIHNlbGVjdG9yIHNwZWMgc2F5cyB0aGF0CkluZGV4OiBXZWJD
b3JlL2RvbS9FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRWxlbWVudC5oCShy
ZXZpc2lvbiA1MzcxOSkKKysrIFdlYkNvcmUvZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjU0LDggKzI1NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZv
cm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNS
ZXF1aXJlZEZvcm1Db250cm9sKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IGJvb2wgaXNEZWZhdWx0QnV0dG9uRm9yRm9ybSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgdmlydHVhbCBib29sIHdpbGxWYWxpZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0g
ICAgdmlydHVhbCBib29sIGlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgdmlydHVhbCBib29sIGZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRGb3JtQ29udHJv
bFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGJvb2wpIHsgfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmNwcAkocmV2aXNpb24gNTM3MTkpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDkgKzgxLDYgQEAg
dm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpzZXRGb3JtTm9WYQogCiBWYWxpZGl0eVN0YXRl
KiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp2YWxpZGl0eSgpCiB7Ci0gICAgaWYgKCFtX3ZhbGlk
aXR5U3RhdGUpCi0gICAgICAgIG1fdmFsaWRpdHlTdGF0ZSA9IFZhbGlkaXR5U3RhdGU6OmNyZWF0
ZSh0aGlzKTsKLQogICAgIHJldHVybiBtX3ZhbGlkaXR5U3RhdGUuZ2V0KCk7CiB9CiAKQEAgLTEx
MSw3ICsxMDgsNyBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlTWFwcGVkCiAg
ICAgICAgIGJvb2wgb2xkUmVxdWlyZWQgPSBtX3JlcXVpcmVkOwogICAgICAgICBtX3JlcXVpcmVk
ID0gIWF0dHItPmlzTnVsbCgpOwogICAgICAgICBpZiAob2xkUmVxdWlyZWQgIT0gbV9yZXF1aXJl
ZCkKLSAgICAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICAgICAgICAgIHVwZGF0
ZVZhbGlkaXR5KFVwZGF0ZUF0dHJpYnV0ZSk7CiAgICAgfSBlbHNlCiAgICAgICAgIEhUTUxFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShhdHRyKTsKIH0KQEAgLTI5OSwxMCArMjk2LDE1IEBA
IGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6d2lsbFZhbGlkYXQKICAgICAvLyAgICAgIFRo
ZSBjb250cm9sIGlzIG5vdCBhbiBvdXRwdXQgZWxlbWVudC4KICAgICByZXR1cm4gZm9ybSgpICYm
ICFuYW1lKCkuaXNFbXB0eSgpICYmICFkaXNhYmxlZCgpICYmICFpc1JlYWRPbmx5Rm9ybUNvbnRy
b2woKTsKIH0KKyAgICAKK2Jvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNWYWxpZEZvcm1D
b250cm9sRWxlbWVudCgpCit7CisgICAgcmV0dXJuIHZhbGlkaXR5KCkgPyB2YWxpZGl0eSgpLT52
YWxpZCgpIDogdHJ1ZTsKK30KIAogU3RyaW5nIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnZhbGlk
YXRpb25NZXNzYWdlKCkKIHsKLSAgICByZXR1cm4gdmFsaWRpdHkoKS0+dmFsaWRhdGlvbk1lc3Nh
Z2UoKTsKKyAgICByZXR1cm4gdmFsaWRpdHkoKSA/IHZhbGlkaXR5KCktPnZhbGlkYXRpb25NZXNz
YWdlKCkgOiBTdHJpbmcoKTsKIH0KIAogYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpjaGVj
a1ZhbGlkaXR5KCkKQEAgLTMxNSwxNiArMzE3LDIzIEBAIGJvb2wgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6Y2hlY2tWYWxpZGkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50Ojp1cGRhdGVWYWxpZGl0eSgpCit2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OnVwZGF0ZVZhbGlkaXR5KFZhbGlkaXR5VXBkYXRlVHlwZSB0eXBlKQogewotICAgIGlmICh3
aWxsVmFsaWRhdGUoKSkgewotICAgICAgICAvLyBVcGRhdGUgc3R5bGUgZm9yIHBzZXVkbyBjbGFz
c2VzIHN1Y2ggYXMgOnZhbGlkIDppbnZhbGlkLgotICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxj
KCk7Ci0gICAgfQorICAgIGlmICghd2lsbFZhbGlkYXRlKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICBpZiAodHlwZSA9PSBVcGRhdGVBdHRyaWJ1dGUgJiYgIW1fdmFsaWRpdHlTdGF0ZSkK
KyAgICAgICAgbV92YWxpZGl0eVN0YXRlID0gVmFsaWRpdHlTdGF0ZTo6Y3JlYXRlKHRoaXMpOwor
CisgICAgLy8gVXBkYXRlIHN0eWxlIGZvciBwc2V1ZG8gY2xhc3NlcyBzdWNoIGFzIDp2YWxpZCA6
aW52YWxpZC4KKyAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7ICAgIAogfQogCiB2b2lkIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6OnNldEN1c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYgZXJyb3Ip
CiB7CisgICAgaWYgKCFtX3ZhbGlkaXR5U3RhdGUpCisgICAgICAgIG1fdmFsaWRpdHlTdGF0ZSA9
IFZhbGlkaXR5U3RhdGU6OmNyZWF0ZSh0aGlzKTsKKyAgICAKICAgICB2YWxpZGl0eSgpLT5zZXRD
dXN0b21FcnJvck1lc3NhZ2UoZXJyb3IpOwogfQogICAgIApAQCAtMzU0LDExICszNjMsNiBAQCBi
b29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzRGVmYXVsdEJ1CiAgICAgcmV0dXJuIGlzU3Vj
Y2Vzc2Z1bFN1Ym1pdEJ1dHRvbigpICYmIG1fZm9ybSAmJiBtX2Zvcm0tPmRlZmF1bHRCdXR0b24o
KSA9PSB0aGlzOwogfQogCi1ib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzVmFsaWRGb3Jt
Q29udHJvbEVsZW1lbnQoKQotewotICAgIHJldHVybiB2YWxpZGl0eSgpLT52YWxpZCgpOwotfQot
CiB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnJlbW92ZUZyb21Gb3JtKCkKIHsKICAgICBp
ZiAoIW1fZm9ybSkKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAkocmV2
aXNpb24gNTM3MTkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw5IEBAIGNsYXNzIFZpc2libGVTZWxlY3Rpb247CiAK
IGNsYXNzIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVi
bGljOgorICAgIAorICAgIGVudW0gVmFsaWRpdHlVcGRhdGVUeXBlIHsgVXBkYXRlVmFsdWUsIFVw
ZGF0ZUF0dHJpYnV0ZSB9OworCiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOwogICAgIHZp
cnR1YWwgfkhUTUxGb3JtQ29udHJvbEVsZW1lbnQoKTsKIApAQCAtMTA3LDkgKzExMCwxMCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBzaG9ydCB0YWJJbmRleCgpIGNvbnN0OwogCiAgICAgdmlydHVh
bCBib29sIHdpbGxWYWxpZGF0ZSgpIGNvbnN0OworICAgIGJvb2wgaXNWYWxpZEZvcm1Db250cm9s
RWxlbWVudCgpOwogICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZSgpOwogICAgIGJvb2wgY2hl
Y2tWYWxpZGl0eSgpOwotICAgIHZvaWQgdXBkYXRlVmFsaWRpdHkoKTsKKyAgICB2b2lkIHVwZGF0
ZVZhbGlkaXR5KFZhbGlkaXR5VXBkYXRlVHlwZSk7CiAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0
eShjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGF0dGVybk1pc21hdGNoKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTEyNiw3ICsxMzAsNiBAQCBwcm90ZWN0ZWQ6CiBwcml2
YXRlOgogICAgIHZpcnR1YWwgSFRNTEZvcm1FbGVtZW50KiB2aXJ0dWFsRm9ybSgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBpc0RlZmF1bHRCdXR0b25Gb3JGb3JtKCkgY29uc3Q7Ci0gICAgdmly
dHVhbCBib29sIGlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKTsKIAogICAgIEhUTUxGb3JtRWxl
bWVudCogbV9mb3JtOwogICAgIE93blB0cjxWYWxpZGl0eVN0YXRlPiBtX3ZhbGlkaXR5U3RhdGU7
CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MzcxOSkKKysrIFdl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTc5LDYg
KzU3OSw0MCBAQCBzdGF0aWMgY29uc3QgSW5wdXRUeXBlTWFwKiBjcmVhdGVUeXBlTWFwCiAgICAg
cmV0dXJuIG1hcDsKIH0KIAorYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojp0eXBlSGFzVmFsaWRhdGlv
bigpIGNvbnN0Cit7CisgICAgc3dpdGNoIChpbnB1dFR5cGUoKSkgeworICAgICAgICBjYXNlIEhU
TUxJbnB1dEVsZW1lbnQ6OkNPTE9SOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6Ok5V
TUJFUjoKKyAgICAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpVUkw6CisgICAgICAgIGNhc2Ug
SFRNTElucHV0RWxlbWVudDo6RU1BSUw6CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6
REFURToKKyAgICAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpEQVRFVElNRToKKyAgICAgICAg
Y2FzZSBIVE1MSW5wdXRFbGVtZW50OjpEQVRFVElNRUxPQ0FMOgorICAgICAgICBjYXNlIEhUTUxJ
bnB1dEVsZW1lbnQ6Ok1PTlRIOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OlRJTUU6
CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxlbWVudDo6V0VFSzoKKyAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OkJVVFRPTjoKKyAgICAgICAg
Y2FzZSBIVE1MSW5wdXRFbGVtZW50OjpDSEVDS0JPWDoKKyAgICAgICAgY2FzZSBIVE1MSW5wdXRF
bGVtZW50OjpGSUxFOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OkhJRERFTjoKKyAg
ICAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpJTUFHRToKKyAgICAgICAgY2FzZSBIVE1MSW5w
dXRFbGVtZW50OjpJU0lOREVYOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OlBBU1NX
T1JEOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OlJBRElPOgorICAgICAgICBjYXNl
IEhUTUxJbnB1dEVsZW1lbnQ6OlJBTkdFOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6
OlJFU0VUOgorICAgICAgICBjYXNlIEhUTUxJbnB1dEVsZW1lbnQ6OlNFQVJDSDoKKyAgICAgICAg
Y2FzZSBIVE1MSW5wdXRFbGVtZW50OjpTVUJNSVQ6CisgICAgICAgIGNhc2UgSFRNTElucHV0RWxl
bWVudDo6VEVMRVBIT05FOiAvLyBGSVhNRTogSXMgdGhlcmUgdmFsaWRhdGlvbiBmb3IgPGlucHV0
IHR5cGU9dGVsZXBob25lPj8KKyAgICAgICAgY2FzZSBIVE1MSW5wdXRFbGVtZW50OjpURVhUOgor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisgICAgCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNl
dElucHV0VHlwZShjb25zdCBTdHJpbmcmIHQpCiB7CiAgICAgc3RhdGljIGNvbnN0IElucHV0VHlw
ZU1hcCogdHlwZU1hcCA9IGNyZWF0ZVR5cGVNYXAoKTsKQEAgLTY0NSw3ICs2NzksOCBAQCB2b2lk
IEhUTUxJbnB1dEVsZW1lbnQ6OnNldElucHV0VHlwZShjb25zCiAgICAgICAgIH0KIAogICAgICAg
ICBJbnB1dEVsZW1lbnQ6Om5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQodGhpcyk7Ci0gICAgICAgIHVw
ZGF0ZVZhbGlkaXR5KCk7CisgICAgICAgIGlmICh0eXBlSGFzVmFsaWRhdGlvbigpKQorICAgICAg
ICAgICAgdXBkYXRlVmFsaWRpdHkoVXBkYXRlQXR0cmlidXRlKTsKICAgICB9CiAgICAgbV9oYXZl
VHlwZSA9IHRydWU7CiAKQEAgLTg2NywxNyArOTAyLDE4IEBAIHZvaWQgSFRNTElucHV0RWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWIKICAgICAgICAgaWYgKG1fZGF0YS52YWx1ZSgpLmlzTnVsbCgp
KQogICAgICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogICAgICAgICBzZXRGb3JtQ29u
dHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGZhbHNlKTsKLSAgICAgICAgdXBkYXRlVmFsaWRpdHko
KTsKKyAgICAgICAgdXBkYXRlVmFsaWRpdHkoVXBkYXRlVmFsdWUpOwogICAgIH0gZWxzZSBpZiAo
YXR0ci0+bmFtZSgpID09IGNoZWNrZWRBdHRyKSB7CiAgICAgICAgIG1fZGVmYXVsdENoZWNrZWQg
PSAhYXR0ci0+aXNOdWxsKCk7CiAgICAgICAgIGlmIChtX3VzZURlZmF1bHRDaGVja2VkKSB7CiAg
ICAgICAgICAgICBzZXRDaGVja2VkKG1fZGVmYXVsdENoZWNrZWQpOwogICAgICAgICAgICAgbV91
c2VEZWZhdWx0Q2hlY2tlZCA9IHRydWU7CiAgICAgICAgIH0KLSAgICAgICAgdXBkYXRlVmFsaWRp
dHkoKTsKLSAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBtYXhsZW5ndGhBdHRyKQorICAg
ICAgICB1cGRhdGVWYWxpZGl0eShVcGRhdGVWYWx1ZSk7CisgICAgfSBlbHNlIGlmIChhdHRyLT5u
YW1lKCkgPT0gbWF4bGVuZ3RoQXR0cikgewogICAgICAgICBJbnB1dEVsZW1lbnQ6OnBhcnNlTWF4
TGVuZ3RoQXR0cmlidXRlKG1fZGF0YSwgdGhpcywgdGhpcywgYXR0cik7Ci0gICAgZWxzZSBpZiAo
YXR0ci0+bmFtZSgpID09IHNpemVBdHRyKQorICAgICAgICB1cGRhdGVWYWxpZGl0eShVcGRhdGVB
dHRyaWJ1dGUpOworICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHNpemVBdHRyKQogICAg
ICAgICBJbnB1dEVsZW1lbnQ6OnBhcnNlU2l6ZUF0dHJpYnV0ZShtX2RhdGEsIHRoaXMsIGF0dHIp
OwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBhbHRBdHRyKSB7CiAgICAgICAgIGlmIChy
ZW5kZXJlcigpICYmIGlucHV0VHlwZSgpID09IElNQUdFKQpAQCAtOTIzLDEzICs5NTksMTUgQEAg
dm9pZCBIVE1MSW5wdXRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYgogICAgICAgICBzZXROZWVk
c1N0eWxlUmVjYWxjKCk7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gYXV0b3NhdmVB
dHRyIHx8CiAgICAgICAgICAgICAgYXR0ci0+bmFtZSgpID09IGluY3JlbWVudGFsQXR0ciB8fAot
ICAgICAgICAgICAgIGF0dHItPm5hbWUoKSA9PSBtaW5BdHRyIHx8Ci0gICAgICAgICAgICAgYXR0
ci0+bmFtZSgpID09IG1heEF0dHIgfHwKICAgICAgICAgICAgICBhdHRyLT5uYW1lKCkgPT0gbXVs
dGlwbGVBdHRyIHx8CiAgICAgICAgICAgICAgYXR0ci0+bmFtZSgpID09IHByZWNpc2lvbkF0dHIp
CiAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1l
KCkgPT0gbWluQXR0ciB8fCBhdHRyLT5uYW1lKCkgPT0gbWF4QXR0cikKKyAgICAgICAgdXBkYXRl
VmFsaWRpdHkoVXBkYXRlQXR0cmlidXRlKTsKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0g
cGF0dGVybkF0dHIpCi0gICAgICAgIHVwZGF0ZVZhbGlkaXR5KCk7CisgICAgICAgIHVwZGF0ZVZh
bGlkaXR5KFVwZGF0ZUF0dHJpYnV0ZSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHN0
ZXBBdHRyKQorICAgICAgICB1cGRhdGVWYWxpZGl0eShVcGRhdGVBdHRyaWJ1dGUpOwogI2lmIEVO
QUJMRShEQVRBTElTVCkKICAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gbGlzdEF0dHIpCiAg
ICAgICAgIG1faGFzTm9uRW1wdHlMaXN0ID0gIWF0dHItPmlzRW1wdHkoKTsKQEAgLTEzNzEsNyAr
MTQwOSw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUoY29uc3QgU3QKICAgICAg
ICAgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7CiAKICAgICBJbnB1dEVsZW1lbnQ6
Om5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQodGhpcyk7Ci0gICAgdXBkYXRlVmFsaWRpdHkoKTsKKyAg
ICB1cGRhdGVWYWxpZGl0eShVcGRhdGVWYWx1ZSk7CiB9CiAKIGRvdWJsZSBIVE1MSW5wdXRFbGVt
ZW50Ojp2YWx1ZUFzRGF0ZSgpIGNvbnN0CkBAIC0xNDQ3LDcgKzE0ODUsNyBAQCB2b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6OnNldFZhbHVlRnJvbVJlbmRlCiAgICAgbV9kYXRhLnNldFN1Z2dlc3RlZFZh
bHVlKFN0cmluZygpKTsKICAgICB1cGRhdGVQbGFjZWhvbGRlclZpc2liaWxpdHkoZmFsc2UpOwog
ICAgIElucHV0RWxlbWVudDo6c2V0VmFsdWVGcm9tUmVuZGVyZXIobV9kYXRhLCB0aGlzLCB0aGlz
LCB2YWx1ZSk7Ci0gICAgdXBkYXRlVmFsaWRpdHkoKTsKKyAgICB1cGRhdGVWYWxpZGl0eShVcGRh
dGVWYWx1ZSk7CiB9CiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0RmlsZUxpc3RGcm9tUmVu
ZGVyZXIoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhzKQpAQCAtMTQ1OSw3ICsxNDk3LDcgQEAg
dm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRGaWxlTGlzdEZyb21SZQogCiAgICAgc2V0Rm9ybUNv
bnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsKICAgICBJbnB1dEVsZW1lbnQ6Om5vdGlm
eUZvcm1TdGF0ZUNoYW5nZWQodGhpcyk7Ci0gICAgdXBkYXRlVmFsaWRpdHkoKTsKKyAgICB1cGRh
dGVWYWxpZGl0eShVcGRhdGVWYWx1ZSk7CiB9CiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6c3Rv
cmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBjb25zdApJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCShyZXZpc2lvbiA1MzcxOSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4Miw2ICsxODIsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGlzQWN0aXZhdGVkU3VibWl0KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEFjdGl2YXRlZFN1Ym1pdChib29sIGZsYWcpOwogCisgICAgYm9vbCB0eXBlSGFzVmFsaWRhdGlv
bigpIGNvbnN0OworICAgIAogICAgIElucHV0VHlwZSBpbnB1dFR5cGUoKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxJbnB1dFR5cGU+KG1fdHlwZSk7IH0KICAgICB2b2lkIHNldElucHV0VHlw
ZShjb25zdCBTdHJpbmcmKTsKICAgICAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCShy
ZXZpc2lvbiA1MzcxOSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OSw2ICs0OSw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGNs
YXNzSWQoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzSWQ7IH0KIAogICAgIGJvb2wgY29udGFpbnNK
YXZhQXBwbGV0KCkgY29uc3Q7CisgICAgCisgICAgYm9vbCB3aWxsVmFsaWRhdGUoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogCiBwcml2YXRlOgogICAgIEhUTUxPYmplY3RFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKSW5kZXg6
IFdlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAJKHJldmlzaW9uIDUzNzE5KQorKysgV2Vi
Q29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOTks
NyArMjk5LDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRWYWx1ZShjb25zdAogCiAg
ICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwogICAgIG5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQodGhp
cyk7Ci0gICAgdXBkYXRlVmFsaWRpdHkoKTsKKyAgICB1cGRhdGVWYWxpZGl0eShVcGRhdGVWYWx1
ZSk7CiB9CiAKIFN0cmluZyBIVE1MVGV4dEFyZWFFbGVtZW50OjpkZWZhdWx0VmFsdWUoKSBjb25z
dApJbmRleDogV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAkocmV2aXNpb24gNTM3MTkpCisrKyBXZWJDb3Jl
L2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw4ICsxNDUsOCBA
QCBib29sIFZhbGlkaXR5U3RhdGU6OnN0ZXBNaXNtYXRjaCgpIGNvbnN0CiAKIGJvb2wgVmFsaWRp
dHlTdGF0ZTo6dmFsaWQoKSBjb25zdAogewotICAgIGJvb2wgc29tZUVycm9yID0gdHlwZU1pc21h
dGNoKCkgfHwgc3RlcE1pc21hdGNoKCkgfHwgcmFuZ2VVbmRlcmZsb3coKSB8fCByYW5nZU92ZXJm
bG93KCkKLSAgICAgICAgfHwgdG9vTG9uZygpIHx8IHBhdHRlcm5NaXNtYXRjaCgpIHx8IHZhbHVl
TWlzc2luZygpIHx8IGN1c3RvbUVycm9yKCk7CisgICAgYm9vbCBzb21lRXJyb3IgPSAgY3VzdG9t
RXJyb3IoKSB8fCB2YWx1ZU1pc3NpbmcoKSB8fCB0b29Mb25nKCkgfHwgcmFuZ2VVbmRlcmZsb3co
KSB8fCByYW5nZU92ZXJmbG93KCkKKyAgICAgICAgfHwgc3RlcE1pc21hdGNoKCkgfHwgcGF0dGVy
bk1pc21hdGNoKCkgfHwgdHlwZU1pc21hdGNoKCk7CiAgICAgcmV0dXJuICFzb21lRXJyb3I7CiB9
CiAKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRp
TGluZS5jcHAJKHJldmlzaW9uIDUzNzE5KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIHZv
aWQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OnN1YnRyZWUKICAgICBSZW5kZXJUZXh0Q29u
dHJvbDo6c3VidHJlZUhhc0NoYW5nZWQoKTsKICAgICBIVE1MVGV4dEFyZWFFbGVtZW50KiB0ZXh0
QXJlYSA9IHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihub2RlKCkpOwogICAgIHRl
eHRBcmVhLT5zZXRGb3JtQ29udHJvbFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGZhbHNlKTsKLSAgICB0
ZXh0QXJlYS0+dXBkYXRlVmFsaWRpdHkoKTsKKyAgICB0ZXh0QXJlYS0+dXBkYXRlVmFsaWRpdHko
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6VXBkYXRlVmFsdWUpOwogCiAgICAgaWYgKCFub2RlKCkt
PmZvY3VzZWQoKSkKICAgICAgICAgcmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47360</attachid>
            <date>2010-01-25 11:28:41 -0800</date>
            <delta_ts>2010-01-26 12:43:07 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch_1-25-10-plt.txt</filename>
            <type>text/plain</type>
            <size>4302</size>
            <attacher name="Adele Peterson">adele</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MzgwNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDEtMjUgIEFkZWxlIFBldGVyc29uICA8YWRlbGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZp
eCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzcxNjk0NjQ+IFJFR1JFU1NJT04gKHI0NzQ0NCk6IFBMVCBp
cyAxJSBzbG93ZXIgZHVlIHRvIGltcGxlbWVudGF0aW9uIG9mIDp2YWxpZCBhbmQgOmludmFsaWQg
Q1NTIHNlbGVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzQwMjkKKworICAgICAgICBJZiB3ZSBuZXZlciBoaXQgdGhlIHZhbGlkIG9yIGludmFs
aWQgc2VsZWN0b3JzIGZvciBhIHBhcnRpY3VsYXIgZG9jdW1lbnQsIAorICAgICAgICB0aGVuIHdl
J2xsIHNraXAgdGhlIHZhbGlkaXR5IGNoZWNrcyB3aGVuIGRlY2lkaW5nIGFib3V0IHN0eWxlIHNo
YXJpbmcuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09u
ZVNlbGVjdG9yKToKKyAgICAgICAgCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDogKFdlYkNv
cmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y29uc2lkZXJWYWxpZGl0eSk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6c2V0Q29uc2lkZXJWYWxpZGl0eSk6CisKIDIwMTAtMDEtMjUgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
VGltb3RoeSBIYXRjaGVyLgpJbmRleDogV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9u
IDUzODA2KQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMDIsNiArMTAwMiw5IEBAIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6Y2FuU2hhcmVT
dHlsZVdpdGgKICAgICAgICAgICAgICAgICBpZiAocy0+aXNEZWZhdWx0QnV0dG9uRm9yRm9ybSgp
ICE9IG1fZWxlbWVudC0+aXNEZWZhdWx0QnV0dG9uRm9yRm9ybSgpKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYg
KCFtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNvbnNpZGVyVmFsaWRpdHkoKSkKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
IGJvb2wgd2lsbFZhbGlkYXRlID0gcy0+d2lsbFZhbGlkYXRlKCk7CiAgICAgICAgICAgICAgICAg
aWYgKHdpbGxWYWxpZGF0ZSAhPSBtX2VsZW1lbnQtPndpbGxWYWxpZGF0ZSgpKQogICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNDEwLDExICsyNDEzLDE3IEBAIGJvb2wgQ1NT
U3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JDaGVja2VyOjoKICAgICAgICAgICAgICAgICByZXR1cm4g
ZSAmJiBlLT5pc09wdGlvbmFsRm9ybUNvbnRyb2woKTsKICAgICAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1JlcXVpcmVkOgogICAgICAgICAgICAgICAgIHJldHVybiBlICYmIGUtPmlz
UmVxdWlyZWRGb3JtQ29udHJvbCgpOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvVmFsaWQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGUgJiYgZS0+d2lsbFZhbGlkYXRlKCkg
JiYgZS0+aXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpOwotICAgICAgICAgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvSW52YWxpZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gZSAmJiBlLT53
aWxsVmFsaWRhdGUoKSAmJiAhZS0+aXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpOwotICAgICAg
ICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2hlY2tlZDogeworICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmFsaWQ6IHsKKyAgICAgICAgICAgICAgICBpZiAoIWUpCisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBlLT5kb2N1
bWVudCgpLT5zZXRDb25zaWRlclZhbGlkaXR5KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGUt
PndpbGxWYWxpZGF0ZSgpICYmIGUtPmlzVmFsaWRGb3JtQ29udHJvbEVsZW1lbnQoKTsKKyAgICAg
ICAgICAgIH0gY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW52YWxpZDogeworICAgICAgICAgICAg
ICAgIGlmICghZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgICAgIGUtPmRvY3VtZW50KCktPnNldENvbnNpZGVyVmFsaWRpdHkoKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gZS0+d2lsbFZhbGlkYXRlKCkgJiYgIWUtPmlzVmFsaWRGb3JtQ29udHJvbEVs
ZW1lbnQoKTsKKyAgICAgICAgICAgIH0gY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2hlY2tlZDog
ewogICAgICAgICAgICAgICAgIGlmICghZSB8fCAhZS0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgLy8gRXZlbiB0aG91
Z2ggV2luSUUgYWxsb3dzIGNoZWNrZWQgYW5kIGluZGV0ZXJtaW5hdGUgdG8gY28tZXhpc3QsIHRo
ZSBDU1Mgc2VsZWN0b3Igc3BlYyBzYXlzIHRoYXQKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDUz
ODA2KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTMs
NiArMzUzLDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgYm9vbCBpcwogICAg
ICwgbV9zdHlsZVNoZWV0cyhTdHlsZVNoZWV0TGlzdDo6Y3JlYXRlKHRoaXMpKQogICAgICwgbV9z
dHlsZVJlY2FsY1RpbWVyKHRoaXMsICZEb2N1bWVudDo6c3R5bGVSZWNhbGNUaW1lckZpcmVkKQog
ICAgICwgbV9mcmFtZUVsZW1lbnRzU2hvdWxkSWdub3JlU2Nyb2xsaW5nKGZhbHNlKQorICAgICwg
bV9jb25zaWRlclZhbGlkaXR5KGZhbHNlKQogICAgICwgbV90aXRsZSgiIikKICAgICAsIG1fcmF3
VGl0bGUoIiIpCiAgICAgLCBtX3RpdGxlU2V0RXhwbGljaXRseShmYWxzZSkKSW5kZXg6IFdlYkNv
cmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAko
cmV2aXNpb24gNTM4MDYpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC05MjgsNiArOTI4LDkgQEAgcHVibGljOgogICAgIHZvaWQgcmVzZXRXTUxQYWdlU3RhdGUo
KTsKICAgICB2b2lkIGluaXRpYWxpemVXTUxQYWdlU3RhdGUoKTsKICNlbmRpZgorICAgIAorICAg
IGJvb2wgY29uc2lkZXJWYWxpZGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fY29uc2lkZXJWYWxpZGl0
eTsgfQorICAgIHZvaWQgc2V0Q29uc2lkZXJWYWxpZGl0eSgpIHsgbV9jb25zaWRlclZhbGlkaXR5
ID0gdHJ1ZTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBib29sIGlzWEhU
TUwsIGJvb2wgaXNIVE1MKTsKQEAgLTEwNjcsNiArMTA3MCw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2lzRE5TUHJlZmV0Y2hFbmFibGVkOwogICAgIGJvb2wgbV9oYXZlRXhwbGljaXRseURpc2Fi
bGVkRE5TUHJlZmV0Y2g7CiAgICAgYm9vbCBtX2ZyYW1lRWxlbWVudHNTaG91bGRJZ25vcmVTY3Jv
bGxpbmc7CisgICAgYm9vbCBtX2NvbnNpZGVyVmFsaWRpdHk7CiAKICAgICBTdHJpbmcgbV90aXRs
ZTsKICAgICBTdHJpbmcgbV9yYXdUaXRsZTsK
</data>
<flag name="review"
          id="29778"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47434</attachid>
            <date>2010-01-26 12:43:07 -0800</date>
            <delta_ts>2010-01-26 17:02:23 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch_1-26-10.txt</filename>
            <type>text/plain</type>
            <size>7283</size>
            <attacher name="Adele Peterson">adele</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1Mzg2MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMTAtMDEtMjYgIEFkZWxlIFBldGVyc29uICA8YWRlbGVAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZp
eCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzcxNjk0NjQ+IFJFR1JFU1NJT04gKHI0NzQ0NCk6IFBMVCBp
cyAxJSBzbG93ZXIgZHVlIHRvIGltcGxlbWVudGF0aW9uIG9mIDp2YWxpZCBhbmQgOmludmFsaWQg
Q1NTIHNlbGVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzQwMjkKKworICAgICAgICBJZiB3ZSBuZXZlciBoaXQgdGhlIHZhbGlkIG9yIGludmFs
aWQgc2VsZWN0b3JzIGZvciBhIHBhcnRpY3VsYXIgZG9jdW1lbnQsIAorICAgICAgICB0aGVuIHdl
J2xsIHNraXAgdGhlIHZhbGlkaXR5IGNoZWNrcyB3aGVuIGRlY2lkaW5nIGFib3V0IHN0eWxlIHNo
YXJpbmcuCisKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09u
ZVNlbGVjdG9yKToKKyAgICAgICAgCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDogKFdlYkNv
cmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y29uc2lkZXJWYWxpZGl0eSk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6c2V0Q29uc2lkZXJWYWxpZGl0eSk6CisKIDIwMTAtMDEtMjUgIERhcmlu
IEZpc2hlciAgPGRhcmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBCcmFk
eSBFaWRzb24uCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gNTM4NTkp
CisrKyBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTAwMiw2ICsxMDAyLDkgQEAgYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpjYW5TaGFyZVN0eWxlV2l0
aAogICAgICAgICAgICAgICAgIGlmIChzLT5pc0RlZmF1bHRCdXR0b25Gb3JGb3JtKCkgIT0gbV9l
bGVtZW50LT5pc0RlZmF1bHRCdXR0b25Gb3JGb3JtKCkpCiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiAoIW1fZWxl
bWVudC0+ZG9jdW1lbnQoKS0+Y29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMoKSkKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgIGJvb2wgd2lsbFZhbGlkYXRlID0gcy0+d2lsbFZhbGlkYXRlKCk7CiAgICAgICAgICAgICAg
ICAgaWYgKHdpbGxWYWxpZGF0ZSAhPSBtX2VsZW1lbnQtPndpbGxWYWxpZGF0ZSgpKQogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0yNDEwLDExICsyNDEzLDE3IEBAIGJvb2wg
Q1NTU3R5bGVTZWxlY3Rvcjo6U2VsZWN0b3JDaGVja2VyOjoKICAgICAgICAgICAgICAgICByZXR1
cm4gZSAmJiBlLT5pc09wdGlvbmFsRm9ybUNvbnRyb2woKTsKICAgICAgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb1JlcXVpcmVkOgogICAgICAgICAgICAgICAgIHJldHVybiBlICYmIGUt
PmlzUmVxdWlyZWRGb3JtQ29udHJvbCgpOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvVmFsaWQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGUgJiYgZS0+d2lsbFZhbGlkYXRl
KCkgJiYgZS0+aXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpOwotICAgICAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvSW52YWxpZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gZSAmJiBl
LT53aWxsVmFsaWRhdGUoKSAmJiAhZS0+aXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpOwotICAg
ICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2hlY2tlZDogeworICAgICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmFsaWQ6IHsKKyAgICAgICAgICAgICAgICBpZiAoIWUp
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICBlLT5k
b2N1bWVudCgpLT5zZXRDb250YWluc1ZhbGlkaXR5U3R5bGVSdWxlcygpOworICAgICAgICAgICAg
ICAgIHJldHVybiBlLT53aWxsVmFsaWRhdGUoKSAmJiBlLT5pc1ZhbGlkRm9ybUNvbnRyb2xFbGVt
ZW50KCk7CisgICAgICAgICAgICB9IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ludmFsaWQ6IHsK
KyAgICAgICAgICAgICAgICBpZiAoIWUpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgICAgICBlLT5kb2N1bWVudCgpLT5zZXRDb250YWluc1ZhbGlkaXR5U3R5
bGVSdWxlcygpOworICAgICAgICAgICAgICAgIHJldHVybiBlLT53aWxsVmFsaWRhdGUoKSAmJiAh
ZS0+aXNWYWxpZEZvcm1Db250cm9sRWxlbWVudCgpOworICAgICAgICAgICAgfSBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9DaGVja2VkOiB7CiAgICAgICAgICAgICAgICAgaWYgKCFlIHx8ICFlLT5p
c0Zvcm1Db250cm9sRWxlbWVudCgpKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICAvLyBFdmVuIHRob3VnaCBXaW5JRSBhbGxvd3MgY2hlY2tlZCBhbmQgaW5kZXRl
cm1pbmF0ZSB0byBjby1leGlzdCwgdGhlIENTUyBzZWxlY3RvciBzcGVjIHNheXMgdGhhdApJbmRl
eDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAkocmV2aXNpb24gNTM4NTkpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM1Myw2ICszNTMsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJh
bWUqIGZyYW1lLCBib29sIGlzCiAgICAgLCBtX3N0eWxlU2hlZXRzKFN0eWxlU2hlZXRMaXN0Ojpj
cmVhdGUodGhpcykpCiAgICAgLCBtX3N0eWxlUmVjYWxjVGltZXIodGhpcywgJkRvY3VtZW50Ojpz
dHlsZVJlY2FsY1RpbWVyRmlyZWQpCiAgICAgLCBtX2ZyYW1lRWxlbWVudHNTaG91bGRJZ25vcmVT
Y3JvbGxpbmcoZmFsc2UpCisgICAgLCBtX2NvbnRhaW5zVmFsaWRpdHlTdHlsZVJ1bGVzKGZhbHNl
KQogICAgICwgbV90aXRsZSgiIikKICAgICAsIG1fcmF3VGl0bGUoIiIpCiAgICAgLCBtX3RpdGxl
U2V0RXhwbGljaXRseShmYWxzZSkKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gNTM4NTkpCisrKyBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05MzEsNiArOTMxLDkgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVzZXRXTUxQYWdlU3RhdGUoKTsKICAgICB2b2lkIGluaXRpYWxpemVX
TUxQYWdlU3RhdGUoKTsKICNlbmRpZgorICAgIAorICAgIGJvb2wgY29udGFpbnNWYWxpZGl0eVN0
eWxlUnVsZXMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRhaW5zVmFsaWRpdHlTdHlsZVJ1bGVzOyB9
CisgICAgdm9pZCBzZXRDb250YWluc1ZhbGlkaXR5U3R5bGVSdWxlcygpIHsgbV9jb250YWluc1Zh
bGlkaXR5U3R5bGVSdWxlcyA9IHRydWU7IH0KIAogcHJvdGVjdGVkOgogICAgIERvY3VtZW50KEZy
YW1lKiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CkBAIC0xMDcwLDYgKzEwNzMsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9pc0ROU1ByZWZldGNoRW5hYmxlZDsKICAgICBib29sIG1faGF2
ZUV4cGxpY2l0bHlEaXNhYmxlZEROU1ByZWZldGNoOwogICAgIGJvb2wgbV9mcmFtZUVsZW1lbnRz
U2hvdWxkSWdub3JlU2Nyb2xsaW5nOworICAgIGJvb2wgbV9jb250YWluc1ZhbGlkaXR5U3R5bGVS
dWxlczsKIAogICAgIFN0cmluZyBtX3RpdGxlOwogICAgIFN0cmluZyBtX3Jhd1RpdGxlOwpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNTM4NjMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wMS0yNiAgQWRlbGUgUGV0ZXJzb24gIDxhZGVs
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdCBmb3IgPHJkYXI6Ly9wcm9ibGVtLzcxNjk0NjQ+IFJFR1JFU1NJT04gKHI0NzQ0
NCk6IFBMVCBpcyAxJSBzbG93ZXIgZHVlIHRvIGltcGxlbWVudGF0aW9uIG9mIDp2YWxpZCBhbmQg
OmludmFsaWQgQ1NTIHNlbGVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzQwMjkKKworICAgICAgICAqIGZhc3QvY3NzL3BzZXVkby12YWxpZC1k
eW5hbWljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvcHNldWRvLXZh
bGlkLWR5bmFtaWMuaHRtbDogQWRkZWQuCisKIDIwMTAtMDEtMjYgIENocmlzIEZsZWl6YWNoICA8
Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBBbm90aGVyIGF0dGVtcHQgdG8gZ2V0IHRo
aXMgdGVzdCB0byBwYXNzIGZvciBHVEsuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1
ZG8tdmFsaWQtZHluYW1pYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvcHNldWRvLXZhbGlkLWR5bmFtaWMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvcHNldWRvLXZhbGlkLWR5bmFtaWMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgaW5w
dXQgZWxlbWVudCB0aGF0IHNoYXJlIHN0eWxlLCBubyBsb25nZXIgc2hhcmUgc3R5bGUgYWZ0ZXIg
dmFsaWRpdHkgcnVsZXMgYXJlIGR5bmFtaWNhbGx5IGFkZGVkLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworIAorUEFTUyBkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0
eWxlKHZbMF0sIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKSBpcyAn
cmdiKDAsIDI1NSwgMCknCitQQVNTIGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5
bGUodlsxXSwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpIGlzICdy
Z2IoMCwgMCwgMjU1KScKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8tdmFsaWQtZHluYW1p
Yy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL3BzZXVkby12YWxpZC1k
eW5hbWljLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9wc2V1ZG8t
dmFsaWQtZHluYW1pYy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgor
PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHls
ZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c3R5bGUgaWQ9InN0eSI+CisgICAgaW5wdXQgeyBiYWNrZ3JvdW5kOiBibHVlOyB9
Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxm
b3JtIG1ldGhvZD0iZ2V0Ij4KKzxpbnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiLz4KKzxp
bnB1dCBuYW1lPSJ2aWN0aW0iIHR5cGU9InRleHQiIHZhbHVlPSJMb3JlbWlwc3VtIiBwYXR0ZXJu
PSJMb3JlbSBpcHN1bSIvPgorPC9mb3JtPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhhdCBpbnB1dCBlbGVtZW50IHRo
YXQgc2hhcmUgc3R5bGUsIG5vIGxvbmdlciBzaGFyZSBzdHlsZSBhZnRlciB2YWxpZGl0eSBydWxl
cyBhcmUgZHluYW1pY2FsbHkgYWRkZWQuIik7CisKK3ZhciBzMSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdzdHknKS5zaGVldDsKK3MxLmluc2VydFJ1bGUoJzp2YWxpZCB7IGJhY2tncm91bmQ6
IGxpbWU7IH0nLCBzMS5jc3NSdWxlcy5sZW5ndGgpOworCit2ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoImlucHV0Iik7CisKK3Nob3VsZEJlKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5n
ZXRDb21wdXRlZFN0eWxlKHZbMF0sIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQt
Y29sb3InKSIsICIncmdiKDAsIDI1NSwgMCknIik7CitzaG91bGRCZSgiZG9jdW1lbnQuZGVmYXVs
dFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSh2WzFdLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdiYWNr
Z3JvdW5kLWNvbG9yJykiLCAiJ3JnYigwLCAwLCAyNTUpJyIpOworCit2YXIgc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="29868"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>