<?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>66128</bug_id>
          
          <creation_ts>2011-08-12 00:23:43 -0700</creation_ts>
          <short_desc>A second form submission is not allowed if the first submission was canceled in an onbeforeunload handler.</short_desc>
          <delta_ts>2011-08-12 12:28:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>26211</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>ap</cc>
    
    <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>450334</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-08-12 00:23:43 -0700</bug_when>
    <thetext>A second form submission is not allowed if the first submission was canceled in an onbeforeload handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450349</commentid>
    <comment_count>1</comment_count>
      <attachid>103751</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-08-12 01:08:32 -0700</bug_when>
    <thetext>Created attachment 103751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450353</commentid>
    <comment_count>2</comment_count>
      <attachid>103751</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-12 01:11:59 -0700</bug_when>
    <thetext>Comment on attachment 103751
Patch

Attachment 103751 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9348573</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450359</commentid>
    <comment_count>3</comment_count>
      <attachid>103752</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-08-12 01:26:33 -0700</bug_when>
    <thetext>Created attachment 103752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450443</commentid>
    <comment_count>4</comment_count>
      <attachid>103751</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2011-08-12 08:50:53 -0700</bug_when>
    <thetext>Comment on attachment 103751
Patch

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

Unofficial r=me! (not a reviewer yet)

&gt; Tools/DumpRenderTree/LayoutTestController.cpp:2136
&gt; +static JSValueRef allowRoundingHacksCallback(JSContextRef context, JSObjectRef, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)

Nit-pick: You mention in the ChangeLog that this is unrelated - it should really be in a separate patch.

&gt; Tools/DumpRenderTree/LayoutTestController.cpp:2150
&gt; +        shouldStayOnPageAfterHandlingBeforeUnload = JSValueToBoolean(context, arguments[0]);

This effectively makes the singular boolean argument optional. I think with a name like &quot;setShouldStayOnPageAfterHandlingBeforeUnload&quot;, the argument should not be treated as optional and it should just bail early if an argument is not provided:

if (argumentCount &lt; 1)
    return JSValueMakeUndefined(context);

&gt; Tools/DumpRenderTree/win/UIDelegate.cpp:476
&gt;      return E_NOTIMPL;

If this is implemented, why is it returning E_NOTIMPL instead of S_OK?

&gt; Tools/WebKitTestRunner/TestController.cpp:110
&gt; +    printf(&quot;CONFIRM NAVIGATION: %s\n&quot;, toSTD(message).c_str());

Do these changes to the output message mean that the expected results for any other tests need to be updated? (Ditto for the WK1 changes)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450523</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-12 11:35:40 -0700</bug_when>
    <thetext>Is this a duplicate of bug 26211?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450524</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-12 11:36:08 -0700</bug_when>
    <thetext>Or bug 25885?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450545</commentid>
    <comment_count>7</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-08-12 12:12:13 -0700</bug_when>
    <thetext>Yup, I think this is a dupe of bug 26211. It sounds like bug 25885 tracked multiple issues and the reporter spun off bug 26211 to track the onbeforeunload issue specifically. I&apos;ll dupe this bug and post a patch on bug 26211 with updates for Jessie&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450548</commentid>
    <comment_count>8</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-08-12 12:16:49 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 103751 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=103751&amp;action=review
&gt; 
&gt; Unofficial r=me! (not a reviewer yet)

Unofficial thanks!

&gt; 
&gt; &gt; Tools/DumpRenderTree/LayoutTestController.cpp:2136
&gt; &gt; +static JSValueRef allowRoundingHacksCallback(JSContextRef context, JSObjectRef, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception)
&gt; 
&gt; Nit-pick: You mention in the ChangeLog that this is unrelated - it should really be in a separate patch.
&gt; 
&gt; &gt; Tools/DumpRenderTree/LayoutTestController.cpp:2150
&gt; &gt; +        shouldStayOnPageAfterHandlingBeforeUnload = JSValueToBoolean(context, arguments[0]);
&gt; 
&gt; This effectively makes the singular boolean argument optional. I think with a name like &quot;setShouldStayOnPageAfterHandlingBeforeUnload&quot;, the argument should not be treated as optional and it should just bail early if an argument is not provided:

I agree.

&gt; 
&gt; if (argumentCount &lt; 1)
&gt;     return JSValueMakeUndefined(context);
&gt; 
&gt; &gt; Tools/DumpRenderTree/win/UIDelegate.cpp:476
&gt; &gt;      return E_NOTIMPL;
&gt; 
&gt; If this is implemented, why is it returning E_NOTIMPL instead of S_OK?

It should return S_OK!

&gt; 
&gt; &gt; Tools/WebKitTestRunner/TestController.cpp:110
&gt; &gt; +    printf(&quot;CONFIRM NAVIGATION: %s\n&quot;, toSTD(message).c_str());
&gt; 
&gt; Do these changes to the output message mean that the expected results for any other tests need to be updated? (Ditto for the WK1 changes)

No tests that I can run locally require updated results. For ports I can&apos;t run locally, I&apos;ll watch the bots and update results where needed.

Thanks for the careful review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450564</commentid>
    <comment_count>9</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-08-12 12:28:10 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 26211 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103751</attachid>
            <date>2011-08-12 01:08:32 -0700</date>
            <delta_ts>2011-08-12 08:50:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66128-20110812010842.patch</filename>
            <type>text/plain</type>
            <size>21659</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI5MTQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0N2I3Y2RkMTM0ZmRkZWIzNWNlMmZl
