<?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>57182</bug_id>
          
          <creation_ts>2011-03-27 07:09:15 -0700</creation_ts>
          <short_desc>implement onerror events for &lt;link rel=prefetch&gt;</short_desc>
          <delta_ts>2011-03-29 02:06:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Gavin Peters">gavinp</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>374122</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-27 07:09:15 -0700</bug_when>
    <thetext>See Bug 50187 for the implementation of onload events for prefetch, this CL adds onerror support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374128</commentid>
    <comment_count>1</comment_count>
      <attachid>87068</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-27 07:15:46 -0700</bug_when>
    <thetext>Created attachment 87068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374208</commentid>
    <comment_count>2</comment_count>
      <attachid>87068</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-27 13:15:12 -0700</bug_when>
    <thetext>Comment on attachment 87068
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=87068&amp;action=review

&gt; Source/WebCore/ChangeLog:22
&gt; +        * html/HTMLLinkElement.cpp:
&gt; +        (WebCore::HTMLLinkElement::parseMappedAttribute):
&gt; +        (WebCore::HTMLLinkElement::onloadTimerFired):
&gt; +        (WebCore::HTMLLinkElement::notifyFinished):
&gt; +        * loader/cache/CachedImage.cpp:
&gt; +        * loader/cache/CachedImage.h:
&gt; +        * loader/cache/CachedResource.cpp:
&gt; +        (WebCore::CachedResource::checkNotify):
&gt; +        (WebCore::CachedResource::data):
&gt; +        (WebCore::CachedResource::error):
&gt; +        * loader/cache/CachedResource.h:
&gt; +        * loader/cache/CachedScript.cpp:
&gt; +        * loader/cache/CachedScript.h:

You should explain why you&apos;re making changes to all these different files.  This ChangeLog is calling out for information.  Also, I feel like this patch is the result of a long discussion.  It might be helpful to include some of the reasons why we&apos;re making this change in the ChangeLog.  You don&apos;t need to write a whole book, but something more than just empty boilerplate is probably a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374557</commentid>
    <comment_count>3</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-03-28 09:51:17 -0700</bug_when>
    <thetext>&gt; You should explain why you&apos;re making changes to all these different files.  This ChangeLog is calling out for information.  Also, I feel like this patch is the result of a long discussion.  It might be helpful to include some of the reasons why we&apos;re making this change in the ChangeLog.  You don&apos;t need to write a whole book, but something more than just empty boilerplate is probably a good idea.

Patch looks good to me barring Adam&apos;s comment about improving the ChangeLog. This is all specced, so you may also want to link there:
http://dev.w3.org/html5/spec/Overview.html#the-link-element</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374716</commentid>
    <comment_count>4</comment_count>
      <attachid>87187</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-28 13:18:09 -0700</bug_when>
    <thetext>Created attachment 87187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374719</commentid>
    <comment_count>5</comment_count>
      <attachid>87188</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-28 13:20:04 -0700</bug_when>
    <thetext>Created attachment 87188
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374720</commentid>
    <comment_count>6</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-28 13:20:25 -0700</bug_when>
    <thetext>Thanks for the reviews.  I&apos;ve significantly filled out the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374742</commentid>
    <comment_count>7</comment_count>
      <attachid>87188</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-03-28 13:49:30 -0700</bug_when>
    <thetext>Comment on attachment 87188
Patch

Thanks for the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375126</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 02:02:47 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 87188:

