<?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>49294</bug_id>
          
          <creation_ts>2010-11-09 17:43:43 -0800</creation_ts>
          <short_desc>[Web Timing] Zero out some values on cross-origin redirects</short_desc>
          <delta_ts>2011-01-05 18:41:55 -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>WebCore Misc.</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>http://www.w3.org/TR/navigation-timing/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>30685</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="James Simonsen">simonjam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>simonjam</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>307089</commentid>
    <comment_count>0</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-11-09 17:43:43 -0800</bug_when>
    <thetext>The spec isn&apos;t set finalized here yet, but we&apos;ll need to handle the parts of the spec that talk about cross-origin requests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312601</commentid>
    <comment_count>1</comment_count>
      <attachid>74612</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-11-22 16:44:17 -0800</bug_when>
    <thetext>Created attachment 74612
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320349</commentid>
    <comment_count>2</comment_count>
      <attachid>74612</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-10 13:13:08 -0800</bug_when>
    <thetext>Comment on attachment 74612
Patch

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

Looks fine from a SecurityOrigin point-of-view.  I&apos;ll let someone who knows WebPeformance give the real r+.

&gt; WebCore/loader/MainResourceLoader.cpp:175
&gt; +        RefPtr&lt;SecurityOrigin&gt; securityOrigin(SecurityOrigin::create(newRequest.url()));

We usually use the = form of the constructor.

&gt; WebCore/loader/MainResourceLoader.cpp:176
&gt; +        if (!securityOrigin-&gt;canRequest(redirectResponse.url()))

Interesting.  At first I thought this was backwards, but then I realized that it was correct.  Maybe add a comment explaining the ordering so we&apos;re not confused in the future?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320520</commentid>
    <comment_count>3</comment_count>
      <attachid>76284</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-10 17:55:01 -0800</bug_when>
    <thetext>Created attachment 76284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320521</commentid>
    <comment_count>4</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-10 17:55:40 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 74612 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=74612&amp;action=review
&gt; 
&gt; Looks fine from a SecurityOrigin point-of-view.  I&apos;ll let someone who knows WebPeformance give the real r+.
&gt; 
&gt; &gt; WebCore/loader/MainResourceLoader.cpp:175
&gt; &gt; +        RefPtr&lt;SecurityOrigin&gt; securityOrigin(SecurityOrigin::create(newRequest.url()));
&gt; 
&gt; We usually use the = form of the constructor.
&gt; 
&gt; &gt; WebCore/loader/MainResourceLoader.cpp:176
&gt; &gt; +        if (!securityOrigin-&gt;canRequest(redirectResponse.url()))
&gt; 
&gt; Interesting.  At first I thought this was backwards, but then I realized that it was correct.  Maybe add a comment explaining the ordering so we&apos;re not confused in the future?

Addressed both of these.

Tony, would you mind taking a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>321353</commentid>
    <comment_count>5</comment_count>
      <attachid>76284</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-13 13:09:12 -0800</bug_when>
    <thetext>Comment on attachment 76284
Patch

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

&gt; WebCore/page/PerformanceTiming.cpp:115
&gt; +        return 0;

The spec doesn&apos;t explicitly say to check for different origins in the redirect chain for unloadEvent{Start,End}. Instead they should check whether the page that fired the events is same origin as the current page. Is there a reason to guard them by the redirect chain check as well?

Everything else looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322923</commentid>
    <comment_count>6</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-15 16:29:00 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 76284 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=76284&amp;action=review
&gt; 
&gt; &gt; WebCore/page/PerformanceTiming.cpp:115
&gt; &gt; +        return 0;
&gt; 
&gt; The spec doesn&apos;t explicitly say to check for different origins in the redirect chain for unloadEvent{Start,End}. Instead they should check whether the page that fired the events is same origin as the current page. Is there a reason to guard them by the redirect chain check as well?

Good catch! Fixed. We&apos;ve got some good test cases now too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322924</commentid>
    <comment_count>7</comment_count>
      <attachid>76708</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2010-12-15 16:29:53 -0800</bug_when>
    <thetext>Created attachment 76708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329793</commentid>
    <comment_count>8</comment_count>
      <attachid>78044</attachid>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-01-05 14:26:20 -0800</bug_when>
    <thetext>Created attachment 78044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329795</commentid>
    <comment_count>9</comment_count>
    <who name="James Simonsen">simonjam</who>
    <bug_when>2011-01-05 14:27:30 -0800</bug_when>
    <thetext>Fishing for an R+. This has already been LGTM&apos;d.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329971</commentid>
    <comment_count>10</comment_count>
      <attachid>78044</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-05 18:41:50 -0800</bug_when>
    <thetext>Comment on attachment 78044
Patch

Clearing flags on attachment: 78044

Committed r75129: &lt;http://trac.webkit.org/changeset/75129&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329972</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-05 18:41:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74612</attachid>
            <date>2010-11-22 16:44:17 -0800</date>
            <delta_ts>2010-12-10 17:54:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49294-20101122164416.patch</filename>
            <type>text/plain</type>
            <size>11597</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNGRiZGMwMzJmZjQ2ZTBmOTg3ODlmZDJmNWUxOTAzN2I5Yzk3ODU5Li42Njg4MmQz
NDRmYTA4ZWQ4NDg2MDQ1NTRkZTZjZDI3MTk0MjVlNzYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMTEtMjIgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXZWIgVGltaW5n
XSBaZXJvIG91dCBzb21lIHZhbHVlcyBvbiBjcm9zcy1vcmlnaW4gcmVkaXJlY3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI5NAorCisgICAgICAg
ICogaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLXJlZGly
ZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctY3Jv
c3Mtb3JpZ2luLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9taXNjL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3QucGhwOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogV2ViIHRpbWluZyBub3QgZW5hYmxlZCBoZXJl
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOiBEaXR0by4KKyAgICAgICAgKiBwbGF0
Zm9ybS9xdC9Ta2lwcGVkOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDog
RGl0dG8uCisKIDIwMTAtMTEtMjIgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBXaW5kb3dzLXNwZWNpZmljIHJlc3VsdHMgZm9yIGZhc3QvcnVieS9uZXN0ZWQt
cnVieS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3Vy
Y2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVjdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNkMWQ5MDg4MTI5YmQyNzliZTcwZmI2YWRjMjE1NDFjMDA2OWYxNWYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2Vz
L3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3QuaHRtbApAQCAtMCwwICsxLDQzIEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxo
ZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgV2ViIFRpbWluZyByZXBvcnRzIHplcm9zIGZv
ciBhcHByb3ByaWF0ZSBmaWVsZHMgYWZ0ZXIgYSBjcm9zcy1vcmlnaW4gcmVkaXJlY3QuIik7CisK
K3ZhciBwZXJmb3JtYW5jZSA9IHdpbmRvdy53ZWJraXRQZXJmb3JtYW5jZSB8fCB7fTsKK3ZhciBu
YXZpZ2F0aW9uID0gcGVyZm9ybWFuY2UubmF2aWdhdGlvbiB8fCB7fTsKK3ZhciB0aW1pbmcgPSBw
ZXJmb3JtYW5jZS50aW1pbmcgfHwge307CisKK2Z1bmN0aW9uIHBlcmZvcm1UZXN0KCkgeworICAg
IHZhciBzaG91bGRCZVplcm9MaXN0ID0gWyJ1bmxvYWRFdmVudFN0YXJ0IiwgInVubG9hZEV2ZW50
RW5kIiwgInJlZGlyZWN0U3RhcnQiLCAicmVkaXJlY3RFbmQiXTsKKworICAgIHZhciB0aW1pbmdQ
cm9wZXJ0aWVzID0gbmV3IEFycmF5OworICAgIGZvciAodmFyIHByb3BlcnR5IGluIHRpbWluZykg
eworICAgICAgICB0aW1pbmdQcm9wZXJ0aWVzLnB1c2gocHJvcGVydHkpOworICAgIH0KKyAgICB0
aW1pbmdQcm9wZXJ0aWVzLnNvcnQoKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpbWluZ1By
b3BlcnRpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHNob3VsZEJlWmVyb0xpc3QuaW5k
ZXhPZih0aW1pbmdQcm9wZXJ0aWVzW2ldKSA+PSAwKQorICAgICAgICAgICAgc2hvdWxkQmUoInRp
bWluZy4iICsgdGltaW5nUHJvcGVydGllc1tpXSwgIjAiKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgc2hvdWxkQmVOb25aZXJvKCJ0aW1pbmcuIiArIHRpbWluZ1Byb3BlcnRpZXNbaV0pOwor
ICAgIH0KKyAgICBzaG91bGRCZSgibmF2aWdhdGlvbi5yZWRpcmVjdENvdW50IiwgIjAiKTsKKwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3dpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24oKSB7IHNldFRpbWVvdXQoInBlcmZvcm1U
ZXN0KCkiLCAwKTsgfSk7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLXJlZGlyZWN0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLXJl
ZGlyZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmU0N2NkMjg2Njc1YThmYTgwNWVlY2I2
N2ZkMjg0YTEwMzkwMDViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzAgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBXZWIgVGltaW5nIHJlcG9ydHMgemVy
b3MgZm9yIGFwcHJvcHJpYXRlIGZpZWxkcyBhZnRlciBhIGNyb3NzLW9yaWdpbiByZWRpcmVjdC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGltaW5nLmNvbm5lY3RFbmQg
aXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5jb25uZWN0U3RhcnQgaXMgbm9uLXplcm8uCitQQVNT
IHRpbWluZy5kb21Db21wbGV0ZSBpcyBub24temVyby4KK1BBU1MgdGltaW5nLmRvbUNvbnRlbnRM
b2FkZWRFbmQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5kb21Db250ZW50TG9hZGVkU3RhcnQg
aXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5kb21JbnRlcmFjdGl2ZSBpcyBub24temVyby4KK1BB
U1MgdGltaW5nLmRvbUxvYWRpbmcgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5kb21haW5Mb29r
dXBFbmQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5kb21haW5Mb29rdXBTdGFydCBpcyBub24t
emVyby4KK1BBU1MgdGltaW5nLmZldGNoU3RhcnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5s
b2FkRXZlbnRFbmQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5sb2FkRXZlbnRTdGFydCBpcyBu
b24temVyby4KK1BBU1MgdGltaW5nLm5hdmlnYXRpb25TdGFydCBpcyBub24temVyby4KK1BBU1Mg
dGltaW5nLnJlZGlyZWN0RW5kIGlzIDAKK1BBU1MgdGltaW5nLnJlZGlyZWN0U3RhcnQgaXMgMAor
UEFTUyB0aW1pbmcucmVxdWVzdFN0YXJ0IGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcucmVzcG9u
c2VFbmQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5yZXNwb25zZVN0YXJ0IGlzIG5vbi16ZXJv
LgorUEFTUyB0aW1pbmcudW5sb2FkRXZlbnRFbmQgaXMgMAorUEFTUyB0aW1pbmcudW5sb2FkRXZl
bnRTdGFydCBpcyAwCitQQVNTIG5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCBpcyAwCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJl
Y3QucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3dlYnRpbWluZy1jcm9zcy1vcmln
aW4tcmVkaXJlY3QucGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1NDE1ZmJiZWI0MjQyYjNiYjY1MzEzMWM5OTc3
MDhjNmQ2YzA1ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2Mvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVjdC5waHAKQEAgLTAsMCArMSw0IEBACis8
P3BocAorICBoZWFkZXIoJ0xvY2F0aW9uOiBodHRwOi8vbG9jYWxob3N0OjgwODAvbWlzYy9yZXNv
dXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVjdC5odG1sJyk7CisgIGhlYWRlcign
SFRUUC8xLjAgMzAyIEZvdW5kJyk7Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCA1
NDgwYjEyODU1ODcwYzIwZDQ3OTJmMzE5ODlmMDk5NThiNTI0YWVkLi5mYTZkYjkxODU3MTEzYTQz
MDQ2ZmQwZTcxMzJiNWVlMjU1YjU0MmQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAt
NTQ0Miw2ICs1NDQyLDcgQEAgZmFzdC9kb20vbmF2aWdhdGlvbi10eXBlLXJlbG9hZC5odG1sCiBm
YXN0L2RvbS93ZWJ0aW1pbmcuaHRtbAogZmFzdC9kb20vd2VidGltaW5nLW5hdmlnYXRlLXdpdGhp
bi1kb2N1bWVudC5odG1sCiBmYXN0L2RvbS93ZWJ0aW1pbmctZG9jdW1lbnQtb3Blbi5odG1sCito
dHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVjdC5waHAKIGh0dHAv
dGVzdHMvbWlzYy93ZWJ0aW1pbmctb25lLXJlZGlyZWN0LnBocAogaHR0cC90ZXN0cy9taXNjL3dl
YnRpbWluZy10d28tcmVkaXJlY3RzLnBocAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4
IDVhNzJkM2JhYzA4ODkyNmNkYzlkZjY0NTBhZTRjZmM1YTVkMGExOWUuLjU4YmY4ZWU5ZWJhZTRh
NDAxOWVhYmFjZjlhYTVkMTU3NTQ4OGIwZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBA
IC0yMTAsNiArMjEwLDcgQEAgZmFzdC9kb20vbmF2aWdhdGlvbi10eXBlLXJlbG9hZC5odG1sCiBm
YXN0L2RvbS93ZWJ0aW1pbmcuaHRtbAogZmFzdC9kb20vd2VidGltaW5nLWRvY3VtZW50LW9wZW4u
aHRtbAogZmFzdC9kb20vd2VidGltaW5nLW5hdmlnYXRlLXdpdGhpbi1kb2N1bWVudC5odG1sCito
dHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVjdC5waHAKIGh0dHAv
dGVzdHMvbWlzYy93ZWJ0aW1pbmctb25lLXJlZGlyZWN0LnBocAogaHR0cC90ZXN0cy9taXNjL3dl
YnRpbWluZy10d28tcmVkaXJlY3RzLnBocAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCAz
MWQwNTc3YzliNzg2MjVlYTdhN2M1YjVlNmQ1NmMwZDk4NmQ1MzljLi5jMjU5OTg3YTBmNTI3ZmMw
ZGQ4NTI0N2U2M2ZlMDMxY2U5ZWMwYTViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTUx
ODcsNiArNTE4Nyw3IEBAIGZhc3QvZG9tL25hdmlnYXRpb24tdHlwZS1yZWxvYWQuaHRtbAogZmFz
dC9kb20vd2VidGltaW5nLmh0bWwKIGZhc3QvZG9tL3dlYnRpbWluZy1kb2N1bWVudC1vcGVuLmh0
bWwKIGZhc3QvZG9tL3dlYnRpbWluZy1uYXZpZ2F0ZS13aXRoaW4tZG9jdW1lbnQuaHRtbAoraHR0
cC90ZXN0cy9taXNjL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3QucGhwCiBodHRwL3Rl
c3RzL21pc2Mvd2VidGltaW5nLW9uZS1yZWRpcmVjdC5waHAKIGh0dHAvdGVzdHMvbWlzYy93ZWJ0
aW1pbmctdHdvLXJlZGlyZWN0cy5waHAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBi
NTEwNTJlZDczMjg1OTQxZGIxZDgxMjNkNDYwMzJiMTY3MmU4MjcyLi42NDk1NWNmYjk0MjQ3ZWFj
YTg1OGNiOTQ4ODdmZmViNTJkYzUzMzFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAt
MTAxMCw2ICsxMDEwLDcgQEAgZmFzdC9kb20vbmF2aWdhdGlvbi10eXBlLXJlbG9hZC5odG1sCiBm
YXN0L2RvbS93ZWJ0aW1pbmcuaHRtbAogZmFzdC9kb20vd2VidGltaW5nLWRvY3VtZW50LW9wZW4u
aHRtbAogZmFzdC9kb20vd2VidGltaW5nLW5hdmlnYXRlLXdpdGhpbi1kb2N1bWVudC5odG1sCito
dHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVjdC5waHAKIGh0dHAv
dGVzdHMvbWlzYy93ZWJ0aW1pbmctb25lLXJlZGlyZWN0LnBocAogaHR0cC90ZXN0cy9taXNjL3dl
YnRpbWluZy10d28tcmVkaXJlY3RzLnBocAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRiZGIxYjc3MzRiMGJmNjAxODZlODdhOTFjMTU4
MzIyNGIwZmZiNWIuLjBmODRkYTJmYzQ2ZTAxNGY1NjU4YjgxMDg2MDMwNmJkMDcxZjExNTIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTAtMTEtMjIgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtXZWIgVGltaW5nXSBaZXJvIG91dCBzb21lIHZhbHVlcyBvbiBjcm9zcy1vcmlnaW4gcmVkaXJl
Y3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI5
NAorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2lu
LXJlZGlyZWN0LnBocAorCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkVGltaW5nOjpEb2N1bWVudExvYWRUaW1pbmcp
OiBBZGQgZmxhZyBmb3IgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0cy4KKyAgICAgICAgKiBsb2FkZXIv
TWFpblJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5SZXNvdXJjZUxv
YWRlcjo6d2lsbFNlbmRSZXF1ZXN0KTogU2V0IGZsYWcgb24gY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0
cy4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZU5hdmlnYXRpb246OnJlZGlyZWN0Q291bnQpOiBDbGVhciBpZiBj
cm9zcy1vcmlnaW4gZmxhZyBpcyBzZXQuCisgICAgICAgICogcGFnZS9QZXJmb3JtYW5jZVRpbWlu
Zy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRT
dGFydCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1pbmc6OnVubG9h
ZEV2ZW50RW5kKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6
cmVkaXJlY3RTdGFydCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VUaW1p
bmc6OnJlZGlyZWN0RW5kKTogRGl0dG8uCisKIDIwMTAtMTEtMjIgIEFsZXhhbmRlciBQYXZsb3Yg
IDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxk
bWFuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmggYi9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaAppbmRleCAzNjgwMDRiNTUxZGQxZGU5
NTFlY2YwMjQ5NTQxNTBkN2U1NjVhOGI1Li4yMWRmYTViZTg0YmEyNjc5MDMwNzJlZDVkOGM2ODNk
NTk5NTI0ZmM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcu
aAorKysgYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaApAQCAtNDAsNiArNDAs
NyBAQCBzdHJ1Y3QgRG9jdW1lbnRMb2FkVGltaW5nIHsKICAgICAgICAgLCByZXNwb25zZUVuZCgw
LjApCiAgICAgICAgICwgbG9hZEV2ZW50U3RhcnQoMC4wKQogICAgICAgICAsIGxvYWRFdmVudEVu
ZCgwLjApCisgICAgICAgICwgaGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdChmYWxzZSkKICAgICB7CiAg
ICAgfQogCkBAIC01Myw2ICs1NCw3IEBAIHN0cnVjdCBEb2N1bWVudExvYWRUaW1pbmcgewogICAg
IGRvdWJsZSByZXNwb25zZUVuZDsKICAgICBkb3VibGUgbG9hZEV2ZW50U3RhcnQ7CiAgICAgZG91
YmxlIGxvYWRFdmVudEVuZDsKKyAgICBib29sIGhhc0Nyb3NzT3JpZ2luUmVkaXJlY3Q7CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwIGIv
V2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRleCA4NWNlYjE5MTgxNzE4
Yzc1YWNiZDE4NzkxNzc3M2UwOGQ2NTUyMmM4Li44ODU5OGQwNjJhNjkwNTJjNjNiMGY4NmRiZDUy
MDZiZjBhMGQ1NzhiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2Fk
ZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE3
Miw2ICsxNzIsOSBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJl
c291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgUmVzbwogICAgIEFTU0VSVChkb2N1bWVu
dExvYWRlcigpLT50aW1pbmcoKS0+ZmV0Y2hTdGFydCk7CiAgICAgaWYgKCFyZWRpcmVjdFJlc3Bv
bnNlLmlzTnVsbCgpKSB7CiAgICAgICAgIERvY3VtZW50TG9hZFRpbWluZyogZG9jdW1lbnRMb2Fk
VGltaW5nID0gZG9jdW1lbnRMb2FkZXIoKS0+dGltaW5nKCk7CisgICAgICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShuZXdSZXF1
ZXN0LnVybCgpKSk7CisgICAgICAgIGlmICghc2VjdXJpdHlPcmlnaW4tPmNhblJlcXVlc3QocmVk
aXJlY3RSZXNwb25zZS51cmwoKSkpCisgICAgICAgICAgICBkb2N1bWVudExvYWRUaW1pbmctPmhh
c0Nyb3NzT3JpZ2luUmVkaXJlY3QgPSB0cnVlOwogICAgICAgICBkb2N1bWVudExvYWRUaW1pbmct
PnJlZGlyZWN0Q291bnQrKzsKICAgICAgICAgaWYgKCFkb2N1bWVudExvYWRUaW1pbmctPnJlZGly
ZWN0U3RhcnQpCiAgICAgICAgICAgICBkb2N1bWVudExvYWRUaW1pbmctPnJlZGlyZWN0U3RhcnQg
PSBkb2N1bWVudExvYWRUaW1pbmctPmZldGNoU3RhcnQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBiL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5h
dmlnYXRpb24uY3BwCmluZGV4IGQ1NzA1NjE1ODhlYmNiNDcyNThiZGRjMzdhZDVhMTlmODYwMDNm
MjguLjk2YTdhM2IyZWM3NDEzNzE2NzIxNDAxMTQyNjQ1YzU1ZDE4NjlmOTIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCkBAIC04Myw2ICs4Myw5IEBAIHVuc2lnbmVkIHNo
b3J0IFBlcmZvcm1hbmNlTmF2aWdhdGlvbjo6cmVkaXJlY3RDb3VudCgpIGNvbnN0CiAgICAgaWYg
KCFsb2FkZXIpCiAgICAgICAgIHJldHVybiAwOwogCisgICAgaWYgKGxvYWRlci0+dGltaW5nKCkt
Pmhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QpCisgICAgICAgIHJldHVybiAwOworCiAgICAgcmV0dXJu
IGxvYWRlci0+dGltaW5nKCktPnJlZGlyZWN0Q291bnQ7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAgYi9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VU
aW1pbmcuY3BwCmluZGV4IDgyYjcwMjcxNDQxOGQyYjM2OGMwYmNhMjZmZWY1Nzk2YTZhOTg1NGMu
LmEyZjAyMmUzZGE2Y2FlY2VmMDBhNDQ0YzNmM2QxZWUyMTJiZmVlYWIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlVGltaW5nLmNwcApAQCAtOTksNiArOTksOSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVy
Zm9ybWFuY2VUaW1pbmc6OnVubG9hZEV2ZW50U3RhcnQoKSBjb25zdAogICAgIGlmICghdGltaW5n
KQogICAgICAgICByZXR1cm4gMDsKIAorICAgIGlmICh0aW1pbmctPmhhc0Nyb3NzT3JpZ2luUmVk
aXJlY3QpCisgICAgICAgIHJldHVybiAwOworCiAgICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vj
b25kcyh0aW1pbmctPnVubG9hZEV2ZW50U3RhcnQpOwogfQogCkBAIC0xMDgsNiArMTExLDkgQEAg
dW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudEVuZCgpIGNv
bnN0CiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCisgICAgaWYgKHRpbWlu
Zy0+aGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdCkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICByZXR1
cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+dW5sb2FkRXZlbnRFbmQpOwogfQogCkBA
IC0xMTcsNiArMTIzLDkgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpy
ZWRpcmVjdFN0YXJ0KCkgY29uc3QKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7
CiAKKyAgICBpZiAodGltaW5nLT5oYXNDcm9zc09yaWdpblJlZGlyZWN0KQorICAgICAgICByZXR1
cm4gMDsKKwogICAgIHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5yZWRpcmVj
dFN0YXJ0KTsKIH0KIApAQCAtMTI2LDYgKzEzNSw5IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJm
b3JtYW5jZVRpbWluZzo6cmVkaXJlY3RFbmQoKSBjb25zdAogICAgIGlmICghdGltaW5nKQogICAg
ICAgICByZXR1cm4gMDsKIAorICAgIGlmICh0aW1pbmctPmhhc0Nyb3NzT3JpZ2luUmVkaXJlY3Qp
CisgICAgICAgIHJldHVybiAwOworCiAgICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0
aW1pbmctPnJlZGlyZWN0RW5kKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76284</attachid>
            <date>2010-12-10 17:55:01 -0800</date>
            <delta_ts>2010-12-15 16:29:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49294-20101210175500.patch</filename>
            <type>text/plain</type>
            <size>12534</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyNzkwN2VmMDYyY2RhNGI1MGVmMDlkZGQwYWZmYjNhNTk0MmVhMjM5Li43OTE0MjU2
