<?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>32372</bug_id>
          
          <creation_ts>2009-12-10 03:59:12 -0800</creation_ts>
          <short_desc>Unify origin sandbox flag with m_noAccess in SecurityOrigin</short_desc>
          <delta_ts>2010-01-10 00:10:09 -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>Frames</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrik Persson">patrik.j.persson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>170388</commentid>
    <comment_count>0</comment_count>
    <who name="Patrik Persson">patrik.j.persson</who>
    <bug_when>2009-12-10 03:59:12 -0800</bug_when>
    <thetext>This is a followup to bug 21288, which concerned the implementation of
the HTML5 iframe sandbox attribute.

One of the locations where sandbox flags are managed is
SecurityOrigin.  Prior to the sandbox implementation, there was
already an attribute &apos;m_noAccess&apos; whose meaning was very similar to
that of the origin sandbox flag &apos;SandboxOrigin&apos; in m_sandboxFlags.
Currently, both flags are maintained and checked separately within the
SecurityOrigin.

We propose to unify m_noAccess with SandboxOrigin.  There was some
discussion on this in comments 8, 10 and 14 for bug 21288:

https://bugs.webkit.org/show_bug.cgi?id=21288#c8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178961</commentid>
    <comment_count>1</comment_count>
      <attachid>46200</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-09 00:35:19 -0800</bug_when>
    <thetext>Created attachment 46200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178964</commentid>
    <comment_count>2</comment_count>
      <attachid>46201</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-09 00:48:50 -0800</bug_when>
    <thetext>Created attachment 46201
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179097</commentid>
    <comment_count>3</comment_count>
      <attachid>46201</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-09 18:20:46 -0800</bug_when>
    <thetext>Comment on attachment 46201
Patch

&gt; +    // This method exists because we treat data URLs as havine a unique origin,

Typo: &quot;havine&quot;.

&gt; +    // contrary to the current (9/19/2009) draft of the HTML5 specification.
&gt; +    // We still want to let folks paint data URLs onto untainted canvases, so
&gt; +    // we special case data URLs below.  If we change to match HTML5 w.r.t.
&gt; +    // data URL security, then we can remove this method in favor of
&gt; +    // !canRequest.

This is a member function, and C++ does not have methods, so I suggest we call it a &quot;function&quot; in this comment.

&gt;      if (url.protocolIs(&quot;data&quot;))
&gt;          return false;
&gt;  
&gt; +void SecurityOrigin::setSandboxFlags(SandboxFlags flags)
&gt; +{
&gt; +    m_sandboxFlags = flags;
&gt; +    if (isSandboxed(SandboxOrigin))
&gt; +        m_isUnique = true;
&gt; +}

This can correctly handle tightening of sandbox flags, but not loosening of them. At the very least we should be asserting that the origin restriction is never loosened here, because we then would have to set m_isUnique to shouldTreatURLSchemeAsNoAccess(m_protocol).

&gt; -    // Sandboxing status as determined by the frame.

Why did you remove this comment. I assume you had a good reason, but I don&apos;t know what it is.

&gt; -    void setSandboxFlags(SandboxFlags flags) { m_sandboxFlags = flags; }
&gt; +    void setSandboxFlags(SandboxFlags flags);

I suggest removing the argument name here.

&gt; +    // The origin is a globally unique identifier assigned when the Document is
&gt; +    // created.  http://www.whatwg.org/specs/web-apps/current-work/#sandboxOrigin
&gt; +    //
&gt; +    // There&apos;s a subtle difference between a unique origin and an origin that
&gt; +    // has the SandboxOrigin flag set.  The later implies the former, and, in
&gt; +    // addition, the SandboxOrigin flag is inherited by iframes.
&gt; +    bool isUnique() const { return m_isUnique; }
&gt; +

Periods, not two.

I think you mean &quot;the latter&quot; rather than &quot;the later&quot;.

&gt; +    // When using the string value, it&apos;s important to remember that it might be
&gt; +    // &quot;null&quot;.  This happens when this SecurityOrigin is unique For example,

Missing period after &quot;unique&quot;.

&gt; -    bool m_noAccess;
&gt; -    bool m_universalAccess;
&gt; -    bool m_domainWasSetInDOM;
&gt; -    bool m_canLoadLocalResources;
&gt; +    bool m_isUnique : 1;
&gt; +    bool m_universalAccess : 1;
&gt; +    bool m_domainWasSetInDOM : 1;
&gt; +    bool m_canLoadLocalResources : 1;

Why the bit fields here? Are there enough SecurityOrigin objects that this has a significant memory cost we want to reduce? Does this make code smaller or faster? I think we don&apos;t have good a reason to use them here.

review- because I&apos;m sure you&apos;ll want to fix some of these</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179098</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-09 18:22:48 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Periods, not two.

I meant to say, &quot;We use one space after periods, not two.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179103</commentid>
    <comment_count>5</comment_count>
      <attachid>46228</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-09 18:51:04 -0800</bug_when>
    <thetext>Created attachment 46228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179104</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-09 18:54:44 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Typo: &quot;havine&quot;.

Fixed.

&gt; This is a member function, and C++ does not have methods, so I suggest we call
&gt; it a &quot;function&quot; in this comment.

Fixed all occurrences in this file.

&gt; This can correctly handle tightening of sandbox flags, but not loosening of
&gt; them.

I added a comment to the code explaining why the code is doing this.  There&apos;s a bug here, but it&apos;s the opposite of what you think.  I&apos;d like to fix that in the &quot;defensive initialization&quot; bug, if that works for you.

&gt; Why did you remove this comment. I assume you had a good reason, but I don&apos;t
&gt; know what it is.

The comment wasn&apos;t really adding any value.  It&apos;s not really intrinsic in the notion of these sandbox flags what the current API is for controlling them.

&gt; I suggest removing the argument name here.

Fixed.

&gt; Periods, not two.

Fixed all occurrences in this file.

&gt; I think you mean &quot;the latter&quot; rather than &quot;the later&quot;.

Fixed.

&gt; Missing period after &quot;unique&quot;.

Fixed.

&gt; Why the bit fields here?

I&apos;ve removed them.  I don&apos;t think they matter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179105</commentid>
    <comment_count>7</comment_count>
      <attachid>46228</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-09 18:55:54 -0800</bug_when>
    <thetext>Comment on attachment 46228
Patch

&gt; +    // FIXME: Our current behavior here is buggy because we need to
&gt; +    //        distinguish between the sandbox flags at creation and the
&gt; +    //        sandbox flags that might come about later.

Can we construct a test case to demonstrate this?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179106</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-09 19:01:44 -0800</bug_when>
    <thetext>&gt; Can we construct a test case to demonstrate this?

Yes, we can.  I was going to write one, but I&apos;m off to dinner.  I&apos;ll write one soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179122</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-10 00:10:09 -0800</bug_when>
    <thetext>Committed r53049: &lt;http://trac.webkit.org/changeset/53049&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46200</attachid>
            <date>2010-01-09 00:35:19 -0800</date>
            <delta_ts>2010-01-09 00:48:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32372-20100109003518.patch</filename>
            <type>text/plain</type>
            <size>12390</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTQxYjc0YS4uMzY0NDEzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wMS0wOSAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVuaWZ5IG9yaWdpbiBzYW5kYm94IGZsYWcgd2l0aCBtX25vQWNjZXNzIGlu
IFNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMjM3MgorCisgICAgICAgIEl0IHR1cm5zIG91dCB0aGUgU2FuZGJveE9yaWdpbiBi
aXQgaXMgc2xpZ2h0bHkgZGlmZmVyZW50IHRoYW4gdGhlCisgICAgICAgIHVuaXF1ZSBvcmlnaW4g
Y29uY2VwdCBiZWNhdXNlIHRoZSBzYW5kYm94IGJpdCBpcyBpbmhlcml0ZWQgYnkgaWZyYW1lcy4K
KyAgICAgICAgVGhlc2UgY29uY2VwdHMgYXJlIHNlcGFyYXRlIGluIHRoZSBzcGVjLCBzbyBJIHRo
aW5rIGl0J3Mgb2sgdG8ga2VlcAorICAgICAgICB0aGVtIHNlcGFyYXRlIGluIHRoZSBpbXBsZW1l
bnRhdGlvbiBhcyB3ZWxsLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlz
IG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y29va2llKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpzZXRDb29raWUpOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRy
b2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKToKKyAg
ICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjaGVt
ZXNXaXRoVW5pcXVlT3JpZ2lucyk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6
U2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNhbkFj
Y2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6dGFpbnRzQ2FudmFzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpzZXRTYW5kYm94RmxhZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luOjpyZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW46OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2Vzcyk6CisgICAg
ICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5oOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW46OmNhbkFjY2Vzc0RhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpjYW5BY2Nlc3NTdG9yYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpjYW5BY2Nlc3NDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpp
c1VuaXF1ZSk6CisKIDIwMTAtMDEtMDggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLiAgRml4IG5hbWVzcGFjZSBpbmRlbnQgZm9yIFNlY3VyaXR5
T3JpZ2luLmguCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYTYxNmUyMS4uOWFjMDlkMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
MzA2OCw3ICszMDY4LDcgQEAgU3RyaW5nIERvY3VtZW50Ojpjb29raWUoRXhjZXB0aW9uQ29kZSYg
ZWMpIGNvbnN0CiAgICAgLy8gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIG9uIGdldHRpbmcg
aWYgdGhlIERvY3VtZW50IGhhcyBubwogICAgIC8vIGJyb3dzaW5nIGNvbnRleHQuCiAKLSAgICBp
ZiAoc2VjdXJpdHlPcmlnaW4oKS0+aXNTYW5kYm94ZWQoU2FuZGJveE9yaWdpbikpIHsKKyAgICBp
ZiAoc2VjdXJpdHlPcmlnaW4oKS0+Y2FuQWNjZXNzQ29va2llcygpKSB7CiAgICAgICAgIGVjID0g
U0VDVVJJVFlfRVJSOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQpAQCAtMzA4OSw3
ICszMDg5LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0Q29va2llKGNvbnN0IFN0cmluZyYgdmFsdWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIC8vIElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBv
biBzZXR0aW5nIGlmIHRoZSBEb2N1bWVudCBoYXMgbm8KICAgICAvLyBicm93c2luZyBjb250ZXh0
LgogCi0gICAgaWYgKHNlY3VyaXR5T3JpZ2luKCktPmlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4p
KSB7CisgICAgaWYgKHNlY3VyaXR5T3JpZ2luKCktPmNhbkFjY2Vzc0Nvb2tpZXMoKSkgewogICAg
ICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgYi9XZWJDb3Jl
L2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCmluZGV4IDdhMjEyODAuLjAxNTk2
ZTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5j
cHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcApAQCAt
MTAwLDggKzEwMCw3IEBAIGJvb2wgcGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGluY2x1ZGVDcmVkCiAgICAgaWYgKGFjY2Vzc0Nv
bnRyb2xPcmlnaW5TdHJpbmcgPT0gIioiICYmICFpbmNsdWRlQ3JlZGVudGlhbHMpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCi0gICAgLy8gQSBzYW5kYm94ZWQgZnJhbWUgaGFzIGEgdW5pcXVlIG9y
aWdpbiAoZm9yIHNhbWUtb3JpZ2luIHB1cnBvc2VzKS4KLSAgICBpZiAoc2VjdXJpdHlPcmlnaW4t
PmlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKQorICAgIGlmIChzZWN1cml0eU9yaWdpbi0+aXNV
bmlxdWUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiBhY2Nlc3NDb250cm9sT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJp
bmcoYWNjZXNzQ29udHJvbE9yaWdpblN0cmluZyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2Uv
U2VjdXJpdHlPcmlnaW4uY3BwIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcAppbmRl
eCBmNTNkYmYxLi44M2Q2NWZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmln
aW4uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKQEAgLTY1LDIyICs2
NSwyNCBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgbG9jYWxTY2hlbWVzKCkKICAgICByZXR1cm4g
bG9jYWxTY2hlbWVzOwogfQogCi1zdGF0aWMgVVJMU2NoZW1lc01hcCYgbm9BY2Nlc3NTY2hlbWVz
KCkKK3N0YXRpYyBVUkxTY2hlbWVzTWFwJiBzY2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoVVJMU2NoZW1lc01hcCwgbm9BY2Nlc3NTY2hlbWVzLCAo
KSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBzY2hlbWVzV2l0aFVu
aXF1ZU9yaWdpbnMsICgpKTsKIAotICAgIGlmIChub0FjY2Vzc1NjaGVtZXMuaXNFbXB0eSgpKQot
ICAgICAgICBub0FjY2Vzc1NjaGVtZXMuYWRkKCJkYXRhIik7CisgICAgLy8gVGhpcyBpcyBhIHdp
bGxmdWwgdmlvbGF0aW9uIG9mIEhUTUw1LgorICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4ODUKKyAgICBpZiAoc2NoZW1lc1dpdGhVbmlxdWVPcmln
aW5zLmlzRW1wdHkoKSkKKyAgICAgICAgc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zLmFkZCgiZGF0
YSIpOwogCi0gICAgcmV0dXJuIG5vQWNjZXNzU2NoZW1lczsKKyAgICByZXR1cm4gc2NoZW1lc1dp
dGhVbmlxdWVPcmlnaW5zOwogfQogCiBTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4oY29u
c3QgS1VSTCYgdXJsKQotICAgIDogbV9wcm90b2NvbCh1cmwucHJvdG9jb2woKS5pc051bGwoKSA/
ICIiIDogdXJsLnByb3RvY29sKCkubG93ZXIoKSkKKyAgICA6IG1fc2FuZGJveEZsYWdzKFNhbmRi
b3hOb25lKQorICAgICwgbV9wcm90b2NvbCh1cmwucHJvdG9jb2woKS5pc051bGwoKSA/ICIiIDog
dXJsLnByb3RvY29sKCkubG93ZXIoKSkKICAgICAsIG1faG9zdCh1cmwuaG9zdCgpLmlzTnVsbCgp
ID8gIiIgOiB1cmwuaG9zdCgpLmxvd2VyKCkpCiAgICAgLCBtX3BvcnQodXJsLnBvcnQoKSkKLSAg
ICAsIG1fc2FuZGJveEZsYWdzKFNhbmRib3hOb25lKQotICAgICwgbV9ub0FjY2VzcyhmYWxzZSkK
KyAgICAsIG1faXNVbmlxdWUoZmFsc2UpCiAgICAgLCBtX3VuaXZlcnNhbEFjY2VzcyhmYWxzZSkK
ICAgICAsIG1fZG9tYWluV2FzU2V0SW5ET00oZmFsc2UpCiB7CkBAIC05MCw3ICs5MiwxMSBAQCBT
ZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4oY29uc3QgS1VSTCYgdXJsKQogCiAgICAgLy8g
U29tZSBVUkxzIGFyZSBub3QgYWxsb3dlZCBhY2Nlc3MgdG8gYW55dGhpbmcgb3RoZXIgdGhhbiB0
aGVtc2VsdmVzLgogICAgIGlmIChzaG91bGRUcmVhdFVSTFNjaGVtZUFzTm9BY2Nlc3MobV9wcm90
b2NvbCkpCi0gICAgICAgIG1fbm9BY2Nlc3MgPSB0cnVlOworICAgICAgICBtX2lzVW5pcXVlID0g
dHJ1ZTsKKworICAgIC8vIElmIHRoaXMgQVNTRVJUIGJlY29tZXMgZmFsc2UgaW4gdGhlIGZ1dHVy
ZSwgcGxlYXNlIGNvbnNpZGVyIHRoZSBpbXBhY3QKKyAgICAvLyBvZiBtX3NhbmRveEZsYWdzIG9u
IG1faXNVbmlxdWUuCisgICAgQVNTRVJUKG1fc2FuZGJveEZsYWdzID09IFNhbmRib3hOb25lKTsK
IAogICAgIC8vIGRvY3VtZW50LmRvbWFpbiBzdGFydHMgYXMgbV9ob3N0LCBidXQgY2FuIGJlIHNl
dCBieSB0aGUgRE9NLgogICAgIG1fZG9tYWluID0gbV9ob3N0OwpAQCAtMTAwLDcgKzEwNiw3IEBA
IFNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbihjb25zdCBLVVJMJiB1cmwpCiAgICAgaWYg
KG1fY2FuTG9hZExvY2FsUmVzb3VyY2VzKSB7CiAgICAgICAgIC8vIERpcmVjdG9yaWVzIHNob3Vs
ZCBuZXZlciBiZSByZWFkYWJsZS4KICAgICAgICAgaWYgKCF1cmwuaGFzUGF0aCgpIHx8IHVybC5w
YXRoKCkuZW5kc1dpdGgoIi8iKSkKLSAgICAgICAgICAgIG1fbm9BY2Nlc3MgPSB0cnVlOworICAg
ICAgICAgICAgbV9pc1VuaXF1ZSA9IHRydWU7CiAgICAgfQogCiAgICAgaWYgKGlzRGVmYXVsdFBv
cnRGb3JQcm90b2NvbChtX3BvcnQsIG1fcHJvdG9jb2wpKQpAQCAtMTA4LDEyICsxMTQsMTIgQEAg
U2VjdXJpdHlPcmlnaW46OlNlY3VyaXR5T3JpZ2luKGNvbnN0IEtVUkwmIHVybCkKIH0KIAogU2Vj
dXJpdHlPcmlnaW46OlNlY3VyaXR5T3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvdGhlcikK
LSAgICA6IG1fcHJvdG9jb2wob3RoZXItPm1fcHJvdG9jb2wudGhyZWFkc2FmZUNvcHkoKSkKKyAg
ICA6IG1fc2FuZGJveEZsYWdzKG90aGVyLT5tX3NhbmRib3hGbGFncykKKyAgICAsIG1fcHJvdG9j
b2wob3RoZXItPm1fcHJvdG9jb2wudGhyZWFkc2FmZUNvcHkoKSkKICAgICAsIG1faG9zdChvdGhl
ci0+bV9ob3N0LnRocmVhZHNhZmVDb3B5KCkpCiAgICAgLCBtX2RvbWFpbihvdGhlci0+bV9kb21h
aW4udGhyZWFkc2FmZUNvcHkoKSkKICAgICAsIG1fcG9ydChvdGhlci0+bV9wb3J0KQotICAgICwg
bV9zYW5kYm94RmxhZ3Mob3RoZXItPm1fc2FuZGJveEZsYWdzKQotICAgICwgbV9ub0FjY2Vzcyhv
dGhlci0+bV9ub0FjY2VzcykKKyAgICAsIG1faXNVbmlxdWUob3RoZXItPm1faXNVbmlxdWUpCiAg
ICAgLCBtX3VuaXZlcnNhbEFjY2VzcyhvdGhlci0+bV91bml2ZXJzYWxBY2Nlc3MpCiAgICAgLCBt
X2RvbWFpbldhc1NldEluRE9NKG90aGVyLT5tX2RvbWFpbldhc1NldEluRE9NKQogICAgICwgbV9j
YW5Mb2FkTG9jYWxSZXNvdXJjZXMob3RoZXItPm1fY2FuTG9hZExvY2FsUmVzb3VyY2VzKQpAQCAt
MTUzLDcgKzE1OSw3IEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46OmNhbkFjY2Vzcyhjb25zdCBTZWN1
cml0eU9yaWdpbiogb3RoZXIpIGNvbnN0CiAgICAgaWYgKG1fdW5pdmVyc2FsQWNjZXNzKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChtX25vQWNjZXNzIHx8IG90aGVyLT5tX25vQWNj
ZXNzIHx8IGlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pIHx8IG90aGVyLT5pc1NhbmRib3hlZChT
YW5kYm94T3JpZ2luKSkKKyAgICBpZiAoaXNVbmlxdWUoKSB8fCBvdGhlci0+aXNVbmlxdWUoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gSGVyZSBhcmUgdHdvIGNhc2VzIHdoZXJl
IHdlIHNob3VsZCBwZXJtaXQgYWNjZXNzOgpAQCAtMTk0LDExICsyMDAsMTEgQEAgYm9vbCBTZWN1
cml0eU9yaWdpbjo6Y2FuUmVxdWVzdChjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiAgICAgaWYgKG1f
dW5pdmVyc2FsQWNjZXNzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChtX25vQWNj
ZXNzIHx8IGlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKQorICAgIGlmIChpc1VuaXF1ZSgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRhcmdl
dE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKTsKLSAgICBpZiAodGFyZ2V0T3Jp
Z2luLT5tX25vQWNjZXNzKQorICAgIGlmICh0YXJnZXRPcmlnaW4tPmlzVW5pcXVlKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFdlIGNhbGwgaXNTYW1lU2NoZW1lSG9zdFBvcnQg
aGVyZSBpbnN0ZWFkIG9mIGNhbkFjY2VzcyBiZWNhdXNlIHdlIHdhbnQKQEAgLTIyMSwxMSArMjI3
LDEyIEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46OnRhaW50c0NhbnZhcyhjb25zdCBLVVJMJiB1cmwp
IGNvbnN0CiAgICAgaWYgKGNhblJlcXVlc3QodXJsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgLy8gVGhpcyBtZXRob2QgZXhpc3RzIGJlY2F1c2Ugd2UgdHJlYXQgZGF0YSBVUkxzIGFz
IG5vQWNjZXNzLCBjb250cmFyeQotICAgIC8vIHRvIHRoZSBjdXJyZW50ICg5LzE5LzIwMDkpIGRy
YWZ0IG9mIHRoZSBIVE1MNSBzcGVjaWZpY2F0aW9uLiAgV2Ugc3RpbGwKLSAgICAvLyB3YW50IHRv
IGxldCBmb2xrcyBwYWludCBkYXRhIFVSTHMgb250byB1bnRhaW50ZWQgY2FudmFzZXMsIHNvIHdl
IHNwZWNpYWwKLSAgICAvLyBjYXNlIGRhdGEgVVJMcyBiZWxvdy4gIElmIHdlIGNoYW5nZSB0byBt
YXRjaCBIVE1MNSB3LnIudC4gZGF0YSBVUkwKLSAgICAvLyBzZWN1cml0eSwgdGhlbiB3ZSBjYW4g
cmVtb3ZlIHRoaXMgbWV0aG9kIGluIGZhdm9yIG9mICFjYW5SZXF1ZXN0LgorICAgIC8vIFRoaXMg
bWV0aG9kIGV4aXN0cyBiZWNhdXNlIHdlIHRyZWF0IGRhdGEgVVJMcyBhcyBoYXZpbmUgYSB1bmlx
dWUgb3JpZ2luLAorICAgIC8vIGNvbnRyYXJ5IHRvIHRoZSBjdXJyZW50ICg5LzE5LzIwMDkpIGRy
YWZ0IG9mIHRoZSBIVE1MNSBzcGVjaWZpY2F0aW9uLgorICAgIC8vIFdlIHN0aWxsIHdhbnQgdG8g
bGV0IGZvbGtzIHBhaW50IGRhdGEgVVJMcyBvbnRvIHVudGFpbnRlZCBjYW52YXNlcywgc28KKyAg
ICAvLyB3ZSBzcGVjaWFsIGNhc2UgZGF0YSBVUkxzIGJlbG93LiAgSWYgd2UgY2hhbmdlIHRvIG1h
dGNoIEhUTUw1IHcuci50LgorICAgIC8vIGRhdGEgVVJMIHNlY3VyaXR5LCB0aGVuIHdlIGNhbiBy
ZW1vdmUgdGhpcyBtZXRob2QgaW4gZmF2b3Igb2YKKyAgICAvLyAhY2FuUmVxdWVzdC4KICAgICBp
ZiAodXJsLnByb3RvY29sSXMoImRhdGEiKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0y
NjIsNiArMjY5LDEzIEBAIHZvaWQgU2VjdXJpdHlPcmlnaW46OmdyYW50VW5pdmVyc2FsQWNjZXNz
KCkKICAgICBtX3VuaXZlcnNhbEFjY2VzcyA9IHRydWU7CiB9CiAKK3ZvaWQgU2VjdXJpdHlPcmln
aW46OnNldFNhbmRib3hGbGFncyhTYW5kYm94RmxhZ3MgZmxhZ3MpCit7CisgICAgbV9zYW5kYm94
RmxhZ3MgPSBmbGFnczsKKyAgICBpZiAoaXNTYW5kYm94ZWQoU2FuZGJveE9yaWdpbikpCisgICAg
ICAgIG1faXNVbmlxdWUgPSB0cnVlOworfQorCiBib29sIFNlY3VyaXR5T3JpZ2luOjppc0xvY2Fs
KCkgY29uc3QKIHsKICAgICByZXR1cm4gc2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKG1fcHJv
dG9jb2wpOwpAQCAtMjgyLDcgKzI5Niw3IEBAIFN0cmluZyBTZWN1cml0eU9yaWdpbjo6dG9TdHJp
bmcoKSBjb25zdAogICAgIGlmIChpc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiAibnVsbCI7CiAK
LSAgICBpZiAobV9ub0FjY2VzcyB8fCBpc1NhbmRib3hlZChTYW5kYm94T3JpZ2luKSkKKyAgICBp
ZiAoaXNVbmlxdWUoKSkKICAgICAgICAgcmV0dXJuICJudWxsIjsKIAogICAgIGlmIChtX3Byb3Rv
Y29sID09ICJmaWxlIikKQEAgLTQ0MCwxMiArNDU0LDEyIEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46
OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmIHNjaGVtZSkKIAogdm9p
ZCBTZWN1cml0eU9yaWdpbjo6cmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNjZXNzKGNvbnN0IFN0cmlu
ZyYgc2NoZW1lKQogewotICAgIG5vQWNjZXNzU2NoZW1lcygpLmFkZChzY2hlbWUpOworICAgIHNj
aGVtZXNXaXRoVW5pcXVlT3JpZ2lucygpLmFkZChzY2hlbWUpOwogfQogCiBib29sIFNlY3VyaXR5
T3JpZ2luOjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTm9BY2Nlc3MoY29uc3QgU3RyaW5nJiBzY2hl
bWUpCiB7Ci0gICAgcmV0dXJuIG5vQWNjZXNzU2NoZW1lcygpLmNvbnRhaW5zKHNjaGVtZSk7Cisg
ICAgcmV0dXJuIHNjaGVtZXNXaXRoVW5pcXVlT3JpZ2lucygpLmNvbnRhaW5zKHNjaGVtZSk7CiB9
CiAKIGJvb2wgU2VjdXJpdHlPcmlnaW46OnNob3VsZEhpZGVSZWZlcnJlcihjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlPcmlnaW4uaCBiL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCmluZGV4IDY2NzNh
YzEuLjczZTgxMjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCisr
KyBiL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCkBAIC0xMTEsMTIgKzExMSwxMiBAQCBw
dWJsaWM6CiAgICAgLy8gV0FSTklORzogVGhpcyBpcyBhbiBleHRyZW1lbHkgcG93ZXJmdWwgYWJp
bGl0eS4gIFVzZSB3aXRoIGNhdXRpb24hCiAgICAgdm9pZCBncmFudFVuaXZlcnNhbEFjY2Vzcygp
OwogCi0gICAgLy8gU2FuZGJveGluZyBzdGF0dXMgYXMgZGV0ZXJtaW5lZCBieSB0aGUgZnJhbWUu
Ci0gICAgdm9pZCBzZXRTYW5kYm94RmxhZ3MoU2FuZGJveEZsYWdzIGZsYWdzKSB7IG1fc2FuZGJv
eEZsYWdzID0gZmxhZ3M7IH0KKyAgICB2b2lkIHNldFNhbmRib3hGbGFncyhTYW5kYm94RmxhZ3Mg
ZmxhZ3MpOwogICAgIGJvb2wgaXNTYW5kYm94ZWQoU2FuZGJveEZsYWdzIG1hc2spIGNvbnN0IHsg
cmV0dXJuIG1fc2FuZGJveEZsYWdzICYgbWFzazsgfQogCi0gICAgYm9vbCBjYW5BY2Nlc3NEYXRh
YmFzZSgpIGNvbnN0IHsgcmV0dXJuICFpc1NhbmRib3hlZChTYW5kYm94T3JpZ2luKTsgfQotICAg
IGJvb2wgY2FuQWNjZXNzU3RvcmFnZSgpIGNvbnN0IHsgcmV0dXJuICFpc1NhbmRib3hlZChTYW5k
Ym94T3JpZ2luKTsgfQorICAgIGJvb2wgY2FuQWNjZXNzRGF0YWJhc2UoKSBjb25zdCB7IHJldHVy
biAhaXNVbmlxdWUoKTsgfQorICAgIGJvb2wgY2FuQWNjZXNzU3RvcmFnZSgpIGNvbnN0IHsgcmV0
dXJuICFpc1VuaXF1ZSgpOyB9CisgICAgYm9vbCBjYW5BY2Nlc3NDb29raWVzKCkgY29uc3QgeyBy
ZXR1cm4gIWlzVW5pcXVlKCk7IH0KIAogICAgIGJvb2wgaXNTZWN1cmVUcmFuc2l0aW9uVG8oY29u
c3QgS1VSTCYpIGNvbnN0OwogCkBAIC0xMjgsMTcgKzEyOCwyNCBAQCBwdWJsaWM6CiAgICAgLy8g
VGhlIGVtcHR5IFNlY3VyaXR5T3JpZ2luIGlzIHRoZSBsZWFzdCBwcml2aWxlZ2VkIFNlY3VyaXR5
T3JpZ2luLgogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCisgICAgLy8gVGhlIG9yaWdpbiBp
cyBhIGdsb2JhbGx5IHVuaXF1ZSBpZGVudGlmaWVyIGFzc2lnbmVkIHdoZW4gdGhlIERvY3VtZW50
IGlzCisgICAgLy8gY3JlYXRlZC4gIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBw
cy9jdXJyZW50LXdvcmsvI3NhbmRib3hPcmlnaW4KKyAgICAvLworICAgIC8vIFRoZXJlJ3MgYSBz
dWJ0bGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgdW5pcXVlIG9yaWdpbiBhbmQgYW4gb3JpZ2luIHRo
YXQKKyAgICAvLyBoYXMgdGhlIFNhbmRib3hPcmlnaW4gZmxhZyBzZXQuICBUaGUgbGF0ZXIgaW1w
bGllcyB0aGUgZm9ybWVyLCBhbmQsIGluCisgICAgLy8gYWRkaXRpb24sIHRoZSBTYW5kYm94T3Jp
Z2luIGZsYWcgaXMgaW5oZXJpdGVkIGJ5IGlmcmFtZXMuCisgICAgYm9vbCBpc1VuaXF1ZSgpIGNv
bnN0IHsgcmV0dXJuIG1faXNVbmlxdWU7IH0KKwogICAgIC8vIENvbnZlcnQgdGhpcyBTZWN1cml0
eU9yaWdpbiBpbnRvIGEgc3RyaW5nLiAgVGhlIHN0cmluZwogICAgIC8vIHJlcHJlc2VudGF0aW9u
IG9mIGEgU2VjdXJpdHlPcmlnaW4gaXMgc2ltaWxhciB0byBhIFVSTCwgZXhjZXB0IGl0CiAgICAg
Ly8gbGFja3MgYSBwYXRoIGNvbXBvbmVudC4gIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gZG9l
cyBub3QgZW5jb2RlCiAgICAgLy8gdGhlIHZhbHVlIG9mIHRoZSBTZWN1cml0eU9yaWdpbidzIGRv
bWFpbiBwcm9wZXJ0eS4KICAgICAvLwotICAgIC8vIFdoZW4gdXNpbmcgdGhlIHN0cmluZyB2YWx1
ZSwgaXQncyBpbXBvcnRhbnQgdG8gcmVtZW1iZXIgdGhhdCBpdAotICAgIC8vIG1pZ2h0IGJlICJu
dWxsIi4gIFRoaXMgaGFwcGVucyB3aGVuIHRoaXMgU2VjdXJpdHlPcmlnaW4gaGFzCi0gICAgLy8g
bm9BY2Nlc3MgdG8gb3RoZXIgU2VjdXJpdHlPcmlnaW5zLiAgRm9yIGV4YW1wbGUsIHRoaXMgU2Vj
dXJpdHlPcmlnaW4KLSAgICAvLyBtaWdodCBoYXZlIGNvbWUgZnJvbSBhIGRhdGEgVVJMLCB0aGUg
U2VjdXJpdHlPcmlnaW4gbWlnaHQgYmUgZW1wdHksCi0gICAgLy8gb3Igd2UgbWlnaHQgaGF2ZSBl
eHBsaWNpdGx5IGRlY2lkZWQgdGhhdCB3ZQotICAgIC8vIHNob3VsZFRyZWF0VVJMU2NoZW1lQXNO
b0FjY2Vzcy4KKyAgICAvLyBXaGVuIHVzaW5nIHRoZSBzdHJpbmcgdmFsdWUsIGl0J3MgaW1wb3J0
YW50IHRvIHJlbWVtYmVyIHRoYXQgaXQgbWlnaHQgYmUKKyAgICAvLyAibnVsbCIuICBUaGlzIGhh
cHBlbnMgd2hlbiB0aGlzIFNlY3VyaXR5T3JpZ2luIGlzIHVuaXF1ZSBGb3IgZXhhbXBsZSwKKyAg
ICAvLyB0aGlzIFNlY3VyaXR5T3JpZ2luIG1pZ2h0IGhhdmUgY29tZSBmcm9tIGEgc2FuZGJveGVk
IGlmcmFtZSwgdGhlCisgICAgLy8gU2VjdXJpdHlPcmlnaW4gbWlnaHQgYmUgZW1wdHksIG9yIHdl
IG1pZ2h0IGhhdmUgZXhwbGljaXRseSBkZWNpZGVkIHRoYXQKKyAgICAvLyB3ZSBzaG91bGRUcmVh
dFVSTFNjaGVtZUFzTm9BY2Nlc3MuCiAgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3Q7CiAKICAg
ICAvLyBTZXJpYWxpemUgdGhlIHNlY3VyaXR5IG9yaWdpbiB0byBhIHN0cmluZyB0aGF0IGNvdWxk
IGJlIHVzZWQgYXMgcGFydCBvZgpAQCAtMTgzLDE1ICsxOTAsMTUgQEAgcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBTZWN1cml0eU9yaWdpbihjb25zdCBLVVJMJik7CiAgICAgZXhwbGljaXQgU2VjdXJp
dHlPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qKTsKIAorICAgIFNhbmRib3hGbGFncyBtX3Nh
bmRib3hGbGFnczsKICAgICBTdHJpbmcgbV9wcm90b2NvbDsKICAgICBTdHJpbmcgbV9ob3N0Owog
ICAgIFN0cmluZyBtX2RvbWFpbjsKICAgICB1bnNpZ25lZCBzaG9ydCBtX3BvcnQ7Ci0gICAgU2Fu
ZGJveEZsYWdzIG1fc2FuZGJveEZsYWdzOwotICAgIGJvb2wgbV9ub0FjY2VzczsKLSAgICBib29s
IG1fdW5pdmVyc2FsQWNjZXNzOwotICAgIGJvb2wgbV9kb21haW5XYXNTZXRJbkRPTTsKLSAgICBi
b29sIG1fY2FuTG9hZExvY2FsUmVzb3VyY2VzOworICAgIGJvb2wgbV9pc1VuaXF1ZSA6IDE7Cisg
ICAgYm9vbCBtX3VuaXZlcnNhbEFjY2VzcyA6IDE7CisgICAgYm9vbCBtX2RvbWFpbldhc1NldElu
RE9NIDogMTsKKyAgICBib29sIG1fY2FuTG9hZExvY2FsUmVzb3VyY2VzIDogMTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46201</attachid>
            <date>2010-01-09 00:48:50 -0800</date>
            <delta_ts>2010-01-09 18:50:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32372-20100109004849.patch</filename>
            <type>text/plain</type>
            <size>12392</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTQxYjc0YS4uMzY0NDEzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wMS0wOSAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVuaWZ5IG9yaWdpbiBzYW5kYm94IGZsYWcgd2l0aCBtX25vQWNjZXNzIGlu
IFNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMjM3MgorCisgICAgICAgIEl0IHR1cm5zIG91dCB0aGUgU2FuZGJveE9yaWdpbiBi
aXQgaXMgc2xpZ2h0bHkgZGlmZmVyZW50IHRoYW4gdGhlCisgICAgICAgIHVuaXF1ZSBvcmlnaW4g
Y29uY2VwdCBiZWNhdXNlIHRoZSBzYW5kYm94IGJpdCBpcyBpbmhlcml0ZWQgYnkgaWZyYW1lcy4K
KyAgICAgICAgVGhlc2UgY29uY2VwdHMgYXJlIHNlcGFyYXRlIGluIHRoZSBzcGVjLCBzbyBJIHRo
aW5rIGl0J3Mgb2sgdG8ga2VlcAorICAgICAgICB0aGVtIHNlcGFyYXRlIGluIHRoZSBpbXBsZW1l
bnRhdGlvbiBhcyB3ZWxsLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlz
IG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y29va2llKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpzZXRDb29raWUpOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRy
b2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKToKKyAg
ICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjaGVt
ZXNXaXRoVW5pcXVlT3JpZ2lucyk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6
U2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNhbkFj
Y2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6dGFpbnRzQ2FudmFzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpzZXRTYW5kYm94RmxhZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luOjpyZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW46OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2Vzcyk6CisgICAg
ICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5oOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW46OmNhbkFjY2Vzc0RhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpjYW5BY2Nlc3NTdG9yYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpjYW5BY2Nlc3NDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpp
c1VuaXF1ZSk6CisKIDIwMTAtMDEtMDggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLiAgRml4IG5hbWVzcGFjZSBpbmRlbnQgZm9yIFNlY3VyaXR5
T3JpZ2luLmguCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYTYxNmUyMS4uZmUyNGE1NyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
MzA2OCw3ICszMDY4LDcgQEAgU3RyaW5nIERvY3VtZW50Ojpjb29raWUoRXhjZXB0aW9uQ29kZSYg
ZWMpIGNvbnN0CiAgICAgLy8gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIG9uIGdldHRpbmcg
aWYgdGhlIERvY3VtZW50IGhhcyBubwogICAgIC8vIGJyb3dzaW5nIGNvbnRleHQuCiAKLSAgICBp
ZiAoc2VjdXJpdHlPcmlnaW4oKS0+aXNTYW5kYm94ZWQoU2FuZGJveE9yaWdpbikpIHsKKyAgICBp
ZiAoIXNlY3VyaXR5T3JpZ2luKCktPmNhbkFjY2Vzc0Nvb2tpZXMoKSkgewogICAgICAgICBlYyA9
IFNFQ1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KQEAgLTMwODks
NyArMzA4OSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNldENvb2tpZShjb25zdCBTdHJpbmcmIHZhbHVl
LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAvLyBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24g
b24gc2V0dGluZyBpZiB0aGUgRG9jdW1lbnQgaGFzIG5vCiAgICAgLy8gYnJvd3NpbmcgY29udGV4
dC4KIAotICAgIGlmIChzZWN1cml0eU9yaWdpbigpLT5pc1NhbmRib3hlZChTYW5kYm94T3JpZ2lu
KSkgeworICAgIGlmICghc2VjdXJpdHlPcmlnaW4oKS0+Y2FuQWNjZXNzQ29va2llcygpKSB7CiAg
ICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCBiL1dlYkNv
cmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAKaW5kZXggN2EyMTI4MC4uMDE1
OTZlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCkBA
IC0xMDAsOCArMTAwLDcgQEAgYm9vbCBwYXNzZXNBY2Nlc3NDb250cm9sQ2hlY2soY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wgaW5jbHVkZUNyZWQKICAgICBpZiAoYWNjZXNz
Q29udHJvbE9yaWdpblN0cmluZyA9PSAiKiIgJiYgIWluY2x1ZGVDcmVkZW50aWFscykKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKLSAgICAvLyBBIHNhbmRib3hlZCBmcmFtZSBoYXMgYSB1bmlxdWUg
b3JpZ2luIChmb3Igc2FtZS1vcmlnaW4gcHVycG9zZXMpLgotICAgIGlmIChzZWN1cml0eU9yaWdp
bi0+aXNTYW5kYm94ZWQoU2FuZGJveE9yaWdpbikpCisgICAgaWYgKHNlY3VyaXR5T3JpZ2luLT5p
c1VuaXF1ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IGFjY2Vzc0NvbnRyb2xPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0
cmluZyhhY2Nlc3NDb250cm9sT3JpZ2luU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9TZWN1cml0eU9yaWdpbi5jcHAgYi9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmlu
ZGV4IGY1M2RiZjEuLjgzZDY1ZmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9y
aWdpbi5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcApAQCAtNjUsMjIg
KzY1LDI0IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBsb2NhbFNjaGVtZXMoKQogICAgIHJldHVy
biBsb2NhbFNjaGVtZXM7CiB9CiAKLXN0YXRpYyBVUkxTY2hlbWVzTWFwJiBub0FjY2Vzc1NjaGVt
ZXMoKQorc3RhdGljIFVSTFNjaGVtZXNNYXAmIHNjaGVtZXNXaXRoVW5pcXVlT3JpZ2lucygpCiB7
Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChVUkxTY2hlbWVzTWFwLCBub0FjY2Vzc1NjaGVtZXMs
ICgpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFVSTFNjaGVtZXNNYXAsIHNjaGVtZXNXaXRo
VW5pcXVlT3JpZ2lucywgKCkpOwogCi0gICAgaWYgKG5vQWNjZXNzU2NoZW1lcy5pc0VtcHR5KCkp
Ci0gICAgICAgIG5vQWNjZXNzU2NoZW1lcy5hZGQoImRhdGEiKTsKKyAgICAvLyBUaGlzIGlzIGEg
d2lsbGZ1bCB2aW9sYXRpb24gb2YgSFRNTDUuCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTg4NQorICAgIGlmIChzY2hlbWVzV2l0aFVuaXF1ZU9y
aWdpbnMuaXNFbXB0eSgpKQorICAgICAgICBzY2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMuYWRkKCJk
YXRhIik7CiAKLSAgICByZXR1cm4gbm9BY2Nlc3NTY2hlbWVzOworICAgIHJldHVybiBzY2hlbWVz
V2l0aFVuaXF1ZU9yaWdpbnM7CiB9CiAKIFNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbihj
b25zdCBLVVJMJiB1cmwpCi0gICAgOiBtX3Byb3RvY29sKHVybC5wcm90b2NvbCgpLmlzTnVsbCgp
ID8gIiIgOiB1cmwucHJvdG9jb2woKS5sb3dlcigpKQorICAgIDogbV9zYW5kYm94RmxhZ3MoU2Fu
ZGJveE5vbmUpCisgICAgLCBtX3Byb3RvY29sKHVybC5wcm90b2NvbCgpLmlzTnVsbCgpID8gIiIg
OiB1cmwucHJvdG9jb2woKS5sb3dlcigpKQogICAgICwgbV9ob3N0KHVybC5ob3N0KCkuaXNOdWxs
KCkgPyAiIiA6IHVybC5ob3N0KCkubG93ZXIoKSkKICAgICAsIG1fcG9ydCh1cmwucG9ydCgpKQot
ICAgICwgbV9zYW5kYm94RmxhZ3MoU2FuZGJveE5vbmUpCi0gICAgLCBtX25vQWNjZXNzKGZhbHNl
KQorICAgICwgbV9pc1VuaXF1ZShmYWxzZSkKICAgICAsIG1fdW5pdmVyc2FsQWNjZXNzKGZhbHNl
KQogICAgICwgbV9kb21haW5XYXNTZXRJbkRPTShmYWxzZSkKIHsKQEAgLTkwLDcgKzkyLDExIEBA
IFNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbihjb25zdCBLVVJMJiB1cmwpCiAKICAgICAv
LyBTb21lIFVSTHMgYXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0byBhbnl0aGluZyBvdGhlciB0aGFu
IHRoZW1zZWx2ZXMuCiAgICAgaWYgKHNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2VzcyhtX3By
b3RvY29sKSkKLSAgICAgICAgbV9ub0FjY2VzcyA9IHRydWU7CisgICAgICAgIG1faXNVbmlxdWUg
PSB0cnVlOworCisgICAgLy8gSWYgdGhpcyBBU1NFUlQgYmVjb21lcyBmYWxzZSBpbiB0aGUgZnV0
dXJlLCBwbGVhc2UgY29uc2lkZXIgdGhlIGltcGFjdAorICAgIC8vIG9mIG1fc2FuZG94RmxhZ3Mg
b24gbV9pc1VuaXF1ZS4KKyAgICBBU1NFUlQobV9zYW5kYm94RmxhZ3MgPT0gU2FuZGJveE5vbmUp
OwogCiAgICAgLy8gZG9jdW1lbnQuZG9tYWluIHN0YXJ0cyBhcyBtX2hvc3QsIGJ1dCBjYW4gYmUg
c2V0IGJ5IHRoZSBET00uCiAgICAgbV9kb21haW4gPSBtX2hvc3Q7CkBAIC0xMDAsNyArMTA2LDcg
QEAgU2VjdXJpdHlPcmlnaW46OlNlY3VyaXR5T3JpZ2luKGNvbnN0IEtVUkwmIHVybCkKICAgICBp
ZiAobV9jYW5Mb2FkTG9jYWxSZXNvdXJjZXMpIHsKICAgICAgICAgLy8gRGlyZWN0b3JpZXMgc2hv
dWxkIG5ldmVyIGJlIHJlYWRhYmxlLgogICAgICAgICBpZiAoIXVybC5oYXNQYXRoKCkgfHwgdXJs
LnBhdGgoKS5lbmRzV2l0aCgiLyIpKQotICAgICAgICAgICAgbV9ub0FjY2VzcyA9IHRydWU7Cisg
ICAgICAgICAgICBtX2lzVW5pcXVlID0gdHJ1ZTsKICAgICB9CiAKICAgICBpZiAoaXNEZWZhdWx0
UG9ydEZvclByb3RvY29sKG1fcG9ydCwgbV9wcm90b2NvbCkpCkBAIC0xMDgsMTIgKzExNCwxMiBA
QCBTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4oY29uc3QgS1VSTCYgdXJsKQogfQogCiBT
ZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qIG90aGVy
KQotICAgIDogbV9wcm90b2NvbChvdGhlci0+bV9wcm90b2NvbC50aHJlYWRzYWZlQ29weSgpKQor
ICAgIDogbV9zYW5kYm94RmxhZ3Mob3RoZXItPm1fc2FuZGJveEZsYWdzKQorICAgICwgbV9wcm90
b2NvbChvdGhlci0+bV9wcm90b2NvbC50aHJlYWRzYWZlQ29weSgpKQogICAgICwgbV9ob3N0KG90
aGVyLT5tX2hvc3QudGhyZWFkc2FmZUNvcHkoKSkKICAgICAsIG1fZG9tYWluKG90aGVyLT5tX2Rv
bWFpbi50aHJlYWRzYWZlQ29weSgpKQogICAgICwgbV9wb3J0KG90aGVyLT5tX3BvcnQpCi0gICAg
LCBtX3NhbmRib3hGbGFncyhvdGhlci0+bV9zYW5kYm94RmxhZ3MpCi0gICAgLCBtX25vQWNjZXNz
KG90aGVyLT5tX25vQWNjZXNzKQorICAgICwgbV9pc1VuaXF1ZShvdGhlci0+bV9pc1VuaXF1ZSkK
ICAgICAsIG1fdW5pdmVyc2FsQWNjZXNzKG90aGVyLT5tX3VuaXZlcnNhbEFjY2VzcykKICAgICAs
IG1fZG9tYWluV2FzU2V0SW5ET00ob3RoZXItPm1fZG9tYWluV2FzU2V0SW5ET00pCiAgICAgLCBt
X2NhbkxvYWRMb2NhbFJlc291cmNlcyhvdGhlci0+bV9jYW5Mb2FkTG9jYWxSZXNvdXJjZXMpCkBA
IC0xNTMsNyArMTU5LDcgQEAgYm9vbCBTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luKiBvdGhlcikgY29uc3QKICAgICBpZiAobV91bml2ZXJzYWxBY2Nlc3MpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKG1fbm9BY2Nlc3MgfHwgb3RoZXItPm1fbm9B
Y2Nlc3MgfHwgaXNTYW5kYm94ZWQoU2FuZGJveE9yaWdpbikgfHwgb3RoZXItPmlzU2FuZGJveGVk
KFNhbmRib3hPcmlnaW4pKQorICAgIGlmIChpc1VuaXF1ZSgpIHx8IG90aGVyLT5pc1VuaXF1ZSgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBIZXJlIGFyZSB0d28gY2FzZXMgd2hl
cmUgd2Ugc2hvdWxkIHBlcm1pdCBhY2Nlc3M6CkBAIC0xOTQsMTEgKzIwMCwxMSBAQCBib29sIFNl
Y3VyaXR5T3JpZ2luOjpjYW5SZXF1ZXN0KGNvbnN0IEtVUkwmIHVybCkgY29uc3QKICAgICBpZiAo
bV91bml2ZXJzYWxBY2Nlc3MpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKG1fbm9B
Y2Nlc3MgfHwgaXNTYW5kYm94ZWQoU2FuZGJveE9yaWdpbikpCisgICAgaWYgKGlzVW5pcXVlKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gdGFy
Z2V0T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpOwotICAgIGlmICh0YXJnZXRP
cmlnaW4tPm1fbm9BY2Nlc3MpCisgICAgaWYgKHRhcmdldE9yaWdpbi0+aXNVbmlxdWUoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gV2UgY2FsbCBpc1NhbWVTY2hlbWVIb3N0UG9y
dCBoZXJlIGluc3RlYWQgb2YgY2FuQWNjZXNzIGJlY2F1c2Ugd2Ugd2FudApAQCAtMjIxLDExICsy
MjcsMTIgQEAgYm9vbCBTZWN1cml0eU9yaWdpbjo6dGFpbnRzQ2FudmFzKGNvbnN0IEtVUkwmIHVy
bCkgY29uc3QKICAgICBpZiAoY2FuUmVxdWVzdCh1cmwpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICAvLyBUaGlzIG1ldGhvZCBleGlzdHMgYmVjYXVzZSB3ZSB0cmVhdCBkYXRhIFVSTHMg
YXMgbm9BY2Nlc3MsIGNvbnRyYXJ5Ci0gICAgLy8gdG8gdGhlIGN1cnJlbnQgKDkvMTkvMjAwOSkg
ZHJhZnQgb2YgdGhlIEhUTUw1IHNwZWNpZmljYXRpb24uICBXZSBzdGlsbAotICAgIC8vIHdhbnQg
dG8gbGV0IGZvbGtzIHBhaW50IGRhdGEgVVJMcyBvbnRvIHVudGFpbnRlZCBjYW52YXNlcywgc28g
d2Ugc3BlY2lhbAotICAgIC8vIGNhc2UgZGF0YSBVUkxzIGJlbG93LiAgSWYgd2UgY2hhbmdlIHRv
IG1hdGNoIEhUTUw1IHcuci50LiBkYXRhIFVSTAotICAgIC8vIHNlY3VyaXR5LCB0aGVuIHdlIGNh
biByZW1vdmUgdGhpcyBtZXRob2QgaW4gZmF2b3Igb2YgIWNhblJlcXVlc3QuCisgICAgLy8gVGhp
cyBtZXRob2QgZXhpc3RzIGJlY2F1c2Ugd2UgdHJlYXQgZGF0YSBVUkxzIGFzIGhhdmluZSBhIHVu
aXF1ZSBvcmlnaW4sCisgICAgLy8gY29udHJhcnkgdG8gdGhlIGN1cnJlbnQgKDkvMTkvMjAwOSkg
ZHJhZnQgb2YgdGhlIEhUTUw1IHNwZWNpZmljYXRpb24uCisgICAgLy8gV2Ugc3RpbGwgd2FudCB0
byBsZXQgZm9sa3MgcGFpbnQgZGF0YSBVUkxzIG9udG8gdW50YWludGVkIGNhbnZhc2VzLCBzbwor
ICAgIC8vIHdlIHNwZWNpYWwgY2FzZSBkYXRhIFVSTHMgYmVsb3cuICBJZiB3ZSBjaGFuZ2UgdG8g
bWF0Y2ggSFRNTDUgdy5yLnQuCisgICAgLy8gZGF0YSBVUkwgc2VjdXJpdHksIHRoZW4gd2UgY2Fu
IHJlbW92ZSB0aGlzIG1ldGhvZCBpbiBmYXZvciBvZgorICAgIC8vICFjYW5SZXF1ZXN0LgogICAg
IGlmICh1cmwucHJvdG9jb2xJcygiZGF0YSIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAg
LTI2Miw2ICsyNjksMTMgQEAgdm9pZCBTZWN1cml0eU9yaWdpbjo6Z3JhbnRVbml2ZXJzYWxBY2Nl
c3MoKQogICAgIG1fdW5pdmVyc2FsQWNjZXNzID0gdHJ1ZTsKIH0KIAordm9pZCBTZWN1cml0eU9y
aWdpbjo6c2V0U2FuZGJveEZsYWdzKFNhbmRib3hGbGFncyBmbGFncykKK3sKKyAgICBtX3NhbmRi
b3hGbGFncyA9IGZsYWdzOworICAgIGlmIChpc1NhbmRib3hlZChTYW5kYm94T3JpZ2luKSkKKyAg
ICAgICAgbV9pc1VuaXF1ZSA9IHRydWU7Cit9CisKIGJvb2wgU2VjdXJpdHlPcmlnaW46OmlzTG9j
YWwoKSBjb25zdAogewogICAgIHJldHVybiBzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwobV9w
cm90b2NvbCk7CkBAIC0yODIsNyArMjk2LDcgQEAgU3RyaW5nIFNlY3VyaXR5T3JpZ2luOjp0b1N0
cmluZygpIGNvbnN0CiAgICAgaWYgKGlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuICJudWxsIjsK
IAotICAgIGlmIChtX25vQWNjZXNzIHx8IGlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKQorICAg
IGlmIChpc1VuaXF1ZSgpKQogICAgICAgICByZXR1cm4gIm51bGwiOwogCiAgICAgaWYgKG1fcHJv
dG9jb2wgPT0gImZpbGUiKQpAQCAtNDQwLDEyICs0NTQsMTIgQEAgYm9vbCBTZWN1cml0eU9yaWdp
bjo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKGNvbnN0IFN0cmluZyYgc2NoZW1lKQogCiB2
b2lkIFNlY3VyaXR5T3JpZ2luOjpyZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MoY29uc3QgU3Ry
aW5nJiBzY2hlbWUpCiB7Ci0gICAgbm9BY2Nlc3NTY2hlbWVzKCkuYWRkKHNjaGVtZSk7CisgICAg
c2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zKCkuYWRkKHNjaGVtZSk7CiB9CiAKIGJvb2wgU2VjdXJp
dHlPcmlnaW46OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2Vzcyhjb25zdCBTdHJpbmcmIHNj
aGVtZSkKIHsKLSAgICByZXR1cm4gbm9BY2Nlc3NTY2hlbWVzKCkuY29udGFpbnMoc2NoZW1lKTsK
KyAgICByZXR1cm4gc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zKCkuY29udGFpbnMoc2NoZW1lKTsK
IH0KIAogYm9vbCBTZWN1cml0eU9yaWdpbjo6c2hvdWxkSGlkZVJlZmVycmVyKGNvbnN0IEtVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiByZWZlcnJlcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9T
ZWN1cml0eU9yaWdpbi5oIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKaW5kZXggNjY3
M2FjMS4uNzNlODEyOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgK
KysrIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKQEAgLTExMSwxMiArMTExLDEyIEBA
IHB1YmxpYzoKICAgICAvLyBXQVJOSU5HOiBUaGlzIGlzIGFuIGV4dHJlbWVseSBwb3dlcmZ1bCBh
YmlsaXR5LiAgVXNlIHdpdGggY2F1dGlvbiEKICAgICB2b2lkIGdyYW50VW5pdmVyc2FsQWNjZXNz
KCk7CiAKLSAgICAvLyBTYW5kYm94aW5nIHN0YXR1cyBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBmcmFt
ZS4KLSAgICB2b2lkIHNldFNhbmRib3hGbGFncyhTYW5kYm94RmxhZ3MgZmxhZ3MpIHsgbV9zYW5k
Ym94RmxhZ3MgPSBmbGFnczsgfQorICAgIHZvaWQgc2V0U2FuZGJveEZsYWdzKFNhbmRib3hGbGFn
cyBmbGFncyk7CiAgICAgYm9vbCBpc1NhbmRib3hlZChTYW5kYm94RmxhZ3MgbWFzaykgY29uc3Qg
eyByZXR1cm4gbV9zYW5kYm94RmxhZ3MgJiBtYXNrOyB9CiAKLSAgICBib29sIGNhbkFjY2Vzc0Rh
dGFiYXNlKCkgY29uc3QgeyByZXR1cm4gIWlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pOyB9Ci0g
ICAgYm9vbCBjYW5BY2Nlc3NTdG9yYWdlKCkgY29uc3QgeyByZXR1cm4gIWlzU2FuZGJveGVkKFNh
bmRib3hPcmlnaW4pOyB9CisgICAgYm9vbCBjYW5BY2Nlc3NEYXRhYmFzZSgpIGNvbnN0IHsgcmV0
dXJuICFpc1VuaXF1ZSgpOyB9CisgICAgYm9vbCBjYW5BY2Nlc3NTdG9yYWdlKCkgY29uc3QgeyBy
ZXR1cm4gIWlzVW5pcXVlKCk7IH0KKyAgICBib29sIGNhbkFjY2Vzc0Nvb2tpZXMoKSBjb25zdCB7
IHJldHVybiAhaXNVbmlxdWUoKTsgfQogCiAgICAgYm9vbCBpc1NlY3VyZVRyYW5zaXRpb25Ubyhj
b25zdCBLVVJMJikgY29uc3Q7CiAKQEAgLTEyOCwxNyArMTI4LDI0IEBAIHB1YmxpYzoKICAgICAv
LyBUaGUgZW1wdHkgU2VjdXJpdHlPcmlnaW4gaXMgdGhlIGxlYXN0IHByaXZpbGVnZWQgU2VjdXJp
dHlPcmlnaW4uCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CiAKKyAgICAvLyBUaGUgb3JpZ2lu
IGlzIGEgZ2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgYXNzaWduZWQgd2hlbiB0aGUgRG9jdW1l
bnQgaXMKKyAgICAvLyBjcmVhdGVkLiAgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay8jc2FuZGJveE9yaWdpbgorICAgIC8vCisgICAgLy8gVGhlcmUncyBh
IHN1YnRsZSBkaWZmZXJlbmNlIGJldHdlZW4gYSB1bmlxdWUgb3JpZ2luIGFuZCBhbiBvcmlnaW4g
dGhhdAorICAgIC8vIGhhcyB0aGUgU2FuZGJveE9yaWdpbiBmbGFnIHNldC4gIFRoZSBsYXRlciBp
bXBsaWVzIHRoZSBmb3JtZXIsIGFuZCwgaW4KKyAgICAvLyBhZGRpdGlvbiwgdGhlIFNhbmRib3hP
cmlnaW4gZmxhZyBpcyBpbmhlcml0ZWQgYnkgaWZyYW1lcy4KKyAgICBib29sIGlzVW5pcXVlKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1VuaXF1ZTsgfQorCiAgICAgLy8gQ29udmVydCB0aGlzIFNlY3Vy
aXR5T3JpZ2luIGludG8gYSBzdHJpbmcuICBUaGUgc3RyaW5nCiAgICAgLy8gcmVwcmVzZW50YXRp
b24gb2YgYSBTZWN1cml0eU9yaWdpbiBpcyBzaW1pbGFyIHRvIGEgVVJMLCBleGNlcHQgaXQKICAg
ICAvLyBsYWNrcyBhIHBhdGggY29tcG9uZW50LiAgVGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBk
b2VzIG5vdCBlbmNvZGUKICAgICAvLyB0aGUgdmFsdWUgb2YgdGhlIFNlY3VyaXR5T3JpZ2luJ3Mg
ZG9tYWluIHByb3BlcnR5LgogICAgIC8vCi0gICAgLy8gV2hlbiB1c2luZyB0aGUgc3RyaW5nIHZh
bHVlLCBpdCdzIGltcG9ydGFudCB0byByZW1lbWJlciB0aGF0IGl0Ci0gICAgLy8gbWlnaHQgYmUg
Im51bGwiLiAgVGhpcyBoYXBwZW5zIHdoZW4gdGhpcyBTZWN1cml0eU9yaWdpbiBoYXMKLSAgICAv
LyBub0FjY2VzcyB0byBvdGhlciBTZWN1cml0eU9yaWdpbnMuICBGb3IgZXhhbXBsZSwgdGhpcyBT
ZWN1cml0eU9yaWdpbgotICAgIC8vIG1pZ2h0IGhhdmUgY29tZSBmcm9tIGEgZGF0YSBVUkwsIHRo
ZSBTZWN1cml0eU9yaWdpbiBtaWdodCBiZSBlbXB0eSwKLSAgICAvLyBvciB3ZSBtaWdodCBoYXZl
IGV4cGxpY2l0bHkgZGVjaWRlZCB0aGF0IHdlCi0gICAgLy8gc2hvdWxkVHJlYXRVUkxTY2hlbWVB
c05vQWNjZXNzLgorICAgIC8vIFdoZW4gdXNpbmcgdGhlIHN0cmluZyB2YWx1ZSwgaXQncyBpbXBv
cnRhbnQgdG8gcmVtZW1iZXIgdGhhdCBpdCBtaWdodCBiZQorICAgIC8vICJudWxsIi4gIFRoaXMg
aGFwcGVucyB3aGVuIHRoaXMgU2VjdXJpdHlPcmlnaW4gaXMgdW5pcXVlIEZvciBleGFtcGxlLAor
ICAgIC8vIHRoaXMgU2VjdXJpdHlPcmlnaW4gbWlnaHQgaGF2ZSBjb21lIGZyb20gYSBzYW5kYm94
ZWQgaWZyYW1lLCB0aGUKKyAgICAvLyBTZWN1cml0eU9yaWdpbiBtaWdodCBiZSBlbXB0eSwgb3Ig
d2UgbWlnaHQgaGF2ZSBleHBsaWNpdGx5IGRlY2lkZWQgdGhhdAorICAgIC8vIHdlIHNob3VsZFRy
ZWF0VVJMU2NoZW1lQXNOb0FjY2Vzcy4KICAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKIAog
ICAgIC8vIFNlcmlhbGl6ZSB0aGUgc2VjdXJpdHkgb3JpZ2luIHRvIGEgc3RyaW5nIHRoYXQgY291
bGQgYmUgdXNlZCBhcyBwYXJ0IG9mCkBAIC0xODMsMTUgKzE5MCwxNSBAQCBwcml2YXRlOgogICAg
IGV4cGxpY2l0IFNlY3VyaXR5T3JpZ2luKGNvbnN0IEtVUkwmKTsKICAgICBleHBsaWNpdCBTZWN1
cml0eU9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiopOwogCisgICAgU2FuZGJveEZsYWdzIG1f
c2FuZGJveEZsYWdzOwogICAgIFN0cmluZyBtX3Byb3RvY29sOwogICAgIFN0cmluZyBtX2hvc3Q7
CiAgICAgU3RyaW5nIG1fZG9tYWluOwogICAgIHVuc2lnbmVkIHNob3J0IG1fcG9ydDsKLSAgICBT
YW5kYm94RmxhZ3MgbV9zYW5kYm94RmxhZ3M7Ci0gICAgYm9vbCBtX25vQWNjZXNzOwotICAgIGJv
b2wgbV91bml2ZXJzYWxBY2Nlc3M7Ci0gICAgYm9vbCBtX2RvbWFpbldhc1NldEluRE9NOwotICAg
IGJvb2wgbV9jYW5Mb2FkTG9jYWxSZXNvdXJjZXM7CisgICAgYm9vbCBtX2lzVW5pcXVlIDogMTsK
KyAgICBib29sIG1fdW5pdmVyc2FsQWNjZXNzIDogMTsKKyAgICBib29sIG1fZG9tYWluV2FzU2V0
SW5ET00gOiAxOworICAgIGJvb2wgbV9jYW5Mb2FkTG9jYWxSZXNvdXJjZXMgOiAxOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46228</attachid>
            <date>2010-01-09 18:51:04 -0800</date>
            <delta_ts>2010-01-09 18:55:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32372-20100109185103.patch</filename>
            <type>text/plain</type>
            <size>16723</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MTlhMzk1MC4uODJhNmRkNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0MCBAQAogMjAxMC0wMS0wOSAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVuaWZ5IG9yaWdpbiBzYW5kYm94IGZsYWcgd2l0aCBtX25vQWNjZXNzIGlu
