<?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>32368</bug_id>
          
          <creation_ts>2009-12-10 01:50:38 -0800</creation_ts>
          <short_desc>Add defensive initialization of iframe sandbox flags</short_desc>
          <delta_ts>2010-01-10 16:48:54 -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>170373</commentid>
    <comment_count>0</comment_count>
    <who name="Patrik Persson">patrik.j.persson</who>
    <bug_when>2009-12-10 01:50:38 -0800</bug_when>
    <thetext>This is a followup to bug 21288, which concerned the implementation of
the HTML5 iframe sandbox attribute.  I&apos;m curious whether it would be
possible to use more defensive initial values for the sandbox flags
than the current default of &quot;SandboxNone&quot; (indicating no sandboxing at
all).

This defensive technique is, to me, primarily about finding current
bugs and preventing future ones.  It is a design challenge rather than
a functional bug, so I don&apos;t have a test case to share.

Three classes contain such sandbox flags: HTMLFrameOwnerElement,
FrameLoader and SecurityOrigin.  I imagine three steps:

  1. On object instantiation, the sandbox flags are set to a defensive
     default value (SandboxAll, possibly including a special flag
     indicating an illegal value).

  2. At some point between 1 and 3, we know of a better value for the
     sandbox flags, and assign that value to the flags.

  3. We now start making decisions based on the sandbox flags.  To
     ensure that step 2 actually happened, we could ASSERT that the
     flag for an illegal value is not set.

The design challenge is to ensure step 2 always happens before step 3.
It was straight-forward for the FrameLoader (that part was included in
the landed patch for bug 21288), but not for HTMLFrameOwnerElement and
SecurityOrigin.  I wrote down some observations on this in the thread
for bug 21288, comment #58:

https://bugs.webkit.org/show_bug.cgi?id=21288#c58</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170595</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-10 17:25:55 -0800</bug_when>
    <thetext>I think for HTMLFrameOwnerElement this issue probably doesn&apos;t apply. Using the DOM you can create a frame element a step at a time, and you can start using it at any point, so there is no real &quot;illegal value&quot; time for the DOM elements.

For SecurityOrigin I think we might be able to make it happen, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179124</commentid>
    <comment_count>2</comment_count>
      <attachid>46230</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-10 00:58:35 -0800</bug_when>
    <thetext>Created attachment 46230
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179167</commentid>
    <comment_count>3</comment_count>
      <attachid>46242</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-10 13:12:19 -0800</bug_when>
    <thetext>Created attachment 46242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179186</commentid>
    <comment_count>4</comment_count>
      <attachid>46242</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-01-10 16:11:32 -0800</bug_when>
    <thetext>Comment on attachment 46242
Patch

&gt;      if (shouldTreatURLSchemeAsNoAccess(m_protocol))
&gt;          m_isUnique = true;
&gt;  
&gt; -    // If this ASSERT becomes false in the future, please consider the impact
&gt; -    // of m_sandoxFlags on m_isUnique.
&gt; -    ASSERT(m_sandboxFlags == SandboxNone);
&gt; +    if (isSandboxed(SandboxOrigin))
&gt; +        m_isUnique = true;

I suggest initializing m_unique to the correct value from the outset.

    m_isUnique(shouldTreatURLSchemeAsNoAccess(m_protocol) || isSandboxed(SandboxOrigin))

To some the if statements may be slightly clearer, so it seems OK to leave it this way if you think that way.

&gt; +    static PassRefPtr&lt;SecurityOrigin&gt; create(const KURL&amp;, SandboxFlags sandboxFlags = SandboxNone);

The argument name isn&apos;t needed here because the type speaks for itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179187</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-10 16:13:38 -0800</bug_when>
    <thetext>&gt; &gt; +    static PassRefPtr&lt;SecurityOrigin&gt; create(const KURL&amp;, SandboxFlags sandboxFlags = SandboxNone);
&gt; 
&gt; The argument name isn&apos;t needed here because the type speaks for itself.

Oh, I didn&apos;t know you could omit the argument name and provide a default value.

Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179193</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-10 16:48:54 -0800</bug_when>
    <thetext>Comments addressed and landed in http://trac.webkit.org/changeset/53056</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46230</attachid>
            <date>2010-01-10 00:58:35 -0800</date>
            <delta_ts>2010-01-10 13:12:16 -0800</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-32368-20100110005833.patch</filename>
            <type>text/plain</type>
            <size>11288</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNjg2MzdiLi5kNzNjNjE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDEt
MTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZGVmZW5zaXZlIGluaXRpYWxpemF0aW9u
IG9mIGlmcmFtZSBzYW5kYm94IGZsYWdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMjM2OAorCisgICAgICAgIFRlc3QgdGhlIG11dGF0aW5nIHRoZSBh
bGxvdy1zYW1lLW9yaWdpbiBkaXJlY3RpdmUgaW4gdGhlIHNhbmRib3gKKyAgICAgICAgYXR0cmli
dXRlIGRvZXMgbm90IGFmZmVjdCB0aGUgY3VycmVudCBkb2N1bWVudCAoYnV0IGRvZXMgYWZmZWN0
IHRoZQorICAgICAgICBuZXh0IGRvY3VtZW50KS4KKworICAgICAgICAqIGZhc3QvZnJhbWVzL3Jl
c291cmNlcy9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1hZGQtc3RlcDEuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mcmFtZXMvcmVzb3VyY2VzL3NhbmRib3hlZC1pZnJhbWUtb3JpZ2luLWFk
ZC1zdGVwMi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9yZXNvdXJjZXMvc2Fu
ZGJveGVkLWlmcmFtZS1vcmlnaW4tcmVtb3ZlLXN0ZXAxLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZnJhbWVzL3Jlc291cmNlcy9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1yZW1vdmUtc3Rl
cDIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1v
cmlnaW4tYWRkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZnJhbWVzL3NhbmRib3hlZC1p
ZnJhbWUtb3JpZ2luLXJlbW92ZS5odG1sOiBBZGRlZC4KKwogMjAxMC0wMS0wOSAgRGFuaWVsIEJh
dGVzICA8ZGJhdGVzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTm8gcmV2aWV3LCByb2xsaW5nIG91
dCByNTMwNDQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMv
c2FuZGJveGVkLWlmcmFtZS1vcmlnaW4tYWRkLXN0ZXAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9yZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFtZS1vcmlnaW4tYWRkLXN0ZXAxLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM3OWU3NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3Jlc291cmNlcy9zYW5kYm94ZWQtaWZyYW1l
LW9yaWdpbi1hZGQtc3RlcDEuaHRtbApAQCAtMCwwICsxLDExIEBACis8c2NyaXB0Pgord2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZXZ0KSB7CisgICAgdHJ5IHsK
KyAgICAgICAgdG9wLmZhaWwoKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgdG9wLnBvc3RN
ZXNzYWdlKCJzdGVwMS1kb25lIiwgIioiKTsKKyAgICB9Cit9LCBmYWxzZSk7CisKK3RvcC5wb3N0
TWVzc2FnZSgic3RlcDEtcmVhZHkiLCAiKiIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFtZS1vcmlnaW4tYWRk
LXN0ZXAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvc2FuZGJveGVk
LWlmcmFtZS1vcmlnaW4tYWRkLXN0ZXAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMDdmZDc3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL3Jlc291cmNlcy9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1hZGQtc3RlcDIuaHRtbApAQCAt
MCwwICsxLDMgQEAKKzxzY3JpcHQ+Cit0b3AucGFzcygpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFtZS1vcmln
aW4tcmVtb3ZlLXN0ZXAxLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMv
c2FuZGJveGVkLWlmcmFtZS1vcmlnaW4tcmVtb3ZlLXN0ZXAxLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZmNmYWYwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL3Jlc291cmNlcy9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1yZW1vdmUt
c3RlcDEuaHRtbApAQCAtMCwwICsxLDggQEAKKzxzY3JpcHQ+Cit3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uIChldnQpIHsKKyAgICB0b3AucGFzcygpOworICAgIHRv
cC5wb3N0TWVzc2FnZSgic3RlcDEtZG9uZSIsICIqIik7Cit9LCBmYWxzZSk7CisKK3RvcC5wb3N0
TWVzc2FnZSgic3RlcDEtcmVhZHkiLCAiKiIpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFtZS1vcmlnaW4tcmVt
b3ZlLXN0ZXAyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9yZXNvdXJjZXMvc2FuZGJv
eGVkLWlmcmFtZS1vcmlnaW4tcmVtb3ZlLXN0ZXAyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMmE5MmE2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL3Jlc291cmNlcy9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1yZW1vdmUtc3RlcDIu
aHRtbApAQCAtMCwwICsxLDcgQEAKKzxzY3JpcHQ+Cit0cnkgeworICAgIHRvcC5mYWlsKCk7Cit9
IGNhdGNoKGUpIHsKKyAgICB0b3AucG9zdE1lc3NhZ2UoInN0ZXAyLWRvbmUiLCAiKiIpOworfQor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQt
aWZyYW1lLW9yaWdpbi1hZGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NhbmRib3hl
ZC1pZnJhbWUtb3JpZ2luLWFkZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmE5NDkxYjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9z
YW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1hZGQuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgdmFy
IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRpdi5pbm5lclRleHQg
PSBtc2c7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGls
ZChkaXYpOworfQorCitmdW5jdGlvbiBmYWlsKCkgeworICAgIGxvZygiRkFJTDogVGhlIG9yaWdp
biBvZiB0aGUgZG9jdW1lbnQgd2FzIG11dGF0ZWQuIik7Cit9CisKK2Z1bmN0aW9uIHBhc3MoKSB7
CisgICAgbG9nKCJQQVNTIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK3dpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGV2dCkgeworICAgIHZhciBm
ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aGVGcmFtZSIpOworICAgIGlmIChlLmRhdGEg
PT0gInN0ZXAxLXJlYWR5IikgeworICAgICAgICBmci5zYW5kYm94ID0gImFsbG93LXNjcmlwdHMg
YWxsb3ctc2FtZS1vcmlnaW4iOworICAgICAgICBmci5jb250ZW50V2luZG93LnBvc3RNZXNzYWdl
KCJnbyIsICIqIik7CisgICAgfSBlbHNlIGlmIChlLmRhdGEgPT0gInN0ZXAxLWRvbmUiKQorICAg
ICAgICBmci5zcmMgPSAicmVzb3VyY2VzL3NhbmRib3hlZC1pZnJhbWUtb3JpZ2luLWFkZC1zdGVw
Mi5odG1sIjsKK30sIGZhbHNlKTsKKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5PgorPHA+
VGVzdCB0aGF0IGFkZGluZyBhbGxvdy1vcmlnaW4gYWZ0ZXIgY3JlYXRpbmcgYW4gaWZyYW1lIGRv
ZXNuJ3QgbW9kaWZ5Cit0aGUgb3JpZ2luIG9mIGFuIGV4aXN0aW5nIGRvY3VtZW50LCBidXQgaXQg
ZG9lc24gbW9kaWZ5IHRoZSBvcmlnaW4gb2YgdGhlCituZXh0IGRvY3VtZW50LjwvcD4KKworPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CisgCis8aWZyYW1lIGlkPSJ0aGVGcmFtZSIgc2FuZGJveD0i
YWxsb3ctc2NyaXB0cyIKKyAgICAgICAgc3JjPSJyZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFtZS1v
cmlnaW4tYWRkLXN0ZXAxLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1y
ZW1vdmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUtb3Jp
Z2luLXJlbW92ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBiNGI4
NTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQt
aWZyYW1lLW9yaWdpbi1yZW1vdmUuaHRtbApAQCAtMCwwICsxLDUwIEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgdmFyIGRpdiA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRpdi5pbm5lclRleHQgPSBtc2c7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChkaXYp
OworfQorCitmdW5jdGlvbiBmYWlsKCkgeworICAgIGxvZygiRkFJTDogVGhlIG9yaWdpbiBvZiB0
aGUgZG9jdW1lbnQgd2FzIG11dGF0ZWQuIik7Cit9CisKK2Z1bmN0aW9uIHBhc3MoKSB7CisgICAg
bG9nKCJQQVNTIik7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVu
Y3Rpb24gKGV2dCkgeworICAgIHZhciBmciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aGVG
cmFtZSIpOworICAgIGlmIChlLmRhdGEgPT0gInN0ZXAxLXJlYWR5IikgeworICAgICAgICBmci5z
YW5kYm94ID0gImFsbG93LXNjcmlwdHMiOworICAgICAgICBmci5jb250ZW50V2luZG93LnBvc3RN
ZXNzYWdlKCJnbyIsICIqIik7CisgICAgfSBlbHNlIGlmIChlLmRhdGEgPT0gInN0ZXAxLWRvbmUi
KQorICAgICAgICBmci5zcmMgPSAicmVzb3VyY2VzL3NhbmRib3hlZC1pZnJhbWUtb3JpZ2luLXJl
bW92ZS1zdGVwMi5odG1sIjsKKyAgICBlbHNlIGlmIChlLmRhdGEgPT0gInN0ZXAyLWRvbmUiKSB7
CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9LCBmYWxzZSk7CisK
Kzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKzxwPlRlc3QgdGhhdCByZW1vdmluZyBhbGxv
dy1vcmlnaW4gYWZ0ZXIgY3JlYXRpbmcgYW4gaWZyYW1lIGRvZXNuJ3QgbW9kaWZ5Cit0aGUgb3Jp
Z2luIG9mIGFuIGV4aXN0aW5nIGRvY3VtZW50LCBidXQgaXQgZG9lc24gbW9kaWZ5IHRoZSBvcmln
aW4gb2YgdGhlCituZXh0IGRvY3VtZW50LjwvcD4KKworPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisgCis8aWZyYW1lIGlkPSJ0aGVGcmFtZSIgc2FuZGJveD0iYWxsb3ctc2NyaXB0cyBhbGxvdy1z
YW1lLW9yaWdpbiIKKyAgICAgICAgc3JjPSJyZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFtZS1vcmln
aW4tcmVtb3ZlLXN0ZXAxLmh0bWwiPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNiYjY3
ZDMuLjYwMWY3OWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMjYgQEAKIDIwMTAtMDEtMTAgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgZGVmZW5zaXZlIGluaXRpYWxpemF0aW9uIG9mIGlmcmFtZSBzYW5kYm94IGZs
YWdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjM2
OAorCisgICAgICAgIFdlIG5vdyBpbml0aWFsaXplIHRoZSBTZWN1cml0eU9yaWdpbidzIHNhbmRi
b3ggc3RhdGUgZGlyZWN0bHkgZHVpbmcKKyAgICAgICAgY29uc3RydWN0aW9uLiAgVGhpcyBsZXRz
IHVzIHByb3Blcmx5IHNldCB0aGUgaXNVbmlxdWUgYml0LgorCisgICAgICAgIFRlc3RzOiBmYXN0
L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1hZGQuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1vcmlnaW4tcmVtb3ZlLmh0bWwKKworICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6aW5pdFNl
Y3VyaXR5Q29udGV4dCk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAo
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbjo6c2V0U2FuZGJveEZsYWdzKToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3Jp
Z2luLmg6CisKKzIwMTAtMDEtMTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwog
ICAgICAgICBVbnJldmlld2VkIHdoaXRlc3BhY2UgZml4ZXMuCiAKICAgICAgICAgKiBodG1sL0hU
TUxGcmFtZU93bmVyRWxlbWVudC5jcHA6CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZmUyNGE1Ny4uMzc2MzVmOCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcApAQCAtNDM0MCwxMCArNDM0MCw4IEBAIHZvaWQgRG9jdW1lbnQ6OmluaXRTZWN1
cml0eUNvbnRleHQoKQogICAgIC8vIGxvYWRpbmcgVVJMLgogICAgIGNvbnN0IEtVUkwmIHVybCA9
IG1fZnJhbWUtPmxvYWRlcigpLT51cmwoKTsKICAgICBtX2Nvb2tpZVVSTCA9IHVybDsKLSAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKHVybCkpOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNldFNlY3VyaXR5T3Jp
Z2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsLCBtX2ZyYW1lLT5sb2FkZXIoKS0+c2FuZGJv
eEZsYWdzKCkpKTsKIAotICAgIHVwZGF0ZVNhbmRib3hGbGFncygpOwotIAogICAgIGlmIChTZWN1
cml0eU9yaWdpbjo6YWxsb3dTdWJzdGl0dXRlRGF0YUFjY2Vzc1RvTG9jYWwoKSkgewogICAgICAg
ICAvLyBJZiB0aGlzIGRvY3VtZW50IHdhcyBsb2FkZWQgd2l0aCBzdWJzdGl0dXRlRGF0YSwgdGhl
biB0aGUgZG9jdW1lbnQgY2FuCiAgICAgICAgIC8vIGxvYWQgbG9jYWwgcmVzb3VyY2VzLiAgU2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc1NgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBiL1dlYkNvcmUvcGFnZS9TZWN1cml0
eU9yaWdpbi5jcHAKaW5kZXggY2RjODBiYy4uNWQyYjM4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5T3JpZ2luLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
Y3BwCkBAIC03Nyw4ICs3Nyw4IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBzY2hlbWVzV2l0aFVu
aXF1ZU9yaWdpbnMoKQogICAgIHJldHVybiBzY2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnM7CiB9CiAK
LVNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbihjb25zdCBLVVJMJiB1cmwpCi0gICAgOiBt
X3NhbmRib3hGbGFncyhTYW5kYm94Tm9uZSkKK1NlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdp
bihjb25zdCBLVVJMJiB1cmwsIFNhbmRib3hGbGFncyBzYW5kYm94RmxhZ3MpCisgICAgOiBtX3Nh
bmRib3hGbGFncyhzYW5kYm94RmxhZ3MpCiAgICAgLCBtX3Byb3RvY29sKHVybC5wcm90b2NvbCgp
LmlzTnVsbCgpID8gIiIgOiB1cmwucHJvdG9jb2woKS5sb3dlcigpKQogICAgICwgbV9ob3N0KHVy
bC5ob3N0KCkuaXNOdWxsKCkgPyAiIiA6IHVybC5ob3N0KCkubG93ZXIoKSkKICAgICAsIG1fcG9y
dCh1cmwucG9ydCgpKQpAQCAtOTQsOSArOTQsOCBAQCBTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlP
cmlnaW4oY29uc3QgS1VSTCYgdXJsKQogICAgIGlmIChzaG91bGRUcmVhdFVSTFNjaGVtZUFzTm9B
Y2Nlc3MobV9wcm90b2NvbCkpCiAgICAgICAgIG1faXNVbmlxdWUgPSB0cnVlOwogCi0gICAgLy8g
SWYgdGhpcyBBU1NFUlQgYmVjb21lcyBmYWxzZSBpbiB0aGUgZnV0dXJlLCBwbGVhc2UgY29uc2lk
ZXIgdGhlIGltcGFjdAotICAgIC8vIG9mIG1fc2FuZG94RmxhZ3Mgb24gbV9pc1VuaXF1ZS4KLSAg
ICBBU1NFUlQobV9zYW5kYm94RmxhZ3MgPT0gU2FuZGJveE5vbmUpOworICAgIGlmIChpc1NhbmRi
b3hlZChTYW5kYm94T3JpZ2luKSkKKyAgICAgICAgbV9pc1VuaXF1ZSA9IHRydWU7CiAKICAgICAv
LyBkb2N1bWVudC5kb21haW4gc3RhcnRzIGFzIG1faG9zdCwgYnV0IGNhbiBiZSBzZXQgYnkgdGhl
IERPTS4KICAgICBtX2RvbWFpbiA9IG1faG9zdDsKQEAgLTEzMSwxMSArMTMwLDExIEBAIGJvb2wg
U2VjdXJpdHlPcmlnaW46OmlzRW1wdHkoKSBjb25zdAogICAgIHJldHVybiBtX3Byb3RvY29sLmlz
RW1wdHkoKTsKIH0KIAotUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZShjb25zdCBLVVJMJiB1cmwpCitQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKGNvbnN0IEtVUkwmIHVybCwgU2FuZGJveEZsYWdzIHNhbmRib3hG
bGFncykKIHsKICAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU2VjdXJpdHlPcmlnaW4oS1VSTCgpKSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
ZWN1cml0eU9yaWdpbih1cmwpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlY3VyaXR5T3Jp
Z2luKHVybCwgc2FuZGJveEZsYWdzKSk7CiB9CiAKIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVFbXB0eSgpCkBAIC0yNzEsMTggKzI3MCwxMSBAQCB2b2lk
IFNlY3VyaXR5T3JpZ2luOjpncmFudFVuaXZlcnNhbEFjY2VzcygpCiAKIHZvaWQgU2VjdXJpdHlP
cmlnaW46OnNldFNhbmRib3hGbGFncyhTYW5kYm94RmxhZ3MgZmxhZ3MpCiB7Ci0gICAgbV9zYW5k
Ym94RmxhZ3MgPSBmbGFnczsKLSAgICBpZiAoaXNTYW5kYm94ZWQoU2FuZGJveE9yaWdpbikpCi0g
ICAgICAgIG1faXNVbmlxdWUgPSB0cnVlOwotCiAgICAgLy8gQWx0aG91Z2ggeW91IG1pZ2h0IHRo
aW5rIHRoYXQgd2Ugc2hvdWxkIHNldCBtX2lzVW5pcXVlIHRvIGZhbHNlIHdoZW4KICAgICAvLyBm
bGFncyBkb2Vzbid0IGNvbnRhaW4gU2FuZGJveE9yaWdpbiwgdGhhdCdzIG5vdCBhY3R1YWxseSB0
aGUgcmlnaHQKICAgICAvLyBiZWhhdmlvci4gV2UncmUgc3VwcG9zZWQgdG8gZnJlZXplIHRoZSBv
cmlnaW4gb2YgYSBkb2N1bWVudCB3aGVuIGl0CiAgICAgLy8gaXMgY3JlYXRlZCwgZXZlbiBpZiB0
aGUgc2FuZGJveCBmbGFncyBjaGFuZ2UgYWZ0ZXIgdGhhdCBwb2ludCBpbiB0aW1lLgotICAgIC8v
Ci0gICAgLy8gRklYTUU6IE91ciBjdXJyZW50IGJlaGF2aW9yIGhlcmUgaXMgYnVnZ3kgYmVjYXVz
ZSB3ZSBuZWVkIHRvCi0gICAgLy8gICAgICAgIGRpc3Rpbmd1aXNoIGJldHdlZW4gdGhlIHNhbmRi
b3ggZmxhZ3MgYXQgY3JlYXRpb24gYW5kIHRoZQotICAgIC8vICAgICAgICBzYW5kYm94IGZsYWdz
IHRoYXQgbWlnaHQgY29tZSBhYm91dCBsYXRlci4KKyAgICBtX3NhbmRib3hGbGFncyA9IGZsYWdz
OwogfQogCiBib29sIFNlY3VyaXR5T3JpZ2luOjppc0xvY2FsKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3Jp
Z2luLmgKaW5kZXggNGE2ZWIzYy4uYTlmOTg1NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1Nl
Y3VyaXR5T3JpZ2luLmgKKysrIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKQEAgLTQ5
LDcgKzQ5LDcgQEAgY2xhc3MgU2VjdXJpdHlPcmlnaW4gOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJl
ZDxTZWN1cml0eU9yaWdpbj4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOwog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVGcm9tU3RyaW5nKGNv
bnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVh
dGUoY29uc3QgS1VSTCYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBj
cmVhdGUoY29uc3QgS1VSTCYsIFNhbmRib3hGbGFncyBzYW5kYm94RmxhZ3MgPSBTYW5kYm94Tm9u
ZSk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZUVtcHR5KCk7
CiAKICAgICAvLyBDcmVhdGUgYSBkZWVwIGNvcHkgb2YgdGhpcyBTZWN1cml0eU9yaWdpbi4gVGhp
cyBtZXRob2QgaXMgdXNlZnVsCkBAIC0xODcsNyArMTg3LDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cygpOwogCiBwcml2YXRlOgotICAgIGV4
cGxpY2l0IFNlY3VyaXR5T3JpZ2luKGNvbnN0IEtVUkwmKTsKKyAgICBTZWN1cml0eU9yaWdpbihj
b25zdCBLVVJMJiwgU2FuZGJveEZsYWdzKTsKICAgICBleHBsaWNpdCBTZWN1cml0eU9yaWdpbihj
b25zdCBTZWN1cml0eU9yaWdpbiopOwogCiAgICAgU2FuZGJveEZsYWdzIG1fc2FuZGJveEZsYWdz
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46242</attachid>
            <date>2010-01-10 13:12:19 -0800</date>
            <delta_ts>2010-01-10 16:11:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-32368-20100110131218.patch</filename>
            <type>text/plain</type>
            <size>14563</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNjg2MzdiLi44MGQ4NWQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDEt
MTAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgZGVmZW5zaXZlIGluaXRpYWxpemF0aW9u
IG9mIGlmcmFtZSBzYW5kYm94IGZsYWdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zMjM2OAorCisgICAgICAgIFRlc3QgdGhlIG11dGF0aW5nIHRoZSBh
bGxvdy1zYW1lLW9yaWdpbiBkaXJlY3RpdmUgaW4gdGhlIHNhbmRib3gKKyAgICAgICAgYXR0cmli
dXRlIGRvZXMgbm90IGFmZmVjdCB0aGUgY3VycmVudCBkb2N1bWVudCAoYnV0IGRvZXMgYWZmZWN0
IHRoZQorICAgICAgICBuZXh0IGRvY3VtZW50KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvcmVzb3VyY2VzL3NhbmRib3hlZC1pZnJhbWUtb3JpZ2luLWFkZC1zdGVwMS5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9zYW5kYm94ZWQt
aWZyYW1lLW9yaWdpbi1hZGQtc3RlcDIuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS9yZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFtZS1vcmlnaW4tcmVtb3ZlLXN0ZXAx
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3Nh
bmRib3hlZC1pZnJhbWUtb3JpZ2luLXJlbW92ZS1zdGVwMi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NhbmRib3hlZC1pZnJhbWUtb3JpZ2luLWFkZC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvc2FuZGJveGVkLWlm
cmFtZS1vcmlnaW4tYWRkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvc2FuZGJveGVkLWlmcmFtZS1vcmlnaW4tcmVtb3ZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1yZW1v
dmUuaHRtbDogQWRkZWQuCisKIDIwMTAtMDEtMDkgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIE5vIHJldmlldywgcm9sbGluZyBvdXQgcjUzMDQ0LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvc2FuZGJveGVk
LWlmcmFtZS1vcmlnaW4tYWRkLXN0ZXAxLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3Jlc291cmNlcy9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1hZGQtc3RlcDEuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42Yzc5ZTc3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvc2FuZGJveGVk
LWlmcmFtZS1vcmlnaW4tYWRkLXN0ZXAxLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPHNjcmlwdD4K
K3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGV2dCkgeworICAg
IHRyeSB7CisgICAgICAgIHRvcC5mYWlsKCk7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIHRv
cC5wb3N0TWVzc2FnZSgic3RlcDEtZG9uZSIsICIqIik7CisgICAgfQorfSwgZmFsc2UpOworCit0
b3AucG9zdE1lc3NhZ2UoInN0ZXAxLXJlYWR5IiwgIioiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvc2FuZGJveGVkLWlm
cmFtZS1vcmlnaW4tYWRkLXN0ZXAyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3Jlc291cmNlcy9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1hZGQtc3RlcDIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2ZkNzc2Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvc2FuZGJveGVkLWlm
cmFtZS1vcmlnaW4tYWRkLXN0ZXAyLmh0bWwKQEAgLTAsMCArMSwzIEBACis8c2NyaXB0PgordG9w
LnBhc3MoKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFtZS1vcmlnaW4tcmVtb3ZlLXN0ZXAxLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9zYW5kYm94ZWQt
aWZyYW1lLW9yaWdpbi1yZW1vdmUtc3RlcDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mY2ZhZjA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFtZS1vcmlnaW4tcmVtb3ZlLXN0
ZXAxLmh0bWwKQEAgLTAsMCArMSw4IEBACis8c2NyaXB0Pgord2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbiAoZXZ0KSB7CisgICAgdG9wLnBhc3MoKTsKKyAgICB0b3Au
cG9zdE1lc3NhZ2UoInN0ZXAxLWRvbmUiLCAiKiIpOworfSwgZmFsc2UpOworCit0b3AucG9zdE1l
c3NhZ2UoInN0ZXAxLXJlYWR5IiwgIioiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFtZS1vcmln
aW4tcmVtb3ZlLXN0ZXAyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1yZW1vdmUtc3RlcDIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTkyYTYwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFt
ZS1vcmlnaW4tcmVtb3ZlLXN0ZXAyLmh0bWwKQEAgLTAsMCArMSw3IEBACis8c2NyaXB0PgordHJ5
IHsKKyAgICB0b3AuZmFpbCgpOworfSBjYXRjaChlKSB7CisgICAgdG9wLnBvc3RNZXNzYWdlKCJz
dGVwMi1kb25lIiwgIioiKTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1hZGQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zYW5kYm94ZWQtaWZyYW1lLW9y
aWdpbi1hZGQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmIxOGQ2ZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3NhbmRib3hlZC1pZnJhbWUtb3JpZ2luLWFkZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2
IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0
byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Nh
bmRib3hlZC1pZnJhbWUtb3JpZ2luLWFkZC5odG1sIGZyb20gZnJhbWUgd2l0aCBVUkwgaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9zYW5kYm94ZWQtaWZyYW1lLW9yaWdp
bi1hZGQtc3RlcDEuaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNo
LgorCitUZXN0IHRoYXQgYWRkaW5nIGFsbG93LW9yaWdpbiBhZnRlciBjcmVhdGluZyBhbiBpZnJh
bWUgZG9lc24ndCBtb2RpZnkgdGhlIG9yaWdpbiBvZiBhbiBleGlzdGluZyBkb2N1bWVudCwgYnV0
IGl0IGRvZXNuIG1vZGlmeSB0aGUgb3JpZ2luIG9mIHRoZSBuZXh0IGRvY3VtZW50LgorCitQQVNT
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FuZGJveGVk
LWlmcmFtZS1vcmlnaW4tYWRkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3NhbmRib3hlZC1pZnJhbWUtb3JpZ2luLWFkZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjliZjNlN2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3NhbmRib3hlZC1pZnJhbWUtb3JpZ2luLWFkZC5odG1sCkBAIC0wLDAg
KzEsNTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxv
Zyhtc2cpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Cisg
ICAgZGl2LmlubmVyVGV4dCA9IG1zZzsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmFwcGVuZENoaWxkKGRpdik7Cit9CisKK2Z1bmN0aW9uIGZhaWwoKSB7CisgICAgbG9n
KCJGQUlMOiBUaGUgb3JpZ2luIG9mIHRoZSBkb2N1bWVudCB3YXMgbXV0YXRlZC4iKTsKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHBhc3MoKSB7CisgICAgbG9nKCJQQVNT
Iik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibWVzc2FnZSIsIGZ1bmN0aW9uIChldnQpIHsKKyAgICB2YXIgZnIgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGhlRnJhbWUiKTsKKyAgICBpZiAoZXZ0LmRhdGEgPT0gInN0ZXAxLXJlYWR5
IikgeworICAgICAgICBmci5zYW5kYm94ID0gImFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmln
aW4iOworICAgICAgICBmci5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKCJnbyIsICIqIik7Cisg
ICAgfSBlbHNlIGlmIChldnQuZGF0YSA9PSAic3RlcDEtZG9uZSIpCisgICAgICAgIGZyLnNyYyA9
ICJyZXNvdXJjZXMvc2FuZGJveGVkLWlmcmFtZS1vcmlnaW4tYWRkLXN0ZXAyLmh0bWwiOworfSwg
ZmFsc2UpOworCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+Cis8cD5UZXN0IHRoYXQgYWRk
aW5nIGFsbG93LW9yaWdpbiBhZnRlciBjcmVhdGluZyBhbiBpZnJhbWUgZG9lc24ndCBtb2RpZnkK
K3RoZSBvcmlnaW4gb2YgYW4gZXhpc3RpbmcgZG9jdW1lbnQsIGJ1dCBpdCBkb2VzbiBtb2RpZnkg
dGhlIG9yaWdpbiBvZiB0aGUKK25leHQgZG9jdW1lbnQuPC9wPgorCis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKyAKKzxpZnJhbWUgaWQ9InRoZUZyYW1lIiBzYW5kYm94PSJhbGxvdy1zY3JpcHRz
IgorICAgICAgICBzcmM9InJlc291cmNlcy9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1hZGQtc3Rl
cDEuaHRtbCI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FuZGJveGVkLWlmcmFtZS1vcmlnaW4tcmVtb3Zl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2FuZGJveGVk
LWlmcmFtZS1vcmlnaW4tcmVtb3ZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5mZGEyMjBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1yZW1vdmUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFVuc2FmZSBKYXZh
U2NyaXB0IGF0dGVtcHQgdG8gYWNjZXNzIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9zZWN1cml0eS9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1yZW1vdmUuaHRtbCBmcm9tIGZy
YW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvc2Fu
ZGJveGVkLWlmcmFtZS1vcmlnaW4tcmVtb3ZlLXN0ZXAyLmh0bWwuIERvbWFpbnMsIHByb3RvY29s
cyBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KKworVGVzdCB0aGF0IHJlbW92aW5nIGFsbG93LW9yaWdp
biBhZnRlciBjcmVhdGluZyBhbiBpZnJhbWUgZG9lc24ndCBtb2RpZnkgdGhlIG9yaWdpbiBvZiBh
biBleGlzdGluZyBkb2N1bWVudCwgYnV0IGl0IGRvZXNuIG1vZGlmeSB0aGUgb3JpZ2luIG9mIHRo
ZSBuZXh0IGRvY3VtZW50LgorCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvc2FuZGJveGVkLWlmcmFtZS1vcmlnaW4tcmVtb3ZlLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbmRib3hlZC1pZnJhbWUtb3JpZ2luLXJlbW92
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlNTMzYTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NhbmRib3hlZC1p
ZnJhbWUtb3JpZ2luLXJlbW92ZS5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtc2cpIHsKKyAgICB2YXIgZGl2ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZGl2LmlubmVyVGV4dCA9IG1zZzsK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRpdik7
Cit9CisKK2Z1bmN0aW9uIGZhaWwoKSB7CisgICAgbG9nKCJGQUlMOiBUaGUgb3JpZ2luIG9mIHRo
ZSBkb2N1bWVudCB3YXMgbXV0YXRlZC4iKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisK
K2Z1bmN0aW9uIHBhc3MoKSB7CisgICAgbG9nKCJQQVNTIik7Cit9CisKK3dpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24gKGV2dCkgeworICAgIHZhciBmciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0aGVGcmFtZSIpOworICAgIGlmIChldnQuZGF0YSA9PSAic3Rl
cDEtcmVhZHkiKSB7CisgICAgICAgIGZyLnNhbmRib3ggPSAiYWxsb3ctc2NyaXB0cyI7CisgICAg
ICAgIGZyLmNvbnRlbnRXaW5kb3cucG9zdE1lc3NhZ2UoImdvIiwgIioiKTsKKyAgICB9IGVsc2Ug
aWYgKGV2dC5kYXRhID09ICJzdGVwMS1kb25lIikKKyAgICAgICAgZnIuc3JjID0gInJlc291cmNl
cy9zYW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1yZW1vdmUtc3RlcDIuaHRtbCI7CisgICAgZWxzZSBp
ZiAoZXZ0LmRhdGEgPT0gInN0ZXAyLWRvbmUiKSB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgfQorfSwgZmFsc2UpOworCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+
Cis8cD5UZXN0IHRoYXQgcmVtb3ZpbmcgYWxsb3ctb3JpZ2luIGFmdGVyIGNyZWF0aW5nIGFuIGlm
cmFtZSBkb2Vzbid0IG1vZGlmeQordGhlIG9yaWdpbiBvZiBhbiBleGlzdGluZyBkb2N1bWVudCwg
YnV0IGl0IGRvZXNuIG1vZGlmeSB0aGUgb3JpZ2luIG9mIHRoZQorbmV4dCBkb2N1bWVudC48L3A+
CisKKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorIAorPGlmcmFtZSBpZD0idGhlRnJhbWUiIHNh
bmRib3g9ImFsbG93LXNjcmlwdHMgYWxsb3ctc2FtZS1vcmlnaW4iCisgICAgICAgIHNyYz0icmVz
b3VyY2VzL3NhbmRib3hlZC1pZnJhbWUtb3JpZ2luLXJlbW92ZS1zdGVwMS5odG1sIj4KKzwvaWZy
YW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjYmI2N2QzLi4xNjU3NDA3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAy
MDEwLTAxLTEwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGRlZmVuc2l2ZSBpbml0aWFs
aXphdGlvbiBvZiBpZnJhbWUgc2FuZGJveCBmbGFncworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIzNjgKKworICAgICAgICBXZSBub3cgaW5pdGlhbGl6
ZSB0aGUgU2VjdXJpdHlPcmlnaW4ncyBzYW5kYm94IHN0YXRlIGRpcmVjdGx5IGR1aW5nCisgICAg
ICAgIGNvbnN0cnVjdGlvbi4gIFRoaXMgbGV0cyB1cyBwcm9wZXJseSBzZXQgdGhlIGlzVW5pcXVl
IGJpdC4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9zZWN1cml0eS9zYW5kYm94ZWQtaWZy
YW1lLW9yaWdpbi1hZGQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9z
YW5kYm94ZWQtaWZyYW1lLW9yaWdpbi1yZW1vdmUuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5i
YXNlLmV4cDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlP
cmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OlNlY3VyaXR5T3Jp
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OnNldFNhbmRib3hGbGFncyk6CisgICAgICAgICog
cGFnZS9TZWN1cml0eU9yaWdpbi5oOgorCisyMDEwLTAxLTEwICBBZGFtIEJhcnRoICA8YWJhcnRo
QHdlYmtpdC5vcmc+CisKICAgICAgICAgVW5yZXZpZXdlZCB3aGl0ZXNwYWNlIGZpeGVzLgogCiAg
ICAgICAgICogaHRtbC9IVE1MRnJhbWVPd25lckVsZW1lbnQuY3BwOgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLmJhc2UuZXhwIGIvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCmluZGV4IDdl
ODU0YjQuLjMzOTlhNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAorKysg
Yi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKQEAgLTMwMCw3ICszMDAsNyBAQCBfX1pON1dlYkNv
cmUxNFNlY3VyaXR5T3JpZ2luMThzaG91bGRIaWRlUmVmZXJyZXJFUktOU180S1VSTEVSS05TXzZT
dHJpbmdFCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjRyZWdpc3RlclVSTFNjaGVtZUFz
TG9jYWxFUktOU182U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjI1d2hpdGVM
aXN0QWNjZXNzRnJvbU9yaWdpbkVSS1MwX1JLTlNfNlN0cmluZ0VTNV9iCiBfX1pON1dlYkNvcmUx
NFNlY3VyaXR5T3JpZ2luMjdyZXNldE9yaWdpbkFjY2Vzc1doaXRlTGlzdHNFdgotX19aTjdXZWJD
b3JlMTRTZWN1cml0eU9yaWdpbjZjcmVhdGVFUktOU180S1VSTEUKK19fWk43V2ViQ29yZTE0U2Vj
dXJpdHlPcmlnaW42Y3JlYXRlRVJLTlNfNEtVUkxFaQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9y
aWdpbjdjYW5Mb2FkRVJLTlNfNEtVUkxFUktOU182U3RyaW5nRVBOU184RG9jdW1lbnRFCiBfX1pO
N1dlYkNvcmUxNUFyY2hpdmVSZXNvdXJjZTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfMTJT
aGFyZWRCdWZmZXJFRUVSS05TXzRLVVJMRVJLTlNfNlN0cmluZ0VTQV9TQV9SS05TXzE2UmVzb3Vy
Y2VSZXNwb25zZUUKIF9fWk43V2ViQ29yZTE1QmFja0ZvcndhcmRMaXN0MTByZW1vdmVJdGVtRVBO
U18xMUhpc3RvcnlJdGVtRQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGZlMjRhNTcuLjM3NjM1ZjggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTQzNDAsMTAgKzQzNDAsOCBAQCB2b2lkIERvY3VtZW50Ojppbml0U2VjdXJpdHlDb250
ZXh0KCkKICAgICAvLyBsb2FkaW5nIFVSTC4KICAgICBjb25zdCBLVVJMJiB1cmwgPSBtX2ZyYW1l
LT5sb2FkZXIoKS0+dXJsKCk7CiAgICAgbV9jb29raWVVUkwgPSB1cmw7Ci0gICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6c2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1
cmwpKTsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKHVybCwgbV9mcmFtZS0+bG9hZGVyKCktPnNhbmRib3hGbGFncygp
KSk7CiAKLSAgICB1cGRhdGVTYW5kYm94RmxhZ3MoKTsKLSAKICAgICBpZiAoU2VjdXJpdHlPcmln
aW46OmFsbG93U3Vic3RpdHV0ZURhdGFBY2Nlc3NUb0xvY2FsKCkpIHsKICAgICAgICAgLy8gSWYg
dGhpcyBkb2N1bWVudCB3YXMgbG9hZGVkIHdpdGggc3Vic3RpdHV0ZURhdGEsIHRoZW4gdGhlIGRv
Y3VtZW50IGNhbgogICAgICAgICAvLyBsb2FkIGxvY2FsIHJlc291cmNlcy4gIFNlZSBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3NTYKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAgYi9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4u
Y3BwCmluZGV4IGNkYzgwYmMuLjc5NTM0YzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcApAQCAt
NzcsOCArNzcsOCBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgc2NoZW1lc1dpdGhVbmlxdWVPcmln
aW5zKCkKICAgICByZXR1cm4gc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zOwogfQogCi1TZWN1cml0
eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4oY29uc3QgS1VSTCYgdXJsKQotICAgIDogbV9zYW5kYm94
RmxhZ3MoU2FuZGJveE5vbmUpCitTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4oY29uc3Qg
S1VSTCYgdXJsLCBTYW5kYm94RmxhZ3Mgc2FuZGJveEZsYWdzKQorICAgIDogbV9zYW5kYm94Rmxh
Z3Moc2FuZGJveEZsYWdzKQogICAgICwgbV9wcm90b2NvbCh1cmwucHJvdG9jb2woKS5pc051bGwo
KSA/ICIiIDogdXJsLnByb3RvY29sKCkubG93ZXIoKSkKICAgICAsIG1faG9zdCh1cmwuaG9zdCgp
LmlzTnVsbCgpID8gIiIgOiB1cmwuaG9zdCgpLmxvd2VyKCkpCiAgICAgLCBtX3BvcnQodXJsLnBv
cnQoKSkKQEAgLTk0LDkgKzk0LDggQEAgU2VjdXJpdHlPcmlnaW46OlNlY3VyaXR5T3JpZ2luKGNv
bnN0IEtVUkwmIHVybCkKICAgICBpZiAoc2hvdWxkVHJlYXRVUkxTY2hlbWVBc05vQWNjZXNzKG1f
cHJvdG9jb2wpKQogICAgICAgICBtX2lzVW5pcXVlID0gdHJ1ZTsKIAotICAgIC8vIElmIHRoaXMg
QVNTRVJUIGJlY29tZXMgZmFsc2UgaW4gdGhlIGZ1dHVyZSwgcGxlYXNlIGNvbnNpZGVyIHRoZSBp
bXBhY3QKLSAgICAvLyBvZiBtX3NhbmRveEZsYWdzIG9uIG1faXNVbmlxdWUuCi0gICAgQVNTRVJU
KG1fc2FuZGJveEZsYWdzID09IFNhbmRib3hOb25lKTsKKyAgICBpZiAoaXNTYW5kYm94ZWQoU2Fu
ZGJveE9yaWdpbikpCisgICAgICAgIG1faXNVbmlxdWUgPSB0cnVlOwogCiAgICAgLy8gZG9jdW1l
bnQuZG9tYWluIHN0YXJ0cyBhcyBtX2hvc3QsIGJ1dCBjYW4gYmUgc2V0IGJ5IHRoZSBET00uCiAg
ICAgbV9kb21haW4gPSBtX2hvc3Q7CkBAIC0xMzEsMTEgKzEzMCwxMSBAQCBib29sIFNlY3VyaXR5
T3JpZ2luOjppc0VtcHR5KCkgY29uc3QKICAgICByZXR1cm4gbV9wcm90b2NvbC5pc0VtcHR5KCk7
CiB9CiAKLVBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUo
Y29uc3QgS1VSTCYgdXJsKQorUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlPcmln
aW46OmNyZWF0ZShjb25zdCBLVVJMJiB1cmwsIFNhbmRib3hGbGFncyBzYW5kYm94RmxhZ3MpCiB7
CiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNl
Y3VyaXR5T3JpZ2luKEtVUkwoKSkpOwotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VjdXJpdHlP
cmlnaW4odXJsKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VjdXJpdHlPcmlnaW4o
S1VSTCgpLCBzYW5kYm94RmxhZ3MpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlY3VyaXR5
T3JpZ2luKHVybCwgc2FuZGJveEZsYWdzKSk7CiB9CiAKIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVFbXB0eSgpCkBAIC0yNzEsMTggKzI3MCwxMSBAQCB2
b2lkIFNlY3VyaXR5T3JpZ2luOjpncmFudFVuaXZlcnNhbEFjY2VzcygpCiAKIHZvaWQgU2VjdXJp
dHlPcmlnaW46OnNldFNhbmRib3hGbGFncyhTYW5kYm94RmxhZ3MgZmxhZ3MpCiB7CisgICAgLy8g
QWx0aG91Z2ggeW91IG1pZ2h0IHRoaW5rIHRoYXQgd2Ugc2hvdWxkIHNldCBtX2lzVW5pcXVlIGJh
c2VkIG9uCisgICAgLy8gU2FuZGJveE9yaWdpbiwgdGhhdCdzIG5vdCBhY3R1YWxseSB0aGUgcmln
aHQgYmVoYXZpb3IuIFdlJ3JlIHN1cHBvc2VkIHRvCisgICAgLy8gZnJlZXplIHRoZSBvcmlnaW4g
b2YgYSBkb2N1bWVudCB3aGVuIGl0IGlzIGNyZWF0ZWQsIGV2ZW4gaWYgdGhlIHNhbmRib3gKKyAg
ICAvLyBmbGFncyBjaGFuZ2UgYWZ0ZXIgdGhhdCBwb2ludCBpbiB0aW1lLgogICAgIG1fc2FuZGJv
eEZsYWdzID0gZmxhZ3M7Ci0gICAgaWYgKGlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKQotICAg
ICAgICBtX2lzVW5pcXVlID0gdHJ1ZTsKLQotICAgIC8vIEFsdGhvdWdoIHlvdSBtaWdodCB0aGlu
ayB0aGF0IHdlIHNob3VsZCBzZXQgbV9pc1VuaXF1ZSB0byBmYWxzZSB3aGVuCi0gICAgLy8gZmxh
Z3MgZG9lc24ndCBjb250YWluIFNhbmRib3hPcmlnaW4sIHRoYXQncyBub3QgYWN0dWFsbHkgdGhl
IHJpZ2h0Ci0gICAgLy8gYmVoYXZpb3IuIFdlJ3JlIHN1cHBvc2VkIHRvIGZyZWV6ZSB0aGUgb3Jp
Z2luIG9mIGEgZG9jdW1lbnQgd2hlbiBpdAotICAgIC8vIGlzIGNyZWF0ZWQsIGV2ZW4gaWYgdGhl
IHNhbmRib3ggZmxhZ3MgY2hhbmdlIGFmdGVyIHRoYXQgcG9pbnQgaW4gdGltZS4KLSAgICAvLwot
ICAgIC8vIEZJWE1FOiBPdXIgY3VycmVudCBiZWhhdmlvciBoZXJlIGlzIGJ1Z2d5IGJlY2F1c2Ug
d2UgbmVlZCB0bwotICAgIC8vICAgICAgICBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBzYW5kYm94
IGZsYWdzIGF0IGNyZWF0aW9uIGFuZCB0aGUKLSAgICAvLyAgICAgICAgc2FuZGJveCBmbGFncyB0
aGF0IG1pZ2h0IGNvbWUgYWJvdXQgbGF0ZXIuCiB9CiAKIGJvb2wgU2VjdXJpdHlPcmlnaW46Omlz
TG9jYWwoKSBjb25zdApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgg
Yi9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAppbmRleCA0YTZlYjNjLi5hOWY5ODU3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAorKysgYi9XZWJDb3JlL3Bh
Z2UvU2VjdXJpdHlPcmlnaW4uaApAQCAtNDksNyArNDksNyBAQCBjbGFzcyBTZWN1cml0eU9yaWdp
biA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFNlY3VyaXR5T3JpZ2luPiB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZUZyb21EYXRhYmFzZUlk
ZW50aWZpZXIoY29uc3QgU3RyaW5nJik7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IGNyZWF0ZUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZShjb25zdCBLVVJMJik7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZShjb25zdCBLVVJMJiwgU2FuZGJveEZsYWdz
IHNhbmRib3hGbGFncyA9IFNhbmRib3hOb25lKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4gY3JlYXRlRW1wdHkoKTsKIAogICAgIC8vIENyZWF0ZSBhIGRlZXAgY29weSBv
ZiB0aGlzIFNlY3VyaXR5T3JpZ2luLiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwKQEAgLTE4Nyw3ICsx
ODcsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZUxp
c3RzKCk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU2VjdXJpdHlPcmlnaW4oY29uc3QgS1VS
TCYpOworICAgIFNlY3VyaXR5T3JpZ2luKGNvbnN0IEtVUkwmLCBTYW5kYm94RmxhZ3MpOwogICAg
IGV4cGxpY2l0IFNlY3VyaXR5T3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKik7CiAKICAgICBT
YW5kYm94RmxhZ3MgbV9zYW5kYm94RmxhZ3M7Cg==
</data>
<flag name="review"
          id="28469"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>