ZGUwN2VhOTcwMDNmNzZkOTk5YzQyZmI4MjQ0Njg2ZGM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMTItMTAgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXZWIgVGltaW5n
XSBaZXJvIG91dCBzb21lIHZhbHVlcyBvbiBjcm9zcy1vcmlnaW4gcmVkaXJlY3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI5NAorCisgICAgICAg
ICogaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLXJlZGly
ZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctY3Jv
c3Mtb3JpZ2luLXJlZGlyZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9taXNjL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3QucGhwOiBBZGRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogV2ViIHRpbWluZyBub3QgZW5hYmxlZCBoZXJl
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOiBEaXR0by4KKyAgICAgICAgKiBwbGF0
Zm9ybS93aW4vU2tpcHBlZDogRGl0dG8uCisKIDIwMTAtMTItMTAgIFBldGVyIEthc3RpbmcgIDxw
a2FzdGluZ0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgQ2hyb21pdW0gdGVzdCBl
eHBlY3RhdGlvbnMgdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLXJlZGlyZWN0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4t
cmVkaXJlY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDFkOTA4ODEyOWJkMjc5YmU3MGZiNmFkYzIxNTQx
YzAwNjlmMTVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLXJlZGlyZWN0Lmh0bWwKQEAgLTAsMCAr
MSw0MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IFdlYiBUaW1pbmcgcmVwb3J0
cyB6ZXJvcyBmb3IgYXBwcm9wcmlhdGUgZmllbGRzIGFmdGVyIGEgY3Jvc3Mtb3JpZ2luIHJlZGly
ZWN0LiIpOworCit2YXIgcGVyZm9ybWFuY2UgPSB3aW5kb3cud2Via2l0UGVyZm9ybWFuY2UgfHwg
e307Cit2YXIgbmF2aWdhdGlvbiA9IHBlcmZvcm1hbmNlLm5hdmlnYXRpb24gfHwge307Cit2YXIg
dGltaW5nID0gcGVyZm9ybWFuY2UudGltaW5nIHx8IHt9OworCitmdW5jdGlvbiBwZXJmb3JtVGVz
dCgpIHsKKyAgICB2YXIgc2hvdWxkQmVaZXJvTGlzdCA9IFsidW5sb2FkRXZlbnRTdGFydCIsICJ1
bmxvYWRFdmVudEVuZCIsICJyZWRpcmVjdFN0YXJ0IiwgInJlZGlyZWN0RW5kIl07CisKKyAgICB2
YXIgdGltaW5nUHJvcGVydGllcyA9IG5ldyBBcnJheTsKKyAgICBmb3IgKHZhciBwcm9wZXJ0eSBp
biB0aW1pbmcpIHsKKyAgICAgICAgdGltaW5nUHJvcGVydGllcy5wdXNoKHByb3BlcnR5KTsKKyAg
ICB9CisgICAgdGltaW5nUHJvcGVydGllcy5zb3J0KCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCB0aW1pbmdQcm9wZXJ0aWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlmIChzaG91bGRCZVpl
cm9MaXN0LmluZGV4T2YodGltaW5nUHJvcGVydGllc1tpXSkgPj0gMCkKKyAgICAgICAgICAgIHNo
b3VsZEJlKCJ0aW1pbmcuIiArIHRpbWluZ1Byb3BlcnRpZXNbaV0sICIwIik7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHNob3VsZEJlTm9uWmVybygidGltaW5nLiIgKyB0aW1pbmdQcm9wZXJ0
aWVzW2ldKTsKKyAgICB9CisgICAgc2hvdWxkQmUoIm5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCIs
ICIwIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworanNUZXN0SXNBc3luYyA9IHRydWU7
Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKCkgeyBzZXRUaW1lb3V0
KCJwZXJmb3JtVGVzdCgpIiwgMCk7IH0pOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVjdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLWNyb3Nz
LW9yaWdpbi1yZWRpcmVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZlNDdjZDI4NjY3NWE4
ZmE4MDVlZWNiNjdmZDI4NGExMDM5MDA1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLXJlZGlyZWN0LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMwIEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgV2ViIFRpbWluZyBy
ZXBvcnRzIHplcm9zIGZvciBhcHByb3ByaWF0ZSBmaWVsZHMgYWZ0ZXIgYSBjcm9zcy1vcmlnaW4g
cmVkaXJlY3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRpbWluZy5j
b25uZWN0RW5kIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuY29ubmVjdFN0YXJ0IGlzIG5vbi16
ZXJvLgorUEFTUyB0aW1pbmcuZG9tQ29tcGxldGUgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5k
b21Db250ZW50TG9hZGVkRW5kIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuZG9tQ29udGVudExv
YWRlZFN0YXJ0IGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuZG9tSW50ZXJhY3RpdmUgaXMgbm9u
LXplcm8uCitQQVNTIHRpbWluZy5kb21Mb2FkaW5nIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcu
ZG9tYWluTG9va3VwRW5kIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuZG9tYWluTG9va3VwU3Rh
cnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5mZXRjaFN0YXJ0IGlzIG5vbi16ZXJvLgorUEFT
UyB0aW1pbmcubG9hZEV2ZW50RW5kIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcubG9hZEV2ZW50
U3RhcnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5uYXZpZ2F0aW9uU3RhcnQgaXMgbm9uLXpl
cm8uCitQQVNTIHRpbWluZy5yZWRpcmVjdEVuZCBpcyAwCitQQVNTIHRpbWluZy5yZWRpcmVjdFN0
YXJ0IGlzIDAKK1BBU1MgdGltaW5nLnJlcXVlc3RTdGFydCBpcyBub24temVyby4KK1BBU1MgdGlt
aW5nLnJlc3BvbnNlRW5kIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcucmVzcG9uc2VTdGFydCBp
cyBub24temVyby4KK1BBU1MgdGltaW5nLnVubG9hZEV2ZW50RW5kIGlzIDAKK1BBU1MgdGltaW5n
LnVubG9hZEV2ZW50U3RhcnQgaXMgMAorUEFTUyBuYXZpZ2F0aW9uLnJlZGlyZWN0Q291bnQgaXMg
MAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctY3Jvc3Mtb3Jp
Z2luLXJlZGlyZWN0LnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmct
Y3Jvc3Mtb3JpZ2luLXJlZGlyZWN0LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTQxNWZiYmViNDI0MmIzYmI2
NTMxMzFjOTk3NzA4YzZkNmMwNWUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3QucGhwCkBAIC0wLDAg
KzEsNCBAQAorPD9waHAKKyAgaGVhZGVyKCdMb2NhdGlvbjogaHR0cDovL2xvY2FsaG9zdDo4MDgw
L21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3QuaHRtbCcpOwor
ICBoZWFkZXIoJ0hUVFAvMS4wIDMwMiBGb3VuZCcpOworPz4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKaW5kZXggODA4YmY2NmE2NDdkMDRlNWM4YzQzOGJhMWEwMDEwZGZmYWY3MDYzOS4uZDk1NzQ4
YjQ4NjljZWU0MTU0NjE2NmI2MGIyNjg5OTYzNjI3MWFkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQKQEAgLTUzMjgsNiArNTMyOCw3IEBAIGZhc3QvZG9tL25hdmlnYXRpb24tdHlwZS1yZWxv
YWQuaHRtbAogZmFzdC9kb20vd2VidGltaW5nLmh0bWwKIGZhc3QvZG9tL3dlYnRpbWluZy1uYXZp
Z2F0ZS13aXRoaW4tZG9jdW1lbnQuaHRtbAogZmFzdC9kb20vd2VidGltaW5nLWRvY3VtZW50LW9w
ZW4uaHRtbAoraHR0cC90ZXN0cy9taXNjL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3Qu
cGhwCiBodHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLW9uZS1yZWRpcmVjdC5waHAKIGh0dHAvdGVz
dHMvbWlzYy93ZWJ0aW1pbmctdHdvLXJlZGlyZWN0cy5waHAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZAppbmRleCBmOGM2ZDM3ZGM4MWQ4Nzg0N2E5NmFjM2ZjYTNlODhiZTAzNTRmYjA4Li45Mjgx
OGE3ZThmOGFiZGE4NmM0YWVjZDQ1YzcxNTg1NDlkYzcyNTAzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZApAQCAtMjE4LDYgKzIxOCw3IEBAIGZhc3QvZG9tL25hdmlnYXRpb24tdHlwZS1yZWxv
YWQuaHRtbAogZmFzdC9kb20vd2VidGltaW5nLmh0bWwKIGZhc3QvZG9tL3dlYnRpbWluZy1kb2N1
bWVudC1vcGVuLmh0bWwKIGZhc3QvZG9tL3dlYnRpbWluZy1uYXZpZ2F0ZS13aXRoaW4tZG9jdW1l
bnQuaHRtbAoraHR0cC90ZXN0cy9taXNjL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3Qu
cGhwCiBodHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLW9uZS1yZWRpcmVjdC5waHAKIGh0dHAvdGVz
dHMvbWlzYy93ZWJ0aW1pbmctdHdvLXJlZGlyZWN0cy5waHAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZAppbmRleCBmNzA2NTYzNzIwN2FkMDg1MzIxMGU5N2VlZjY5OTA3MWFiMjhjMjE0Li5mOWIy
YTJmZTlkNzMyZjgxOGE3ZWU4YTE5NmNlNDhjNGQ3MGU5Njg2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
U2tpcHBlZApAQCAtMTAzNCw2ICsxMDM0LDcgQEAgZmFzdC9kb20vbmF2aWdhdGlvbi10eXBlLXJl
bG9hZC5odG1sCiBmYXN0L2RvbS93ZWJ0aW1pbmcuaHRtbAogZmFzdC9kb20vd2VidGltaW5nLWRv
Y3VtZW50LW9wZW4uaHRtbAogZmFzdC9kb20vd2VidGltaW5nLW5hdmlnYXRlLXdpdGhpbi1kb2N1
bWVudC5odG1sCitodHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVj
dC5waHAKIGh0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctb25lLXJlZGlyZWN0LnBocAogaHR0cC90
ZXN0cy9taXNjL3dlYnRpbWluZy10d28tcmVkaXJlY3RzLnBocAogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU5YmM2Y2U5ZDY0Y2JkMTg3
NWY4NWY5YzVjNGM2NmE5NDc5MWQxNDYuLjExYTU0NTIwMzJkNDliYzAwMDMxNWNmMDU1NzAwNTUy
MWY3MDU5NzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMTItMTAgIEphbWVzIFNpbW9uc2VuICA8c2lt
b25qYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFtXZWIgVGltaW5nXSBaZXJvIG91dCBzb21lIHZhbHVlcyBvbiBjcm9zcy1v
cmlnaW4gcmVkaXJlY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00OTI5NAorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmct
Y3Jvc3Mtb3JpZ2luLXJlZGlyZWN0LnBocAorCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9h
ZFRpbWluZy5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkVGltaW5nOjpEb2N1bWVu
dExvYWRUaW1pbmcpOiBBZGQgZmxhZyBmb3IgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0cy4KKyAgICAg
ICAgKiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1h
aW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KTogU2V0IGZsYWcgb24gY3Jvc3Mtb3Jp
Z2luIHJlZGlyZWN0cy4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZU5hdmlnYXRpb246OnJlZGlyZWN0Q291bnQp
OiBDbGVhciBpZiBjcm9zcy1vcmlnaW4gZmxhZyBpcyBzZXQuCisgICAgICAgICogcGFnZS9QZXJm
b3JtYW5jZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6
dW5sb2FkRXZlbnRTdGFydCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFuY2VU
aW1pbmc6OnVubG9hZEV2ZW50RW5kKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZVRpbWluZzo6cmVkaXJlY3RTdGFydCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGVy
Zm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0RW5kKTogRGl0dG8uCisKIDIwMTAtMTItMTAgIEtlbm5l
dGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgg
Yi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaAppbmRleCAzNjgwMDRiNTUxZGQx
ZGU5NTFlY2YwMjQ5NTQxNTBkN2U1NjVhOGI1Li4yMWRmYTViZTg0YmEyNjc5MDMwNzJlZDVkOGM2
ODNkNTk5NTI0ZmM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1p
bmcuaAorKysgYi9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaApAQCAtNDAsNiAr
NDAsNyBAQCBzdHJ1Y3QgRG9jdW1lbnRMb2FkVGltaW5nIHsKICAgICAgICAgLCByZXNwb25zZUVu
ZCgwLjApCiAgICAgICAgICwgbG9hZEV2ZW50U3RhcnQoMC4wKQogICAgICAgICAsIGxvYWRFdmVu
dEVuZCgwLjApCisgICAgICAgICwgaGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdChmYWxzZSkKICAgICB7
CiAgICAgfQogCkBAIC01Myw2ICs1NCw3IEBAIHN0cnVjdCBEb2N1bWVudExvYWRUaW1pbmcgewog
ICAgIGRvdWJsZSByZXNwb25zZUVuZDsKICAgICBkb3VibGUgbG9hZEV2ZW50U3RhcnQ7CiAgICAg
ZG91YmxlIGxvYWRFdmVudEVuZDsKKyAgICBib29sIGhhc0Nyb3NzT3JpZ2luUmVkaXJlY3Q7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3Bw
IGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAppbmRleCA4NWNlYjE5MTgx
NzE4Yzc1YWNiZDE4NzkxNzc3M2UwOGQ2NTUyMmM4Li41NDcxMTVlYzk3YjAwYjM0Yjc0Njc0MDcz
ZjU0M2UzYWI3MDI0NzA2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VM
b2FkZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKQEAg
LTE2NCw3ICsxNjQsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgUmVzbwogICAgIC8vIGRlZmVycmFs
cyBwbGF5cyBsZXNzIG9mIGEgcGFydCBpbiB0aGlzIGZ1bmN0aW9uIGluIHByZXZlbnRpbmcgdGhl
IGJhZCBiZWhhdmlvciBkZWZlcnJpbmcgCiAgICAgLy8gY2FsbGJhY2tzIGlzIG1lYW50IHRvIHBy
ZXZlbnQuCiAgICAgQVNTRVJUKCFuZXdSZXF1ZXN0LmlzTnVsbCgpKTsKLSAgICAKKwogICAgIC8v
IFRoZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgY2FuIGRvIGFueXRoaW5nIGluY2x1ZGluZyBwb3Nz
aWJseSByZW1vdmluZyB0aGUgbGFzdAogICAgIC8vIHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdDsg
b25lIGV4YW1wbGUgb2YgdGhpcyBpcyAzMjY2MjE2LgogICAgIFJlZlB0cjxNYWluUmVzb3VyY2VM
b2FkZXI+IHByb3RlY3QodGhpcyk7CkBAIC0xNzIsNiArMTcyLDEyIEBAIHZvaWQgTWFpblJlc291
cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBj
b25zdCBSZXNvCiAgICAgQVNTRVJUKGRvY3VtZW50TG9hZGVyKCktPnRpbWluZygpLT5mZXRjaFN0
YXJ0KTsKICAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkpIHsKICAgICAgICAgRG9j
dW1lbnRMb2FkVGltaW5nKiBkb2N1bWVudExvYWRUaW1pbmcgPSBkb2N1bWVudExvYWRlcigpLT50
aW1pbmcoKTsKKworICAgICAgICAvLyBDaGVjayBpZiB0aGUgZGVzdGluYXRpb24gcGFnZSBpcyBh
bGxvd2VkIHRvIGFjY2VzcyB0aGUgcHJldmlvdXMgdXJsJ3MgdGltaW5nIGluZm9ybWF0aW9uLgor
ICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZShuZXdSZXF1ZXN0LnVybCgpKTsKKyAgICAgICAgaWYgKCFzZWN1cml0eU9y
aWdpbi0+Y2FuUmVxdWVzdChyZWRpcmVjdFJlc3BvbnNlLnVybCgpKSkKKyAgICAgICAgICAgIGRv
Y3VtZW50TG9hZFRpbWluZy0+aGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdCA9IHRydWU7CisKICAgICAg
ICAgZG9jdW1lbnRMb2FkVGltaW5nLT5yZWRpcmVjdENvdW50Kys7CiAgICAgICAgIGlmICghZG9j
dW1lbnRMb2FkVGltaW5nLT5yZWRpcmVjdFN0YXJ0KQogICAgICAgICAgICAgZG9jdW1lbnRMb2Fk
VGltaW5nLT5yZWRpcmVjdFN0YXJ0ID0gZG9jdW1lbnRMb2FkVGltaW5nLT5mZXRjaFN0YXJ0OwpA
QCAtMTgzLDcgKzE4OSw3IEBAIHZvaWQgTWFpblJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVl
c3QoUmVzb3VyY2VSZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvCiAgICAgLy8gVVJMIG9m
IHRoZSBtYWluIGZyYW1lIHdoaWNoIGRvZXNuJ3QgY2hhbmdlIHdoZW4gd2UgcmVkaXJlY3QuCiAg
ICAgaWYgKGZyYW1lTG9hZGVyKCktPmlzTG9hZGluZ01haW5GcmFtZSgpKQogICAgICAgICBuZXdS
ZXF1ZXN0LnNldEZpcnN0UGFydHlGb3JDb29raWVzKG5ld1JlcXVlc3QudXJsKCkpOwotICAgIAor
CiAgICAgLy8gSWYgd2UncmUgZmllbGRpbmcgYSByZWRpcmVjdCBpbiByZXNwb25zZSB0byBhIFBP
U1QsIGZvcmNlIGEgbG9hZCBmcm9tIG9yaWdpbiwgc2luY2UKICAgICAvLyB0aGlzIGlzIGEgY29t
bW9uIHNpdGUgdGVjaG5pcXVlIHRvIHJldHVybiB0byBhIHBhZ2Ugdmlld2luZyBzb21lIGRhdGEg
dGhhdCB0aGUgUE9TVAogICAgIC8vIGp1c3QgbW9kaWZpZWQuCkBAIC0xOTIsNyArMTk4LDcgQEAg
dm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qm
IG5ld1JlcXVlc3QsIGNvbnN0IFJlc28KICAgICAgICAgbmV3UmVxdWVzdC5zZXRDYWNoZVBvbGlj
eShSZWxvYWRJZ25vcmluZ0NhY2hlRGF0YSk7CiAKICAgICBSZXNvdXJjZUxvYWRlcjo6d2lsbFNl
bmRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwotICAgIAorCiAgICAgLy8g
RG9uJ3Qgc2V0IHRoaXMgb24gdGhlIGZpcnN0IHJlcXVlc3QuIEl0IGlzIHNldCB3aGVuIHRoZSBt
YWluIGxvYWQgd2FzIHN0YXJ0ZWQuCiAgICAgbV9kb2N1bWVudExvYWRlci0+c2V0UmVxdWVzdChu
ZXdSZXF1ZXN0KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlTmF2aWdh
dGlvbi5jcHAgYi9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcAppbmRleCBk
NTcwNTYxNTg4ZWJjYjQ3MjU4YmRkYzM3YWQ1YTE5Zjg2MDAzZjI4Li5hNDYzMGQxNTU1N2I4YjFl
YmE4YzBkNWEzNzk4NzY0YjZlZWI3YzI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VOYXZpZ2F0aW9uLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0
aW9uLmNwcApAQCAtODMsNyArODMsMTEgQEAgdW5zaWduZWQgc2hvcnQgUGVyZm9ybWFuY2VOYXZp
Z2F0aW9uOjpyZWRpcmVjdENvdW50KCkgY29uc3QKICAgICBpZiAoIWxvYWRlcikKICAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICByZXR1cm4gbG9hZGVyLT50aW1pbmcoKS0+cmVkaXJlY3RDb3VudDsK
KyAgICBEb2N1bWVudExvYWRUaW1pbmcqIHRpbWluZyA9IGxvYWRlci0+dGltaW5nKCk7CisgICAg
aWYgKHRpbWluZy0+aGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdCkKKyAgICAgICAgcmV0dXJuIDA7CisK
KyAgICByZXR1cm4gdGltaW5nLT5yZWRpcmVjdENvdW50OwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwIGIv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcAppbmRleCA4MmI3MDI3MTQ0MThkMmIz
NjhjMGJjYTI2ZmVmNTc5NmE2YTk4NTRjLi5hMmYwMjJlM2RhNmNhZWNlZjAwYTQ0NGMzZjNkMWVl
MjEyYmZlZWFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3Bw
CisrKyBiL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKQEAgLTk5LDYgKzk5LDkg
QEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0
KCkgY29uc3QKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBpZiAo
dGltaW5nLT5oYXNDcm9zc09yaWdpblJlZGlyZWN0KQorICAgICAgICByZXR1cm4gMDsKKwogICAg
IHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT51bmxvYWRFdmVudFN0YXJ0KTsK
IH0KIApAQCAtMTA4LDYgKzExMSw5IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRp
bWluZzo6dW5sb2FkRXZlbnRFbmQoKSBjb25zdAogICAgIGlmICghdGltaW5nKQogICAgICAgICBy
ZXR1cm4gMDsKIAorICAgIGlmICh0aW1pbmctPmhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QpCisgICAg
ICAgIHJldHVybiAwOworCiAgICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmct
PnVubG9hZEV2ZW50RW5kKTsKIH0KIApAQCAtMTE3LDYgKzEyMyw5IEBAIHVuc2lnbmVkIGxvbmcg
bG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RTdGFydCgpIGNvbnN0CiAgICAgaWYgKCF0
aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCisgICAgaWYgKHRpbWluZy0+aGFzQ3Jvc3NPcmln
aW5SZWRpcmVjdCkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICByZXR1cm4gdG9JbnRlZ2VyTWls
bGlzZWNvbmRzKHRpbWluZy0+cmVkaXJlY3RTdGFydCk7CiB9CiAKQEAgLTEyNiw2ICsxMzUsOSBA
QCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0RW5kKCkgY29u
c3QKICAgICBpZiAoIXRpbWluZykKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBpZiAodGltaW5n
LT5oYXNDcm9zc09yaWdpblJlZGlyZWN0KQorICAgICAgICByZXR1cm4gMDsKKwogICAgIHJldHVy
biB0b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT5yZWRpcmVjdEVuZCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76708</attachid>
            <date>2010-12-15 16:29:53 -0800</date>
            <delta_ts>2011-01-05 14:26:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49294-20101215162952.patch</filename>
            <type>text/plain</type>
            <size>33292</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NWJhYzdlYmUxMGZmMzJhODZkY2U0OTgzYjZmZDIxNjkyNWIzNzNhLi40Y2FhMDFj