IFNlY3VyaXR5T3JpZ2luCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMjM3MgorCisgICAgICAgIEl0IHR1cm5zIG91dCB0aGUgU2FuZGJveE9yaWdpbiBi
aXQgaXMgc2xpZ2h0bHkgZGlmZmVyZW50IHRoYW4gdGhlCisgICAgICAgIHVuaXF1ZSBvcmlnaW4g
Y29uY2VwdCBiZWNhdXNlIHRoZSBzYW5kYm94IGJpdCBpcyBpbmhlcml0ZWQgYnkgaWZyYW1lcy4K
KyAgICAgICAgVGhlc2UgY29uY2VwdHMgYXJlIHNlcGFyYXRlIGluIHRoZSBzcGVjLCBzbyBJIHRo
aW5rIGl0J3Mgb2sgdG8ga2VlcAorICAgICAgICB0aGVtIHNlcGFyYXRlIGluIHRoZSBpbXBsZW1l
bnRhdGlvbiBhcyB3ZWxsLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlz
IG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y29va2llKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpzZXRDb29raWUpOgorICAgICAgICAqIGxvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRy
b2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFzc2VzQWNjZXNzQ29udHJvbENoZWNrKToKKyAg
ICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjaGVt
ZXNXaXRoVW5pcXVlT3JpZ2lucyk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6
U2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNhbkFj
Y2Vzcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6dGFpbnRzQ2FudmFzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpzZXRTYW5kYm94RmxhZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW46OnRvU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luOjpyZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW46OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2Vzcyk6CisgICAg
ICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5oOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW46OmNhbkFjY2Vzc0RhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpjYW5BY2Nlc3NTdG9yYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpjYW5BY2Nlc3NDb29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpp
c1VuaXF1ZSk6CisKKzIwMTAtMDEtMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4K
KwogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KIAogICAgICAgICBTY3JpcHRDb250
cm9sbGVyOjppc0VuYWJsZWQgbmVlZHMgdG8gYmUgcmVuYW1lZApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGE2MTZl
MjEuLmZlMjRhNTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTMwNjgsNyArMzA2OCw3IEBAIFN0cmluZyBEb2N1
bWVudDo6Y29va2llKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogICAgIC8vIElOVkFMSURfU1RB
VEVfRVJSIGV4Y2VwdGlvbiBvbiBnZXR0aW5nIGlmIHRoZSBEb2N1bWVudCBoYXMgbm8KICAgICAv
LyBicm93c2luZyBjb250ZXh0LgogCi0gICAgaWYgKHNlY3VyaXR5T3JpZ2luKCktPmlzU2FuZGJv
eGVkKFNhbmRib3hPcmlnaW4pKSB7CisgICAgaWYgKCFzZWN1cml0eU9yaWdpbigpLT5jYW5BY2Nl
c3NDb29raWVzKCkpIHsKICAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7CiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKICAgICB9CkBAIC0zMDg5LDcgKzMwODksNyBAQCB2b2lkIERvY3VtZW50Ojpz
ZXRDb29raWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgLy8g
SU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIG9uIHNldHRpbmcgaWYgdGhlIERvY3VtZW50IGhh
cyBubwogICAgIC8vIGJyb3dzaW5nIGNvbnRleHQuCiAKLSAgICBpZiAoc2VjdXJpdHlPcmlnaW4o
KS0+aXNTYW5kYm94ZWQoU2FuZGJveE9yaWdpbikpIHsKKyAgICBpZiAoIXNlY3VyaXR5T3JpZ2lu
KCktPmNhbkFjY2Vzc0Nvb2tpZXMoKSkgewogICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3Jp
Z2luQWNjZXNzQ29udHJvbC5jcHAgYi9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0Nv
bnRyb2wuY3BwCmluZGV4IDdhMjEyODAuLjAxNTk2ZTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9h
ZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvQ3Jv
c3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcApAQCAtMTAwLDggKzEwMCw3IEBAIGJvb2wgcGFzc2Vz
QWNjZXNzQ29udHJvbENoZWNrKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29s
IGluY2x1ZGVDcmVkCiAgICAgaWYgKGFjY2Vzc0NvbnRyb2xPcmlnaW5TdHJpbmcgPT0gIioiICYm
ICFpbmNsdWRlQ3JlZGVudGlhbHMpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgLy8gQSBz
YW5kYm94ZWQgZnJhbWUgaGFzIGEgdW5pcXVlIG9yaWdpbiAoZm9yIHNhbWUtb3JpZ2luIHB1cnBv
c2VzKS4KLSAgICBpZiAoc2VjdXJpdHlPcmlnaW4tPmlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4p
KQorICAgIGlmIChzZWN1cml0eU9yaWdpbi0+aXNVbmlxdWUoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBhY2Nlc3NDb250cm9sT3JpZ2luID0g
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoYWNjZXNzQ29udHJvbE9yaWdpblN0cmlu
Zyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIGIvV2ViQ29y
ZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcAppbmRleCBmNTNkYmYxLi5jZGM4MGJjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9T
ZWN1cml0eU9yaWdpbi5jcHAKQEAgLTY1LDIyICs2NSwyNCBAQCBzdGF0aWMgVVJMU2NoZW1lc01h
cCYgbG9jYWxTY2hlbWVzKCkKICAgICByZXR1cm4gbG9jYWxTY2hlbWVzOwogfQogCi1zdGF0aWMg
VVJMU2NoZW1lc01hcCYgbm9BY2Nlc3NTY2hlbWVzKCkKK3N0YXRpYyBVUkxTY2hlbWVzTWFwJiBz
Y2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMoKQogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoVVJM
U2NoZW1lc01hcCwgbm9BY2Nlc3NTY2hlbWVzLCAoKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChVUkxTY2hlbWVzTWFwLCBzY2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMsICgpKTsKIAotICAgIGlm
IChub0FjY2Vzc1NjaGVtZXMuaXNFbXB0eSgpKQotICAgICAgICBub0FjY2Vzc1NjaGVtZXMuYWRk
KCJkYXRhIik7CisgICAgLy8gVGhpcyBpcyBhIHdpbGxmdWwgdmlvbGF0aW9uIG9mIEhUTUw1Lgor
ICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4ODUK
KyAgICBpZiAoc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zLmlzRW1wdHkoKSkKKyAgICAgICAgc2No
ZW1lc1dpdGhVbmlxdWVPcmlnaW5zLmFkZCgiZGF0YSIpOwogCi0gICAgcmV0dXJuIG5vQWNjZXNz
U2NoZW1lczsKKyAgICByZXR1cm4gc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zOwogfQogCiBTZWN1
cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4oY29uc3QgS1VSTCYgdXJsKQotICAgIDogbV9wcm90
b2NvbCh1cmwucHJvdG9jb2woKS5pc051bGwoKSA/ICIiIDogdXJsLnByb3RvY29sKCkubG93ZXIo
KSkKKyAgICA6IG1fc2FuZGJveEZsYWdzKFNhbmRib3hOb25lKQorICAgICwgbV9wcm90b2NvbCh1
cmwucHJvdG9jb2woKS5pc051bGwoKSA/ICIiIDogdXJsLnByb3RvY29sKCkubG93ZXIoKSkKICAg
ICAsIG1faG9zdCh1cmwuaG9zdCgpLmlzTnVsbCgpID8gIiIgOiB1cmwuaG9zdCgpLmxvd2VyKCkp
CiAgICAgLCBtX3BvcnQodXJsLnBvcnQoKSkKLSAgICAsIG1fc2FuZGJveEZsYWdzKFNhbmRib3hO
b25lKQotICAgICwgbV9ub0FjY2VzcyhmYWxzZSkKKyAgICAsIG1faXNVbmlxdWUoZmFsc2UpCiAg
ICAgLCBtX3VuaXZlcnNhbEFjY2VzcyhmYWxzZSkKICAgICAsIG1fZG9tYWluV2FzU2V0SW5ET00o
ZmFsc2UpCiB7CkBAIC05MCw3ICs5MiwxMSBAQCBTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmln
aW4oY29uc3QgS1VSTCYgdXJsKQogCiAgICAgLy8gU29tZSBVUkxzIGFyZSBub3QgYWxsb3dlZCBh
Y2Nlc3MgdG8gYW55dGhpbmcgb3RoZXIgdGhhbiB0aGVtc2VsdmVzLgogICAgIGlmIChzaG91bGRU
cmVhdFVSTFNjaGVtZUFzTm9BY2Nlc3MobV9wcm90b2NvbCkpCi0gICAgICAgIG1fbm9BY2Nlc3Mg
PSB0cnVlOworICAgICAgICBtX2lzVW5pcXVlID0gdHJ1ZTsKKworICAgIC8vIElmIHRoaXMgQVNT
RVJUIGJlY29tZXMgZmFsc2UgaW4gdGhlIGZ1dHVyZSwgcGxlYXNlIGNvbnNpZGVyIHRoZSBpbXBh
Y3QKKyAgICAvLyBvZiBtX3NhbmRveEZsYWdzIG9uIG1faXNVbmlxdWUuCisgICAgQVNTRVJUKG1f
c2FuZGJveEZsYWdzID09IFNhbmRib3hOb25lKTsKIAogICAgIC8vIGRvY3VtZW50LmRvbWFpbiBz
dGFydHMgYXMgbV9ob3N0LCBidXQgY2FuIGJlIHNldCBieSB0aGUgRE9NLgogICAgIG1fZG9tYWlu
ID0gbV9ob3N0OwpAQCAtMTAwLDcgKzEwNiw3IEBAIFNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9y
aWdpbihjb25zdCBLVVJMJiB1cmwpCiAgICAgaWYgKG1fY2FuTG9hZExvY2FsUmVzb3VyY2VzKSB7
CiAgICAgICAgIC8vIERpcmVjdG9yaWVzIHNob3VsZCBuZXZlciBiZSByZWFkYWJsZS4KICAgICAg
ICAgaWYgKCF1cmwuaGFzUGF0aCgpIHx8IHVybC5wYXRoKCkuZW5kc1dpdGgoIi8iKSkKLSAgICAg
ICAgICAgIG1fbm9BY2Nlc3MgPSB0cnVlOworICAgICAgICAgICAgbV9pc1VuaXF1ZSA9IHRydWU7
CiAgICAgfQogCiAgICAgaWYgKGlzRGVmYXVsdFBvcnRGb3JQcm90b2NvbChtX3BvcnQsIG1fcHJv
dG9jb2wpKQpAQCAtMTA4LDEyICsxMTQsMTIgQEAgU2VjdXJpdHlPcmlnaW46OlNlY3VyaXR5T3Jp
Z2luKGNvbnN0IEtVUkwmIHVybCkKIH0KIAogU2VjdXJpdHlPcmlnaW46OlNlY3VyaXR5T3JpZ2lu
KGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvdGhlcikKLSAgICA6IG1fcHJvdG9jb2wob3RoZXItPm1f
cHJvdG9jb2wudGhyZWFkc2FmZUNvcHkoKSkKKyAgICA6IG1fc2FuZGJveEZsYWdzKG90aGVyLT5t
X3NhbmRib3hGbGFncykKKyAgICAsIG1fcHJvdG9jb2wob3RoZXItPm1fcHJvdG9jb2wudGhyZWFk
c2FmZUNvcHkoKSkKICAgICAsIG1faG9zdChvdGhlci0+bV9ob3N0LnRocmVhZHNhZmVDb3B5KCkp
CiAgICAgLCBtX2RvbWFpbihvdGhlci0+bV9kb21haW4udGhyZWFkc2FmZUNvcHkoKSkKICAgICAs
IG1fcG9ydChvdGhlci0+bV9wb3J0KQotICAgICwgbV9zYW5kYm94RmxhZ3Mob3RoZXItPm1fc2Fu
ZGJveEZsYWdzKQotICAgICwgbV9ub0FjY2VzcyhvdGhlci0+bV9ub0FjY2VzcykKKyAgICAsIG1f
aXNVbmlxdWUob3RoZXItPm1faXNVbmlxdWUpCiAgICAgLCBtX3VuaXZlcnNhbEFjY2VzcyhvdGhl
ci0+bV91bml2ZXJzYWxBY2Nlc3MpCiAgICAgLCBtX2RvbWFpbldhc1NldEluRE9NKG90aGVyLT5t
X2RvbWFpbldhc1NldEluRE9NKQogICAgICwgbV9jYW5Mb2FkTG9jYWxSZXNvdXJjZXMob3RoZXIt
Pm1fY2FuTG9hZExvY2FsUmVzb3VyY2VzKQpAQCAtMTUzLDE1ICsxNTksMTUgQEAgYm9vbCBTZWN1
cml0eU9yaWdpbjo6Y2FuQWNjZXNzKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvdGhlcikgY29uc3QK
ICAgICBpZiAobV91bml2ZXJzYWxBY2Nlc3MpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAg
aWYgKG1fbm9BY2Nlc3MgfHwgb3RoZXItPm1fbm9BY2Nlc3MgfHwgaXNTYW5kYm94ZWQoU2FuZGJv
eE9yaWdpbikgfHwgb3RoZXItPmlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKQorICAgIGlmIChp
c1VuaXF1ZSgpIHx8IG90aGVyLT5pc1VuaXF1ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICAvLyBIZXJlIGFyZSB0d28gY2FzZXMgd2hlcmUgd2Ugc2hvdWxkIHBlcm1pdCBhY2Nlc3M6
CiAgICAgLy8KLSAgICAvLyAxKSBOZWl0aGVyIGRvY3VtZW50IGhhcyBzZXQgZG9jdW1lbnQuZG9t
YWluLiAgSW4gdGhpcyBjYXNlLCB3ZSBpbnNpc3QKKyAgICAvLyAxKSBOZWl0aGVyIGRvY3VtZW50
IGhhcyBzZXQgZG9jdW1lbnQuZG9tYWluLiBJbiB0aGlzIGNhc2UsIHdlIGluc2lzdAogICAgIC8v
ICAgIHRoYXQgdGhlIHNjaGVtZSwgaG9zdCwgYW5kIHBvcnQgb2YgdGhlIFVSTHMgbWF0Y2guCiAg
ICAgLy8KLSAgICAvLyAyKSBCb3RoIGRvY3VtZW50cyBoYXZlIHNldCBkb2N1bWVudC5kb21haW4u
ICBJbiB0aGlzIGNhc2UsIHdlIGluc2lzdAorICAgIC8vIDIpIEJvdGggZG9jdW1lbnRzIGhhdmUg
c2V0IGRvY3VtZW50LmRvbWFpbi4gSW4gdGhpcyBjYXNlLCB3ZSBpbnNpc3QKICAgICAvLyAgICB0
aGF0IHRoZSBkb2N1bWVudHMgaGF2ZSBzZXQgZG9jdW1lbnQuZG9tYWluIHRvIHRoZSBzYW1lIHZh
bHVlIGFuZAogICAgIC8vICAgIHRoYXQgdGhlIHNjaGVtZSBvZiB0aGUgVVJMcyBtYXRjaC4KICAg
ICAvLwpAQCAtMTk0LDExICsyMDAsMTEgQEAgYm9vbCBTZWN1cml0eU9yaWdpbjo6Y2FuUmVxdWVz
dChjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiAgICAgaWYgKG1fdW5pdmVyc2FsQWNjZXNzKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChtX25vQWNjZXNzIHx8IGlzU2FuZGJveGVkKFNh
bmRib3hPcmlnaW4pKQorICAgIGlmIChpc1VuaXF1ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRhcmdldE9yaWdpbiA9IFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGUodXJsKTsKLSAgICBpZiAodGFyZ2V0T3JpZ2luLT5tX25vQWNjZXNzKQorICAg
IGlmICh0YXJnZXRPcmlnaW4tPmlzVW5pcXVlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIC8vIFdlIGNhbGwgaXNTYW1lU2NoZW1lSG9zdFBvcnQgaGVyZSBpbnN0ZWFkIG9mIGNhbkFj
Y2VzcyBiZWNhdXNlIHdlIHdhbnQKQEAgLTIyMSwxMSArMjI3LDEyIEBAIGJvb2wgU2VjdXJpdHlP
cmlnaW46OnRhaW50c0NhbnZhcyhjb25zdCBLVVJMJiB1cmwpIGNvbnN0CiAgICAgaWYgKGNhblJl
cXVlc3QodXJsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gVGhpcyBtZXRob2Qg
ZXhpc3RzIGJlY2F1c2Ugd2UgdHJlYXQgZGF0YSBVUkxzIGFzIG5vQWNjZXNzLCBjb250cmFyeQot
ICAgIC8vIHRvIHRoZSBjdXJyZW50ICg5LzE5LzIwMDkpIGRyYWZ0IG9mIHRoZSBIVE1MNSBzcGVj
aWZpY2F0aW9uLiAgV2Ugc3RpbGwKLSAgICAvLyB3YW50IHRvIGxldCBmb2xrcyBwYWludCBkYXRh
IFVSTHMgb250byB1bnRhaW50ZWQgY2FudmFzZXMsIHNvIHdlIHNwZWNpYWwKLSAgICAvLyBjYXNl
IGRhdGEgVVJMcyBiZWxvdy4gIElmIHdlIGNoYW5nZSB0byBtYXRjaCBIVE1MNSB3LnIudC4gZGF0
YSBVUkwKLSAgICAvLyBzZWN1cml0eSwgdGhlbiB3ZSBjYW4gcmVtb3ZlIHRoaXMgbWV0aG9kIGlu
IGZhdm9yIG9mICFjYW5SZXF1ZXN0LgorICAgIC8vIFRoaXMgZnVuY3Rpb24gZXhpc3RzIGJlY2F1
c2Ugd2UgdHJlYXQgZGF0YSBVUkxzIGFzIGhhdmluZyBhIHVuaXF1ZSBvcmlnaW4sCisgICAgLy8g
Y29udHJhcnkgdG8gdGhlIGN1cnJlbnQgKDkvMTkvMjAwOSkgZHJhZnQgb2YgdGhlIEhUTUw1IHNw
ZWNpZmljYXRpb24uCisgICAgLy8gV2Ugc3RpbGwgd2FudCB0byBsZXQgZm9sa3MgcGFpbnQgZGF0
YSBVUkxzIG9udG8gdW50YWludGVkIGNhbnZhc2VzLCBzbworICAgIC8vIHdlIHNwZWNpYWwgY2Fz
ZSBkYXRhIFVSTHMgYmVsb3cuIElmIHdlIGNoYW5nZSB0byBtYXRjaCBIVE1MNSB3LnIudC4KKyAg
ICAvLyBkYXRhIFVSTCBzZWN1cml0eSwgdGhlbiB3ZSBjYW4gcmVtb3ZlIHRoaXMgZnVuY3Rpb24g
aW4gZmF2b3Igb2YKKyAgICAvLyAhY2FuUmVxdWVzdC4KICAgICBpZiAodXJsLnByb3RvY29sSXMo
ImRhdGEiKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0yNDgsOCArMjU1LDggQEAgYm9v
bCBTZWN1cml0eU9yaWdpbjo6Y2FuTG9hZChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYg
cmVmZXJyZXIsIERvY3VtZW50KgogCiB2b2lkIFNlY3VyaXR5T3JpZ2luOjpncmFudExvYWRMb2Nh
bFJlc291cmNlcygpCiB7Ci0gICAgLy8gVGhpcyBtZXRob2QgZXhpc3RzIG9ubHkgdG8gc3VwcG9y
dCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyCi0gICAgLy8gdmVyc2lvbnMgb2Yg
V2ViS2l0LiAgR3JhbnRpbmcgcHJpdmlsZWdlcyB0byBzb21lLCBidXQgbm90IGFsbCwgZG9jdW1l
bnRzCisgICAgLy8gVGhpcyBmdW5jdGlvbiBleGlzdHMgb25seSB0byBzdXBwb3J0IGJhY2t3YXJk
cyBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIKKyAgICAvLyB2ZXJzaW9ucyBvZiBXZWJLaXQuIEdy
YW50aW5nIHByaXZpbGVnZXMgdG8gc29tZSwgYnV0IG5vdCBhbGwsIGRvY3VtZW50cwogICAgIC8v
IGluIGEgU2VjdXJpdHlPcmlnaW4gaXMgYSBzZWN1cml0eSBoYXphcmQgYmVjYXVzZSB0aGUgZG9j
dW1lbnRzIHdpdGhvdXQKICAgICAvLyB0aGUgcHJpdmlsZWdlIGNhbiBvYnRhaW4gdGhlIHByaXZp
bGVnZSBieSBpbmplY3Rpbmcgc2NyaXB0IGludG8gdGhlCiAgICAgLy8gZG9jdW1lbnRzIHRoYXQg
aGF2ZSBiZWVuIGdyYW50ZWQgdGhlIHByaXZpbGVnZS4KQEAgLTI2Miw2ICsyNjksMjIgQEAgdm9p
ZCBTZWN1cml0eU9yaWdpbjo6Z3JhbnRVbml2ZXJzYWxBY2Nlc3MoKQogICAgIG1fdW5pdmVyc2Fs
QWNjZXNzID0gdHJ1ZTsKIH0KIAordm9pZCBTZWN1cml0eU9yaWdpbjo6c2V0U2FuZGJveEZsYWdz
KFNhbmRib3hGbGFncyBmbGFncykKK3sKKyAgICBtX3NhbmRib3hGbGFncyA9IGZsYWdzOworICAg
IGlmIChpc1NhbmRib3hlZChTYW5kYm94T3JpZ2luKSkKKyAgICAgICAgbV9pc1VuaXF1ZSA9IHRy
dWU7CisKKyAgICAvLyBBbHRob3VnaCB5b3UgbWlnaHQgdGhpbmsgdGhhdCB3ZSBzaG91bGQgc2V0
IG1faXNVbmlxdWUgdG8gZmFsc2Ugd2hlbgorICAgIC8vIGZsYWdzIGRvZXNuJ3QgY29udGFpbiBT
YW5kYm94T3JpZ2luLCB0aGF0J3Mgbm90IGFjdHVhbGx5IHRoZSByaWdodAorICAgIC8vIGJlaGF2
aW9yLiBXZSdyZSBzdXBwb3NlZCB0byBmcmVlemUgdGhlIG9yaWdpbiBvZiBhIGRvY3VtZW50IHdo
ZW4gaXQKKyAgICAvLyBpcyBjcmVhdGVkLCBldmVuIGlmIHRoZSBzYW5kYm94IGZsYWdzIGNoYW5n
ZSBhZnRlciB0aGF0IHBvaW50IGluIHRpbWUuCisgICAgLy8KKyAgICAvLyBGSVhNRTogT3VyIGN1
cnJlbnQgYmVoYXZpb3IgaGVyZSBpcyBidWdneSBiZWNhdXNlIHdlIG5lZWQgdG8KKyAgICAvLyAg
ICAgICAgZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgc2FuZGJveCBmbGFncyBhdCBjcmVhdGlvbiBh
bmQgdGhlCisgICAgLy8gICAgICAgIHNhbmRib3ggZmxhZ3MgdGhhdCBtaWdodCBjb21lIGFib3V0
IGxhdGVyLgorfQorCiBib29sIFNlY3VyaXR5T3JpZ2luOjppc0xvY2FsKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gc2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKG1fcHJvdG9jb2wpOwpAQCAtMjgy
LDcgKzMwNSw3IEBAIFN0cmluZyBTZWN1cml0eU9yaWdpbjo6dG9TdHJpbmcoKSBjb25zdAogICAg
IGlmIChpc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiAibnVsbCI7CiAKLSAgICBpZiAobV9ub0Fj
Y2VzcyB8fCBpc1NhbmRib3hlZChTYW5kYm94T3JpZ2luKSkKKyAgICBpZiAoaXNVbmlxdWUoKSkK
ICAgICAgICAgcmV0dXJuICJudWxsIjsKIAogICAgIGlmIChtX3Byb3RvY29sID09ICJmaWxlIikK
QEAgLTQ0MCwxMiArNDYzLDEyIEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46OnNob3VsZFRyZWF0VVJM
U2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmIHNjaGVtZSkKIAogdm9pZCBTZWN1cml0eU9yaWdp
bjo6cmVnaXN0ZXJVUkxTY2hlbWVBc05vQWNjZXNzKGNvbnN0IFN0cmluZyYgc2NoZW1lKQogewot
ICAgIG5vQWNjZXNzU2NoZW1lcygpLmFkZChzY2hlbWUpOworICAgIHNjaGVtZXNXaXRoVW5pcXVl
T3JpZ2lucygpLmFkZChzY2hlbWUpOwogfQogCiBib29sIFNlY3VyaXR5T3JpZ2luOjpzaG91bGRU
cmVhdFVSTFNjaGVtZUFzTm9BY2Nlc3MoY29uc3QgU3RyaW5nJiBzY2hlbWUpCiB7Ci0gICAgcmV0
dXJuIG5vQWNjZXNzU2NoZW1lcygpLmNvbnRhaW5zKHNjaGVtZSk7CisgICAgcmV0dXJuIHNjaGVt
ZXNXaXRoVW5pcXVlT3JpZ2lucygpLmNvbnRhaW5zKHNjaGVtZSk7CiB9CiAKIGJvb2wgU2VjdXJp
dHlPcmlnaW46OnNob3VsZEhpZGVSZWZlcnJlcihjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmlu
ZyYgcmVmZXJyZXIpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaCBi
L1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCmluZGV4IDY2NzNhYzEuLjRhNmViM2MgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCisrKyBiL1dlYkNvcmUvcGFn
ZS9TZWN1cml0eU9yaWdpbi5oCkBAIC01MiwxMyArNTIsMTMgQEAgcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGUoY29uc3QgS1VSTCYpOwogICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVFbXB0eSgpOwogCi0gICAgLy8g
Q3JlYXRlIGEgZGVlcCBjb3B5IG9mIHRoaXMgU2VjdXJpdHlPcmlnaW4uICBUaGlzIG1ldGhvZCBp
cyB1c2VmdWwKKyAgICAvLyBDcmVhdGUgYSBkZWVwIGNvcHkgb2YgdGhpcyBTZWN1cml0eU9yaWdp
bi4gVGhpcyBtZXRob2QgaXMgdXNlZnVsCiAgICAgLy8gd2hlbiBtYXJzaGFsbGluZyBhIFNlY3Vy
aXR5T3JpZ2luIHRvIGFub3RoZXIgdGhyZWFkLgogICAgIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IHRocmVhZHNhZmVDb3B5KCk7CiAKLSAgICAvLyBTZXQgdGhlIGRvbWFpbiBwcm9wZXJ0eSBv
ZiB0aGlzIHNlY3VyaXR5IG9yaWdpbiB0byBuZXdEb21haW4uICBUaGlzCisgICAgLy8gU2V0IHRo
ZSBkb21haW4gcHJvcGVydHkgb2YgdGhpcyBzZWN1cml0eSBvcmlnaW4gdG8gbmV3RG9tYWluLiBU
aGlzCiAgICAgLy8gZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgd2hldGhlciBuZXdEb21haW4gaXMg
YSBzdWZmaXggb2YgdGhlIGN1cnJlbnQKLSAgICAvLyBkb21haW4uICBUaGUgY2FsbGVyIGlzIHJl
c3BvbnNpYmxlIGZvciB2YWxpZGF0aW5nIG5ld0RvbWFpbi4KKyAgICAvLyBkb21haW4uIFRoZSBj
YWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHZhbGlkYXRpbmcgbmV3RG9tYWluLgogICAgIHZvaWQg
c2V0RG9tYWluRnJvbURPTShjb25zdCBTdHJpbmcmIG5ld0RvbWFpbik7CiAgICAgYm9vbCBkb21h
aW5XYXNTZXRJbkRPTSgpIGNvbnN0IHsgcmV0dXJuIG1fZG9tYWluV2FzU2V0SW5ET007IH0KIApA
QCAtNjgsMTggKzY4LDE4IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBzaG9ydCBwb3J0KCkgY29u
c3QgeyByZXR1cm4gbV9wb3J0OyB9CiAKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBTZWN1
cml0eU9yaWdpbiBjYW4gc2NyaXB0IG9iamVjdHMgaW4gdGhlIGdpdmVuCi0gICAgLy8gU2VjdXJp
dHlPcmlnaW4uICBGb3IgZXhhbXBsZSwgY2FsbCB0aGlzIGZ1bmN0aW9uIGJlZm9yZSBhbGxvd2lu
ZworICAgIC8vIFNlY3VyaXR5T3JpZ2luLiBGb3IgZXhhbXBsZSwgY2FsbCB0aGlzIGZ1bmN0aW9u
IGJlZm9yZSBhbGxvd2luZwogICAgIC8vIHNjcmlwdCBmcm9tIG9uZSBzZWN1cml0eSBvcmlnaW4g
dG8gcmVhZCBvciB3cml0ZSBvYmplY3RzIGZyb20KICAgICAvLyBhbm90aGVyIFNlY3VyaXR5T3Jp
Z2luLgogICAgIGJvb2wgY2FuQWNjZXNzKGNvbnN0IFNlY3VyaXR5T3JpZ2luKikgY29uc3Q7CiAK
ICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhpcyBTZWN1cml0eU9yaWdpbiBjYW4gcmVhZCBjb250
ZW50IHJldHJpZXZlZCBmcm9tCi0gICAgLy8gdGhlIGdpdmVuIFVSTC4gIEZvciBleGFtcGxlLCBj
YWxsIHRoaXMgZnVuY3Rpb24gYmVmb3JlIGlzc3VpbmcKKyAgICAvLyB0aGUgZ2l2ZW4gVVJMLiBG
b3IgZXhhbXBsZSwgY2FsbCB0aGlzIGZ1bmN0aW9uIGJlZm9yZSBpc3N1aW5nCiAgICAgLy8gWE1M
SHR0cFJlcXVlc3RzLgogICAgIGJvb2wgY2FuUmVxdWVzdChjb25zdCBLVVJMJikgY29uc3Q7CiAK
ICAgICAvLyBSZXR1cm5zIHRydWUgaWYgZHJhd2luZyBhbiBpbWFnZSBmcm9tIHRoaXMgVVJMIHRh
aW50cyBhIGNhbnZhcyBmcm9tCi0gICAgLy8gdGhpcyBzZWN1cml0eSBvcmlnaW4uICBGb3IgZXhh
bXBsZSwgY2FsbCB0aGlzIGZ1bmN0aW9uIGJlZm9yZQorICAgIC8vIHRoaXMgc2VjdXJpdHkgb3Jp
Z2luLiBGb3IgZXhhbXBsZSwgY2FsbCB0aGlzIGZ1bmN0aW9uIGJlZm9yZQogICAgIC8vIGRyYXdp
bmcgYW4gaW1hZ2Ugb250byBhbiBIVE1MIGNhbnZhcyBlbGVtZW50IHdpdGggdGhlIGRyYXdJbWFn
ZSBBUEkuCiAgICAgYm9vbCB0YWludHNDYW52YXMoY29uc3QgS1VSTCYpIGNvbnN0OwogCkBAIC0x
MDgsMTUgKzEwOCwxNSBAQCBwdWJsaWM6CiAKICAgICAvLyBFeHBsaWNpdGx5IGdyYW50IHRoZSBh
YmlsaXR5IHRvIGFjY2VzcyB2ZXJ5IG90aGVyIFNlY3VyaXR5T3JpZ2luLgogICAgIC8vCi0gICAg
Ly8gV0FSTklORzogVGhpcyBpcyBhbiBleHRyZW1lbHkgcG93ZXJmdWwgYWJpbGl0eS4gIFVzZSB3
aXRoIGNhdXRpb24hCisgICAgLy8gV0FSTklORzogVGhpcyBpcyBhbiBleHRyZW1lbHkgcG93ZXJm
dWwgYWJpbGl0eS4gVXNlIHdpdGggY2F1dGlvbiEKICAgICB2b2lkIGdyYW50VW5pdmVyc2FsQWNj
ZXNzKCk7CiAKLSAgICAvLyBTYW5kYm94aW5nIHN0YXR1cyBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBm
cmFtZS4KLSAgICB2b2lkIHNldFNhbmRib3hGbGFncyhTYW5kYm94RmxhZ3MgZmxhZ3MpIHsgbV9z
YW5kYm94RmxhZ3MgPSBmbGFnczsgfQorICAgIHZvaWQgc2V0U2FuZGJveEZsYWdzKFNhbmRib3hG
bGFncyk7CiAgICAgYm9vbCBpc1NhbmRib3hlZChTYW5kYm94RmxhZ3MgbWFzaykgY29uc3QgeyBy
ZXR1cm4gbV9zYW5kYm94RmxhZ3MgJiBtYXNrOyB9CiAKLSAgICBib29sIGNhbkFjY2Vzc0RhdGFi
YXNlKCkgY29uc3QgeyByZXR1cm4gIWlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pOyB9Ci0gICAg
Ym9vbCBjYW5BY2Nlc3NTdG9yYWdlKCkgY29uc3QgeyByZXR1cm4gIWlzU2FuZGJveGVkKFNhbmRi
b3hPcmlnaW4pOyB9CisgICAgYm9vbCBjYW5BY2Nlc3NEYXRhYmFzZSgpIGNvbnN0IHsgcmV0dXJu
ICFpc1VuaXF1ZSgpOyB9CisgICAgYm9vbCBjYW5BY2Nlc3NTdG9yYWdlKCkgY29uc3QgeyByZXR1
cm4gIWlzVW5pcXVlKCk7IH0KKyAgICBib29sIGNhbkFjY2Vzc0Nvb2tpZXMoKSBjb25zdCB7IHJl
dHVybiAhaXNVbmlxdWUoKTsgfQogCiAgICAgYm9vbCBpc1NlY3VyZVRyYW5zaXRpb25Ubyhjb25z
dCBLVVJMJikgY29uc3Q7CiAKQEAgLTEyOCwxNyArMTI4LDI0IEBAIHB1YmxpYzoKICAgICAvLyBU
aGUgZW1wdHkgU2VjdXJpdHlPcmlnaW4gaXMgdGhlIGxlYXN0IHByaXZpbGVnZWQgU2VjdXJpdHlP
cmlnaW4uCiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CiAKLSAgICAvLyBDb252ZXJ0IHRoaXMg
U2VjdXJpdHlPcmlnaW4gaW50byBhIHN0cmluZy4gIFRoZSBzdHJpbmcKKyAgICAvLyBUaGUgb3Jp
Z2luIGlzIGEgZ2xvYmFsbHkgdW5pcXVlIGlkZW50aWZpZXIgYXNzaWduZWQgd2hlbiB0aGUgRG9j
dW1lbnQgaXMKKyAgICAvLyBjcmVhdGVkLiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2Vi
LWFwcHMvY3VycmVudC13b3JrLyNzYW5kYm94T3JpZ2luCisgICAgLy8KKyAgICAvLyBUaGVyZSdz
IGEgc3VidGxlIGRpZmZlcmVuY2UgYmV0d2VlbiBhIHVuaXF1ZSBvcmlnaW4gYW5kIGFuIG9yaWdp
biB0aGF0CisgICAgLy8gaGFzIHRoZSBTYW5kYm94T3JpZ2luIGZsYWcgc2V0LiBUaGUgbGF0dGVy
IGltcGxpZXMgdGhlIGZvcm1lciwgYW5kLCBpbgorICAgIC8vIGFkZGl0aW9uLCB0aGUgU2FuZGJv
eE9yaWdpbiBmbGFnIGlzIGluaGVyaXRlZCBieSBpZnJhbWVzLgorICAgIGJvb2wgaXNVbmlxdWUo
KSBjb25zdCB7IHJldHVybiBtX2lzVW5pcXVlOyB9CisKKyAgICAvLyBDb252ZXJ0IHRoaXMgU2Vj
dXJpdHlPcmlnaW4gaW50byBhIHN0cmluZy4gVGhlIHN0cmluZwogICAgIC8vIHJlcHJlc2VudGF0
aW9uIG9mIGEgU2VjdXJpdHlPcmlnaW4gaXMgc2ltaWxhciB0byBhIFVSTCwgZXhjZXB0IGl0Ci0g
ICAgLy8gbGFja3MgYSBwYXRoIGNvbXBvbmVudC4gIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24g
ZG9lcyBub3QgZW5jb2RlCisgICAgLy8gbGFja3MgYSBwYXRoIGNvbXBvbmVudC4gVGhlIHN0cmlu
ZyByZXByZXNlbnRhdGlvbiBkb2VzIG5vdCBlbmNvZGUKICAgICAvLyB0aGUgdmFsdWUgb2YgdGhl
IFNlY3VyaXR5T3JpZ2luJ3MgZG9tYWluIHByb3BlcnR5LgogICAgIC8vCi0gICAgLy8gV2hlbiB1
c2luZyB0aGUgc3RyaW5nIHZhbHVlLCBpdCdzIGltcG9ydGFudCB0byByZW1lbWJlciB0aGF0IGl0
Ci0gICAgLy8gbWlnaHQgYmUgIm51bGwiLiAgVGhpcyBoYXBwZW5zIHdoZW4gdGhpcyBTZWN1cml0
eU9yaWdpbiBoYXMKLSAgICAvLyBub0FjY2VzcyB0byBvdGhlciBTZWN1cml0eU9yaWdpbnMuICBG
b3IgZXhhbXBsZSwgdGhpcyBTZWN1cml0eU9yaWdpbgotICAgIC8vIG1pZ2h0IGhhdmUgY29tZSBm
cm9tIGEgZGF0YSBVUkwsIHRoZSBTZWN1cml0eU9yaWdpbiBtaWdodCBiZSBlbXB0eSwKLSAgICAv
LyBvciB3ZSBtaWdodCBoYXZlIGV4cGxpY2l0bHkgZGVjaWRlZCB0aGF0IHdlCi0gICAgLy8gc2hv
dWxkVHJlYXRVUkxTY2hlbWVBc05vQWNjZXNzLgorICAgIC8vIFdoZW4gdXNpbmcgdGhlIHN0cmlu
ZyB2YWx1ZSwgaXQncyBpbXBvcnRhbnQgdG8gcmVtZW1iZXIgdGhhdCBpdCBtaWdodCBiZQorICAg
IC8vICJudWxsIi4gVGhpcyBoYXBwZW5zIHdoZW4gdGhpcyBTZWN1cml0eU9yaWdpbiBpcyB1bmlx
dWUuIEZvciBleGFtcGxlLAorICAgIC8vIHRoaXMgU2VjdXJpdHlPcmlnaW4gbWlnaHQgaGF2ZSBj
b21lIGZyb20gYSBzYW5kYm94ZWQgaWZyYW1lLCB0aGUKKyAgICAvLyBTZWN1cml0eU9yaWdpbiBt
aWdodCBiZSBlbXB0eSwgb3Igd2UgbWlnaHQgaGF2ZSBleHBsaWNpdGx5IGRlY2lkZWQgdGhhdAor
ICAgIC8vIHdlIHNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2Vzcy4KICAgICBTdHJpbmcgdG9T
dHJpbmcoKSBjb25zdDsKIAogICAgIC8vIFNlcmlhbGl6ZSB0aGUgc2VjdXJpdHkgb3JpZ2luIHRv
IGEgc3RyaW5nIHRoYXQgY291bGQgYmUgdXNlZCBhcyBwYXJ0IG9mCkBAIC0xNDYsNyArMTUzLDcg
QEAgcHVibGljOgogICAgIFN0cmluZyBkYXRhYmFzZUlkZW50aWZpZXIoKSBjb25zdDsKIAogICAg
IC8vIFRoaXMgbWV0aG9kIGNoZWNrcyBmb3IgZXF1YWxpdHkgYmV0d2VlbiBTZWN1cml0eU9yaWdp
bnMsIG5vdCB3aGV0aGVyCi0gICAgLy8gb25lIG9yaWdpbiBjYW4gYWNjZXNzIGFub3RoZXIuICBJ
dCBpcyB1c2VkIGZvciBoYXNoIHRhYmxlIGtleXMuCisgICAgLy8gb25lIG9yaWdpbiBjYW4gYWNj
ZXNzIGFub3RoZXIuIEl0IGlzIHVzZWQgZm9yIGhhc2ggdGFibGUga2V5cy4KICAgICAvLyBGb3Ig
YWNjZXNzIGNoZWNrcywgdXNlIGNhbkFjY2VzcygpLgogICAgIC8vIEZJWE1FOiBJZiB0aGlzIG1l
dGhvZCBpcyByZWFsbHkgb25seSB1c2VmdWwgZm9yIGhhc2ggdGFibGUga2V5cywgaXQKICAgICAv
LyBzaG91bGQgYmUgcmVmYWN0b3JlZCBpbnRvIFNlY3VyaXR5T3JpZ2luSGFzaC4KQEAgLTE4Mywx
MiArMTkwLDEyIEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU2VjdXJpdHlPcmlnaW4oY29uc3Qg
S1VSTCYpOwogICAgIGV4cGxpY2l0IFNlY3VyaXR5T3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
Kik7CiAKKyAgICBTYW5kYm94RmxhZ3MgbV9zYW5kYm94RmxhZ3M7CiAgICAgU3RyaW5nIG1fcHJv
dG9jb2w7CiAgICAgU3RyaW5nIG1faG9zdDsKICAgICBTdHJpbmcgbV9kb21haW47CiAgICAgdW5z
aWduZWQgc2hvcnQgbV9wb3J0OwotICAgIFNhbmRib3hGbGFncyBtX3NhbmRib3hGbGFnczsKLSAg
ICBib29sIG1fbm9BY2Nlc3M7CisgICAgYm9vbCBtX2lzVW5pcXVlOwogICAgIGJvb2wgbV91bml2
ZXJzYWxBY2Nlc3M7CiAgICAgYm9vbCBtX2RvbWFpbldhc1NldEluRE9NOwogICAgIGJvb2wgbV9j
YW5Mb2FkTG9jYWxSZXNvdXJjZXM7Cg==
</data>
<flag name="review"
          id="28456"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>