MGVjMDk1OTY3YWQ3YzYwMmQxLi5kNDc3NzQ0MjU5YmYzM2M0Y2MzZjQ5ODI2MWI5ZjFkNDc5MWE2
MmIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDgtMTIgIEFuZHkgRXN0ZXMgIDxhZXN0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIEEgc2Vjb25kIGZvcm0gc3VibWlzc2lvbiBpcyBub3Qg
YWxsb3dlZCBpZiB0aGUgZmlyc3Qgc3VibWlzc2lvbiB3YXMKKyAgICAgICAgY2FuY2VsZWQgaW4g
YW4gb25iZWZvcmV1bmxvYWQgaGFuZGxlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY2MTI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYWZ0ZXItYmVm
b3JldW5sb2FkLWNhbmNlbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9h
ZGVyL2Zvcm0tc3VibWlzc2lvbi1hZnRlci1iZWZvcmV1bmxvYWQtY2FuY2VsLmh0bWw6IEFkZGVk
LgorCiAyMDExLTA4LTExICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFNoYXJlIGNvZGUgYmV0d2VlbiBpc1N0eWxlU3Bhbk9yU3BhbldpdGhPbmx5U3R5bGVBdHRy
aWJ1dGUsIGlzVW5zdHlsZWRTdHlsZVNwYW4sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYWZ0ZXItYmVmb3JldW5sb2FkLWNhbmNlbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYWZ0ZXItYmVm
b3JldW5sb2FkLWNhbmNlbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNThhNDJkN2U3ZDk4MDM5
NmE5OTA5NDI1ZWJlOTUxZTRiM2ViZDM5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1hZnRlci1iZWZvcmV1bmxvYWQtY2FuY2VsLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK0NPTkZJUk0gTkFWSUdBVElPTjogCitDT05GSVJN
IE5BVklHQVRJT046IAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
Zm9ybS1zdWJtaXNzaW9uLWFmdGVyLWJlZm9yZXVubG9hZC1jYW5jZWwuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1hZnRlci1iZWZvcmV1bmxvYWQtY2FuY2Vs
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGMyYWQzNDZkNzYyYjI0OTE5YzFhNjZiMDU4MGIyMDY4YjMxZTVm
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlz
c2lvbi1hZnRlci1iZWZvcmV1bmxvYWQtY2FuY2VsLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPHNj
cmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNob3VsZFN0YXlPblBhZ2VB
ZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKHRydWUpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigiYmVmb3JldW5sb2FkIiwgZnVuY3Rpb24oKSB7CisgICAgd2luZG93LnNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJI
YW5kbGluZ0JlZm9yZVVubG9hZChmYWxzZSk7CisKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpLmlubmVySFRNTCA9ICJGQUlMIjsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9LCAwKTsKKworICAgICAgICBkb2N1bWVudC5mb3Jtc1swXS5zdWJt
aXQoKTsKKyAgICB9LCAwKTsKKyAgICAKKyAgICByZXR1cm4gIiI7Cit9KTsKKzwvc2NyaXB0Pgor
Cis8cD5UaGlzIHRlc3RzIHRoYXQgc3VibWl0dGluZyBhIGZvcm0gYSBzZWNvbmQgdGltZSBhZnRl
ciBjYW5jZWxpbmcgdGhlIGZpcnN0IHN1Ym1pc3Npb24gaW4gYSBvbmJlZm9yZXVubG9hZCBoYW5k
bGVyIGlzIGFsbG93ZWQuIFRvIHRlc3QgbWFudWFsbHksIGNsaWNrICdTdGF5IG9uIFBhZ2UnIHdo
ZW4gdGhlIEphdmFTY3JpcHQgYmVmb3JldW5sb2FkIGRpYWxvZyBhcHBlYXJzLiBUaGUgdGVzdCBw
YXNzZXMgaWYgdGhlIGRpYWxvZyBhcHBlYXJzIGEgc2Vjb25kIHRpbWUuPC9wPgorCis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKworPGZvcm0gYWN0aW9uPSJyZXNvdXJjZXMvcGFzcy1hbmQtbm90
aWZ5LWRvbmUuaHRtbCIgbWV0aG9kPSJQT1NUIj4KKzwvZm9ybT4KKworPHNjcmlwdD4KK2RvY3Vt
ZW50LmZvcm1zWzBdLnN1Ym1pdCgpOworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDdiNzVhNDYxMzVmYjI3ODkxMjUyNTE5OTkxYjZlZjllMWNiM2Rh
YmYuLjE2OWNkY2E0MTQzZDVmOWQxYWI2NmRhYWNkYmQ5MGRmOTA2M2RmNjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNCBAQAorMjAxMS0wOC0xMiAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5j
b20+CisKKyAgICAgICAgQSBzZWNvbmQgZm9ybSBzdWJtaXNzaW9uIGlzIG5vdCBhbGxvd2VkIGlm
IHRoZSBmaXJzdCBzdWJtaXNzaW9uIHdhcworICAgICAgICBjYW5jZWxlZCBpbiBhbiBvbmJlZm9y
ZXVubG9hZCBoYW5kbGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjYxMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYWZ0ZXItYmVmb3JldW5s
b2FkLWNhbmNlbC5odG1sCisKKyAgICAgICAgSWYgYW4gb25iZWZvcmV1bmxvYWQgaGFuZGxlciBj
YW5jZWxzIGEgbmF2aWdhdGlvbiB0aGF0IHdhcyB0cmlnZ2VyZWQgYnkKKyAgICAgICAgYSBmb3Jt
IHN1Ym1pc3Npb24sIFdlYkNvcmUncyBtdWx0aXBsZSBmb3JtIHN1Ym1pc3Npb24gcHJvdGVjdGlv
bgorICAgICAgICBwcmV2ZW50cyB0aGUgZm9ybSBmcm9tIGJlaW5nIHN1Ym1pdHRlZCBhIHNlY29u
ZCB0aW1lIGV2ZW4gdGhvdWdoIG5vCisgICAgICAgIGZpcnN0IHN1Ym1pc3Npb24gYWN0dWFsbHkg
dG9vayBwbGFjZS4gRml4IHRoaXMgYnkgY2xlYXJpbmcKKyAgICAgICAgbV9zdWJtaXR0ZWRGb3Jt
VVJMIGlmIHRoZSBvbmJlZm9yZXVubG9hZCBoYW5kbGVyIGNhbmNlbHMgdGhlIGxvYWQuIFRoaXMK
KyAgICAgICAgYWxsb3dzIHRoZSBzdWJtaXNzaW9uIHRvIGJlIHJldHJpZWQuCisKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnNob3VsZENsb3NlKTogU2V0IG1fc3VibWl0dGVkRm9ybVVSTCB0byBLVVJMKCkKKyAgICAgICAg
aWYgc2hvdWxkQ2xvc2UoKSB3aWxsIHJldHVybiBmYWxzZS4KKwogMjAxMS0wOC0xMSAgSm9obiBC
YXVtYW4gIDxqYmF1bWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWFkYmFjayBjb21wb3Np
dGVkIHdlYmdsIHJlc3VsdHMgZm9yIHByaW50aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAppbmRleCBlNWM5OGRiM2E5NTYzMTcwZjdhYjMyOTBiNzkzZTlkNzdkODk5NmQ0Li5k
ZmMyZjlhOTkwNTU3ODRkYmVhYTc3NWMwZDk2MmZkMDkxMzhkMmRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTI3MzIsNiArMjczMiw5IEBAIGJvb2wgRnJhbWVMb2Fk
ZXI6OnNob3VsZENsb3NlKCkKICAgICAgICAgICAgIHNob3VsZENsb3NlID0gdHJ1ZTsKICAgICB9
CiAKKyAgICBpZiAoIXNob3VsZENsb3NlKQorICAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJMID0g
S1VSTCgpOworCiAgICAgcmV0dXJuIHNob3VsZENsb3NlOwogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODRkMTA1YmNjNzUyYzhlZDY0NWZj
YzA3NmYyYTMzNzFlOTA0M2RiYS4uZGIzYjg2MTQ4ZjdhNmMwMTE4MzdmMDJlNmI5MzVhOTY5Njg4
ZjQzMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDYwIEBACisyMDExLTA4LTEyICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNv
bT4KKworICAgICAgICBBIHNlY29uZCBmb3JtIHN1Ym1pc3Npb24gaXMgbm90IGFsbG93ZWQgaWYg
dGhlIGZpcnN0IHN1Ym1pc3Npb24gd2FzCisgICAgICAgIGNhbmNlbGVkIGluIGFuIG9uYmVmb3Jl
dW5sb2FkIGhhbmRsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NjEyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEltcGxlbWVudCBhIG5ldyBMYXlvdXRUZXN0Q29udHJvbGxlciBtZXRob2QgdGhhdCBh
IHRlc3QgY2FuIGNhbGwgdG8gc2V0CisgICAgICAgIHRoZSByZXR1cm4gdmFsdWUgb2YgRHVtcFJl
bmRlclRyZWUncyBiZWZvcmV1bmxvYWQgVUkgZGVsZWdhdGUuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOiBJbml0aWFsaXplCisgICAgICAgIG1fc2hv
dWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQuCisgICAgICAgIChhbGxvd1Jv
dW5kaW5nSGFja3NDYWxsYmFjayk6IEZpeCBhbiB1bnJlbGF0ZWQgYnVnIHdoZXJlIHRoZSB3cm9u
ZworICAgICAgICBhcmd1bWVudCB3YXMgYmVpbmcgdXNlZCBmb3IgJ3RoaXNPYmplY3QnLgorICAg
ICAgICAoc2V0U2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWRDYWxsYmFj
ayk6IENhbGwKKyAgICAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNob3VsZFN0YXlPblBh
Z2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKCkuCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c3RhdGljRnVuY3Rpb25zKTogUmVnaXN0ZXIKKyAgICAgICAgJ3NldFNob3VsZFN0YXlP
blBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkJyBhcyBhIHN0YXRpYyBmdW5jdGlvbi4KKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiAKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjpzaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9y
ZVVubG9hZCk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkU3RheU9u
UGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0OjpydW5Nb2Rh
bEJlZm9yZVVubG9hZERpYWxvZyk6IEFkZCB0aGUgY29ycmVjdCBsb2dnaW5nIGFuZAorICAgICAg
ICByZXR1cm4gdGhlIGludmVyc2Ugb2YKKyAgICAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNo
b3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKCkuCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW06CisgICAgICAgICgtW1VJRGVsZWdhdGUgd2Vi
VmlldzpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZy
YW1lOl0pOiBEaXR0by4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5j
cHA6CisgICAgICAgIChVSURlbGVnYXRlOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRo
TWVzc2FnZSk6IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsOgorICAgICAgICBEZWZpbmUgc2V0
U2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoKS4KKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAg
ICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnBvc3ROZXdCZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSk6
IFBvc3QgYSBtZXNzYWdlCisgICAgICAgIHRvIHRoZSBUZXN0IENvbnRyb2xsZXIgdGVsbGluZyBp
dCB3aGF0IHZhbHVlIGl0IHNob3VsZCByZXR1cm4gaW4gaXRzCisgICAgICAgIG9uYmVmb3JldW5s
b2FkIFVJIGRlbGVnYXRlLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6TGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldFNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2Fk
KToKKyAgICAgICAgQ2FsbCBJbmplY3RlZEJ1bmRsZTo6cG9zdE5ld0JlZm9yZVVubG9hZFJldHVy
blZhbHVlKCkuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6VGVzdENvbnRyb2xsZXIp
OiBJbml0aWFsaXplCisgICAgICAgIG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUgdG8gdHJ1ZS4K
KyAgICAgICAgKFdUUjo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKTogQWRkIHRoZSBjb3Jy
ZWN0IGxvZ2dpbmcgYW5kIHJldHVybgorICAgICAgICB0aGUgdmFsdWUgb2YgVGVzdENvbnRyb2xs
ZXI6OmJlZm9yZVVubG9hZFJldHVyblZhbHVlKCkuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKTogUmVzZXQKKyAgICAgICAgbV9iZWZv
cmVVbmxvYWRSZXR1cm5WYWx1ZSB0byB0cnVlLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmJlZm9yZVVu
bG9hZFJldHVyblZhbHVlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldEJlZm9y
ZVVubG9hZFJldHVyblZhbHVlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKTogSGFuZGxlIHRoZQorICAgICAgICBtZXNzYWdlIHBvc3Rl
ZCBmcm9tIHRoZSBpbmplY3RlZCBidW5kbGUgYnkgcmV0cmlldmluZyB0aGUgbWVzc2FnZSBib2R5
CisgICAgICAgIGFzIGEgV0tCb29sZWFuIGFuZCBjYWxsaW5nIFRlc3RDb250cm9sbGVyOjpzZXRC
ZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSgpLgorCiAyMDExLTA4LTExICBNYXJrIFJvd2UgIDxtcm93
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV3b3JrIHNvbWUgTWFrZWZpbGUgbG9naWMgdG8gcmVt
b3ZlIGEgZG91YmxlLW5lZ2F0aXZlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCmluZGV4IDk5MjIyMThkZTgyMTc5NDkxNjlmMDkzYTRkMTExZTJlMzFh
OTI4MjUuLmE2MGE1ZGM2OWFmYTkyNDkzNDZiMTRiZmI3ZDExNzcxYzU2NTQwNTcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTg3LDYgKzg3
LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKGNvbnN0IHN0
ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJMLCBjb24KICAgICAsIG1faXNQcmludGluZyhmYWxzZSkK
ICAgICAsIG1fZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCh0cnVlKQogICAgICwgbV9zaG91bGRQ
YWludEJyb2tlbkltYWdlKHRydWUpCisgICAgLCBtX3Nob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRs
aW5nQmVmb3JlVW5sb2FkKGZhbHNlKQogICAgICwgbV90ZXN0UGF0aE9yVVJMKHRlc3RQYXRoT3JV
UkwpCiAgICAgLCBtX2V4cGVjdGVkUGl4ZWxIYXNoKGV4cGVjdGVkUGl4ZWxIYXNoKQogewpAQCAt
MjEzMiw3ICsyMTMzLDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0U2VyaWFsaXplSFRUUExvYWRz
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmUKICAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIGFsbG93
Um91bmRpbmdIYWNrc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBKU09iamVjdFJlZiwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFs
dWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3N0YXRpYyBKU1ZhbHVl
UmVmIGFsbG93Um91bmRpbmdIYWNrc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNv
bnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAg
ICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRl
c3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKIApAQCAtMjE0
MCw2ICsyMTQxLDE4IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGFsbG93Um91bmRpbmdIYWNrc0NhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0CiAgICAgcmV0dXJuIEpTVmFs
dWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTaG91
bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZENhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKK3sKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRp
Y19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmpl
Y3QpKTsKKyAgICAKKyAgICBib29sIHNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3Jl
VW5sb2FkID0gZmFsc2U7CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPT0gMSkKKyAgICAgICAgc2hv
dWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQgPSBKU1ZhbHVlVG9Cb29sZWFu
KGNvbnRleHQsIGFyZ3VtZW50c1swXSk7CisgICAgCisgICAgY29udHJvbGxlci0+c2V0U2hvdWxk
U3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoc2hvdWxkU3RheU9uUGFnZUFmdGVy
SGFuZGxpbmdCZWZvcmVVbmxvYWQpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKK30KKwogLy8gU3RhdGljIFZhbHVlcwogCiBzdGF0aWMgSlNWYWx1ZVJlZiBnZXRH
bG9iYWxGbGFnQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpA
QCAtMjQxNCw2ICsyNDI3LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldFNob3VsZFBhaW50QnJva2VuSW1h
Z2UiLCBzZXRTaG91bGRQYWludEJyb2tlbkltYWdlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic2V0VGV4dERpcmVjdGlvbiIsIHNldFRleHREaXJlY3Rpb25DYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJhbGxvd1JvdW5kaW5nSGFja3MiLCBhbGxvd1JvdW5kaW5nSGFja3NDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAorICAgICAgICB7ICJzZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0Jl
Zm9yZVVubG9hZCIsIHNldFNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2Fk
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAwLCAwLCAwIH0KICAgICB9OwogCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAxM2FmYTk3MWFlNjM0
OWE0MTFhOGM4ODljZDlmMDBkMzI1OTBlZDE5Li45Yjc2Mjg4MGVjYWY1ZjgwOGE5NjdmN2E5NDMy
NjkxMzIwNTY1ZGEwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmgKQEAgLTMwNyw2ICszMDcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBldmFsdWF0ZVNjcmlw
dEluSXNvbGF0ZWRXb3JsZCh1bnNpZ25lZCB3b3JsZElELCBKU09iamVjdFJlZiBnbG9iYWxPYmpl
Y3QsIEpTU3RyaW5nUmVmIHNjcmlwdCk7CiAgICAgdm9pZCBhbGxvd1JvdW5kaW5nSGFja3MoKTsK
IAorICAgIGJvb2wgc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoKSBj
b25zdCB7IHJldHVybiBtX3Nob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2Fk
OyB9CisgICAgdm9pZCBzZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9h
ZChib29sIHNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKSB7IG1fc2hv
dWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQgPSBzaG91bGRTdGF5T25QYWdl
QWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZDsgfQorCiAgICAgdm9pZCBzZXRQT1NJWExvY2FsZShK
U1N0cmluZ1JlZiBsb2NhbGUpOwogCiAgICAgdm9pZCBzZXRXZWJWaWV3RWRpdGFibGUoYm9vbCk7
CkBAIC0zOTgsNiArNDAxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQcmludGluZzsKICAg
ICBib29sIG1fZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZDsKICAgICBib29sIG1fc2hvdWxkUGFp
bnRCcm9rZW5JbWFnZTsKKyAgICBib29sIG1fc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdC
ZWZvcmVVbmxvYWQ7CiAKICAgICBzdGQ6OnN0cmluZyBtX2F1dGhlbnRpY2F0aW9uVXNlcm5hbWU7
CiAgICAgc3RkOjpzdHJpbmcgbV9hdXRoZW50aWNhdGlvblBhc3N3b3JkOyAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCBjY2NiNDhhMjkzOGY3
ZTYwZTQ0ZWU4ZjA3NjA2ZmNkMThmMTU3ODM3Li43ZGJlY2Q4ZDIxZmQ3NjI5ZjI1ZDYzMzEwZTgy
MDIxMjYxZWU3NzM3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuY3BwCkBAIC00ODEsOSArNDgxLDEwIEBAIGJvb2wgV2ViVmlld0hvc3Q6OnJ1bk1vZGFs
UHJvbXB0RGlhbG9nKFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBtZXNzYWdlCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgV2ViVmlld0hvc3Q6OnJ1bk1vZGFsQmVmb3JlVW5s
b2FkRGlhbG9nKFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJikKK2Jvb2wgV2ViVmlld0hvc3Q6
OnJ1bk1vZGFsQmVmb3JlVW5sb2FkRGlhbG9nKFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBt
ZXNzYWdlKQogewotICAgIHJldHVybiB0cnVlOyAvLyBBbGxvdyB3aW5kb3cgY2xvc3VyZS4KKyAg
ICBwcmludGYoIkNPTkZJUk0gTkFWSUdBVElPTjogJXNcbiIsIG1lc3NhZ2UudXRmOCgpLmRhdGEo
KSk7CisgICAgcmV0dXJuICFsYXlvdXRUZXN0Q29udHJvbGxlcigpLT5zaG91bGRTdGF5T25QYWdl
QWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCgpOwogfQogCiB2b2lkIFdlYlZpZXdIb3N0OjpzaG93
Q29udGV4dE1lbnUoV2ViRnJhbWUqLCBjb25zdCBXZWJDb250ZXh0TWVudURhdGEmIGNvbnRleHRN
ZW51RGF0YSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRl
Lm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0KaW5kZXggZDdlODM1
OTgyZTcwOWU5NGVkYmE2ZDNkZjA4M2MxYmUzOWI5YmYzNS4uOGI0NjIxNzJkMzBhMjFlZmFhMmY5
Yzc4MDAyNzg2ZWYxMDE0Mzg1YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L1VJRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUu
bW0KQEAgLTEwNyw3ICsxMDcsOCBAQCBEdW1wUmVuZGVyVHJlZURyYWdnaW5nSW5mbyAqZHJhZ2dp
bmdJbmZvID0gbmlsOwogewogICAgIGlmICghZG9uZSkKICAgICAgICAgcHJpbnRmKCJDT05GSVJN
IE5BVklHQVRJT046ICVzXG4iLCBbbWVzc2FnZSBVVEY4U3RyaW5nXSk7Ci0gICAgcmV0dXJuIFlF
UzsKKyAgICAKKyAgICByZXR1cm4gIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+c2hvdWxkU3RheU9u
UGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vVUlEZWxlZ2F0ZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vVUlEZWxlZ2F0ZS5jcHAKaW5kZXggZjVhNGY1ODQ2YTAyYTRjNTgwNTViYTRiYTA0ZTZm
YmNlZjA4ZjFiZC4uYWM4NTFiMmI5MDVjZTdmMDE2MTJkYmMxNTcxNmNhMTQxZWE3ZmFlOCAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJRGVsZWdhdGUuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmNwcApAQCAtNDY1LDEzICs0NjUsMTQg
QEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBVSURlbGVnYXRlOjpydW5KYXZhU2NyaXB0VGV4
dElucHV0UGFuZWxXaXRoUHJvbXB0KAogCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFVJRGVs
ZWdhdGU6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlKCAKICAgICAvKiBb
aW5dICovIElXZWJWaWV3KiAvKnNlbmRlciovLAotICAgIC8qIFtpbl0gKi8gQlNUUiAvKm1lc3Nh
Z2UqLywKKyAgICAvKiBbaW5dICovIEJTVFIgbWVzc2FnZSwKICAgICAvKiBbaW5dICovIElXZWJG
cmFtZSogLyppbml0aWF0ZWRCeUZyYW1lKi8sCiAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09M
KiByZXN1bHQpCiB7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBFX1BPSU5URVI7
Ci0gICAgKnJlc3VsdCA9IFRSVUU7CisgICAgcHJpbnRmKCJDT05GSVJNIE5BVklHQVRJT046ICVT
XG4iLCBtZXNzYWdlID8gbWVzc2FnZSA6IEwiIik7CisgICAgKnJlc3VsdCA9ICFnTGF5b3V0VGVz
dENvbnRyb2xsZXItPnNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKCk7
CiAgICAgcmV0dXJuIEVfTk9USU1QTDsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRl
c3RDb250cm9sbGVyLmlkbAppbmRleCA0MjA0NjAyY2UwMmY2MTBlOGExNWFhYWEyMDEzZmJiZDc2
ODU5ZTY1Li5mMTQ2OGQwMmNjYjFlYjcwMWYyM2JhYzM3MGE0OWRmYTllYWNhN2Q0IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91
dFRlc3RDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250cm9sbGVyLmlkbApAQCAtMTEyLDYgKzExMiw4
IEBAIG1vZHVsZSBXVFIgewogICAgICAgICB2b2lkIHNldFRleHREaXJlY3Rpb24oaW4gRE9NU3Ry
aW5nIGRpcmVjdGlvbik7CiAKICAgICAgICAgdm9pZCBzZXRXaWxsU2VuZFJlcXVlc3RSZXR1cm5z
TnVsbChpbiBib29sZWFuIGZsYWcpOworICAgICAgICAKKyAgICAgICAgdm9pZCBzZXRTaG91bGRT
dGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZChpbiBib29sZWFuIGZsYWcpOwogICAg
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggM2FhZjAyZjg4NWUwNmMyNGNjMzQ1NTNmN2Jk
MGRjZmFjOTM1OWY5Yy4uZjc3MmFmMTk3YzU0NGMwZmViNDFhMmI5MDQ2Yzk0NmY4MzViOGNlMSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAKQEAgLTIzMiw1ICsyMzIsMTIgQEAgdm9pZCBJbmplY3RlZEJ1bmRs
ZTo6ZHVtcEJhY2tGb3J3YXJkTGlzdHNGb3JBbGxQYWdlcygpCiAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBzaXplOyArK2kpCiAgICAgICAgIG1fcGFnZXNbaV0tPmR1bXBCYWNrRm9yd2FyZExp
c3QoKTsKIH0KKyAgICAKK3ZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBvc3ROZXdCZWZvcmVVbmxvYWRS
ZXR1cm5WYWx1ZShib29sIHZhbHVlKQoreworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBt
ZXNzYWdlTmFtZShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQmVmb3Jl
VW5sb2FkUmV0dXJuVmFsdWUiKSk7CisgICAgV0tSZXRhaW5QdHI8V0tCb29sZWFuUmVmPiBtZXNz
YWdlQm9keShBZG9wdFdLLCBXS0Jvb2xlYW5DcmVhdGUodmFsdWUpKTsKKyAgICBXS0J1bmRsZVBv
c3RNZXNzYWdlKG1fYnVuZGxlLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2FnZUJvZHkuZ2V0KCkp
OworfQogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAppbmRleCAzMDkwNjE0ODAxMWRl
NDNhOTJlNDUyNDRmODAzZTM0ZDczNmRjMTUyLi41MDZiZWRmOGQzMzk4MGIxMmUzMWQ1MzIyYjM5
MjY5MDM0YTg2NjdmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC03MSw2ICs3MSw4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFRvcExvYWRpbmdGcmFtZShXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKSB7IG1fdG9w
TG9hZGluZ0ZyYW1lID0gZnJhbWU7IH0KIAogICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVscygpIGNv
bnN0IHsgcmV0dXJuIG1fZHVtcFBpeGVsczsgfQorICAgIAorICAgIHZvaWQgcG9zdE5ld0JlZm9y
ZVVubG9hZFJldHVyblZhbHVlKGJvb2wpOwogCiBwcml2YXRlOgogICAgIEluamVjdGVkQnVuZGxl
KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDhmNmZhNmE3YjE4MWRjMjRjYzZh
YzI1Zjc0NGNmZDEwMTliYmQzMjkuLjI3OTBmMmVhYzg4NzYzNjQyYjBhOTUxOTAwZTY4YzVlOGJj
NjUwZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC00OTMsNSArNDkzLDEwIEBA
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFRleHREaXJlY3Rpb24oSlNTdHJpbmdSZWYg
ZGlyZWN0aW9uKQogICAgIFdLQnVuZGxlRnJhbWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdl
R2V0TWFpbkZyYW1lKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7CiAg
ICAgcmV0dXJuIFdLQnVuZGxlRnJhbWVTZXRUZXh0RGlyZWN0aW9uKG1haW5GcmFtZSwgdG9XSyhk
aXJlY3Rpb24pLmdldCgpKTsKIH0KKyAgICAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dFNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKGJvb2wgc2hvdWxkU3Rh
eU9uUGFnZSkKK3sKKyAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucG9zdE5ld0JlZm9yZVVu
bG9hZFJldHVyblZhbHVlKCFzaG91bGRTdGF5T25QYWdlKTsKK30KIAogfSAvLyBuYW1lc3BhY2Ug
V1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xh
eW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggOTkyNDExYTU3NTI2ZDU2ODIzZGZkNzRm
ZTI0ZDQwMTQxNjgyMGE3Ni4uOTFlMzQ2NjJkZTk0NWRhNzRkZGMyMGE2OGQ4NmViOTY3ZjJmYjBi
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtMTY4LDYgKzE2OCw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0VGV4dERpcmVjdGlvbihKU1N0cmluZ1JlZik7CiAKKyAgICB2b2lkIHNl
dFNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKGJvb2wpOworCiBwcml2
YXRlOgogICAgIHN0YXRpYyBjb25zdCBkb3VibGUgd2FpdFRvRHVtcFdhdGNoZG9nVGltZXJJbnRl
cnZhbDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA0
NzRmNWQyNmJlYjM5NGFlMzc0ZTc1NGY5YWE2ZDY4MDE4NDBjZGM0Li5hNmY1Y2M3MTExMjVmYTE4
ZjA3Y2M5NTk2MWY3ZWVmYzhhNjBhMjM2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcApAQCAtNjgsNiArNjgsNyBAQCBUZXN0Q29udHJvbGxlcjo6VGVzdENvbnRy
b2xsZXIoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKICAgICAsIG1fc2hvcnRUaW1lb3V0
KGRlZmF1bHRTaG9ydFRpbWVvdXQpCiAgICAgLCBtX2RpZFByaW50V2ViUHJvY2Vzc0NyYXNoZWRN
ZXNzYWdlKGZhbHNlKQogICAgICwgbV9zaG91bGRFeGl0V2hlbldlYlByb2Nlc3NDcmFzaGVzKHRy
dWUpCisgICAgLCBtX2JlZm9yZVVubG9hZFJldHVyblZhbHVlKHRydWUpCiB7CiAgICAgaW5pdGlh
bGl6ZShhcmdjLCBhcmd2KTsKICAgICBjb250cm9sbGVyID0gdGhpczsKQEAgLTEwNSw4ICsxMDYs
OSBAQCBzdGF0aWMgdm9pZCBzZXRXaW5kb3dGcmFtZU90aGVyUGFnZShXS1BhZ2VSZWYgcGFnZSwg
V0tSZWN0IGZyYW1lLCBjb25zdCB2b2lkKiBjbAogCiBzdGF0aWMgYm9vbCBydW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIFdLRnJh
bWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7Ci0gICAgcHJpbnRmKCIlc1xu
IiwgdG9TVEQobWVzc2FnZSkuY19zdHIoKSk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgVGVzdENv
bnRyb2xsZXIqIHRlc3RDb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihj
b25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CisgICAgcHJpbnRmKCJDT05GSVJNIE5BVklH
QVRJT046ICVzXG4iLCB0b1NURChtZXNzYWdlKS5jX3N0cigpKTsKKyAgICByZXR1cm4gdGVzdENv
bnRyb2xsZXItPmJlZm9yZVVubG9hZFJldHVyblZhbHVlKCk7CiB9CiAKIHN0YXRpYyB1bnNpZ25l
ZCBsb25nIGxvbmcgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwg
V0tTZWN1cml0eU9yaWdpblJlZiwgV0tTdHJpbmdSZWYsIFdLU3RyaW5nUmVmLCB1bnNpZ25lZCBs
b25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nLCB1bnNpZ25l
ZCBsb25nIGxvbmcsIGNvbnN0IHZvaWQqKQpAQCAtMzU4LDYgKzM2MCw4IEBAIHZvaWQgVGVzdENv
bnRyb2xsZXI6OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKIGJvb2wg
VGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoKQogewogICAgIG1f
c3RhdGUgPSBSZXNldHRpbmc7CisgICAgCisgICAgbV9iZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSA9
IHRydWU7CiAKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJSZXNldCIpKTsKICAgICBXS1JldGFp
blB0cjxXS011dGFibGVEaWN0aW9uYXJ5UmVmPiByZXNldE1lc3NhZ2VCb2R5ID0gYWRvcHRXSyhX
S011dGFibGVEaWN0aW9uYXJ5Q3JlYXRlKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCmluZGV4IGZmMjZmYjFmYmJlM2I4MTgxODZiZjJkMDdiZGNkZGY5Y2Q2YWQ0YzUu
LjgwZTY0OGVmZDczMmVhMTY3ZDIzMjg3NzQyNTA3ZWFhYzQ3ZTU2YTIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTU2LDYgKzU2LDkgQEAgcHVibGljOgogICAg
IGVudW0gVGltZW91dER1cmF0aW9uIHsgU2hvcnRUaW1lb3V0LCBMb25nVGltZW91dCB9OwogICAg
IHZvaWQgcnVuVW50aWwoYm9vbCYgZG9uZSwgVGltZW91dER1cmF0aW9uKTsKICAgICB2b2lkIG5v
dGlmeURvbmUoKTsKKyAgICAKKyAgICBib29sIGJlZm9yZVVubG9hZFJldHVyblZhbHVlKCkgY29u
c3QgeyByZXR1cm4gbV9iZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZTsgfQorICAgIHZvaWQgc2V0QmVm
b3JlVW5sb2FkUmV0dXJuVmFsdWUoYm9vbCB2YWx1ZSkgeyBtX2JlZm9yZVVubG9hZFJldHVyblZh
bHVlID0gdmFsdWU7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGluaXRpYWxpemUoaW50IGFyZ2Ms
IGNvbnN0IGNoYXIqIGFyZ3ZbXSk7CkBAIC0xMjEsNiArMTI0LDggQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgbV9kaWRQcmludFdlYlByb2Nlc3NDcmFzaGVkTWVzc2FnZTsKICAgICBib29sIG1fc2hv
dWxkRXhpdFdoZW5XZWJQcm9jZXNzQ3Jhc2hlczsKKyAgICAKKyAgICBib29sIG1fYmVmb3JlVW5s
b2FkUmV0dXJuVmFsdWU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggZWM5YWI5NTg2NGYzMTBlN2E3YjdhNDQx
NDVmZTgyZjdlODMzNDFhYi4uYmUyMDA0NmEyMWIwMTM1MDEyMjkxZGVjMzdlZTViZjE2MTEwMTM0
MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTIzOCw2
ICsyMzgsMTMgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUKICAgICAgICAgVGVzdENvbnRyb2xs
ZXI6OnNoYXJlZCgpLm5vdGlmeURvbmUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAK
KyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIkJlZm9y
ZVVubG9hZFJldHVyblZhbHVlIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3Nh
Z2VCb2R5KSA9PSBXS0Jvb2xlYW5HZXRUeXBlSUQoKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBi
ZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4obWVzc2Fn
ZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkuc2V0QmVmb3JlVW5sb2Fk
UmV0dXJuVmFsdWUoV0tCb29sZWFuR2V0VmFsdWUoYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUpKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103752</attachid>
            <date>2011-08-12 01:26:33 -0700</date>
            <delta_ts>2011-08-12 12:27:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66128-20110812012643.patch</filename>
            <type>text/plain</type>
            <size>25729</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI5MTQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0N2I3Y2RkMTM0ZmRkZWIzNWNlMmZl