ZjhlMjU4M2YxM2RjYTg1NmZkZGJiZDkxOTQwM2JjZTM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAK
KzIwMTAtMTItMTUgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXZWIgVGltaW5n
XSBaZXJvIG91dCBzb21lIHZhbHVlcyBvbiBjcm9zcy1vcmlnaW4gcmVkaXJlY3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI5NAorCisgICAgICAg
ICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3dlYnRpbWluZy5qczoKKyAgICAgICAgKGNoZWNrVGlt
aW5nQmVmb3JlTG9hZCk6IFJlbW92ZSB1bmxvYWQuIEl0cyBiZWhhdmlvciBkZXBlbmRzIG9uIHBy
aW9yIG5hdmlnYXRpb24gYW5kIGlzIHRlc3RlZCBzZXBhcmF0ZWx5LgorICAgICAgICAoY2hlY2tU
aW1pbmdXaGlsZURlZmVycmVkKTogRGl0dG8uCisgICAgICAgIChjaGVja1dlYlRpbWluZ09uRE9N
Q29udGVudExvYWRlZCk6IERpdHRvLgorICAgICAgICAoY2hlY2tXZWJUaW1pbmdXaGlsZUFzeW5j
KTogRGl0dG8uCisgICAgICAgIChjaGVja1dlYlRpbWluZ09uTG9hZCk6IERpdHRvLgorICAgICAg
ICAoY2hlY2tXZWJUaW1pbmdBZnRlckxvYWQpOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2RvbS93
ZWJ0aW1pbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9yZXNvdXJj
ZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1hbmQtYmFjay1yZWRpcmVjdDEucGhwOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmln
aW4tYW5kLWJhY2stcmVkaXJlY3QyLnBocDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9t
aXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLWFuZC1iYWNrMS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1v
cmlnaW4tYW5kLWJhY2syLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9y
ZXNvdXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVjdC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4t
cmVkaXJlY3QucGhwOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2Vz
L3dlYnRpbWluZy1uby1vcmlnaW4uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9t
aXNjL3dlYnRpbWluZy1vcmlnaW5zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9taXNjL3dlYnRpbWluZy1vcmlnaW5zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9Ta2lwcGVkOiBTa2lwIG5ldyB3ZWIgdGltaW5nIHRlc3QuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL1NraXBwZWQ6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lw
cGVkOiBEaXR0by4KKwogMjAxMC0xMi0xNSAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZC4gTWFyayBhIGZhaWxlZCB0ZXN0IGluIGNocm9taXVtIHRl
c3QgZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0
LXRlc3RzL3dlYnRpbWluZy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy93
ZWJ0aW1pbmcuanMKaW5kZXggMjlkNjBhNWQzZDBmNThhYWMyNmRhOTM4ZTMwMzhmMWUyMDBjYjkz
Yi4uYzE1YzRjNzRjNjRlYWI1YTdhNjQ3YTliOTdkMDczYmVlODVhODJhOSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3dlYnRpbWluZy5qcworKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvd2VidGltaW5nLmpzCkBAIC0xOSw5ICsxOSw2
IEBAIGZ1bmN0aW9uIGNoZWNrVGltaW5nQmVmb3JlTG9hZCgpCiB7CiAgICAgc2hvdWxkQmVHcmVh
dGVyVGhhbk9yRXF1YWwoInRpbWluZy5uYXZpZ2F0aW9uU3RhcnQiLCAib25lSG91ckFnb1VUQyIp
OwogCi0gICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy51bmxvYWRFdmVudFN0
YXJ0IiwgInRpbWluZy5uYXZpZ2F0aW9uU3RhcnQiKTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFu
T3JFcXVhbCgidGltaW5nLnVubG9hZEV2ZW50RW5kIiwgInRpbWluZy51bmxvYWRFdmVudFN0YXJ0
Iik7Ci0KICAgICBzaG91bGRCZSgidGltaW5nLnJlZGlyZWN0U3RhcnQiLCAiMCIpOwogICAgIHNo
b3VsZEJlKCJ0aW1pbmcucmVkaXJlY3RFbmQiLCAiMCIpOwogICAgIHNob3VsZEJlKCJuYXZpZ2F0
aW9uLnJlZGlyZWN0Q291bnQiLCAiMCIpOwpAQCAtNTIsOSArNDksNiBAQCBmdW5jdGlvbiBjaGVj
a1RpbWluZ1doaWxlRGVmZXJyZWQoKQogewogICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFs
KCJ0aW1pbmcubmF2aWdhdGlvblN0YXJ0IiwgIm9uZUhvdXJBZ29VVEMiKTsKIAotICAgIHNob3Vs
ZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcudW5sb2FkRXZlbnRTdGFydCIsICJ0aW1pbmcu
bmF2aWdhdGlvblN0YXJ0Iik7Ci0gICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWlu
Zy51bmxvYWRFdmVudEVuZCIsICJ0aW1pbmcudW5sb2FkRXZlbnRTdGFydCIpOwotCiAgICAgc2hv
dWxkQmUoInRpbWluZy5yZWRpcmVjdFN0YXJ0IiwgIjAiKTsKICAgICBzaG91bGRCZSgidGltaW5n
LnJlZGlyZWN0RW5kIiwgIjAiKTsKICAgICBzaG91bGRCZSgibmF2aWdhdGlvbi5yZWRpcmVjdENv
dW50IiwgIjAiKTsKQEAgLTg2LDkgKzgwLDYgQEAgZnVuY3Rpb24gY2hlY2tUaW1pbmdXaGlsZURl
ZmVycmVkKCkKIGZ1bmN0aW9uIGNoZWNrV2ViVGltaW5nT25ET01Db250ZW50TG9hZGVkKCkgewog
ICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcubmF2aWdhdGlvblN0YXJ0Iiwg
Im9uZUhvdXJBZ29VVEMiKTsKIAotICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1p
bmcudW5sb2FkRXZlbnRTdGFydCIsICJ0aW1pbmcubmF2aWdhdGlvblN0YXJ0Iik7Ci0gICAgc2hv
dWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy51bmxvYWRFdmVudEVuZCIsICJ0aW1pbmcu
dW5sb2FkRXZlbnRTdGFydCIpOwotCiAgICAgc2hvdWxkQmUoInRpbWluZy5yZWRpcmVjdFN0YXJ0
IiwgIjAiKTsKICAgICBzaG91bGRCZSgidGltaW5nLnJlZGlyZWN0RW5kIiwgIjAiKTsKICAgICBz
aG91bGRCZSgibmF2aWdhdGlvbi5yZWRpcmVjdENvdW50IiwgIjAiKTsKQEAgLTEyNiw5ICsxMTcs
NiBAQCBmdW5jdGlvbiBjaGVja1dlYlRpbWluZ1doaWxlQXN5bmMoKQogewogICAgIHNob3VsZEJl
R3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcubmF2aWdhdGlvblN0YXJ0IiwgIm9uZUhvdXJBZ29V
VEMiKTsKIAotICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcudW5sb2FkRXZl
bnRTdGFydCIsICJ0aW1pbmcubmF2aWdhdGlvblN0YXJ0Iik7Ci0gICAgc2hvdWxkQmVHcmVhdGVy
VGhhbk9yRXF1YWwoInRpbWluZy51bmxvYWRFdmVudEVuZCIsICJ0aW1pbmcudW5sb2FkRXZlbnRT
dGFydCIpOwotCiAgICAgc2hvdWxkQmUoInRpbWluZy5yZWRpcmVjdFN0YXJ0IiwgIjAiKTsKICAg
ICBzaG91bGRCZSgidGltaW5nLnJlZGlyZWN0RW5kIiwgIjAiKTsKICAgICBzaG91bGRCZSgibmF2
aWdhdGlvbi5yZWRpcmVjdENvdW50IiwgIjAiKTsKQEAgLTE2MSw5ICsxNDksNiBAQCBmdW5jdGlv
biBjaGVja1dlYlRpbWluZ09uTG9hZCgpCiB7CiAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1
YWwoInRpbWluZy5uYXZpZ2F0aW9uU3RhcnQiLCAib25lSG91ckFnb1VUQyIpOwogCi0gICAgc2hv
dWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy51bmxvYWRFdmVudFN0YXJ0IiwgInRpbWlu
Zy5uYXZpZ2F0aW9uU3RhcnQiKTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGlt
aW5nLnVubG9hZEV2ZW50RW5kIiwgInRpbWluZy51bmxvYWRFdmVudFN0YXJ0Iik7Ci0KICAgICBz
aG91bGRCZSgidGltaW5nLnJlZGlyZWN0U3RhcnQiLCAiMCIpOwogICAgIHNob3VsZEJlKCJ0aW1p
bmcucmVkaXJlY3RFbmQiLCAiMCIpOwogICAgIHNob3VsZEJlKCJuYXZpZ2F0aW9uLnJlZGlyZWN0
Q291bnQiLCAiMCIpOwpAQCAtMTk3LDkgKzE4Miw2IEBAIGZ1bmN0aW9uIGNoZWNrV2ViVGltaW5n
QWZ0ZXJMb2FkKCkKIHsKICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5nLm5h
dmlnYXRpb25TdGFydCIsICJvbmVIb3VyQWdvVVRDIik7CiAKLSAgICBzaG91bGRCZUdyZWF0ZXJU
aGFuT3JFcXVhbCgidGltaW5nLnVubG9hZEV2ZW50U3RhcnQiLCAidGltaW5nLm5hdmlnYXRpb25T
dGFydCIpOwotICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcudW5sb2FkRXZl
bnRFbmQiLCAidGltaW5nLnVubG9hZEV2ZW50U3RhcnQiKTsKLQogICAgIHNob3VsZEJlKCJ0aW1p
bmcucmVkaXJlY3RTdGFydCIsICIwIik7CiAgICAgc2hvdWxkQmUoInRpbWluZy5yZWRpcmVjdEVu
ZCIsICIwIik7CiAgICAgc2hvdWxkQmUoIm5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCIsICIwIik7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93ZWJ0aW1pbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2VidGltaW5nLWV4cGVjdGVkLnR4dAppbmRleCA2Nzc5
OWE5MTRiYmM0MTZmZDA2YzU0MjM2YjI0YTk3Y2UwOWI4MjRlLi5iMWU5ZDAwZjBlODcxOTg3N2Ew
NWZhODhkNzU4NTZhZmE1ZDFkMzRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93
ZWJ0aW1pbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dlYnRpbWlu
Zy1leHBlY3RlZC50eHQKQEAgLTQsOCArNCw2IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAK
IAogUEFTUyB0aW1pbmcubmF2aWdhdGlvblN0YXJ0IGlzID49IG9uZUhvdXJBZ29VVEMKLVBBU1Mg
dGltaW5nLnVubG9hZEV2ZW50U3RhcnQgaXMgPj0gdGltaW5nLm5hdmlnYXRpb25TdGFydAotUEFT
UyB0aW1pbmcudW5sb2FkRXZlbnRFbmQgaXMgPj0gdGltaW5nLnVubG9hZEV2ZW50U3RhcnQKIFBB
U1MgdGltaW5nLnJlZGlyZWN0U3RhcnQgaXMgMAogUEFTUyB0aW1pbmcucmVkaXJlY3RFbmQgaXMg
MAogUEFTUyBuYXZpZ2F0aW9uLnJlZGlyZWN0Q291bnQgaXMgMApAQCAtMjQsOCArMjIsNiBAQCBQ
QVNTIHRpbWluZy5kb21Db21wbGV0ZSBpcyAwCiBQQVNTIHRpbWluZy5sb2FkRXZlbnRTdGFydCBp
cyAwCiBQQVNTIHRpbWluZy5sb2FkRXZlbnRFbmQgaXMgMAogUEFTUyB0aW1pbmcubmF2aWdhdGlv
blN0YXJ0IGlzID49IG9uZUhvdXJBZ29VVEMKLVBBU1MgdGltaW5nLnVubG9hZEV2ZW50U3RhcnQg
aXMgPj0gdGltaW5nLm5hdmlnYXRpb25TdGFydAotUEFTUyB0aW1pbmcudW5sb2FkRXZlbnRFbmQg
aXMgPj0gdGltaW5nLnVubG9hZEV2ZW50U3RhcnQKIFBBU1MgdGltaW5nLnJlZGlyZWN0U3RhcnQg
aXMgMAogUEFTUyB0aW1pbmcucmVkaXJlY3RFbmQgaXMgMAogUEFTUyBuYXZpZ2F0aW9uLnJlZGly
ZWN0Q291bnQgaXMgMApAQCAtNDQsOCArNDAsNiBAQCBQQVNTIHRpbWluZy5kb21Db21wbGV0ZSBp
cyAwCiBQQVNTIHRpbWluZy5sb2FkRXZlbnRTdGFydCBpcyAwCiBQQVNTIHRpbWluZy5sb2FkRXZl
bnRFbmQgaXMgMAogUEFTUyB0aW1pbmcubmF2aWdhdGlvblN0YXJ0IGlzID49IG9uZUhvdXJBZ29V
VEMKLVBBU1MgdGltaW5nLnVubG9hZEV2ZW50U3RhcnQgaXMgPj0gdGltaW5nLm5hdmlnYXRpb25T
dGFydAotUEFTUyB0aW1pbmcudW5sb2FkRXZlbnRFbmQgaXMgPj0gdGltaW5nLnVubG9hZEV2ZW50
U3RhcnQKIFBBU1MgdGltaW5nLnJlZGlyZWN0U3RhcnQgaXMgMAogUEFTUyB0aW1pbmcucmVkaXJl
Y3RFbmQgaXMgMAogUEFTUyBuYXZpZ2F0aW9uLnJlZGlyZWN0Q291bnQgaXMgMApAQCAtNjQsOCAr
NTgsNiBAQCBQQVNTIHRpbWluZy5kb21Db21wbGV0ZSBpcyAwCiBQQVNTIHRpbWluZy5sb2FkRXZl
bnRTdGFydCBpcyAwCiBQQVNTIHRpbWluZy5sb2FkRXZlbnRFbmQgaXMgMAogUEFTUyB0aW1pbmcu
bmF2aWdhdGlvblN0YXJ0IGlzID49IG9uZUhvdXJBZ29VVEMKLVBBU1MgdGltaW5nLnVubG9hZEV2
ZW50U3RhcnQgaXMgPj0gdGltaW5nLm5hdmlnYXRpb25TdGFydAotUEFTUyB0aW1pbmcudW5sb2Fk
RXZlbnRFbmQgaXMgPj0gdGltaW5nLnVubG9hZEV2ZW50U3RhcnQKIFBBU1MgdGltaW5nLnJlZGly
ZWN0U3RhcnQgaXMgMAogUEFTUyB0aW1pbmcucmVkaXJlY3RFbmQgaXMgMAogUEFTUyBuYXZpZ2F0
aW9uLnJlZGlyZWN0Q291bnQgaXMgMApAQCAtODQsOCArNzYsNiBAQCBQQVNTIHRpbWluZy5kb21D
b21wbGV0ZSBpcyAwCiBQQVNTIHRpbWluZy5sb2FkRXZlbnRTdGFydCBpcyAwCiBQQVNTIHRpbWlu
Zy5sb2FkRXZlbnRFbmQgaXMgMAogUEFTUyB0aW1pbmcubmF2aWdhdGlvblN0YXJ0IGlzID49IG9u
ZUhvdXJBZ29VVEMKLVBBU1MgdGltaW5nLnVubG9hZEV2ZW50U3RhcnQgaXMgPj0gdGltaW5nLm5h
dmlnYXRpb25TdGFydAotUEFTUyB0aW1pbmcudW5sb2FkRXZlbnRFbmQgaXMgPj0gdGltaW5nLnVu
bG9hZEV2ZW50U3RhcnQKIFBBU1MgdGltaW5nLnJlZGlyZWN0U3RhcnQgaXMgMAogUEFTUyB0aW1p
bmcucmVkaXJlY3RFbmQgaXMgMAogUEFTUyBuYXZpZ2F0aW9uLnJlZGlyZWN0Q291bnQgaXMgMApA
QCAtMTA1LDggKzk1LDYgQEAgUEFTUyB0aW1pbmcuZG9tQ29tcGxldGUgaXMgPj0gdGltaW5nLmRv
bUNvbnRlbnRMb2FkZWRFbmQKIFBBU1MgdGltaW5nLmxvYWRFdmVudFN0YXJ0IGlzID49IHRpbWlu
Zy5yZXNwb25zZUVuZAogUEFTUyB0aW1pbmcubG9hZEV2ZW50RW5kIGlzIDAKIFBBU1MgdGltaW5n
Lm5hdmlnYXRpb25TdGFydCBpcyA+PSBvbmVIb3VyQWdvVVRDCi1QQVNTIHRpbWluZy51bmxvYWRF
dmVudFN0YXJ0IGlzID49IHRpbWluZy5uYXZpZ2F0aW9uU3RhcnQKLVBBU1MgdGltaW5nLnVubG9h
ZEV2ZW50RW5kIGlzID49IHRpbWluZy51bmxvYWRFdmVudFN0YXJ0CiBQQVNTIHRpbWluZy5yZWRp
cmVjdFN0YXJ0IGlzIDAKIFBBU1MgdGltaW5nLnJlZGlyZWN0RW5kIGlzIDAKIFBBU1MgbmF2aWdh
dGlvbi5yZWRpcmVjdENvdW50IGlzIDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9yZXNvdXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1hbmQtYmFjay1yZWRpcmVj
dDEucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmct
Y3Jvc3Mtb3JpZ2luLWFuZC1iYWNrLXJlZGlyZWN0MS5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjY4ODQ5YTky
YzhkYWQ1ZWE5YjA1MGQ1M2VmNmFkMzBiYTFhMDI5NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1h
bmQtYmFjay1yZWRpcmVjdDEucGhwCkBAIC0wLDAgKzEsNSBAQAorPD9waHAKKyAgLy8gVGVzdHMg
cnVuIGZyb20gMTI3LjAuMC4xLCBzbyBsb2NhbGhvc3Qgd2lsbCBhcHBlYXIgdG8gYmUgYSBkaWZm
ZXJlbnQgb3JpZ2luLgorICBoZWFkZXIoJ0xvY2F0aW9uOiBodHRwOi8vbG9jYWxob3N0OjgwMDAv
bWlzYy9yZXNvdXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1hbmQtYmFjay1yZWRpcmVjdDIu
cGhwJyk7CisgIGhlYWRlcignSFRUUC8xLjAgMzAyIEZvdW5kJyk7Cis/PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3Jp
Z2luLWFuZC1iYWNrLXJlZGlyZWN0Mi5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
cmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tYW5kLWJhY2stcmVkaXJlY3QyLnBocApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41OWM2YjdhMmZiZmUxODQyNjFlOTg4MmRkZjQ2OGFjYzg0Zjk3ODc4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy93ZWJ0
aW1pbmctY3Jvc3Mtb3JpZ2luLWFuZC1iYWNrLXJlZGlyZWN0Mi5waHAKQEAgLTAsMCArMSw1IEBA
Cis8P3BocAorICAvLyAxMjcuMC4wLjEgaXMgd2hlcmUgdGhlIHRlc3Qgb3JpZ2luYWxseSBzdGFy
dGVkLiBXZSByZWRpcmVjdGVkIHRvICJsb2NhbGhvc3QiIGJlZm9yZSB0aGlzLgorICBoZWFkZXIo
J0xvY2F0aW9uOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9yZXNvdXJjZXMvd2VidGltaW5n
LWNyb3NzLW9yaWdpbi1hbmQtYmFjazIuaHRtbCcpOworICBoZWFkZXIoJ0hUVFAvMS4wIDMwMiBG
b3VuZCcpOworPz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNv
dXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1hbmQtYmFjazEuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1hbmQtYmFj
azEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43NzU4ODZjYzlmNjFkNDYzZTFjMjVmNWI4OGQ0ZjBiODM5MGU2
YWUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291
cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLWFuZC1iYWNrMS5odG1sCkBAIC0wLDAgKzEsMTUg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ZnVuY3Rpb24gZG9SZWRpcmVjdCgpIHsKKyAgICB3aW5kb3cubG9jYXRpb24gPSAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tYW5kLWJh
Y2stcmVkaXJlY3QxLnBocCI7Cit9CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgc2V0VGltZW91
dChkb1JlZGlyZWN0LCAwKSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNl
cy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLWFuZC1iYWNrMi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLWFuZC1iYWNrMi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBjYzNkMTI3ZjFiYWE4YzdmOGQwODNmN2ZhMzFlOWI3NjQ1NmQzYjgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2Vz
L3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tYW5kLWJhY2syLmh0bWwKQEAgLTAsMCArMSw0NCBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMtdGVzdC1yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiSWYgdGhlIGRlc3RpbmF0aW9uIGFuZCBwcmV2aW91cyBwYWdlIGhhdmUgdGhlIHNh
bWUgb3JpZ2luLCB0aGVuIFdlYiBUaW1pbmcgc2hvdWxkIHJlcG9ydCB1bmxvYWQgdGltaW5nLiIp
OworCit2YXIgcGVyZm9ybWFuY2UgPSB3aW5kb3cud2Via2l0UGVyZm9ybWFuY2UgfHwge307Cit2
YXIgbmF2aWdhdGlvbiA9IHBlcmZvcm1hbmNlLm5hdmlnYXRpb24gfHwge307Cit2YXIgdGltaW5n
ID0gcGVyZm9ybWFuY2UudGltaW5nIHx8IHt9OworCitmdW5jdGlvbiBwZXJmb3JtVGVzdCgpIHsK
KyAgICAvLyBGSVhNRTogTmVlZCBhIHdheSB0byBzeW5jaHJvbml6ZSB0aGUgdGVzdCBzbyB0aGF0
IGxvYWRFdmVudEVuZCBpcyBub24temVyby4KKyAgICB2YXIgc2hvdWxkQmVaZXJvTGlzdCA9IFsi
bG9hZEV2ZW50RW5kIiwgInJlZGlyZWN0U3RhcnQiLCAicmVkaXJlY3RFbmQiXTsKKworICAgIHZh
ciB0aW1pbmdQcm9wZXJ0aWVzID0gbmV3IEFycmF5OworICAgIGZvciAodmFyIHByb3BlcnR5IGlu
IHRpbWluZykgeworICAgICAgICB0aW1pbmdQcm9wZXJ0aWVzLnB1c2gocHJvcGVydHkpOworICAg
IH0KKyAgICB0aW1pbmdQcm9wZXJ0aWVzLnNvcnQoKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRpbWluZ1Byb3BlcnRpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHNob3VsZEJlWmVy
b0xpc3QuaW5kZXhPZih0aW1pbmdQcm9wZXJ0aWVzW2ldKSA+PSAwKQorICAgICAgICAgICAgc2hv
dWxkQmUoInRpbWluZy4iICsgdGltaW5nUHJvcGVydGllc1tpXSwgIjAiKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgc2hvdWxkQmVOb25aZXJvKCJ0aW1pbmcuIiArIHRpbWluZ1Byb3BlcnRp
ZXNbaV0pOworICAgIH0KKyAgICBzaG91bGRCZSgibmF2aWdhdGlvbi5yZWRpcmVjdENvdW50Iiwg
IjAiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibG9hZCIsIHBlcmZvcm1UZXN0KTsKKwordmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNl
cy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLXJlZGlyZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3QuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yYzBjMDEzMTkyZWFjY2YxNzUyNTZjODVhY2NkMjQyNzgxMTVhMGI4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy93
ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLXJlZGlyZWN0Lmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiV2ViIFRpbWluZyBzaG91bGQgemVybyBvdXQgcmVkaXJlY3Qgc3RhdHMgYWZ0ZXIgYSBj
cm9zcy1vcmlnaW4gcmVkaXJlY3QuIik7CisKK3ZhciBwZXJmb3JtYW5jZSA9IHdpbmRvdy53ZWJr
aXRQZXJmb3JtYW5jZSB8fCB7fTsKK3ZhciBuYXZpZ2F0aW9uID0gcGVyZm9ybWFuY2UubmF2aWdh
dGlvbiB8fCB7fTsKK3ZhciB0aW1pbmcgPSBwZXJmb3JtYW5jZS50aW1pbmcgfHwge307CisKK2Z1
bmN0aW9uIHBlcmZvcm1UZXN0KCkgeworICAgIC8vIEZJWE1FOiBOZWVkIGEgd2F5IHRvIHN5bmNo
cm9uaXplIHRoZSB0ZXN0IHNvIHRoYXQgbG9hZEV2ZW50RW5kIGlzIG5vbi16ZXJvLgorICAgIHZh
ciBzaG91bGRCZVplcm9MaXN0ID0gWyJsb2FkRXZlbnRFbmQiLCAidW5sb2FkRXZlbnRTdGFydCIs
ICJ1bmxvYWRFdmVudEVuZCIsICJyZWRpcmVjdFN0YXJ0IiwgInJlZGlyZWN0RW5kIl07CisKKyAg
ICB2YXIgdGltaW5nUHJvcGVydGllcyA9IG5ldyBBcnJheTsKKyAgICBmb3IgKHZhciBwcm9wZXJ0
eSBpbiB0aW1pbmcpIHsKKyAgICAgICAgdGltaW5nUHJvcGVydGllcy5wdXNoKHByb3BlcnR5KTsK
KyAgICB9CisgICAgdGltaW5nUHJvcGVydGllcy5zb3J0KCk7CisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB0aW1pbmdQcm9wZXJ0aWVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIGlmIChzaG91bGRC
ZVplcm9MaXN0LmluZGV4T2YodGltaW5nUHJvcGVydGllc1tpXSkgPj0gMCkKKyAgICAgICAgICAg
IHNob3VsZEJlKCJ0aW1pbmcuIiArIHRpbWluZ1Byb3BlcnRpZXNbaV0sICIwIik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHNob3VsZEJlTm9uWmVybygidGltaW5nLiIgKyB0aW1pbmdQcm9w
ZXJ0aWVzW2ldKTsKKyAgICB9CisgICAgc2hvdWxkQmUoIm5hdmlnYXRpb24ucmVkaXJlY3RDb3Vu
dCIsICIwIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKword2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoImxvYWQiLCBwZXJmb3JtVGVzdCk7CisKK3ZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
K3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNv
dXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVjdC5waHAgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3Qu
cGhwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVmOTgxOTcyYzE1MDkxYjE3M2I4NWFkMWIzZGU2MTk3ZDUwZWJlYmUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2Vz
L3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3QucGhwCkBAIC0wLDAgKzEsNSBAQAorPD9w
aHAKKyAgLy8gVGVzdHMgcnVuIGZyb20gMTI3LjAuMC4xLCBzbyBsb2NhbGhvc3Qgd2lsbCBhcHBl
YXIgdG8gYmUgYSBkaWZmZXJlbnQgb3JpZ2luLgorICBoZWFkZXIoJ0xvY2F0aW9uOiBodHRwOi8v
bG9jYWxob3N0OjgwODAvbWlzYy9yZXNvdXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRp
cmVjdC5odG1sJyk7CisgIGhlYWRlcignSFRUUC8xLjAgMzAyIEZvdW5kJyk7Cis/PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctbm8t
b3JpZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRp
bWluZy1uby1vcmlnaW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTE5OWM2MTM5MjhmZDUwYzVhYmU4NmNk
MTQxMmQ5YjYxNTViOGZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctbm8tb3JpZ2luLmh0bWwKQEAgLTAsMCArMSw0NCBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbigiV2ViIFRpbWluZyBzaG91bGQgcmVwb3J0IHplcm9zIGZvciByZWRpcmVjdHMg
YW5kIHVubG9hZCBzaW5jZSB0aGVyZSB3YXMgbm8gcHJlY2VkaW5nIHBhZ2UuIik7CisKK3ZhciBw
ZXJmb3JtYW5jZSA9IHdpbmRvdy53ZWJraXRQZXJmb3JtYW5jZSB8fCB7fTsKK3ZhciBuYXZpZ2F0
aW9uID0gcGVyZm9ybWFuY2UubmF2aWdhdGlvbiB8fCB7fTsKK3ZhciB0aW1pbmcgPSBwZXJmb3Jt
YW5jZS50aW1pbmcgfHwge307CisKK2Z1bmN0aW9uIHBlcmZvcm1UZXN0KCkgeworICAgIC8vIEZJ
WE1FOiBOZWVkIGEgd2F5IHRvIHN5bmNocm9uaXplIHRoZSB0ZXN0IHNvIHRoYXQgbG9hZEV2ZW50
RW5kIGlzIG5vbi16ZXJvLgorICAgIHZhciBzaG91bGRCZVplcm9MaXN0ID0gWyJsb2FkRXZlbnRF
bmQiLCAicmVkaXJlY3RTdGFydCIsICJyZWRpcmVjdEVuZCIsICJ1bmxvYWRFdmVudFN0YXJ0Iiwg
InVubG9hZEV2ZW50RW5kIl07CisKKyAgICB2YXIgdGltaW5nUHJvcGVydGllcyA9IG5ldyBBcnJh
eTsKKyAgICBmb3IgKHZhciBwcm9wZXJ0eSBpbiB0aW1pbmcpIHsKKyAgICAgICAgdGltaW5nUHJv
cGVydGllcy5wdXNoKHByb3BlcnR5KTsKKyAgICB9CisgICAgdGltaW5nUHJvcGVydGllcy5zb3J0
KCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aW1pbmdQcm9wZXJ0aWVzLmxlbmd0aDsgKytp
KSB7CisgICAgICAgIGlmIChzaG91bGRCZVplcm9MaXN0LmluZGV4T2YodGltaW5nUHJvcGVydGll
c1tpXSkgPj0gMCkKKyAgICAgICAgICAgIHNob3VsZEJlKCJ0aW1pbmcuIiArIHRpbWluZ1Byb3Bl
cnRpZXNbaV0sICIwIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNob3VsZEJlTm9uWmVy
bygidGltaW5nLiIgKyB0aW1pbmdQcm9wZXJ0aWVzW2ldKTsKKyAgICB9CisgICAgc2hvdWxkQmUo
Im5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCIsICIwIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBwZXJmb3JtVGVzdCk7CisKK3Zh
ciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctb3JpZ2lucy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLW9yaWdpbnMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk2NzkxMjFlYWVhNDA2MGE1NGM5MzA2Y2M0NTQwOThlOTM2OTRkZmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLW9yaWdp
bnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTA0IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTM6IFVuY2F1Z2h0IFJlZmVyZW5jZUVycm9yOiBwYWdlTG9hZGVkIGlzIG5vdCBkZWZpbmVkCisg
IAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicK
Ky0tLS0tLS0tCitXZWIgVGltaW5nIHNob3VsZCByZXBvcnQgemVyb3MgZm9yIHJlZGlyZWN0cyBh
bmQgdW5sb2FkIHNpbmNlIHRoZXJlIHdhcyBubyBwcmVjZWRpbmcgcGFnZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGltaW5nLmNvbm5lY3RFbmQgaXMgbm9uLXplcm8u
CitQQVNTIHRpbWluZy5jb25uZWN0U3RhcnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5kb21D
b21wbGV0ZSBpcyBub24temVyby4KK1BBU1MgdGltaW5nLmRvbUNvbnRlbnRMb2FkZWRFbmQgaXMg
bm9uLXplcm8uCitQQVNTIHRpbWluZy5kb21Db250ZW50TG9hZGVkU3RhcnQgaXMgbm9uLXplcm8u
CitQQVNTIHRpbWluZy5kb21JbnRlcmFjdGl2ZSBpcyBub24temVyby4KK1BBU1MgdGltaW5nLmRv
bUxvYWRpbmcgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5kb21haW5Mb29rdXBFbmQgaXMgbm9u
LXplcm8uCitQQVNTIHRpbWluZy5kb21haW5Mb29rdXBTdGFydCBpcyBub24temVyby4KK1BBU1Mg
dGltaW5nLmZldGNoU3RhcnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5sb2FkRXZlbnRFbmQg
aXMgMAorUEFTUyB0aW1pbmcubG9hZEV2ZW50U3RhcnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWlu
Zy5uYXZpZ2F0aW9uU3RhcnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5yZWRpcmVjdEVuZCBp
cyAwCitQQVNTIHRpbWluZy5yZWRpcmVjdFN0YXJ0IGlzIDAKK1BBU1MgdGltaW5nLnJlcXVlc3RT
dGFydCBpcyBub24temVyby4KK1BBU1MgdGltaW5nLnJlc3BvbnNlRW5kIGlzIG5vbi16ZXJvLgor
UEFTUyB0aW1pbmcucmVzcG9uc2VTdGFydCBpcyBub24temVyby4KK1BBU1MgdGltaW5nLnVubG9h
ZEV2ZW50RW5kIGlzIDAKK1BBU1MgdGltaW5nLnVubG9hZEV2ZW50U3RhcnQgaXMgMAorUEFTUyBu
YXZpZ2F0aW9uLnJlZGlyZWN0Q291bnQgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0
aCAvLzwhLS1mcmFtZTEtLT4tLT4nCistLS0tLS0tLQorV2ViIFRpbWluZyBzaG91bGQgemVybyBv
dXQgcmVkaXJlY3Qgc3RhdHMgYWZ0ZXIgYSBjcm9zcy1vcmlnaW4gcmVkaXJlY3QuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRpbWluZy5jb25uZWN0RW5kIGlzIG5vbi16
ZXJvLgorUEFTUyB0aW1pbmcuY29ubmVjdFN0YXJ0IGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcu
ZG9tQ29tcGxldGUgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5kb21Db250ZW50TG9hZGVkRW5k
IGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuZG9tQ29udGVudExvYWRlZFN0YXJ0IGlzIG5vbi16
ZXJvLgorUEFTUyB0aW1pbmcuZG9tSW50ZXJhY3RpdmUgaXMgbm9uLXplcm8uCitQQVNTIHRpbWlu
Zy5kb21Mb2FkaW5nIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuZG9tYWluTG9va3VwRW5kIGlz
IG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuZG9tYWluTG9va3VwU3RhcnQgaXMgbm9uLXplcm8uCitQ
QVNTIHRpbWluZy5mZXRjaFN0YXJ0IGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcubG9hZEV2ZW50
RW5kIGlzIDAKK1BBU1MgdGltaW5nLmxvYWRFdmVudFN0YXJ0IGlzIG5vbi16ZXJvLgorUEFTUyB0
aW1pbmcubmF2aWdhdGlvblN0YXJ0IGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcucmVkaXJlY3RF
bmQgaXMgMAorUEFTUyB0aW1pbmcucmVkaXJlY3RTdGFydCBpcyAwCitQQVNTIHRpbWluZy5yZXF1
ZXN0U3RhcnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5yZXNwb25zZUVuZCBpcyBub24temVy
by4KK1BBU1MgdGltaW5nLnJlc3BvbnNlU3RhcnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy51
bmxvYWRFdmVudEVuZCBpcyAwCitQQVNTIHRpbWluZy51bmxvYWRFdmVudFN0YXJ0IGlzIDAKK1BB
U1MgbmF2aWdhdGlvbi5yZWRpcmVjdENvdW50IGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFt
ZVBhdGggLy88IS0tZnJhbWUyLS0+LS0+JworLS0tLS0tLS0KK0lmIHRoZSBkZXN0aW5hdGlvbiBh
bmQgcHJldmlvdXMgcGFnZSBoYXZlIHRoZSBzYW1lIG9yaWdpbiwgdGhlbiBXZWIgVGltaW5nIHNo
b3VsZCByZXBvcnQgdW5sb2FkIHRpbWluZy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgdGltaW5nLmNvbm5lY3RFbmQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5jb25u
ZWN0U3RhcnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5kb21Db21wbGV0ZSBpcyBub24temVy
by4KK1BBU1MgdGltaW5nLmRvbUNvbnRlbnRMb2FkZWRFbmQgaXMgbm9uLXplcm8uCitQQVNTIHRp
bWluZy5kb21Db250ZW50TG9hZGVkU3RhcnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5kb21J
bnRlcmFjdGl2ZSBpcyBub24temVyby4KK1BBU1MgdGltaW5nLmRvbUxvYWRpbmcgaXMgbm9uLXpl
cm8uCitQQVNTIHRpbWluZy5kb21haW5Mb29rdXBFbmQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWlu
Zy5kb21haW5Mb29rdXBTdGFydCBpcyBub24temVyby4KK1BBU1MgdGltaW5nLmZldGNoU3RhcnQg
aXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5sb2FkRXZlbnRFbmQgaXMgMAorUEFTUyB0aW1pbmcu
bG9hZEV2ZW50U3RhcnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5uYXZpZ2F0aW9uU3RhcnQg
aXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5yZWRpcmVjdEVuZCBpcyAwCitQQVNTIHRpbWluZy5y
ZWRpcmVjdFN0YXJ0IGlzIDAKK1BBU1MgdGltaW5nLnJlcXVlc3RTdGFydCBpcyBub24temVyby4K
K1BBU1MgdGltaW5nLnJlc3BvbnNlRW5kIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcucmVzcG9u
c2VTdGFydCBpcyBub24temVyby4KK1BBU1MgdGltaW5nLnVubG9hZEV2ZW50RW5kIGlzIG5vbi16
ZXJvLgorUEFTUyB0aW1pbmcudW5sb2FkRXZlbnRTdGFydCBpcyBub24temVyby4KK1BBU1MgbmF2
aWdhdGlvbi5yZWRpcmVjdENvdW50IGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L21pc2Mvd2VidGltaW5nLW9yaWdpbnMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy93ZWJ0aW1pbmctb3JpZ2lucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNzA2ZjkxZDBhM2Y3ZjA4ZmIz
YmQ3M2IyNDQwMTQ5N2FlMDRhZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2Mvd2VidGltaW5nLW9yaWdpbnMuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cit9CitmdW5jdGlvbiBhbGxEb25lKCkgeworICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBwYWdlTG9h
ZGVkKTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHdpZHRoPSI2NDAiIGhl
aWdodD0iNDgwIiBzcmM9InJlc291cmNlcy93ZWJ0aW1pbmctbm8tb3JpZ2luLmh0bWwiPjwvaWZy
YW1lPgorPGlmcmFtZSB3aWR0aD0iNjQwIiBoZWlnaHQ9IjQ4MCIgc3JjPSJyZXNvdXJjZXMvd2Vi
dGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVjdC5waHAiPjwvaWZyYW1lPgorPGlmcmFtZSB3aWR0
aD0iNjQwIiBoZWlnaHQ9IjQ4MCIgc3JjPSJyZXNvdXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdp
bi1hbmQtYmFjazEuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkCmluZGV4IDJlYjU5MTFhNDkxOTg2Y2Y1ODIzMDk4MTg2Yjg5ZjIzNjEyMGZh
NmMuLmUxOTdiZjkxZDg1YTZlZTg3ZjYzNzJhMjYzMWUzY2UwMGE2ZDcyZmIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkCkBAIC01MzA4LDYgKzUzMDgsNyBAQCBmYXN0L2RvbS9uYXZpZ2F0aW9u
LXR5cGUtcmVsb2FkLmh0bWwKIGZhc3QvZG9tL3dlYnRpbWluZy5odG1sCiBmYXN0L2RvbS93ZWJ0
aW1pbmctbmF2aWdhdGUtd2l0aGluLWRvY3VtZW50Lmh0bWwKIGZhc3QvZG9tL3dlYnRpbWluZy1k
b2N1bWVudC1vcGVuLmh0bWwKK2h0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctb3JpZ2lucy5odG1s
CiBodHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLW9uZS1yZWRpcmVjdC5waHAKIGh0dHAvdGVzdHMv
bWlzYy93ZWJ0aW1pbmctdHdvLXJlZGlyZWN0cy5waHAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBl
ZAppbmRleCBmOGM2ZDM3ZGM4MWQ4Nzg0N2E5NmFjM2ZjYTNlODhiZTAzNTRmYjA4Li5kOGE2MmEw
ZTllNmUxYWFiZDZjZmFiNDMzNWNlMzIzMjgyOTkyYmYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZApAQCAtMjE4LDYgKzIxOCw3IEBAIGZhc3QvZG9tL25hdmlnYXRpb24tdHlwZS1yZWxvYWQu
aHRtbAogZmFzdC9kb20vd2VidGltaW5nLmh0bWwKIGZhc3QvZG9tL3dlYnRpbWluZy1kb2N1bWVu
dC1vcGVuLmh0bWwKIGZhc3QvZG9tL3dlYnRpbWluZy1uYXZpZ2F0ZS13aXRoaW4tZG9jdW1lbnQu
aHRtbAoraHR0cC90ZXN0cy9taXNjL3dlYnRpbWluZy1vcmlnaW5zLmh0bWwKIGh0dHAvdGVzdHMv
bWlzYy93ZWJ0aW1pbmctb25lLXJlZGlyZWN0LnBocAogaHR0cC90ZXN0cy9taXNjL3dlYnRpbWlu
Zy10d28tcmVkaXJlY3RzLnBocAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDg3NjA5
MmE4NzYyMjIxOGQ4Y2VlYjE0ZWE2YTg5Mzg4NzkyMzAyNjUuLmVmYjhlZTBlZjE0MjU3ZmU5NWZm
MWE1ZDc3NDhkMzUxNGEwNWVjNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC0xMDM3
LDYgKzEwMzcsNyBAQCBmYXN0L2RvbS9uYXZpZ2F0aW9uLXR5cGUtcmVsb2FkLmh0bWwKIGZhc3Qv
ZG9tL3dlYnRpbWluZy5odG1sCiBmYXN0L2RvbS93ZWJ0aW1pbmctZG9jdW1lbnQtb3Blbi5odG1s
CiBmYXN0L2RvbS93ZWJ0aW1pbmctbmF2aWdhdGUtd2l0aGluLWRvY3VtZW50Lmh0bWwKK2h0dHAv
dGVzdHMvbWlzYy93ZWJ0aW1pbmctb3JpZ2lucy5odG1sCiBodHRwL3Rlc3RzL21pc2Mvd2VidGlt
aW5nLW9uZS1yZWRpcmVjdC5waHAKIGh0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctdHdvLXJlZGly
ZWN0cy5waHAKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCA2M2FjNzlhN2E4NmY1MzljM2ZkNGMwODBmODE3NDk5MzViZmZkZDE0Li5lODQx
ODJiMjhkYzdjZDMyYzE4ZWZkMzk0NjZmMDQ2ZDQyOGU1Y2IwIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEw
LTEyLTE1ICBKYW1lcyBTaW1vbnNlbiAgPHNpbW9uamFtQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbV2ViIFRpbWluZ10gWmVy
byBvdXQgc29tZSB2YWx1ZXMgb24gY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkyOTQKKworICAgICAgICBUZXN0
czogaHR0cC90ZXN0cy9taXNjL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3QucGhwCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLW9yaWdpbnMuaHRtbAorCisg
ICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkVGltaW5nOjpEb2N1bWVudExvYWRUaW1pbmcpOiBBZGQgZmxhZ3MgZm9yIGNy
b3NzLW9yaWdpbiByZWRpcmVjdHMgYW5kIHNhbWUtb3JpZ2luIG5hdmlnYXRpb24uCisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojp+RnJhbWVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0b3BMb2Fk
aW5nKTogRG9uJ3Qgb3ZlcndyaXRlIHByZXZpb3VzIHVubG9hZCB0aW1lcy4KKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpjb21wbGV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVM
b2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIpOiBSZW1lbWJlciBwcmV2aW91cyBVUkwgdG8g
c2VlIGlmIG5hdmlnYXRpb24gaXMgc2FtZS1vcmlnaW4uCisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2FkKTogU2V0IGZsYWcgaWYgbmF2aWdhdGlvbiBp
cyBzYW1lLW9yaWdpbi4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAg
KiBsb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1haW5S
ZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KTogU2V0IGZsYWcgb24gY3Jvc3Mtb3JpZ2lu
IHJlZGlyZWN0cy4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlTmF2aWdhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZU5hdmlnYXRpb246OnJlZGlyZWN0Q291bnQpOiBD
bGVhciBpZiBjcm9zcy1vcmlnaW4gcmVkaXJlY3QgZmxhZyBpcyBzZXQuCisgICAgICAgICogcGFn
ZS9QZXJmb3JtYW5jZVRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQZXJmb3JtYW5jZVRp
bWluZzo6cmVkaXJlY3RTdGFydCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybWFu
Y2VUaW1pbmc6OnJlZGlyZWN0RW5kKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpQZXJmb3Jt
YW5jZVRpbWluZzo6dW5sb2FkRXZlbnRTdGFydCk6IENsZWFyIGlmIGNyb3NzLW9yaWdpbiBuYXZp
Z2F0aW9uIGlzIHNldC4KKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjp1bmxv
YWRFdmVudEVuZCk6IERpdHRvLgorCiAyMDEwLTEyLTE1ICBBbmRyZWFzIEtsaW5nICA8YW5kcmVh
cy5rbGluZ0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21lcy4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5oIGIvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgKaW5kZXggMzY4MDA0YjU1MWRkMWRlOTUxZWNm
MDI0OTU0MTUwZDdlNTY1YThiNS4uZDRhYTdkMGM5NWVhODk3YWFhODkxMDhhN2VmOGI2YWQ4OTA4
ZWE3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgKKysr
IGIvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgKQEAgLTQwLDYgKzQwLDggQEAg
c3RydWN0IERvY3VtZW50TG9hZFRpbWluZyB7CiAgICAgICAgICwgcmVzcG9uc2VFbmQoMC4wKQog
ICAgICAgICAsIGxvYWRFdmVudFN0YXJ0KDAuMCkKICAgICAgICAgLCBsb2FkRXZlbnRFbmQoMC4w
KQorICAgICAgICAsIGhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QoZmFsc2UpCisgICAgICAgICwgaGFz
U2FtZU9yaWdpbkFzUHJldmlvdXNEb2N1bWVudChmYWxzZSkKICAgICB7CiAgICAgfQogCkBAIC01
Myw2ICs1NSw4IEBAIHN0cnVjdCBEb2N1bWVudExvYWRUaW1pbmcgewogICAgIGRvdWJsZSByZXNw
b25zZUVuZDsKICAgICBkb3VibGUgbG9hZEV2ZW50U3RhcnQ7CiAgICAgZG91YmxlIGxvYWRFdmVu
dEVuZDsKKyAgICBib29sIGhhc0Nyb3NzT3JpZ2luUmVkaXJlY3Q7CisgICAgYm9vbCBoYXNTYW1l
T3JpZ2luQXNQcmV2aW91c0RvY3VtZW50OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IDNjODBiMjlkYzA0YmM5NjkxNWY0MDRhZjA3ZDkzNDUxYWU1NTkyNWYuLmY1NjU5Y2Y4YWU4
NGU5Mzc2YmU5OTFmOThlZTgwMGM5YTc4YzNkZTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAg
LTIxMiw3ICsyMTIsNyBAQCBGcmFtZUxvYWRlcjo6fkZyYW1lTG9hZGVyKCkKICAgICBIYXNoU2V0
PEZyYW1lKj46Oml0ZXJhdG9yIGVuZCA9IG1fb3BlbmVkRnJhbWVzLmVuZCgpOwogICAgIGZvciAo
SGFzaFNldDxGcmFtZSo+OjppdGVyYXRvciBpdCA9IG1fb3BlbmVkRnJhbWVzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkKICAgICAgICAgKCppdCktPmxvYWRlcigpLT5tX29wZW5lciA9IDA7Ci0g
ICAgICAgIAorCiAgICAgbV9jbGllbnQtPmZyYW1lTG9hZGVyRGVzdHJveWVkKCk7CiAKICAgICBp
ZiAobV9uZXR3b3JraW5nQ29udGV4dCkKQEAgLTM4MywxMSArMzgzLDEwIEBAIHZvaWQgRnJhbWVM
b2FkZXI6OnN0b3BMb2FkaW5nKFVubG9hZEV2ZW50UG9saWN5IHVubG9hZEV2ZW50UG9saWN5LCBE
YXRhYmFzZVBvbGljCiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGUgRG9jdW1lbnRMb2Fk
ZXIgKGFuZCB0aHVzIGl0cyBEb2N1bWVudExvYWRUaW1pbmcpIG1pZ2h0IGdldCBkZXN0cm95ZWQK
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoaWxlIGRpc3BhdGNoaW5nIHRoZSBldmVudCwg
c28gcHJvdGVjdCBpdCB0byBwcmV2ZW50IHdyaXRpbmcgdGhlIGVuZAogICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gdGltZSBpbnRvIGZyZWVkIG1lbW9yeS4KLSAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGRvY3VtZW50TG9hZGVyID0gbV9wcm92aXNp
b25hbERvY3VtZW50TG9hZGVyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBSZWZQdHI8RG9j
dW1lbnRMb2FkZXI+IGRvY3VtZW50TG9hZGVyID0gbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVy
OworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50TG9hZGVyICYmICFkb2N1bWVu
dExvYWRlci0+dGltaW5nKCktPnVubG9hZEV2ZW50U3RhcnQgJiYgIWRvY3VtZW50TG9hZGVyLT50
aW1pbmcoKS0+dW5sb2FkRXZlbnRFbmQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE
b2N1bWVudExvYWRUaW1pbmcqIHRpbWluZyA9IGRvY3VtZW50TG9hZGVyLT50aW1pbmcoKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQodGltaW5nLT5uYXZpZ2F0aW9uU3RhcnQp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVCghdGltaW5nLT51bmxvYWRFdmVu
dFN0YXJ0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoIXRpbWluZy0+dW5s
b2FkRXZlbnRFbmQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fZnJhbWUtPmRvbVdp
bmRvdygpLT5kaXNwYXRjaFRpbWVkRXZlbnQodW5sb2FkRXZlbnQsIG1fZnJhbWUtPmRvbVdpbmRv
dygpLT5kb2N1bWVudCgpLCAmdGltaW5nLT51bmxvYWRFdmVudFN0YXJ0LCAmdGltaW5nLT51bmxv
YWRFdmVudEVuZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHRpbWluZy0+
dW5sb2FkRXZlbnRTdGFydCA+PSB0aW1pbmctPm5hdmlnYXRpb25TdGFydCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UKQEAgLTExODYsNyArMTE4NSw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXI6OmNvbXBsZXRlZCgpCiAKICAgICBmb3IgKEZyYW1lKiBkZXNjZW5kYW50ID0gbV9mcmFtZS0+
dHJlZSgpLT50cmF2ZXJzZU5leHQobV9mcmFtZSk7IGRlc2NlbmRhbnQ7IGRlc2NlbmRhbnQgPSBk
ZXNjZW5kYW50LT50cmVlKCktPnRyYXZlcnNlTmV4dChtX2ZyYW1lKSkKICAgICAgICAgZGVzY2Vu
ZGFudC0+bmF2aWdhdGlvblNjaGVkdWxlcigpLT5zdGFydFRpbWVyKCk7Ci0gICAgCisKICAgICBp
ZiAoRnJhbWUqIHBhcmVudCA9IG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpCiAgICAgICAgIHBh
cmVudC0+bG9hZGVyKCktPmNoZWNrQ29tcGxldGVkKCk7CiAKQEAgLTE0MzcsNiArMTQzNiw5IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIq
IGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAgICAgaWYgKG1fcGFnZURpc21pc3NhbEV2ZW50QmVp
bmdEaXNwYXRjaGVkKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAobV9mcmFtZS0+ZG9jdW1l
bnQoKSkKKyAgICAgICAgbV9wcmV2aW91c1VybCA9IG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgp
OworCiAgICAgcG9saWN5Q2hlY2tlcigpLT5zZXRMb2FkVHlwZSh0eXBlKTsKICAgICBSZWZQdHI8
Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBwcnBGb3JtU3RhdGU7CiAgICAgYm9vbCBpc0Zvcm1TdWJt
aXNzaW9uID0gZm9ybVN0YXRlOwpAQCAtMTgzMiwxNSArMTgzNCwyMSBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoKQogICAgIEhpc3RvcnlJdGVtKiBpdGVtID0gaGlz
dG9yeSgpLT5jdXJyZW50SXRlbSgpOwogICAgIGlmICghbV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQo
KSAmJiBQYWdlQ2FjaGU6OmNhbkNhY2hlKG1fZnJhbWUtPnBhZ2UoKSkgJiYgIWl0ZW0tPmlzSW5Q
YWdlQ2FjaGUoKSkKICAgICAgICAgcGFnZUNhY2hlKCktPmFkZChpdGVtLCBtX2ZyYW1lLT5wYWdl
KCkpOwotICAgIAorCiAgICAgaWYgKG1fbG9hZFR5cGUgIT0gRnJhbWVMb2FkVHlwZVJlcGxhY2Up
CiAgICAgICAgIGNsb3NlT2xkRGF0YVNvdXJjZXMoKTsKLSAgICAKKwogICAgIGlmICghY2FjaGVk
UGFnZSAmJiAhbV9zdGF0ZU1hY2hpbmUuY3JlYXRpbmdJbml0aWFsRW1wdHlEb2N1bWVudCgpKQog
ICAgICAgICBtX2NsaWVudC0+bWFrZVJlcHJlc2VudGF0aW9uKHBkbC5nZXQoKSk7Ci0gICAgCisK
ICAgICB0cmFuc2l0aW9uVG9Db21taXR0ZWQoY2FjaGVkUGFnZSk7Ci0gICAgCisKKyAgICBpZiAo
cGRsKSB7CisgICAgICAgIC8vIENoZWNrIGlmIHRoZSBkZXN0aW5hdGlvbiBwYWdlIGlzIGFsbG93
ZWQgdG8gYWNjZXNzIHRoZSBwcmV2aW91cyBwYWdlJ3MgdGltaW5nIGluZm9ybWF0aW9uLgorICAg
ICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmln
aW46OmNyZWF0ZShwZGwtPnJlcXVlc3QoKS51cmwoKSk7CisgICAgICAgIG1fZG9jdW1lbnRMb2Fk
ZXItPnRpbWluZygpLT5oYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50ID0gc2VjdXJpdHlP
cmlnaW4tPmNhblJlcXVlc3QobV9wcmV2aW91c1VybCk7CisgICAgfQorCiAgICAgLy8gQ2FsbCBj
bGllbnRSZWRpcmVjdENhbmNlbGxlZE9yRmluaXNoZWQoKSBoZXJlIHNvIHRoYXQgdGhlIGZyYW1l
IGxvYWQgZGVsZWdhdGUgaXMgbm90aWZpZWQgdGhhdCB0aGUgcmVkaXJlY3QncwogICAgIC8vIHN0
YXR1cyBoYXMgY2hhbmdlZCwgaWYgdGhlcmUgd2FzIGEgcmVkaXJlY3QuICBUaGUgZnJhbWUgbG9h
ZCBkZWxlZ2F0ZSBtYXkgaGF2ZSBzYXZlZCBzb21lIHN0YXRlIGFib3V0CiAgICAgLy8gdGhlIHJl
ZGlyZWN0IGluIGl0cyAtd2ViVmlldzp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6ZGVs
YXk6ZmlyZURhdGU6Zm9yRnJhbWU6LiAgU2luY2Ugd2UgYXJlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRl
eCA0MWExNjE1ZGI4YzU0NGNhMmQxNzRlZDY1NWYzNzU2OTcyOWIzYmI2Li5hNjc4YWEwM2UwMTI2
ZGQxODA5ZmM1ZjFlYmFhZDNlNThjZTZjZjkxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTQ4MCwx
MSArNDgwLDEzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RpZFBlcmZvcm1GaXJzdE5hdmlnYXRp
b247CiAgICAgYm9vbCBtX2xvYWRpbmdGcm9tQ2FjaGVkUGFnZTsKICAgICBib29sIG1fc3VwcHJl
c3NPcGVuZXJJbk5ld0ZyYW1lOwotICAgIAorCiAgICAgU2FuZGJveEZsYWdzIG1fc2FuZGJveEZs
YWdzOwogICAgIFNhbmRib3hGbGFncyBtX2ZvcmNlZFNhbmRib3hGbGFnczsKIAogICAgIFJlZlB0
cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBtX25ldHdvcmtpbmdDb250ZXh0OworCisgICAgS1VS
TCBtX3ByZXZpb3VzVXJsOwogfTsKIAogLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgY3Jl
YXRlV2luZG93KCkgaW4gSlNET01XaW5kb3dCYXNlLmNwcCwgZm9yIGV4YW1wbGUsIGZvcgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUv
bG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggODVjZWIxOTE4MTcxOGM3NWFjYmQx
ODc5MTc3NzNlMDhkNjU1MjJjOC4uZTZhYmVmZDFiNDNhZjY0ZDBmODJiMWYyZTY2N2NlYTIwYTg0
ZmZiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAor
KysgYi9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xNjQsNyArMTY0
LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc28KICAgICAvLyBkZWZlcnJhbHMgcGxheXMgbGVz
cyBvZiBhIHBhcnQgaW4gdGhpcyBmdW5jdGlvbiBpbiBwcmV2ZW50aW5nIHRoZSBiYWQgYmVoYXZp
b3IgZGVmZXJyaW5nIAogICAgIC8vIGNhbGxiYWNrcyBpcyBtZWFudCB0byBwcmV2ZW50LgogICAg
IEFTU0VSVCghbmV3UmVxdWVzdC5pc051bGwoKSk7Ci0gICAgCisKICAgICAvLyBUaGUgYWRkaXRp
b25hbCBwcm9jZXNzaW5nIGNhbiBkbyBhbnl0aGluZyBpbmNsdWRpbmcgcG9zc2libHkgcmVtb3Zp
bmcgdGhlIGxhc3QKICAgICAvLyByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3Q7IG9uZSBleGFtcGxl
IG9mIHRoaXMgaXMgMzI2NjIxNi4KICAgICBSZWZQdHI8TWFpblJlc291cmNlTG9hZGVyPiBwcm90
ZWN0KHRoaXMpOwpAQCAtMTcyLDYgKzE3MiwxMiBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6
d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgUmVzbwog
ICAgIEFTU0VSVChkb2N1bWVudExvYWRlcigpLT50aW1pbmcoKS0+ZmV0Y2hTdGFydCk7CiAgICAg
aWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKSB7CiAgICAgICAgIERvY3VtZW50TG9hZFRp
bWluZyogZG9jdW1lbnRMb2FkVGltaW5nID0gZG9jdW1lbnRMb2FkZXIoKS0+dGltaW5nKCk7CisK
KyAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHJlZGlyZWN0ZWQgdXJsIGlzIGFsbG93ZWQgdG8gYWNj
ZXNzIHRoZSByZWRpcmVjdGluZyB1cmwncyB0aW1pbmcgaW5mb3JtYXRpb24uCisgICAgICAgIFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlKG5ld1JlcXVlc3QudXJsKCkpOworICAgICAgICBpZiAoIXNlY3VyaXR5T3JpZ2luLT5jYW5S
ZXF1ZXN0KHJlZGlyZWN0UmVzcG9uc2UudXJsKCkpKQorICAgICAgICAgICAgZG9jdW1lbnRMb2Fk
VGltaW5nLT5oYXNDcm9zc09yaWdpblJlZGlyZWN0ID0gdHJ1ZTsKKwogICAgICAgICBkb2N1bWVu
dExvYWRUaW1pbmctPnJlZGlyZWN0Q291bnQrKzsKICAgICAgICAgaWYgKCFkb2N1bWVudExvYWRU
aW1pbmctPnJlZGlyZWN0U3RhcnQpCiAgICAgICAgICAgICBkb2N1bWVudExvYWRUaW1pbmctPnJl
ZGlyZWN0U3RhcnQgPSBkb2N1bWVudExvYWRUaW1pbmctPmZldGNoU3RhcnQ7CkBAIC0xODMsNyAr
MTg5LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChSZXNvdXJj
ZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc28KICAgICAvLyBVUkwgb2YgdGhlIG1haW4g
ZnJhbWUgd2hpY2ggZG9lc24ndCBjaGFuZ2Ugd2hlbiB3ZSByZWRpcmVjdC4KICAgICBpZiAoZnJh
bWVMb2FkZXIoKS0+aXNMb2FkaW5nTWFpbkZyYW1lKCkpCiAgICAgICAgIG5ld1JlcXVlc3Quc2V0
Rmlyc3RQYXJ0eUZvckNvb2tpZXMobmV3UmVxdWVzdC51cmwoKSk7Ci0gICAgCisKICAgICAvLyBJ
ZiB3ZSdyZSBmaWVsZGluZyBhIHJlZGlyZWN0IGluIHJlc3BvbnNlIHRvIGEgUE9TVCwgZm9yY2Ug
YSBsb2FkIGZyb20gb3JpZ2luLCBzaW5jZQogICAgIC8vIHRoaXMgaXMgYSBjb21tb24gc2l0ZSB0
ZWNobmlxdWUgdG8gcmV0dXJuIHRvIGEgcGFnZSB2aWV3aW5nIHNvbWUgZGF0YSB0aGF0IHRoZSBQ
T1NUCiAgICAgLy8ganVzdCBtb2RpZmllZC4KQEAgLTE5Miw3ICsxOTgsNyBAQCB2b2lkIE1haW5S
ZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVz
dCwgY29uc3QgUmVzbwogICAgICAgICBuZXdSZXF1ZXN0LnNldENhY2hlUG9saWN5KFJlbG9hZEln
bm9yaW5nQ2FjaGVEYXRhKTsKIAogICAgIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3Qo
bmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7Ci0gICAgCisKICAgICAvLyBEb24ndCBzZXQg
dGhpcyBvbiB0aGUgZmlyc3QgcmVxdWVzdC4gSXQgaXMgc2V0IHdoZW4gdGhlIG1haW4gbG9hZCB3
YXMgc3RhcnRlZC4KICAgICBtX2RvY3VtZW50TG9hZGVyLT5zZXRSZXF1ZXN0KG5ld1JlcXVlc3Qp
OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBi
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCmluZGV4IGQ1NzA1NjE1ODhl
YmNiNDcyNThiZGRjMzdhZDVhMTlmODYwMDNmMjguLmE0NjMwZDE1NTU3YjhiMWViYThjMGQ1YTM3
OTg3NjRiNmVlYjdjMjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmln
YXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCkBA
IC04Myw3ICs4MywxMSBAQCB1bnNpZ25lZCBzaG9ydCBQZXJmb3JtYW5jZU5hdmlnYXRpb246OnJl
ZGlyZWN0Q291bnQoKSBjb25zdAogICAgIGlmICghbG9hZGVyKQogICAgICAgICByZXR1cm4gMDsK
IAotICAgIHJldHVybiBsb2FkZXItPnRpbWluZygpLT5yZWRpcmVjdENvdW50OworICAgIERvY3Vt
ZW50TG9hZFRpbWluZyogdGltaW5nID0gbG9hZGVyLT50aW1pbmcoKTsKKyAgICBpZiAodGltaW5n
LT5oYXNDcm9zc09yaWdpblJlZGlyZWN0KQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVy
biB0aW1pbmctPnJlZGlyZWN0Q291bnQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAgYi9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCmluZGV4IDgyYjcwMjcxNDQxOGQyYjM2OGMwYmNhMjZm
ZWY1Nzk2YTZhOTg1NGMuLmU3N2MyZGUyZWZlN2RhNzEwYzlmZDU4ZjVkMjI3ZGZkN2JlNTIxMTAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVRpbWluZy5jcHAKKysrIGIvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcApAQCAtOTksNiArOTksOSBAQCB1bnNpZ25l
ZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnVubG9hZEV2ZW50U3RhcnQoKSBjb25zdAog
ICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIAorICAgIGlmICghdGltaW5nLT5o
YXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKwogICAg
IHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT51bmxvYWRFdmVudFN0YXJ0KTsK
IH0KIApAQCAtMTA4LDYgKzExMSw5IEBAIHVuc2lnbmVkIGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRp
bWluZzo6dW5sb2FkRXZlbnRFbmQoKSBjb25zdAogICAgIGlmICghdGltaW5nKQogICAgICAgICBy
ZXR1cm4gMDsKIAorICAgIGlmICghdGltaW5nLT5oYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3Vt
ZW50KQorICAgICAgICByZXR1cm4gMDsKKwogICAgIHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29u
ZHModGltaW5nLT51bmxvYWRFdmVudEVuZCk7CiB9CiAKQEAgLTExNyw2ICsxMjMsOSBAQCB1bnNp
Z25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnJlZGlyZWN0U3RhcnQoKSBjb25zdAog
ICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIAorICAgIGlmICh0aW1pbmctPmhh
c0Nyb3NzT3JpZ2luUmVkaXJlY3QpCisgICAgICAgIHJldHVybiAwOworCiAgICAgcmV0dXJuIHRv
SW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlZGlyZWN0U3RhcnQpOwogfQogCkBAIC0xMjYs
NiArMTM1LDkgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBlcmZvcm1hbmNlVGltaW5nOjpyZWRpcmVj
dEVuZCgpIGNvbnN0CiAgICAgaWYgKCF0aW1pbmcpCiAgICAgICAgIHJldHVybiAwOwogCisgICAg
aWYgKHRpbWluZy0+aGFzQ3Jvc3NPcmlnaW5SZWRpcmVjdCkKKyAgICAgICAgcmV0dXJuIDA7CisK
ICAgICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRzKHRpbWluZy0+cmVkaXJlY3RFbmQpOwog
fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78044</attachid>
            <date>2011-01-05 14:26:20 -0800</date>
            <delta_ts>2011-01-05 18:41:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-49294-20110105142619.patch</filename>
            <type>text/plain</type>
            <size>33316</size>
            <attacher name="James Simonsen">simonjam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMDE3N2RjYzYyYThhYWYzOWY5YmU2MGIzZDdmMmQwZDM0MjJiMGE4Li4xNjVmODA1