http/tests/websocket/tests/multiple-connections.html bug 53825 (author: abarth@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375127</commentid>
    <comment_count>9</comment_count>
      <attachid>87188</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 02:06:46 -0700</bug_when>
    <thetext>Comment on attachment 87188
Patch

Clearing flags on attachment: 87188

Committed r82217: &lt;http://trac.webkit.org/changeset/82217&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375128</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 02:06:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87068</attachid>
            <date>2011-03-27 07:15:46 -0700</date>
            <delta_ts>2011-03-28 13:18:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57182-20110327101545.patch</filename>
            <type>text/plain</type>
            <size>12758</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIwNjQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5M2U1ZjJlYWY0NGE5NDgzM2EyNDhi
N2YwMTY4MjVhMDQyODJiYjk3Li43MTE0NWI0ZGJhN2IxM2RlZGViYTQ5ZjViOTE0N2U3ZWIyNzE2
MDljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMjcgIEdhdmluIFBldGVycyAgPGdh
dmlucEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgaW1wbGVtZW50IG9uZXJyb3IgZXZlbnRzIGZvciA8bGluayByZWw9cHJlZmV0
Y2g+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzE4
MgorCisgICAgICAgICogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3It
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
cHJlZmV0Y2gtb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tp
cHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9xdC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDExLTAz
LTI3ICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHVwZGF0ZSBDaHJvbWl1bSB0ZXN0IGV4cGVjdGF0aW9ucy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1v
bmVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40N2ZjOTg3MzQ0YTliMDIyYmI4ZjQ2ODE0
ODgzYTcwNzRlZGE1Zjg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NiBAQAorVGhpcyB0ZXN0cyB0aGF0IG9uZXJyb3IgZXZlbnRzIGNhbiBiZSBhdHRhY2hlZCB0byBs
aW5rIGVsZW1lbnRzIHdpdGggcmVsPXByZWZldGNoLiBTaW5jZSBwcmVmZXRjaCBsaW5rcyBhcmUg
anVzdCB0aGVyZSBhcyBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiwgdGhlIG9uZXJyb3Ivb25s
b2FkIGV2ZW50IGlzIHRoZWlyIG9ubHkgcHJvZ3JhbWF0aWMgc2lkZS1lZmZlY3QuCisKK0lmIGl0
IHdvcmtzIHlvdSBzaG91bGQgc2VlIGEgbWVzc2FnZSBiZWxvdyBzYXlpbmcgdGhlIHRlc3QgaGFz
IHBhc3NlZC4KKworUEFTUyBvbmVycm9yIHdhcyBjYWxsZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDdjZWQ5ZWIwMjBhNmQ5MzI3ZjNkMjRmNTQyZjE0N2Q4NjYyOTQ1OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVm
ZXRjaC1vbmVycm9yLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorZnVuY3Rpb24gZG9uZSgpCit7CisgICAgdGVz
dFBhc3NlZCgnb25lcnJvciB3YXMgY2FsbGVkJyk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
fQoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0
IG9uZXJyb3IgZXZlbnRzIGNhbiBiZSBhdHRhY2hlZCB0byBsaW5rIGVsZW1lbnRzIHdpdGggcmVs
PXByZWZldGNoLiBTaW5jZSBwcmVmZXRjaCBsaW5rcyBhcmUganVzdCB0aGVyZSBhcyBhIHBlcmZv
cm1hbmNlIG9wdGltaXphdGlvbiwgdGhlIG9uZXJyb3Ivb25sb2FkIGV2ZW50IGlzIHRoZWlyIG9u
bHkgcHJvZ3JhbWF0aWMgc2lkZS1lZmZlY3QuPC9wPgorPHA+SWYgaXQgd29ya3MgeW91IHNob3Vs
ZCBzZWUgYSBtZXNzYWdlIGJlbG93IHNheWluZyB0aGUgdGVzdCBoYXMgcGFzc2VkLjwvcD4KKzxs
aW5rIGhyZWY9InByZWZldGNoLW5vZXhpc3R5LmxpbmsiIHJlbD0icHJlZmV0Y2giIG9ubG9hZD0i
dGVzdEZhaWxlZCgnb25sb2FkIGV2ZW50IHNob3VsZCBub3Qgb2NjdXInKSIgb25lcnJvcj0iZG9u
ZSgpIj4KKzxocj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDRlOWNjZmJiYThkY2UwYmU4NWI0OTcwOTUw
OGYwM2Y0MDdiNDBlMjUuLjQ3NTE2NjQ4MWNkNjAwY2EyM2Y5OWRiNWUwMjUzYWQ4Y2Q1YjM2ZjAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC05MTYsNiArOTE2LDcgQEAgZmFzdC9mb3Jt
cy9zbGlkZXItem9vbWVkLmh0bWwKICMgTGluayBwcmVmZXRjaCBpcyBkaXNhYmxlZCBieSBkZWZh
dWx0CiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvbGluay1hbmQtc3VicmVzb3VyY2UtdGVzdC5o
dG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2guaHRtbAorZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVt
ZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCiAKICMgVGVzdHMgZmFpbGluZyBiZWNhdXNlIHRoZSBj
b250ZXh0IG1lbnUgaXMgZ3JhYmJpbmcgbW91c2UgZXZlbnRzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZAppbmRleCAxY2JhOGNlOWQwYTY5NmU5OTU5MGMxMWIzOGVlNjk3ZDQyNTk1NjcxLi4yOTYy
YzE5ZTFjOGM0MTg4YTE2NWNhYmNmZGNiYWY3MmI2ZDZjNTVmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZApAQCAtMTgyLDYgKzE4Miw3IEBAIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dGllcy1kZXZpY2Utb3JpZW50YXRpb24uaHRtbAogIyBMaW5rIHByZWZldGNoIGlzIGRpc2FibGVk
IGJ5IGRlZmF1bHQKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9saW5rLWFuZC1zdWJyZXNvdXJj
ZS10ZXN0Lmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC5odG1sCitmYXN0
L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9IVE1M
TGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRj
aC1wdXJwb3NlLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tp
cHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5kZXggNTI3ZDIyZDYxMTVk
ODE4NzRlMzE1MmEwOTFjNWQ3MTA4NmNiNjBjYS4uOTE1OTA5NWMyMTMzYTE2ZWZhZjExYTUxNTI4
N2IzOWNkMGM5YTgwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBl
ZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0yOTc3LDYgKzI5Nzcs
NyBAQCBtZWRpYS92aWRlby1kZWxheS1sb2FkLWV2ZW50Lmh0bWwKICMgTGluayBwcmVmZXRjaCBp
cyBkaXNhYmxlZCBieSBkZWZhdWx0CiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvbGluay1hbmQt
c3VicmVzb3VyY2UtdGVzdC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gu
aHRtbAorZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFz
dC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCiBodHRwL3Rlc3RzL21p
c2MvcHJlZmV0Y2gtcHVycG9zZS5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXgg
Mzk4MzgxOThkMjQ5NjEzOGY1ZGViMDA1ZWE0ZDIwMDgwM2Q3Yzg2OS4uYTgzNmZmMTFlODVmZThi
YjQ0MTBiMTc3YjZiMzVkNDhlMTU5ZDI4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAg
LTk5Miw2ICs5OTIsNyBAQCBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZGV2aWNl
LW9yaWVudGF0aW9uLmh0bWwKICMgTGluayBwcmVmZXRjaCBpcyBkaXNhYmxlZCBieSBkZWZhdWx0
CiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvbGluay1hbmQtc3VicmVzb3VyY2UtdGVzdC5odG1s
CiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2guaHRtbAorZmFzdC9kb20vSFRNTExp
bmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50
L3ByZWZldGNoLW9ubG9hZC5odG1sCiBodHRwL3Rlc3RzL21pc2MvcHJlZmV0Y2gtcHVycG9zZS5o
dG1sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA1NDhhOTJjNDQwMDEzODlkNjY2MzU4ZmUyNmIyMTFiNGM5MTA3
ZmZmLi5kNWIxZTkyZmJkMTViY2NlNTNlOWZlZDIxYTcyNjcyYmUzMjc5NWUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDMtMjcgIEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaW1wbGVtZW50IG9uZXJyb3IgZXZlbnRzIGZvciA8bGluayByZWw9cHJlZmV0Y2g+CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzE4MgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0bWwK
KworICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxMaW5rRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTExpbmtFbGVtZW50OjpvbmxvYWRUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxMaW5rRWxlbWVudDo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRJbWFnZS5jcHA6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmg6
CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlOjpjaGVja05vdGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRSZXNvdXJjZTo6ZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6
ZXJyb3IpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAg
ICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRTY3JpcHQuaDoKKwogMjAxMS0wMy0yNyAgUm9iIEJ1aXMgIDxyd2xidWlzQGdtYWls
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggYzEwYmRkYmFkZDY3MWIzZmQwN2Q2
NDA5NTVjY2Q3MDE5OTM2YmI4Yy4uMDhiOThiMWY3NTYxNGI4ODliMjc2YTVjNWU0ODIyMGIxNjcz
YTUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMTQ1LDYg
KzE0NSw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRy
aWJ1dGUqIGF0dHIpCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgZWxzZSBpZiAoYXR0
ci0+bmFtZSgpID09IG9ubG9hZEF0dHIpCiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVu
ZXIoZXZlbnROYW1lcygpLmxvYWRFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0
aGlzLCBhdHRyKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uZXJyb3JBdHRyKQor
ICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50
LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsKICNlbmRpZgogICAg
IGVsc2UgewogICAgICAgICBpZiAoYXR0ci0+bmFtZSgpID09IHRpdGxlQXR0ciAmJiBtX3NoZWV0
KQpAQCAtMzk1LDE2ICszOTcsMTkgQEAgYm9vbCBIVE1MTGlua0VsZW1lbnQ6OmlzTG9hZGluZygp
IGNvbnN0CiB2b2lkIEhUTUxMaW5rRWxlbWVudDo6b25sb2FkVGltZXJGaXJlZChUaW1lcjxIVE1M
TGlua0VsZW1lbnQ+KiB0aW1lcikKIHsKICAgICBBU1NFUlRfVU5VU0VEKHRpbWVyLCB0aW1lciA9
PSAmbV9vbmxvYWRUaW1lcik7Ci0gICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5sb2FkRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgIGlmIChtX2NhY2hlZExpbmtQ
cmVmZXRjaC0+ZXJyb3JPY2N1cnJlZCgpKQorICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgIGVsc2UK
KyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5sb2FkRXZl
bnQsIGZhbHNlLCBmYWxzZSkpOworCisgICAgbV9jYWNoZWRMaW5rUHJlZmV0Y2gtPnJlbW92ZUNs
aWVudCh0aGlzKTsKKyAgICBtX2NhY2hlZExpbmtQcmVmZXRjaCA9IDA7CiB9CiAKIHZvaWQgSFRN
TExpbmtFbGVtZW50Ojpub3RpZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UpCiB7
CiAgICAgbV9vbmxvYWRUaW1lci5zdGFydE9uZVNob3QoMCk7Ci0gICAgaWYgKG1fY2FjaGVkTGlu
a1ByZWZldGNoLmdldCgpID09IHJlc291cmNlKSB7Ci0gICAgICAgIG1fY2FjaGVkTGlua1ByZWZl
dGNoLT5yZW1vdmVDbGllbnQodGhpcyk7Ci0gICAgICAgIG1fY2FjaGVkTGlua1ByZWZldGNoID0g
MDsKLSAgICB9CisgICAgQVNTRVJUKG1fY2FjaGVkTGlua1ByZWZldGNoLmdldCgpID09IHJlc291
cmNlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZElt
YWdlLmNwcAppbmRleCAwZTQ3YmZiNmY1MWRlYTZkOWE1NWIyMDZjNDgyNDExNjlhMzhkM2VlLi45
OTFhNTE0NjYzZTFjODU1ZTgwZjBiMmE5NGUwMWY3NGFiMjFkZmFkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKQEAgLTMxOCwxNiArMzE4LDYgQEAgdm9p
ZCBDYWNoZWRJbWFnZTo6ZXJyb3IoQ2FjaGVkUmVzb3VyY2U6OlN0YXR1cyBzdGF0dXMpCiAgICAg
Y2hlY2tOb3RpZnkoKTsKIH0KIAotdm9pZCBDYWNoZWRJbWFnZTo6Y2hlY2tOb3RpZnkoKQotewot
ICAgIGlmIChpc0xvYWRpbmcoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ2FjaGVkUmVzb3Vy
Y2VDbGllbnRXYWxrZXIgdyhtX2NsaWVudHMpOwotICAgIHdoaWxlIChDYWNoZWRSZXNvdXJjZUNs
aWVudCogYyA9IHcubmV4dCgpKQotICAgICAgICBjLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKLX0K
LQogdm9pZCBDYWNoZWRJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhKCkKIHsKICAgICBib29sIGNh
bkRlbGV0ZUltYWdlID0gIW1faW1hZ2UgfHwgKG1faW1hZ2UtPmhhc09uZVJlZigpICYmIG1faW1h
Z2UtPmlzQml0bWFwSW1hZ2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJ
bWFnZS5oCmluZGV4IDMyNDI0MDk2NTBjODNiZmM5MDdkMzZiOWMwODU0ZTk5YWJhYjliYTcuLjQy
Yzc4MTQxYTEzOWJkMDA4YjAyMTI3ODQ1ZDM4ZjE4ZGFkOTVlMDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCkBAIC03MSw4ICs3MSw2IEBAIHB1YmxpYzoKICAg
ICAvLyBGb3IgY29tcGF0aWJpbGl0eSwgaW1hZ2VzIGtlZXAgbG9hZGluZyBldmVuIGlmIHRoZXJl
IGFyZSBIVFRQIGVycm9ycy4KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSWdub3JlSFRUUFN0YXR1
c0NvZGVFcnJvcnMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2b2lkIGNoZWNrTm90
aWZ5KCk7Ci0gICAgCiAgICAgdmlydHVhbCBib29sIGlzSW1hZ2UoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAKICAgICB2b2lkIGNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCA2NmU1ODllZDkyZGJhZWY2ZmJiZmQ4MjgzZWIx
OTBmYjA3ZTBhYWFmLi45NDEzNDcyYTQ0N2Y2YWM0ZjM3YmMyZDA0NjM3YTBjZDg3NDZiY2IyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAg
LTEzNCwxNSArMTM0LDMzIEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OmxvYWQoQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIqIGNhY2hlZFJlc291cmNlTG9hZGVyLCBib29sIGluY3JlCiAgICAgbV9sb2FkaW5n
ID0gdHJ1ZTsKIH0KIAordm9pZCBDYWNoZWRSZXNvdXJjZTo6Y2hlY2tOb3RpZnkoKQoreworICAg
IGlmIChpc0xvYWRpbmcoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ2FjaGVkUmVzb3VyY2VD
bGllbnRXYWxrZXIgdyhtX2NsaWVudHMpOworICAgIHdoaWxlIChDYWNoZWRSZXNvdXJjZUNsaWVu
dCogYyA9IHcubmV4dCgpKQorICAgICAgICBjLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKK30KKwog
dm9pZCBDYWNoZWRSZXNvdXJjZTo6ZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIGJvb2wg
YWxsRGF0YVJlY2VpdmVkKQogewogICAgIGlmICghYWxsRGF0YVJlY2VpdmVkKQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgc2V0TG9hZGluZyhmYWxzZSk7Ci0gICAgQ2FjaGVkUmVzb3VyY2VD
bGllbnRXYWxrZXIgdyhtX2NsaWVudHMpOwotICAgIHdoaWxlIChDYWNoZWRSZXNvdXJjZUNsaWVu
dCogYyA9IHcubmV4dCgpKQotICAgICAgICBjLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKKyAgICBj
aGVja05vdGlmeSgpOworfQorCit2b2lkIENhY2hlZFJlc291cmNlOjplcnJvcihDYWNoZWRSZXNv
dXJjZTo6U3RhdHVzIHN0YXR1cykKK3sKKyAgICBzZXRTdGF0dXMoc3RhdHVzKTsKKyAgICBBU1NF
UlQoZXJyb3JPY2N1cnJlZCgpKTsKKyAgICBtX2RhdGEuY2xlYXIoKTsKKworICAgIHNldExvYWRp
bmcoZmFsc2UpOworICAgIGNoZWNrTm90aWZ5KCk7CiB9CiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2U6
OmZpbmlzaCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5o
CmluZGV4IDVjOGIzOGYxYWJhNTVlNTMwZTkzN2Q5MjMyNWEyMDJlZWQ4ZTRlNmQuLjE2OTIwYTUz
Zjc2ZDZlMWUxYTdlMmFmMDk4ZmQ2Mjg2ZGViZGVjZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCkBAIC04Niw3ICs4Niw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0RW5jb2RpbmcoY29uc3QgU3RyaW5nJikgeyB9CiAgICAgdmlydHVh
bCBTdHJpbmcgZW5jb2RpbmcoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIHZpcnR1
YWwgdm9pZCBkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFS
ZWNlaXZlZCk7Ci0gICAgdmlydHVhbCB2b2lkIGVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBlcnJvcihDYWNoZWRSZXNvdXJjZTo6U3RhdHVzKTsKIAog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJZ25vcmVIVFRQU3RhdHVzQ29kZUVycm9ycygpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTIxNyw2ICsyMTcsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB1cGRhdGVSZXNwb25zZUFmdGVyUmV2YWxpZGF0aW9uKGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHZhbGlkYXRpbmdSZXNwb25zZSk7CiAKIHByb3RlY3RlZDoKKyAgICB2b2lkIGNoZWNrTm90aWZ5
KCk7CisKICAgICB2b2lkIHNldEVuY29kZWRTaXplKHVuc2lnbmVkKTsKICAgICB2b2lkIHNldERl
Y29kZWRTaXplKHVuc2lnbmVkKTsKICAgICB2b2lkIGRpZEFjY2Vzc0RlY29kZWREYXRhKGRvdWJs
ZSB0aW1lU3RhbXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNjcmlwdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0
LmNwcAppbmRleCA5MzY5NDI1Yjk3YzY3NTQxNTQ4M2E2MjVjNDljZWU3NmFhMTgzZmFiLi5lMWE4
YTMyMTdhYzViNzZlZWU4ZjE2ZjJkMTlmZjk1YjE0NzViMGVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcApAQCAtMTA0LDE2ICsxMDQsNiBAQCB2b2lk
IENhY2hlZFNjcmlwdDo6ZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBh
bGxEYXRhUmVjZWl2ZWQpCiAgICAgY2hlY2tOb3RpZnkoKTsKIH0KIAotdm9pZCBDYWNoZWRTY3Jp
cHQ6OmNoZWNrTm90aWZ5KCkKLXsKLSAgICBpZiAoaXNMb2FkaW5nKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIENhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyIHcobV9jbGllbnRzKTsKLSAgICB3
aGlsZSAoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMgPSB3Lm5leHQoKSkKLSAgICAgICAgYy0+bm90
aWZ5RmluaXNoZWQodGhpcyk7Ci19Ci0KIHZvaWQgQ2FjaGVkU2NyaXB0OjplcnJvcihDYWNoZWRS
ZXNvdXJjZTo6U3RhdHVzIHN0YXR1cykKIHsKICAgICBzZXRTdGF0dXMoc3RhdHVzKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaAppbmRleCA4NWMzODA1OTQxZDVh
N2NjMTA1YzEzYTE5YjA4YmJkNjMxZWM4NjA0Li5hNGVhNDUzOTRiZWM5MzkyYTBmNGQyZGMwZDgz
ZTgyMzkzODQxNGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlw
dC5oCkBAIC01NSw4ICs1NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCB2b2lkIGRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0YVJl
Y2VpdmVkKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGVycm9yKFN0YXR1cyk7CiAKLSAgICAgICAg
dm9pZCBjaGVja05vdGlmeSgpOwotCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZXN0cm95RGVjb2Rl
ZERhdGEoKTsKICNpZiBVU0UoSlNDKSAgICAgICAgCiAgICAgICAgIC8vIEFsbG93cyBKU0MgdG8g
Y2FjaGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc291cmNlLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87187</attachid>
            <date>2011-03-28 13:18:09 -0700</date>
            <delta_ts>2011-03-28 13:20:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57182-20110328161807.patch</filename>
            <type>text/plain</type>
            <size>13608</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIxNDQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3Mzk4Y2MzZTM1YjlmOTZmYTI0MTgz
NDQyZmNlZTYzYWE4YjNmNjEzLi4xMDBmYzMxOTExOTZjMjgyN2VjZTAwMzhiMjhmMjk2YjY1ZmY4
YTJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMjggIEdhdmluIFBldGVycyAgPGdh
dmlucEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wbGVtZW50IG9uZXJyb3IgZXZlbnRzIGZvciA8bGluayByZWw9cHJlZmV0
Y2g+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzE4
MgorCisgICAgICAgICogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3It
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
cHJlZmV0Y2gtb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tp
cHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9xdC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDExLTAz
LTI4ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIgYW5kIERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3ItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3ItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3ZmM5ODczNDRhOWIwMjJiYjhmNDY4MTQ4ODNhNzA3NGVk
YTVmODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0Vs
ZW1lbnQvcHJlZmV0Y2gtb25lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUaGlz
IHRlc3RzIHRoYXQgb25lcnJvciBldmVudHMgY2FuIGJlIGF0dGFjaGVkIHRvIGxpbmsgZWxlbWVu
dHMgd2l0aCByZWw9cHJlZmV0Y2guIFNpbmNlIHByZWZldGNoIGxpbmtzIGFyZSBqdXN0IHRoZXJl
IGFzIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLCB0aGUgb25lcnJvci9vbmxvYWQgZXZlbnQg
aXMgdGhlaXIgb25seSBwcm9ncmFtYXRpYyBzaWRlLWVmZmVjdC4KKworSWYgaXQgd29ya3MgeW91
IHNob3VsZCBzZWUgYSBtZXNzYWdlIGJlbG93IHNheWluZyB0aGUgdGVzdCBoYXMgcGFzc2VkLgor
CitQQVNTIG9uZXJyb3Igd2FzIGNhbGxlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wN2NlZDllYjAyMGE2ZDkzMjdmM2QyNGY1NDJmMTQ3ZDg2NjI5NDU4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJy
b3IuaHRtbApAQCAtMCwwICsxLDI1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICB0ZXN0UGFzc2VkKCdv
bmVycm9yIHdhcyBjYWxsZWQnKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQgb25lcnJvciBl
dmVudHMgY2FuIGJlIGF0dGFjaGVkIHRvIGxpbmsgZWxlbWVudHMgd2l0aCByZWw9cHJlZmV0Y2gu
IFNpbmNlIHByZWZldGNoIGxpbmtzIGFyZSBqdXN0IHRoZXJlIGFzIGEgcGVyZm9ybWFuY2Ugb3B0
aW1pemF0aW9uLCB0aGUgb25lcnJvci9vbmxvYWQgZXZlbnQgaXMgdGhlaXIgb25seSBwcm9ncmFt
YXRpYyBzaWRlLWVmZmVjdC48L3A+Cis8cD5JZiBpdCB3b3JrcyB5b3Ugc2hvdWxkIHNlZSBhIG1l
c3NhZ2UgYmVsb3cgc2F5aW5nIHRoZSB0ZXN0IGhhcyBwYXNzZWQuPC9wPgorPGxpbmsgaHJlZj0i
cHJlZmV0Y2gtbm9leGlzdHkubGluayIgcmVsPSJwcmVmZXRjaCIgb25sb2FkPSJ0ZXN0RmFpbGVk
KCdvbmxvYWQgZXZlbnQgc2hvdWxkIG5vdCBvY2N1cicpIiBvbmVycm9yPSJkb25lKCkiPgorPGhy
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKaW5kZXggNGU5Y2NmYmJhOGRjZTBiZTg1YjQ5NzA5NTA4ZjAzZjQwN2I0
MGUyNS4uNDc1MTY2NDgxY2Q2MDBjYTIzZjk5ZGI1ZTAyNTNhZDhjZDViMzZmMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQKQEAgLTkxNiw2ICs5MTYsNyBAQCBmYXN0L2Zvcm1zL3NsaWRlci16
b29tZWQuaHRtbAogIyBMaW5rIHByZWZldGNoIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQKIGZhc3Qv
ZG9tL0hUTUxMaW5rRWxlbWVudC9saW5rLWFuZC1zdWJyZXNvdXJjZS10ZXN0Lmh0bWwKIGZhc3Qv
ZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC5odG1sCitmYXN0L2RvbS9IVE1MTGlua0VsZW1l
bnQvcHJlZmV0Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0
Y2gtb25sb2FkLmh0bWwKIAogIyBUZXN0cyBmYWlsaW5nIGJlY2F1c2UgdGhlIGNvbnRleHQgbWVu
dSBpcyBncmFiYmluZyBtb3VzZSBldmVudHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4
IDFjYmE4Y2U5ZDBhNjk2ZTk5NTkwYzExYjM4ZWU2OTdkNDI1OTU2NzEuLjI5NjJjMTllMWM4YzQx
ODhhMTY1Y2FiY2ZkY2JhZjcyYjZkNmM1NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBA
IC0xODIsNiArMTgyLDcgQEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWRldmlj
ZS1vcmllbnRhdGlvbi5odG1sCiAjIExpbmsgcHJlZmV0Y2ggaXMgZGlzYWJsZWQgYnkgZGVmYXVs
dAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L2xpbmstYW5kLXN1YnJlc291cmNlLXRlc3QuaHRt
bAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLmh0bWwKK2Zhc3QvZG9tL0hUTUxM
aW5rRWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVu
dC9wcmVmZXRjaC1vbmxvYWQuaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2Uu
aHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA1MjdkMjJkNjExNWQ4MTg3NGUzMTUy
YTA5MWM1ZDcxMDg2Y2I2MGNhLi45MTU5MDk1YzIxMzNhMTZlZmFmMTFhNTE1Mjg3YjM5Y2QwYzlh
ODA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTI5NzcsNiArMjk3Nyw3IEBAIG1lZGlh
L3ZpZGVvLWRlbGF5LWxvYWQtZXZlbnQuaHRtbAogIyBMaW5rIHByZWZldGNoIGlzIGRpc2FibGVk
IGJ5IGRlZmF1bHQKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9saW5rLWFuZC1zdWJyZXNvdXJj
ZS10ZXN0Lmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC5odG1sCitmYXN0
L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9IVE1M
TGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRj
aC1wdXJwb3NlLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCAzOTFhODRjNGE2
YjM5NjEyYjBkOGUxNjYwNTliNDYyZjM4Mzc4MDRiLi5lYmFmNTBhZmJlODNlYzQ5MGRlNGFmNjY0
NWVmZGUwZWQ3YzIyNDIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtOTg3LDYgKzk4
Nyw3IEBAIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1kZXZpY2Utb3JpZW50YXRp
b24uaHRtbAogIyBMaW5rIHByZWZldGNoIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQKIGZhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9saW5rLWFuZC1zdWJyZXNvdXJjZS10ZXN0Lmh0bWwKIGZhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC5odG1sCitmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
cHJlZmV0Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gt
b25sb2FkLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDVhYTQ3MGI1NDE5NWE0NTc1NWU1MTI5MWY1OTcxYWY1Zjg0ODY1N2EuLjMzYjFl
N2JmMDQ3MjJjNTFmNzM5N2I2ZWQ5ZDI3Njk0Nzk0ZDUwMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNyBAQAorMjAxMS0wMy0yOCAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgb25lcnJvciBldmVudHMgZm9yIDxsaW5rIHJlbD1wcmVmZXRjaD4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTgyCisKKyAgICAgICAgQWZ0ZXIg
YSBkaXNjdXNzaW9uIGluIFdlYktpdC1kZXYgYWJvdXQgdGhlIGRpcmVjdGlvbiBvZiBwcmVmZXRj
aCBpbiB0aGUgbG9hZGVyLCBhbmQgYWJvdXQgYSBwYXRoCisgICAgICAgIHRvIGFkZGluZyB0aGUg
TGluayBoZWFkZXIsIHdlIGRlY2lkZWQgdG8gbG9vayBhdCBtYWtpbmcgb25lcnJvciwgb25sb2Fk
IGFuZCBvbmJlZm9yZWxvYWQgZXZlbnRzCisgICAgICAgIG1vcmUgdW5pZm9ybWx5IHN1cHBvcnRl
ZC4gIFNlZSB0aGUgdGhyZWFkIGF0CisgICAgICAgIGh0dHBzOi8vbGlzdHMud2Via2l0Lm9yZy9w
aXBlcm1haWwvd2Via2l0LWRldi8yMDExLUZlYnJ1YXJ5LzAxNjAzNC5odG1sIC4KKworICAgICAg
ICBJdCB0dXJuZWQgb3V0IHRoYXQgcGFydCBvZiBhZGRpbmcgb25lcnJvciBmb3IgbGluayBwcmVm
ZXRjaCB3YXMgdG8gbWFrZSB0aGUgdG9wIENhY2hlZFJlc291cmNlIGxlc3MKKyAgICAgICAgYWJz
dHJhY3QuICBJdCB3YXMgcHVyZSB2aXJ0dWFsIHVudGlsIHByZWZldGNoIGJlY2FtZSB0aGUgZmly
c3QgY29uc3VtZXIgdG8gdXNlIGFuIHVuc3BlY2lhbGlzZWQKKyAgICAgICAgaW1wbGVtZW50YXRp
b24sIGFuZCB0aGlzIENMIGNvbnRpbnVlcyB0aGF0IGJ5IGFkZGluZyBhIGRlZmF1bHQgY2hlY2tO
b3RpZnkgbWV0aG9kIHRvIGl0LiAgQXMgaXQKKyAgICAgICAgaGFwcGVucyB0aGVyZSB3ZXJlIGFs
cmVhZHkgdHdvIHN1YmNsYXNzZXMgdXNpbmcgd2hhdCBhbW91bnRlZCB0byB0aGUgZ2VuZXJpYyBj
aGVja05vdGlmeSwgc28gSQorICAgICAgICBhbHNvIHJlbW92ZWQgdGhvc2UsIGJ1eWluZyB1cyBz
b21lIGNvZGUgY2xlYW51cCB3aXRoIHRoZSBjaGFuZ2UuCisKKyAgICAgICAgVGVzdDogZmFzdC9k
b20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbAorCisgICAgICAgICogaHRt
bC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50
OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1l
bnQ6Om9ubG9hZFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50
Ojpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNw
cDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaDoKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2U6OmNoZWNrTm90aWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpk
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjplcnJvcik6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hl
L0NhY2hlZFNjcmlwdC5jcHA6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5o
OgorCiAyMDExLTAzLTI4ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIgYW5kIERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IGMxMGJkZGJhZGQ2NzFiM2ZkMDdkNjQwOTU1
Y2NkNzAxOTkzNmJiOGMuLjA4Yjk4YjFmNzU2MTRiODg5YjI3NmE1YzVlNDgyMjBiMTY3M2E1MTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTE0NSw2ICsxNDUs
OCBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRl
KiBhdHRyKQogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGVsc2UgaWYgKGF0dHItPm5h
bWUoKSA9PSBvbmxvYWRBdHRyKQogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2
ZW50TmFtZXMoKS5sb2FkRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIodGhpcywg
YXR0cikpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmVycm9yQXR0cikKKyAgICAg
ICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgY3Jl
YXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CiAjZW5kaWYKICAgICBlbHNl
IHsKICAgICAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSB0aXRsZUF0dHIgJiYgbV9zaGVldCkKQEAg
LTM5NSwxNiArMzk3LDE5IEBAIGJvb2wgSFRNTExpbmtFbGVtZW50Ojppc0xvYWRpbmcoKSBjb25z
dAogdm9pZCBIVE1MTGlua0VsZW1lbnQ6Om9ubG9hZFRpbWVyRmlyZWQoVGltZXI8SFRNTExpbmtF
bGVtZW50PiogdGltZXIpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1f
b25sb2FkVGltZXIpOwotICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVz
KCkubG9hZEV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyAgICBpZiAobV9jYWNoZWRMaW5rUHJlZmV0
Y2gtPmVycm9yT2NjdXJyZWQoKSkKKyAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyAgICBlbHNlCisgICAg
ICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkubG9hZEV2ZW50LCBm
YWxzZSwgZmFsc2UpKTsKKworICAgIG1fY2FjaGVkTGlua1ByZWZldGNoLT5yZW1vdmVDbGllbnQo
dGhpcyk7CisgICAgbV9jYWNoZWRMaW5rUHJlZmV0Y2ggPSAwOwogfQogCiB2b2lkIEhUTUxMaW5r
RWxlbWVudDo6bm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQogewogICAg
IG1fb25sb2FkVGltZXIuc3RhcnRPbmVTaG90KDApOwotICAgIGlmIChtX2NhY2hlZExpbmtQcmVm
ZXRjaC5nZXQoKSA9PSByZXNvdXJjZSkgewotICAgICAgICBtX2NhY2hlZExpbmtQcmVmZXRjaC0+
cmVtb3ZlQ2xpZW50KHRoaXMpOwotICAgICAgICBtX2NhY2hlZExpbmtQcmVmZXRjaCA9IDA7Ci0g
ICAgfQorICAgIEFTU0VSVChtX2NhY2hlZExpbmtQcmVmZXRjaC5nZXQoKSA9PSByZXNvdXJjZSk7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5j
cHAKaW5kZXggMGU0N2JmYjZmNTFkZWE2ZDlhNTViMjA2YzQ4MjQxMTY5YTM4ZDNlZS4uOTkxYTUx
NDY2M2UxYzg1NWU4MGYwYjJhOTRlMDFmNzRhYjIxZGZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCkBAIC0zMTgsMTYgKzMxOCw2IEBAIHZvaWQgQ2Fj
aGVkSW1hZ2U6OmVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0dXMgc3RhdHVzKQogICAgIGNoZWNr
Tm90aWZ5KCk7CiB9CiAKLXZvaWQgQ2FjaGVkSW1hZ2U6OmNoZWNrTm90aWZ5KCkKLXsKLSAgICBp
ZiAoaXNMb2FkaW5nKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIENhY2hlZFJlc291cmNlQ2xp
ZW50V2Fsa2VyIHcobV9jbGllbnRzKTsKLSAgICB3aGlsZSAoQ2FjaGVkUmVzb3VyY2VDbGllbnQq
IGMgPSB3Lm5leHQoKSkKLSAgICAgICAgYy0+bm90aWZ5RmluaXNoZWQodGhpcyk7Ci19Ci0KIHZv
aWQgQ2FjaGVkSW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSgpCiB7CiAgICAgYm9vbCBjYW5EZWxl
dGVJbWFnZSA9ICFtX2ltYWdlIHx8IChtX2ltYWdlLT5oYXNPbmVSZWYoKSAmJiBtX2ltYWdlLT5p
c0JpdG1hcEltYWdlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2Uu
aAppbmRleCAzMjQyNDA5NjUwYzgzYmZjOTA3ZDM2YjljMDg1NGU5OWFiYWI5YmE3Li40MmM3ODE0
MWExMzliZDAwOGIwMjEyNzg0NWQzOGYxOGRhZDk1ZTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaApAQCAtNzEsOCArNzEsNiBAQCBwdWJsaWM6CiAgICAgLy8g
Rm9yIGNvbXBhdGliaWxpdHksIGltYWdlcyBrZWVwIGxvYWRpbmcgZXZlbiBpZiB0aGVyZSBhcmUg
SFRUUCBlcnJvcnMuCiAgICAgdmlydHVhbCBib29sIHNob3VsZElnbm9yZUhUVFBTdGF0dXNDb2Rl
RXJyb3JzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdm9pZCBjaGVja05vdGlmeSgp
OwotICAgIAogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgdm9pZCBjbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggNjZlNTg5ZWQ5MmRiYWVmNmZiYmZkODI4M2ViMTkwZmIw
N2UwYWFhZi4uOTQxMzQ3MmE0NDdmNmFjNGYzN2JjMmQwNDYzN2EwY2Q4NzQ2YmNiMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC0xMzQs
MTUgKzEzNCwzMyBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpsb2FkKENhY2hlZFJlc291cmNlTG9h
ZGVyKiBjYWNoZWRSZXNvdXJjZUxvYWRlciwgYm9vbCBpbmNyZQogICAgIG1fbG9hZGluZyA9IHRy
dWU7CiB9CiAKK3ZvaWQgQ2FjaGVkUmVzb3VyY2U6OmNoZWNrTm90aWZ5KCkKK3sKKyAgICBpZiAo
aXNMb2FkaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIENhY2hlZFJlc291cmNlQ2xpZW50
V2Fsa2VyIHcobV9jbGllbnRzKTsKKyAgICB3aGlsZSAoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMg
PSB3Lm5leHQoKSkKKyAgICAgICAgYy0+bm90aWZ5RmluaXNoZWQodGhpcyk7Cit9CisKIHZvaWQg
Q2FjaGVkUmVzb3VyY2U6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+LCBib29sIGFsbERh
dGFSZWNlaXZlZCkKIHsKICAgICBpZiAoIWFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIHNldExvYWRpbmcoZmFsc2UpOwotICAgIENhY2hlZFJlc291cmNlQ2xpZW50
V2Fsa2VyIHcobV9jbGllbnRzKTsKLSAgICB3aGlsZSAoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMg
PSB3Lm5leHQoKSkKLSAgICAgICAgYy0+bm90aWZ5RmluaXNoZWQodGhpcyk7CisgICAgY2hlY2tO
b3RpZnkoKTsKK30KKwordm9pZCBDYWNoZWRSZXNvdXJjZTo6ZXJyb3IoQ2FjaGVkUmVzb3VyY2U6
OlN0YXR1cyBzdGF0dXMpCit7CisgICAgc2V0U3RhdHVzKHN0YXR1cyk7CisgICAgQVNTRVJUKGVy
cm9yT2NjdXJyZWQoKSk7CisgICAgbV9kYXRhLmNsZWFyKCk7CisKKyAgICBzZXRMb2FkaW5nKGZh
bHNlKTsKKyAgICBjaGVja05vdGlmeSgpOwogfQogCiB2b2lkIENhY2hlZFJlc291cmNlOjpmaW5p
c2goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRl
eCA1YzhiMzhmMWFiYTU1ZTUzMGU5MzdkOTIzMjVhMjAyZWVkOGU0ZTZkLi4xNjkyMGE1M2Y3NmQ2
ZTFlMWE3ZTJhZjA5OGZkNjI4NmRlYmRlY2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuaApAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldEVuY29kaW5nKGNvbnN0IFN0cmluZyYpIHsgfQogICAgIHZpcnR1YWwgU3Ry
aW5nIGVuY29kaW5nKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2
ZWQpOwotICAgIHZpcnR1YWwgdm9pZCBlcnJvcihDYWNoZWRSZXNvdXJjZTo6U3RhdHVzKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZXJyb3IoQ2FjaGVkUmVzb3VyY2U6OlN0YXR1cyk7CiAKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkSWdub3JlSFRUUFN0YXR1c0NvZGVFcnJvcnMoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogCkBAIC0yMTcsNiArMjE3LDggQEAgcHVibGljOgogICAgIHZvaWQgdXBk
YXRlUmVzcG9uc2VBZnRlclJldmFsaWRhdGlvbihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiB2YWxp
ZGF0aW5nUmVzcG9uc2UpOwogCiBwcm90ZWN0ZWQ6CisgICAgdm9pZCBjaGVja05vdGlmeSgpOwor
CiAgICAgdm9pZCBzZXRFbmNvZGVkU2l6ZSh1bnNpZ25lZCk7CiAgICAgdm9pZCBzZXREZWNvZGVk
U2l6ZSh1bnNpZ25lZCk7CiAgICAgdm9pZCBkaWRBY2Nlc3NEZWNvZGVkRGF0YShkb3VibGUgdGlt
ZVN0YW1wKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
Y3JpcHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAK
aW5kZXggOTM2OTQyNWI5N2M2NzU0MTU0ODNhNjI1YzQ5Y2VlNzZhYTE4M2ZhYi4uZTFhOGEzMjE3
YWM1Yjc2ZWVlOGYxNmYyZDE5ZmY5NWIxNDc1YjBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTEwNCwxNiArMTA0LDYgQEAgdm9pZCBDYWNo
ZWRTY3JpcHQ6OmRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wgYWxsRGF0
YVJlY2VpdmVkKQogICAgIGNoZWNrTm90aWZ5KCk7CiB9CiAKLXZvaWQgQ2FjaGVkU2NyaXB0Ojpj
aGVja05vdGlmeSgpCi17Ci0gICAgaWYgKGlzTG9hZGluZygpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBDYWNoZWRSZXNvdXJjZUNsaWVudFdhbGtlciB3KG1fY2xpZW50cyk7Ci0gICAgd2hpbGUg
KENhY2hlZFJlc291cmNlQ2xpZW50KiBjID0gdy5uZXh0KCkpCi0gICAgICAgIGMtPm5vdGlmeUZp
bmlzaGVkKHRoaXMpOwotfQotCiB2b2lkIENhY2hlZFNjcmlwdDo6ZXJyb3IoQ2FjaGVkUmVzb3Vy
Y2U6OlN0YXR1cyBzdGF0dXMpCiB7CiAgICAgc2V0U3RhdHVzKHN0YXR1cyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmgKaW5kZXggODVjMzgwNTk0MWQ1YTdjYzEw
NWMxM2ExOWIwOGJiZDYzMWVjODYwNC4uYTRlYTQ1Mzk0YmVjOTM5MmEwZjRkMmRjMGQ4M2U4MjM5
Mzg0MTRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNj
cmlwdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaApA
QCAtNTUsOCArNTUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZl
ZCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBlcnJvcihTdGF0dXMpOwogCi0gICAgICAgIHZvaWQg
Y2hlY2tOb3RpZnkoKTsKLQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGVzdHJveURlY29kZWREYXRh
KCk7CiAjaWYgVVNFKEpTQykgICAgICAgIAogICAgICAgICAvLyBBbGxvd3MgSlNDIHRvIGNhY2hl
IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNvdXJjZS4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87188</attachid>
            <date>2011-03-28 13:20:04 -0700</date>
            <delta_ts>2011-03-29 02:06:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57182-20110328162002.patch</filename>
            <type>text/plain</type>
            <size>13735</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIxNDQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3Mzk4Y2MzZTM1YjlmOTZmYTI0MTgz
NDQyZmNlZTYzYWE4YjNmNjEzLi4xMDBmYzMxOTExOTZjMjgyN2VjZTAwMzhiMjhmMjk2YjY1ZmY4
YTJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDMtMjggIEdhdmluIFBldGVycyAgPGdh
dmlucEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW1wbGVtZW50IG9uZXJyb3IgZXZlbnRzIGZvciA8bGluayByZWw9cHJlZmV0
Y2g+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzE4
MgorCisgICAgICAgICogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3It
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
cHJlZmV0Y2gtb25lcnJvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tp
cHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9xdC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDExLTAz
LTI4ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIgYW5kIERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3ItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3ItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3ZmM5ODczNDRhOWIwMjJiYjhmNDY4MTQ4ODNhNzA3NGVk
YTVmODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0Vs
ZW1lbnQvcHJlZmV0Y2gtb25lcnJvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUaGlz
IHRlc3RzIHRoYXQgb25lcnJvciBldmVudHMgY2FuIGJlIGF0dGFjaGVkIHRvIGxpbmsgZWxlbWVu
dHMgd2l0aCByZWw9cHJlZmV0Y2guIFNpbmNlIHByZWZldGNoIGxpbmtzIGFyZSBqdXN0IHRoZXJl
IGFzIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uLCB0aGUgb25lcnJvci9vbmxvYWQgZXZlbnQg
aXMgdGhlaXIgb25seSBwcm9ncmFtYXRpYyBzaWRlLWVmZmVjdC4KKworSWYgaXQgd29ya3MgeW91
IHNob3VsZCBzZWUgYSBtZXNzYWdlIGJlbG93IHNheWluZyB0aGUgdGVzdCBoYXMgcGFzc2VkLgor
CitQQVNTIG9uZXJyb3Igd2FzIGNhbGxlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wN2NlZDllYjAyMGE2ZDkzMjdmM2QyNGY1NDJmMTQ3ZDg2NjI5NDU4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJy
b3IuaHRtbApAQCAtMCwwICsxLDI1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICB0ZXN0UGFzc2VkKCdv
bmVycm9yIHdhcyBjYWxsZWQnKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQgb25lcnJvciBl
dmVudHMgY2FuIGJlIGF0dGFjaGVkIHRvIGxpbmsgZWxlbWVudHMgd2l0aCByZWw9cHJlZmV0Y2gu
IFNpbmNlIHByZWZldGNoIGxpbmtzIGFyZSBqdXN0IHRoZXJlIGFzIGEgcGVyZm9ybWFuY2Ugb3B0
aW1pemF0aW9uLCB0aGUgb25lcnJvci9vbmxvYWQgZXZlbnQgaXMgdGhlaXIgb25seSBwcm9ncmFt
YXRpYyBzaWRlLWVmZmVjdC48L3A+Cis8cD5JZiBpdCB3b3JrcyB5b3Ugc2hvdWxkIHNlZSBhIG1l
c3NhZ2UgYmVsb3cgc2F5aW5nIHRoZSB0ZXN0IGhhcyBwYXNzZWQuPC9wPgorPGxpbmsgaHJlZj0i
cHJlZmV0Y2gtbm9leGlzdHkubGluayIgcmVsPSJwcmVmZXRjaCIgb25sb2FkPSJ0ZXN0RmFpbGVk
KCdvbmxvYWQgZXZlbnQgc2hvdWxkIG5vdCBvY2N1cicpIiBvbmVycm9yPSJkb25lKCkiPgorPGhy
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKaW5kZXggNGU5Y2NmYmJhOGRjZTBiZTg1YjQ5NzA5NTA4ZjAzZjQwN2I0
MGUyNS4uNDc1MTY2NDgxY2Q2MDBjYTIzZjk5ZGI1ZTAyNTNhZDhjZDViMzZmMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQKQEAgLTkxNiw2ICs5MTYsNyBAQCBmYXN0L2Zvcm1zL3NsaWRlci16
b29tZWQuaHRtbAogIyBMaW5rIHByZWZldGNoIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQKIGZhc3Qv
ZG9tL0hUTUxMaW5rRWxlbWVudC9saW5rLWFuZC1zdWJyZXNvdXJjZS10ZXN0Lmh0bWwKIGZhc3Qv
ZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC5odG1sCitmYXN0L2RvbS9IVE1MTGlua0VsZW1l
bnQvcHJlZmV0Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0
Y2gtb25sb2FkLmh0bWwKIAogIyBUZXN0cyBmYWlsaW5nIGJlY2F1c2UgdGhlIGNvbnRleHQgbWVu
dSBpcyBncmFiYmluZyBtb3VzZSBldmVudHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4
IDFjYmE4Y2U5ZDBhNjk2ZTk5NTkwYzExYjM4ZWU2OTdkNDI1OTU2NzEuLjI5NjJjMTllMWM4YzQx
ODhhMTY1Y2FiY2ZkY2JhZjcyYjZkNmM1NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBA
IC0xODIsNiArMTgyLDcgQEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWRldmlj
ZS1vcmllbnRhdGlvbi5odG1sCiAjIExpbmsgcHJlZmV0Y2ggaXMgZGlzYWJsZWQgYnkgZGVmYXVs
dAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L2xpbmstYW5kLXN1YnJlc291cmNlLXRlc3QuaHRt
bAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLmh0bWwKK2Zhc3QvZG9tL0hUTUxM
aW5rRWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVu
dC9wcmVmZXRjaC1vbmxvYWQuaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2Uu
aHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA1MjdkMjJkNjExNWQ4MTg3NGUzMTUy
YTA5MWM1ZDcxMDg2Y2I2MGNhLi45MTU5MDk1YzIxMzNhMTZlZmFmMTFhNTE1Mjg3YjM5Y2QwYzlh
ODA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTI5NzcsNiArMjk3Nyw3IEBAIG1lZGlh
L3ZpZGVvLWRlbGF5LWxvYWQtZXZlbnQuaHRtbAogIyBMaW5rIHByZWZldGNoIGlzIGRpc2FibGVk
IGJ5IGRlZmF1bHQKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9saW5rLWFuZC1zdWJyZXNvdXJj
ZS10ZXN0Lmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC5odG1sCitmYXN0
L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9IVE1M
TGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRj
aC1wdXJwb3NlLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCAzOTFhODRjNGE2
YjM5NjEyYjBkOGUxNjYwNTliNDYyZjM4Mzc4MDRiLi5lYmFmNTBhZmJlODNlYzQ5MGRlNGFmNjY0
NWVmZGUwZWQ3YzIyNDIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtOTg3LDYgKzk4
Nyw3IEBAIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1kZXZpY2Utb3JpZW50YXRp
b24uaHRtbAogIyBMaW5rIHByZWZldGNoIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQKIGZhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9saW5rLWFuZC1zdWJyZXNvdXJjZS10ZXN0Lmh0bWwKIGZhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC5odG1sCitmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
cHJlZmV0Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gt
b25sb2FkLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDVhYTQ3MGI1NDE5NWE0NTc1NWU1MTI5MWY1OTcxYWY1Zjg0ODY1N2EuLjg0Zjg4
YjY1MDdkNTUyYzJjNzljMzI2MDBjMzAxZTM5N2IyM2U3MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0MCBAQAorMjAxMS0wMy0yOCAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1l
bnQgb25lcnJvciBldmVudHMgZm9yIDxsaW5rIHJlbD1wcmVmZXRjaD4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MTgyCisKKyAgICAgICAgVGhlc2Ug
ZXZlbnRzIGFyZSBlcXVpcmVkIG9uIGxpbmsgZWxlbWVudHMsIHNlZQorICAgICAgICBodHRwOi8v
ZGV2LnczLm9yZy9odG1sNS9zcGVjL092ZXJ2aWV3Lmh0bWwjdGhlLWxpbmstZWxlbWVudAorCisg
ICAgICAgIEFmdGVyIGEgZGlzY3Vzc2lvbiBpbiBXZWJLaXQtZGV2IGFib3V0IHRoZSBkaXJlY3Rp
b24gb2YgcHJlZmV0Y2ggaW4gdGhlIGxvYWRlciwgYW5kIGFib3V0IGEgcGF0aAorICAgICAgICB0
byBhZGRpbmcgdGhlIExpbmsgaGVhZGVyLCB3ZSBkZWNpZGVkIHRvIGxvb2sgYXQgbWFraW5nIG9u
ZXJyb3IsIG9ubG9hZCBhbmQgb25iZWZvcmVsb2FkIGV2ZW50cworICAgICAgICBtb3JlIHVuaWZv
cm1seSBzdXBwb3J0ZWQuICBTZWUgdGhlIHRocmVhZCBhdAorICAgICAgICBodHRwczovL2xpc3Rz
LndlYmtpdC5vcmcvcGlwZXJtYWlsL3dlYmtpdC1kZXYvMjAxMS1GZWJydWFyeS8wMTYwMzQuaHRt
bCAuCisKKyAgICAgICAgSXQgdHVybmVkIG91dCB0aGF0IHBhcnQgb2YgYWRkaW5nIG9uZXJyb3Ig
Zm9yIGxpbmsgcHJlZmV0Y2ggd2FzIHRvIG1ha2UgdGhlIHRvcCBDYWNoZWRSZXNvdXJjZSBsZXNz
CisgICAgICAgIGFic3RyYWN0LiAgSXQgd2FzIHB1cmUgdmlydHVhbCB1bnRpbCBwcmVmZXRjaCBi
ZWNhbWUgdGhlIGZpcnN0IGNvbnN1bWVyIHRvIHVzZSBhbiB1bnNwZWNpYWxpc2VkCisgICAgICAg
IGltcGxlbWVudGF0aW9uLCBhbmQgdGhpcyBDTCBjb250aW51ZXMgdGhhdCBieSBhZGRpbmcgYSBk
ZWZhdWx0IGNoZWNrTm90aWZ5IG1ldGhvZCB0byBpdC4gIEFzIGl0CisgICAgICAgIGhhcHBlbnMg
dGhlcmUgd2VyZSBhbHJlYWR5IHR3byBzdWJjbGFzc2VzIHVzaW5nIHdoYXQgYW1vdW50ZWQgdG8g
dGhlIGdlbmVyaWMgY2hlY2tOb3RpZnksIHNvIEkKKyAgICAgICAgYWxzbyByZW1vdmVkIHRob3Nl
LCBidXlpbmcgdXMgc29tZSBjb2RlIGNsZWFudXAgd2l0aCB0aGUgY2hhbmdlLgorCisgICAgICAg
IFRlc3Q6IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0bWwKKwor
ICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxMaW5rRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTExpbmtFbGVtZW50OjpvbmxvYWRUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxMaW5rRWxlbWVudDo6bm90aWZ5RmluaXNoZWQpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9D
YWNoZWRJbWFnZS5jcHA6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmg6Cisg
ICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNhY2hlZFJlc291cmNlOjpjaGVja05vdGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNo
ZWRSZXNvdXJjZTo6ZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZTo6ZXJy
b3IpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAq
IGxvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9D
YWNoZWRTY3JpcHQuaDoKKwogMjAxMS0wMy0yOCAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyIGFuZCBEYXJpbiBBZGxlci4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBjMTBiZGRiYWRkNjcx
YjNmZDA3ZDY0MDk1NWNjZDcwMTk5MzZiYjhjLi4wOGI5OGIxZjc1NjE0Yjg4OWIyNzZhNWM1ZTQ4
MjIwYjE2NzNhNTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBA
IC0xNDUsNiArMTQ1LDggQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKEF0dHJpYnV0ZSogYXR0cikKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICBlbHNl
IGlmIChhdHRyLT5uYW1lKCkgPT0gb25sb2FkQXR0cikKICAgICAgICAgc2V0QXR0cmlidXRlRXZl
bnRMaXN0ZW5lcihldmVudE5hbWVzKCkubG9hZEV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExp
c3RlbmVyKHRoaXMsIGF0dHIpKTsKKyAgICBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb25lcnJv
ckF0dHIpCisgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmVy
cm9yRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIodGhpcywgYXR0cikpOwogI2Vu
ZGlmCiAgICAgZWxzZSB7CiAgICAgICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gdGl0bGVBdHRyICYm
IG1fc2hlZXQpCkBAIC0zOTUsMTYgKzM5NywxOSBAQCBib29sIEhUTUxMaW5rRWxlbWVudDo6aXNM
b2FkaW5nKCkgY29uc3QKIHZvaWQgSFRNTExpbmtFbGVtZW50OjpvbmxvYWRUaW1lckZpcmVkKFRp
bWVyPEhUTUxMaW5rRWxlbWVudD4qIHRpbWVyKQogewogICAgIEFTU0VSVF9VTlVTRUQodGltZXIs
IHRpbWVyID09ICZtX29ubG9hZFRpbWVyKTsKLSAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVh
dGUoZXZlbnROYW1lcygpLmxvYWRFdmVudCwgZmFsc2UsIGZhbHNlKSk7CisgICAgaWYgKG1fY2Fj
aGVkTGlua1ByZWZldGNoLT5lcnJvck9jY3VycmVkKCkpCisgICAgICAgIGRpc3BhdGNoRXZlbnQo
RXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgZmFsc2UsIGZhbHNlKSk7Cisg
ICAgZWxzZQorICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LmxvYWRFdmVudCwgZmFsc2UsIGZhbHNlKSk7CisKKyAgICBtX2NhY2hlZExpbmtQcmVmZXRjaC0+
cmVtb3ZlQ2xpZW50KHRoaXMpOworICAgIG1fY2FjaGVkTGlua1ByZWZldGNoID0gMDsKIH0KIAog
dm9pZCBIVE1MTGlua0VsZW1lbnQ6Om5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKiByZXNv
dXJjZSkKIHsKICAgICBtX29ubG9hZFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKLSAgICBpZiAobV9j
YWNoZWRMaW5rUHJlZmV0Y2guZ2V0KCkgPT0gcmVzb3VyY2UpIHsKLSAgICAgICAgbV9jYWNoZWRM
aW5rUHJlZmV0Y2gtPnJlbW92ZUNsaWVudCh0aGlzKTsKLSAgICAgICAgbV9jYWNoZWRMaW5rUHJl
ZmV0Y2ggPSAwOwotICAgIH0KKyAgICBBU1NFUlQobV9jYWNoZWRMaW5rUHJlZmV0Y2guZ2V0KCkg
PT0gcmVzb3VyY2UpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkSW1hZ2UuY3BwCmluZGV4IDBlNDdiZmI2ZjUxZGVhNmQ5YTU1YjIwNmM0ODI0MTE2OWEz
OGQzZWUuLjk5MWE1MTQ2NjNlMWM4NTVlODBmMGIyYTk0ZTAxZjc0YWIyMWRmYWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcApAQCAtMzE4LDE2ICszMTgs
NiBAQCB2b2lkIENhY2hlZEltYWdlOjplcnJvcihDYWNoZWRSZXNvdXJjZTo6U3RhdHVzIHN0YXR1
cykKICAgICBjaGVja05vdGlmeSgpOwogfQogCi12b2lkIENhY2hlZEltYWdlOjpjaGVja05vdGlm
eSgpCi17Ci0gICAgaWYgKGlzTG9hZGluZygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDYWNo
ZWRSZXNvdXJjZUNsaWVudFdhbGtlciB3KG1fY2xpZW50cyk7Ci0gICAgd2hpbGUgKENhY2hlZFJl
c291cmNlQ2xpZW50KiBjID0gdy5uZXh0KCkpCi0gICAgICAgIGMtPm5vdGlmeUZpbmlzaGVkKHRo
aXMpOwotfQotCiB2b2lkIENhY2hlZEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGEoKQogewogICAg
IGJvb2wgY2FuRGVsZXRlSW1hZ2UgPSAhbV9pbWFnZSB8fCAobV9pbWFnZS0+aGFzT25lUmVmKCkg
JiYgbV9pbWFnZS0+aXNCaXRtYXBJbWFnZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZEltYWdlLmgKaW5kZXggMzI0MjQwOTY1MGM4M2JmYzkwN2QzNmI5YzA4NTRlOTlhYmFi
OWJhNy4uNDJjNzgxNDFhMTM5YmQwMDhiMDIxMjc4NDVkMzhmMThkYWQ5NWUwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKQEAgLTcxLDggKzcxLDYgQEAgcHVi
bGljOgogICAgIC8vIEZvciBjb21wYXRpYmlsaXR5LCBpbWFnZXMga2VlcCBsb2FkaW5nIGV2ZW4g
aWYgdGhlcmUgYXJlIEhUVFAgZXJyb3JzLgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJZ25vcmVI
VFRQU3RhdHVzQ29kZUVycm9ycygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZvaWQg
Y2hlY2tOb3RpZnkoKTsKLSAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IDY2ZTU4OWVkOTJkYmFlZjZmYmJm
ZDgyODNlYjE5MGZiMDdlMGFhYWYuLjk0MTM0NzJhNDQ3ZjZhYzRmMzdiYzJkMDQ2MzdhMGNkODc0
NmJjYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
LmNwcApAQCAtMTM0LDE1ICsxMzQsMzMgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6bG9hZChDYWNo
ZWRSZXNvdXJjZUxvYWRlciogY2FjaGVkUmVzb3VyY2VMb2FkZXIsIGJvb2wgaW5jcmUKICAgICBt
X2xvYWRpbmcgPSB0cnVlOwogfQogCit2b2lkIENhY2hlZFJlc291cmNlOjpjaGVja05vdGlmeSgp
Cit7CisgICAgaWYgKGlzTG9hZGluZygpKQorICAgICAgICByZXR1cm47CisKKyAgICBDYWNoZWRS
ZXNvdXJjZUNsaWVudFdhbGtlciB3KG1fY2xpZW50cyk7CisgICAgd2hpbGUgKENhY2hlZFJlc291
cmNlQ2xpZW50KiBjID0gdy5uZXh0KCkpCisgICAgICAgIGMtPm5vdGlmeUZpbmlzaGVkKHRoaXMp
OworfQorCiB2b2lkIENhY2hlZFJlc291cmNlOjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiB7CiAgICAgaWYgKCFhbGxEYXRhUmVjZWl2ZWQpCiAg
ICAgICAgIHJldHVybjsKICAgICAKICAgICBzZXRMb2FkaW5nKGZhbHNlKTsKLSAgICBDYWNoZWRS
ZXNvdXJjZUNsaWVudFdhbGtlciB3KG1fY2xpZW50cyk7Ci0gICAgd2hpbGUgKENhY2hlZFJlc291
cmNlQ2xpZW50KiBjID0gdy5uZXh0KCkpCi0gICAgICAgIGMtPm5vdGlmeUZpbmlzaGVkKHRoaXMp
OworICAgIGNoZWNrTm90aWZ5KCk7Cit9CisKK3ZvaWQgQ2FjaGVkUmVzb3VyY2U6OmVycm9yKENh
Y2hlZFJlc291cmNlOjpTdGF0dXMgc3RhdHVzKQoreworICAgIHNldFN0YXR1cyhzdGF0dXMpOwor
ICAgIEFTU0VSVChlcnJvck9jY3VycmVkKCkpOworICAgIG1fZGF0YS5jbGVhcigpOworCisgICAg
c2V0TG9hZGluZyhmYWxzZSk7CisgICAgY2hlY2tOb3RpZnkoKTsKIH0KIAogdm9pZCBDYWNoZWRS
ZXNvdXJjZTo6ZmluaXNoKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlLmgKaW5kZXggNWM4YjM4ZjFhYmE1NWU1MzBlOTM3ZDkyMzI1YTIwMmVlZDhlNGU2ZC4u
MTY5MjBhNTNmNzZkNmUxZTFhN2UyYWYwOThmZDYyODZkZWJkZWNlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmKSB7IH0KICAg
ICB2aXJ0dWFsIFN0cmluZyBlbmNvZGluZygpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRhdGEoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEsIGJvb2wg
YWxsRGF0YVJlY2VpdmVkKTsKLSAgICB2aXJ0dWFsIHZvaWQgZXJyb3IoQ2FjaGVkUmVzb3VyY2U6
OlN0YXR1cykgeyB9CisgICAgdmlydHVhbCB2b2lkIGVycm9yKENhY2hlZFJlc291cmNlOjpTdGF0
dXMpOwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZElnbm9yZUhUVFBTdGF0dXNDb2RlRXJyb3Jz
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApAQCAtMjE3LDYgKzIxNyw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHVwZGF0ZVJlc3BvbnNlQWZ0ZXJSZXZhbGlkYXRpb24oY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgdmFsaWRhdGluZ1Jlc3BvbnNlKTsKIAogcHJvdGVjdGVkOgorICAgIHZvaWQgY2hl
Y2tOb3RpZnkoKTsKKwogICAgIHZvaWQgc2V0RW5jb2RlZFNpemUodW5zaWduZWQpOwogICAgIHZv
aWQgc2V0RGVjb2RlZFNpemUodW5zaWduZWQpOwogICAgIHZvaWQgZGlkQWNjZXNzRGVjb2RlZERh
dGEoZG91YmxlIHRpbWVTdGFtcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRTY3JpcHQuY3BwCmluZGV4IDkzNjk0MjViOTdjNjc1NDE1NDgzYTYyNWM0OWNlZTc2YWExODNm
YWIuLmUxYThhMzIxN2FjNWI3NmVlZThmMTZmMmQxOWZmOTViMTQ3NWIwZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwCkBAIC0xMDQsMTYgKzEwNCw2
IEBAIHZvaWQgQ2FjaGVkU2NyaXB0OjpkYXRhKFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRh
LCBib29sIGFsbERhdGFSZWNlaXZlZCkKICAgICBjaGVja05vdGlmeSgpOwogfQogCi12b2lkIENh
Y2hlZFNjcmlwdDo6Y2hlY2tOb3RpZnkoKQotewotICAgIGlmIChpc0xvYWRpbmcoKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgQ2FjaGVkUmVzb3VyY2VDbGllbnRXYWxrZXIgdyhtX2NsaWVudHMp
OwotICAgIHdoaWxlIChDYWNoZWRSZXNvdXJjZUNsaWVudCogYyA9IHcubmV4dCgpKQotICAgICAg
ICBjLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsKLX0KLQogdm9pZCBDYWNoZWRTY3JpcHQ6OmVycm9y
KENhY2hlZFJlc291cmNlOjpTdGF0dXMgc3RhdHVzKQogewogICAgIHNldFN0YXR1cyhzdGF0dXMp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oCmluZGV4IDg1YzM4
MDU5NDFkNWE3Y2MxMDVjMTNhMTliMDhiYmQ2MzFlYzg2MDQuLmE0ZWE0NTM5NGJlYzkzOTJhMGY0
ZDJkYzBkODNlODIzOTM4NDE0YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRTY3JpcHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkU2NyaXB0LmgKQEAgLTU1LDggKzU1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBh
bGxEYXRhUmVjZWl2ZWQpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZXJyb3IoU3RhdHVzKTsKIAot
ICAgICAgICB2b2lkIGNoZWNrTm90aWZ5KCk7Ci0KICAgICAgICAgdmlydHVhbCB2b2lkIGRlc3Ry
b3lEZWNvZGVkRGF0YSgpOwogI2lmIFVTRShKU0MpICAgICAgICAKICAgICAgICAgLy8gQWxsb3dz
IEpTQyB0byBjYWNoZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzb3VyY2UuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>