MGVjMDk1OTY3YWQ3YzYwMmQxLi5kNDc3NzQ0MjU5YmYzM2M0Y2MzZjQ5ODI2MWI5ZjFkNDc5MWE2
MmIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDgtMTIgIEFuZHkgRXN0ZXMgIDxhZXN0
ZXNAYXBwbGUuY29tPgorCisgICAgICAgIEEgc2Vjb25kIGZvcm0gc3VibWlzc2lvbiBpcyBub3Qg
YWxsb3dlZCBpZiB0aGUgZmlyc3Qgc3VibWlzc2lvbiB3YXMKKyAgICAgICAgY2FuY2VsZWQgaW4g
YW4gb25iZWZvcmV1bmxvYWQgaGFuZGxlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY2MTI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYWZ0ZXItYmVm
b3JldW5sb2FkLWNhbmNlbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9h
ZGVyL2Zvcm0tc3VibWlzc2lvbi1hZnRlci1iZWZvcmV1bmxvYWQtY2FuY2VsLmh0bWw6IEFkZGVk
LgorCiAyMDExLTA4LTExICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFNoYXJlIGNvZGUgYmV0d2VlbiBpc1N0eWxlU3Bhbk9yU3BhbldpdGhPbmx5U3R5bGVBdHRy
aWJ1dGUsIGlzVW5zdHlsZWRTdHlsZVNwYW4sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYWZ0ZXItYmVmb3JldW5sb2FkLWNhbmNlbC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYWZ0ZXItYmVm
b3JldW5sb2FkLWNhbmNlbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNThhNDJkN2U3ZDk4MDM5
NmE5OTA5NDI1ZWJlOTUxZTRiM2ViZDM5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1hZnRlci1iZWZvcmV1bmxvYWQtY2FuY2VsLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK0NPTkZJUk0gTkFWSUdBVElPTjogCitDT05GSVJN
IE5BVklHQVRJT046IAorUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
Zm9ybS1zdWJtaXNzaW9uLWFmdGVyLWJlZm9yZXVubG9hZC1jYW5jZWwuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1hZnRlci1iZWZvcmV1bmxvYWQtY2FuY2Vs
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGMyYWQzNDZkNzYyYjI0OTE5YzFhNjZiMDU4MGIyMDY4YjMxZTVm
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlz
c2lvbi1hZnRlci1iZWZvcmV1bmxvYWQtY2FuY2VsLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPHNj
cmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNob3VsZFN0YXlPblBhZ2VB
ZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKHRydWUpOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigiYmVmb3JldW5sb2FkIiwgZnVuY3Rpb24oKSB7CisgICAgd2luZG93LnNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJI
YW5kbGluZ0JlZm9yZVVubG9hZChmYWxzZSk7CisKKyAgICAgICAgd2luZG93LnNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpLmlubmVySFRNTCA9ICJGQUlMIjsKKyAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9LCAwKTsKKworICAgICAgICBkb2N1bWVudC5mb3Jtc1swXS5zdWJt
aXQoKTsKKyAgICB9LCAwKTsKKyAgICAKKyAgICByZXR1cm4gIiI7Cit9KTsKKzwvc2NyaXB0Pgor
Cis8cD5UaGlzIHRlc3RzIHRoYXQgc3VibWl0dGluZyBhIGZvcm0gYSBzZWNvbmQgdGltZSBhZnRl
ciBjYW5jZWxpbmcgdGhlIGZpcnN0IHN1Ym1pc3Npb24gaW4gYSBvbmJlZm9yZXVubG9hZCBoYW5k
bGVyIGlzIGFsbG93ZWQuIFRvIHRlc3QgbWFudWFsbHksIGNsaWNrICdTdGF5IG9uIFBhZ2UnIHdo
ZW4gdGhlIEphdmFTY3JpcHQgYmVmb3JldW5sb2FkIGRpYWxvZyBhcHBlYXJzLiBUaGUgdGVzdCBw
YXNzZXMgaWYgdGhlIGRpYWxvZyBhcHBlYXJzIGEgc2Vjb25kIHRpbWUuPC9wPgorCis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKworPGZvcm0gYWN0aW9uPSJyZXNvdXJjZXMvcGFzcy1hbmQtbm90
aWZ5LWRvbmUuaHRtbCIgbWV0aG9kPSJQT1NUIj4KKzwvZm9ybT4KKworPHNjcmlwdD4KK2RvY3Vt
ZW50LmZvcm1zWzBdLnN1Ym1pdCgpOworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDdiNzVhNDYxMzVmYjI3ODkxMjUyNTE5OTkxYjZlZjllMWNiM2Rh
YmYuLjE2OWNkY2E0MTQzZDVmOWQxYWI2NmRhYWNkYmQ5MGRmOTA2M2RmNjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNCBAQAorMjAxMS0wOC0xMiAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5j
b20+CisKKyAgICAgICAgQSBzZWNvbmQgZm9ybSBzdWJtaXNzaW9uIGlzIG5vdCBhbGxvd2VkIGlm
IHRoZSBmaXJzdCBzdWJtaXNzaW9uIHdhcworICAgICAgICBjYW5jZWxlZCBpbiBhbiBvbmJlZm9y
ZXVubG9hZCBoYW5kbGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjYxMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0OiBmYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYWZ0ZXItYmVmb3JldW5s
b2FkLWNhbmNlbC5odG1sCisKKyAgICAgICAgSWYgYW4gb25iZWZvcmV1bmxvYWQgaGFuZGxlciBj
YW5jZWxzIGEgbmF2aWdhdGlvbiB0aGF0IHdhcyB0cmlnZ2VyZWQgYnkKKyAgICAgICAgYSBmb3Jt
IHN1Ym1pc3Npb24sIFdlYkNvcmUncyBtdWx0aXBsZSBmb3JtIHN1Ym1pc3Npb24gcHJvdGVjdGlv
bgorICAgICAgICBwcmV2ZW50cyB0aGUgZm9ybSBmcm9tIGJlaW5nIHN1Ym1pdHRlZCBhIHNlY29u
ZCB0aW1lIGV2ZW4gdGhvdWdoIG5vCisgICAgICAgIGZpcnN0IHN1Ym1pc3Npb24gYWN0dWFsbHkg
dG9vayBwbGFjZS4gRml4IHRoaXMgYnkgY2xlYXJpbmcKKyAgICAgICAgbV9zdWJtaXR0ZWRGb3Jt
VVJMIGlmIHRoZSBvbmJlZm9yZXVubG9hZCBoYW5kbGVyIGNhbmNlbHMgdGhlIGxvYWQuIFRoaXMK
KyAgICAgICAgYWxsb3dzIHRoZSBzdWJtaXNzaW9uIHRvIGJlIHJldHJpZWQuCisKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OnNob3VsZENsb3NlKTogU2V0IG1fc3VibWl0dGVkRm9ybVVSTCB0byBLVVJMKCkKKyAgICAgICAg
aWYgc2hvdWxkQ2xvc2UoKSB3aWxsIHJldHVybiBmYWxzZS4KKwogMjAxMS0wOC0xMSAgSm9obiBC
YXVtYW4gIDxqYmF1bWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWFkYmFjayBjb21wb3Np
dGVkIHdlYmdsIHJlc3VsdHMgZm9yIHByaW50aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAppbmRleCBlNWM5OGRiM2E5NTYzMTcwZjdhYjMyOTBiNzkzZTlkNzdkODk5NmQ0Li5k
ZmMyZjlhOTkwNTU3ODRkYmVhYTc3NWMwZDk2MmZkMDkxMzhkMmRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTI3MzIsNiArMjczMiw5IEBAIGJvb2wgRnJhbWVMb2Fk
ZXI6OnNob3VsZENsb3NlKCkKICAgICAgICAgICAgIHNob3VsZENsb3NlID0gdHJ1ZTsKICAgICB9
CiAKKyAgICBpZiAoIXNob3VsZENsb3NlKQorICAgICAgICAgbV9zdWJtaXR0ZWRGb3JtVVJMID0g
S1VSTCgpOworCiAgICAgcmV0dXJuIHNob3VsZENsb3NlOwogfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODRkMTA1YmNjNzUyYzhlZDY0NWZj
YzA3NmYyYTMzNzFlOTA0M2RiYS4uMDk0MDFlMDc5ZmJiZjIwYjQ3YWI4ZThkYTQzZGM1NTViYTAz
MDY5YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDcxIEBACisyMDExLTA4LTEyICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNv
bT4KKworICAgICAgICBBIHNlY29uZCBmb3JtIHN1Ym1pc3Npb24gaXMgbm90IGFsbG93ZWQgaWYg
dGhlIGZpcnN0IHN1Ym1pc3Npb24gd2FzCisgICAgICAgIGNhbmNlbGVkIGluIGFuIG9uYmVmb3Jl
dW5sb2FkIGhhbmRsZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NjEyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEltcGxlbWVudCBhIG5ldyBMYXlvdXRUZXN0Q29udHJvbGxlciBtZXRob2QgdGhhdCBh
IHRlc3QgY2FuIGNhbGwgdG8gc2V0CisgICAgICAgIHRoZSByZXR1cm4gdmFsdWUgb2YgRHVtcFJl
bmRlclRyZWUncyBiZWZvcmV1bmxvYWQgVUkgZGVsZWdhdGUuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOiBJbml0aWFsaXplCisgICAgICAgIG1fc2hv
dWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQuCisgICAgICAgIChhbGxvd1Jv
dW5kaW5nSGFja3NDYWxsYmFjayk6IEZpeCBhbiB1bnJlbGF0ZWQgYnVnIHdoZXJlIHRoZSB3cm9u
ZworICAgICAgICBhcmd1bWVudCB3YXMgYmVpbmcgdXNlZCBmb3IgJ3RoaXNPYmplY3QnLgorICAg
ICAgICAoc2V0U2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWRDYWxsYmFj
ayk6IENhbGwKKyAgICAgICAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNob3VsZFN0YXlPblBh
Z2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKCkuCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c3RhdGljRnVuY3Rpb25zKTogUmVnaXN0ZXIKKyAgICAgICAgJ3NldFNob3VsZFN0YXlP
blBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkJyBhcyBhIHN0YXRpYyBmdW5jdGlvbi4KKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiAKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyOjpzaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9y
ZVVubG9hZCk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkU3RheU9u
UGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RD
b250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6IEluaXRpYWxpemUKKyAgICAgICAgbV9z
aG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCBhbmQgYmluZAorICAgICAg
ICAnc2V0U2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQnIHRvIGl0cyBj
Kysgc2V0dGVyLgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlc2V0KTogUmVzZXQK
KyAgICAgICAgbV9zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCB0byBm
YWxzZS4KKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRTaG91bGRTdGF5T25QYWdl
QWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCk6CisgICAgICAgIFNldCBtX3Nob3VsZFN0YXlPblBh
Z2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkIHRvIHRoZSB2YWx1ZSBwYXNzZWQgaW4KKyAgICAg
ICAgZnJvbSBKYXZhU2NyaXB0LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2hv
dWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdIb3N0
OjpydW5Nb2RhbEJlZm9yZVVubG9hZERpYWxvZyk6IEFkZCB0aGUgY29ycmVjdCBsb2dnaW5nIGFu
ZAorICAgICAgICByZXR1cm4gdGhlIGludmVyc2Ugb2YKKyAgICAgICAgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKCkuCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW06CisgICAgICAgICgtW1VJRGVs
ZWdhdGUgd2ViVmlldzpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTppbml0
aWF0ZWRCeUZyYW1lOl0pOiBEaXR0by4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVUlE
ZWxlZ2F0ZS5jcHA6CisgICAgICAgIChVSURlbGVnYXRlOjpydW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWxXaXRoTWVzc2FnZSk6IERpdHRvLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsOgorICAgICAgICBE
ZWZpbmUgc2V0U2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoKS4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNw
cDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnBvc3ROZXdCZWZvcmVVbmxvYWRSZXR1
cm5WYWx1ZSk6IFBvc3QgYSBtZXNzYWdlCisgICAgICAgIHRvIHRoZSBUZXN0IENvbnRyb2xsZXIg
dGVsbGluZyBpdCB3aGF0IHZhbHVlIGl0IHNob3VsZCByZXR1cm4gaW4gaXRzCisgICAgICAgIG9u
YmVmb3JldW5sb2FkIFVJIGRlbGVnYXRlLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVm
b3JlVW5sb2FkKToKKyAgICAgICAgQ2FsbCBJbmplY3RlZEJ1bmRsZTo6cG9zdE5ld0JlZm9yZVVu
bG9hZFJldHVyblZhbHVlKCkuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6VGVzdENv
bnRyb2xsZXIpOiBJbml0aWFsaXplCisgICAgICAgIG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUg
dG8gdHJ1ZS4KKyAgICAgICAgKFdUUjo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKTogQWRk
IHRoZSBjb3JyZWN0IGxvZ2dpbmcgYW5kIHJldHVybgorICAgICAgICB0aGUgdmFsdWUgb2YgVGVz
dENvbnRyb2xsZXI6OmJlZm9yZVVubG9hZFJldHVyblZhbHVlKCkuCisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKTogUmVzZXQKKyAgICAg
ICAgbV9iZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSB0byB0cnVlLgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OmJlZm9yZVVubG9hZFJldHVyblZhbHVlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnNldEJlZm9yZVVubG9hZFJldHVyblZhbHVlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJl
Y2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKTogSGFuZGxlIHRoZQorICAgICAgICBtZXNz
YWdlIHBvc3RlZCBmcm9tIHRoZSBpbmplY3RlZCBidW5kbGUgYnkgcmV0cmlldmluZyB0aGUgbWVz
c2FnZSBib2R5CisgICAgICAgIGFzIGEgV0tCb29sZWFuIGFuZCBjYWxsaW5nIFRlc3RDb250cm9s
bGVyOjpzZXRCZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSgpLgorCiAyMDExLTA4LTExICBNYXJrIFJv
d2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV3b3JrIHNvbWUgTWFrZWZpbGUgbG9n
aWMgdG8gcmVtb3ZlIGEgZG91YmxlLW5lZ2F0aXZlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDk5MjIyMThkZTgyMTc5NDkxNjlmMDkzYTRk
MTExZTJlMzFhOTI4MjUuLmE2MGE1ZGM2OWFmYTkyNDkzNDZiMTRiZmI3ZDExNzcxYzU2NTQwNTcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAg
LTg3LDYgKzg3LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVy
KGNvbnN0IHN0ZDo6c3RyaW5nJiB0ZXN0UGF0aE9yVVJMLCBjb24KICAgICAsIG1faXNQcmludGlu
ZyhmYWxzZSkKICAgICAsIG1fZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCh0cnVlKQogICAgICwg
bV9zaG91bGRQYWludEJyb2tlbkltYWdlKHRydWUpCisgICAgLCBtX3Nob3VsZFN0YXlPblBhZ2VB
ZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKGZhbHNlKQogICAgICwgbV90ZXN0UGF0aE9yVVJMKHRl
c3RQYXRoT3JVUkwpCiAgICAgLCBtX2V4cGVjdGVkUGl4ZWxIYXNoKGV4cGVjdGVkUGl4ZWxIYXNo
KQogewpAQCAtMjEzMiw3ICsyMTMzLDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0U2VyaWFsaXpl
SFRUUExvYWRzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmUKICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVl
UmVmIGFsbG93Um91bmRpbmdIYWNrc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBKU09iamVjdFJlZiwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNv
bnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3N0YXRp
YyBKU1ZhbHVlUmVmIGFsbG93Um91bmRpbmdIYWNrc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50
Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKIHsKICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0
PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsK
IApAQCAtMjE0MCw2ICsyMTQxLDE4IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGFsbG93Um91bmRpbmdI
YWNrc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0CiAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJl
ZiBzZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZENhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxl
ciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRl
KHRoaXNPYmplY3QpKTsKKyAgICAKKyAgICBib29sIHNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRs
aW5nQmVmb3JlVW5sb2FkID0gZmFsc2U7CisgICAgaWYgKGFyZ3VtZW50Q291bnQgPT0gMSkKKyAg
ICAgICAgc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQgPSBKU1ZhbHVl
VG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSk7CisgICAgCisgICAgY29udHJvbGxlci0+
c2V0U2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQoc2hvdWxkU3RheU9u
UGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKK30KKwogLy8gU3RhdGljIFZhbHVlcwogCiBzdGF0aWMgSlNWYWx1
ZVJlZiBnZXRHbG9iYWxGbGFnQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQpAQCAtMjQxNCw2ICsyNDI3LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldFNob3VsZFBhaW50
QnJva2VuSW1hZ2UiLCBzZXRTaG91bGRQYWludEJyb2tlbkltYWdlQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0VGV4dERpcmVjdGlvbiIsIHNldFRleHREaXJlY3Rpb25DYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJhbGxvd1JvdW5kaW5nSGFja3MiLCBhbGxvd1JvdW5kaW5nSGFj
a3NDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJzZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJI
YW5kbGluZ0JlZm9yZVVubG9hZCIsIHNldFNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVm
b3JlVW5sb2FkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAwLCAwLCAwIH0KICAgICB9Owog
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAxM2Fm
YTk3MWFlNjM0OWE0MTFhOGM4ODljZDlmMDBkMzI1OTBlZDE5Li45Yjc2Mjg4MGVjYWY1ZjgwOGE5
NjdmN2E5NDMyNjkxMzIwNTY1ZGEwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmgKQEAgLTMwNyw2ICszMDcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBldmFs
dWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCh1bnNpZ25lZCB3b3JsZElELCBKU09iamVjdFJlZiBn
bG9iYWxPYmplY3QsIEpTU3RyaW5nUmVmIHNjcmlwdCk7CiAgICAgdm9pZCBhbGxvd1JvdW5kaW5n
SGFja3MoKTsKIAorICAgIGJvb2wgc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVV
bmxvYWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVm
b3JlVW5sb2FkOyB9CisgICAgdm9pZCBzZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0Jl
Zm9yZVVubG9hZChib29sIHNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2Fk
KSB7IG1fc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQgPSBzaG91bGRT
dGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZDsgfQorCiAgICAgdm9pZCBzZXRQT1NJ
WExvY2FsZShKU1N0cmluZ1JlZiBsb2NhbGUpOwogCiAgICAgdm9pZCBzZXRXZWJWaWV3RWRpdGFi
bGUoYm9vbCk7CkBAIC0zOTgsNiArNDAxLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNQcmlu
dGluZzsKICAgICBib29sIG1fZGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZDsKICAgICBib29sIG1f
c2hvdWxkUGFpbnRCcm9rZW5JbWFnZTsKKyAgICBib29sIG1fc2hvdWxkU3RheU9uUGFnZUFmdGVy
SGFuZGxpbmdCZWZvcmVVbmxvYWQ7CiAKICAgICBzdGQ6OnN0cmluZyBtX2F1dGhlbnRpY2F0aW9u
VXNlcm5hbWU7CiAgICAgc3RkOjpzdHJpbmcgbV9hdXRoZW50aWNhdGlvblBhc3N3b3JkOyAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAppbmRleCAxNzU2ZDMyOGE3YzA0YjUzNzA1MDdhMzIyNjNlN2E1ODE3N2NjMDIwLi43
ZWZhN2I2MWVjODk0ODg3NDM4YWEyMWJlOTg2N2EwOGE3MWE4OTY1IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBA
IC03Nyw2ICs3Nyw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxl
cihUZXN0U2hlbGwqIHNoZWxsKQogICAgICwgbV9kZWZlck1haW5SZXNvdXJjZURhdGFMb2FkKGZh
bHNlKQogICAgICwgbV9zaG93RGVidWdMYXllclRyZWUoZmFsc2UpCiAgICAgLCBtX3dvcmtRdWV1
ZSh0aGlzKQorICAgICwgbV9zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9h
ZChmYWxzZSkKIHsKIAogICAgIC8vIEluaXRpYWxpemUgdGhlIG1hcCB0aGF0IGFzc29jaWF0ZXMg
bWV0aG9kcyBvZiB0aGlzIGNsYXNzIHdpdGggdGhlIG5hbWVzCkBAIC0yMTksNiArMjIwLDcgQEAg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKFRlc3RTaGVsbCogc2hl
bGwpCiAgICAgYmluZE1ldGhvZCgiZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2luIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpkZWxldGVMb2NhbFN0b3JhZ2VGb3JPcmlnaW4pOwogICAgIGJpbmRN
ZXRob2QoIm9ic2VydmVTdG9yYWdlVHJhY2tlck5vdGlmaWNhdGlvbnMiLCAmTGF5b3V0VGVzdENv
bnRyb2xsZXI6Om9ic2VydmVTdG9yYWdlVHJhY2tlck5vdGlmaWNhdGlvbnMpOwogICAgIGJpbmRN
ZXRob2QoInN5bmNMb2NhbFN0b3JhZ2UiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN5bmNMb2Nh
bFN0b3JhZ2UpOworICAgIGJpbmRNZXRob2QoInNldFNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRs
aW5nQmVmb3JlVW5sb2FkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRTaG91bGRTdGF5T25Q
YWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCk7CiAgICAgCiAgICAgLy8gVGhlIGZhbGxiYWNr
IG1ldGhvZCBpcyBjYWxsZWQgd2hlbiBhbiB1bmtub3duIG1ldGhvZCBpcyBpbnZva2VkLgogICAg
IGJpbmRGYWxsYmFja01ldGhvZCgmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmZhbGxiYWNrTWV0aG9k
KTsKQEAgLTYxMSw2ICs2MTMsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZXNldCgp
CiAgICAgICAgIG1fY2xvc2VSZW1haW5pbmdXaW5kb3dzID0gdHJ1ZTsKICAgICBtX3dvcmtRdWV1
ZS5yZXNldCgpOwogICAgIG1fdGFza0xpc3QucmV2b2tlQWxsKCk7CisgICAgbV9zaG91bGRTdGF5
T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCA9IGZhbHNlOwogfQogCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpsb2NhdGlvbkNoYW5nZURvbmUoKQpAQCAtMTgwNiw2ICsxODA5LDE0
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN5bmNMb2NhbFN0b3JhZ2UoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopCiAgICAgLy8gTm90IEltcGxlbWVudGVkCiB9CiAK
K3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRs
aW5nQmVmb3JlVW5sb2FkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW50KiByZXN1bHQpCit7CisgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50
c1swXS5pc0Jvb2woKSkKKyAgICAgICAgbV9zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0Jl
Zm9yZVVubG9hZCA9IGFyZ3VtZW50c1swXS50b0Jvb2xlYW4oKTsKKworICAgIHJlc3VsdC0+c2V0
TnVsbCgpOworfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRQbHVnaW5zRW5hYmxl
ZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQog
ewogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkp
IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCmluZGV4IDZmZjY2Y2E2Y2IyMmUzZjc2NGRlODQzNzczYjk3ZGU2ODk3NDUwODAu
LjZhZWE3ZWNmMjc4ZjA0MzRhYWRjZDE5NjdkNDVlMzYzYTRlYTZjOGIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAt
Mzk0LDYgKzM5NCw4IEBAIHB1YmxpYzoKICAgICAvLyBDaGFuZ2VzIHRoZSBkaXJlY3Rpb24gb2Yg
dGhlIGZvY3VzZWQgZWxlbWVudC4KICAgICB2b2lkIHNldFRleHREaXJlY3Rpb24oY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCisgICAgdm9pZCBzZXRTaG91bGRTdGF5T25Q
YWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7CisKIHB1YmxpYzoKICAgICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZHMgYXJlIG5v
dCBleHBvc2VkIHRvIEphdmFTY3JpcHQuCiAgICAgdm9pZCBzZXRXb3JrUXVldWVGcm96ZW4oYm9v
bCBmcm96ZW4pIHsgbV93b3JrUXVldWUuc2V0RnJvemVuKGZyb3plbik7IH0KQEAgLTQ1NSw2ICs0
NTcsOCBAQCBwdWJsaWM6CiAKICAgICBUYXNrTGlzdCogdGFza0xpc3QoKSB7IHJldHVybiAmbV90
YXNrTGlzdDsgfQogCisgICAgYm9vbCBzaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9y
ZVVubG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdC
ZWZvcmVVbmxvYWQ7IH0KKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgV29ya0l0ZW07CiAg
ICAgZnJpZW5kIGNsYXNzIFdvcmtRdWV1ZTsKQEAgLTYyMyw2ICs2MjcsOCBAQCBwcml2YXRlOgog
CiAgICAgLy8gV0FWIGF1ZGlvIGRhdGEgaXMgc3RvcmVkIGhlcmUuCiAgICAgV2ViS2l0OjpXZWJB
cnJheUJ1ZmZlclZpZXcgbV9hdWRpb0RhdGE7CisKKyAgICBib29sIG1fc2hvdWxkU3RheU9uUGFn
ZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQ7CiB9OwogCiAjZW5kaWYgLy8gTGF5b3V0VGVzdENv
bnRyb2xsZXJfaApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
Y3BwCmluZGV4IGNjY2I0OGEyOTM4ZjdlNjBlNDRlZThmMDc2MDZmY2QxOGYxNTc4MzcuLjdkYmVj
ZDhkMjFmZDc2MjlmMjVkNjMzMTBlODIwMjEyNjFlZTc3MzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTQ4MSw5ICs0ODEsMTAgQEAgYm9v
bCBXZWJWaWV3SG9zdDo6cnVuTW9kYWxQcm9tcHREaWFsb2coV2ViRnJhbWUqIGZyYW1lLCBjb25z
dCBXZWJTdHJpbmcmIG1lc3NhZ2UKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBXZWJWaWV3
SG9zdDo6cnVuTW9kYWxCZWZvcmVVbmxvYWREaWFsb2coV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJp
bmcmKQorYm9vbCBXZWJWaWV3SG9zdDo6cnVuTW9kYWxCZWZvcmVVbmxvYWREaWFsb2coV2ViRnJh
bWUqLCBjb25zdCBXZWJTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgcmV0dXJuIHRydWU7IC8vIEFs
bG93IHdpbmRvdyBjbG9zdXJlLgorICAgIHByaW50ZigiQ09ORklSTSBOQVZJR0FUSU9OOiAlc1xu
IiwgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gIWxheW91dFRlc3RDb250cm9s
bGVyKCktPnNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkKCk7CiB9CiAK
IHZvaWQgV2ViVmlld0hvc3Q6OnNob3dDb250ZXh0TWVudShXZWJGcmFtZSosIGNvbnN0IFdlYkNv
bnRleHRNZW51RGF0YSYgY29udGV4dE1lbnVEYXRhKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlE
ZWxlZ2F0ZS5tbQppbmRleCBkN2U4MzU5ODJlNzA5ZTk0ZWRiYTZkM2RmMDgzYzFiZTM5YjliZjM1
Li44YjQ2MjE3MmQzMGEyMWVmYWEyZjljNzgwMDI3ODZlZjEwMTQzODViIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbQpAQCAtMTA3LDcgKzEwNyw4IEBAIER1bXBSZW5kZXJU
cmVlRHJhZ2dpbmdJbmZvICpkcmFnZ2luZ0luZm8gPSBuaWw7CiB7CiAgICAgaWYgKCFkb25lKQog
ICAgICAgICBwcmludGYoIkNPTkZJUk0gTkFWSUdBVElPTjogJXNcbiIsIFttZXNzYWdlIFVURjhT
dHJpbmddKTsKLSAgICByZXR1cm4gWUVTOworICAgIAorICAgIHJldHVybiAhZ0xheW91dFRlc3RD
b250cm9sbGVyLT5zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCgpOwog
fQogCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmNw
cCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9VSURlbGVnYXRlLmNwcAppbmRleCBmNWE0ZjU4
NDZhMDJhNGM1ODA1NWJhNGJhMDRlNmZiY2VmMDhmMWJkLi5hYzg1MWIyYjkwNWNlN2YwMTYxMmRi
YzE1NzE2Y2ExNDFlYTdmYWU4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
VUlEZWxlZ2F0ZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1VJRGVsZWdhdGUu
Y3BwCkBAIC00NjUsMTMgKzQ2NSwxNCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFVJRGVs
ZWdhdGU6OnJ1bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQoCiAKIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgVUlEZWxlZ2F0ZTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
V2l0aE1lc3NhZ2UoIAogICAgIC8qIFtpbl0gKi8gSVdlYlZpZXcqIC8qc2VuZGVyKi8sCi0gICAg
LyogW2luXSAqLyBCU1RSIC8qbWVzc2FnZSovLAorICAgIC8qIFtpbl0gKi8gQlNUUiBtZXNzYWdl
LAogICAgIC8qIFtpbl0gKi8gSVdlYkZyYW1lKiAvKmluaXRpYXRlZEJ5RnJhbWUqLywKICAgICAv
KiBbcmV0dmFsXVtvdXRdICovIEJPT0wqIHJlc3VsdCkKIHsKICAgICBpZiAoIXJlc3VsdCkKICAg
ICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKLSAgICAqcmVzdWx0ID0gVFJVRTsKKyAgICBwcmludGYo
IkNPTkZJUk0gTkFWSUdBVElPTjogJVNcbiIsIG1lc3NhZ2UgPyBtZXNzYWdlIDogTCIiKTsKKyAg
ICAqcmVzdWx0ID0gIWdMYXlvdXRUZXN0Q29udHJvbGxlci0+c2hvdWxkU3RheU9uUGFnZUFmdGVy
SGFuZGxpbmdCZWZvcmVVbmxvYWQoKTsKICAgICByZXR1cm4gRV9OT1RJTVBMOwogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xh
eW91dFRlc3RDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCmluZGV4IDQyMDQ2MDJjZTAy
ZjYxMGU4YTE1YWFhYTIwMTNmYmJkNzY4NTllNjUuLmYxNDY4ZDAyY2NiMWViNzAxZjIzYmFjMzcw
YTQ5ZGZhOWVhY2E3ZDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaWRsCkBAIC0xMTIsNiArMTEyLDggQEAgbW9kdWxlIFdUUiB7CiAgICAgICAgIHZvaWQgc2V0
VGV4dERpcmVjdGlvbihpbiBET01TdHJpbmcgZGlyZWN0aW9uKTsKIAogICAgICAgICB2b2lkIHNl
dFdpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxsKGluIGJvb2xlYW4gZmxhZyk7CisgICAgICAgIAor
ICAgICAgICB2b2lkIHNldFNob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2Fk
KGluIGJvb2xlYW4gZmxhZyk7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCAzYWFm
MDJmODg1ZTA2YzI0Y2MzNDU1M2Y3YmQwZGNmYWM5MzU5ZjljLi5mNzcyYWYxOTdjNTQ0YzBmZWI0
MWEyYjkwNDZjOTQ2ZjgzNWI4Y2UxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMjMyLDUgKzIzMiwx
MiBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpkdW1wQmFja0ZvcndhcmRMaXN0c0ZvckFsbFBhZ2Vz
KCkKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAgbV9wYWdl
c1tpXS0+ZHVtcEJhY2tGb3J3YXJkTGlzdCgpOwogfQorICAgIAordm9pZCBJbmplY3RlZEJ1bmRs
ZTo6cG9zdE5ld0JlZm9yZVVubG9hZFJldHVyblZhbHVlKGJvb2wgdmFsdWUpCit7CisgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1lc3NhZ2VOYW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJCZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZSIpKTsKKyAgICBXS1JldGFp
blB0cjxXS0Jvb2xlYW5SZWY+IG1lc3NhZ2VCb2R5KEFkb3B0V0ssIFdLQm9vbGVhbkNyZWF0ZSh2
YWx1ZSkpOworICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UobV9idW5kbGUsIG1lc3NhZ2VOYW1lLmdl
dCgpLCBtZXNzYWdlQm9keS5nZXQoKSk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5oCmluZGV4IDMwOTA2MTQ4MDExZGU0M2E5MmU0NTI0NGY4MDNlMzRkNzM2ZGMxNTIuLjUwNmJl
ZGY4ZDMzOTgwYjEyZTMxZDUzMjJiMzkyNjkwMzRhODY2N2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKQEAgLTcx
LDYgKzcxLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0VG9wTG9hZGluZ0ZyYW1lKFdLQnVuZGxl
RnJhbWVSZWYgZnJhbWUpIHsgbV90b3BMb2FkaW5nRnJhbWUgPSBmcmFtZTsgfQogCiAgICAgYm9v
bCBzaG91bGREdW1wUGl4ZWxzKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wUGl4ZWxzOyB9CisgICAg
CisgICAgdm9pZCBwb3N0TmV3QmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUoYm9vbCk7CiAKIHByaXZh
dGU6CiAgICAgSW5qZWN0ZWRCdW5kbGUoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5k
ZXggOGY2ZmE2YTdiMTgxZGMyNGNjNmFjMjVmNzQ0Y2ZkMTAxOWJiZDMyOS4uMjc5MGYyZWFjODg3
NjM2NDJiMGE5NTE5MDBlNjhjNWU4YmM2NTBlOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHAKQEAgLTQ5Myw1ICs0OTMsMTAgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VGV4
dERpcmVjdGlvbihKU1N0cmluZ1JlZiBkaXJlY3Rpb24pCiAgICAgV0tCdW5kbGVGcmFtZVJlZiBt
YWluRnJhbWUgPSBXS0J1bmRsZVBhZ2VHZXRNYWluRnJhbWUoSW5qZWN0ZWRCdW5kbGU6OnNoYXJl
ZCgpLnBhZ2UoKS0+cGFnZSgpKTsKICAgICByZXR1cm4gV0tCdW5kbGVGcmFtZVNldFRleHREaXJl
Y3Rpb24obWFpbkZyYW1lLCB0b1dLKGRpcmVjdGlvbikuZ2V0KCkpOwogfQorICAgIAordm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZv
cmVVbmxvYWQoYm9vbCBzaG91bGRTdGF5T25QYWdlKQoreworICAgIEluamVjdGVkQnVuZGxlOjpz
aGFyZWQoKS5wb3N0TmV3QmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUoIXNob3VsZFN0YXlPblBhZ2Up
OworfQogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCA5
OTI0MTFhNTc1MjZkNTY4MjNkZmQ3NGZlMjRkNDAxNDE2ODIwYTc2Li45MWUzNDY2MmRlOTQ1ZGE3
NGRkYzIwYTY4ZDg2ZWI5NjdmMmZiMGJkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0x
NjgsNiArMTY4LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRUZXh0RGlyZWN0aW9uKEpTU3Ry
aW5nUmVmKTsKIAorICAgIHZvaWQgc2V0U2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZv
cmVVbmxvYWQoYm9vbCk7CisKIHByaXZhdGU6CiAgICAgc3RhdGljIGNvbnN0IGRvdWJsZSB3YWl0
VG9EdW1wV2F0Y2hkb2dUaW1lckludGVydmFsOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCmluZGV4IDQ3NGY1ZDI2YmViMzk0YWUzNzRlNzU0ZjlhYTZkNjgwMTg0
MGNkYzQuLmE2ZjVjYzcxMTEyNWZhMThmMDdjYzk1OTYxZjdlZWZjOGE2MGEyMzYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC02OCw2ICs2OCw3IEBAIFRl
c3RDb250cm9sbGVyOjpUZXN0Q29udHJvbGxlcihpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltd
KQogICAgICwgbV9zaG9ydFRpbWVvdXQoZGVmYXVsdFNob3J0VGltZW91dCkKICAgICAsIG1fZGlk
UHJpbnRXZWJQcm9jZXNzQ3Jhc2hlZE1lc3NhZ2UoZmFsc2UpCiAgICAgLCBtX3Nob3VsZEV4aXRX
aGVuV2ViUHJvY2Vzc0NyYXNoZXModHJ1ZSkKKyAgICAsIG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFs
dWUodHJ1ZSkKIHsKICAgICBpbml0aWFsaXplKGFyZ2MsIGFyZ3YpOwogICAgIGNvbnRyb2xsZXIg
PSB0aGlzOwpAQCAtMTA1LDggKzEwNiw5IEBAIHN0YXRpYyB2b2lkIHNldFdpbmRvd0ZyYW1lT3Ro
ZXJQYWdlKFdLUGFnZVJlZiBwYWdlLCBXS1JlY3QgZnJhbWUsIGNvbnN0IHZvaWQqIGNsCiAKIHN0
YXRpYyBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChXS1BhZ2VSZWYgcGFnZSwgV0tT
dHJpbmdSZWYgbWVzc2FnZSwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
bykKIHsKLSAgICBwcmludGYoIiVzXG4iLCB0b1NURChtZXNzYWdlKS5jX3N0cigpKTsKLSAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBUZXN0Q29udHJvbGxlciogdGVzdENvbnRyb2xsZXIgPSBzdGF0aWNf
Y2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAg
ICBwcmludGYoIkNPTkZJUk0gTkFWSUdBVElPTjogJXNcbiIsIHRvU1REKG1lc3NhZ2UpLmNfc3Ry
KCkpOworICAgIHJldHVybiB0ZXN0Q29udHJvbGxlci0+YmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUo
KTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGxvbmcgbG9uZyBleGNlZWRlZERhdGFiYXNlUXVvdGEo
V0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS1N0cmluZ1JlZiwg
V0tTdHJpbmdSZWYsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nLCB1bnNp
Z25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZywgY29uc3Qgdm9pZCopCkBAIC0zNTgs
NiArMzYwLDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYywgY29u
c3QgY2hhciogYXJndltdKQogYm9vbCBUZXN0Q29udHJvbGxlcjo6cmVzZXRTdGF0ZVRvQ29uc2lz
dGVudFZhbHVlcygpCiB7CiAgICAgbV9zdGF0ZSA9IFJlc2V0dGluZzsKKyAgICAKKyAgICBtX2Jl
Zm9yZVVubG9hZFJldHVyblZhbHVlID0gdHJ1ZTsKIAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5n
UmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IlJlc2V0IikpOwogICAgIFdLUmV0YWluUHRyPFdLTXV0YWJsZURpY3Rpb25hcnlSZWY+IHJlc2V0
TWVzc2FnZUJvZHkgPSBhZG9wdFdLKFdLTXV0YWJsZURpY3Rpb25hcnlDcmVhdGUoKSk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggZmYyNmZiMWZiYmUzYjgxODE4
NmJmMmQwN2JkY2RkZjljZDZhZDRjNS4uODBlNjQ4ZWZkNzMyZWExNjdkMjMyODc3NDI1MDdlYWFj
NDdlNTZhMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtNTYs
NiArNTYsOSBAQCBwdWJsaWM6CiAgICAgZW51bSBUaW1lb3V0RHVyYXRpb24geyBTaG9ydFRpbWVv
dXQsIExvbmdUaW1lb3V0IH07CiAgICAgdm9pZCBydW5VbnRpbChib29sJiBkb25lLCBUaW1lb3V0
RHVyYXRpb24pOwogICAgIHZvaWQgbm90aWZ5RG9uZSgpOworICAgIAorICAgIGJvb2wgYmVmb3Jl
VW5sb2FkUmV0dXJuVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2JlZm9yZVVubG9hZFJldHVyblZh
bHVlOyB9CisgICAgdm9pZCBzZXRCZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZShib29sIHZhbHVlKSB7
IG1fYmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUgPSB2YWx1ZTsgfQogCiBwcml2YXRlOgogICAgIHZv
aWQgaW5pdGlhbGl6ZShpbnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKTsKQEAgLTEyMSw2ICsx
MjQsOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2RpZFByaW50V2ViUHJvY2Vzc0NyYXNoZWRN
ZXNzYWdlOwogICAgIGJvb2wgbV9zaG91bGRFeGl0V2hlbldlYlByb2Nlc3NDcmFzaGVzOworICAg
IAorICAgIGJvb2wgbV9iZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCBl
YzlhYjk1ODY0ZjMxMGU3YTdiN2E0NDE0NWZlODJmN2U4MzM0MWFiLi5iZTIwMDQ2YTIxYjAxMzUw
MTIyOTFkZWMzN2VlNWJmMTYxMTAxMzQyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcApAQCAtMjM4LDYgKzIzOCwxMyBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpk
aWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFt
ZQogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2hhcmVkKCkubm90aWZ5RG9uZSgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQorICAgIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiQmVmb3JlVW5sb2FkUmV0dXJuVmFsdWUiKSkgeworICAgICAgICBB
U1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsK
KyAgICAgICAgV0tCb29sZWFuUmVmIGJlZm9yZVVubG9hZFJldHVyblZhbHVlID0gc3RhdGljX2Nh
c3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpz
aGFyZWQoKS5zZXRCZWZvcmVVbmxvYWRSZXR1cm5WYWx1ZShXS0Jvb2xlYW5HZXRWYWx1ZShiZWZv
cmVVbmxvYWRSZXR1cm5WYWx1ZSkpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>