MTIzNWQ5N2Y2MWIyMzYyNTU4ZDhiNGU5MjJhNGI1N2VhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAK
KzIwMTEtMDEtMDUgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXZWIgVGltaW5n
XSBaZXJvIG91dCBzb21lIHZhbHVlcyBvbiBjcm9zcy1vcmlnaW4gcmVkaXJlY3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI5NAorCisgICAgICAg
ICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL3dlYnRpbWluZy5qczoKKyAgICAgICAgKGNoZWNrVGlt
aW5nQmVmb3JlTG9hZCk6IFJlbW92ZSB1bmxvYWQuIEl0cyBiZWhhdmlvciBkZXBlbmRzIG9uIHBy
aW9yIG5hdmlnYXRpb24gYW5kIGlzIHRlc3RlZCBzZXBhcmF0ZWx5LgorICAgICAgICAoY2hlY2tU
aW1pbmdXaGlsZURlZmVycmVkKTogRGl0dG8uCisgICAgICAgIChjaGVja1dlYlRpbWluZ09uRE9N
Q29udGVudExvYWRlZCk6IERpdHRvLgorICAgICAgICAoY2hlY2tXZWJUaW1pbmdXaGlsZUFzeW5j
KTogRGl0dG8uCisgICAgICAgIChjaGVja1dlYlRpbWluZ09uTG9hZCk6IERpdHRvLgorICAgICAg
ICAoY2hlY2tXZWJUaW1pbmdBZnRlckxvYWQpOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2RvbS93
ZWJ0aW1pbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9yZXNvdXJj
ZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1hbmQtYmFjay1yZWRpcmVjdDEucGhwOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmln
aW4tYW5kLWJhY2stcmVkaXJlY3QyLnBocDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9t
aXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLWFuZC1iYWNrMS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1v
cmlnaW4tYW5kLWJhY2syLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9y
ZXNvdXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVjdC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4t
cmVkaXJlY3QucGhwOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2Vz
L3dlYnRpbWluZy1uby1vcmlnaW4uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9t
aXNjL3dlYnRpbWluZy1vcmlnaW5zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9taXNjL3dlYnRpbWluZy1vcmlnaW5zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay9Ta2lwcGVkOiBTa2lwIG5ldyB3ZWIgdGltaW5nIHRlc3QuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL1NraXBwZWQ6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lw
cGVkOiBEaXR0by4KKwogMjAxMS0wMS0wNCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdGVzdCBleHBlY3RhdGlvbiB1cGRhdGUuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvd2VidGltaW5nLmpzIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3dlYnRpbWluZy5qcwppbmRleCBmYTZl
YjE4NDEwMDNiNjA5MTA1NWU3OTliZDNmNDliZTNkNmUwNTg0Li4zMDE2MDIxYjQ5MmEzZjlkZTdl
NTVkYjMxMjJkYWMzN2VkMzU1Y2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
Y3JpcHQtdGVzdHMvd2VidGltaW5nLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Njcmlw
dC10ZXN0cy93ZWJ0aW1pbmcuanMKQEAgLTE5LDkgKzE5LDYgQEAgZnVuY3Rpb24gY2hlY2tUaW1p
bmdCZWZvcmVMb2FkKCkKIHsKICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5n
Lm5hdmlnYXRpb25TdGFydCIsICJvbmVIb3VyQWdvVVRDIik7CiAKLSAgICBzaG91bGRCZUdyZWF0
ZXJUaGFuT3JFcXVhbCgidGltaW5nLnVubG9hZEV2ZW50U3RhcnQiLCAidGltaW5nLm5hdmlnYXRp
b25TdGFydCIpOwotICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcudW5sb2Fk
RXZlbnRFbmQiLCAidGltaW5nLnVubG9hZEV2ZW50U3RhcnQiKTsKLQogICAgIHNob3VsZEJlKCJ0
aW1pbmcucmVkaXJlY3RTdGFydCIsICIwIik7CiAgICAgc2hvdWxkQmUoInRpbWluZy5yZWRpcmVj
dEVuZCIsICIwIik7CiAgICAgc2hvdWxkQmUoIm5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCIsICIw
Iik7CkBAIC01NCw5ICs1MSw2IEBAIGZ1bmN0aW9uIGNoZWNrVGltaW5nV2hpbGVEZWZlcnJlZCgp
CiB7CiAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy5uYXZpZ2F0aW9uU3Rh
cnQiLCAib25lSG91ckFnb1VUQyIpOwogCi0gICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwo
InRpbWluZy51bmxvYWRFdmVudFN0YXJ0IiwgInRpbWluZy5uYXZpZ2F0aW9uU3RhcnQiKTsKLSAg
ICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5nLnVubG9hZEV2ZW50RW5kIiwgInRp
bWluZy51bmxvYWRFdmVudFN0YXJ0Iik7Ci0KICAgICBzaG91bGRCZSgidGltaW5nLnJlZGlyZWN0
U3RhcnQiLCAiMCIpOwogICAgIHNob3VsZEJlKCJ0aW1pbmcucmVkaXJlY3RFbmQiLCAiMCIpOwog
ICAgIHNob3VsZEJlKCJuYXZpZ2F0aW9uLnJlZGlyZWN0Q291bnQiLCAiMCIpOwpAQCAtOTAsOSAr
ODQsNiBAQCBmdW5jdGlvbiBjaGVja1RpbWluZ1doaWxlRGVmZXJyZWQoKQogZnVuY3Rpb24gY2hl
Y2tXZWJUaW1pbmdPbkRPTUNvbnRlbnRMb2FkZWQoKSB7CiAgICAgc2hvdWxkQmVHcmVhdGVyVGhh
bk9yRXF1YWwoInRpbWluZy5uYXZpZ2F0aW9uU3RhcnQiLCAib25lSG91ckFnb1VUQyIpOwogCi0g
ICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy51bmxvYWRFdmVudFN0YXJ0Iiwg
InRpbWluZy5uYXZpZ2F0aW9uU3RhcnQiKTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVh
bCgidGltaW5nLnVubG9hZEV2ZW50RW5kIiwgInRpbWluZy51bmxvYWRFdmVudFN0YXJ0Iik7Ci0K
ICAgICBzaG91bGRCZSgidGltaW5nLnJlZGlyZWN0U3RhcnQiLCAiMCIpOwogICAgIHNob3VsZEJl
KCJ0aW1pbmcucmVkaXJlY3RFbmQiLCAiMCIpOwogICAgIHNob3VsZEJlKCJuYXZpZ2F0aW9uLnJl
ZGlyZWN0Q291bnQiLCAiMCIpOwpAQCAtMTMyLDkgKzEyMyw2IEBAIGZ1bmN0aW9uIGNoZWNrV2Vi
VGltaW5nV2hpbGVBc3luYygpCiB7CiAgICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwoInRp
bWluZy5uYXZpZ2F0aW9uU3RhcnQiLCAib25lSG91ckFnb1VUQyIpOwogCi0gICAgc2hvdWxkQmVH
cmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy51bmxvYWRFdmVudFN0YXJ0IiwgInRpbWluZy5uYXZp
Z2F0aW9uU3RhcnQiKTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5nLnVu
bG9hZEV2ZW50RW5kIiwgInRpbWluZy51bmxvYWRFdmVudFN0YXJ0Iik7Ci0KICAgICBzaG91bGRC
ZSgidGltaW5nLnJlZGlyZWN0U3RhcnQiLCAiMCIpOwogICAgIHNob3VsZEJlKCJ0aW1pbmcucmVk
aXJlY3RFbmQiLCAiMCIpOwogICAgIHNob3VsZEJlKCJuYXZpZ2F0aW9uLnJlZGlyZWN0Q291bnQi
LCAiMCIpOwpAQCAtMTY5LDkgKzE1Nyw2IEBAIGZ1bmN0aW9uIGNoZWNrV2ViVGltaW5nT25Mb2Fk
KCkKIHsKICAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCgidGltaW5nLm5hdmlnYXRpb25T
dGFydCIsICJvbmVIb3VyQWdvVVRDIik7CiAKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVh
bCgidGltaW5nLnVubG9hZEV2ZW50U3RhcnQiLCAidGltaW5nLm5hdmlnYXRpb25TdGFydCIpOwot
ICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcudW5sb2FkRXZlbnRFbmQiLCAi
dGltaW5nLnVubG9hZEV2ZW50U3RhcnQiKTsKLQogICAgIHNob3VsZEJlKCJ0aW1pbmcucmVkaXJl
Y3RTdGFydCIsICIwIik7CiAgICAgc2hvdWxkQmUoInRpbWluZy5yZWRpcmVjdEVuZCIsICIwIik7
CiAgICAgc2hvdWxkQmUoIm5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCIsICIwIik7CkBAIC0yMDcs
OSArMTkyLDYgQEAgZnVuY3Rpb24gY2hlY2tXZWJUaW1pbmdBZnRlckxvYWQoKQogewogICAgIHNo
b3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcubmF2aWdhdGlvblN0YXJ0IiwgIm9uZUhv
dXJBZ29VVEMiKTsKIAotICAgIHNob3VsZEJlR3JlYXRlclRoYW5PckVxdWFsKCJ0aW1pbmcudW5s
b2FkRXZlbnRTdGFydCIsICJ0aW1pbmcubmF2aWdhdGlvblN0YXJ0Iik7Ci0gICAgc2hvdWxkQmVH
cmVhdGVyVGhhbk9yRXF1YWwoInRpbWluZy51bmxvYWRFdmVudEVuZCIsICJ0aW1pbmcudW5sb2Fk
RXZlbnRTdGFydCIpOwotCiAgICAgc2hvdWxkQmUoInRpbWluZy5yZWRpcmVjdFN0YXJ0IiwgIjAi
KTsKICAgICBzaG91bGRCZSgidGltaW5nLnJlZGlyZWN0RW5kIiwgIjAiKTsKICAgICBzaG91bGRC
ZSgibmF2aWdhdGlvbi5yZWRpcmVjdENvdW50IiwgIjAiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3dlYnRpbWluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS93ZWJ0aW1pbmctZXhwZWN0ZWQudHh0CmluZGV4IDlkOWY5NWU0ZTU2Y2RmZDI3ZDE1OTUzNDE0
ODA2OTBjYjFmNmMwMTIuLjMzM2U5ZjdkZWE0ZjFiMjJhMjI0ZmNlODNiMzcxNGJiY2JkYzU3OGMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dlYnRpbWluZy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2VidGltaW5nLWV4cGVjdGVkLnR4dApAQCAtNCw4
ICs0LDYgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBQQVNTIHRpbWluZy5uYXZpZ2F0
aW9uU3RhcnQgaXMgPj0gb25lSG91ckFnb1VUQwotUEFTUyB0aW1pbmcudW5sb2FkRXZlbnRTdGFy
dCBpcyA+PSB0aW1pbmcubmF2aWdhdGlvblN0YXJ0Ci1QQVNTIHRpbWluZy51bmxvYWRFdmVudEVu
ZCBpcyA+PSB0aW1pbmcudW5sb2FkRXZlbnRTdGFydAogUEFTUyB0aW1pbmcucmVkaXJlY3RTdGFy
dCBpcyAwCiBQQVNTIHRpbWluZy5yZWRpcmVjdEVuZCBpcyAwCiBQQVNTIG5hdmlnYXRpb24ucmVk
aXJlY3RDb3VudCBpcyAwCkBAIC0yNSw4ICsyMyw2IEBAIFBBU1MgdGltaW5nLmRvbUNvbXBsZXRl
IGlzIDAKIFBBU1MgdGltaW5nLmxvYWRFdmVudFN0YXJ0IGlzIDAKIFBBU1MgdGltaW5nLmxvYWRF
dmVudEVuZCBpcyAwCiBQQVNTIHRpbWluZy5uYXZpZ2F0aW9uU3RhcnQgaXMgPj0gb25lSG91ckFn
b1VUQwotUEFTUyB0aW1pbmcudW5sb2FkRXZlbnRTdGFydCBpcyA+PSB0aW1pbmcubmF2aWdhdGlv
blN0YXJ0Ci1QQVNTIHRpbWluZy51bmxvYWRFdmVudEVuZCBpcyA+PSB0aW1pbmcudW5sb2FkRXZl
bnRTdGFydAogUEFTUyB0aW1pbmcucmVkaXJlY3RTdGFydCBpcyAwCiBQQVNTIHRpbWluZy5yZWRp
cmVjdEVuZCBpcyAwCiBQQVNTIG5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCBpcyAwCkBAIC00Niw4
ICs0Miw2IEBAIFBBU1MgdGltaW5nLmRvbUNvbXBsZXRlIGlzIDAKIFBBU1MgdGltaW5nLmxvYWRF
dmVudFN0YXJ0IGlzIDAKIFBBU1MgdGltaW5nLmxvYWRFdmVudEVuZCBpcyAwCiBQQVNTIHRpbWlu
Zy5uYXZpZ2F0aW9uU3RhcnQgaXMgPj0gb25lSG91ckFnb1VUQwotUEFTUyB0aW1pbmcudW5sb2Fk
RXZlbnRTdGFydCBpcyA+PSB0aW1pbmcubmF2aWdhdGlvblN0YXJ0Ci1QQVNTIHRpbWluZy51bmxv
YWRFdmVudEVuZCBpcyA+PSB0aW1pbmcudW5sb2FkRXZlbnRTdGFydAogUEFTUyB0aW1pbmcucmVk
aXJlY3RTdGFydCBpcyAwCiBQQVNTIHRpbWluZy5yZWRpcmVjdEVuZCBpcyAwCiBQQVNTIG5hdmln
YXRpb24ucmVkaXJlY3RDb3VudCBpcyAwCkBAIC02Nyw4ICs2MSw2IEBAIFBBU1MgdGltaW5nLmRv
bUNvbXBsZXRlIGlzIDAKIFBBU1MgdGltaW5nLmxvYWRFdmVudFN0YXJ0IGlzIDAKIFBBU1MgdGlt
aW5nLmxvYWRFdmVudEVuZCBpcyAwCiBQQVNTIHRpbWluZy5uYXZpZ2F0aW9uU3RhcnQgaXMgPj0g
b25lSG91ckFnb1VUQwotUEFTUyB0aW1pbmcudW5sb2FkRXZlbnRTdGFydCBpcyA+PSB0aW1pbmcu
bmF2aWdhdGlvblN0YXJ0Ci1QQVNTIHRpbWluZy51bmxvYWRFdmVudEVuZCBpcyA+PSB0aW1pbmcu
dW5sb2FkRXZlbnRTdGFydAogUEFTUyB0aW1pbmcucmVkaXJlY3RTdGFydCBpcyAwCiBQQVNTIHRp
bWluZy5yZWRpcmVjdEVuZCBpcyAwCiBQQVNTIG5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCBpcyAw
CkBAIC04OCw4ICs4MCw2IEBAIFBBU1MgdGltaW5nLmRvbUNvbXBsZXRlIGlzIDAKIFBBU1MgdGlt
aW5nLmxvYWRFdmVudFN0YXJ0IGlzIDAKIFBBU1MgdGltaW5nLmxvYWRFdmVudEVuZCBpcyAwCiBQ
QVNTIHRpbWluZy5uYXZpZ2F0aW9uU3RhcnQgaXMgPj0gb25lSG91ckFnb1VUQwotUEFTUyB0aW1p
bmcudW5sb2FkRXZlbnRTdGFydCBpcyA+PSB0aW1pbmcubmF2aWdhdGlvblN0YXJ0Ci1QQVNTIHRp
bWluZy51bmxvYWRFdmVudEVuZCBpcyA+PSB0aW1pbmcudW5sb2FkRXZlbnRTdGFydAogUEFTUyB0
aW1pbmcucmVkaXJlY3RTdGFydCBpcyAwCiBQQVNTIHRpbWluZy5yZWRpcmVjdEVuZCBpcyAwCiBQ
QVNTIG5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCBpcyAwCkBAIC0xMTAsOCArMTAwLDYgQEAgUEFT
UyB0aW1pbmcuZG9tQ29tcGxldGUgaXMgPj0gdGltaW5nLmRvbUNvbnRlbnRMb2FkZWRFdmVudEVu
ZAogUEFTUyB0aW1pbmcubG9hZEV2ZW50U3RhcnQgaXMgPj0gdGltaW5nLnJlc3BvbnNlRW5kCiBQ
QVNTIHRpbWluZy5sb2FkRXZlbnRFbmQgaXMgMAogUEFTUyB0aW1pbmcubmF2aWdhdGlvblN0YXJ0
IGlzID49IG9uZUhvdXJBZ29VVEMKLVBBU1MgdGltaW5nLnVubG9hZEV2ZW50U3RhcnQgaXMgPj0g
dGltaW5nLm5hdmlnYXRpb25TdGFydAotUEFTUyB0aW1pbmcudW5sb2FkRXZlbnRFbmQgaXMgPj0g
dGltaW5nLnVubG9hZEV2ZW50U3RhcnQKIFBBU1MgdGltaW5nLnJlZGlyZWN0U3RhcnQgaXMgMAog
UEFTUyB0aW1pbmcucmVkaXJlY3RFbmQgaXMgMAogUEFTUyBuYXZpZ2F0aW9uLnJlZGlyZWN0Q291
bnQgaXMgMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNl
cy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLWFuZC1iYWNrLXJlZGlyZWN0MS5waHAgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tYW5k
LWJhY2stcmVkaXJlY3QxLnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjg4NDlhOTJjOGRhZDVlYTliMDUwZDUz
ZWY2YWQzMGJhMWEwMjk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLWFuZC1iYWNrLXJlZGlyZWN0
MS5waHAKQEAgLTAsMCArMSw1IEBACis8P3BocAorICAvLyBUZXN0cyBydW4gZnJvbSAxMjcuMC4w
LjEsIHNvIGxvY2FsaG9zdCB3aWxsIGFwcGVhciB0byBiZSBhIGRpZmZlcmVudCBvcmlnaW4uCisg
IGhlYWRlcignTG9jYXRpb246IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9taXNjL3Jlc291cmNlcy93
ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLWFuZC1iYWNrLXJlZGlyZWN0Mi5waHAnKTsKKyAgaGVhZGVy
KCdIVFRQLzEuMCAzMDIgRm91bmQnKTsKKz8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tYW5kLWJhY2stcmVk
aXJlY3QyLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvd2VidGlt
aW5nLWNyb3NzLW9yaWdpbi1hbmQtYmFjay1yZWRpcmVjdDIucGhwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5YzZi
N2EyZmJmZTE4NDI2MWU5ODgyZGRmNDY4YWNjODRmOTc4NzgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmln
aW4tYW5kLWJhY2stcmVkaXJlY3QyLnBocApAQCAtMCwwICsxLDUgQEAKKzw/cGhwCisgIC8vIDEy
Ny4wLjAuMSBpcyB3aGVyZSB0aGUgdGVzdCBvcmlnaW5hbGx5IHN0YXJ0ZWQuIFdlIHJlZGlyZWN0
ZWQgdG8gImxvY2FsaG9zdCIgYmVmb3JlIHRoaXMuCisgIGhlYWRlcignTG9jYXRpb246IGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMC9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLWFu
ZC1iYWNrMi5odG1sJyk7CisgIGhlYWRlcignSFRUUC8xLjAgMzAyIEZvdW5kJyk7Cis/PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmct
Y3Jvc3Mtb3JpZ2luLWFuZC1iYWNrMS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLWFuZC1iYWNrMS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc3NTg4NmNjOWY2MWQ0NjNlMWMyNWY1Yjg4ZDRmMGI4MzkwZTZhZTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1j
cm9zcy1vcmlnaW4tYW5kLWJhY2sxLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitmdW5jdGlvbiBkb1JlZGly
ZWN0KCkgeworICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlz
Yy9yZXNvdXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1hbmQtYmFjay1yZWRpcmVjdDEucGhw
IjsKK30KK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBzZXRUaW1lb3V0KGRvUmVkaXJlY3QsIDAp
KTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9z
cy1vcmlnaW4tYW5kLWJhY2syLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVz
b3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tYW5kLWJhY2syLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDY2YTA1ZmUxNTE1MGRjNTZlNDk4MGE4ZmZkY2YwZDdiNjFiMzNhZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvd2VidGltaW5nLWNyb3Nz
LW9yaWdpbi1hbmQtYmFjazIuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVs
PSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJJZiB0aGUg
ZGVzdGluYXRpb24gYW5kIHByZXZpb3VzIHBhZ2UgaGF2ZSB0aGUgc2FtZSBvcmlnaW4sIHRoZW4g
V2ViIFRpbWluZyBzaG91bGQgcmVwb3J0IHVubG9hZCB0aW1pbmcuIik7CisKK3ZhciBwZXJmb3Jt
YW5jZSA9IHdpbmRvdy53ZWJraXRQZXJmb3JtYW5jZSB8fCB7fTsKK3ZhciBuYXZpZ2F0aW9uID0g
cGVyZm9ybWFuY2UubmF2aWdhdGlvbiB8fCB7fTsKK3ZhciB0aW1pbmcgPSBwZXJmb3JtYW5jZS50
aW1pbmcgfHwge307CisKK2Z1bmN0aW9uIHBlcmZvcm1UZXN0KCkgeworICAgIC8vIEZJWE1FOiBO
ZWVkIGEgd2F5IHRvIHN5bmNocm9uaXplIHRoZSB0ZXN0IHNvIHRoYXQgbG9hZEV2ZW50RW5kIGlz
IG5vbi16ZXJvLgorICAgIHZhciBzaG91bGRCZVplcm9MaXN0ID0gWyJsb2FkRXZlbnRFbmQiLCAi
cmVkaXJlY3RTdGFydCIsICJyZWRpcmVjdEVuZCIsICJzc2xIYW5kc2hha2VTdGFydCJdOworCisg
ICAgdmFyIHRpbWluZ1Byb3BlcnRpZXMgPSBuZXcgQXJyYXk7CisgICAgZm9yICh2YXIgcHJvcGVy
dHkgaW4gdGltaW5nKSB7CisgICAgICAgIHRpbWluZ1Byb3BlcnRpZXMucHVzaChwcm9wZXJ0eSk7
CisgICAgfQorICAgIHRpbWluZ1Byb3BlcnRpZXMuc29ydCgpOworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdGltaW5nUHJvcGVydGllcy5sZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoc2hvdWxk
QmVaZXJvTGlzdC5pbmRleE9mKHRpbWluZ1Byb3BlcnRpZXNbaV0pID49IDApCisgICAgICAgICAg
ICBzaG91bGRCZSgidGltaW5nLiIgKyB0aW1pbmdQcm9wZXJ0aWVzW2ldLCAiMCIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBzaG91bGRCZU5vblplcm8oInRpbWluZy4iICsgdGltaW5nUHJv
cGVydGllc1tpXSk7CisgICAgfQorICAgIHNob3VsZEJlKCJuYXZpZ2F0aW9uLnJlZGlyZWN0Q291
bnQiLCAiMCIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCJsb2FkIiwgcGVyZm9ybVRlc3QpOworCit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVz
b3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3QuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVj
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdkZDNkYzEyYTAzOGZjN2M0ZDRjNDc3M2JiNzVmZWM4ODM1YzMw
ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3Vy
Y2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tcmVkaXJlY3QuaHRtbApAQCAtMCwwICsxLDQ0IEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJXZWIgVGltaW5nIHNob3VsZCB6ZXJvIG91dCByZWRpcmVjdCBzdGF0cyBhZnRl
ciBhIGNyb3NzLW9yaWdpbiByZWRpcmVjdC4iKTsKKwordmFyIHBlcmZvcm1hbmNlID0gd2luZG93
LndlYmtpdFBlcmZvcm1hbmNlIHx8IHt9OwordmFyIG5hdmlnYXRpb24gPSBwZXJmb3JtYW5jZS5u
YXZpZ2F0aW9uIHx8IHt9OwordmFyIHRpbWluZyA9IHBlcmZvcm1hbmNlLnRpbWluZyB8fCB7fTsK
KworZnVuY3Rpb24gcGVyZm9ybVRlc3QoKSB7CisgICAgLy8gRklYTUU6IE5lZWQgYSB3YXkgdG8g
c3luY2hyb25pemUgdGhlIHRlc3Qgc28gdGhhdCBsb2FkRXZlbnRFbmQgaXMgbm9uLXplcm8uCisg
ICAgdmFyIHNob3VsZEJlWmVyb0xpc3QgPSBbImxvYWRFdmVudEVuZCIsICJyZWRpcmVjdFN0YXJ0
IiwgInJlZGlyZWN0RW5kIiwgInNzbEhhbmRzaGFrZVN0YXJ0IiwgInVubG9hZEV2ZW50U3RhcnQi
LCAidW5sb2FkRXZlbnRFbmQiXTsKKworICAgIHZhciB0aW1pbmdQcm9wZXJ0aWVzID0gbmV3IEFy
cmF5OworICAgIGZvciAodmFyIHByb3BlcnR5IGluIHRpbWluZykgeworICAgICAgICB0aW1pbmdQ
cm9wZXJ0aWVzLnB1c2gocHJvcGVydHkpOworICAgIH0KKyAgICB0aW1pbmdQcm9wZXJ0aWVzLnNv
cnQoKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpbWluZ1Byb3BlcnRpZXMubGVuZ3RoOyAr
K2kpIHsKKyAgICAgICAgaWYgKHNob3VsZEJlWmVyb0xpc3QuaW5kZXhPZih0aW1pbmdQcm9wZXJ0
aWVzW2ldKSA+PSAwKQorICAgICAgICAgICAgc2hvdWxkQmUoInRpbWluZy4iICsgdGltaW5nUHJv
cGVydGllc1tpXSwgIjAiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2hvdWxkQmVOb25a
ZXJvKCJ0aW1pbmcuIiArIHRpbWluZ1Byb3BlcnRpZXNbaV0pOworICAgIH0KKyAgICBzaG91bGRC
ZSgibmF2aWdhdGlvbi5yZWRpcmVjdENvdW50IiwgIjAiKTsKKworICAgIGZpbmlzaEpTVGVzdCgp
OworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBlcmZvcm1UZXN0KTsKKwor
dmFyIGpzVGVzdElzQXN5bmMgPSB0cnVlOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLXJl
ZGlyZWN0LnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvd2VidGlt
aW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVjdC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY5ODE5NzJjMTUwOTFi
MTczYjg1YWQxYjNkZTYxOTdkNTBlYmViZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1yZWRpcmVj
dC5waHAKQEAgLTAsMCArMSw1IEBACis8P3BocAorICAvLyBUZXN0cyBydW4gZnJvbSAxMjcuMC4w
LjEsIHNvIGxvY2FsaG9zdCB3aWxsIGFwcGVhciB0byBiZSBhIGRpZmZlcmVudCBvcmlnaW4uCisg
IGhlYWRlcignTG9jYXRpb246IGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC9taXNjL3Jlc291cmNlcy93
ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLXJlZGlyZWN0Lmh0bWwnKTsKKyAgaGVhZGVyKCdIVFRQLzEu
MCAzMDIgRm91bmQnKTsKKz8+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvcmVzb3VyY2VzL3dlYnRpbWluZy1uby1vcmlnaW4uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9yZXNvdXJjZXMvd2VidGltaW5nLW5vLW9yaWdpbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVkMzYxZWIwZjcxYjBjY2Q4YzI5YThkZWZjMjI3NDllYzVjMWE0NjYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1uby1v
cmlnaW4uaHRtbApAQCAtMCwwICsxLDQ0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJXZWIgVGltaW5nIHNob3VsZCBy
ZXBvcnQgemVyb3MgZm9yIHJlZGlyZWN0cyBhbmQgdW5sb2FkIHNpbmNlIHRoZXJlIHdhcyBubyBw
cmVjZWRpbmcgcGFnZS4iKTsKKwordmFyIHBlcmZvcm1hbmNlID0gd2luZG93LndlYmtpdFBlcmZv
cm1hbmNlIHx8IHt9OwordmFyIG5hdmlnYXRpb24gPSBwZXJmb3JtYW5jZS5uYXZpZ2F0aW9uIHx8
IHt9OwordmFyIHRpbWluZyA9IHBlcmZvcm1hbmNlLnRpbWluZyB8fCB7fTsKKworZnVuY3Rpb24g
cGVyZm9ybVRlc3QoKSB7CisgICAgLy8gRklYTUU6IE5lZWQgYSB3YXkgdG8gc3luY2hyb25pemUg
dGhlIHRlc3Qgc28gdGhhdCBsb2FkRXZlbnRFbmQgaXMgbm9uLXplcm8uCisgICAgdmFyIHNob3Vs
ZEJlWmVyb0xpc3QgPSBbImxvYWRFdmVudEVuZCIsICJyZWRpcmVjdFN0YXJ0IiwgInJlZGlyZWN0
RW5kIiwgInNzbEhhbmRzaGFrZVN0YXJ0IiwgInVubG9hZEV2ZW50U3RhcnQiLCAidW5sb2FkRXZl
bnRFbmQiXTsKKworICAgIHZhciB0aW1pbmdQcm9wZXJ0aWVzID0gbmV3IEFycmF5OworICAgIGZv
ciAodmFyIHByb3BlcnR5IGluIHRpbWluZykgeworICAgICAgICB0aW1pbmdQcm9wZXJ0aWVzLnB1
c2gocHJvcGVydHkpOworICAgIH0KKyAgICB0aW1pbmdQcm9wZXJ0aWVzLnNvcnQoKTsKKyAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHRpbWluZ1Byb3BlcnRpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgaWYgKHNob3VsZEJlWmVyb0xpc3QuaW5kZXhPZih0aW1pbmdQcm9wZXJ0aWVzW2ldKSA+PSAw
KQorICAgICAgICAgICAgc2hvdWxkQmUoInRpbWluZy4iICsgdGltaW5nUHJvcGVydGllc1tpXSwg
IjAiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2hvdWxkQmVOb25aZXJvKCJ0aW1pbmcu
IiArIHRpbWluZ1Byb3BlcnRpZXNbaV0pOworICAgIH0KKyAgICBzaG91bGRCZSgibmF2aWdhdGlv
bi5yZWRpcmVjdENvdW50IiwgIjAiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCit3aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHBlcmZvcm1UZXN0KTsKKwordmFyIGpzVGVzdElz
QXN5bmMgPSB0cnVlOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL3dlYnRpbWluZy1vcmlnaW5zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctb3JpZ2lucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDJkYjc3NzEwMjk0NmIyNDkzMzc1ZDYxNTg3YTQ1NjIxOGFiMmE1NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctb3JpZ2lucy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMDYgQEAKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFt
ZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1dlYiBUaW1pbmcgc2hvdWxkIHJl
cG9ydCB6ZXJvcyBmb3IgcmVkaXJlY3RzIGFuZCB1bmxvYWQgc2luY2UgdGhlcmUgd2FzIG5vIHBy
ZWNlZGluZyBwYWdlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0aW1p
bmcuY29ubmVjdEVuZCBpcyBub24temVyby4KK1BBU1MgdGltaW5nLmNvbm5lY3RTdGFydCBpcyBu
b24temVyby4KK1BBU1MgdGltaW5nLmRvbUNvbXBsZXRlIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1p
bmcuZG9tQ29udGVudExvYWRlZEV2ZW50RW5kIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuZG9t
Q29udGVudExvYWRlZEV2ZW50U3RhcnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5kb21JbnRl
cmFjdGl2ZSBpcyBub24temVyby4KK1BBU1MgdGltaW5nLmRvbUxvYWRpbmcgaXMgbm9uLXplcm8u
CitQQVNTIHRpbWluZy5kb21haW5Mb29rdXBFbmQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5k
b21haW5Mb29rdXBTdGFydCBpcyBub24temVyby4KK1BBU1MgdGltaW5nLmZldGNoU3RhcnQgaXMg
bm9uLXplcm8uCitQQVNTIHRpbWluZy5sb2FkRXZlbnRFbmQgaXMgMAorUEFTUyB0aW1pbmcubG9h
ZEV2ZW50U3RhcnQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5uYXZpZ2F0aW9uU3RhcnQgaXMg
bm9uLXplcm8uCitQQVNTIHRpbWluZy5yZWRpcmVjdEVuZCBpcyAwCitQQVNTIHRpbWluZy5yZWRp
cmVjdFN0YXJ0IGlzIDAKK1BBU1MgdGltaW5nLnJlcXVlc3RTdGFydCBpcyBub24temVyby4KK1BB
U1MgdGltaW5nLnJlc3BvbnNlRW5kIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcucmVzcG9uc2VT
dGFydCBpcyBub24temVyby4KK1BBU1MgdGltaW5nLnNzbEhhbmRzaGFrZVN0YXJ0IGlzIDAKK1BB
U1MgdGltaW5nLnVubG9hZEV2ZW50RW5kIGlzIDAKK1BBU1MgdGltaW5nLnVubG9hZEV2ZW50U3Rh
cnQgaXMgMAorUEFTUyBuYXZpZ2F0aW9uLnJlZGlyZWN0Q291bnQgaXMgMAorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTEtLT4tLT4nCistLS0tLS0tLQorV2ViIFRpbWlu
ZyBzaG91bGQgemVybyBvdXQgcmVkaXJlY3Qgc3RhdHMgYWZ0ZXIgYSBjcm9zcy1vcmlnaW4gcmVk
aXJlY3QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRpbWluZy5jb25u
ZWN0RW5kIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuY29ubmVjdFN0YXJ0IGlzIG5vbi16ZXJv
LgorUEFTUyB0aW1pbmcuZG9tQ29tcGxldGUgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5kb21D
b250ZW50TG9hZGVkRXZlbnRFbmQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5kb21Db250ZW50
TG9hZGVkRXZlbnRTdGFydCBpcyBub24temVyby4KK1BBU1MgdGltaW5nLmRvbUludGVyYWN0aXZl
IGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuZG9tTG9hZGluZyBpcyBub24temVyby4KK1BBU1Mg
dGltaW5nLmRvbWFpbkxvb2t1cEVuZCBpcyBub24temVyby4KK1BBU1MgdGltaW5nLmRvbWFpbkxv
b2t1cFN0YXJ0IGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuZmV0Y2hTdGFydCBpcyBub24temVy
by4KK1BBU1MgdGltaW5nLmxvYWRFdmVudEVuZCBpcyAwCitQQVNTIHRpbWluZy5sb2FkRXZlbnRT
dGFydCBpcyBub24temVyby4KK1BBU1MgdGltaW5nLm5hdmlnYXRpb25TdGFydCBpcyBub24temVy
by4KK1BBU1MgdGltaW5nLnJlZGlyZWN0RW5kIGlzIDAKK1BBU1MgdGltaW5nLnJlZGlyZWN0U3Rh
cnQgaXMgMAorUEFTUyB0aW1pbmcucmVxdWVzdFN0YXJ0IGlzIG5vbi16ZXJvLgorUEFTUyB0aW1p
bmcucmVzcG9uc2VFbmQgaXMgbm9uLXplcm8uCitQQVNTIHRpbWluZy5yZXNwb25zZVN0YXJ0IGlz
IG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuc3NsSGFuZHNoYWtlU3RhcnQgaXMgMAorUEFTUyB0aW1p
bmcudW5sb2FkRXZlbnRFbmQgaXMgMAorUEFTUyB0aW1pbmcudW5sb2FkRXZlbnRTdGFydCBpcyAw
CitQQVNTIG5hdmlnYXRpb24ucmVkaXJlY3RDb3VudCBpcyAwCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0t
ZnJhbWVQYXRoIC8vPCEtLWZyYW1lMi0tPi0tPicKKy0tLS0tLS0tCitJZiB0aGUgZGVzdGluYXRp
b24gYW5kIHByZXZpb3VzIHBhZ2UgaGF2ZSB0aGUgc2FtZSBvcmlnaW4sIHRoZW4gV2ViIFRpbWlu
ZyBzaG91bGQgcmVwb3J0IHVubG9hZCB0aW1pbmcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHRpbWluZy5jb25uZWN0RW5kIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcu
Y29ubmVjdFN0YXJ0IGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuZG9tQ29tcGxldGUgaXMgbm9u
LXplcm8uCitQQVNTIHRpbWluZy5kb21Db250ZW50TG9hZGVkRXZlbnRFbmQgaXMgbm9uLXplcm8u
CitQQVNTIHRpbWluZy5kb21Db250ZW50TG9hZGVkRXZlbnRTdGFydCBpcyBub24temVyby4KK1BB
U1MgdGltaW5nLmRvbUludGVyYWN0aXZlIGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuZG9tTG9h
ZGluZyBpcyBub24temVyby4KK1BBU1MgdGltaW5nLmRvbWFpbkxvb2t1cEVuZCBpcyBub24temVy
by4KK1BBU1MgdGltaW5nLmRvbWFpbkxvb2t1cFN0YXJ0IGlzIG5vbi16ZXJvLgorUEFTUyB0aW1p
bmcuZmV0Y2hTdGFydCBpcyBub24temVyby4KK1BBU1MgdGltaW5nLmxvYWRFdmVudEVuZCBpcyAw
CitQQVNTIHRpbWluZy5sb2FkRXZlbnRTdGFydCBpcyBub24temVyby4KK1BBU1MgdGltaW5nLm5h
dmlnYXRpb25TdGFydCBpcyBub24temVyby4KK1BBU1MgdGltaW5nLnJlZGlyZWN0RW5kIGlzIDAK
K1BBU1MgdGltaW5nLnJlZGlyZWN0U3RhcnQgaXMgMAorUEFTUyB0aW1pbmcucmVxdWVzdFN0YXJ0
IGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcucmVzcG9uc2VFbmQgaXMgbm9uLXplcm8uCitQQVNT
IHRpbWluZy5yZXNwb25zZVN0YXJ0IGlzIG5vbi16ZXJvLgorUEFTUyB0aW1pbmcuc3NsSGFuZHNo
YWtlU3RhcnQgaXMgMAorUEFTUyB0aW1pbmcudW5sb2FkRXZlbnRFbmQgaXMgbm9uLXplcm8uCitQ
QVNTIHRpbWluZy51bmxvYWRFdmVudFN0YXJ0IGlzIG5vbi16ZXJvLgorUEFTUyBuYXZpZ2F0aW9u
LnJlZGlyZWN0Q291bnQgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93
ZWJ0aW1pbmctb3JpZ2lucy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3dlYnRp
bWluZy1vcmlnaW5zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWM5YmQzMWM1OTgyMzA1OTJmYmZkMjkwNTZi
YTRhMzVlOTMyYmQ1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy93ZWJ0aW1pbmctb3JpZ2lucy5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBI
VE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxpZnJhbWUgd2lkdGg9IjY0MCIgaGVpZ2h0PSI0ODAiIHNyYz0icmVzb3VyY2Vz
L3dlYnRpbWluZy1uby1vcmlnaW4uaHRtbCI+PC9pZnJhbWU+Cis8aWZyYW1lIHdpZHRoPSI2NDAi
IGhlaWdodD0iNDgwIiBzcmM9InJlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLXJlZGly
ZWN0LnBocCI+PC9pZnJhbWU+Cis8aWZyYW1lIHdpZHRoPSI2NDAiIGhlaWdodD0iNDgwIiBzcmM9
InJlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLWFuZC1iYWNrMS5odG1sIj48L2lmcmFt
ZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMjkwZWY0
ZjRlMzc4MWU0MTJiNTBjMDVlYWE1ZTgzNDMyZTEyYzNjZC4uYTUyMDJhNWFjMzhjYmY3NGYyYTM5
ZGY0Zjk3MGY3NzY1OGI5MTczMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTUzMTIs
NiArNTMxMiw3IEBAIGZhc3QvZG9tL25hdmlnYXRpb24tdHlwZS1yZWxvYWQuaHRtbAogZmFzdC9k
b20vd2VidGltaW5nLmh0bWwKIGZhc3QvZG9tL3dlYnRpbWluZy1uYXZpZ2F0ZS13aXRoaW4tZG9j
dW1lbnQuaHRtbAogZmFzdC9kb20vd2VidGltaW5nLWRvY3VtZW50LW9wZW4uaHRtbAoraHR0cC90
ZXN0cy9taXNjL3dlYnRpbWluZy1vcmlnaW5zLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy93ZWJ0aW1p
bmctb25lLXJlZGlyZWN0LnBocAogaHR0cC90ZXN0cy9taXNjL3dlYnRpbWluZy1zc2wucGhwCiBo
dHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLXR3by1yZWRpcmVjdHMucGhwCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkCmluZGV4IDFlMDIwNTI0NDI2ZDdjMGRiYzI0ZTdjOTNhNTJmY2UyZWI5YWM0MTUu
LjNhMDQ5MGMyMTY0MjIyZGUxZDlkM2Q0OTgxNWYyZjliNGQ4NWI3ZWYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkCkBAIC0yMTUsNiArMjE1LDcgQEAgZmFzdC9kb20vbmF2aWdhdGlvbi10eXBl
LXJlbG9hZC5odG1sCiBmYXN0L2RvbS93ZWJ0aW1pbmcuaHRtbAogZmFzdC9kb20vd2VidGltaW5n
LWRvY3VtZW50LW9wZW4uaHRtbAogZmFzdC9kb20vd2VidGltaW5nLW5hdmlnYXRlLXdpdGhpbi1k
b2N1bWVudC5odG1sCitodHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLW9yaWdpbnMuaHRtbAogaHR0
cC90ZXN0cy9taXNjL3dlYnRpbWluZy1vbmUtcmVkaXJlY3QucGhwCiBodHRwL3Rlc3RzL21pc2Mv
d2VidGltaW5nLXNzbC5waHAKIGh0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctdHdvLXJlZGlyZWN0
cy5waHAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggN2ViNmRjZGEwYTZhMThhMjU0MjEx
NGNhMzlkMDc3ZGYyOTlhZTZhNy4uMjE5NzBkMDllYjhkYjAwZDJlMTMxZmM1NTJjOTIyYWE3MDQ0
MTliYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTEwNDIsNiArMTA0Miw3IEBAIGZh
c3QvZG9tL25hdmlnYXRpb24tdHlwZS1yZWxvYWQuaHRtbAogZmFzdC9kb20vd2VidGltaW5nLmh0
bWwKIGZhc3QvZG9tL3dlYnRpbWluZy1kb2N1bWVudC1vcGVuLmh0bWwKIGZhc3QvZG9tL3dlYnRp
bWluZy1uYXZpZ2F0ZS13aXRoaW4tZG9jdW1lbnQuaHRtbAoraHR0cC90ZXN0cy9taXNjL3dlYnRp
bWluZy1vcmlnaW5zLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctb25lLXJlZGlyZWN0
LnBocAogaHR0cC90ZXN0cy9taXNjL3dlYnRpbWluZy1zc2wucGhwCiBodHRwL3Rlc3RzL21pc2Mv
d2VidGltaW5nLXR3by1yZWRpcmVjdHMucGhwCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY0MTJjYzVhMWJiZTdhYmFmN2Q4ZWFkNDVjYjVm
NDIyYTFmMGM3MWEuLmEzYWMwOTAxZTk2MzllODJlZTI4YzE3YjMzNDdmZjNhMjI0MGY3NTcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzIgQEAKKzIwMTEtMDEtMDUgIEphbWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtXZWIgVGltaW5nXSBaZXJvIG91dCBzb21lIHZhbHVlcyBvbiBjcm9zcy1vcmlnaW4gcmVkaXJl
Y3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTI5
NAorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL21pc2Mvd2VidGltaW5nLWNyb3NzLW9yaWdp
bi1yZWRpcmVjdC5waHAKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmct
b3JpZ2lucy5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRUaW1pbmc6OkRvY3VtZW50TG9hZFRpbWluZyk6
IEFkZCBmbGFncyBmb3IgY3Jvc3Mtb3JpZ2luIHJlZGlyZWN0cyBhbmQgc2FtZS1vcmlnaW4gbmF2
aWdhdGlvbi4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVMb2FkZXI6On5GcmFtZUxvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZUxvYWRlcjo6c3RvcExvYWRpbmcpOiBEb24ndCBvdmVyd3JpdGUgcHJldmlvdXMgdW5sb2FkIHRp
bWVzLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbXBsZXRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFdpdGhEb2N1bWVudExvYWRlcik6IFJlbWVtYmVy
IHByZXZpb3VzIFVSTCB0byBzZWUgaWYgbmF2aWdhdGlvbiBpcyBzYW1lLW9yaWdpbi4KKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQpOiBTZXQgZmxh
ZyBpZiBuYXZpZ2F0aW9uIGlzIHNhbWUtb3JpZ2luLgorICAgICAgICAqIGxvYWRlci9GcmFtZUxv
YWRlci5oOgorICAgICAgICAqIGxvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWFpblJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QpOiBTZXQgZmxh
ZyBvbiBjcm9zcy1vcmlnaW4gcmVkaXJlY3RzLgorICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VO
YXZpZ2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlTmF2aWdhdGlvbjo6
cmVkaXJlY3RDb3VudCk6IENsZWFyIGlmIGNyb3NzLW9yaWdpbiByZWRpcmVjdCBmbGFnIGlzIHNl
dC4KKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBlcmZvcm1hbmNlVGltaW5nOjpyZWRpcmVjdFN0YXJ0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpQZXJmb3JtYW5jZVRpbWluZzo6cmVkaXJlY3RFbmQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlBlcmZvcm1hbmNlVGltaW5nOjp1bmxvYWRFdmVudFN0YXJ0KTogQ2xlYXIgaWYg
Y3Jvc3Mtb3JpZ2luIG5hdmlnYXRpb24gaXMgc2V0LgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9y
bWFuY2VUaW1pbmc6OnVubG9hZEV2ZW50RW5kKTogRGl0dG8uCisKIDIwMTEtMDEtMDQgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI3NDk5Mi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL0RvY3Vt
ZW50TG9hZFRpbWluZy5oIGIvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmgKaW5k
ZXggMzY4MDA0YjU1MWRkMWRlOTUxZWNmMDI0OTU0MTUwZDdlNTY1YThiNS4uZDRhYTdkMGM5NWVh
ODk3YWFhODkxMDhhN2VmOGI2YWQ4OTA4ZWE3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkVGltaW5nLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGlt
aW5nLmgKQEAgLTQwLDYgKzQwLDggQEAgc3RydWN0IERvY3VtZW50TG9hZFRpbWluZyB7CiAgICAg
ICAgICwgcmVzcG9uc2VFbmQoMC4wKQogICAgICAgICAsIGxvYWRFdmVudFN0YXJ0KDAuMCkKICAg
ICAgICAgLCBsb2FkRXZlbnRFbmQoMC4wKQorICAgICAgICAsIGhhc0Nyb3NzT3JpZ2luUmVkaXJl
Y3QoZmFsc2UpCisgICAgICAgICwgaGFzU2FtZU9yaWdpbkFzUHJldmlvdXNEb2N1bWVudChmYWxz
ZSkKICAgICB7CiAgICAgfQogCkBAIC01Myw2ICs1NSw4IEBAIHN0cnVjdCBEb2N1bWVudExvYWRU
aW1pbmcgewogICAgIGRvdWJsZSByZXNwb25zZUVuZDsKICAgICBkb3VibGUgbG9hZEV2ZW50U3Rh
cnQ7CiAgICAgZG91YmxlIGxvYWRFdmVudEVuZDsKKyAgICBib29sIGhhc0Nyb3NzT3JpZ2luUmVk
aXJlY3Q7CisgICAgYm9vbCBoYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50OwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGViMDllNTdiYTBmYWEwYWVhODAxYWYxMzZiODFl
NzBlODQ2ZWU2MDQuLjhhODA2MWUzZTQ1NjNhMTQyYzk5N2FkNGZlMmRjNTE5OGY4ZGFiMmEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTIxMiw3ICsyMTIsNyBAQCBGcmFtZUxvYWRlcjo6fkZy
YW1lTG9hZGVyKCkKICAgICBIYXNoU2V0PEZyYW1lKj46Oml0ZXJhdG9yIGVuZCA9IG1fb3BlbmVk
RnJhbWVzLmVuZCgpOwogICAgIGZvciAoSGFzaFNldDxGcmFtZSo+OjppdGVyYXRvciBpdCA9IG1f
b3BlbmVkRnJhbWVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKICAgICAgICAgKCppdCktPmxv
YWRlcigpLT5tX29wZW5lciA9IDA7Ci0gICAgICAgIAorCiAgICAgbV9jbGllbnQtPmZyYW1lTG9h
ZGVyRGVzdHJveWVkKCk7CiAKICAgICBpZiAobV9uZXR3b3JraW5nQ29udGV4dCkKQEAgLTM4Mywx
MSArMzgzLDEwIEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN0b3BMb2FkaW5nKFVubG9hZEV2ZW50UG9s
aWN5IHVubG9hZEV2ZW50UG9saWN5LCBEYXRhYmFzZVBvbGljCiAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBUaGUgRG9jdW1lbnRMb2FkZXIgKGFuZCB0aHVzIGl0cyBEb2N1bWVudExvYWRUaW1p
bmcpIG1pZ2h0IGdldCBkZXN0cm95ZWQKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHdoaWxl
IGRpc3BhdGNoaW5nIHRoZSBldmVudCwgc28gcHJvdGVjdCBpdCB0byBwcmV2ZW50IHdyaXRpbmcg
dGhlIGVuZAogICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGltZSBpbnRvIGZyZWVkIG1lbW9y
eS4KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGRv
Y3VtZW50TG9hZGVyID0gbV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBSZWZQdHI8RG9jdW1lbnRMb2FkZXI+IGRvY3VtZW50TG9hZGVyID0gbV9w
cm92aXNpb25hbERvY3VtZW50TG9hZGVyOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRv
Y3VtZW50TG9hZGVyICYmICFkb2N1bWVudExvYWRlci0+dGltaW5nKCktPnVubG9hZEV2ZW50U3Rh
cnQgJiYgIWRvY3VtZW50TG9hZGVyLT50aW1pbmcoKS0+dW5sb2FkRXZlbnRFbmQpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBEb2N1bWVudExvYWRUaW1pbmcqIHRpbWluZyA9IGRvY3Vt
ZW50TG9hZGVyLT50aW1pbmcoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
dGltaW5nLT5uYXZpZ2F0aW9uU3RhcnQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFT
U0VSVCghdGltaW5nLT51bmxvYWRFdmVudFN0YXJ0KTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBBU1NFUlQoIXRpbWluZy0+dW5sb2FkRXZlbnRFbmQpOwogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5kaXNwYXRjaFRpbWVkRXZlbnQodW5sb2Fk
RXZlbnQsIG1fZnJhbWUtPmRvbVdpbmRvdygpLT5kb2N1bWVudCgpLCAmdGltaW5nLT51bmxvYWRF
dmVudFN0YXJ0LCAmdGltaW5nLT51bmxvYWRFdmVudEVuZCk7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQVNTRVJUKHRpbWluZy0+dW5sb2FkRXZlbnRTdGFydCA+PSB0aW1pbmctPm5hdmln
YXRpb25TdGFydCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UKQEAgLTExODYsNyAr
MTE4NSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbXBsZXRlZCgpCiAKICAgICBmb3IgKEZyYW1l
KiBkZXNjZW5kYW50ID0gbV9mcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQobV9mcmFtZSk7IGRl
c2NlbmRhbnQ7IGRlc2NlbmRhbnQgPSBkZXNjZW5kYW50LT50cmVlKCktPnRyYXZlcnNlTmV4dCht
X2ZyYW1lKSkKICAgICAgICAgZGVzY2VuZGFudC0+bmF2aWdhdGlvblNjaGVkdWxlcigpLT5zdGFy
dFRpbWVyKCk7Ci0gICAgCisKICAgICBpZiAoRnJhbWUqIHBhcmVudCA9IG1fZnJhbWUtPnRyZWUo
KS0+cGFyZW50KCkpCiAgICAgICAgIHBhcmVudC0+bG9hZGVyKCktPmNoZWNrQ29tcGxldGVkKCk7
CiAKQEAgLTE0MzgsNiArMTQzNyw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRXaXRoRG9jdW1l
bnRMb2FkZXIoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgRnJhbWVMb2FkVHlwZSB0CiAgICAgaWYg
KG1fcGFnZURpc21pc3NhbEV2ZW50QmVpbmdEaXNwYXRjaGVkKQogICAgICAgICByZXR1cm47CiAK
KyAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgbV9wcmV2aW91c1VybCA9IG1f
ZnJhbWUtPmRvY3VtZW50KCktPnVybCgpOworCiAgICAgcG9saWN5Q2hlY2tlcigpLT5zZXRMb2Fk
VHlwZSh0eXBlKTsKICAgICBSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUgPSBwcnBGb3JtU3Rh
dGU7CiAgICAgYm9vbCBpc0Zvcm1TdWJtaXNzaW9uID0gZm9ybVN0YXRlOwpAQCAtMTgzNCwxNSAr
MTgzNiwyMSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoKQogICAg
IEhpc3RvcnlJdGVtKiBpdGVtID0gaGlzdG9yeSgpLT5jdXJyZW50SXRlbSgpOwogICAgIGlmICgh
bV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSAmJiBQYWdlQ2FjaGU6OmNhbkNhY2hlKG1fZnJhbWUt
PnBhZ2UoKSkgJiYgIWl0ZW0tPmlzSW5QYWdlQ2FjaGUoKSkKICAgICAgICAgcGFnZUNhY2hlKCkt
PmFkZChpdGVtLCBtX2ZyYW1lLT5wYWdlKCkpOwotICAgIAorCiAgICAgaWYgKG1fbG9hZFR5cGUg
IT0gRnJhbWVMb2FkVHlwZVJlcGxhY2UpCiAgICAgICAgIGNsb3NlT2xkRGF0YVNvdXJjZXMoKTsK
LSAgICAKKwogICAgIGlmICghY2FjaGVkUGFnZSAmJiAhbV9zdGF0ZU1hY2hpbmUuY3JlYXRpbmdJ
bml0aWFsRW1wdHlEb2N1bWVudCgpKQogICAgICAgICBtX2NsaWVudC0+bWFrZVJlcHJlc2VudGF0
aW9uKHBkbC5nZXQoKSk7Ci0gICAgCisKICAgICB0cmFuc2l0aW9uVG9Db21taXR0ZWQoY2FjaGVk
UGFnZSk7Ci0gICAgCisKKyAgICBpZiAocGRsKSB7CisgICAgICAgIC8vIENoZWNrIGlmIHRoZSBk
ZXN0aW5hdGlvbiBwYWdlIGlzIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSBwcmV2aW91cyBwYWdlJ3Mg
dGltaW5nIGluZm9ybWF0aW9uLgorICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3Vy
aXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShwZGwtPnJlcXVlc3QoKS51cmwoKSk7
CisgICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPnRpbWluZygpLT5oYXNTYW1lT3JpZ2luQXNQcmV2
aW91c0RvY3VtZW50ID0gc2VjdXJpdHlPcmlnaW4tPmNhblJlcXVlc3QobV9wcmV2aW91c1VybCk7
CisgICAgfQorCiAgICAgLy8gQ2FsbCBjbGllbnRSZWRpcmVjdENhbmNlbGxlZE9yRmluaXNoZWQo
KSBoZXJlIHNvIHRoYXQgdGhlIGZyYW1lIGxvYWQgZGVsZWdhdGUgaXMgbm90aWZpZWQgdGhhdCB0
aGUgcmVkaXJlY3QncwogICAgIC8vIHN0YXR1cyBoYXMgY2hhbmdlZCwgaWYgdGhlcmUgd2FzIGEg
cmVkaXJlY3QuICBUaGUgZnJhbWUgbG9hZCBkZWxlZ2F0ZSBtYXkgaGF2ZSBzYXZlZCBzb21lIHN0
YXRlIGFib3V0CiAgICAgLy8gdGhlIHJlZGlyZWN0IGluIGl0cyAtd2ViVmlldzp3aWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0VG9VUkw6ZGVsYXk6ZmlyZURhdGU6Zm9yRnJhbWU6LiAgU2luY2Ugd2Ug
YXJlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBmMWMyMTg5Y2EzOWMyNTVkZDgwNGIxMTY1ZWFhYjE2
YmEwMTE4OWVkLi5jYTc4NjAzY2QxODA0YjZkODdhZjkzOWEzNGZiOWEzZmM0OWI5NTFhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmgKQEAgLTQ4MCwxMSArNDgwLDEzIEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2RpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb247CiAgICAgYm9vbCBtX2xvYWRpbmdGcm9tQ2FjaGVk
UGFnZTsKICAgICBib29sIG1fc3VwcHJlc3NPcGVuZXJJbk5ld0ZyYW1lOwotICAgIAorCiAgICAg
U2FuZGJveEZsYWdzIG1fc2FuZGJveEZsYWdzOwogICAgIFNhbmRib3hGbGFncyBtX2ZvcmNlZFNh
bmRib3hGbGFnczsKIAogICAgIFJlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBtX25ldHdv
cmtpbmdDb250ZXh0OworCisgICAgS1VSTCBtX3ByZXZpb3VzVXJsOwogfTsKIAogLy8gVGhpcyBm
dW5jdGlvbiBpcyBjYWxsZWQgYnkgY3JlYXRlV2luZG93KCkgaW4gSlNET01XaW5kb3dCYXNlLmNw
cCwgZm9yIGV4YW1wbGUsIGZvcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291
cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKaW5k
ZXggODVjZWIxOTE4MTcxOGM3NWFjYmQxODc5MTc3NzNlMDhkNjU1MjJjOC4uZTZhYmVmZDFiNDNh
ZjY0ZDBmODJiMWYyZTY2N2NlYTIwYTg0ZmZiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIv
TWFpblJlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC0xNjQsNyArMTY0LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6Ondp
bGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc28KICAg
ICAvLyBkZWZlcnJhbHMgcGxheXMgbGVzcyBvZiBhIHBhcnQgaW4gdGhpcyBmdW5jdGlvbiBpbiBw
cmV2ZW50aW5nIHRoZSBiYWQgYmVoYXZpb3IgZGVmZXJyaW5nIAogICAgIC8vIGNhbGxiYWNrcyBp
cyBtZWFudCB0byBwcmV2ZW50LgogICAgIEFTU0VSVCghbmV3UmVxdWVzdC5pc051bGwoKSk7Ci0g
ICAgCisKICAgICAvLyBUaGUgYWRkaXRpb25hbCBwcm9jZXNzaW5nIGNhbiBkbyBhbnl0aGluZyBp
bmNsdWRpbmcgcG9zc2libHkgcmVtb3ZpbmcgdGhlIGxhc3QKICAgICAvLyByZWZlcmVuY2UgdG8g
dGhpcyBvYmplY3Q7IG9uZSBleGFtcGxlIG9mIHRoaXMgaXMgMzI2NjIxNi4KICAgICBSZWZQdHI8
TWFpblJlc291cmNlTG9hZGVyPiBwcm90ZWN0KHRoaXMpOwpAQCAtMTcyLDYgKzE3MiwxMiBAQCB2
b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYg
bmV3UmVxdWVzdCwgY29uc3QgUmVzbwogICAgIEFTU0VSVChkb2N1bWVudExvYWRlcigpLT50aW1p
bmcoKS0+ZmV0Y2hTdGFydCk7CiAgICAgaWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKSB7
CiAgICAgICAgIERvY3VtZW50TG9hZFRpbWluZyogZG9jdW1lbnRMb2FkVGltaW5nID0gZG9jdW1l
bnRMb2FkZXIoKS0+dGltaW5nKCk7CisKKyAgICAgICAgLy8gQ2hlY2sgaWYgdGhlIHJlZGlyZWN0
ZWQgdXJsIGlzIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSByZWRpcmVjdGluZyB1cmwncyB0aW1pbmcg
aW5mb3JtYXRpb24uCisgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmln
aW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG5ld1JlcXVlc3QudXJsKCkpOworICAgICAgICBp
ZiAoIXNlY3VyaXR5T3JpZ2luLT5jYW5SZXF1ZXN0KHJlZGlyZWN0UmVzcG9uc2UudXJsKCkpKQor
ICAgICAgICAgICAgZG9jdW1lbnRMb2FkVGltaW5nLT5oYXNDcm9zc09yaWdpblJlZGlyZWN0ID0g
dHJ1ZTsKKwogICAgICAgICBkb2N1bWVudExvYWRUaW1pbmctPnJlZGlyZWN0Q291bnQrKzsKICAg
ICAgICAgaWYgKCFkb2N1bWVudExvYWRUaW1pbmctPnJlZGlyZWN0U3RhcnQpCiAgICAgICAgICAg
ICBkb2N1bWVudExvYWRUaW1pbmctPnJlZGlyZWN0U3RhcnQgPSBkb2N1bWVudExvYWRUaW1pbmct
PmZldGNoU3RhcnQ7CkBAIC0xODMsNyArMTg5LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6
OndpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc28K
ICAgICAvLyBVUkwgb2YgdGhlIG1haW4gZnJhbWUgd2hpY2ggZG9lc24ndCBjaGFuZ2Ugd2hlbiB3
ZSByZWRpcmVjdC4KICAgICBpZiAoZnJhbWVMb2FkZXIoKS0+aXNMb2FkaW5nTWFpbkZyYW1lKCkp
CiAgICAgICAgIG5ld1JlcXVlc3Quc2V0Rmlyc3RQYXJ0eUZvckNvb2tpZXMobmV3UmVxdWVzdC51
cmwoKSk7Ci0gICAgCisKICAgICAvLyBJZiB3ZSdyZSBmaWVsZGluZyBhIHJlZGlyZWN0IGluIHJl
c3BvbnNlIHRvIGEgUE9TVCwgZm9yY2UgYSBsb2FkIGZyb20gb3JpZ2luLCBzaW5jZQogICAgIC8v
IHRoaXMgaXMgYSBjb21tb24gc2l0ZSB0ZWNobmlxdWUgdG8gcmV0dXJuIHRvIGEgcGFnZSB2aWV3
aW5nIHNvbWUgZGF0YSB0aGF0IHRoZSBQT1NUCiAgICAgLy8ganVzdCBtb2RpZmllZC4KQEAgLTE5
Miw3ICsxOTgsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJl
c291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwgY29uc3QgUmVzbwogICAgICAgICBuZXdSZXF1ZXN0
LnNldENhY2hlUG9saWN5KFJlbG9hZElnbm9yaW5nQ2FjaGVEYXRhKTsKIAogICAgIFJlc291cmNl
TG9hZGVyOjp3aWxsU2VuZFJlcXVlc3QobmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7Ci0g
ICAgCisKICAgICAvLyBEb24ndCBzZXQgdGhpcyBvbiB0aGUgZmlyc3QgcmVxdWVzdC4gSXQgaXMg
c2V0IHdoZW4gdGhlIG1haW4gbG9hZCB3YXMgc3RhcnRlZC4KICAgICBtX2RvY3VtZW50TG9hZGVy
LT5zZXRSZXF1ZXN0KG5ld1JlcXVlc3QpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2VOYXZpZ2F0aW9uLmNwcCBiL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRp
b24uY3BwCmluZGV4IDU5N2FmMjA4ZjViMDhiMzliZTUxYjdiYjAwZGQwZGNjYzM1YjQ0NGMuLmE0
NjYzOWFhODk1OTQ4ZjMwYTBhZWMyNjI2MTc1MDFlYWVhZGJmYzggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZU5hdmlnYXRpb24uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZU5hdmlnYXRpb24uY3BwCkBAIC04Myw3ICs4MywxMSBAQCB1bnNpZ25lZCBzaG9ydCBQ
ZXJmb3JtYW5jZU5hdmlnYXRpb246OnJlZGlyZWN0Q291bnQoKSBjb25zdAogICAgIGlmICghbG9h
ZGVyKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBsb2FkZXItPnRpbWluZygpLT5y
ZWRpcmVjdENvdW50OworICAgIERvY3VtZW50TG9hZFRpbWluZyogdGltaW5nID0gbG9hZGVyLT50
aW1pbmcoKTsKKyAgICBpZiAodGltaW5nLT5oYXNDcm9zc09yaWdpblJlZGlyZWN0KQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIHJldHVybiB0aW1pbmctPnJlZGlyZWN0Q291bnQ7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZVRpbWluZy5jcHAgYi9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VUaW1pbmcuY3BwCmluZGV4IDQ3
ZjkyNzhhZWQ4ZDdjYjc4MmVlMWI4NjFiOTcwZjIzYTAxY2EwNWYuLmZkODk3NGQ5MGIzNjdjOTVh
ZjNiMmY5ZTkxNmE0NjZjNGFkMmZhODcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVRpbWluZy5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVGltaW5nLmNwcApA
QCAtOTksNiArOTksOSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6OnVu
bG9hZEV2ZW50U3RhcnQoKSBjb25zdAogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4g
MDsKIAorICAgIGlmICghdGltaW5nLT5oYXNTYW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50KQor
ICAgICAgICByZXR1cm4gMDsKKwogICAgIHJldHVybiB0b0ludGVnZXJNaWxsaXNlY29uZHModGlt
aW5nLT51bmxvYWRFdmVudFN0YXJ0KTsKIH0KIApAQCAtMTA4LDYgKzExMSw5IEBAIHVuc2lnbmVk
IGxvbmcgbG9uZyBQZXJmb3JtYW5jZVRpbWluZzo6dW5sb2FkRXZlbnRFbmQoKSBjb25zdAogICAg
IGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4gMDsKIAorICAgIGlmICghdGltaW5nLT5oYXNT
YW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50KQorICAgICAgICByZXR1cm4gMDsKKwogICAgIHJl
dHVybiB0b0ludGVnZXJNaWxsaXNlY29uZHModGltaW5nLT51bmxvYWRFdmVudEVuZCk7CiB9CiAK
QEAgLTExNyw2ICsxMjMsOSBAQCB1bnNpZ25lZCBsb25nIGxvbmcgUGVyZm9ybWFuY2VUaW1pbmc6
OnJlZGlyZWN0U3RhcnQoKSBjb25zdAogICAgIGlmICghdGltaW5nKQogICAgICAgICByZXR1cm4g
MDsKIAorICAgIGlmICh0aW1pbmctPmhhc0Nyb3NzT3JpZ2luUmVkaXJlY3QpCisgICAgICAgIHJl
dHVybiAwOworCiAgICAgcmV0dXJuIHRvSW50ZWdlck1pbGxpc2Vjb25kcyh0aW1pbmctPnJlZGly
ZWN0U3RhcnQpOwogfQogCkBAIC0xMjYsNiArMTM1LDkgQEAgdW5zaWduZWQgbG9uZyBsb25nIFBl
cmZvcm1hbmNlVGltaW5nOjpyZWRpcmVjdEVuZCgpIGNvbnN0CiAgICAgaWYgKCF0aW1pbmcpCiAg
ICAgICAgIHJldHVybiAwOwogCisgICAgaWYgKHRpbWluZy0+aGFzQ3Jvc3NPcmlnaW5SZWRpcmVj
dCkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICByZXR1cm4gdG9JbnRlZ2VyTWlsbGlzZWNvbmRz
KHRpbWluZy0+cmVkaXJlY3RFbmQpOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>