<?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>104188</bug_id>
          
          <creation_ts>2012-12-05 16:41:58 -0800</creation_ts>
          <short_desc>Implement OfflineAudioContext constructor</short_desc>
          <delta_ts>2013-01-09 04:05:30 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Rogers">crogers</reporter>
          <assigned_to name="Chris Rogers">crogers</assigned_to>
          <cc>abarth</cc>
    
    <cc>cdumez</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>heshiming</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>784260</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-12-05 16:41:58 -0800</bug_when>
    <thetext>Implement OfflineAudioContext constructor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784300</commentid>
    <comment_count>1</comment_count>
      <attachid>177873</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-12-05 17:09:15 -0800</bug_when>
    <thetext>Created attachment 177873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784446</commentid>
    <comment_count>2</comment_count>
      <attachid>177873</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-12-05 18:35:43 -0800</bug_when>
    <thetext>Comment on attachment 177873
Patch

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

&gt; Source/WebCore/bindings/v8/custom/V8OfflineAudioContextCustom.cpp:42
&gt; +v8::Handle&lt;v8::Value&gt; V8OfflineAudioContext::constructorCallbackCustom(const v8::Arguments&amp; args)

This looks like it can be auto generated.  You&apos;ll just need to do the bounds checking in WebCore and use an ec to throw an exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784464</commentid>
    <comment_count>3</comment_count>
      <attachid>177905</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-12-05 18:43:05 -0800</bug_when>
    <thetext>Created attachment 177905
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784506</commentid>
    <comment_count>4</comment_count>
      <attachid>177905</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-05 19:46:38 -0800</bug_when>
    <thetext>Comment on attachment 177905
Patch

Attachment 177905 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15152657</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784519</commentid>
    <comment_count>5</comment_count>
      <attachid>177905</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-05 20:18:28 -0800</bug_when>
    <thetext>Comment on attachment 177905
Patch

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

&gt; Source/WebCore/Modules/webaudio/DOMWindowWebAudio.idl:33
&gt;      [JSCustomGetter, V8EnabledAtRuntime] attribute AudioContextConstructor webkitAudioContext;
&gt; +    [JSCustomGetter, V8EnabledAtRuntime] attribute OfflineAudioContextConstructor webkitOfflineAudioContext;

Can&apos;t you remove JSCustomGetter by improving CodeGeneratorJS.pm?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784520</commentid>
    <comment_count>6</comment_count>
      <attachid>177905</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-05 20:20:30 -0800</bug_when>
    <thetext>Comment on attachment 177905
Patch

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

&gt; Source/WebCore/bindings/js/JSOfflineAudioContextCustom.cpp:75
&gt; +    if (numberOfChannels &lt;= 0 || numberOfChannels &gt; 10)
&gt; +        return throwVMError(exec, createSyntaxError(exec, &quot;Invalid number of channels&quot;));
&gt; +
&gt; +    if (numberOfFrames &lt;= 0)
&gt; +        return throwVMError(exec, createSyntaxError(exec, &quot;Invalid number of frames&quot;));
&gt; +
&gt; +    if (sampleRate &lt;= 0)
&gt; +        return throwVMError(exec, createSyntaxError(exec, &quot;Invalid sample rate&quot;));

Should these really be JavaScript errors not DOM exceptions? (Would you tell me the spec link?) If they are DOM exceptions, you can throw them in OfflineAudioContext::create(). Then you can completely remove custom code for constructors.

&gt; Source/WebCore/bindings/v8/custom/V8OfflineAudioContextCustom.cpp:65
&gt; +    int32_t numberOfChannels = toInt32(args[0], ok);
&gt; +    if (!ok || numberOfChannels &lt;= 0 || numberOfChannels &gt; 10)
&gt; +        return throwError(v8SyntaxError, &quot;Invalid number of channels&quot;, args.GetIsolate());
&gt; +
&gt; +    int32_t numberOfFrames = toInt32(args[1], ok);
&gt; +    if (!ok || numberOfFrames &lt;= 0)
&gt; +        return throwError(v8SyntaxError, &quot;Invalid number of frames&quot;, args.GetIsolate());
&gt; +
&gt; +    float sampleRate = toFloat(args[2]);
&gt; +    if (sampleRate &lt;= 0)
&gt; +        return throwError(v8SyntaxError, &quot;Invalid sample rate&quot;, args.GetIsolate());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786050</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-12-07 12:22:36 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 177873 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177873&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/v8/custom/V8OfflineAudioContextCustom.cpp:42
&gt; &gt; +v8::Handle&lt;v8::Value&gt; V8OfflineAudioContext::constructorCallbackCustom(const v8::Arguments&amp; args)
&gt; 
&gt; This looks like it can be auto generated.  You&apos;ll just need to do the bounds checking in WebCore and use an ec to throw an exception.

Adam, could you please provide some more details about *how* this can be auto-generated?  I know how to do this kind of thing for methods (such as AudioContext methods), but don&apos;t understand how to have the DOMWindow *constructor* auto-generated to have the appropriate arguments which will call into OfflineAudioContext::create(...)

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786271</commentid>
    <comment_count>8</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-07 16:16:46 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; This looks like it can be auto generated.  You&apos;ll just need to do the bounds checking in WebCore and use an ec to throw an exception.
&gt; 
&gt; Adam, could you please provide some more details about *how* this can be auto-generated?

(Adam is on vacation.)

You can auto-generate a constructor by a [Constructor] IDL atribute (See https://trac.webkit.org/wiki/WebKitIDL#Constructor and WebKit IDL files that are using [Constructor] (e.g. WebSocket.idl)).

In your case, the tricky part is that you need to check parameter values in the constructor. As I commented above, if you can raise DOM exceptions instead of JavaScript errors, you can just move the value checks into WebCore code. Then the [Constructor] IDL attribute will generate the constructor. Otherwise (if you really need to throw JavaScript errors for the invalid values), you can improve code generators so that they can auto-generate the value check code.

Would you tell me the spec please? I&apos;d like to check whether the constructor should throw DOM exceptions or JavaScript errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786305</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-12-07 16:54:39 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; &gt; This looks like it can be auto generated.  You&apos;ll just need to do the bounds checking in WebCore and use an ec to throw an exception.
&gt; &gt; 
&gt; &gt; Adam, could you please provide some more details about *how* this can be auto-generated?
&gt; 
&gt; (Adam is on vacation.)
&gt; 
&gt; You can auto-generate a constructor by a [Constructor] IDL atribute (See https://trac.webkit.org/wiki/WebKitIDL#Constructor and WebKit IDL files that are using [Constructor] (e.g. WebSocket.idl)).
&gt; 
&gt; In your case, the tricky part is that you need to check parameter values in the constructor. As I commented above, if you can raise DOM exceptions instead of JavaScript errors, you can just move the value checks into WebCore code. Then the [Constructor] IDL attribute will generate the constructor. Otherwise (if you really need to throw JavaScript errors for the invalid values), you can improve code generators so that they can auto-generate the value check code.
&gt; 
&gt; Would you tell me the spec please? I&apos;d like to check whether the constructor should throw DOM exceptions or JavaScript errors.

Thanks Kentaro, this can throw DOM exceptions so hopefully I can take advantage of the technique you recommend.  This will be going into the spec over the weekend...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787823</commentid>
    <comment_count>10</comment_count>
      <attachid>178662</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-12-10 16:12:50 -0800</bug_when>
    <thetext>Created attachment 178662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787916</commentid>
    <comment_count>11</comment_count>
      <attachid>178662</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-10 18:07:57 -0800</bug_when>
    <thetext>Comment on attachment 178662
Patch

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

Looks great! No custom code:)

&gt; Source/WebCore/Modules/webaudio/OfflineAudioContext.idl:28
&gt; +    JSGenerateToJSObject,

Is this needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787933</commentid>
    <comment_count>12</comment_count>
      <attachid>178662</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-10 18:34:20 -0800</bug_when>
    <thetext>Comment on attachment 178662
Patch

Attachment 178662 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15259233

New failing tests:
inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html
inspector-protocol/nmi-webaudio-leak-test.html
inspector-protocol/nmi-webaudio.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789053</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-12-11 17:43:50 -0800</bug_when>
    <thetext>Committed r137398: &lt;http://trac.webkit.org/changeset/137398&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789247</commentid>
    <comment_count>14</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-11 23:39:07 -0800</bug_when>
    <thetext>Rolled out the patch in r137422 because a bunch of web audio tests hit ASSERTs() in the Debug build.

crogers: would you check it?

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&amp;tests=webaudio%2Fbiquad-highpass.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789828</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-12-12 13:01:42 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789829</commentid>
    <comment_count>16</comment_count>
      <attachid>179109</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-12-12 13:01:46 -0800</bug_when>
    <thetext>Created attachment 179109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789835</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-12-12 13:04:27 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Rolled out the patch in r137422 because a bunch of web audio tests hit ASSERTs() in the Debug build.
&gt; 
&gt; crogers: would you check it?
&gt; 
&gt; http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&amp;tests=webaudio%2Fbiquad-highpass.html

Sorry about that Kentaro, it turns out that I needed the &quot;EventTarget&quot; keyword in OfflineAudioContext.idl to match AudioContext.idl

This fixes the ASSERTs in the Debug build layout tests.

New patch uploaded with &quot;EventTarget&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789900</commentid>
    <comment_count>18</comment_count>
      <attachid>179109</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-12-12 14:07:10 -0800</bug_when>
    <thetext>Comment on attachment 179109
Patch

Thanks for the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789932</commentid>
    <comment_count>19</comment_count>
      <attachid>179109</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-12 14:36:46 -0800</bug_when>
    <thetext>Comment on attachment 179109
Patch

Clearing flags on attachment: 179109

Committed r137516: &lt;http://trac.webkit.org/changeset/137516&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789933</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-12 14:36:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798240</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-12-30 10:06:29 -0800</bug_when>
    <thetext>Note that we sometimes hit the following assertion after this patch:
STDERR: ASSERTION FAILED: !m_finishedNodes.size()
STDERR: /home/buildslave-1/webkit-buildslave/efl-linux-64-debug-wk2/build/Source/WebCore/Modules/webaudio/AudioContext.cpp(198) : virtual WebCore::AudioContext::~AudioContext()
STDERR: 1   0x7f27f144c1b6 WebCore::AudioContext::~AudioContext()
STDERR: 2   0x7f27f1474430 WebCore::OfflineAudioContext::~OfflineAudioContext()
STDERR: 3   0x7f27f1474468 WebCore::OfflineAudioContext::~OfflineAudioContext()
STDERR: 4   0x7f27f144fbcc WTF::ThreadSafeRefCounted&lt;WebCore::AudioContext&gt;::deref()
STDERR: 5   0x7f27f24235a8 WebCore::JSAudioContext::releaseImpl()
STDERR: 6   0x7f27f2443370 WebCore::JSOfflineAudioContextOwner::finalize(JSC::Handle&lt;JSC::Unknown&gt;, void*)
STDERR: 7   0x7f27eb741ac9 JSC::WeakBlock::finalize(JSC::WeakImpl*)
STDERR: 8   0x7f27eb7414bf JSC::WeakBlock::sweep()
STDERR: 9   0x7f27eb7406b6 JSC::WeakSet::sweep()
STDERR: 10  0x7f27eb738965 JSC::MarkedBlock::sweep(JSC::MarkedBlock::SweepMode)
STDERR: 11  0x7f27eb73b2d3 JSC::Sweep::operator()(JSC::MarkedBlock*)
STDERR: 12  0x7f27eb73c5f5 void JSC::MarkedAllocator::forEachBlock&lt;JSC::Sweep&gt;(JSC::Sweep&amp;)
STDERR: 13  0x7f27eb73c111 JSC::Sweep::ReturnType JSC::MarkedSpace::forEachBlock&lt;JSC::Sweep&gt;(JSC::Sweep&amp;)
STDERR: 14  0x7f27eb73b93b JSC::Sweep::ReturnType JSC::MarkedSpace::forEachBlock&lt;JSC::Sweep&gt;()
STDERR: 15  0x7f27eb73a641 JSC::MarkedSpace::sweep()
STDERR: 16  0x7f27eb729b72 JSC::Heap::collect(JSC::Heap::SweepToggle)
STDERR: 17  0x7f27eb729889 JSC::Heap::collectAllGarbage()
STDERR: 18  0x7f27f233feac
STDERR: 19  0x7f27f233ffa2 WebCore::GCController::gcTimerFired(WebCore::Timer&lt;WebCore::GCController&gt;*)
STDERR: 20  0x7f27f2340232 WebCore::Timer&lt;WebCore::GCController&gt;::fired()
STDERR: 21  0x7f27f1daf1aa WebCore::ThreadTimers::sharedTimerFiredInternal()
STDERR: 22  0x7f27f1daf0cb WebCore::ThreadTimers::sharedTimerFired()
STDERR: 23  0x7f27f286f625
STDERR: 24  0x7f27ee7dd33e _ecore_timer_expired_call
STDERR: 25  0x7f27ee7dd50b _ecore_timer_expired_timers_call
STDERR: 26  0x7f27ee7da421
STDERR: 27  0x7f27ee7daab7 ecore_main_loop_begin
STDERR: 28  0x7f27f286dee7 WebCore::RunLoop::run()
STDERR: 29  0x7f27f6353a84 WebProcessMainEfl
STDERR: 30  0x400804 main
STDERR: 31  0x7f27f53a876d __libc_start_main

I filed bug 105870 to track the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798744</commentid>
    <comment_count>22</comment_count>
      <attachid>179109</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-02 11:09:33 -0800</bug_when>
    <thetext>Comment on attachment 179109
Patch

Thanks for removing the custom bindings code!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177873</attachid>
            <date>2012-12-05 17:09:15 -0800</date>
            <delta_ts>2012-12-05 18:43:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104188-20121205170640.patch</filename>
            <type>text/plain</type>
            <size>134523</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzMwNjQwMzBlNGNmOWRm
NmE0NjhjM2YyOTAxYTAzZjdhZDgyMDlmOS4uYjQwMTcyM2QxZTkxYjMzMzM1YzNhNWI2YTg2NTEx
M2VlYTI0ZGIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTEyLTA1ICBDaHJp
cyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IE9mZmxp
bmVBdWRpb0NvbnRleHQgY29uc3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNDE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSBXZWIgQXVkaW8gbGF5b3V0IHRlc3RzIGhhdmUgcmVsaWVk
IG9uIGFuIHVuZG9jdW1lbnRlZCB3YXkgKGluIHRoZSBzcGVjaWZpY2F0aW9uKSB0byByZW5kZXIK
KyAgICAgICAgYXVkaW8gZmFzdGVyIHRoYW4gcmVhbHRpbWUgdXNpbmcgYW4gT2ZmbGluZUF1ZGlv
Q29udGV4dC4gIFdlIHdhbnQgdG8gZXhwb3NlIGEgcHJvcGVyIE9mZmxpbmVBdWRpb0NvbnRleHQK
KyAgICAgICAgb2JqZWN0IGFuZCBjb25zdHJ1Y3RvciBpbnN0ZWFkIG9mIHBpZ2d5YmFja2luZyBv
ZmYgb2YgdGhlIG5vcm1hbCBBdWRpb0NvbnRleHQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLnByaToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29u
dGV4dDo6aXNTYW1wbGVSYXRlUmFuZ2VHb29kKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAoQXVkaW9Db250ZXh0KToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0RPTVdpbmRvd1dlYkF1ZGlvLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0NvbnRleHQ6Ok9mZmxpbmVBdWRpb0NvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6fk9mZmxpbmVBdWRpb0NvbnRl
eHQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoT2ZmbGluZUF1ZGlvQ29udGV4dCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmlkbDogQWRk
ZWQuCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVc2VKU0MuY21ha2U6CisgICAg
ICAgICogVXNlVjguY21ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5l
cmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OndlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHRFbmFibGVkKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU0F1ZGlvQ29udGV4dENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0F1ZGlvQ29udGV4dCk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dXZWJBdWRpb0N1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6d2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU09mZmxpbmVBdWRp
b0NvbnRleHRDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6SlNPZmZsaW5lQXVkaW9Db250ZXh0Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTT2Zm
bGluZUF1ZGlvQ29udGV4dCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9D
b250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4QXVkaW9Db250ZXh0Ojpjb25z
dHJ1Y3RvckNhbGxiYWNrQ3VzdG9tKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhP
ZmZsaW5lQXVkaW9Db250ZXh0Q3VzdG9tLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VjhPZmZsaW5lQXVkaW9Db250ZXh0Ojpjb25zdHJ1
Y3RvckNhbGxiYWNrQ3VzdG9tKToKKwogMjAxMi0xMi0wMyAgRXVnZW5lIEtseXVjaG5pa292ICA8
ZXVzdGFzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBNYWtlIG1haW4t
dGhyZWFkIG1vbml0b3JpbmcgZ28gdGhyb3VnaCBJbnNwZWN0b3JDb250cm9sbGVyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IDlkMTBkYzQzYjE2YjAwMjI2MGRlNDI1ZGVhYjM1OTI0MzRjYTBmOTcu
LjhkOGI4MDNlYzk5ZjhiMjJiMTZmNDc3NGJmMGRkNzhjNDExZmViNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0yODAsNiArMjgwLDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgTW9k
dWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVk
aW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8v
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaWRsCisgICAgTW9kdWxlcy93ZWJhdWRpby9PZmZs
aW5lQXVkaW9Db250ZXh0LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29t
cGxldGlvbkV2ZW50LmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRs
CiAgICAgTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaWRsCkBAIC05MjksNiArOTMwLDcg
QEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIE1vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vz
c29yTm9kZS5jcHAKICAgICBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNl
Tm9kZS5jcHAKICAgICBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2Rl
LmNwcAorICAgIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKICAgICBN
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5jcHAKICAgICBNb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKICAgICBNb2R1bGVz
L3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
aW5kZXggZTUzNmZkMTNhOTRhN2QwYTVlNDViNzU3OTlmYjhkY2Q2NjYyMDRhMS4uMmU1NTc1MzYy
NTc5NTcyM2ZkYWVkN2VhNmVmMmI5OWJjODc4ODcxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCkBAIC0xNDMsNiArMTQzLDcgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29y
ZSkvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db21wbGV0
aW9uRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJO
b2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2Rl
LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKaW5kZXggN2UyMjQ1ZmQ4NmM0ZWZjMjE4
ZTEyODNlMDIzMDA1ODMwYzdlNjE3ZC4uMzIzOWMyMDc4YTA1NzAxNTYzYzhjOGU3N2EzOWY3MTVh
N2I2NGIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQpAQCAtMTYxLDYgKzE2MSw3IEBA
IElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0QvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9j
ZXNzb3JOb2RlLmlkbCBcCiAgICAgJCRQV0QvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRB
dWRpb1NvdXJjZU5vZGUuaWRsIFwKICAgICAkJFBXRC9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2VOb2RlLmlkbCBcCisgICAgJCRQV0QvTW9kdWxlcy93ZWJhdWRpby9PZmZs
aW5lQXVkaW9Db250ZXh0LmlkbCBcCiAgICAgJCRQV0QvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5l
QXVkaW9Db21wbGV0aW9uRXZlbnQuaWRsIFwKICAgICAkJFBXRC9Nb2R1bGVzL3dlYmF1ZGlvL09z
Y2lsbGF0b3JOb2RlLmlkbCBcCiAgICAgJCRQV0QvTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5v
ZGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGYxN2Y4NDY5M2E1ZGIx
YWY0MjNkNGEyMmQ5ZTc5NzA5NGQwOTAyMmMuLjNmNDcxY2RiY2E5MjJjMmZhYjBiZTc0M2UwNDU0
ZTYzN2VkZWYyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNTc3LDYgKzU3
Nyw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU09FU1ZlcnRleEFycmF5T2JqZWN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNP
RVNFbGVtZW50SW5kZXhVaW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU09FU0Vs
ZW1lbnRJbmRleFVpbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU09mZmxpbmVBdWRp
b0NvbnRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT2ZmbGluZUF1ZGlvQ29u
dGV4dC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT2ZmbGluZUF1ZGlvQ29tcGxldGlv
bkV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU09mZmxpbmVBdWRpb0NvbXBs
ZXRpb25FdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT3NjaWxsYXRvck5vZGUu
Y3BwIFwKQEAgLTEyODgsNiArMTI5MCw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmlkbCBcCiAJJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5pZGwgXAog
CSQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5p
ZGwgXAorCSQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0Lmlk
bCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbXBsZXRpb25F
dmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9k
ZS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BbmFseXNlck5vZGUuaWRsIFwK
QEAgLTIwNjIsNiArMjA2NSw4IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2VOb2RlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVh
bUF1ZGlvU291cmNlTm9kZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09m
ZmxpbmVBdWRpb0NvbnRleHQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L09mZmxpbmVBdWRpb0NvbnRleHQuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5oIFwKQEAg
LTIyNDUsNiArMjI1MCw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNBdHRyQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNBdWRpb0J1ZmZlclNvdXJjZU5vZGVDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTT2ZmbGluZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQmxvYkN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ0RBVEFTZWN0aW9uQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNDU1NGb250RmFjZVJ1bGVDdXN0b20uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAppbmRleCA3MTRhYjUyMGVlMzkyZjk3
NmRiNGVmMDM0ZTNjNzMwNTA2MmM4NzBmLi5iMjAwNzkwOTMyNDkzOTY0NzM2Njk5NDE4ZGMxOWIx
MTI0N2ExZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0NvbnRleHQuY3BwCkBAIC05NSwxNyArOTUsMTMgQEAgY29uc3QgdW5zaWduZWQgTWF4Tm9kZXNU
b0RlbGV0ZVBlclF1YW50dW0gPSAxMDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAotbmFt
ZXNwYWNlIHsKLSAgICAKLWJvb2wgaXNTYW1wbGVSYXRlUmFuZ2VHb29kKGZsb2F0IHNhbXBsZVJh
dGUpCitib29sIEF1ZGlvQ29udGV4dDo6aXNTYW1wbGVSYXRlUmFuZ2VHb29kKGZsb2F0IHNhbXBs
ZVJhdGUpCiB7CiAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2UgaWYgdGhlIG1pbmltdW0g
c2FtcGxlLXJhdGUgY291bGQgYmUgbGVzcyB0aGFuIDQ0LjFLSHosCiAgICAgLy8gYnV0IHRoYXQg
d2lsbCByZXF1aXJlIHNvbWUgZml4ZXMgaW4gSFJURlBhbm5lcjo6ZmZ0U2l6ZUZvclNhbXBsZVJh
dGUoKSwgYW5kIHNvbWUgdGVzdGluZyB0aGVyZS4KICAgICByZXR1cm4gc2FtcGxlUmF0ZSA+PSA0
NDEwMCAmJiBzYW1wbGVSYXRlIDw9IDk2MDAwOwogfQogCi19Ci0KIC8vIERvbid0IGFsbG93IG1v
cmUgdGhhbiB0aGlzIG51bWJlciBvZiBzaW11bHRhbmVvdXMgQXVkaW9Db250ZXh0cyB0YWxraW5n
IHRvIGhhcmR3YXJlLgogY29uc3QgdW5zaWduZWQgTWF4SGFyZHdhcmVDb250ZXh0cyA9IDQ7CiB1
bnNpZ25lZCBBdWRpb0NvbnRleHQ6OnNfaGFyZHdhcmVDb250ZXh0Q291bnQgPSAwOwpAQCAtMTI0
LDIzICsxMjAsNiBAQCBQYXNzUmVmUHRyPEF1ZGlvQ29udGV4dD4gQXVkaW9Db250ZXh0OjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJgogICAgIHJldHVybiBhdWRpb0Nv
bnRleHQucmVsZWFzZSgpOwogfQogCi1QYXNzUmVmUHRyPEF1ZGlvQ29udGV4dD4gQXVkaW9Db250
ZXh0OjpjcmVhdGVPZmZsaW5lQ29udGV4dChEb2N1bWVudCogZG9jdW1lbnQsIHVuc2lnbmVkIG51
bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgQVNTRVJUKGRvY3VtZW50KTsKLQotICAgIC8vIEZJ
WE1FOiBvZmZsaW5lIGNvbnRleHRzIGhhdmUgbGltaXRhdGlvbnMgb24gc3VwcG9ydGVkIHNhbXBs
ZS1yYXRlcy4KLSAgICAvLyBDdXJyZW50bHkgYWxsIEF1ZGlvQ29udGV4dHMgbXVzdCBoYXZlIHRo
ZSBzYW1lIHNhbXBsZS1yYXRlLgotICAgIEhSVEZEYXRhYmFzZUxvYWRlciogbG9hZGVyID0gSFJU
RkRhdGFiYXNlTG9hZGVyOjpsb2FkZXIoKTsKLSAgICBpZiAobnVtYmVyT2ZDaGFubmVscyA+IDEw
IHx8ICFpc1NhbXBsZVJhdGVSYW5nZUdvb2Qoc2FtcGxlUmF0ZSkgfHwgKGxvYWRlciAmJiBsb2Fk
ZXItPmRhdGFiYXNlU2FtcGxlUmF0ZSgpICE9IHNhbXBsZVJhdGUpKSB7Ci0gICAgICAgIGVjID0g
U1lOVEFYX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgUmVmUHRyPEF1ZGlv
Q29udGV4dD4gYXVkaW9Db250ZXh0KGFkb3B0UmVmKG5ldyBBdWRpb0NvbnRleHQoZG9jdW1lbnQs
IG51bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKSkpOwotICAgIGF1
ZGlvQ29udGV4dC0+c3VzcGVuZElmTmVlZGVkKCk7Ci0gICAgcmV0dXJuIGF1ZGlvQ29udGV4dC5y
ZWxlYXNlKCk7Ci19Ci0KIC8vIENvbnN0cnVjdG9yIGZvciByZW5kZXJpbmcgdG8gdGhlIGF1ZGlv
IGhhcmR3YXJlLgogQXVkaW9Db250ZXh0OjpBdWRpb0NvbnRleHQoRG9jdW1lbnQqIGRvY3VtZW50
KQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50LCB0aGlzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKaW5kZXggNmRhM2MxMmE5ZjVlZDM1
MGQ0MzlmZDhmOTA1MWJlYmU0NmMxNzFmOS4uOGEwNjY2ODNiYzIxMmIwZGY4YzBhYjdiMTEyMmUz
ZWIyY2ZiYmI3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5oCkBAIC0yNTAsOSArMjUwLDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CiAK
LXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgQXVkaW9Db250ZXh0KERvY3VtZW50
Kik7CiAgICAgQXVkaW9Db250ZXh0KERvY3VtZW50KiwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVs
cywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICAKKyAgICBz
dGF0aWMgYm9vbCBpc1NhbXBsZVJhdGVSYW5nZUdvb2QoZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAg
Citwcml2YXRlOgogICAgIHZvaWQgY29uc3RydWN0Q29tbW9uKCk7CiAKICAgICB2b2lkIGxhenlJ
bml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0RPTVdpbmRvd1dlYkF1ZGlvLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
RE9NV2luZG93V2ViQXVkaW8uaWRsCmluZGV4IGRmODhmYjBmNjE3MGUzZjI4MTk3MGUxYjRjZjIw
MDQ4YTdiZDY1MTAuLjk1MjE3YTk0MDExMTU4Mjg5NjJkMDFjOGYwMGExZTg0MWI1ODIyMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRE9NV2luZG93V2ViQXVk
aW8uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRE9NV2luZG93V2Vi
QXVkaW8uaWRsCkBAIC0zMCw2ICszMCw3IEBACiBdIGludGVyZmFjZSBET01XaW5kb3dXZWJBdWRp
byB7CiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCiAgICAgW0pT
Q3VzdG9tR2V0dGVyLCBWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBBdWRpb0NvbnRleHRD
b25zdHJ1Y3RvciB3ZWJraXRBdWRpb0NvbnRleHQ7CisgICAgW0pTQ3VzdG9tR2V0dGVyLCBWOEVu
YWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBPZmZsaW5lQXVkaW9Db250ZXh0Q29uc3RydWN0b3Ig
d2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dDsKICAgICBhdHRyaWJ1dGUgUGFubmVyTm9kZUNvbnN0
cnVjdG9yIHdlYmtpdEF1ZGlvUGFubmVyTm9kZTsKICAgICBhdHRyaWJ1dGUgQXVkaW9Qcm9jZXNz
aW5nRXZlbnRDb25zdHJ1Y3RvciBBdWRpb1Byb2Nlc3NpbmdFdmVudDsKICAgICBhdHRyaWJ1dGUg
T2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50Q29uc3RydWN0b3IgT2ZmbGluZUF1ZGlvQ29tcGxl
dGlvbkV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
T2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWRmMDQ0NDUyNjk0YzhkNjVkMjc0
YmJjYjU1Y2E3OTM3OWJjYTU2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTAsMCArMSw2NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAq
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8p
CisKKyNpbmNsdWRlICJPZmZsaW5lQXVkaW9Db250ZXh0LmgiCisKKyNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCisjaW5jbHVkZSAiSFJURkRhdGFiYXNlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2Ny
aXB0Q2FsbFN0YWNrLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxPZmZs
aW5lQXVkaW9Db250ZXh0PiBPZmZsaW5lQXVkaW9Db250ZXh0OjpjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMs
IGZsb2F0IHNhbXBsZVJhdGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEFTU0VSVChkb2N1
bWVudCk7CisKKyAgICAvLyBGSVhNRTogb2ZmbGluZSBjb250ZXh0cyBoYXZlIGxpbWl0YXRpb25z
IG9uIHN1cHBvcnRlZCBzYW1wbGUtcmF0ZXMuCisgICAgLy8gQ3VycmVudGx5IGFsbCBBdWRpb0Nv
bnRleHRzIG11c3QgaGF2ZSB0aGUgc2FtZSBzYW1wbGUtcmF0ZS4KKyAgICBIUlRGRGF0YWJhc2VM
b2FkZXIqIGxvYWRlciA9IEhSVEZEYXRhYmFzZUxvYWRlcjo6bG9hZGVyKCk7CisgICAgaWYgKG51
bWJlck9mQ2hhbm5lbHMgPiAxMCB8fCAhaXNTYW1wbGVSYXRlUmFuZ2VHb29kKHNhbXBsZVJhdGUp
IHx8IChsb2FkZXIgJiYgbG9hZGVyLT5kYXRhYmFzZVNhbXBsZVJhdGUoKSAhPSBzYW1wbGVSYXRl
KSkgeworICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0K
KworICAgIFJlZlB0cjxPZmZsaW5lQXVkaW9Db250ZXh0PiBhdWRpb0NvbnRleHQoYWRvcHRSZWYo
bmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoZG9jdW1lbnQsIG51bWJlck9mQ2hhbm5lbHMsIG51bWJl
ck9mRnJhbWVzLCBzYW1wbGVSYXRlKSkpOworICAgIGF1ZGlvQ29udGV4dC0+c3VzcGVuZElmTmVl
ZGVkKCk7CisgICAgcmV0dXJuIGF1ZGlvQ29udGV4dC5yZWxlYXNlKCk7Cit9CisKK09mZmxpbmVB
dWRpb0NvbnRleHQ6Ok9mZmxpbmVBdWRpb0NvbnRleHQoRG9jdW1lbnQqIGRvY3VtZW50LCB1bnNp
Z25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBs
ZVJhdGUpCisgICAgOiBBdWRpb0NvbnRleHQoZG9jdW1lbnQsIG51bWJlck9mQ2hhbm5lbHMsIG51
bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKQoreworfQorCitPZmZsaW5lQXVkaW9Db250ZXh0Ojp+
T2ZmbGluZUF1ZGlvQ29udGV4dCgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmN2NkMjQx
YzdkZDUwOTU2NGQ0NDQyMzgxNDNiZWZiYzIxMWU2ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaApAQCAtMCww
ICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBPZmZsaW5lQXVkaW9Db250ZXh0X2gKKyNk
ZWZpbmUgT2ZmbGluZUF1ZGlvQ29udGV4dF9oCisKKyNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBPZmZsaW5lQXVkaW9Db250ZXh0IDogcHVi
bGljIEF1ZGlvQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8T2ZmbGlu
ZUF1ZGlvQ29udGV4dD4gY3JlYXRlKERvY3VtZW50KiwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVs
cywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlLCBFeGNlcHRpb25Db2Rl
Jik7CisKKyAgICB2aXJ0dWFsIH5PZmZsaW5lQXVkaW9Db250ZXh0KCk7CisKK3ByaXZhdGU6Cisg
ICAgT2ZmbGluZUF1ZGlvQ29udGV4dChEb2N1bWVudCosIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5l
bHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSk7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBPZmZsaW5lQXVkaW9Db250ZXh0X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29u
dGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Nv
bnRleHQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3MjA0NTg5YWM4NDVmOTM2OTkwOWI2OTZlNGU4ODg2ZWI3
OTE5ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L09mZmxpbmVBdWRpb0NvbnRleHQuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitb
CisgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAorICAgIEFjdGl2ZURPTU9iamVjdCwKKyAgICBD
b25zdHJ1Y3RvclBhcmFtZXRlcnM9MCwKKyAgICBDdXN0b21Db25zdHJ1Y3RvciwKKyAgICBKU0dl
bmVyYXRlVG9KU09iamVjdCwKK10gaW50ZXJmYWNlIE9mZmxpbmVBdWRpb0NvbnRleHQgOiBBdWRp
b0NvbnRleHQgeworCit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggOGFiZmM3YTMxOWY2YjI5NzE4MjEwNmZl
N2RmMGNkMjM1NDY3ZDZmOS4uN2U2NGI1MjA5YzRkMWNjNzg1YjM1N2M0MWUxODIzZDdkNjc2ZWQz
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCkBAIC0zMzg3LDYgKzMzODcsNyBAQCBlbmFibGU/KFdFQl9BVURJTykg
ewogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291
cmNlTm9kZUN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1
c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy9qcy9KU09mZmxpbmVBdWRpb0NvbnRleHRDdXN0
b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNET01XaW5kb3dXZWJBdWRpb0N1c3RvbS5j
cHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1NjcmlwdFByb2Nlc3Nvck5vZGVDdXN0b20uY3Bw
IFwKICAgICAgICAgTW9kdWxlcy93ZWJhdWRpby9Bc3luY0F1ZGlvRGVjb2Rlci5jcHAgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvVXNl
SlNDLmNtYWtlCmluZGV4IDNkNTI0ZWFmNWY1YWYzNzdkMTc2OTkyMjAwZDhhMjI4NWZmMTJjNWEu
LjVlZWJmYmM1ZDZiMGRmZjQxOWYzMWZjMWQwMTRiNWRmY2U1ZGJhY2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21h
a2UKQEAgLTI3Myw2ICsyNzMsNyBAQCBJRiAoRU5BQkxFX1dFQl9BVURJTykKICAgICBMSVNUKEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICAgICAgYmluZGluZ3MvanMvSlNBdWRpb0J1ZmZlclNv
dXJjZU5vZGVDdXN0b20uY3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3Vz
dG9tLmNwcAorICAgICAgICBiaW5kaW5ncy9qcy9KU09mZmxpbmVBdWRpb0NvbnRleHRDdXN0b20u
Y3BwCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTU2NyaXB0UHJvY2Vzc29yTm9kZUN1c3RvbS5jcHAK
ICAgICApCiBFTkRJRiAoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQppbmRleCAwMzYzM2NiOGI2YjFjOTA1ZmM1YWNk
MGJkMWJjNzczMzViZmYyZjhhLi4wOGQ4YzViNjkwNDk2MzRjZGZjZmU3ZjE3Mjk0OGVmNWFiYjg0
ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Vc2VWOC5jbWFrZQpAQCAtNzYsNiArNzYsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlckN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhBcnJheUJ1ZmZlclZpZXdDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOE9mZmxpbmVBdWRpb0NvbnRleHRDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4Q1NTUnVsZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhD
U1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOENT
U1ZhbHVlQ3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDEyOGY4N2M1YmZkMTQwYjIxOTVm
MTY4NGMxMTk1MDExOTgyNjhiMWUuLjUzMGM5NTFjMzkwODQ5M2QyZTBjNDMwNGIxYmFiZWRkMThh
OGNjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTkyNSw2ICs5MjUsNyBAQAogICAgICAgICAgICAg
J01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5pZGwnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUu
aWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbXBsZXRp
b25FdmVudC5pZGwnLAorICAgICAgICAgICAgJ01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlv
Q29udGV4dC5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5v
ZGUuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5pZGwn
LAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuaWRsJywKQEAg
LTE3NTUsNiArMTc1Niw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlTm9kZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmF1ZGlvL09m
ZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmgnLAorICAgICAgICAgICAgJ01vZHVs
ZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAnLAorICAgICAgICAgICAgJ01vZHVs
ZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oJywKICAgICAgICAgICAgICdNb2R1bGVz
L3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAnLAogICAgICAgICAgICAg
J01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwJywKQEAgLTI0MjAsNiAr
MjQyMyw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm9kZUxpc3RDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOb3RpZmljYXRpb25D
dXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOb3RpZmljYXRp
b25DZW50ZXJDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhP
ZmZsaW5lQXVkaW9Db250ZXh0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4UGVyZm9ybWFuY2VFbnRyeUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFBvcFN0YXRlRXZlbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy92OC9jdXN0b20vVjhTUUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ZWRjNDYyNDY5ODcyODJkZjg3OGQxMTA4M2E0ZGY0ZGY5N2Q5OGZhZC4uNjg4ZTdmZGIxMjc4ZWMx
ZjcxZmQzZTZiOGUzMWQ0YmY3NjA4ZjI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjQwOSw3ICs2NDA5LDEyIEBACiAJCUZE
MDZERkE1MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQwNkRGQTMx
MzRBNERFRjAwNkY1RDdEIC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgKi87IH07
CiAJCUZEMDZERkE2MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5v
ZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMDZE
RkE0MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCAqLzsg
fTsKIAkJRkQxNjYwQTUxMzc4N0M2RDAwMUZGQTdCIC8qIERlbm9ybWFsRGlzYWJsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMTY2MEE0MTM3ODdD
NkQwMDFGRkE3QiAvKiBEZW5vcm1hbERpc2FibGVyLmggKi87IH07CisJCUZEMUFEMDZEMTY3MDEw
RTEwMDBFNjY3MCAvKiBPZmZsaW5lQXVkaW9Db250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMUFEMDZBMTY3MDEwRTEwMDBFNjY3MCAvKiBP
ZmZsaW5lQXVkaW9Db250ZXh0LmNwcCAqLzsgfTsKKwkJRkQxQUQwNkUxNjcwMTBFMTAwMEU2Njcw
IC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZEMUFEMDZCMTY3MDEwRTEwMDBFNjY3MCAvKiBPZmZsaW5lQXVkaW9D
b250ZXh0LmggKi87IH07CisJCUZEMUFEMDcxMTY3MDExMkQwMDBFNjY3MCAvKiBKU09mZmxpbmVB
dWRpb0NvbnRleHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkQxQUQwNzAxNjcwMTEyRDAwMEU2NjcwIC8qIEpTT2ZmbGluZUF1ZGlvQ29u
dGV4dEN1c3RvbS5jcHAgKi87IH07CiAJCUZEMUFGMTUwMTY1NkYxNTEwMEM2RDRGNyAvKiBFeGNs
dXNpb25TaGFwZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRDFBRjE0RTE2NTZGMTIxMDBDNkQ0RjcgLyogRXhjbHVzaW9uU2hhcGVWYWx1ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUZEMjMw
MEVDMTY3MDFDRjEwMEM2OTI5MCAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQyMzAwRUExNjcwMUNGMTAw
QzY5MjkwIC8qIEpTT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgKi87IH07CisJCUZEMjMwMEVEMTY3
MDFDRjEwMEM2OTI5MCAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMjMwMEVCMTY3MDFDRjEwMEM2OTI5MCAv
KiBKU09mZmxpbmVBdWRpb0NvbnRleHQuaCAqLzsgfTsKIAkJRkQyM0ExMjUxM0Y1RkE1OTAwRjY3
MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMjNBMTIzMTNGNUZBNTkwMEY2NzAwMSAv
KiBKU01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAgKi87IH07CiAJCUZEMjNBMTI2MTNG
NUZBNTkwMEY2NzAwMSAvKiBKU01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQyM0ExMjQxM0Y1RkE1OTAw
RjY3MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmggKi87IH07CiAJCUZEMkRC
RjEyMTJCMDQ4QTMwMEVEOThDNiAvKiBBY2NlbGVyYXRlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEMkRCRjBFMTJCMDQ4QTMwMEVE
OThDNiAvKiBBY2NlbGVyYXRlLmZyYW1ld29yayAqLzsgfTsKQEAgLTY2OTYsNyArNjcwMSw2IEBA
CiAJCQlkc3RQYXRoID0gVmVyc2lvbnMvQS9Qcml2YXRlSGVhZGVyczsKIAkJCWRzdFN1YmZvbGRl
clNwZWMgPSAxOwogCQkJZmlsZXMgPSAoCi0JCQkJNTNFRjc2NkMxNjUzMTk5NDAwNENCRTQ5IC8q
IFNldHRpbmdzTWFjcm9zLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQk1REY3
RjVDMjBGMDFGOTJBMDA1MjZCNEIgLyogQ1NTUHJvcGVydHlOYW1lcy5oIGluIENvcHkgR2VuZXJh
dGVkIEhlYWRlcnMgKi8sCiAJCQkJODUzOEYwMzAwQUQ3MUNEQjAwNkE4MUQxIC8qIERPTUFic3Ry
YWN0Vmlldy5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJMUMxMUNDQkMwQUE2
MDkzNzAwREFEQjIwIC8qIERPTUF0dHIuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLApA
QCAtNzExNiw2ICs3MTIwLDcgQEAKIAkJCQlBOEQwNkIzOTBBMjY1RENEMDA1RTcyMDMgLyogSFRN
TE5hbWVzLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQkxNDAzQkEwRjA5RUIx
OEY5MDA3OTdDN0YgLyogSlNET01XaW5kb3cuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
LAogCQkJCTE0REMwRDM4MDlGRUQwNzMwMDdCMDIzNSAvKiBKU05vZGUuaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovLAorCQkJCTUzRUY3NjZDMTY1MzE5OTQwMDRDQkU0OSAvKiBTZXR0aW5n
c01hY3Jvcy5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJMDhDN0EyQzcxMERD
NzQ2MjAwMkQzNjhCIC8qIFNWR05hbWVzLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywK
IAkJCQkxQTE0MTRCNjEzQTBGMDUwMDAxOTk5NkMgLyogV2ViS2l0Rm9udEZhbWlseU5hbWVzLmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCSk7CkBAIC0xMzkyMCw3ICsxMzkyNSwx
MyBAQAogCQlGRDA2REZBMzEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRp
b25Ob2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZE
MDZERkE0MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25O
b2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZEMTY2MEE0MTM3ODdDNkQwMDFG
RkE3QiAvKiBEZW5vcm1hbERpc2FibGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERlbm9ybWFsRGlzYWJsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkQx
QUQwNkExNjcwMTBFMTAwMEU2NjcwIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZEMUFEMDZCMTY3MDEwRTEwMDBFNjY3MCAvKiBP
ZmZsaW5lQXVkaW9Db250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9m
ZmxpbmVBdWRpb0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkQxQUQw
NkMxNjcwMTBFMTAwMEU2NjcwIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IE9mZmxpbmVBdWRpb0NvbnRleHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGRDFBRDA3MDE2NzAxMTJEMDAwRTY2NzAgLyogSlNPZmZsaW5lQXVkaW9Db250
ZXh0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTT2Zm
bGluZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUZEMUFGMTRFMTY1NkYxMjEwMEM2RDRGNyAvKiBFeGNsdXNpb25TaGFwZVZhbHVlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEV4Y2x1c2lvblNoYXBlVmFsdWUuaDsgcGF0aCA9
IHN0eWxlL0V4Y2x1c2lvblNoYXBlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRkQyMzAwRUExNjcwMUNGMTAwQzY5MjkwIC8qIEpTT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBKU09mZmxpbmVBdWRpb0NvbnRl
eHQuY3BwOyBwYXRoID0gSlNPZmZsaW5lQXVkaW9Db250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRkQyMzAwRUIxNjcwMUNGMTAwQzY5MjkwIC8qIEpTT2ZmbGluZUF1ZGlv
Q29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU09mZmxpbmVBdWRp
b0NvbnRleHQuaDsgcGF0aCA9IEpTT2ZmbGluZUF1ZGlvQ29udGV4dC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGRDIzQTEyMzEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1l
bnRBdWRpb1NvdXJjZU5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGRDIzQTEyNDEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRp
b1NvdXJjZU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNNZWRpYUVs
ZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQy
REJGMEUxMkIwNDhBMzAwRUQ5OEM2IC8qIEFjY2VsZXJhdGUuZnJhbWV3b3JrICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7
IG5hbWUgPSBBY2NlbGVyYXRlLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9
OwpAQCAtMTUxOTEsMTAgKzE1MjAyLDEwIEBACiAJCQkJNTdDRjQ5NzMxNEVFMzZENzAwRUNGRjE0
IC8qIEluc2VydGlvblBvaW50LmggKi8sCiAJCQkJNDE3MjUzQTgxMzU0QkJCQzAwMzYwRjJBIC8q
IE1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCAqLywKIAkJCQk0MTcyNTNBOTEzNTRCQkJDMDAzNjBG
MkEgLyogTWVkaWFDb250cm9sRWxlbWVudHMuaCAqLywKLQkJCQk0MTU3QUY3RjEyRjFGQjA0MDBB
OEM2RjUgLyogTWVkaWFDb250cm9sc0FwcGxlLmNwcCAqLywKLQkJCQk0MTU3QUY3RTEyRjFGQjA0
MDBBOEM2RjUgLyogTWVkaWFDb250cm9sc0FwcGxlLmggKi8sCiAJCQkJMUYzQzNCRTgxMzVDQUYz
QzAwQjhDMUFDIC8qIE1lZGlhQ29udHJvbHMuY3BwICovLAogCQkJCTFGM0MzQkU5MTM1Q0FGM0Mw
MEI4QzFBQyAvKiBNZWRpYUNvbnRyb2xzLmggKi8sCisJCQkJNDE1N0FGN0YxMkYxRkIwNDAwQThD
NkY1IC8qIE1lZGlhQ29udHJvbHNBcHBsZS5jcHAgKi8sCisJCQkJNDE1N0FGN0UxMkYxRkIwNDAw
QThDNkY1IC8qIE1lZGlhQ29udHJvbHNBcHBsZS5oICovLAogCQkJCUE3OEU1MjZEMTM0NkJEMTcw
MEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuY3BwICovLAogCQkJCUE3OEU1MjZFMTM0NkJE
MTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuaCAqLywKIAkJCQlBNzE1RTY1MDEzNEJC
QkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCAqLywKQEAgLTE1NDA2LDEy
ICsxNTQxNywxMiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQky
OTE3QjU2NTE0NzM0OTk1MDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHAgKi8s
CisJCQkJOTNGNzJBRjExNjY2RURGQzAwMkEwMkJEIC8qIExheWVyUG9vbC5oICovLAorCQkJCTkz
RjcyQUYyMTY2NkVERkMwMDJBMDJCRCAvKiBMYXllclBvb2wubW0gKi8sCiAJCQkJNDk1ODc4MUYx
MkE1N0RERjAwNzIzOEFDIC8qIFBsYXRmb3JtQ0FBbmltYXRpb25NYWMubW0gKi8sCiAJCQkJNDk1
ODc4MjAxMkE1N0RERjAwNzIzOEFDIC8qIFBsYXRmb3JtQ0FMYXllck1hYy5tbSAqLywKIAkJCQkx
QUE3MTYwOTE0OUJDNERCMDAxNkVDMTkgLyogVGlsZUNhY2hlLmggKi8sCiAJCQkJMUFBNzE2MDgx
NDlCQzREQTAwMTZFQzE5IC8qIFRpbGVDYWNoZS5tbSAqLywKLQkJCQk5M0Y3MkFGMTE2NjZFREZD
MDAyQTAyQkQgLyogTGF5ZXJQb29sLmggKi8sCi0JCQkJOTNGNzJBRjIxNjY2RURGQzAwMkEwMkJE
IC8qIExheWVyUG9vbC5tbSAqLywKIAkJCQkwRjU4MEZBMTE0OTY5MzkxMDBGQjVCRDggLyogV2Vi
VGlsZUNhY2hlTGF5ZXIuaCAqLywKIAkJCQkwRjU4MEZBMjE0OTY5MzkxMDBGQjVCRDggLyogV2Vi
VGlsZUNhY2hlTGF5ZXIubW0gKi8sCiAJCQkJMUFBNzE2MjUxNDlCRkZCMjAwMTZFQzE5IC8qIFdl
YlRpbGVMYXllci5oICovLApAQCAtMTU3OTMsMTIgKzE1ODA0LDEyIEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQk1MTRDNzY0MjBDRTkyMzRFMDA3RUYzQ0QgLyogQXV0aGVudGljYXRpb25NYWMuaCAq
LywKIAkJCQk1MTRDNzY0MzBDRTkyMzRFMDA3RUYzQ0QgLyogQXV0aGVudGljYXRpb25NYWMubW0g
Ki8sCisJCQkJRTE0MjRDOEYxNjRCNDYwQjAwRjMyRDQwIC8qIENvb2tpZUphck1hYy5tbSAqLywK
IAkJCQlFMTNGMDFGMDEyNzBFMTkwMDBERkJBNzEgLyogQ29va2llU3RvcmFnZU1hYy5tbSAqLywK
IAkJCQlFMUI0Q0QyNDEwQjMyMkUyMDBCRkZEN0UgLyogQ3JlZGVudGlhbFN0b3JhZ2VNYWMubW0g
Ki8sCiAJCQkJNTE0Qzc2NDQwQ0U5MjM0RTAwN0VGM0NEIC8qIEZvcm1EYXRhU3RyZWFtTWFjLmgg
Ki8sCiAJCQkJNTE0Qzc2NDUwQ0U5MjM0RTAwN0VGM0NEIC8qIEZvcm1EYXRhU3RyZWFtTWFjLm1t
ICovLAogCQkJCTFBN0ZBNjQ3MEREQTNDQkEwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmll
ck1hYy5jcHAgKi8sCi0JCQkJRTE0MjRDOEYxNjRCNDYwQjAwRjMyRDQwIC8qIENvb2tpZUphck1h
Yy5tbSAqLywKIAkJCQk1MTRDNzY0NjBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VFcnJvck1h
Yy5tbSAqLywKIAkJCQk1MTRDNzY0NzBDRTkyMzRFMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVN
YWMubW0gKi8sCiAJCQkJNTE0Qzc2NDkwQ0U5MjM0RTAwN0VGM0NEIC8qIFJlc291cmNlUmVxdWVz
dE1hYy5tbSAqLywKQEAgLTE3NjUyLDEzICsxNzY2MywxMyBAQAogCQkJCUE4Q0ZGNzk4MEExNTY5
NzgwMDBBNDIzNCAvKiBIVE1MRm9udEVsZW1lbnQuY3BwICovLAogCQkJCUE4Q0ZGNzlDMEExNTY5
NzgwMDBBNDIzNCAvKiBIVE1MRm9udEVsZW1lbnQuaCAqLywKIAkJCQkxQUUyQTlGNTBBMUNEQTU3
MDBCNDJCMjUgLyogSFRNTEZvbnRFbGVtZW50LmlkbCAqLywKLQkJCQlBOERGM0ZDNzA5N0ZBMEZC
MDA1Mjk4MUIgLyogSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uY3BwICovLAotCQkJCUE4REYz
RkM2MDk3RkEwRkIwMDUyOTgxQiAvKiBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oICovLAot
CQkJCTlCMUFCMDc5MTY0OEM2OUQwMDUxRjNGMiAvKiBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlv
bi5pZGwgKi8sCiAJCQkJQTgxMzY5QjMwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQuY3BwICovLAogCQkJCUE4MTM2OUIyMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmggKi8sCiAJCQkJRTE0RjFDNDIxNEI1REFDNjAwRUE5MDA5IC8qIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUuY3BwICovLAogCQkJCUUxNEYxQzQzMTRCNURB
QzYwMEVBOTAwOSAvKiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmggKi8sCisJCQkJ
QThERjNGQzcwOTdGQTBGQjAwNTI5ODFCIC8qIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNw
cCAqLywKKwkJCQlBOERGM0ZDNjA5N0ZBMEZCMDA1Mjk4MUIgLyogSFRNTEZvcm1Db250cm9sc0Nv
bGxlY3Rpb24uaCAqLywKKwkJCQk5QjFBQjA3OTE2NDhDNjlEMDA1MUYzRjIgLyogSFRNTEZvcm1D
b250cm9sc0NvbGxlY3Rpb24uaWRsICovLAogCQkJCUE4MTM2OUI1MDk3Mzc0RjUwMEQ3NDQ2MyAv
KiBIVE1MRm9ybUVsZW1lbnQuY3BwICovLAogCQkJCUE4MTM2OUI0MDk3Mzc0RjUwMEQ3NDQ2MyAv
KiBIVE1MRm9ybUVsZW1lbnQuaCAqLywKIAkJCQlBOEQwNjRFRjBBMjNCRkVBMDA1RTcyMDMgLyog
SFRNTEZvcm1FbGVtZW50LmlkbCAqLywKQEAgLTE3OTc3LDggKzE3OTg4LDggQEAKIAkJCQk5NzEy
QTU1NzE1MDA0RURBMDA0OEFGMTAgLyogSURCQW55LmNwcCAqLywKIAkJCQk5NzEyQTU1ODE1MDA0
RURBMDA0OEFGMTAgLyogSURCQW55LmggKi8sCiAJCQkJOTcxMkE1NTkxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQkFueS5pZGwgKi8sCi0JCQkJOTcxMkE1NUExNTAwNEVEQTAwNDhBRjEwIC8qIElEQkJh
Y2tpbmdTdG9yZS5oICovLAogCQkJCTk3MTJBNThDMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJCYWNr
aW5nU3RvcmUuY3BwICovLAorCQkJCTk3MTJBNTVBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJCYWNr
aW5nU3RvcmUuaCAqLywKIAkJCQk5NzEyQTU1QjE1MDA0RURBMDA0OEFGMTAgLyogSURCQ2FsbGJh
Y2tzLmggKi8sCiAJCQkJOTcxMkE1NUMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkN1cnNvci5jcHAg
Ki8sCiAJCQkJOTcxMkE1NUQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkN1cnNvci5oICovLApAQCAt
MTgzNzYsMTAgKzE4Mzg3LDYgQEAKIAkJQTc1RThCN0YwRTFERTJCMDAwN0YyNDgxIC8qIGZpbHRl
cnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTUwOTMz
MzREMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmNwcCAqLywK
LQkJCQk1MDkzMzM0RTE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlz
dC5oICovLAotCQkJCTUwRDMyODU1MTYzQjMxM0YwMDE2MTExRSAvKiBWYWxpZGF0ZWRDdXN0b21G
aWx0ZXJPcGVyYXRpb24uY3BwICovLAotCQkJCTUwRDMyODU2MTYzQjMxM0YwMDE2MTExRSAvKiBW
YWxpZGF0ZWRDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCAqLywKIAkJCQkxNUIzRkMxNzE1RkIyMTc4
MDBBODFCQ0IgLyogQ3VzdG9tRmlsdGVyQXJyYXlQYXJhbWV0ZXIuaCAqLywKIAkJCQk1MEQ0MDYw
RjE0N0Q0OURFMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9ncmFtLmNwcCAqLywK
IAkJCQk1MEQ0MDYxMDE0N0Q0OURFMDBEMzBCQjUgLyogQ3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9n
cmFtLmggKi8sCkBAIC0xODM5NCw2ICsxODQwMSw4IEBACiAJCQkJNTBDQzBBMzgxNEM2RjVCMTAw
MTdBQjUxIC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5jcHAgKi8sCiAJCQkJNTBBQ0UyQ0ExNEI1
RDc5MzAwNDQ2NjY2IC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oICovLAogCQkJCTUwOUNDOUZB
MTRDMDY5RUQwMEJCRUNCRCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXIuaCAqLywKKwkJCQk1MDkz
MzM0RDE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlzdC5jcHAgKi8s
CisJCQkJNTA5MzMzNEUxNjNCMEU0MzAwMDk5QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxp
c3QuaCAqLywKIAkJCQk1MDNEMENBNzE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJv
Z3JhbS5jcHAgKi8sCiAJCQkJNTAzRDBDQTgxNEI1QjA4NzAwRjMyRjU3IC8qIEN1c3RvbUZpbHRl
clByb2dyYW0uaCAqLywKIAkJCQk1MDNEMENBOTE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmls
dGVyUHJvZ3JhbUNsaWVudC5oICovLApAQCAtMTg0NTksNiArMTg0NjgsOCBAQAogCQkJCTg0QTgx
RjQwMEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmggKi8sCiAJCQkJQTFFMTE1NDcx
MzAxNUM1RDAwNTRBQzhDIC8qIFNwb3RMaWdodFNvdXJjZS5jcHAgKi8sCiAJCQkJODQ3MzBENzYx
MjQ4RjBCMzAwRDNBOUM5IC8qIFNwb3RMaWdodFNvdXJjZS5oICovLAorCQkJCTUwRDMyODU1MTYz
QjMxM0YwMDE2MTExRSAvKiBWYWxpZGF0ZWRDdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwICovLAor
CQkJCTUwRDMyODU2MTYzQjMxM0YwMDE2MTExRSAvKiBWYWxpZGF0ZWRDdXN0b21GaWx0ZXJPcGVy
YXRpb24uaCAqLywKIAkJCSk7CiAJCQluYW1lID0gZmlsdGVyczsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0xOTQyNyw5ICsxOTQzOCw5IEBACiAJCUIxQUQ0RTc3MTNBMTJBNzIwMDg0
NkIyNyAvKiB0cmFjayAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
Ci0JCQkJMDcxMUJGOTAxNjQzMEM5MDAwNDE5RTM2IC8qIEluYmFuZFRleHRUcmFja1ByaXZhdGUu
aCAqLywKIAkJCQkwNzExQkY4RDE2NDJEOUQxMDA0MTlFMzYgLyogSW5iYW5kVGV4dFRyYWNrLmNw
cCAqLywKIAkJCQkwNzExQkY4QzE2NDJEODExMDA0MTlFMzYgLyogSW5iYW5kVGV4dFRyYWNrLmgg
Ki8sCisJCQkJMDcxMUJGOTAxNjQzMEM5MDAwNDE5RTM2IC8qIEluYmFuZFRleHRUcmFja1ByaXZh
dGUuaCAqLywKIAkJCQk5NzU5RTkzNDE0RUYxQ0Y4MDAyNkEyREQgLyogTG9hZGFibGVUZXh0VHJh
Y2suY3BwICovLAogCQkJCTk3NTlFOTQ4MTRFRjFENDkwMDI2QTJERCAvKiBMb2FkYWJsZVRleHRU
cmFjay5oICovLAogCQkJCTk3NTlFOTM1MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2suY3Bw
ICovLApAQCAtMjAwNjQsMTEgKzIwMDc1LDExIEBACiAJCUIyQTAxNTkxMEFGNkNENTMwMDZCQ0Uw
RSAvKiBncmFwaGljcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
Ci0JCQkJOTMzMkFCM0IxNjUxNUQ3NzAwRDgyN0VDIC8qIGNwdSAqLywKIAkJCQkwNzZGMEQwODEy
QjgxOTI3MDBDMjZBQTQgLyogYXZmb3VuZGF0aW9uICovLAogCQkJCTQ5OUIzRUMwMTI4Q0NDMTgw
MEU3MjZDMiAvKiBjYSAqLywKIAkJCQlCMjc1MzUyOTBCMDUzODE0MDAyQ0U2NEYgLyogY2cgKi8s
CiAJCQkJQjUzMjBENjgxMjJBMjRFOTAwMkQxNDQwIC8qIGNvY29hICovLAorCQkJCTkzMzJBQjNC
MTY1MTVENzcwMEQ4MjdFQyAvKiBjcHUgKi8sCiAJCQkJQTc1RThCN0YwRTFERTJCMDAwN0YyNDgx
IC8qIGZpbHRlcnMgKi8sCiAJCQkJNDk4NzcwQzExMjQyQzUwRDAwMjIyNkJBIC8qIGdwdSAqLywK
IAkJCQlCMjc1MzU0OTBCMDUzODE0MDAyQ0U2NEYgLyogbWFjICovLApAQCAtMjAxMjMsMTIgKzIw
MTM0LDYgQEAKIAkJCQkzNzIwMjE5ODEwNjIxM0M2MDBGMjVDNEIgLyogRm9udFNtb290aGluZ01v
ZGUuaCAqLywKIAkJCQkzNzg0QzM0QTBFMTFBQTM0MDA3RDhENDggLyogRm9udFRyYWl0c01hc2su
aCAqLywKIAkJCQlCQ0U0NDEzNTEyRjc0OTBCMDA5Qjg0QjggLyogRm9udFdpZHRoVmFyaWFudC5o
ICovLAotCQkJCTE0MURDMDQ5MTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRCb3hFeHRlbnQuY3Bw
ICovLAotCQkJCTE0MURDMDRBMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRCb3hFeHRlbnQuaCAq
LywKLQkJCQkxNDFEQzA0QjE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UG9pbnQuaCAqLywKLQkJ
CQkxNDFEQzA0QzE2NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0UmVjdC5jcHAgKi8sCi0JCQkJMTQx
REMwNEQxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFJlY3QuaCAqLywKLQkJCQkxNDFEQzA0RTE2
NDgzNEI5MDAzNzFFNUEgLyogTGF5b3V0U2l6ZS5oICovLAogCQkJCTRGQjM5MEFDMTVFRjYxRjMw
MDdBRDUxRiAvKiBHZW5lcmF0ZWRJbWFnZS5jcHAgKi8sCiAJCQkJQkMyM0YwREEwREFGRjRBNDAw
OUZEQzkxIC8qIEdlbmVyYXRlZEltYWdlLmggKi8sCiAJCQkJQkNFMDRDODkwREFGRjdBMDAwN0Ew
RjQxIC8qIEdlbmVyYXRvci5oICovLApAQCAtMjAxNzQsNiArMjAxNzksMTIgQEAKIAkJCQlCMjc1
MzU0NzBCMDUzODE0MDAyQ0U2NEYgLyogSW50U2l6ZS5oICovLAogCQkJCUIyNzUzNTQ4MEIwNTM4
MTQwMDJDRTY0RiAvKiBJbnRTaXplSGFzaC5oICovLAogCQkJCTY1Q0M2QkVEMTYwMTRFQzAwMDBF
RDI3RCAvKiBMYXRpbjFUZXh0SXRlcmF0b3IuaCAqLywKKwkJCQkxNDFEQzA0OTE2NDgzNEI5MDAz
NzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmNwcCAqLywKKwkJCQkxNDFEQzA0QTE2NDgzNEI5MDAz
NzFFNUEgLyogTGF5b3V0Qm94RXh0ZW50LmggKi8sCisJCQkJMTQxREMwNEIxNjQ4MzRCOTAwMzcx
RTVBIC8qIExheW91dFBvaW50LmggKi8sCisJCQkJMTQxREMwNEMxNjQ4MzRCOTAwMzcxRTVBIC8q
IExheW91dFJlY3QuY3BwICovLAorCQkJCTE0MURDMDREMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlv
dXRSZWN0LmggKi8sCisJCQkJMTQxREMwNEUxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dFNpemUu
aCAqLywKIAkJCQlFNEI0MUUwQzBDQkY5MEJEMDBBRjJFQ0UgLyogTWVkaWFQbGF5ZXIuY3BwICov
LAogCQkJCUU0QjQxRTBEMENCRjkwQkQwMEFGMkVDRSAvKiBNZWRpYVBsYXllci5oICovLAogCQkJ
CTA3OUY1RTRCMEYzQkVCRUEwMDVFMDc4MiAvKiBNZWRpYVBsYXllclByaXZhdGUuaCAqLywKQEAg
LTIwMjIwLDEwICsyMDIzMSwxMCBAQAogCQlCMkIyNjQ1OTBEMDBBNzdFMDAwQUNDMUQgLyogY2Yg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTFBQTIxMjRG
MTYzRjBEQTgwMDAwRTYzRiAvKiBBdG9taWNTdHJpbmdDRi5jcHAgKi8sCiAJCQkJMzcxQTY3Q0Ex
MUM2QzdEQjAwMDQ3QjhCIC8qIEh5cGhlbmF0aW9uQ0YuY3BwICovLAogCQkJCUIyQjI2NDVBMEQw
MEE3N0UwMDBBQ0MxRCAvKiBTdHJpbmdDRi5jcHAgKi8sCiAJCQkJQjJCMjY0NUIwRDAwQTc3RTAw
MEFDQzFEIC8qIFN0cmluZ0ltcGxDRi5jcHAgKi8sCi0JCQkJMUFBMjEyNEYxNjNGMERBODAwMDBF
NjNGIC8qIEF0b21pY1N0cmluZ0NGLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gY2Y7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjA2MzksNiArMjA2NTAsNyBAQAogCQkJCTFBNzUw
REQzMEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvckN1c3RvbS5jcHAgKi8sCiAJCQkJ
QkNEOUMyNjEwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9kZUxpc3RDdXN0b20uY3BwICovLAogCQkJ
CTMxRkU2RTZDMTUwMUEzQkYwMDA0RUJDNCAvKiBKU05vdGlmaWNhdGlvbkN1c3RvbS5jcHAgKi8s
CisJCQkJRkQxQUQwNzAxNjcwMTEyRDAwMEU2NjcwIC8qIEpTT2ZmbGluZUF1ZGlvQ29udGV4dEN1
c3RvbS5jcHAgKi8sCiAJCQkJQTg1RjIyMDgxNDMwMzc3RDAwN0NDODg0IC8qIEpTUG9wU3RhdGVF
dmVudEN1c3RvbS5jcHAgKi8sCiAJCQkJRTFBRDEyRDUxMjk1RDBCRDAwQUNBOTg5IC8qIEpTUHJv
Y2Vzc2luZ0luc3RydWN0aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQk0OTk4QUVEMzEzRkM0MTdGMDA5
MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFja0N1c3RvbS5jcHAgKi8sCkBA
IC0yMDY5OSw2ICsyMDcxMSw3IEBACiAJCQkJQkM1RUI2OUMwRTgxREFFQjAwQjI1OTY1IC8qIEZp
bGxMYXllci5jcHAgKi8sCiAJCQkJQkM1RUI2OUQwRTgxREFFQjAwQjI1OTY1IC8qIEZpbGxMYXll
ci5oICovLAogCQkJCUExMjcwNUMyMTY1NkJENjUwMEMyRTI3QyAvKiBHcmlkUG9zaXRpb24uaCAq
LywKKwkJCQlBMTJBMTA0RTE2NjQ0NERDMDA4RkEzMTEgLyogR3JpZFRyYWNrU2l6ZS5oICovLAog
CQkJCUJDNUVCQTBFMEU4MjNFNDcwMEIyNTk2NSAvKiBLZXlmcmFtZUxpc3QuY3BwICovLAogCQkJ
CUJDNUVCQTBGMEU4MjNFNDcwMEIyNTk2NSAvKiBLZXlmcmFtZUxpc3QuaCAqLywKIAkJCQlBQjMx
QzkxRDEwQUUxQjhFMDAwQzdCOTIgLyogTGluZUNsYW1wVmFsdWUuaCAqLywKQEAgLTIwNzYwLDcg
KzIwNzczLDYgQEAKIAkJCQlCQzIyNzQ3NTBFODM2NkUyMDBFN0Y5NzUgLyogU1ZHUmVuZGVyU3R5
bGUuaCAqLywKIAkJCQlCQzIyNzQ3NjBFODM2NkUyMDBFN0Y5NzUgLyogU1ZHUmVuZGVyU3R5bGVE
ZWZzLmNwcCAqLywKIAkJCQlCQzIyNzQ3NzBFODM2NkUyMDBFN0Y5NzUgLyogU1ZHUmVuZGVyU3R5
bGVEZWZzLmggKi8sCi0JCQkJQTEyQTEwNEUxNjY0NDREQzAwOEZBMzExIC8qIEdyaWRUcmFja1Np
emUuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gc3R5bGU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMjA4MzUsMTEgKzIwODQ3LDExIEBACiAJCQkJN0VFNjg0NzMxMkQyNkU1NTAwRTc5
NDE1IC8qIGNmICovLAogCQkJCTUxMjZFNkI2MEEyRTNBRUYwMDVDMjlGQSAvKiBpY29uICovLAog
CQkJCTkzQTFFQUEyMEE1NjM0RDgwMDY5NjBBMCAvKiBtYWMgKi8sCi0JCQkJRTFDNDE2MTYwRjY1
NjMxODAwOTJEMkZCIC8qIENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgKi8sCiAJCQkJNEZD
ODUzNDkxNjQ0MjcxQjAwRDFDMjc1IC8qIENhY2hlZE1ldGFkYXRhLmNwcCAqLywKIAkJCQk0RkM4
NTM0QTE2NDQyNzFCMDBEMUMyNzUgLyogQ2FjaGVkTWV0YWRhdGEuaCAqLywKIAkJCQlFMTQyNEM5
MTE2NEI1MkM4MDBGMzJENDAgLyogQ29va2llSmFyLmNwcCAqLywKIAkJCQlFMTQyNEM5MjE2NEI1
MkM4MDBGMzJENDAgLyogQ29va2llSmFyLmggKi8sCisJCQkJRTFDNDE2MTYwRjY1NjMxODAwOTJE
MkZCIC8qIENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgKi8sCiAJCQkJRTFDNDE2MTEwRjY1
NjJGRDAwOTJEMkZCIC8qIENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oICovLAogCQkJCUUxQzQx
NUREMEY2NTVEN0MwMDkyRDJGQiAvKiBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNw
cCAqLywKIAkJCQlFMUM0MTVEOTBGNjU1RDZGMDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5QcmVmbGln
aHRSZXN1bHRDYWNoZS5oICovLApAQCAtMjA4NzYsOCArMjA4ODgsOCBAQAogCQkJCTk4Q0U0MzI1
MTI5RTAwQkQwMDU4MjFEQyAvKiBMaW5rTG9hZGVyLmNwcCAqLywKIAkJCQk5OENFNDMyOTEyOUUw
MEU1MDA1ODIxREMgLyogTGlua0xvYWRlci5oICovLAogCQkJCTk4NDI2NEVGMTJENTI4MEEwMDBE
ODhBNCAvKiBMaW5rTG9hZGVyQ2xpZW50LmggKi8sCi0JCQkJNTFFNjgyMEYxNjM4NzMwMjAwM0JC
RjNDIC8qIExvYWRlclN0cmF0ZWd5LmggKi8sCiAJCQkJNTFBQkY2NEMxNjM5MkUyODAwMTMyQTdB
IC8qIExvYWRlclN0cmF0ZWd5LmNwcCAqLywKKwkJCQk1MUU2ODIwRjE2Mzg3MzAyMDAzQkJGM0Mg
LyogTG9hZGVyU3RyYXRlZ3kuaCAqLywKIAkJCQk5M0UyMjdEQzBBRjU4OUFEMDBENDgzMjQgLyog
TWFpblJlc291cmNlTG9hZGVyLmNwcCAqLywKIAkJCQk2NTZEMzcyOTBBREJBNURFMDBBNDU1NEQg
LyogTWFpblJlc291cmNlTG9hZGVyLmggKi8sCiAJCQkJNTJGMTA4NjIxNjJCNkQ4MjAwOUFDODFF
IC8qIE1peGVkQ29udGVudENoZWNrZXIuY3BwICovLApAQCAtMjEwMzEsNyArMjEwNDMsNiBAQAog
CQkJCUM1N0ZFREUwMTIxMkVFOUMwMDk3QkU2NSAvKiBGaWxlU3lzdGVtLmNwcCAqLywKIAkJCQk1
MTRCM0Y3MjBDNzIyMDQ3MDAwNTMwREYgLyogRmlsZVN5c3RlbS5oICovLAogCQkJCUJDMDczQkE5
MEMzOTlCMUYwMDBGNTk3OSAvKiBGbG9hdENvbnZlcnNpb24uaCAqLywKLQkJCQkxNDFEQzA0NzE2
NDgzNDhGMDAzNzFFNUEgLyogTGF5b3V0VW5pdC5oICovLAogCQkJCUE4NzQ4QkRGMTJDQkYyREMw
MDFGQkE0MSAvKiBIYXNoVG9vbHMuaCAqLywKIAkJCQlENkZEQUVGMjE0OUMwNjE5MDAzN0IxRTEg
LyogSGlzdG9ncmFtU3VwcG9ydC5jcHAgKi8sCiAJCQkJRDYzMEUyQUIxNDlCRjM0NDAwNUIyRjkz
IC8qIEhpc3RvZ3JhbVN1cHBvcnQuaCAqLywKQEAgLTIxMDQ3LDYgKzIxMDU4LDcgQEAKIAkJCQk4
NUVDOUFGOTBBNzFBMkM2MDBFRUVBRUQgLyogTGFuZ3VhZ2UuaCAqLywKIAkJCQlENkZEQUVGMjE0
OUMwNjE5MDAzN0IxRTUgLyogTGF5b3V0VGVzdFN1cHBvcnQuY3BwICovLAogCQkJCUQ2MzBFMkFC
MTQ5QkYzNDQwMDVCMkY5NyAvKiBMYXlvdXRUZXN0U3VwcG9ydC5oICovLAorCQkJCTE0MURDMDQ3
MTY0ODM0OEYwMDM3MUU1QSAvKiBMYXlvdXRVbml0LmggKi8sCiAJCQkJQkNFNjVCRTgwRUFDREYx
NjAwN0U0NTMzIC8qIExlbmd0aC5jcHAgKi8sCiAJCQkJQkNFNjVCRTkwRUFDREYxNjAwN0U0NTMz
IC8qIExlbmd0aC5oICovLAogCQkJCTE0NkNDMTEzMTU2OTg4QkQwMDEwOUUzNyAvKiBMZW5ndGhC
b3guY3BwICovLApAQCAtMjE5MTgsNiArMjE5MzAsOCBAQAogCQkJCTE0OTQ3RkZDMTJGODBDRDIw
MEEwRjYzMSAvKiBEb2N1bWVudE9yZGVyZWRNYXAuaCAqLywKIAkJCQlBOEMyMjgwRDExRDRBNTk3
MDBENUE3RDMgLyogRG9jdW1lbnRQYXJzZXIuY3BwICovLAogCQkJCUJDQ0ZCQUU3MEI1MTUyRUQw
MDAxRjFENyAvKiBEb2N1bWVudFBhcnNlci5oICovLAorCQkJCUFENkU3MUFBMTY2ODg5OUQwMDMy
MEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3BwICovLAorCQkJCUFENkU3MUFCMTY2
ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaCAqLywKIAkJCQlFNDdF
Mjc2NzE2MDM2RURDMDBFRTJBRkIgLyogRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAg
Ki8sCiAJCQkJRTQ3RTI3NjQxNjAzNkVEMjAwRUUyQUZCIC8qIERvY3VtZW50U3R5bGVTaGVldENv
bGxlY3Rpb24uaCAqLywKIAkJCQk4NkQ5ODJGNjEyNUMxNTQwMDBBRDlFM0QgLyogRG9jdW1lbnRU
aW1pbmcuaCAqLywKQEAgLTIyMTk4LDggKzIyMjEyLDYgQEAKIAkJCQk5M0VFQzFGNzA5QzI4Nzc3
MDBDNTE1RDEgLyogV2hlZWxFdmVudC5pZGwgKi8sCiAJCQkJNDEyM0U1NjgxMjdCMzA0MTAwMEZF
RUE3IC8qIFdpbmRvd0V2ZW50Q29udGV4dC5jcHAgKi8sCiAJCQkJNDEyM0U1NjcxMjdCMzA0MTAw
MEZFRUE3IC8qIFdpbmRvd0V2ZW50Q29udGV4dC5oICovLAotCQkJCUFENkU3MUFBMTY2ODg5OUQw
MDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3BwICovLAotCQkJCUFENkU3MUFC
MTY2ODg5OUQwMDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaCAqLywKIAkJCSk7
CiAJCQlwYXRoID0gZG9tOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIyMzI4LDYg
KzIyMzQwLDkgQEAKIAkJCQlGREEzRTk1NTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlv
Q29tcGxldGlvbkV2ZW50LmNwcCAqLywKIAkJCQlGREEzRTk1NjEzNEE0OUVGMDA4RDRCNUEgLyog
T2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggKi8sCiAJCQkJRkRBM0U5NUQxMzRBNDlGRjAw
OEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5pZGwgKi8sCisJCQkJRkQxQUQw
NkExNjcwMTBFMTAwMEU2NjcwIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuY3BwICovLAorCQkJCUZE
MUFEMDZCMTY3MDEwRTEwMDBFNjY3MCAvKiBPZmZsaW5lQXVkaW9Db250ZXh0LmggKi8sCisJCQkJ
RkQxQUQwNkMxNjcwMTBFMTAwMEU2NjcwIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuaWRsICovLAog
CQkJCUZEQTNFOTU3MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5v
ZGUuY3BwICovLAogCQkJCUZEQTNFOTU4MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuaCAqLywKIAkJCQlGRDU4MUZBQjE1MjBGOTFGMDAzQTdBNzUgLyogT3Nj
aWxsYXRvck5vZGUuY3BwICovLApAQCAtMjI0OTMsNiArMjI1MDgsOCBAQAogCQkJCUZEQkQ0ODBC
MTU5QkM2ODcwMDkzRUI0RiAvKiBKU01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmggKi8sCiAJ
CQkJRkRGNkJBRjYxMzRBNEM5ODAwODIyOTIwIC8qIEpTT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2
ZW50LmNwcCAqLywKIAkJCQlGREY2QkFGNzEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVk
aW9Db21wbGV0aW9uRXZlbnQuaCAqLywKKwkJCQlGRDIzMDBFQTE2NzAxQ0YxMDBDNjkyOTAgLyog
SlNPZmZsaW5lQXVkaW9Db250ZXh0LmNwcCAqLywKKwkJCQlGRDIzMDBFQjE2NzAxQ0YxMDBDNjky
OTAgLyogSlNPZmZsaW5lQXVkaW9Db250ZXh0LmggKi8sCiAJCQkJRkRFQTYyNDAxNTIxMDJFMjAw
NDc5REYwIC8qIEpTT3NjaWxsYXRvck5vZGUuY3BwICovLAogCQkJCUZERUE2MjQxMTUyMTAyRTIw
MDQ3OURGMCAvKiBKU09zY2lsbGF0b3JOb2RlLmggKi8sCiAJCQkJRkRBMTVFOTUxMkIwM0VFMTAw
M0E1ODNBIC8qIEpTUGFubmVyTm9kZS5jcHAgKi8sCkBAIC0yMjUyNywxMiArMjI1NDQsNiBAQAog
CQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OwogCQkJZmlsZXMgPSAoCi0JCQkJQzM3NUQ3RkUxNjYzOTUxOTAwNjE4NEFCIC8qIFR5
cGVBaGVhZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRkQxQUYxNTAxNjU2RjE1MTAwQzZENEY3IC8q
IEV4Y2x1c2lvblNoYXBlVmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDN0ZBNjIxMEQxRjBD
QkQwMERCMjJBOSAvKiBMaXZlTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUE4MTM2OURB
MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICov
LAotCQkJCUE4MTM2OUQ4MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MU2VsZWN0RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQTgxMzY5REMwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxPcHRpb25F
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0JDNjlEQjE1MDVGMDc2MDAxQjc0QUMgLyog
QWJzdHJhY3REYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFFMUIxRDEwRkY1OTg2OTAw
NTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOUE4MTIyRTBG
QkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yMjU1Myw2ICsyMjU2NCw3IEBACiAJCQkJMjk0ODlGQzcxMkMwMEYwMzAwRDgzRjBG
IC8qIEFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzA5RkM0
RTEwMjVERUUzMDA1OUNEQkEgLyogQWNjZXNzaWJpbGl0eVNsaWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMjlEN0JDRkExNDQ0QUY3RDAwNzA2MTlDIC8qIEFjY2Vzc2liaWxpdHlTcGluQnV0dG9u
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBQUMwOENGMzE1Rjk0MUZEMDBGMUUxODggLyogQWNjZXNz
aWJpbGl0eVNWR1Jvb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5QTgxMjJCMEZCQjlDMUQwMDUx
MDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5QTgxMjMy
MEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmggaW4gSGVhZGVycyAq
LywKIAkJCQkyOUE4MTI0MTBGQkI5QzFEMDA1MTAyOTMgLyogQWNjZXNzaWJpbGl0eVRhYmxlQ29s
dW1uLmggaW4gSGVhZGVycyAqLywKQEAgLTIyNzA2LDYgKzIyNzE4LDcgQEAKIAkJCQk1MDM4QkU0
MTE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlE
MEJDNTQ0OTE0NDNBQzRBMDBFMTA1REEgLyogQ2FjaGVkU3R5bGVTaGVldENsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTEwNEYyNDQxNEM3MUY3QTAwOUUyQzIzIC8qIENhY2hlZFNWR0RvY3Vt
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGQjJDMTVDMzE2NUQ2NDlEMDAzOUM5RjggLyogQ2Fj
aGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NTM4NjAzMTQ0
ODlFOTgwMEI3ODQ1MiAvKiBDYWNoZWRUZXh0VHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
QjE2QzI4MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRYU0xTdHlsZVNoZWV0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5M0YxOTk1MDA4MjQ1RTU5MDAxRTlBQkMgLyogQ2FjaGVQb2xpY3kuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjI3ODIsNiArMjI3OTUsNyBAQAogCQkJCTdBREU3MjI2MTBDQkJCOUIw
MDZCM0IzQSAvKiBDb250ZXh0TWVudVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMx
NjAyOTEyQjAyNjc2MDBDMUEzNTkgLyogQ29udm9sdmVyTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRDhCNjE1MkYxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRTE0MjRDOTQxNjRCNTJDODAwRjMyRDQwIC8qIENvb2tpZUphci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzM5QjVCNjMxMzFEQUEzMjAwRjQ4RDAyIC8qIENvb2tpZXNTdHJhdGVneS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMzNEMDIxMkQxMzFEQjM3QjAwNDA5MUE4IC8qIENvb2tpZVN0b3JhZ2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdFRTY4NDY0MTJEMjZFMzgwMEU3OTQxNSAvKiBDb29raWVT
dG9yYWdlQ0ZOZXQuaCBpbiBIZWFkZXJzICovLApAQCAtMjI4NzEsNiArMjI4ODUsNyBAQAogCQkJ
CTUwQ0MwODlBMTRDNkU5OUMwMDE3QUI1MSAvKiBDdXN0b21GaWx0ZXJOdW1iZXJQYXJhbWV0ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUwQUNFMkNCMTRCNUQ3OTMwMDQ0NjY2NiAvKiBDdXN0b21G
aWx0ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUwOUNDOUZCMTRDMDY5RUQwMEJC
RUNCRCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUwOTMz
MzUwMTYzQjBFNDMwMDA5OUE2MCAvKiBDdXN0b21GaWx0ZXJQYXJhbWV0ZXJMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MDNEMENBQjE0QjVCMDg3MDBGMzJGNTcgLyogQ3VzdG9tRmlsdGVyUHJv
Z3JhbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTAzRDBDQUMxNEI1QjA4NzAwRjMyRjU3IC8qIEN1
c3RvbUZpbHRlclByb2dyYW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUwRDg4Q0I2MTVC
REZEQUEwMDE4MDlGNCAvKiBDdXN0b21GaWx0ZXJQcm9ncmFtSW5mby5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMjk1Myw2ICsyMjk2OCw3IEBACiAJCQkJQ0UwNTdGQTYxMjIwNzMxMTAwQTQ3NkQ1IC8q
IERvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQ5NDdGRkUx
MkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3JkZXJlZE1hcC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNDRkJBRTgwQjUxNTJFRDAwMDFGMUQ3IC8qIERvY3VtZW50UGFyc2VyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlBRDZFNzFBRDE2Njg4OTlEMDAzMjBDMTMgLyogRG9jdW1lbnRTaGFyZWRPYmpl
Y3RQb29sLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDdFMjc2NTE2MDM2RUQyMDBFRTJBRkIgLyog
RG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEI5MDU2
MUEwRjI1NzhCRjAwOTVGRjZBIC8qIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODZEOTgyRjcxMjVDMTU0MDAwQUQ5RTNEIC8qIERvY3VtZW50VGltaW5nLmgg
aW4gSGVhZGVycyAqLywKQEAgLTIzNTYwLDYgKzIzNTc2LDggQEAKIAkJCQk4QUQwQTU5ODE0Qzg4
MzU4MDAwRDgzQzUgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZUludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMTYxMUU2MTBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNjExRTYzMEUxQzRFMTQwMEY2QTU3OSAv
KiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkzRjJCMzNFQjE2NUFGMTU2MDBFMzk4N0MgLyogRE9NV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkzRjJCMzNFRDE2NUFGMTU2MDBFMzk4N0MgLyogRE9NV2ViS2l0
Q1NTVmlld3BvcnRSdWxlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCThBMTk1OTMyMTQ3
RUExNkUwMEQxRUE2MSAvKiBET01XZWJLaXROYW1lZEZsb3cuaCBpbiBIZWFkZXJzICovLAogCQkJ
CThBMTk1OTM0MTQ3RUExNkUwMEQxRUE2MSAvKiBET01XZWJLaXROYW1lZEZsb3dJbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzFDMEZGNEMwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktp
dFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzY1NCw2ICsyMzY3Miw3IEBA
CiAJCQkJNkU4Nzk4QkQxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblJlY3RhbmdsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNkU4Nzk4QkYxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblNo
YXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDc0OEFDMDE1QkY3NEVEMDA1OUNGMEQgLyogRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDFBRjE1MDE2NTZG
MTUxMDBDNkQ0RjcgLyogRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NkU2N0QyQTkxMjgwRThCRDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNkU2N0QyQTcxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDREQUI1QjIxNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMz
RE9wZW5HTENvbW1vbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzgwNyw2ICsyMzgyNiw3IEBACiAJ
CQkJQjJBMDE1QUIwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzVHlwZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTc3QTE3QTdCMTJGMjg5MEIwMDRFMDJGNiAvKiBHcmFwaGljc1R5cGVzM0QuaCBp
biBIZWFkZXJzICovLAogCQkJCUExMjcwNUMzMTY1NkJENjUwMEMyRTI3QyAvKiBHcmlkUG9zaXRp
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCUExMkExMDUwMTY2NDQ0RkQwMDhGQTMxMSAvKiBHcmlk
VHJhY2tTaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTBCNTYxNzEyMTE5RDIzMDA4QjQ2RTAg
LyogR3JvdXBTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ4MkI3NDYxMTk4QzM1NDAw
QkZCMDA1IC8qIEhhc2hDaGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3NDhCRTAx
MkNCRjJEQzAwMUZCQTQxIC8qIEhhc2hUb29scy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzg1OSw5
ICsyMzg3OSw5IEBACiAJCQkJQTgxMzY5RDQwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxGaWVsZFNl
dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4Q0ZGN0E2MEExNTY5NzgwMDBBNDIzNCAv
KiBIVE1MRm9udEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODZGMTIyODgzRTkw
MEI4MUZGOCAvKiBIVE1MRm9ybWF0dGluZ0VsZW1lbnRMaXN0LmggaW4gSGVhZGVycyAqLywKLQkJ
CQlBOERGM0ZDRTA5N0ZBMEZDMDA1Mjk4MUIgLyogSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUNFMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTRGMUM0NTE0QjVEQUM2MDBF
QTkwMDkgLyogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQThERjNGQ0UwOTdGQTBGQzAwNTI5ODFCIC8qIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlEMDA5NzM3NEY2MDBENzQ0NjMgLyogSFRN
TEZvcm1FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREUyQjBBMTUyQUM4MDBCMTJB
NjggLyogSFRNTEZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTRGRkUzMUQwQUUx
OTYzMzAwMTM2QkY1IC8qIEhUTUxGcmFtZUVsZW1lbnRCYXNlLmggaW4gSGVhZGVycyAqLywKQEAg
LTIzODk0LDYgKzIzOTE0LDggQEAKIAkJCQlBODcxRDQ1QTBBMTI3Q0JDMDBCMTJBNjggLyogSFRN
TE9iamVjdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3OUYxMEExOTE2REYwMEE4
RUY1RiAvKiBIVE1MT0xpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlERTA5
NzM3NEY2MDBENzQ0NjMgLyogSFRNTE9wdEdyb3VwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJQTgxMzY5REMwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxPcHRpb25FbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlBODEzNjlEQTA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QUQwMTAwOTEyN0U2NDJBMDAxNTAzNUYgLyog
SFRNTE91dHB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3Q0I1MEExOTJCOUMw
MEE4RUY1RiAvKiBIVE1MUGFyYWdyYXBoRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3
MUQ0NTgwQTEyN0NCQzAwQjEyQTY4IC8qIEhUTUxQYXJhbUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjM5MTEsNiArMjM5MzMsNyBAQAogCQkJCUE4NzFEQzI1MEExNTIwNTcwMEIxMkE2OCAv
KiBIVE1MU2NyaXB0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NzUxMjI4ODNF
OTAwQjgxRkY4IC8qIEhUTUxTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0Iz
ODc2MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MU2NyaXB0UnVubmVySG9zdC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQTgxMzY5RDgwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxTZWxlY3RFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0QUJERkYwQzE0REJFMzg1MDA0RDExN0QgLyogSFRNTFNoYWRv
d0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxM0E4MENENjMzMTAwMEZBREE3NSAv
KiBIVE1MU291cmNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3RTJEQ0UxMkYwRTI4
MzAwQzEzMzc5IC8qIEhUTUxTb3VyY2VUcmFja2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTI0MzYw
LDYgKzI0MzgzLDcgQEAKIAkJCQk2RUJGMEU3NzEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0
dXJlRmxvYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc3QTE3QUE3MTJGMjhCMkEwMDRFMDJGNiAv
KiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGREY2QkFGOTEz
NEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUZEMjMwMEVEMTY3MDFDRjEwMEM2OTI5MCAvKiBKU09mZmxpbmVBdWRpb0Nv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZERUE2MjQzMTUyMTAyRTIwMDQ3OURGMCAvKiBK
U09zY2lsbGF0b3JOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBENTc0MTBBNUM3ODY3MDA3
RURENEMgLyogSlNPdmVyZmxvd0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI4NEJCMTEw
NDQ5RkZBMDBFQUVCNTIgLyogSlNQYWdlVHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTI0NTk2LDggKzI0NjIwLDEwIEBACiAJCQkJMzE2RkUwNzIwRTZDQ0JFRTAwQkY2MDg4IC8q
IEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZGRTA3NDBF
NkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0OTgzOTE0MDBGMUU3Njc1MDBDMjM3ODIgLyogSlNXZWJLaXRDU1NNYXRyaXguaCBp
biBIZWFkZXJzICovLAorCQkJCTE1QjhCN0M5MTY1MkM1MjIwMDM2RUY1NSAvKiBKU1dlYktpdENT
U01peEZ1bmN0aW9uVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCThBRDBBNTk1MTRDODgzMzYw
MDBEODNDNSAvKiBKU1dlYktpdENTU1JlZ2lvblJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
NjExRTVCMEUxQzRERTAwMEY2QTU3OSAvKiBKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggaW4g
SGVhZGVycyAqLywKKwkJCQkzRjJCMzNFRjE2NUFGMTU2MDBFMzk4N0MgLyogSlNXZWJLaXRDU1NW
aWV3cG9ydFJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5NEJENzlFMEY1NUM5NEMwMDc0Nzgy
OCAvKiBKU1dlYktpdFBvaW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUMwRkY0MDBFNENFRkFD
MDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVEQTVFMEZEMTAyQjk1MzgwMDA4OENGOSAvKiBKU1dlYlNvY2tldC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNDYzMiwxNSArMjQ2NTgsMTYgQEAKIAkJCQk4NUVDOUFGQjBBNzFBMkM2MDBFRUVBRUQg
LyogTGFuZ3VhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5MTdCNTYyMTQ3MzQ5NkMwMDUyQzlE
MCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyOTE3QjU2MzE0
NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTNGNzJBRjMxNjY2RURGQzAwMkEwMkJEIC8qIExheWVyUG9vbC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMTQxREMwNTAxNjQ4MzRCOTAwMzcxRTVBIC8qIExheW91dEJveEV4dGVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxRDcyRjYxNUZFNjk1MzAwQzRDMDdFIC8qIExheW91dE1p
bGVzdG9uZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTE0MURDMDUxMTY0ODM0QjkwMDM3MUU1QSAv
KiBMYXlvdXRQb2ludC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTQxREMwNTMxNjQ4MzRCOTAwMzcx
RTVBIC8qIExheW91dFJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMjUzOEQ0MTNGOUI2MEEw
MDAyNDc1NCAvKiBMYXlvdXRSZXBhaW50ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTE0MURDMDU0
MTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRTaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDkw
NjYwNzBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUQ2MzBFMkFDMTQ5QkYzNDQwMDVCMkY5MyAvKiBMYXlvdXRUZXN0U3VwcG9ydC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTQxREMwNDgxNjQ4MzQ4RjAwMzcxRTVBIC8qIExheW91dFVuaXQuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTE0MURDMDUwMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlvdXRCb3hFeHRl
bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTE0MURDMDUxMTY0ODM0QjkwMDM3MUU1QSAvKiBMYXlv
dXRQb2ludC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTQxREMwNTMxNjQ4MzRCOTAwMzcxRTVBIC8q
IExheW91dFJlY3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTE0MURDMDU0MTY0ODM0QjkwMDM3MUU1
QSAvKiBMYXlvdXRTaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJERDhGNTBEOTFFNkFGMDAw
Rjg5RUUgLyogTGVnYWN5V2ViQXJjaGl2ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNjVCRUIw
RUFDREYxNjAwN0U0NTMzIC8qIExlbmd0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGRjY0OTEw
RUFEMTVDMjAwQzFENkY3IC8qIExlbmd0aEJveC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDY2MSw2
ICsyNDY4OCw3IEBACiAJCQkJOThDRTQzMkExMjlFMDBFNTAwNTgyMURDIC8qIExpbmtMb2FkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk4NDI2NEYxMTJENTI4MEEwMDBEODhBNCAvKiBMaW5rTG9h
ZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5ODVCQjk2RTEzQTk0MDU4MDA3QTBCNjkg
LyogTGlua1JlbEF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM3RkE2MjEwRDFGMENC
RDAwREIyMkE5IC8qIExpdmVOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc1OUU5NDkx
NEVGMUQ0OTAwMjZBMkREIC8qIExvYWRhYmxlVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2NTZEMzczMjBBREJBNURFMDBBNDU1NEQgLyogTG9hZGVyTlNVUkxFeHRyYXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdFRTY4NDY5MTJEMjZFMzgwMEU3OTQxNSAvKiBMb2FkZXJSdW5Mb29wQ0Yu
aCBpbiBIZWFkZXJzICovLApAQCAtMjQ2OTEsOCArMjQ3MTksOCBAQAogCQkJCTQxNzI1M0FCMTM1
NEJCQkMwMDM2MEYyQSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQ0RGNjVDQ0ExNDVCNDQ4ODAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlcklu
dGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE1N0FGODAxMkYxRkIwNDAwQThDNkY1IC8q
IE1lZGlhQ29udHJvbHNBcHBsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUYzQzNCRUIxMzVDQUYz
QzAwQjhDMUFDIC8qIE1lZGlhQ29udHJvbHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNTdBRjgw
MTJGMUZCMDQwMEE4QzZGNSAvKiBNZWRpYUNvbnRyb2xzQXBwbGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3MjA1QUI4MTIzOTI5MTAwMEIxNzM4MCAvKiBNZWRpYURvY3VtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRDZGMjUyRDEzRjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVtZW50QXVkaW9T
b3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQ2MTNBRDBDRDYzMzEwMDBGQURBNzUg
LyogTWVkaWFFcnJvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDgwMCw2ICsyNDgyOCw3IEBACiAJ
CQkJNkVCRjBFNDkxMkE4OTI2MTAwREIxNzA5IC8qIE9FU1RleHR1cmVGbG9hdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNzdBMTdBNzIxMkYyODE4MjAwNEUwMkY2IC8qIE9FU1ZlcnRleEFycmF5T2Jq
ZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRCNUEgLyogT2Zm
bGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDFBRDA2RTE2
NzAxMEUxMDAwRTY2NzAgLyogT2ZmbGluZUF1ZGlvQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkRBM0U5NUMxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjRFQUY0QUYxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5U
eXBlU2FuaXRpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwMDE0NjI4QjEwM0NEMURFMDAwQjIw
REIgLyogT3JpZ2luQWNjZXNzRW50cnkuaCBpbiBIZWFkZXJzICovLApAQCAtMjQ4MzEsNiArMjQ4
NjAsNyBAQAogCQkJCUE4MEU2Q0ZCMEExOTg5Q0EwMDdGQjhDNSAvKiBQYWlyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRDMxNjBBMzEyQjAyNkY3MDBDMUEzNTkgLyogUGFubmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRDMxNjAxQTEyQjAyNjc2MDBDMUEzNTkgLyogUGFubmVyTm9kZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDQ3OTU4MDQxNjQzQjQ5QTAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRU
eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzc2QUMxMzBERDdBRDVDMDA0MTVGMzQgLyogUGFy
c2VyVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RDQTEyNTFGMTJEMDAzRUYy
NjkgLyogUGFzc3dvcmRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTRCMjcwOEM3MEFG
MTlFRTQwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLywKQEAgLTI0ODUzLDYg
KzI0ODgzLDcgQEAKIAkJCQk0OTlCM0VERDEyOERCNTAyMDBFNzI2QzIgLyogUGxhdGZvcm1DQUFu
aW1hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5QjNFQzUxMjhDQ0M0NzAwRTcyNkMyIC8q
IFBsYXRmb3JtQ0FMYXllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDkzRTVFMDkxMkQ2NDIwNTAw
MDIwMDgxIC8qIFBsYXRmb3JtQ0FMYXllckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTE0
MjRDOEExNjRCM0I0RTAwRjMyRDQwIC8qIFBsYXRmb3JtQ29va2llSmFyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzVDNzYyQjE0OTdGRTE0MDBCQzQ3NzUgLyogUGxhdGZvcm1FdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkNBQTQ4NzAxNEEwNTI1MzAwODhGQUM0IC8qIFBsYXRmb3JtRXZlbnRG
YWN0b3J5TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzIzRjc3QjE0ODRDQTRDMDA4QzZEQkUg
LyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBpbiBIZWFkZXJzICovLApAQCAtMjUwNjMsNiArMjUw
OTQsNyBAQAogCQkJCTg2RkY4ODYyMTVERTNEMDcwMEJENkIyOCAvKiBSZW5kZXJUZXh0VHJhY2tD
dWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUE0ODhBMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5k
ZXJUaGVtZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4ODcwOTdEOTMwMjAwOTRDOUU0IC8q
IFJlbmRlclRoZW1lTWFjLmggaW4gSGVhZGVycyAqLywKKwkJCQkxRTUwMDg0NzE2NTE2QUQ4MDBC
N0UwOTggLyogUmVuZGVyVGhlbWVNYWNTaGFyZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5
OThDMDgyNDVFNTkwMDFFOUFCQyAvKiBSZW5kZXJUcmVlQXNUZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNDQ2MTQ1MjBDRDY4QTM1MDBGQURBNzUgLyogUmVuZGVyVmlkZW8uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDRUE0ODY4MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJWaWV3LmggaW4gSGVh
ZGVycyAqLywKQEAgLTI1MTU4LDExICsyNTE5MCwxMyBAQAogCQkJCTBGNjA1QUVEMTVGOTQ4NDgw
MDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFG
NjJFRTgxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9sbGluZ0Nvb3JkaW5hdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzkxQTk5MTE2Mjc0NkNCMDAyOTczMzAgLyogU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWMuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQzM4QkZGMTY0NDczQzcwMDA5MUVCMiAvKiBT
Y3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxQ0JEMEQxNjFB
NDRFOTAwRTRDODc0IC8qIFNjcm9sbGluZ1N0YXRlTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTMxQ0JEMEYxNjFBNDRFOTAwRTRDODc0IC8qIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxQ0JEMTExNjFBNDRFOTAwRTRDODc0IC8qIFNjcm9sbGlu
Z1N0YXRlVHJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGNjJGMjYxNERBRkVBMTAwNDE1NTZD
IC8qIFNjcm9sbGluZ1RocmVhZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBQUREQTQxNERCNDA5
RjAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQzM4QzAz
MTY0NDczREQwMDA5MUVCMiAvKiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUFBRERFNDE0REM4QzhGMDBBRjY0QjMgLyogU2Nyb2xsaW5nVHJlZU5vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzOTFBOTlEMTYyOUQ3MDAwMDI5NzMzMCAvKiBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNDNEE0MTUxNjI5REY1QTAw
QzNFQjZFIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLmggaW4gSGVhZGVycyAqLywK
QEAgLTI1MTgwLDEwICsyNTIxNCwxMiBAQAogCQkJCUIyQzNEQTJGMEQwMDZDMUQwMEVGNkYyNiAv
KiBTZWdtZW50ZWRTdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NEI0QkI0MTQxNjUwRDcw
MDJCMUQ4QiAvKiBTZWxlY3RvckNoZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NTMyMkFD
MTQwQ0UyNjcwMDVBMEY5MiAvKiBTZWxlY3RvclF1ZXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQk1
NzBCNzhDMDE2NTBDRTgxMDAxREJFMUIgLyogU2VsZWN0UnVsZUZlYXR1cmVTZXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0
VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTEwMDk5RTY0OTIwMDU2RTU4MSAvKiBT
ZXROb2RlQXR0cmlidXRlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjhEQkRCNEMxMzBC
MEY4QTAwRjVDREIxIC8qIFNldFNlbGVjdGlvbkNvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzRjE5OTRGMDgyNDVFNTkwMDFFOUFCQyAvKiBTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTNFRjc2NkIxNjUzMEE2MTAwNENCRTQ5IC8qIFNldHRpbmdzTWFjcm9zLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0OTg3NzBFOTEyNDJDNTM1MDAyMjI2QkEgLyogU2hhZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjNERDQ1MDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkM1RUI4QzQwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCBp
biBIZWFkZXJzICovLApAQCAtMjUyMDAsNiArMjUyMzYsNyBAQAogCQkJCTU3MjhCRDlFMTYyNTM2
OTYwMEM0MEI1NiAvKiBTaWJsaW5nVHJhdmVyc2FsU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQjJDM0RBNjUwRDAwNkNENjAwRUY2RjI2IC8qIFNpbXBsZUZvbnREYXRhLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDNUExRUE3RDE1MkJDRjA4MDA0RDAwQjYgLyogU2ltcGxpZnlNYXJrdXBD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMTc0MUFBRDE2NjM2NjA5MDA4QTVCN0UgLyog
U2ltdWxhdGVkQ2xpY2tPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDAwRDdBNTE0QTNG
NjE5MDA3MzQwMTEgLyogU2luY1Jlc2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEzMjdE
NjAxMUEzM0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDlFOTExQ0QwRUY4NkQ0NzAwOUQwQ0FGIC8qIFNrZXdUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBI
ZWFkZXJzICovLApAQCAtMjU0MzIsNiArMjU0NjksNyBAQAogCQkJCTY1MEZCRjJCMEQ5QUYwNDcw
MDhGQzI5MiAvKiBTVkdIS2VybkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyNTU5OUE0
MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhGODU5
RDUxNDYzRjlDRDAwNjdEOTMzIC8qIFNWR0ltYWdlQ2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUFBQzA4Q0VGMTVGOTMzRDYwMEYxRTE4OCAvKiBTVkdJbWFnZUNocm9tZUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjIyMjdBMkQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ltYWdlRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjI4QzZBMkEwRDAwQzQ0ODAwMzM0QUE0IC8qIFNWR0lt
YWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODU0QjAxRjEyNTVFNEU2MDBCOUNERDAg
LyogU1ZHSW5saW5lRmxvd0JveC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTYyNiw3ICsyNTY2NCw2
IEBACiAJCQkJRTQ0NjEzQjAwQ0Q2MzMxMDAwRkFEQTc1IC8qIFRpbWVSYW5nZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQ5RTkxMkFFMEVGQUM5MDYwMDlEMENBRiAvKiBUaW1pbmdGdW5jdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwMzM0RDcxNDU5RkZENTAwOEQ4RDQ1IC8qIFRyYWNrQmFz
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQTEyQTEwNTAxNjY0NDRGRDAwOEZBMzExIC8qIEdyaWRU
cmFja1NpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RTkxMUM0MEVGODZENDcwMDlEMENBRiAv
KiBUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlFOTExQ0UwRUY4
NkQ0NzAwOUQwQ0FGIC8qIFRyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDlFOTExRDAwRUY4NkQ0NzAwOUQwQ0FGIC8qIFRyYW5zZm9ybU9wZXJhdGlvbnMuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjU2MzksNiArMjU2NzYsNyBAQAogCQkJCUE3N0UxRkYwMTRBQUNCNkUwMDVC
N0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDE5RDJDNTBD
RUE2RjYxMDBGRjUwN0EgLyogVHJlZVNoYXJlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU0RkU3
MzkwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUMz
NzVEN0ZFMTY2Mzk1MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTM3QzI4QTY4MTBGNjU5Q0MwMDhDNzgxMyAvKiBUeXBlc2V0dGluZ0ZlYXR1cmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzMwOUUxQTA5OUU2NDkyMDA1NkU1ODEgLyogVHlwaW5nQ29tbWFuZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODUwMzFCNEUwQTQ0RUZDNzAwRjk5MkUwIC8qIFVJRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjU2NjAsMTIgKzI1Njk4LDE0IEBACiAJCQkJQkNERjMxN0Mx
MUY4RDY4MzAwM0M1QkY4IC8qIFVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxRkFGQkYxOTE1QTVGQTc0MDAwODNBMjAgLyogVVRJVXRpbGl0aWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRTNCQkYwODExNjJEQTExMDBCOTQwOUEgLyogVVVJRC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTBEMzI4NTgxNjNCMzEzRjAwMTYxMTFFIC8qIFZhbGlkYXRlZEN1c3Rv
bUZpbHRlck9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjVBMTU0MjgxMjc5NTM0RDAw
RDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTEzQTNF
QTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTE1Qzc3MDhEMTAwRDNDNkIwMDVCQTI2NyAvKiBWYWxpZGl0eVN0YXRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGRDMxNjBBRjEyQjAyNkY3MDBDMUEzNTkgLyogVmVjdG9yTWF0aC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkNBMjU3MTUxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2Fs
UG9zaXRpb25DYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0VGNDE4Q0YxMTc5Njc4QzAwOUQx
MTJDIC8qIFZpZXdwb3J0QXJndW1lbnRzLmggaW4gSGVhZGVycyAqLywKKwkJCQkzRkZGRjlBRTE1
OUQ5QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzMwOUUxRTA5OUU2NDkyMDA1NkU1ODEgLyogdmlzaWJsZV91bml0cy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTMzMDlFMjAwOTlFNjQ5MjAwNTZFNTgxIC8qIFZpc2libGVQb3NpdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTg4M0RGMjgwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVT
ZWxlY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjU3MzMsNiArMjU3NzMsNyBAQAogCQkJCTI5
Q0Q2MURFMTQ2RDAyODkwMDY4RTgyQSAvKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDU2MkY5NDcxNTczRUNFQjAwMzFDQTE2IC8qIFdlYktpdENTU1NWR0RvY3Vt
ZW50VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDOUFERDIzMENDNDAzMjYwMDA5OEM0QyAv
KiBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJM0ZGRkY5QTkx
NTlEOUE1NTAwMjBCQkQ1IC8qIFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDk0QkQ3OTUwRjU1QzhFRTAwNzQ3ODI4IC8qIFdlYktpdFBvaW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMUMwRkYyNTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNGMzMyRjBGMkI5QTI1MDA0QjY3OTUgLyogV2Vi
TGF5ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjU3NjMsNiArMjU4MDQsNyBAQAogCQkJCUY1NUIz
REUwMTI1MUYxMkQwMDNFRjI2OSAvKiBXZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NTAzMUI1MTBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM4MEY0NzQwOUExMUFCNDAwMUZEQjM0IC8qIFdpZGdldC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMTQxMURDQjExNjRDMzlBODAwRDQ5QkMxIC8qIFdpZHRoQ2FjaGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzOUIwMkVGMEVBMkRCQzQwMEM1NDU3MCAvKiBXaWR0aEl0ZXJhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTIzRTU2OTEyN0IzMDQxMDAwRkVFQTcgLyogV2luZG93RXZlbnRD
b250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzgyNDNFOTBEMENGRDc1MDA0NjBDOEYgLyog
V2luZG93RmVhdHVyZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjU4MzgsMjkgKzI1ODgwLDYgQEAK
IAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlBQUMwOENFRjE1RjkzM0Q2MDBGMUUxODggLyogU1ZHSW1hZ2VD
aHJvbWVDbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUFBQzA4Q0YzMTVGOTQxRkQwMEYxRTE4
OCAvKiBBY2Nlc3NpYmlsaXR5U1ZHUm9vdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTA5MzMzNTAx
NjNCMEU0MzAwMDk5QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTUwRDMyODU4MTYzQjMxM0YwMDE2MTExRSAvKiBWYWxpZGF0ZWRDdXN0b21GaWx0
ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTNGRkZGOUFFMTU5RDlCMDYwMDIwQkJE
NSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTNGRkZGOUE5
MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCTNGMkIzM0VCMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1
bGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTNGMkIzM0VEMTY1QUYxNTYwMEUzOTg3QyAvKiBET01X
ZWJLaXRDU1NWaWV3cG9ydFJ1bGVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJM0YyQjMz
RUYxNjVBRjE1NjAwRTM5ODdDIC8qIEpTV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk5M0MzOEJGRjE2NDQ3M0M3MDAwOTFFQjIgLyogU2Nyb2xsaW5nU3RhdGVGaXhl
ZE5vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTkzQzM4QzAzMTY0NDczREQwMDA5MUVCMiAvKiBT
Y3JvbGxpbmdUcmVlRml4ZWROb2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTQyNEM4QTE2NEIz
QjRFMDBGMzJENDAgLyogUGxhdGZvcm1Db29raWVKYXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUUx
NDI0Qzk0MTY0QjUyQzgwMEYzMkQ0MCAvKiBDb29raWVKYXIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTE0MTFEQ0IxMTY0QzM5QTgwMEQ0OUJDMSAvKiBXaWR0aENhY2hlLmggaW4gSGVhZGVycyAqLywK
LQkJCQk1NzBCNzhDMDE2NTBDRTgxMDAxREJFMUIgLyogU2VsZWN0UnVsZUZlYXR1cmVTZXQuaCBp
biBIZWFkZXJzICovLAotCQkJCTFFNTAwODQ3MTY1MTZBRDgwMEI3RTA5OCAvKiBSZW5kZXJUaGVt
ZU1hY1NoYXJlZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTNFRjc2NkIxNjUzMEE2MTAwNENCRTQ5
IC8qIFNldHRpbmdzTWFjcm9zLmggaW4gSGVhZGVycyAqLywKLQkJCQk0NDc5NTgwNDE2NDNCNDlB
MDAxRTBBN0YgLyogUGFyc2VkQ29udGVudFR5cGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUZCMkMx
NUMzMTY1RDY0OUQwMDM5QzlGOCAvKiBDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZS5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJQUQ2RTcxQUQxNjY4ODk5RDAwMzIwQzEzIC8qIERvY3VtZW50U2hhcmVk
T2JqZWN0UG9vbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMzE3NDFBQUQxNjYzNjYwOTAwOEE1QjdF
IC8qIFNpbXVsYXRlZENsaWNrT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTVCOEI3Qzkx
NjUyQzUyMjAwMzZFRjU1IC8qIEpTV2ViS2l0Q1NTTWl4RnVuY3Rpb25WYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJOTNGNzJBRjMxNjY2RURGQzAwMkEwMkJEIC8qIExheWVyUG9vbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0yNjAwNCw2ICsyNjAyMywxMCBAQAogCQkJCTg1MTM2Q0E0MEFFRDY2NTkw
MEY5MEEzRCAvKiBzb3V0aEVhc3RSZXNpemVDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJ
CQk4NTEzNkNBNTBBRUQ2NjU5MDBGOTBBM0QgLyogc291dGhSZXNpemVDdXJzb3IucG5nIGluIFJl
c291cmNlcyAqLywKIAkJCQk4NTEzNkNBNjBBRUQ2NjU5MDBGOTBBM0QgLyogc291dGhXZXN0UmVz
aXplQ3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMzFBOTYzQTUxNjU1RDQyNjAwMEQ0
NjQ1IC8qIHN0YXJ0QnV0dG9uLnBuZyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMzFBOTYzQTYxNjU1
RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJ
MzFBOTYzQTcxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgaW4gUmVz
b3VyY2VzICovLAorCQkJCTMxQTk2M0E4MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblBy
ZXNzZWRAMngucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk5MzE1M0JEQzE0MTk1OUJDMDBGQ0Y1
QkUgLyogdGV4dEFyZWFSZXNpemVDb3JuZXIucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQk5Mzcw
OTE4RDE0MTZEODZCMDA0NzczMzMgLyogdGV4dEFyZWFSZXNpemVDb3JuZXJAMngucG5nIGluIFJl
c291cmNlcyAqLywKIAkJCQk0NkQ0RjI0QjBBRjk3RTgxMDAzNTM4NUEgLyogdmVydGljYWxUZXh0
Q3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCkBAIC0yNjAxMSwxMCArMjYwMzQsNiBAQAogCQkJ
CTg1MTM2Q0E4MEFFRDY2NTkwMEY5MEEzRCAvKiB3ZXN0UmVzaXplQ3Vyc29yLnBuZyBpbiBSZXNv
dXJjZXMgKi8sCiAJCQkJMUFCMUFFN0EwQzA1MUZERTAwMTM5RjRGIC8qIHpvb21JbkN1cnNvci5w
bmcgaW4gUmVzb3VyY2VzICovLAogCQkJCTFBQjFBRTdCMEMwNTFGREUwMDEzOUY0RiAvKiB6b29t
T3V0Q3Vyc29yLnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJMzFBOTYzQTUxNjU1RDQyNjAwMEQ0
NjQ1IC8qIHN0YXJ0QnV0dG9uLnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJMzFBOTYzQTYxNjU1
RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uQDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8sCi0JCQkJ
MzFBOTYzQTcxNjU1RDQyNjAwMEQ0NjQ1IC8qIHN0YXJ0QnV0dG9uUHJlc3NlZC5wbmcgaW4gUmVz
b3VyY2VzICovLAotCQkJCTMxQTk2M0E4MTY1NUQ0MjYwMDBENDY0NSAvKiBzdGFydEJ1dHRvblBy
ZXNzZWRAMngucG5nIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI2MjM3LDYgKzI2MjU2LDcgQEAKIAkJ
CQlGRDU2ODZDOTEzQUMxODAyMDBCNjlDNjggLyogQXN5bmNBdWRpb0RlY29kZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTFDREU5MjAxNTAxOEVEMDAwODYyQ0M1IC8qIEFzeW5jRmlsZVN0cmVh
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OUQwOEQ5RjEyMjI4NDUxMDAxMjQxREYgLyogQXN5
bmNGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBQTIxMjUwMTYzRjBEQTgwMDAw
RTYzRiAvKiBBdG9taWNTdHJpbmdDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEM0QTgwRTA5
RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDYyOUVBNDE1
NEI0NzE2MDAwNkQwMjYgLyogQXVkaW9CYXNpY0luc3BlY3Rvck5vZGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkQzMTVGRjYxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlvQmFzaWNQcm9jZXNzb3JO
b2RlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjYzMTEsNiArMjYzMzEsNyBAQAogCQkJCUJDNjRC
NENCMENCNDI5NUQwMDVGMkI2MiAvKiBDYWNoZWRGb250LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxQzBBQTQxMEYyQUExNUUwMDE2NDhDMiAvKiBDYWNoZWRGcmFtZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQ0IxNkMxQjA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkSW1hZ2UuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNEZDODUzNEMxNjQ0MjcyMzAwRDFDMjc1IC8qIENhY2hlZE1ldGFkYXRh
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMDE4NDZBMEIwODYwMkEwMDRBODI1RiAvKiBDYWNo
ZWRQYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUQwRURBNzc0MTQzRTMwM0MwMDI4RTM4MyAv
KiBDYWNoZWRSYXdSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMxRjA5NzlD
M0JEMDA0Njc3NDEgLyogQ2FjaGVkUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjM4
Myw3ICsyNjQwNCw5IEBACiAJCQkJMDYwMjdDQjMwQjFDQzAzRDAwODg0QjJEIC8qIENvbnRleHRN
ZW51SXRlbU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzQjZBMEVBMEIwQkNBODQwMEY1MDI3
QSAvKiBDb250ZXh0TWVudU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MDI4MTJCMDI2
NzYwMEMxQTM1OSAvKiBDb252b2x2ZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxNDI0
QzkzMTY0QjUyQzgwMEYzMkQ0MCAvKiBDb29raWVKYXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0VFNjg0NjIxMkQyNkUzODAwRTc5NDE1IC8qIENvb2tpZUphckNGTmV0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUUxNDI0QzkwMTY0QjQ2MEIwMEYzMkQ0MCAvKiBDb29raWVKYXJNYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3RUU2ODQ2MzEyRDI2RTM4MDBFNzk0MTUgLyogQ29va2llU3RvcmFn
ZUNGTmV0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxM0YwMUYxMTI3MEUxOTAwMERGQkE3MSAv
KiBDb29raWVTdG9yYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI5NTAwRTgyMDU2
QjAwQjI1OTY1IC8qIENvdW50ZXJEaXJlY3RpdmVzLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY0
NTksNiArMjY0ODIsNyBAQAogCQkJCTUwRDQwNUY5MTQ3RDMxRjMwMEQzMEJCNSAvKiBDdXN0b21G
aWx0ZXJNZXNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdFMTJFOTEwMTVGQTVEM0EwMDVFNDEy
NiAvKiBDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUw
Q0MwQTM5MTRDNkY1QjEwMDE3QUI1MSAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNTA5MzMzNEYxNjNCMEU0MzAwMDk5QTYwIC8qIEN1c3RvbUZpbHRlclBh
cmFtZXRlckxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTAzRDBDQUExNEI1QjA4NzAwRjMy
RjU3IC8qIEN1c3RvbUZpbHRlclByb2dyYW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTBEODhD
QjUxNUJERkRBQTAwMTgwOUY0IC8qIEN1c3RvbUZpbHRlclByb2dyYW1JbmZvLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUwM0QwQ0FBMTRCNUIwODcwMEYzMkY1OCAvKiBDdXN0b21GaWx0ZXJSZW5k
ZXJlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI2NTMxLDYgKzI2NTU1LDcgQEAKIAkJCQlDRTA1
N0ZBNTEyMjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE0OTQ3RkZEMTJGODBDRDIwMEEwRjYzMSAvKiBEb2N1bWVudE9yZGVy
ZWRNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDMjI4MEUxMUQ0QTU5NzAwRDVBN0QzIC8q
IERvY3VtZW50UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUFENkU3MUFDMTY2ODg5OUQw
MDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTQ3RTI3NjgxNjAzNkVEQzAwRUUyQUZCIC8qIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEI5MDU2MTkwRjI1NzhCRTAwOTVGRjZBIC8qIERv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODE4NUYzQTA5
NzY1NzY2MDA1ODI2RDkgLyogRG9jdW1lbnRUeXBlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjY4
NDMsNiArMjY4NjgsNyBAQAogCQkJCTQ5ODM5MTUxMEYxRTc2QjQwMEMyMzc4MiAvKiBET01XZWJL
aXRDU1NNYXRyaXgubW0gaW4gU291cmNlcyAqLywKIAkJCQk4QUQwQTU5NzE0Qzg4MzU4MDAwRDgz
QzUgLyogRE9NV2ViS2l0Q1NTUmVnaW9uUnVsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTMxNjEx
RTYyMEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTNGMkIzM0VDMTY1QUYxNTYwMEUzOTg3QyAvKiBET01XZWJLaXRDU1NW
aWV3cG9ydFJ1bGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk4QTE5NTkzMzE0N0VBMTZFMDBEMUVB
NjEgLyogRE9NV2ViS2l0TmFtZWRGbG93Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGNEQw
RTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTg1QzdGNUU4MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50Lm1tIGlu
IFNvdXJjZXMgKi8sCkBAIC0yNjg2NSw3ICsyNjg5MSw2IEBACiAJCQkJQTdDRkIzRDUwQjdFRDEx
ODAwNzBDMzJEIC8qIERyYWdJbWFnZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ5ODc3MERC
MTI0MkM1MzUwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ5ODc3MTUzMTI0M0Y5RkEwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyTWFjLm1tIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQkM3RkE2MjAwRDFGMENCRDAwREIyMkE5IC8qIExpdmVOb2RlTGlzdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGRDZFRDJDNzEzNkI4RTY2MDAzQ0YwNzIgLyogRHluYW1pY3ND
b21wcmVzc29yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENTM3MzU2MTM3QjY1M0IwMDAwOERD
RSAvKiBEeW5hbWljc0NvbXByZXNzb3JLZXJuZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ2
RUQyQzMxMzZCOEU0MjAwM0NGMDcyIC8qIER5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0yNjg3Niw2ICsyNjkwMSw3IEBACiAJCQkJRUQ1MDFEQzYwQjI0OUYyOTAw
QUUxOEQ5IC8qIEVkaXRvck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE4QzRBODA4MDlENTYz
MjcwMDAzQUM4RCAvKiBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJDRjY4Nzg4MTRE
MzJFQjUwMDM0MEYzOSAvKiBFbGVtZW50QXR0cmlidXRlRGF0YS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk0RkZDMDIyRDE2NDNCNzI2MDA0RTE2MzggLyogRWxlbWVudFJhcmVEYXRhLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTU3Q0Y0Qzg2MTRGNzU5N0EwMEVDRkYxNCAvKiBFbGVtZW50U2hhZG93
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4Q0ZGNkNCMEExNTYxQ0QwMDBBNDIzNCAvKiBFbGxp
cHNpc0JveC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RCQjEyNTFGMTJEMDAzRUYyNjkg
LyogRW1haWxJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNzAxMCw2ICsyNzAzNiw3
IEBACiAJCQkJOTc0QTg2MjIxNEI3QURCQjAwM0ZEQzc2IC8qIEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzJFMTYwOTBBRjU3ODM0MDAyNUY0MDggLyog
RnJhbWVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDAwMEVCQTIxMUJEQUZENDAwQzQ3
NzI2IC8qIEZyYW1lTG9hZGVyU3RhdGVNYWNoaW5lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTg2
QkE3NjZFMTY2NDI3QTgwMDVCRTVEMSAvKiBGcmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTY1QkYwMjQ1MDk3NDgxOTAwMEM0MzE5NiAvKiBGcmFtZU1hYy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzMzA5RTBEMDk5RTY0OTIwMDU2RTU4MSAvKiBGcmFtZVNlbGVjdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0QThDOTZFQjBCRTY5MDMyMDA0RUVGRjAgLyogRnJhbWVT
ZWxlY3Rpb25NYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTI3MDkwLDkgKzI3MTE3LDkgQEAKIAkJ
CQlBODEzNjlENTA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBOENGRjdBMjBBMTU2OTc4MDAwQTQyMzQgLyogSFRNTEZvbnRFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0IzODZFMTIyODgzRTkwMEI4MUZGOCAvKiBI
VE1MRm9ybWF0dGluZ0VsZW1lbnRMaXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUE4REYzRkNG
MDk3RkEwRkMwMDUyOTgxQiAvKiBIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBODEzNjlDRjA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEZvcm1Db250cm9s
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTRGMUM0NDE0QjVEQUM2MDBFQTkwMDkg
LyogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlBOERGM0ZDRjA5N0ZBMEZDMDA1Mjk4MUIgLyogSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgxMzY5RDEwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxG
b3JtRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREUyMzBBMTUyQUM4MDBCMTJB
NjggLyogSFRNTEZyYW1lRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEZGRTMxRTBB
RTE5NjMzMDAxMzZCRjUgLyogSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yNzY1NSw2ICsyNzY4Miw4IEBACiAJCQkJNkVCRjBFNzYxMkE5ODY4ODAwREIxNzA5IC8q
IEpTT0VTVGV4dHVyZUZsb2F0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3QTE3QUE2MTJGMjhC
MkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUZERjZCQUY4MTM0QTRDOTgwMDgyMjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25F
dmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRDIzMDBFQzE2NzAxQ0YxMDBDNjkyOTAgLyog
SlNPZmZsaW5lQXVkaW9Db250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEMUFEMDcxMTY3
MDExMkQwMDBFNjY3MCAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHRDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkRFQTYyNDIxNTIxMDJFMjAwNDc5REYwIC8qIEpTT3NjaWxsYXRvck5vZGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRDU3NDAwQTVDNzg2NzAwN0VERDRDIC8qIEpTT3Zl
cmZsb3dFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI4NEJCMjEwNDQ5RkZBMDBFQUVC
NTIgLyogSlNQYWdlVHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjc5MTgs
OCArMjc5NDcsMTAgQEAKIAkJCQkzMTZGRTA3MzBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRD
U1NLZXlmcmFtZXNSdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQUQxNEI1MTI5NzM0Q0Ew
MEFDQTk4OSAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDk4MzkxM0YwRjFFNzY3NTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTE1QjhCN0M4MTY1MkM1MjIwMDM2RUY1NSAvKiBKU1dlYktp
dENTU01peEZ1bmN0aW9uVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOEFEMEE1OTQxNEM4
ODMzNjAwMEQ4M0M1IC8qIEpTV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkzMTYxMUU1QTBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzRjJCMzNFRTE2NUFGMTU2MDBFMzk4N0MgLyogSlNX
ZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDc2MTNBQzQxNDc1
M0U1NjAwREI4NjA2IC8qIEpTV2ViS2l0TmFtZWRGbG93LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ5NEJENzlEMEY1NUM5NEMwMDc0NzgyOCAvKiBKU1dlYktpdFBvaW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDMjc1Qjc5MTFDNUQxQzMwMEM5MjA2QyAvKiBKU1dlYktpdFBvaW50Q3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjc5NjcsNiArMjc5OTgsNyBAQAogCQkJCTkzNTIwODQ1
MDlCRDQzQjkwMEYyMDM4RCAvKiBMYW5ndWFnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI5MTdC
NTYxMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTI5MTdCNTY2MTQ3MzQ5OTUwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVy
TWFjLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzRjcyQUY0MTY2NkVERkMwMDJBMDJCRCAvKiBM
YXllclBvb2wubW0gaW4gU291cmNlcyAqLywKIAkJCQkxNDFEQzA0RjE2NDgzNEI5MDAzNzFFNUEg
LyogTGF5b3V0Qm94RXh0ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0MURDMDUyMTY0ODM0
QjkwMDM3MUU1QSAvKiBMYXlvdXRSZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExMjBBQ0E0
MTNGOTk4Q0EwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yNzk4NSw5ICsyODAxNywxMSBAQAogCQkJCUE3QUQyRjg3MEVDODlEMDcwMDhBQjAwMiAvKiBM
aW5rSGFzaC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OENFNDMyNjEyOUUwMEJEMDA1ODIxREMg
LyogTGlua0xvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5ODVCQjk2RDEzQTk0MDU4MDA3
QTBCNjkgLyogTGlua1JlbEF0dHJpYnV0ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzdGQTYy
MDBEMUYwQ0JEMDBEQjIyQTkgLyogTGl2ZU5vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTk3NTlFOTNFMTRFRjFDRjgwMDI2QTJERCAvKiBMb2FkYWJsZVRleHRUcmFjay5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk2NTZEMzczMzBBREJBNURFMDBBNDU1NEQgLyogTG9hZGVyTlNVUkxFeHRy
YXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3RUU2ODQ2ODEyRDI2RTM4MDBFNzk0MTUgLyogTG9h
ZGVyUnVuTG9vcENGLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxQUJGNjREMTYzOTJFMjgwMDEz
MkE3QSAvKiBMb2FkZXJTdHJhdGVneS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNkU4MUVFQzBB
QjVEQTk3MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRjU5NzNERTExNUNGQjIwMzAwMjdGODA0IC8qIExvY2FsZU1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTc2MzNBNzI3MTNEOEIzM0EwMDg1MDFCNiAvKiBMb2NhbGVUb1Njcmlw
dE1hcHBpbmdEZWZhdWx0LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgwMTEsOCArMjgwNDUsOCBA
QAogCQkJCTQ5RTkxMUM2MEVGODZENDcwMDlEMENBRiAvKiBNYXRyaXhUcmFuc2Zvcm1PcGVyYXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE3MjUzQUExMzU0QkJCQzAwMzYwRjJBIC8qIE1l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEMjdGNkU3MTQ1Nzcw
RDMwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE1
N0FGODExMkYxRkIwNDAwQThDNkY1IC8qIE1lZGlhQ29udHJvbHNBcHBsZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkxRjNDM0JFQTEzNUNBRjNDMDBCOEMxQUMgLyogTWVkaWFDb250cm9scy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk0MTU3QUY4MTEyRjFGQjA0MDBBOEM2RjUgLyogTWVkaWFDb250
cm9sc0FwcGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUI3MTIzOTI5MTAwMEIxNzM4
MCAvKiBNZWRpYURvY3VtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENkYyNTJDMTNGNUVG
MEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNEUxOTU5MjEwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVzLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjgwODIsNiArMjgxMTYsNyBAQAogCQkJCTg1NEZFNzMwMEEy
Mjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1NEZF
NzMyMEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTg1NEZFNzM0MEEyMjk3QkUwMDU4RDdBRCAvKiBOb2RlSXRlcmF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNEZGQzAyMkIxNjQzQjcxMDAwNEUxNjM4IC8qIE5vZGVSYXJlRGF0
YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Y1RDk0RjEzODRGMDJEMDBBMjlBODcgLyogTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTdFQkYwQTE5NDVE
MDAwQThFRjVGIC8qIE5vdGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzNTAzQ0M3MTAx
N0ExQjEwMDNCNDdFMSAvKiBOb3RpZmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODEw
Myw2ICsyODEzOCw3IEBACiAJCQkJNkVCRjBFNDgxMkE4OTI2MTAwREIxNzA5IC8qIE9FU1RleHR1
cmVGbG9hdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3N0ExN0E3MTEyRjI4MTgyMDA0RTAyRjYg
LyogT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkRBM0U5NTkx
MzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGRDFBRDA2RDE2NzAxMEUxMDAwRTY2NzAgLyogT2ZmbGluZUF1ZGlvQ29u
dGV4dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREEzRTk1QjEzNEE0OUVGMDA4RDRCNUEgLyog
T2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0RUFG
NEFFMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwMDE0NjI4QTEwM0NEMURFMDAwQjIwREIgLyogT3JpZ2luQWNjZXNzRW50cnkuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yODEyNiw2ICsyODE2Miw3IEBACiAJCQkJRkZENUI5N0ExMzVD
Qzk3ODAwRDVFOTJBIC8qIFBhZ2VWaXNpYmlsaXR5U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQzMTYwQTIxMkIwMjZGNzAwQzFBMzU5IC8qIFBhbm5lci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGRDMxNjAxOTEyQjAyNjc2MDBDMUEzNTkgLyogUGFubmVyTm9kZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk0NDc5NTgwNTE2NDNCNEIyMDAxRTBBN0YgLyogUGFyc2VkQ29udGVudFR5cGUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQzkxMjUxRjEyRDAwM0VGMjY5IC8qIFBhc3N3
b3JkSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTRCMjcwOTgzMEFGMkU1RTAwMDY1
MTI3RiAvKiBQYXN0ZWJvYXJkTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQjI3NTM1N0YwQjA1
MzgxNDAwMkNFNjRGIC8qIFBhdGguY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODI5Myw2ICsyODMz
MCw3IEBACiAJCQkJODZGRjg4NjExNURFM0QwNzAwQkQ2QjI4IC8qIFJlbmRlclRleHRUcmFja0N1
ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VBNDg4OTA5N0Q5MzAyMDA5NEM5RTQgLyogUmVu
ZGVyVGhlbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFQTQ4ODgwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlclRoZW1lTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMUU1MDA4NDgxNjUxNkFE
ODAwQjdFMDk4IC8qIFJlbmRlclRoZW1lTWFjU2hhcmVkLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTNGMTlBRDUwODI0NUU1OTAwMUU5QUJDIC8qIFJlbmRlclRyZWVBc1RleHQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRTQ0NjE0NTEwQ0Q2OEEzNTAwRkFEQTc1IC8qIFJlbmRlclZpZGVvLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDRUE0ODY3MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJWaWV3
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjgzODUsNiArMjg0MjMsNyBAQAogCQkJCTBGNjA1QUVD
MTVGOTQ4NDgwMDRERjBDMCAvKiBTY3JvbGxpbmdDb25zdHJhaW50cy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQUY2MkVFNzE0REEyMkE3MDA0MTU1NkMgLyogU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFGNjJFRTYxNERBMjJBNzAwNDE1NTZDIC8qIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTNDMzhCRkUxNjQ0NzND
NzAwMDkxRUIyIC8qIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzMUNCRDBDMTYxQTQ0RTkwMEU0Qzg3NCAvKiBTY3JvbGxpbmdTdGF0ZU5vZGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTMxQ0JEMTMxNjFBNDRGODAwRTRDODc0IC8qIFNjcm9sbGluZ1N0
YXRlTm9kZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzMUNCRDBFMTYxQTQ0RTkwMEU0Qzg3
NCAvKiBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
ODM5Miw2ICsyODQzMSw3IEBACiAJCQkJMUFGNjJGMjUxNERBRkU5RTAwNDE1NTZDIC8qIFNjcm9s
bGluZ1RocmVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUY2MkYyNDE0REFGRTkxMDA0MTU1
NkMgLyogU2Nyb2xsaW5nVGhyZWFkTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBQUREQTMx
NERCNDA5RjAwQUY2NEIzIC8qIFNjcm9sbGluZ1RyZWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
OTNDMzhDMDQxNjQ0NzNERDAwMDkxRUIyIC8qIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGUubW0gaW4g
U291cmNlcyAqLywKIAkJCQkxQTM1ODYyQzE1MjUyMjU0MDAyMkE2NTkgLyogU2Nyb2xsaW5nVHJl
ZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQUFEREUzMTREQzhDOEYwMEFGNjRCMyAvKiBT
Y3JvbGxpbmdUcmVlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzkxQTk5QzE2MjlENzAw
MDAyOTczMzAgLyogU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0yODQwOCw2ICsyODQ0OCw3IEBACiAJCQkJQjJDM0RBMkUwRDAwNkMxRDAwRUY2RjI2IC8q
IFNlZ21lbnRlZFN0cmluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDRCNEJCMzE0MTY1MEQ3
MDAyQjFEOEIgLyogU2VsZWN0b3JDaGVja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0NTMy
MkFCMTQwQ0UyNjcwMDVBMEY5MiAvKiBTZWxlY3RvclF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTU3MEI3OEJGMTY1MENFODEwMDFEQkUxQiAvKiBTZWxlY3RSdWxlRmVhdHVyZVNldC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNzVFNDk3NzEwNzUyQUNCMDBDOUI4OTYgLyogU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RTBGMDk5RTY0OTIwMDU2
RTU4MSAvKiBTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
OERCREI0QjEzMEIwRjhBMDBGNUNEQjEgLyogU2V0U2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI4Nzc0LDYgKzI4ODE1LDcgQEAKIAkJCQkxNEQ2NEI1QzEzNEE1QjZCMDBF
NThGREEgLyogVHJlZVNjb3BlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3N0UxRkVGMTRBQUNC
NkUwMDVCN0NCNiAvKiBUcmVlU2NvcGVBZG9wdGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1
NEZFNzM4MEEyMjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUMzNzVEN0ZEMTY2Mzk1MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTMzMDlFMTkwOTlFNjQ5MjAwNTZFNTgxIC8qIFR5cGluZ0NvbW1hbmQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODUwMzFCNEQwQTQ0RUZDNzAwRjk5MkUwIC8qIFVJRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzNTRBM0MwQjI0RjhDOTAwM0Y2REVBIC8qIFVJRXZlbnRX
aXRoS2V5U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODc4NiwxMCArMjg4MjgsMTIgQEAK
IAkJCQlCQ0RGMzE3QjExRjhENjgzMDAzQzVCRjggLyogVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUZBRkJGMTgxNUE1RkE2RTAwMDgzQTIwIC8qIFVU
SVV0aWxpdGllcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJFM0JCRjA3MTE2MkRBMTEwMEI5NDA5
QSAvKiBVVUlELmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUwRDMyODU3MTYzQjMxM0YwMDE2MTEx
RSAvKiBWYWxpZGF0ZWRDdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRjVBMTU0MjcxMjc5NTM0RDAwRDBCMEMwIC8qIFZhbGlkYXRpb25NZXNzYWdlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE1Qzc3MDhFMTAwRDNDNkIwMDVCQTI2NyAvKiBWYWxpZGl0eVN0YXRl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZEMzE2MEFFMTJCMDI2RjcwMEMxQTM1OSAvKiBWZWN0
b3JNYXRoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNFRjQxOENFMTE3OTY3OEMwMDlEMTEyQyAv
KiBWaWV3cG9ydEFyZ3VtZW50cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzRkZGRjlBRDE1OUQ5
QjA2MDAyMEJCRDUgLyogVmlld3BvcnRTdHlsZVJlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTkzMzA5RTFEMDk5RTY0OTIwMDU2RTU4MSAvKiB2aXNpYmxlX3VuaXRzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzMzA5RTFGMDk5RTY0OTIwMDU2RTU4MSAvKiBWaXNpYmxlUG9zaXRpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTg4M0RGMjcwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2li
bGVTZWxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODc5OSw2ICsyODg0Myw3IEBACiAJ
CQkJRkQ3RjI5OTYxM0Q0QzBDQjAwQUQ5NTM1IC8qIFdhdmVTaGFwZXJQcm9jZXNzb3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRkQ1ODFGQjQxNTIwRjkzQjAwM0E3QTc1IC8qIFdhdmVUYWJsZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyOUE4MTI0QTBGQkI5Q0E5MDA1MTAyOTMgLyogV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIubW0gaW4gU291cmNlcyAqLywKKwkJCQlDRDdFMDUyMjE2
NTFDMjgyMDBDMTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0RDNjlEREIxNjM3MUZENDAwN0MzOERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuUGxh
Y2Vob2xkZXJWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDNjlERDcxNjMyMDI2QzAwN0Mz
OERGIC8qIFdlYkNvcmVGdWxsU2NyZWVuV2FybmluZ1ZpZXcubW0gaW4gU291cmNlcyAqLywKIAkJ
CQlDRDEyN0RFRDE0RjMwOTdEMDBFODQ3NzkgLyogV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cubW0g
aW4gU291cmNlcyAqLywKQEAgLTI4ODQ5LDYgKzI4ODk0LDcgQEAKIAkJCQk1MDM4QkMwNzE0NzEx
Q0RCMDA5NUUwRDEgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDU2MkY5NDYxNTczRUNFQjAwMzFDQTE2IC8qIFdlYktpdENTU1NWR0RvY3VtZW50VmFsdWUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5QUREODAwQ0M0MDkyMjAwMDk4QzRDIC8qIFdlYktp
dENTU1RyYW5zZm9ybVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTNGRkZGOUE4MTU5RDlB
NTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUExNDE0QjUxM0EwRjA1MDAwMTk5OTZDIC8qIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlENzYxM0E1MDE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFt
ZWRGbG93LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAv
KiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODk0MiwzMSAr
Mjg5ODgsNyBAQAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29y
TGlieHNsdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5NTkg
LyogWFNMVFVuaWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0UyRTBFMTJGMEZD
OUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTNGRkZGOUFE
MTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCTUxQUJGNjREMTYzOTJFMjgwMDEzMkE3QSAvKiBMb2FkZXJTdHJhdGVneS5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQk1MDkzMzM0RjE2M0IwRTQzMDAwOTlBNjAgLyogQ3VzdG9t
RmlsdGVyUGFyYW1ldGVyTGlzdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkxQUEyMTI1MDE2M0Yw
REE4MDAwMEU2M0YgLyogQXRvbWljU3RyaW5nQ0YuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTBE
MzI4NTcxNjNCMzEzRjAwMTYxMTFFIC8qIFZhbGlkYXRlZEN1c3RvbUZpbHRlck9wZXJhdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQkzRkZGRjlBODE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0
Q1NTVmlld3BvcnRSdWxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTNGMkIzM0VDMTY1QUYxNTYw
MEUzOTg3QyAvKiBET01XZWJLaXRDU1NWaWV3cG9ydFJ1bGUubW0gaW4gU291cmNlcyAqLywKLQkJ
CQkzRjJCMzNFRTE2NUFGMTU2MDBFMzk4N0MgLyogSlNXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJNEZGQzAyMkIxNjQzQjcxMDAwNEUxNjM4IC8qIE5vZGVSYXJl
RGF0YS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0RkZDMDIyRDE2NDNCNzI2MDA0RTE2MzggLyog
RWxlbWVudFJhcmVEYXRhLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkzQzM4QkZFMTY0NDczQzcw
MDA5MUVCMiAvKiBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQk5M0MzOEMwNDE2NDQ3M0REMDAwOTFFQjIgLyogU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZS5tbSBp
biBTb3VyY2VzICovLAotCQkJCTRGQzg1MzRDMTY0NDI3MjMwMEQxQzI3NSAvKiBDYWNoZWRNZXRh
ZGF0YS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFMTQyNEM5MDE2NEI0NjBCMDBGMzJENDAgLyog
Q29va2llSmFyTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJRTE0MjRDOTMxNjRCNTJDODAwRjMy
RDQwIC8qIENvb2tpZUphci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1NzBCNzhCRjE2NTBDRTgx
MDAxREJFMUIgLyogU2VsZWN0UnVsZUZlYXR1cmVTZXQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
MUU1MDA4NDgxNjUxNkFEODAwQjdFMDk4IC8qIFJlbmRlclRoZW1lTWFjU2hhcmVkLm1tIGluIFNv
dXJjZXMgKi8sCi0JCQkJQ0Q3RTA1MjIxNjUxQzI4MjAwQzEyMDFGIC8qIFdlYkNvcmVBVkZSZXNv
dXJjZUxvYWRlci5tbSBpbiBTb3VyY2VzICovLAotCQkJCUFENkU3MUFDMTY2ODg5OUQwMDMyMEMx
MyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDQ3
OTU4MDUxNjQzQjRCMjAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRUeXBlLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTE1QjhCN0M4MTY1MkM1MjIwMDM2RUY1NSAvKiBKU1dlYktpdENTU01peEZ1bmN0
aW9uVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJODZCQTc2NkUxNjY0MjdBODAwNUJFNUQx
IC8qIEZyYW1lTG9hZFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNGNzJBRjQxNjY2
RURGQzAwMkEwMkJEIC8qIExheWVyUG9vbC5tbSBpbiBTb3VyY2VzICovLAotCQkJCUMzNzVEN0ZE
MTY2Mzk1MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVy
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oCmluZGV4IGZhYmNhYTY2YzNkM2I0YjI3MDIzZjQwYmM4Y2ZhYTBhNDJlNjgyMTkuLjli
ZjdhYmNhOTI1NWQyNjAwMTYyMGZkODFjOWE4N2ViMzQyNDY5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
CkBAIC0xMjMsNiArMTIzLDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAg
c3RhdGljIHZvaWQgc2V0V2Via2l0QXVkaW9Db250ZXh0RW5hYmxlZChib29sIGlzRW5hYmxlZCkg
eyBpc1dlYkF1ZGlvRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQogICAgIHN0YXRpYyBib29sIHdlYmtp
dEF1ZGlvQ29udGV4dEVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkF1ZGlvRW5hYmxlZDsgfQorICAg
IHN0YXRpYyBib29sIHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHRFbmFibGVkKCkgeyByZXR1cm4g
aXNXZWJBdWRpb0VuYWJsZWQ7IH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9t
LmNwcAppbmRleCAxMjBmYzU3ZGI4MGQ5MWE4ZTFjMmQ3MzVkMDUxNmEzNTZmOGMwOGJmLi5mZjdm
YWVlNDdlOGE0MGRiMDI3MjkyMTExYWFlZmY1YjlkNDRhZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwCkBAIC0zMiw2ICsz
Miw4IEBACiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIkpTQXVkaW9CdWZm
ZXIuaCIKICNpbmNsdWRlICJKU0F1ZGlvQ29udGV4dC5oIgorI2luY2x1ZGUgIkpTT2ZmbGluZUF1
ZGlvQ29udGV4dC5oIgorI2luY2x1ZGUgIk9mZmxpbmVBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRl
IDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+CiAKQEAgLTc3
LDggKzc5LDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNBdWRpb0NvbnRleHRD
b25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNBdWRpb0NvbnRleHQoCiAgICAgICAgIGlmICghYXVkaW9D
b250ZXh0LmdldCgpKQogICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVh
dGVTeW50YXhFcnJvcihleGVjLCAiYXVkaW8gcmVzb3VyY2VzIHVuYXZhaWxhYmxlIGZvciBBdWRp
b0NvbnRleHQgY29uc3RydWN0aW9uIikpOwogICAgIH0gZWxzZSB7CisjaWYgRU5BQkxFKExFR0FD
WV9XRUJfQVVESU8pCiAgICAgICAgIC8vIENvbnN0cnVjdG9yIGZvciBvZmZsaW5lIChyZW5kZXIt
dGFyZ2V0KSBBdWRpb0NvbnRleHQgd2hpY2ggcmVuZGVycyBpbnRvIGFuIEF1ZGlvQnVmZmVyLgog
ICAgICAgICAvLyBuZXcgQXVkaW9Db250ZXh0KGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZDaGFu
bmVscywgaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkZyYW1lcywgaW4gZmxvYXQgc2FtcGxlUmF0
ZSk7CisgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2Us
IExvZ01lc3NhZ2VUeXBlLCBXYXJuaW5nTWVzc2FnZUxldmVsLAorICAgICAgICAgICAgIkRlcHJl
Y2F0ZWQgQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yOiB1c2UgT2ZmbGluZUF1ZGlvQ29udGV4dCBp
bnN0ZWFkIik7CisKICAgICAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCiAgICAg
ICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50
c0Vycm9yKGV4ZWMpKTsKIApAQCAtOTUsMTIgKzEwMSwxNiBAQCBFbmNvZGVkSlNWYWx1ZSBKU0Nf
SE9TVF9DQUxMIEpTQXVkaW9Db250ZXh0Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTQXVkaW9Db250
ZXh0KAogICAgICAgICBpZiAoc2FtcGxlUmF0ZSA8PSAwKQogICAgICAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiSW52YWxpZCBzYW1wbGUg
cmF0ZSIpKTsKIAorCiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICBhdWRp
b0NvbnRleHQgPSBBdWRpb0NvbnRleHQ6OmNyZWF0ZU9mZmxpbmVDb250ZXh0KGRvY3VtZW50LCBu
dW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSwgZWMpOworICAgICAg
ICBhdWRpb0NvbnRleHQgPSBPZmZsaW5lQXVkaW9Db250ZXh0OjpjcmVhdGUoZG9jdW1lbnQsIG51
bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlLCBlYyk7CiAgICAgICAg
IGlmIChlYykgewogICAgICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKICAgICAg
ICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywg
IkVycm9yIGNyZWF0aW5nIE9mZmxpbmVBdWRpb0NvbnRleHQiKSk7CiAgICAgICAgIH0KKyNlbHNl
CisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhl
YywgIklsbGVnYWwgQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yIikpOworI2VuZGlmCiAgICAgfQog
CiAgICAgaWYgKCFhdWRpb0NvbnRleHQuZ2V0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1dlYkF1ZGlvQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93V2ViQXVkaW9DdXN0b20uY3BwCmluZGV4IDAxMzE0
MGU4NzNiOTE1MzcyZWIzMzJhMWE1YTM2YjIyZTk3MGVlYjMuLmY1Yzc3MDg0Yzg5MzBkZTcwZDZi
YjU4OWIzZDVkZTY2OWJkYjRmNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93V2ViQXVkaW9DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93V2ViQXVkaW9DdXN0b20uY3BwCkBAIC0yNCw2ICsyNCw3IEBA
CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpT
QXVkaW9Db250ZXh0LmgiCisjaW5jbHVkZSAiSlNPZmZsaW5lQXVkaW9Db250ZXh0LmgiCiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTQ2LDYgKzQ3LDE0
IEBAIEpTVmFsdWUgSlNET01XaW5kb3c6OndlYmtpdEF1ZGlvQ29udGV4dChFeGVjU3RhdGUqIGV4
ZWMpIGNvbnN0CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKK0pTVmFsdWUgSlNET01X
aW5kb3c6OndlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoRXhlY1N0YXRlKiBleGVjKSBjb25zdAor
eworICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IHNldHRpbmdzRm9yV2luZG93V2ViQXVkaW8odGhp
cyk7CisgICAgaWYgKHNldHRpbmdzICYmIHNldHRpbmdzLT53ZWJBdWRpb0VuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTT2ZmbGluZUF1ZGlvQ29udGV4dENvbnN0
cnVjdG9yPihleGVjLCB0aGlzKTsKKyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTT2ZmbGluZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU09mZmxpbmVBdWRpb0NvbnRleHRDdXN0b20uY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVmNTk0NDY1NWY4NzI4NDdiMDM3MzJmNzhmZmY2ZmJhNGE4ODEyMGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09mZmxpbmVBdWRpb0NvbnRleHRD
dXN0b20uY3BwCkBAIC0wLDAgKzEsOTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVkZSAiT2ZmbGluZUF1ZGlvQ29u
dGV4dC5oIgorCisjaW5jbHVkZSAiQXVkaW9CdWZmZXIuaCIKKyNpbmNsdWRlICJKU0FycmF5QnVm
ZmVyLmgiCisjaW5jbHVkZSAiSlNBdWRpb0J1ZmZlci5oIgorI2luY2x1ZGUgIkpTT2ZmbGluZUF1
ZGlvQ29udGV4dC5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KKyNpbmNsdWRlIDx3dGYv
QXJyYXlCdWZmZXIuaD4KKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTT2ZmbGluZUF1ZGlvQ29udGV4
dENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU09mZmxpbmVBdWRpb0NvbnRleHQoRXhlY1N0YXRlKiBl
eGVjKQoreworICAgIEpTT2ZmbGluZUF1ZGlvQ29udGV4dENvbnN0cnVjdG9yKiBqc0NvbnN0cnVj
dG9yID0ganNDYXN0PEpTT2ZmbGluZUF1ZGlvQ29udGV4dENvbnN0cnVjdG9yKj4oZXhlYy0+Y2Fs
bGVlKCkpOworICAgIGlmICghanNDb25zdHJ1Y3RvcikKKyAgICAgICAgcmV0dXJuIHRocm93Vk1F
cnJvcihleGVjLCBjcmVhdGVSZWZlcmVuY2VFcnJvcihleGVjLCAiT2ZmbGluZUF1ZGlvQ29udGV4
dCBjb25zdHJ1Y3RvciBjYWxsZWUgaXMgdW5hdmFpbGFibGUiKSk7CisKKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0ganNDb25zdHJ1Y3Rvci0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkK
KyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVSZWZlcmVuY2VFcnJvcihl
eGVjLCAiT2ZmbGluZUF1ZGlvQ29udGV4dCBjb25zdHJ1Y3RvciBzY3JpcHQgZXhlY3V0aW9uIGNv
bnRleHQgaXMgdW5hdmFpbGFibGUiKSk7CisgICAgICAgIAorICAgIGlmICghc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC0+aXNEb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4
ZWMsIGNyZWF0ZVJlZmVyZW5jZUVycm9yKGV4ZWMsICJPZmZsaW5lQXVkaW9Db250ZXh0IGNvbnN0
cnVjdG9yIGNhbGxlZCBpbiBhIHNjcmlwdCBleGVjdXRpb24gY29udGV4dCB3aGljaCBpcyBub3Qg
YSBkb2N1bWVudCIpKTsKKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PERv
Y3VtZW50Kj4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisKKyAgICBSZWZQdHI8T2ZmbGluZUF1
ZGlvQ29udGV4dD4gYXVkaW9Db250ZXh0OworICAgIAorICAgIC8vIENvbnN0cnVjdG9yIGZvciBv
ZmZsaW5lIChyZW5kZXItdGFyZ2V0KSBPZmZsaW5lQXVkaW9Db250ZXh0IHdoaWNoIHJlbmRlcnMg
aW50byBhbiBBdWRpb0J1ZmZlci4KKyAgICAvLyBuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dChpbiB1
bnNpZ25lZCBsb25nIG51bWJlck9mQ2hhbm5lbHMsIGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZG
cmFtZXMsIGluIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50
KCkgPCAzKQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZU5vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGV4ZWMpKTsKKworICAgIGludDMyX3QgbnVtYmVyT2ZDaGFubmVscyA9
IGV4ZWMtPmFyZ3VtZW50KDApLnRvSW50MzIoZXhlYyk7CisgICAgaW50MzJfdCBudW1iZXJPZkZy
YW1lcyA9IGV4ZWMtPmFyZ3VtZW50KDEpLnRvSW50MzIoZXhlYyk7CisgICAgZmxvYXQgc2FtcGxl
UmF0ZSA9IGV4ZWMtPmFyZ3VtZW50KDIpLnRvRmxvYXQoZXhlYyk7CisgICAgCisgICAgaWYgKG51
bWJlck9mQ2hhbm5lbHMgPD0gMCB8fCBudW1iZXJPZkNoYW5uZWxzID4gMTApCisgICAgICAgIHJl
dHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIkludmFsaWQg
bnVtYmVyIG9mIGNoYW5uZWxzIikpOworCisgICAgaWYgKG51bWJlck9mRnJhbWVzIDw9IDApCisg
ICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywg
IkludmFsaWQgbnVtYmVyIG9mIGZyYW1lcyIpKTsKKworICAgIGlmIChzYW1wbGVSYXRlIDw9IDAp
CisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhl
YywgIkludmFsaWQgc2FtcGxlIHJhdGUiKSk7CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
KyAgICBhdWRpb0NvbnRleHQgPSBPZmZsaW5lQXVkaW9Db250ZXh0OjpjcmVhdGUoZG9jdW1lbnQs
IG51bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlLCBlYyk7CisgICAg
aWYgKGVjKSB7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CisgICAgICAgIHJl
dHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIkVycm9yIGNy
ZWF0aW5nIE9mZmxpbmVBdWRpb0NvbnRleHQiKSk7CisgICAgfQorCisgICAgaWYgKCFhdWRpb0Nv
bnRleHQuZ2V0KCkpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlUmVm
ZXJlbmNlRXJyb3IoZXhlYywgIkVycm9yIGNyZWF0aW5nIE9mZmxpbmVBdWRpb0NvbnRleHQiKSk7
CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKENSRUFURV9ET01fV1JBUFBFUihleGVjLCBq
c0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgT2ZmbGluZUF1ZGlvQ29udGV4dCwgYXVkaW9D
b250ZXh0LmdldCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhBdWRpb0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcAppbmRleCA2ZjRmZTI4YTY3YzJh
Y2RhOGFlNGVmZTM2NDdlZDZhNDkxNmUwNDlkLi4yNGNjMDE4MGQzZjVhZWQzZGI4YjMyY2Q2OGU5
NGI1NjMyOTNhYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhBdWRpb0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHAKQEAgLTMyLDkgKzMyLDExIEBACiAj
aW5jbHVkZSAiQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSAiQmluZGluZ1N0YXRlLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJPZmZsaW5lQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVk
ZSAiVjhBcnJheUJ1ZmZlci5oIgogI2luY2x1ZGUgIlY4QXVkaW9CdWZmZXIuaCIKICNpbmNsdWRl
ICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOE9mZmxpbmVBdWRpb0NvbnRleHQuaCIKICNpbmNs
dWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTQsMjkg
KzU2LDE2IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEF1ZGlvQ29udGV4dDo6Y29uc3RydWN0
b3JDYWxsYmFja0N1c3RvbShjb25zdCB2ODo6QXJndW1lCiAgICAgICAgIGlmICghYXVkaW9Db250
ZXh0LmdldCgpKQogICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IodjhTeW50YXhFcnJvciwg
ImF1ZGlvIHJlc291cmNlcyB1bmF2YWlsYWJsZSBmb3IgQXVkaW9Db250ZXh0IGNvbnN0cnVjdGlv
biIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICB9IGVsc2UgeworI2lmIEVOQUJMRShMRUdBQ1lf
V0VCX0FVRElPKQogICAgICAgICAvLyBDb25zdHJ1Y3RvciBmb3Igb2ZmbGluZSAocmVuZGVyLXRh
cmdldCkgQXVkaW9Db250ZXh0IHdoaWNoIHJlbmRlcnMgaW50byBhbiBBdWRpb0J1ZmZlci4KICAg
ICAgICAgLy8gbmV3IEF1ZGlvQ29udGV4dChpbiB1bnNpZ25lZCBsb25nIG51bWJlck9mQ2hhbm5l
bHMsIGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZGcmFtZXMsIGluIGZsb2F0IHNhbXBsZVJhdGUp
OwotICAgICAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDMpCi0gICAgICAgICAgICByZXR1cm4gdGhy
b3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CisgICAgICAgIGRv
Y3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBl
LCBXYXJuaW5nTWVzc2FnZUxldmVsLAorICAgICAgICAgICAgIkRlcHJlY2F0ZWQgQXVkaW9Db250
ZXh0IGNvbnN0cnVjdG9yOiB1c2UgT2ZmbGluZUF1ZGlvQ29udGV4dCBpbnN0ZWFkIik7CiAKLSAg
ICAgICAgYm9vbCBvayA9IGZhbHNlOwotCi0gICAgICAgIGludDMyX3QgbnVtYmVyT2ZDaGFubmVs
cyA9IHRvSW50MzIoYXJnc1swXSwgb2spOwotICAgICAgICBpZiAoIW9rIHx8IG51bWJlck9mQ2hh
bm5lbHMgPD0gMCB8fCBudW1iZXJPZkNoYW5uZWxzID4gMTApCi0gICAgICAgICAgICByZXR1cm4g
dGhyb3dFcnJvcih2OFN5bnRheEVycm9yLCAiSW52YWxpZCBudW1iZXIgb2YgY2hhbm5lbHMiLCBh
cmdzLkdldElzb2xhdGUoKSk7Ci0KLSAgICAgICAgaW50MzJfdCBudW1iZXJPZkZyYW1lcyA9IHRv
SW50MzIoYXJnc1sxXSwgb2spOwotICAgICAgICBpZiAoIW9rIHx8IG51bWJlck9mRnJhbWVzIDw9
IDApCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih2OFN5bnRheEVycm9yLCAiSW52YWxp
ZCBudW1iZXIgb2YgZnJhbWVzIiwgYXJncy5HZXRJc29sYXRlKCkpOwotCi0gICAgICAgIGZsb2F0
IHNhbXBsZVJhdGUgPSB0b0Zsb2F0KGFyZ3NbMl0pOwotICAgICAgICBpZiAoc2FtcGxlUmF0ZSA8
PSAwKQotICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IodjhTeW50YXhFcnJvciwgIkludmFs
aWQgc2FtcGxlIHJhdGUiLCBhcmdzLkdldElzb2xhdGUoKSk7Ci0KLSAgICAgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgICAgIGF1ZGlvQ29udGV4dCA9IEF1ZGlvQ29udGV4dDo6Y3JlYXRl
T2ZmbGluZUNvbnRleHQoZG9jdW1lbnQsIG51bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVz
LCBzYW1wbGVSYXRlLCBlYyk7Ci0gICAgICAgIGlmIChlYykKLSAgICAgICAgICAgIHJldHVybiBz
ZXRET01FeGNlcHRpb24oZWMsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICAgICAgcmV0dXJuIFY4
T2ZmbGluZUF1ZGlvQ29udGV4dDo6Y29uc3RydWN0b3JDYWxsYmFja0N1c3RvbShhcmdzKTsKKyNl
bHNlCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHY4U3ludGF4RXJyb3IsICJJbGxlZ2FsIEF1
ZGlvQ29udGV4dCBjb25zdHJ1Y3RvciIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyNlbmRpZgogICAg
IH0KIAogICAgIGlmICghYXVkaW9Db250ZXh0LmdldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4T2ZmbGluZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhPZmZsaW5lQXVkaW9Db250ZXh0
Q3VzdG9tLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTZiYzczZDliZDM0ZWIyYmVmZGYzMDRlOTU5OTE4ZGI3
Y2JlNWM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4T2ZmbGluZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHAKQEAgLTAsMCArMSw4NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisK
KyNpbmNsdWRlICJWOE9mZmxpbmVBdWRpb0NvbnRleHQuaCIKKworI2luY2x1ZGUgIkF1ZGlvQnVm
ZmVyLmgiCisjaW5jbHVkZSAiQmluZGluZ1N0YXRlLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNp
bmNsdWRlICJPZmZsaW5lQXVkaW9Db250ZXh0LmgiCisjaW5jbHVkZSAiVjhBcnJheUJ1ZmZlci5o
IgorI2luY2x1ZGUgIlY4QXVkaW9CdWZmZXIuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNp
bmNsdWRlIDx3dGYvQXJyYXlCdWZmZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhPZmZsaW5lQXVkaW9Db250ZXh0Ojpjb25zdHJ1Y3RvckNhbGxi
YWNrQ3VzdG9tKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0gY3VycmVudERvY3VtZW50KEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSk7CisKKyAg
ICBSZWZQdHI8T2ZmbGluZUF1ZGlvQ29udGV4dD4gYXVkaW9Db250ZXh0OworICAgIAorICAgIC8v
IENvbnN0cnVjdG9yIGZvciBvZmZsaW5lIChyZW5kZXItdGFyZ2V0KSBPZmZsaW5lQXVkaW9Db250
ZXh0IHdoaWNoIHJlbmRlcnMgaW50byBhbiBBdWRpb0J1ZmZlci4KKyAgICAvLyBuZXcgT2ZmbGlu
ZUF1ZGlvQ29udGV4dChpbiB1bnNpZ25lZCBsb25nIG51bWJlck9mQ2hhbm5lbHMsIGluIHVuc2ln
bmVkIGxvbmcgbnVtYmVyT2ZGcmFtZXMsIGluIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIGlmIChh
cmdzLkxlbmd0aCgpIDwgMykKKyAgICAgICAgcmV0dXJuIHRocm93Tm90RW5vdWdoQXJndW1lbnRz
RXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOworCisgICAgYm9vbCBvayA9IGZhbHNlOworCisgICAg
aW50MzJfdCBudW1iZXJPZkNoYW5uZWxzID0gdG9JbnQzMihhcmdzWzBdLCBvayk7CisgICAgaWYg
KCFvayB8fCBudW1iZXJPZkNoYW5uZWxzIDw9IDAgfHwgbnVtYmVyT2ZDaGFubmVscyA+IDEwKQor
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih2OFN5bnRheEVycm9yLCAiSW52YWxpZCBudW1iZXIg
b2YgY2hhbm5lbHMiLCBhcmdzLkdldElzb2xhdGUoKSk7CisKKyAgICBpbnQzMl90IG51bWJlck9m
RnJhbWVzID0gdG9JbnQzMihhcmdzWzFdLCBvayk7CisgICAgaWYgKCFvayB8fCBudW1iZXJPZkZy
YW1lcyA8PSAwKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih2OFN5bnRheEVycm9yLCAiSW52
YWxpZCBudW1iZXIgb2YgZnJhbWVzIiwgYXJncy5HZXRJc29sYXRlKCkpOworCisgICAgZmxvYXQg
c2FtcGxlUmF0ZSA9IHRvRmxvYXQoYXJnc1syXSk7CisgICAgaWYgKHNhbXBsZVJhdGUgPD0gMCkK
KyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IodjhTeW50YXhFcnJvciwgIkludmFsaWQgc2FtcGxl
IHJhdGUiLCBhcmdzLkdldElzb2xhdGUoKSk7CisKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
KyAgICBhdWRpb0NvbnRleHQgPSBPZmZsaW5lQXVkaW9Db250ZXh0OjpjcmVhdGUoZG9jdW1lbnQs
IG51bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlLCBlYyk7CisgICAg
aWYgKGVjKQorICAgICAgICByZXR1cm4gc2V0RE9NRXhjZXB0aW9uKGVjLCBhcmdzLkdldElzb2xh
dGUoKSk7CisKKyAgICBpZiAoIWF1ZGlvQ29udGV4dC5nZXQoKSkKKyAgICAgICAgcmV0dXJuIHRo
cm93RXJyb3IodjhTeW50YXhFcnJvciwgIkVycm9yIGNyZWF0aW5nIE9mZmxpbmVBdWRpb0NvbnRl
eHQiLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgCisgICAgLy8gVHJhbnNmb3JtIHRoZSBob2xk
ZXIgaW50byBhIHdyYXBwZXIgb2JqZWN0IGZvciB0aGUgYXVkaW8gY29udGV4dC4KKyAgICB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBhcmdzLkhvbGRlcigpOworICAgIFY4RE9NV3Jh
cHBlcjo6Y3JlYXRlRE9NV3JhcHBlcihhdWRpb0NvbnRleHQucmVsZWFzZSgpLCAmaW5mbywgd3Jh
cHBlcik7CisgICAgCisgICAgcmV0dXJuIHdyYXBwZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTU4YzBkYWRlYTg4
ZTg4ZWYwZmQxYTA1MTcwMWMzODExMDRiYjViMS4uZjdjNjExZDBkNGUyNTM0NjQxYmVkN2Y0NzIx
NjBhMWNkYjIwZmVhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEyLTEyLTA1ICBDaHJpcyBS
b2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IE9mZmxpbmVB
dWRpb0NvbnRleHQgY29uc3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwNDE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFN3aXRjaCBXZWIgQXVkaW8gbGF5b3V0IHRlc3RzIHRvIHVzZSBPZmZs
aW5lQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yLgorCisgICAgICAgICogd2ViYXVkaW8vYXVkaW9i
dWZmZXJzb3VyY2UtbG9vcC1jb21wcmVoZW5zaXZlLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8v
YXVkaW9idWZmZXJzb3VyY2UtbG9vcC1wb2ludHMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9h
dWRpb2J1ZmZlcnNvdXJjZS1tdWx0aS1jaGFubmVscy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlv
L2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrU3RhdGUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRp
by9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRp
by9hdWRpb2J1ZmZlcnNvdXJjZS1zdGFydC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlv
YnVmZmVyc291cmNlLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVyZ2Vy
LXN0ZXJlby5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvY2hhbm5lbHNwbGl0dGVyLmh0
bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3JkZXIuaHRtbDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9hdWRpb25vZGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1
ZGlvL2F1ZGlvcGFyYW0tY29ubmVjdC1hdWRpb3JhdGVzaWduYWwuaHRtbDoKKyAgICAgICAgKiB3
ZWJhdWRpby9hdWRpb3BhcmFtLXN1bW1pbmdqdW5jdGlvbi5odG1sOgorICAgICAgICAqIHdlYmF1
ZGlvL2F1dG9tYXRpYy1wdWxsLW5vZGUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9iaXF1YWQt
YWxscGFzcy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2JpcXVhZC1iYW5kcGFzcy5odG1sOgor
ICAgICAgICAqIHdlYmF1ZGlvL2JpcXVhZC1oaWdocGFzcy5odG1sOgorICAgICAgICAqIHdlYmF1
ZGlvL2JpcXVhZC1oaWdoc2hlbGYuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9iaXF1YWQtbG93
cGFzcy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2JpcXVhZC1sb3dzaGVsZi5odG1sOgorICAg
ICAgICAqIHdlYmF1ZGlvL2JpcXVhZC1ub3RjaC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2Jp
cXVhZC1wZWFraW5nLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vY29udm9sdXRpb24tbW9uby1t
b25vLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZGVsYXlub2RlLW1heC1kZWZhdWx0LWRlbGF5
Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZGVsYXlub2RlLW1heC1ub25kZWZhdWx0LWRlbGF5
Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5Lmh0bWw6CisgICAg
ICAgICogd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5bGltaXQuaHRtbDoKKyAgICAgICAgKiB3
ZWJhdWRpby9kZWxheW5vZGUtc2NoZWR1bGluZy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2Rl
bGF5bm9kZS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2Rpc3RhbmNlLWV4cG9uZW50aWFsLmh0
bWw6CisgICAgICAgICogd2ViYXVkaW8vZGlzdGFuY2UtaW52ZXJzZS5odG1sOgorICAgICAgICAq
IHdlYmF1ZGlvL2Rpc3RhbmNlLWxpbmVhci5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2dhaW4u
aHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2RlLXplcm8taW5wdXQt
Y2hhbm5lbHMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2RlLmh0
bWw6CisgICAgICAgICogd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWdjLmh0
bWw6CisgICAgICAgICogd2ViYXVkaW8vbWl4aW5nLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8v
bm90ZS1ncmFpbi1vbi1wbGF5Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vbm90ZS1ncmFpbi1v
bi10aW1pbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9vc2NpbGxhdG9yLWJhc2ljLmh0bWw6
CisgICAgICAgICogd2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXItc3RlcmVvLmh0bWw6CisgICAg
ICAgICogd2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXIuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRp
by9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9y
ZXNvdXJjZXMvYXVkaW8tY29kZWMtdGVzdC5qczoKKyAgICAgICAgKHJ1bkRlY29kaW5nVGVzdCk6
CisgICAgICAgICogd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5qczoKKyAg
ICAgICAgKGNyZWF0ZUF1ZGlvR3JhcGhBbmRUZXN0KToKKyAgICAgICAgKiB3ZWJhdWRpby9yZXNv
dXJjZXMvamF2YXNjcmlwdGF1ZGlvbm9kZS10ZXN0aW5nLmpzOgorICAgICAgICAocnVuSlNOb2Rl
VGVzdCk6CisgICAgICAgICogd2ViYXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxpbmcuaHRt
bDoKKyAgICAgICAgKiB3ZWJhdWRpby9zdGVyZW8ybW9uby1kb3duLW1peGluZy5odG1sOgorICAg
ICAgICAqIHdlYmF1ZGlvL3VwLW1peGluZy1tb25vLTUxLmh0bWw6CisgICAgICAgICogd2ViYXVk
aW8vdXAtbWl4aW5nLW1vbm8tc3RlcmVvLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vdXAtbWl4
aW5nLXN0ZXJlby01MS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3dhdmVzaGFwZXIuaHRtbDoK
KwogMjAxMi0xMi0wMyAgQWxleGlzIE1lbmFyZCAgPGFsZXhpc0B3ZWJraXQub3JnPgogCiAgICAg
ICAgIFtFRkxdIEVuYWJsZSBDU1MzIGJhY2tncm91bmQtcG9zaXRpb24gb2Zmc2V0cyBieSBkZWZh
dWx0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Ut
bG9vcC1jb21wcmVoZW5zaXZlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZl
cnNvdXJjZS1sb29wLWNvbXByZWhlbnNpdmUuaHRtbAppbmRleCAyNTIwNjlmYWFmOTBjNmI0Mzg3
NmM3NWIyMzNlNjY2OTk1ZDkwMzQyLi5hZWRlNDc4ZmVmODNlYzQ5ZTRjYzNmYjQzMDg5YjM4ZjY3
ZjM1MzAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJj
ZS1sb29wLWNvbXByZWhlbnNpdmUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b2J1ZmZlcnNvdXJjZS1sb29wLWNvbXByZWhlbnNpdmUuaHRtbApAQCAtOTcsNyArOTcsNyBAQCBm
dW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAog
ICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBu
ZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIHRvdGFsUmVuZGVyTGVuZ3RoRnJhbWVzLCBzYW1wbGVS
YXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEs
IHRvdGFsUmVuZGVyTGVuZ3RoRnJhbWVzLCBzYW1wbGVSYXRlKTsKICAgICBidWZmZXIgPSBjcmVh
dGVUZXN0QnVmZmVyKGNvbnRleHQsIGJ1ZmZlckZyYW1lTGVuZ3RoKTsKIAogICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1sb29wLXBvaW50cy5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbG9vcC1wb2ludHMuaHRtbAppbmRleCAwMGZmYTg3
ZWM3ZGJhOTUyMWM1N2M1MzE4NzcyYjk2MjRiZGRjY2E5Li41NjAxZDAyNTVhZmQ4YTVjMzY0OTlh
ODIxMzQ3YzllY2IxYjQ2ZDdkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b2J1ZmZlcnNvdXJjZS1sb29wLXBvaW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvYnVmZmVyc291cmNlLWxvb3AtcG9pbnRzLmh0bWwKQEAgLTgyLDcgKzgyLDcgQEAgZnVu
Y3Rpb24gaW5pdCgpIHsKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUg
YXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBz
YW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0g
bmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vj
b25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBDcmVhdGUgdGhlIHRlc3QgYnVmZmVyLgogICAg
IC8vIFdlJ2xsIGxvb3AgdGhpcyB3aXRoIHRoZSBsb29wLXBvaW50cyBzZXQgZm9yIHRoZSAybmQg
aGFsZiBvZiB0aGlzIGJ1ZmZlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvYnVmZmVyc291cmNlLW11bHRpLWNoYW5uZWxzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb2J1ZmZlcnNvdXJjZS1tdWx0aS1jaGFubmVscy5odG1sCmluZGV4IGFlODI4ZjM3Mzg0
OGVmYjI3NzExZGYzMGZjMWQ2YTQyYjJmYjgxYzEuLjdiODUzZjdlMzViNDYxYzE4ZjgzNWEwMGE1
YTEzMTkwZmY3MDgxYTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVm
ZmVyc291cmNlLW11bHRpLWNoYW5uZWxzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9idWZmZXJzb3VyY2UtbXVsdGktY2hhbm5lbHMuaHRtbApAQCAtMjMsNyArMjMsNyBAQCBm
dW5jdGlvbiBydW5UZXN0KCkgewogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4
dAogICAgIHZhciBzYW1wbGVSYXRlID0gNDQxMDAuMDsKLSAgICB2YXIgY29udGV4dCA9IG5ldyB3
ZWJraXRBdWRpb0NvbnRleHQoNiwgc2FtcGxlUmF0ZSAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1w
bGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0
KDYsIHNhbXBsZVJhdGUgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgdmFy
IHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVyKGNvbnRleHQsIDQ0MCwgdG9uZUxlbmd0aFNl
Y29uZHMsIDYpOyAKIAogICAgIHZhciBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJj
ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Ut
cGxheWJhY2tTdGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3Vy
Y2UtcGxheWJhY2tTdGF0ZS5odG1sCmluZGV4IGMzMmY5OTZmNDc5NzU3NTk5ZDljOTg3YWE0MDBi
ODI0ZDg3MDkyNzIuLmQyYzNlMTQxMjI0YzMyN2UzMWM3NGViODZhYTVjOWM3Y2YxMzZjYWIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNr
U3RhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1w
bGF5YmFja1N0YXRlLmh0bWwKQEAgLTEwNSw3ICsxMDUsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkK
ICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAvLyBDcmVhdGUgb2ZmbGlu
ZSBhdWRpbyBjb250ZXh0LCByZW5kZXJpbmcgZm9yIHJlbmRlclRpbWUgc2Vjb25kcy4KLSAgICBj
b250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCB0aW1lVG9TYW1wbGVGcmFtZShyZW5k
ZXJUaW1lLCBzYW1wbGVSYXRlKSwgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJr
aXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHRpbWVUb1NhbXBsZUZyYW1lKHJlbmRlclRpbWUsIHNh
bXBsZVJhdGUpLCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIFRoaXMgaXMgb25seSB1c2VkIHNvIHdl
IGNhbiBhY2Nlc3MgdGhlIHBsYXliYWNrIHN0YXRlIGNvbnN0YW50cy4KICAgICB2YXIgYnVmZmVy
U291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrcmF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tyYXRlLmh0bWwKaW5k
ZXggMGQ0ZTNkNmJkZjAwZTRhZTliZDJlNDZkMjA3NDI3NWE4ZGU0MzBhZS4uMmNhYTBmYjNmZjYz
NDc4ODNlZGY4MzJhMmFiMzE4ODFjMTFlZDM1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tyYXRlLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tyYXRlLmh0bWwKQEAgLTcxLDcg
KzcxLDcgQEAgZnVuY3Rpb24gaW5pdCgpIHsKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gQ3Jl
YXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlv
Q29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAg
ICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAq
IGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBDcmVhdGUgYSBzaW5nbGUg
Y3ljbGUgb2YgYSBzaW5lIHdhdmUuCiAgICAgLy8gV2UnbGwgbG9vcCB0aGlzIHRvIHBsYXkgbm90
ZXMgb2YgYSBnaXZlbiBkdXJhdGlvbiwgYXQgYSBnaXZlbiBwbGF5YmFjayByYXRlLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Utc3RhcnQuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXN0YXJ0Lmh0bWwKaW5kZXgg
YjY5N2I3ZTM5OTU3MzM5ODMxN2NjYTdlY2JkMGJjMjgwNGU3Y2Y5Ni4uODU1ZDAxOWVhNWM4MzU2
YjdhNDM1ODAzZjQ3MDliY2FjZTc1MzNkMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9idWZmZXJzb3VyY2Utc3RhcnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb2J1ZmZlcnNvdXJjZS1zdGFydC5odG1sCkBAIC04MCw3ICs4MCw3IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgLy8g
Q3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJr
aXRBdWRpb0NvbnRleHQoMSwgdG90YWxSZW5kZXJMZW5ndGhGcmFtZXMsIHNhbXBsZVJhdGUpOwor
ICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgdG90YWxS
ZW5kZXJMZW5ndGhGcmFtZXMsIHNhbXBsZVJhdGUpOwogICAgIGJ1ZmZlciA9IGNyZWF0ZVRlc3RC
dWZmZXIoY29udGV4dCwgYnVmZmVyRnJhbWVMZW5ndGgpOwogCiAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvYnVmZmVyc291cmNlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZl
cnNvdXJjZS5odG1sCmluZGV4IGMwMGQ3YjJlODE4OTdjYjEyZjMwNzNhZDE5ZDRiNTk4ODI2NzY4
NGQuLmRiZTEwNTQ4ZmI0YjhmNGMwYzgxMGVlMThmNjQ2NzYzMjA4ZmI2N2EgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UuaHRtbApAQCAtMjQsNyArMjQsNyBAQCBm
dW5jdGlvbiBpbml0KCkgewogICAgICAgICByZXR1cm47CiAgICAgICAgIAogICAgIC8vIENyZWF0
ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0Nv
bnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAg
Y29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiBs
ZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgIAogICAgIGJ1ZmZlckxvYWRlciA9IG5l
dyBCdWZmZXJMb2FkZXIoCiAgICAgICAgIGNvbnRleHQsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJnZXItc3RlcmVvLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJnZXItc3RlcmVvLmh0bWwKaW5kZXggYzQ2NmM2ODA2NDVl
ZjBlYTEzODVkM2YxZjg4ZWM2NThlM2ZmZGMzNC4uNDEyZjU4NzAxMGNkNDI3OGFiYWU5NjRjY2Nj
YTFhYmMxZTljZDk5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jaGFu
bmVsbWVyZ2VyLXN0ZXJlby5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY2hh
bm5lbG1lcmdlci1zdGVyZW8uaHRtbApAQCAtNzgsNyArNzgsNyBAQCBmdW5jdGlvbiBydW5UZXN0
KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8g
Q3JlYXRlIHN0ZXJlbyBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3
ZWJraXRBdWRpb0NvbnRleHQoMiwgbGVuZ3RoSW5TYW1wbGVGcmFtZXMsIHNhbXBsZVJhdGUpOwor
ICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBsZW5ndGhJblNh
bXBsZUZyYW1lcywgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBDcmVhdGUgdHdvIG1vbm8gYnVmZmVy
cywgb25lIGhhdmluZyBhbGwgLTEgdmFsdWVzLCB0aGUgb3RoZXIgYWxsICsxLgogICAgIGJ1ZmZl
cjEgPSBjcmVhdGVCdWZmZXJXaXRoRENPZmZzZXQobGVuZ3RoSW5TYW1wbGVGcmFtZXMsIHNhbXBs
ZVJhdGUsIC0xKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY2hhbm5l
bHNwbGl0dGVyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxzcGxpdHRl
ci5odG1sCmluZGV4IGFiNjJjMGJlYjBmY2ZlNzgxZjA1YzMwNmE5MTZkYTAzNTVkZjQzNTAuLmM3
YTUxNDNlYTNkODYxODQyMWQzYTEwMzg1Mjc1NDU1ZWQzZWRiNjggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY2hhbm5lbHNwbGl0dGVyLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsc3BsaXR0ZXIuaHRtbApAQCAtODEsNyArODEsNyBAQCBm
dW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAog
ICAgIC8vIENyZWF0ZSBzdGVyZW8gb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQg
PSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIGxlbmd0aEluU2FtcGxlRnJhbWVzLCBzYW1wbGVS
YXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgbGVu
Z3RoSW5TYW1wbGVGcmFtZXMsIHNhbXBsZVJhdGUpOwogCiAgICAgdHJ5IHsKICAgICAgICAgdmFy
IHNwbGl0dGVybm9kZSA9IGNvbnRleHQuY3JlYXRlQ2hhbm5lbFNwbGl0dGVyKDApOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3JkZXIuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvbm9kZS1jb25uZWN0LW9yZGVyLmh0bWwKaW5kZXgg
YWI0YzQwMmMzNTA5MTE3YzdmMGU2MzFmMzcwN2MxOGVlZDEwZjQwMC4uM2RmYjJmMDJmOTJmOGZj
N2VhM2U1MWFmNTQwYjg0NGFmZDI1NjNiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3JkZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb25vZGUtY29ubmVjdC1vcmRlci5odG1sCkBAIC00MCw3ICs0MCw3IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAK
ICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0g
bmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25k
cywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlv
Q29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7
CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVTaW5XYXZlQnVmZmVyKGNvbnRleHQsIHJlbmRl
ckxlbmd0aFNlY29uZHMsIDg4MCk7CiAgICAgCiAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRl
eHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb25vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9ub2Rl
LWV4cGVjdGVkLnR4dAppbmRleCAwNTQwZmU3NDk5ZjA5ODI5YTM5ZTk2MjhlZjFkYjhiZTAwZmI5
OGRlLi44MzU4YzczYWI2ZmMwNmUwZGYwZTUzN2RjZmQzMGViMzFmZjM2NjZkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb25vZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvbm9kZS1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0IEBACitD
T05TT0xFIE1FU1NBR0U6IERlcHJlY2F0ZWQgQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yOiB1c2Ug
T2ZmbGluZUF1ZGlvQ29udGV4dCBpbnN0ZWFkCiBCYXNpYyB0ZXN0cyBmb3IgQXVkaW9Ob2RlIEFQ
SS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9wYXJhbS1jb25uZWN0LWF1ZGlvcmF0ZXNpZ25hbC5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1jb25uZWN0LWF1ZGlvcmF0ZXNpZ25hbC5odG1sCmlu
ZGV4IDE3M2FjNmZkOTkxYjJlMTZmZWRkNjJmZjZhNmIzYTQyYThiMzk3NGQuLjFjMWIzZDMwNTJi
MDFmODk5ZDg2YWFmOGU3NzQ2ZjU2MzEyYWJlMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvcGFyYW0tY29ubmVjdC1hdWRpb3JhdGVzaWduYWwuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNvbm5lY3QtYXVkaW9yYXRlc2lnbmFsLmh0bWwK
QEAgLTY5LDcgKzY5LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB2YXIgc2FtcGxlRnJh
bWVMZW5ndGggPSBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzOwogCiAgICAgLy8gQ3JlYXRl
IG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29u
dGV4dCgxLCBzYW1wbGVGcmFtZUxlbmd0aCwgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5l
dyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZUZyYW1lTGVuZ3RoLCBzYW1wbGVS
YXRlKTsKIAogICAgIC8vIENyZWF0ZSBidWZmZXIgdXNlZCBieSB0aGUgc291cmNlIHdoaWNoIHdp
bGwgaGF2ZSBpdHMgZ2FpbiBjb250cm9sbGVkLgogICAgIGNvbnN0YW50T25lQnVmZmVyID0gY3Jl
YXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgc2FtcGxlRnJhbWVMZW5ndGgsIDEpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1zdW1taW5nanVuY3Rpb24uaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tc3VtbWluZ2p1bmN0aW9uLmh0bWwK
aW5kZXggOWMyNjdlZmEwMTU4ZTQzZDg1ZDg1ZmMwZDRmNTFlNzRmM2M1ZjY2NC4uYTgyYjI3NTJh
NmQxYTRiY2YxYzkyOGI2ZmVkMjU1MzBlNjhiZmY5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9wYXJhbS1zdW1taW5nanVuY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9hdWRpb3BhcmFtLXN1bW1pbmdqdW5jdGlvbi5odG1sCkBAIC04Miw3ICs4Miw3
IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgdmFyIHNhbXBsZUZyYW1lTGVuZ3RoID0gc2Ft
cGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kczsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlv
IGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgc2FtcGxl
RnJhbWVMZW5ndGgsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGlu
ZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVGcmFtZUxlbmd0aCwgc2FtcGxlUmF0ZSk7CiAKICAgICAv
LyBDcmVhdGUgYnVmZmVyIHVzZWQgYnkgdGhlIHNvdXJjZSB3aGljaCB3aWxsIGhhdmUgaXRzIGdh
aW4gY29udHJvbGxlZC4KICAgICB2YXIgY29uc3RhbnRPbmVCdWZmZXIgPSBjcmVhdGVDb25zdGFu
dEJ1ZmZlcihjb250ZXh0LCBzYW1wbGVGcmFtZUxlbmd0aCwgMSk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9hdXRvbWF0aWMtcHVsbC1ub2RlLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdXRvbWF0aWMtcHVsbC1ub2RlLmh0bWwKaW5kZXggZTI3Mzc0NTcwYzdkNDlhYWMy
OTJlNzUzMjUwMDAwMzE3YjU2YmNiNC4uNDQwYzcwNmYwNjgzNjI2MzAwZDgzMGQyMWJlZGM5ZDVl
NzhjMmJmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXV0b21hdGljLXB1bGwt
bm9kZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1dG9tYXRpYy1wdWxsLW5vZGUu
aHRtbApAQCAtMzAsNyArMzAsNyBAQCB2YXIgYW5hbHlzZXI7CiAKIGZ1bmN0aW9uIGNvbnN0cnVj
dENvbW1vbkdyYXBoKCkgewogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0g
ICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgcmVuZGVyTGVuZ3RoSW5GcmFt
ZXMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29u
dGV4dCgxLCByZW5kZXJMZW5ndGhJbkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgY29uc3RhbnRC
dWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCByZW5kZXJMZW5ndGhJbkZyYW1l
cywgMSk7CiAKICAgICBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWFsbHBhc3MuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1hbGxwYXNzLmh0bWwKaW5kZXggZWNmY2M5NWRk
MmQ0ZTY5YzE1Y2JlMWRlYjllODFkMjI2ZDY1MWUyMC4uNDIzNDQ2ZTkyZGNiZjMzNzhmNjM0YmVi
MzJkNDYzMWRkNjNkZDI5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFk
LWFsbHBhc3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtYWxscGFzcy5o
dG1sCkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRp
byBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBz
YW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNv
bnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVu
ZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBEdW1teSBmaWx0ZXIgdG8g
Z2V0IGZpbHRlciB0eXBlIGNvbnN0YW50CiAgICAgdmFyIGYgPSBjb250ZXh0LmNyZWF0ZUJpcXVh
ZEZpbHRlcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWJhbmRw
YXNzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtYmFuZHBhc3MuaHRtbAppbmRl
eCAzNGUyNTY3YjI2NGUxN2NjZGVmMTg2ZmNmOTAwYWZlMTk3Y2VkY2ZiLi4zMmMyY2U3MjE0OTc2
MGEzYzgyNDU0MjgwNDkyMTJhNGFkNmZlMjYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby9iaXF1YWQtYmFuZHBhc3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1
YWQtYmFuZHBhc3MuaHRtbApAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewog
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRl
IG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRp
b0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUp
OworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2Ft
cGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgLy8gRHVt
bXkgZmlsdGVyIHRvIGdldCBmaWx0ZXIgdHlwZSBjb25zdGFudAogICAgIHZhciBmID0gY29udGV4
dC5jcmVhdGVCaXF1YWRGaWx0ZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2JpcXVhZC1oaWdocGFzcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWhpZ2hw
YXNzLmh0bWwKaW5kZXggNTY3MzBjNWRmODdkZjljYTBkZjM4YWI2OGM1YWFiNjJiYTIyMjYwNC4u
ZWI2MzBjOGQ5NjE2NjE0YWY5NDI2OTFjYTViZmU2YmJlMWM3MmUwOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWhpZ2hwYXNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYmlxdWFkLWhpZ2hwYXNzLmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAog
ICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBu
ZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRz
LCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9D
b250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsK
IAogICAgIC8vIER1bW15IGZpbHRlciB0byBnZXQgZmlsdGVyIHR5cGUgY29uc3RhbnQKICAgICB2
YXIgZiA9IGNvbnRleHQuY3JlYXRlQmlxdWFkRmlsdGVyKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9iaXF1YWQtaGlnaHNoZWxmLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9iaXF1YWQtaGlnaHNoZWxmLmh0bWwKaW5kZXggY2UyOWE0MzUzY2RmODhlNzc4YzZjYjlhYWMy
MzllMjU2YzFmYWJmNC4uOGY4M2I1MDdlNmJlY2RhZTJmYTA3ZjJlZjM3M2Y3ZjUwNTA0MGQ3MiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWhpZ2hzaGVsZi5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1oaWdoc2hlbGYuaHRtbApAQCAtMjUsNyAr
MjUsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAg
ICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJl
bmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdl
YmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29u
ZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgLy8gRHVtbXkgZmlsdGVyIHRvIGdldCBmaWx0ZXIgdHlw
ZSBjb25zdGFudAogICAgIHZhciBmID0gY29udGV4dC5jcmVhdGVCaXF1YWRGaWx0ZXIoKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1sb3dwYXNzLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtbG93cGFzcy5odG1sCmluZGV4IDhkNWU0YTk4MTZjMDc1
MDRkNGM0ODAyMTdmMjNlZmYyMjRmNTEwMzQuLjdlYmRmMDExN2RkMjI1OWZkNzQ4MzU0M2I2NmYy
OTYxY2M1MWQ0OTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1sb3dw
YXNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWxvd3Bhc3MuaHRtbApA
QCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29u
dGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxl
UmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0
ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxl
bmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgLy8gRHVtbXkgZmlsdGVyIHRvIGdldCBm
aWx0ZXIgdHlwZSBjb25zdGFudAogICAgIHZhciBmID0gY29udGV4dC5jcmVhdGVCaXF1YWRGaWx0
ZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1sb3dzaGVsZi5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWxvd3NoZWxmLmh0bWwKaW5kZXggYzBk
ZjFiY2IwYjVjOGZkMWU2NjVmY2Q2N2I5ZGVjNjAyMGFjOGQ3MS4uMDNiMDdkNWNhYWFiNjM2MWE2
ZmJiMjUzMTU0NGYyYTEzZDJlODYyNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YmlxdWFkLWxvd3NoZWxmLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWxv
d3NoZWxmLmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZs
aW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250
ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAg
ICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJh
dGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIER1bW15IGZp
bHRlciB0byBnZXQgZmlsdGVyIHR5cGUgY29uc3RhbnQKICAgICB2YXIgZiA9IGNvbnRleHQuY3Jl
YXRlQmlxdWFkRmlsdGVyKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1
YWQtbm90Y2guaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1ub3RjaC5odG1sCmlu
ZGV4IDZjNGE2NzIzNjM1MTE1N2JjNzkyNGRlZTczZmFjYWY2OWY4MTY1ZDcuLjUyZDJlY2E0NmM2
OGNmNGVhNzQyNjlkZTU5NzNmM2UxYzU2MDJhMTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2JpcXVhZC1ub3RjaC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVh
ZC1ub3RjaC5odG1sCkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2Zm
bGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29u
dGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7Cisg
ICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVS
YXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBEdW1teSBm
aWx0ZXIgdG8gZ2V0IGZpbHRlciB0eXBlIGNvbnN0YW50CiAgICAgdmFyIGYgPSBjb250ZXh0LmNy
ZWF0ZUJpcXVhZEZpbHRlcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlx
dWFkLXBlYWtpbmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1wZWFraW5nLmh0
bWwKaW5kZXggODUxOWE2NDgxNmViZThiOTA0OGE1ZTVjZTdlZjYzOGUzZmYzOWNhMy4uZmM0NjBl
YjNiMDc1NzU2ZTAxOGM3NzIzYjc0MDhmN2Q4YmEzZTRiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYmlxdWFkLXBlYWtpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9iaXF1YWQtcGVha2luZy5odG1sCkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBD
cmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtp
dEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxl
UmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgy
LCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAv
LyBEdW1teSBmaWx0ZXIgdG8gZ2V0IGZpbHRlciB0eXBlIGNvbnN0YW50CiAgICAgdmFyIGYgPSBj
b250ZXh0LmNyZWF0ZUJpcXVhZEZpbHRlcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vY29udm9sdXRpb24tbW9uby1tb25vLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9j
b252b2x1dGlvbi1tb25vLW1vbm8uaHRtbAppbmRleCAwZmI0MmQ3YTFhOGZhYTBlMTExZDI0Mjdh
Nzg1OGRiOTE5OWM1MGZmLi5iZjU3ZjM4M2Q1NmFkNjg1YjA2ODYwZWMyYjYzMTM0YzM4MjFhYjRm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9jb252b2x1dGlvbi1tb25vLW1vbm8u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9jb252b2x1dGlvbi1tb25vLW1vbm8uaHRt
bApAQCAtMzUsNyArMzUsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8g
Y29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2Ft
cGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250
ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRl
ckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgdmFyIHNxdWFyZVB1bHNlID0gY3Jl
YXRlU3F1YXJlUHVsc2VCdWZmZXIoY29udGV4dCwgcHVsc2VMZW5ndGhGcmFtZXMpOwogICAgIHZh
ciB0cmlhbmdsZVB1bHNlID0gY3JlYXRlVHJpYW5nbGVQdWxzZUJ1ZmZlcihjb250ZXh0LCAyICog
cHVsc2VMZW5ndGhGcmFtZXMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVs
YXlub2RlLW1heC1kZWZhdWx0LWRlbGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxh
eW5vZGUtbWF4LWRlZmF1bHQtZGVsYXkuaHRtbAppbmRleCA2YmNjMjYwYWFiYjUyZjBkNmFmNjlj
OTdhYjAxNzBjZGU4OTlkOTJkLi4wZjBmODEyMDc3OTViNTk0ODY3MDFiNGM1MmE2Mjc4OTQzZmIw
NjQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LWRlZmF1
bHQtZGVsYXkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LWRl
ZmF1bHQtZGVsYXkuaHRtbApAQCAtMjQsNyArMjQsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewog
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRl
IG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRp
b0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUp
OworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2Ft
cGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25l
QnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250ZXh0LCAyMCwgMjAgKiB0b25lTGVuZ3RoU2Vj
b25kcywgc2FtcGxlUmF0ZSk7IC8vIDIwSHogdG9uZQogICAgIAogICAgIHZhciBidWZmZXJTb3Vy
Y2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heC1ub25kZWZhdWx0LWRlbGF5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LW5vbmRlZmF1bHQtZGVsYXkuaHRtbAppbmRleCA0
MWFkMWUyYTU5NGIxMzU0MTk3Yzc0Y2MzZDRjZTMwZmE3MGVjNjBjLi5lMjgzMzUzODI0ZDUzZjhj
OWEwNGExZTVhOTE1N2Q1MWZkYTRhNDE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9kZWxheW5vZGUtbWF4LW5vbmRlZmF1bHQtZGVsYXkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9kZWxheW5vZGUtbWF4LW5vbmRlZmF1bHQtZGVsYXkuaHRtbApAQCAtMjQsNyArMjQs
NyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2
YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRl
ckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtp
dE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMs
IHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250
ZXh0LCAyMCwgMjAgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7IC8vIDIwSHogdG9u
ZQogICAgIAogICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJj
ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXkuaHRtbAppbmRl
eCBlMjdjNTNjMWFjN2U5MjA3ZmIzYzAwOGU5ZmU1M2NiYjRhMGYwYWU3Li4wODkyZDRlYzg2N2Fj
ZWIxZjk4YzM4YThiYjVmZTQxN2NjMzE4MDRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby9kZWxheW5vZGUtbWF4ZGVsYXkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9k
ZWxheW5vZGUtbWF4ZGVsYXkuaHRtbApAQCAtMjQsNyArMjQsNyBAQCBmdW5jdGlvbiBydW5UZXN0
KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8g
Q3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJr
aXRBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBs
ZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQo
MSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgIHZh
ciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250ZXh0LCAyMCwgMjAgKiB0b25lTGVu
Z3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7IC8vIDIwSHogdG9uZQogICAgIAogICAgIHZhciBidWZm
ZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5bGltaXQuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXhkZWxheWxpbWl0Lmh0bWwKaW5kZXggNTJlNWViMjY5
MzYyMmM5NmQ4MDAwNzE2Y2IwOGE0ZWY0YTY2Mzg1NS4uZmIyMDZhNjI5NzFkYjk1YmYwZGY2NDFm
YzczNTRmMjhmMWFiMjYzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlu
b2RlLW1heGRlbGF5bGltaXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5v
ZGUtbWF4ZGVsYXlsaW1pdC5odG1sCkBAIC0yNCw3ICsyNCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBD
cmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtp
dEF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxl
UmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgx
LCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgdmFy
IHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVyKGNvbnRleHQsIDIwLCAyMCAqIHRvbmVMZW5n
dGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsgLy8gMjBIeiB0b25lCiAgICAgCiAgICAgdmFyIGJ1ZmZl
clNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtc2NoZWR1bGluZy5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vZGVsYXlub2RlLXNjaGVkdWxpbmcuaHRtbAppbmRleCAxNGRmYmQyNmU5OGQzZDRm
MWEzOTc4Y2NlMDVkMTM3MDM0NWY0ZWUxLi5kZmFmN2Q5MDhkYmE1YjRkNDNjY2ZkM2UxZGIzYmUz
YzAzMGZiNGNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtc2No
ZWR1bGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1zY2hlZHVs
aW5nLmh0bWwKQEAgLTI0LDcgKzI0LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5l
IGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0
KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2
YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUg
KiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1ZmZlciA9
IGNyZWF0ZVRvbmVCdWZmZXIoY29udGV4dCwgMjAsIDIwICogdG9uZUxlbmd0aFNlY29uZHMsIHNh
bXBsZVJhdGUpOyAvLyAyMEh6IHRvbmUKICAgICAKICAgICB2YXIgYnVmZmVyU291cmNlID0gY29u
dGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2RlbGF5bm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLmh0bWwK
aW5kZXggNDAzODU1OGU4ZmM3NDQyNTlkMTAxMmZhMTJjOTM4NTQyY2NiNjI2MC4uODdjNDdlNzJk
OTYwZWY0YjcxZDIyNDczZjM5OGI2YmFjM2EyZjk3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vZGVsYXlub2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlu
b2RlLmh0bWwKQEAgLTI0LDcgKzI0LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5l
IGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0
KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2
YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUg
KiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1ZmZlciA9
IGNyZWF0ZVRvbmVCdWZmZXIoY29udGV4dCwgMjAsIDIwICogdG9uZUxlbmd0aFNlY29uZHMsIHNh
bXBsZVJhdGUpOyAvLyAyMEh6IHRvbmUKICAgICAKICAgICB2YXIgYnVmZmVyU291cmNlID0gY29u
dGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2Rpc3RhbmNlLWV4cG9uZW50aWFsLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0
YW5jZS1leHBvbmVudGlhbC5odG1sCmluZGV4IGMwNTlkMTU3YjdjZGJhODZlZGI0NGU4MTQxZDY0
M2Q1Mjg2NWQxMWYuLmZhMGY5OTEwNTZlMmMyZjBlMzhjMjA3NWZlNDc1Mzk1ZmI5MjMwMDUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWV4cG9uZW50aWFsLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtZXhwb25lbnRpYWwuaHRtbApAQCAt
MjMsNyArMjMsNyBAQAogICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAog
ICAgICAgICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgICAgICAgY29u
dGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0
aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2Zm
bGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2Ft
cGxlUmF0ZSk7CiAKICAgICAgICAgICAvLyBUZW1wIHBhbm5lciBub2RlIHNvIHdlIGNhbiBnZXQg
dGhlIEVYUE9ORU5USUFMX0RJU1RBTkNFIHZhbHVlLgogICAgICAgICAgIHZhciB0ZW1wUGFubmVy
ID0gY29udGV4dC5jcmVhdGVQYW5uZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2Rpc3RhbmNlLWludmVyc2UuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNl
LWludmVyc2UuaHRtbAppbmRleCA2YjQ0NDhkMDA1YjY3ZTk3OGZlZjYyNDZhOGUyMzcwYzg1YTkx
MjEwLi5jNTRlNzM4ZWQ0ZjdmYTk2ZGYzYTAwOGZiMTI0ZWMxYTE2Nzg3NWFlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1pbnZlcnNlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtaW52ZXJzZS5odG1sCkBAIC0yMyw3ICsyMyw3IEBACiAg
ICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAgICAgLy8gQ3Jl
YXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtp
dEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxl
UmF0ZSk7CisgICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0
KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAg
ICAgICAgIC8vIFRlbXAgcGFubmVyIG5vZGUgc28gd2UgY2FuIGdldCB0aGUgSU5WRVJTRV9ESVNU
QU5DRSB2YWx1ZS4KICAgICAgICAgICB2YXIgdGVtcFBhbm5lciA9IGNvbnRleHQuY3JlYXRlUGFu
bmVyKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1saW5lYXIu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWxpbmVhci5odG1sCmluZGV4IGY0
MzUyNjI1NGFiMzlmM2NmNWNhZTdjNTRiM2IxMTFiNjUyMDVhMzEuLmU4ODlhMzkzZDczNTIyYjVk
NzA4NThiZGM1MDQ5ZTg1ZDA1YzZmYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2Rpc3RhbmNlLWxpbmVhci5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNl
LWxpbmVhci5odG1sCkBAIC0yMyw3ICsyMyw3IEBACiAgICAgICAgICAgd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOwogCiAgICAgICAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4
dC4KLSAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVS
YXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgICAgICAgY29udGV4
dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJM
ZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgICAgICAgIC8vIENyZWF0ZSB0ZW1wIHBh
bm5lciB0byBnZXQgTElORUFSX0RJU1RBTkNFIHZhbHVlIGZvciB0ZXN0aW5nLgogICAgICAgICAg
IHZhciBwYW5uZXJNb2RlbCA9IGNvbnRleHQuY3JlYXRlUGFubmVyKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9nYWluLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9nYWlu
Lmh0bWwKaW5kZXggMWZmMWJhNjhhN2JkMWU4YzM0MTg4NjYyZDBmNzE0NzZmZmQzNjFjMC4uMzg2
YjNlMDdhNTFmZjkzNGE1YzY2ZTNkNGU2MDI2MmI4OTMwNGI2OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vZ2Fpbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2dhaW4u
aHRtbApAQCAtNTksNyArNTksNyBAQCBmdW5jdGlvbiBpbml0KCkgewogICAgICAgICByZXR1cm47
CiAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBu
ZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNh
bXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgy
LCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIENy
ZWF0ZSBhIGJ1ZmZlciBmb3IgYSBzaG9ydCAibm90ZSIuCiAgICAgc2luV2F2ZUJ1ZmZlciA9IGNy
ZWF0ZVNpbldhdmVCdWZmZXIoYnVmZmVyRHVyYXRpb25TZWNvbmRzLCA4ODAuMCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2RlLXplcm8taW5wdXQt
Y2hhbm5lbHMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUt
emVyby1pbnB1dC1jaGFubmVscy5odG1sCmluZGV4IDYzOGU1YWQwZTM3NTUyNTAyMjczNDcwYmY4
NjQ3YzFjNWRkYzkyZDMuLjdiNDc0Y2I0NGE5OTFiYTgwYjM4OTc2ZTE2MGM3NjVlZDg3NzAyMzIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUtemVy
by1pbnB1dC1jaGFubmVscy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3Jp
cHRhdWRpb25vZGUtemVyby1pbnB1dC1jaGFubmVscy5odG1sCkBAIC0zMyw3ICszMyw3IEBAIGZ1
bmN0aW9uIHJ1blRlc3QoKQogCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi0g
ICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIHJlbmRlckxlbmd0aElu
RnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5l
QXVkaW9Db250ZXh0KDEsIHJlbmRlckxlbmd0aEluRnJhbWVzLCBzYW1wbGVSYXRlKTsKIAogICAg
IHZhciBub2RlOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9qYXZhc2NyaXB0
YXVkaW9ub2RlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2Rl
Lmh0bWwKaW5kZXggODhmMDFlYjMxNGM3ZTMyN2QxYWYzMzk5MTQ5MWYwY2UyZTBhYmQxNy4uYWI1
MmViY2JiYmU4NGViNGFlMTA1NGUzNzBjMWI4M2ZmNTYzYzM4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vamF2YXNjcmlwdGF1ZGlvbm9kZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUuaHRtbApAQCAtODQsNyArODQsNyBAQCBmdW5j
dGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAg
IC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJr
aXRBdWRpb0NvbnRleHQoMiwgcmVuZGVyTGVuZ3RoSW5GcmFtZXMsIHNhbXBsZVJhdGUpOworICAg
IGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCByZW5kZXJMZW5ndGhJ
bkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAKICAgICB0cnkgewogICAgICAgICB2YXIganNub2RlID0g
Y29udGV4dC5jcmVhdGVTY3JpcHRQcm9jZXNzb3IoNTEyLCAwLCAwKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL21lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9kZS1nYy5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWdjLmh0bWwK
aW5kZXggODMwYWJiMzg0ZmIyOGU5YTMxZDVhZTBjZWVlMGU2Y2YxYjJiZmVmMS4uYWNhNTM5YmZi
MWVhMTg4Yzg4YTRiMGY1OWU2NGY3YWU2YjcxYmIzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWdjLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWdjLmh0bWwKQEAgLTE5
LDcgKzE5LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB9CiAKICAgICBhdWRpb0VsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhdWRpbyIpOwotICAgIGNvbnRleHQgPSBuZXcg
d2Via2l0QXVkaW9Db250ZXh0KDEsIDEwMDAsIDQ0MTAwKTsKKyAgICBjb250ZXh0ID0gbmV3IHdl
YmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgMTAwMCwgNDQxMDApOwogICAgIHNvdXJjZSA9IGNv
bnRleHQuY3JlYXRlTWVkaWFFbGVtZW50U291cmNlKGF1ZGlvRWxlbWVudCk7CiAgICAgYXVkaW9F
bGVtZW50ID0gbnVsbDsKICAgICBjb250ZXh0ID0gbnVsbDsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL21peGluZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWl4aW5nLmh0
bWwKaW5kZXggM2Y2ODE0OWY0MjdkOGM4ZGM3ODA4MDM5Y2I5OTA0NWU3YzVkM2IyOS4uMTBiNzYz
ZTk2YzNlZWYxZjVmYWZkNzc4ZTk0MjQwOTMwZjQ5MWFiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vbWl4aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWl4aW5n
Lmh0bWwKQEAgLTI4LDcgKzI4LDcgQEAgZnVuY3Rpb24gaW5pdCgpIHsKICAgICAgICAgcmV0dXJu
OwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNv
bnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNl
Y29uZHMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlv
Q29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAg
ICAgICAgCiAgICAgYnVmZmVyTG9hZGVyID0gbmV3IEJ1ZmZlckxvYWRlcigKICAgICAgICAgY29u
dGV4dCwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL25vdGUtZ3JhaW4tb24tcGxh
eS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbm90ZS1ncmFpbi1vbi1wbGF5Lmh0bWwKaW5k
ZXggYjVkNTk2NWJkNzgzMGVkNGUxM2Q2NDZmOTdhNWNmZGQ3N2IwODYzYi4uOGJkYjkxMDBjZjFi
OWFmZWM0N2M3OTZhZjVkMjc5MDQxZWZhZjcwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vbm90ZS1ncmFpbi1vbi1wbGF5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
bm90ZS1ncmFpbi1vbi1wbGF5Lmh0bWwKQEAgLTEwNyw3ICsxMDcsNyBAQAogICAgICAgICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICAgIC8vIENyZWF0ZSBvZmZsaW5l
IGF1ZGlvIGNvbnRleHQuCi0gICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRl
eHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlclRpbWUsIHNhbXBsZVJhdGUpOworICAgICAgICAgIGNv
bnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVu
ZGVyVGltZSwgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgICAvLyBDcmVhdGUgYSBsaW5lYXIgcmFt
cCBmb3IgdGVzdGluZyBub3RlR3JhaW5Pbi4KICAgICAgICAgICBsaW5lYXJSYW1wQnVmZmVyID0g
Y3JlYXRlU2lnbmFsQnVmZmVyKGNvbnRleHQsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby9ub3RlLWdyYWluLW9uLXRpbWluZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbm90
ZS1ncmFpbi1vbi10aW1pbmcuaHRtbAppbmRleCAxMzZiNGEyMWVjMDkxZGJiY2QxNWYzMzYwZjVk
NDliNTRlYjMyM2JkLi40ZTVjY2IxNjZmNmE5MDEwY2NhYTg5NjI0MDRhYTc4NWVjZjM3Y2M0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9ub3RlLWdyYWluLW9uLXRpbWluZy5odG1s
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL25vdGUtZ3JhaW4tb24tdGltaW5nLmh0bWwKQEAg
LTQ0LDcgKzQ0LDcgQEAKICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAK
ICAgICAgICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgICAgICAgIGNv
bnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJUaW1l
LCBzYW1wbGVSYXRlKTsKKyAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRp
b0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlclRpbWUsIHNhbXBsZVJhdGUpOwogCiAgICAg
ICAgICAgc3F1YXJlUHVsc2VCdWZmZXIgPSBjcmVhdGVTaWduYWxCdWZmZXIoY29udGV4dCwgZnVu
Y3Rpb24gKGspIHsgcmV0dXJuIDEgfSk7ICAgIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9vc2NpbGxhdG9yLWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9vc2Np
bGxhdG9yLWJhc2ljLmh0bWwKaW5kZXggZDM5ODllYmZkMmU3NTg5NDU3ZDc1MmY4YTg2YzUwMTkx
OGJlMDljNy4uNDRlYjhmNjE1ZjdiYTY4MTdiMGI3Yjk4ZGE1OTlmOTE4YmQ4YmVkMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vb3NjaWxsYXRvci1iYXNpYy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0b3ItYmFzaWMuaHRtbApAQCAtMzYsNyArMzYsNyBA
QCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAg
ICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNv
bnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5n
dGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZs
aW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1w
bGVSYXRlKTsKICAgICB2YXIgb3NjID0gY29udGV4dC5jcmVhdGVPc2NpbGxhdG9yKCk7CiAKICAg
ICAvLyBTZXQgZWFjaCBwb3NzaWJsZSBvc2NpbGxhdG9yIHR5cGUgKGV4Y2VwdCBDVVNUT00pIGFu
ZCB2ZXJpZnkgdGhhdCB0aGUgdHlwZSBpcyBjb3JyZWN0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXItc3RlcmVvLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci1zdGVyZW8uaHRtbAppbmRleCAzMTY2Y2RkYThiZDcz
OGJjNDQyNGNmNzU1MGQ1YmYzZDM1NjQxY2YxLi4xODA1NGZkYzJiYTFiMzFlZWMxOWI3YjQzMTFl
Y2YzOTQyYjE4YTFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1
YWxwb3dlci1zdGVyZW8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1
YWxwb3dlci1zdGVyZW8uaHRtbApAQCAtMjksNyArMjksNyBAQAogICAgICAgICAgIHdpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlv
IGNvbnRleHQuCi0gICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwg
c2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgICAgICAg
IGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICog
cmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgICBjcmVhdGVUZXN0
QW5kUnVuKGNvbnRleHQsIG5vZGVzVG9DcmVhdGUsIDIpOwogICAgICAgfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXIuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBvd2VyLmh0bWwKaW5kZXggZWVjMGRkZDk2MTA0NzYxNjQ1
N2VlYzFiZWEzYWI3MzAzZWJmNjRiZS4uMTg5MDQ2YTA0MWMxZWQ3ZmI0YWU0MjA1OWJmMWY1Yjhk
MzdhZDU4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLWVxdWFscG93
ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci5odG1s
CkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVl
OwogCiAgICAgICAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICAgICAg
ICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVy
TGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJr
aXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRz
LCBzYW1wbGVSYXRlKTsKIAogICAgICAgICAgIGNyZWF0ZVRlc3RBbmRSdW4oY29udGV4dCwgbm9k
ZXNUb0NyZWF0ZSwgMSk7CiAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy5odG1sCmluZGV4IDkwYzg5MzhiNGM1Y2MxNWYx
MjVjNTI2OWIyZWJhNWNkZWFhNTJlZDQuLmM1YWUyYWEwNTk2OGMxNDMzYTY4YjAxZWFkNzM1YjA2
ZDVhYmUxZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlz
ZXItZmZ0LXNpemluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5h
bHlzZXItZmZ0LXNpemluZy5odG1sCkBAIC0xOSw3ICsxOSw3IEBAIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewogfQogCiB2YXIgZG9UZXN0ID0gZnVuY3Rpb24oZmZ0U2l6ZSwgaWxsZWdhbCkgewot
ICAgIHZhciBjID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCAxMDAwLCA0NDEwMCk7CisgICAg
dmFyIGMgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCAxMDAwLCA0NDEwMCk7CiAg
ICAgdmFyIGEgPSBjLmNyZWF0ZUFuYWx5c2VyKCk7CiAgICAgdHJ5IHsKICAgICAgICAgYS5mZnRT
aXplID0gZmZ0U2l6ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNl
cy9hdWRpby1jb2RlYy10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1
ZGlvLWNvZGVjLXRlc3QuanMKaW5kZXggZTEzMDViNjJiYTQyZjA1ZjE0Yjk4ZTk0OGNmMGU5ZmI5
ZDY5NWM2My4uZTQxNDhhYWUzZmIwMjYyY2I5ZjhiZTRlMmRkMTY2OTllY2I4MGU2NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvLWNvZGVjLXRlc3QuanMK
KysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvLWNvZGVjLXRlc3QuanMK
QEAgLTE0LDcgKzE0LDcgQEAgZnVuY3Rpb24gcnVuRGVjb2RpbmdUZXN0KHVybCwgb3B0aW9uYWxT
YW1wbGVSYXRlKQogICAgIHZhciBzYW1wbGVSYXRlID0gKHR5cGVvZiBvcHRpb25hbFNhbXBsZVJh
dGUgPT09ICJ1bmRlZmluZWQiKSA/IGRlZmF1bHRTYW1wbGVSYXRlIDogb3B0aW9uYWxTYW1wbGVS
YXRlOwogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0
ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRz
LCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRl
eHQoMSwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgCiAg
ICAgYnVmZmVyTG9hZGVyID0gbmV3IEJ1ZmZlckxvYWRlcigKICAgICAgICAgY29udGV4dCwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFtLXRlc3Rp
bmcuanMgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5n
LmpzCmluZGV4IGE1OWY2N2Q4NTRmMmIwMmZkMTJkNGRiYzlkY2UyMzVmMmMxNTcxODkuLjM0Y2Qw
ZDA3MzVhMjc0ZjM0ZTk0ZDU2ZGIyNzY5ZmM1NzRiMTU0YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmcuanMKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5qcwpAQCAtNDA1LDcg
KzQwNSw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUF1ZGlvR3JhcGhBbmRUZXN0KG51bWJlck9mVGVzdHMs
IGluaXRpYWxWYWx1ZSwgc2V0VmFsdWVGdW5jdGlvbiwKICAgICB3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CiAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNv
bnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHJlbmRlckxlbmd0aChudW1iZXJPZlRl
c3RzKSwgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9D
b250ZXh0KDIsIHJlbmRlckxlbmd0aChudW1iZXJPZlRlc3RzKSwgc2FtcGxlUmF0ZSk7CiAgICAg
dmFyIGNvbnN0YW50QnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgMSwgcmVu
ZGVyTGVuZ3RoKG51bWJlck9mVGVzdHMpKTsKIAogICAgIC8vIFdlIHVzZSBhbiBBdWRpb0dhaW5O
b2RlIGhlcmUgc2ltcGx5IGFzIGEgY29udmVuaWVudCB3YXkgdG8gdGVzdCB0aGUgQXVkaW9QYXJh
bQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2phdmFzY3JpcHRh
dWRpb25vZGUtdGVzdGluZy5qcyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9qYXZh
c2NyaXB0YXVkaW9ub2RlLXRlc3RpbmcuanMKaW5kZXggMTE5Nzg0ODk4YWZlMGVjYjYzMmQzMGJh
ODkyNzU5YTAwOWMzYjU0OC4uMDQ1NDIxMTBlNjdkODczN2ZkYzA5NTE5NTBhMjNiMzJhODFmNmVi
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2phdmFzY3JpcHRh
dWRpb25vZGUtdGVzdGluZy5qcworKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMv
amF2YXNjcmlwdGF1ZGlvbm9kZS10ZXN0aW5nLmpzCkBAIC02NSw3ICs2NSw3IEBAIGZ1bmN0aW9u
IGNoZWNrU3RlcmVvT25seURhdGEoYnVmZmVyLCBudW1iZXJPZkNoYW5uZWxzLCBsZW5ndGgpIHsK
IGZ1bmN0aW9uIHJ1bkpTTm9kZVRlc3QoKQogewogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlv
IGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgcmVuZGVy
TGVuZ3RoSW5GcmFtZXMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2Zm
bGluZUF1ZGlvQ29udGV4dCgyLCByZW5kZXJMZW5ndGhJbkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAK
ICAgICB2YXIgc291cmNlQnVmZmVyID0gY3JlYXRlQnVmZmVyKGNvbnRleHQsIHNvdXJjZUNoYW5u
ZWxzLCByZW5kZXJMZW5ndGhJbkZyYW1lcyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL3NhbXBsZS1hY2N1cmF0ZS1zY2hlZHVsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9zYW1wbGUtYWNjdXJhdGUtc2NoZWR1bGluZy5odG1sCmluZGV4IDZkNjdkNzA3YWQxYjU5
NzE4NDFkZWRjMmE3OTZiOWI2Njc2ZjFiZjYuLjUxMGIxZmY3OTBiZjM2MWYwNjM1Y2QxZjRhODQ3
Njg1YjhkYjdmNmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3NhbXBsZS1hY2N1
cmF0ZS1zY2hlZHVsaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc2FtcGxlLWFj
Y3VyYXRlLXNjaGVkdWxpbmcuaHRtbApAQCAtMTEzLDcgKzExMyw3IEBAIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAv
LyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0
QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUp
OworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVS
YXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICBjcmVhdGVJbXB1bHNlKCk7
ICAgIAogCiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzYW1wbGVPZmZzZXRzLmxlbmd0aDsgKytp
KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9zdGVyZW8ybW9uby1kb3duLW1p
eGluZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1vbm8tZG93bi1taXhpbmcu
aHRtbAppbmRleCBmNDY1NTcwYjEyYmM3Y2U0MDAxYTM0NDM1YWUxYzQyMzZjMzMzZDRiLi4xN2U5
N2U5MzBjMjJjNzJlNDNiMTk1NWRmNDQ4NWM5ZTA4ZmQxZmYzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9zdGVyZW8ybW9uby1kb3duLW1peGluZy5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWwKQEAgLTUwLDcgKzUwLDcg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CiAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LCB0aGUgZGVzdGluYXRpb24g
aXMgbW9uby4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCBzYW1wbGVS
YXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5l
dyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhT
ZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICAvLyBDcmVhdGUgYSBzdGVyZW8gQXVkaW9CdWZmZXIu
CiAgICAgdG9uZUJ1ZmZlciA9IGNyZWF0ZURhdGFCdWZmZXIoY29udGV4dCwgcmVuZGVyTGVuZ3Ro
U2Vjb25kcyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1t
b25vLTUxLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctbW9uby01MS5odG1s
CmluZGV4IGE1NzQ1MWY4ZWZkMmZkMjlhNDM1NjcwOGZmM2FlOGI4ZDdiNWRkNmQuLmViNTUwODcw
MGRjYjBlMGZhNTc1NzE4ODYxOTY2ZGYwOGM2OTBmOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL3VwLW1peGluZy1tb25vLTUxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vdXAtbWl4aW5nLW1vbm8tNTEuaHRtbApAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkgewogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dAogICAgIHZhciBz
YW1wbGVSYXRlID0gNDQxMDAuMDsKLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0Nv
bnRleHQoNiwgc2FtcGxlUmF0ZSAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAg
ICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDYsIHNhbXBsZVJh
dGUgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIg
PSBjcmVhdGVUb25lQnVmZmVyKGNvbnRleHQsIDQ0MCwgdG9uZUxlbmd0aFNlY29uZHMsIDEpOyAK
IAogICAgIHZhciBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLW1vbm8tc3RlcmVvLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctbW9uby1zdGVyZW8uaHRtbAppbmRleCA5M2M3
MTkwOThlYTg1ODE4ZDkxMTM2NzgzMGU5NWE1NWUzYTEzNzg3Li4yZmMwN2JlY2RlYmY2ZDhhMGEz
OWI4NDA3ODczMzgyYTM2YzE5MDMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby91
cC1taXhpbmctbW9uby1zdGVyZW8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby91cC1t
aXhpbmctbW9uby1zdGVyZW8uaHRtbApAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiBydW5UZXN0
KCkgewogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dAogICAgIHZhciBzYW1w
bGVSYXRlID0gNDQxMDAuMDsKLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRl
eHQoMiwgc2FtcGxlUmF0ZSAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2
YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUg
KiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBj
cmVhdGVUb25lQnVmZmVyKGNvbnRleHQsIDQ0MCwgdG9uZUxlbmd0aFNlY29uZHMsIDEpOyAKIAog
ICAgIHZhciBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLXN0ZXJlby01MS5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLXN0ZXJlby01MS5odG1sCmluZGV4IDBiZTZlYTkyN2Nh
NDJkNWYwNTZjMzhjMGYzYzExYTIyOWJmNjE5MDIuLjkzMjM0MDM0ZGY5OTgyMDIyMWM0NmE3M2Nh
MmNiYjI5NzQwNjE5YjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGlu
Zy1zdGVyZW8tNTEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctc3Rl
cmVvLTUxLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIAogICAg
IC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQKICAgICB2YXIgc2FtcGxlUmF0ZSA9IDQ0
MTAwLjA7Ci0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDYsIHNhbXBs
ZVJhdGUgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQg
PSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCg2LCBzYW1wbGVSYXRlICogdG9uZUxlbmd0
aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1
ZmZlcihjb250ZXh0LCA0NDAsIHRvbmVMZW5ndGhTZWNvbmRzLCAyKTsgCiAKICAgICB2YXIgc291
cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3dhdmVzaGFwZXIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dhdmVz
aGFwZXIuaHRtbAppbmRleCA2YzU2YWI1YzExNTA4NWNlY2UzYmM4YjBlMzg4ZGVkNTQxY2UyMzE0
Li4yMmE1OTU1MTA2ZGI1NjYyN2RkYjg2Njc0MGMyZDJmMjViZDZjMDc0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby93YXZlc2hhcGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vd2F2ZXNoYXBlci5odG1sCkBAIC0xMDcsNyArMTA3LDcgQEAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8v
IENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRB
dWRpb0NvbnRleHQoMSwgbnVtYmVyT2ZSZW5kZXJGcmFtZXMsIHNhbXBsZVJhdGUpOworICAgIGNv
bnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBudW1iZXJPZlJlbmRlckZy
YW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgCiAgICAgLy8gc291cmNlIC0+IHdhdmVzaGFwZXIgLT4g
ZGVzdGluYXRpb24KICAgICB2YXIgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2Uo
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177905</attachid>
            <date>2012-12-05 18:43:05 -0800</date>
            <delta_ts>2012-12-10 16:12:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104188-20121205184029.patch</filename>
            <type>text/plain</type>
            <size>84225</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUxOWFlOGE1OTNkYTc3
ZTAzNDg2YjY3ODc3YmIwZDE2ODhiNjNmMC4uZWRmZjAzNjFiZTEyZDcyYTA0ZWFiMDBlOGJmMzQw
MGMzYzgwMWI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTEyLTA1ICBDaHJp
cyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IE9mZmxp
bmVBdWRpb0NvbnRleHQgY29uc3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNDE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSBXZWIgQXVkaW8gbGF5b3V0IHRlc3RzIGhhdmUgcmVsaWVk
IG9uIGFuIHVuZG9jdW1lbnRlZCB3YXkgKGluIHRoZSBzcGVjaWZpY2F0aW9uKSB0byByZW5kZXIK
KyAgICAgICAgYXVkaW8gZmFzdGVyIHRoYW4gcmVhbHRpbWUgdXNpbmcgYW4gT2ZmbGluZUF1ZGlv
Q29udGV4dC4gIFdlIHdhbnQgdG8gZXhwb3NlIGEgcHJvcGVyIE9mZmxpbmVBdWRpb0NvbnRleHQK
KyAgICAgICAgb2JqZWN0IGFuZCBjb25zdHJ1Y3RvciBpbnN0ZWFkIG9mIHBpZ2d5YmFja2luZyBv
ZmYgb2YgdGhlIG5vcm1hbCBBdWRpb0NvbnRleHQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLnByaToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29u
dGV4dDo6aXNTYW1wbGVSYXRlUmFuZ2VHb29kKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAoQXVkaW9Db250ZXh0KToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0RPTVdpbmRvd1dlYkF1ZGlvLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0NvbnRleHQ6Ok9mZmxpbmVBdWRpb0NvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6fk9mZmxpbmVBdWRpb0NvbnRl
eHQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoT2ZmbGluZUF1ZGlvQ29udGV4dCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmlkbDogQWRk
ZWQuCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVc2VKU0MuY21ha2U6CisgICAg
ICAgICogVXNlVjguY21ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5l
cmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OndlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHRFbmFibGVkKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU0F1ZGlvQ29udGV4dENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0F1ZGlvQ29udGV4dCk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dXZWJBdWRpb0N1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6d2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU09mZmxpbmVBdWRp
b0NvbnRleHRDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6SlNPZmZsaW5lQXVkaW9Db250ZXh0Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTT2Zm
bGluZUF1ZGlvQ29udGV4dCk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9D
b250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4QXVkaW9Db250ZXh0Ojpjb25z
dHJ1Y3RvckNhbGxiYWNrQ3VzdG9tKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhP
ZmZsaW5lQXVkaW9Db250ZXh0Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OlY4T2ZmbGluZUF1ZGlvQ29udGV4dDo6Y29uc3RydWN0b3JDYWxs
YmFja0N1c3RvbSk6CisKIDIwMTItMTItMDUgIEdyZWcgQmlsbG9jayAgPGdiaWxsb2NrQGdvb2ds
ZS5jb20+CiAKICAgICAgICAgQWRkIHJ1bnRpbWUgZW5hYmxlIGZvciB3ZWIgaW50ZW50cy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggNWUxMGE5MTY5YWRiYWNkNDk0YmJmMzNiNzU5YTU5Nzc2MjZl
NTA1NS4uOTQ1ZjkzZmM4NWE0N2RkNWI2Y2ExZGY1ZWFkOGJiNjRlNzdjMzBmMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTI4Miw2ICsyODIsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAg
ICBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuaWRsCiAgICAgTW9kdWxlcy93
ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJh
dWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5pZGwKKyAgICBNb2R1bGVzL3dlYmF1ZGlv
L09mZmxpbmVBdWRpb0NvbnRleHQuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVk
aW9Db21wbGV0aW9uRXZlbnQuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9k
ZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5pZGwKQEAgLTkzMiw2ICs5
MzMsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQ
cm9jZXNzb3JOb2RlLmNwcAogICAgIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9T
b3VyY2VOb2RlLmNwcAogICAgIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZU5vZGUuY3BwCisgICAgTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcAog
ICAgIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmNwcAogICAg
IE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAogICAgIE1v
ZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCA3YmFhNWY4Nzg2YzZkMjgwNmUxNDU3MzZhN2MyNjg3OTk3ZWE1YWNhLi5iMTJm
ZDIwMWFjMWEwNmJlZmViNWUyODIyMDY3YzQwM2E5Nzk4YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTE0Myw2ICsxNDMsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
Tm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9k
ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250
ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Nv
bXBsZXRpb25FdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BbmFs
eXNlck5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBl
ck5vZGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnBy
aSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRleCA3ZTIyNDVmZDg2YzRl
ZmMyMThlMTI4M2UwMjMwMDU4MzBjN2U2MTdkLi4zMjM5YzIwNzhhMDU3MDE1NjNjOGM4ZTc3YTM5
ZjcxNWE3YjY0YjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5w
cmkKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCkBAIC0xNjEsNiArMTYx
LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICAkJFBXRC9Nb2R1bGVzL3dlYmF1ZGlvL1Njcmlw
dFByb2Nlc3Nvck5vZGUuaWRsIFwKICAgICAkJFBXRC9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxl
bWVudEF1ZGlvU291cmNlTm9kZS5pZGwgXAogICAgICQkUFdEL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaWRsIFwKKyAgICAkJFBXRC9Nb2R1bGVzL3dlYmF1ZGlv
L09mZmxpbmVBdWRpb0NvbnRleHQuaWRsIFwKICAgICAkJFBXRC9Nb2R1bGVzL3dlYmF1ZGlvL09m
ZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5pZGwgXAogICAgICQkUFdEL01vZHVsZXMvd2ViYXVk
aW8vT3NjaWxsYXRvck5vZGUuaWRsIFwKICAgICAkJFBXRC9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5
c2VyTm9kZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZDFjODYwYWQ1
OTUzYmJkYjZjNTQ1MDNlZmU1MDJjMWY0ZWYwMjQ1Mi4uMzJiMWJkOGRiOWE3YjU0OWNlM2NjNDVi
YzlhODEyNzVhYmU5ZTU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01ODMs
NiArNTgzLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTT0VTVmVydGV4QXJyYXlPYmplY3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU09FU0VsZW1lbnRJbmRleFVpbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
T0VTRWxlbWVudEluZGV4VWludC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT2ZmbGlu
ZUF1ZGlvQ29udGV4dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPZmZsaW5lQXVk
aW9Db250ZXh0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPZmZsaW5lQXVkaW9Db21w
bGV0aW9uRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT2ZmbGluZUF1ZGlv
Q29tcGxldGlvbkV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPc2NpbGxhdG9y
Tm9kZS5jcHAgXApAQCAtMTI5NSw2ICsxMjk3LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJ
JChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuaWRsIFwKIAkk
KFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlk
bCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VO
b2RlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRl
eHQuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxl
dGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0
b3JOb2RlLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5p
ZGwgXApAQCAtMjA3MCw2ICsyMDczLDggQEAgd2ViY29yZV9tb2R1bGVzX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VO
b2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50Lmgg
XApAQCAtMjI1NCw2ICsyMjU5LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0F0dHJDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0F1ZGlvQnVmZmVyU291cmNlTm9kZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNPZmZsaW5lQXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNCbG9iQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDREFUQVNlY3Rpb25DdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NTU0ZvbnRGYWNlUnVsZUN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IDcxNGFiNTIwZWUz
OTJmOTc2ZGI0ZWYwMzRlM2M3MzA1MDYyYzg3MGYuLmIyMDA3OTA5MzI0OTM5NjQ3MzY2OTk0MThk
YzE5YjExMjQ3YTFmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAKQEAgLTk1LDE3ICs5NSwxMyBAQCBjb25zdCB1bnNpZ25lZCBNYXhO
b2Rlc1RvRGVsZXRlUGVyUXVhbnR1bSA9IDEwOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Ci1uYW1lc3BhY2UgewotICAgIAotYm9vbCBpc1NhbXBsZVJhdGVSYW5nZUdvb2QoZmxvYXQgc2Ft
cGxlUmF0ZSkKK2Jvb2wgQXVkaW9Db250ZXh0Ojppc1NhbXBsZVJhdGVSYW5nZUdvb2QoZmxvYXQg
c2FtcGxlUmF0ZSkKIHsKICAgICAvLyBGSVhNRTogSXQgd291bGQgYmUgbmljZSBpZiB0aGUgbWlu
aW11bSBzYW1wbGUtcmF0ZSBjb3VsZCBiZSBsZXNzIHRoYW4gNDQuMUtIeiwKICAgICAvLyBidXQg
dGhhdCB3aWxsIHJlcXVpcmUgc29tZSBmaXhlcyBpbiBIUlRGUGFubmVyOjpmZnRTaXplRm9yU2Ft
cGxlUmF0ZSgpLCBhbmQgc29tZSB0ZXN0aW5nIHRoZXJlLgogICAgIHJldHVybiBzYW1wbGVSYXRl
ID49IDQ0MTAwICYmIHNhbXBsZVJhdGUgPD0gOTYwMDA7CiB9CiAKLX0KLQogLy8gRG9uJ3QgYWxs
b3cgbW9yZSB0aGFuIHRoaXMgbnVtYmVyIG9mIHNpbXVsdGFuZW91cyBBdWRpb0NvbnRleHRzIHRh
bGtpbmcgdG8gaGFyZHdhcmUuCiBjb25zdCB1bnNpZ25lZCBNYXhIYXJkd2FyZUNvbnRleHRzID0g
NDsKIHVuc2lnbmVkIEF1ZGlvQ29udGV4dDo6c19oYXJkd2FyZUNvbnRleHRDb3VudCA9IDA7CkBA
IC0xMjQsMjMgKzEyMCw2IEBAIFBhc3NSZWZQdHI8QXVkaW9Db250ZXh0PiBBdWRpb0NvbnRleHQ6
OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmCiAgICAgcmV0dXJuIGF1
ZGlvQ29udGV4dC5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8QXVkaW9Db250ZXh0PiBBdWRp
b0NvbnRleHQ6OmNyZWF0ZU9mZmxpbmVDb250ZXh0KERvY3VtZW50KiBkb2N1bWVudCwgdW5zaWdu
ZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVS
YXRlLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBBU1NFUlQoZG9jdW1lbnQpOwotCi0gICAg
Ly8gRklYTUU6IG9mZmxpbmUgY29udGV4dHMgaGF2ZSBsaW1pdGF0aW9ucyBvbiBzdXBwb3J0ZWQg
c2FtcGxlLXJhdGVzLgotICAgIC8vIEN1cnJlbnRseSBhbGwgQXVkaW9Db250ZXh0cyBtdXN0IGhh
dmUgdGhlIHNhbWUgc2FtcGxlLXJhdGUuCi0gICAgSFJURkRhdGFiYXNlTG9hZGVyKiBsb2FkZXIg
PSBIUlRGRGF0YWJhc2VMb2FkZXI6OmxvYWRlcigpOwotICAgIGlmIChudW1iZXJPZkNoYW5uZWxz
ID4gMTAgfHwgIWlzU2FtcGxlUmF0ZVJhbmdlR29vZChzYW1wbGVSYXRlKSB8fCAobG9hZGVyICYm
IGxvYWRlci0+ZGF0YWJhc2VTYW1wbGVSYXRlKCkgIT0gc2FtcGxlUmF0ZSkpIHsKLSAgICAgICAg
ZWMgPSBTWU5UQVhfRVJSOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBSZWZQdHI8
QXVkaW9Db250ZXh0PiBhdWRpb0NvbnRleHQoYWRvcHRSZWYobmV3IEF1ZGlvQ29udGV4dChkb2N1
bWVudCwgbnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpKSk7Ci0g
ICAgYXVkaW9Db250ZXh0LT5zdXNwZW5kSWZOZWVkZWQoKTsKLSAgICByZXR1cm4gYXVkaW9Db250
ZXh0LnJlbGVhc2UoKTsKLX0KLQogLy8gQ29uc3RydWN0b3IgZm9yIHJlbmRlcmluZyB0byB0aGUg
YXVkaW8gaGFyZHdhcmUuCiBBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCogZG9j
dW1lbnQpCiAgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQsIHRoaXMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAppbmRleCA2ZGEzYzEyYTlm
NWVkMzUwZDQzOWZkOGY5MDUxYmViZTQ2YzE3MWY5Li44YTA2NjY4M2JjMjEyYjBkZjhjMGFiN2Ix
MTIyZTNlYjJjZmJiYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Db250ZXh0LmgKQEAgLTI1MCw5ICsyNTAsMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklE
RTsKIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBleHBsaWNpdCBBdWRpb0NvbnRleHQoRG9j
dW1lbnQqKTsKICAgICBBdWRpb0NvbnRleHQoRG9jdW1lbnQqLCB1bnNpZ25lZCBudW1iZXJPZkNo
YW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIAor
ICAgIHN0YXRpYyBib29sIGlzU2FtcGxlUmF0ZVJhbmdlR29vZChmbG9hdCBzYW1wbGVSYXRlKTsK
KyAgICAKK3ByaXZhdGU6CiAgICAgdm9pZCBjb25zdHJ1Y3RDb21tb24oKTsKIAogICAgIHZvaWQg
bGF6eUluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vRE9NV2luZG93V2ViQXVkaW8uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9ET01XaW5kb3dXZWJBdWRpby5pZGwKaW5kZXggZGY4OGZiMGY2MTcwZTNmMjgxOTcwZTFi
NGNmMjAwNDhhN2JkNjUxMC4uOTUyMTdhOTQwMTExNTgyODk2MmQwMWM4ZjAwYTFlODQxYjU4MjIz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9ET01XaW5kb3dX
ZWJBdWRpby5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9ET01XaW5k
b3dXZWJBdWRpby5pZGwKQEAgLTMwLDYgKzMwLDcgQEAKIF0gaW50ZXJmYWNlIERPTVdpbmRvd1dl
YkF1ZGlvIHsKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKICAg
ICBbSlNDdXN0b21HZXR0ZXIsIFY4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIEF1ZGlvQ29u
dGV4dENvbnN0cnVjdG9yIHdlYmtpdEF1ZGlvQ29udGV4dDsKKyAgICBbSlNDdXN0b21HZXR0ZXIs
IFY4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRlIE9mZmxpbmVBdWRpb0NvbnRleHRDb25zdHJ1
Y3RvciB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0OwogICAgIGF0dHJpYnV0ZSBQYW5uZXJOb2Rl
Q29uc3RydWN0b3Igd2Via2l0QXVkaW9QYW5uZXJOb2RlOwogICAgIGF0dHJpYnV0ZSBBdWRpb1By
b2Nlc3NpbmdFdmVudENvbnN0cnVjdG9yIEF1ZGlvUHJvY2Vzc2luZ0V2ZW50OwogICAgIGF0dHJp
YnV0ZSBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnRDb25zdHJ1Y3RvciBPZmZsaW5lQXVkaW9D
b21wbGV0aW9uRXZlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZGYwNDQ0NTI2OTRjOGQ2
NWQyNzRiYmNiNTVjYTc5Mzc5YmNhNTZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcApAQCAtMCwwICsxLDY1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFdFQl9B
VURJTykKKworI2luY2x1ZGUgIk9mZmxpbmVBdWRpb0NvbnRleHQuaCIKKworI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJIUlRGRGF0YWJhc2VMb2FkZXIuaCIKKyNpbmNsdWRl
ICJTY3JpcHRDYWxsU3RhY2suaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRy
PE9mZmxpbmVBdWRpb0NvbnRleHQ+IE9mZmxpbmVBdWRpb0NvbnRleHQ6OmNyZWF0ZShEb2N1bWVu
dCogZG9jdW1lbnQsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZy
YW1lcywgZmxvYXQgc2FtcGxlUmF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgQVNTRVJU
KGRvY3VtZW50KTsKKworICAgIC8vIEZJWE1FOiBvZmZsaW5lIGNvbnRleHRzIGhhdmUgbGltaXRh
dGlvbnMgb24gc3VwcG9ydGVkIHNhbXBsZS1yYXRlcy4KKyAgICAvLyBDdXJyZW50bHkgYWxsIEF1
ZGlvQ29udGV4dHMgbXVzdCBoYXZlIHRoZSBzYW1lIHNhbXBsZS1yYXRlLgorICAgIEhSVEZEYXRh
YmFzZUxvYWRlciogbG9hZGVyID0gSFJURkRhdGFiYXNlTG9hZGVyOjpsb2FkZXIoKTsKKyAgICBp
ZiAobnVtYmVyT2ZDaGFubmVscyA+IDEwIHx8ICFpc1NhbXBsZVJhdGVSYW5nZUdvb2Qoc2FtcGxl
UmF0ZSkgfHwgKGxvYWRlciAmJiBsb2FkZXItPmRhdGFiYXNlU2FtcGxlUmF0ZSgpICE9IHNhbXBs
ZVJhdGUpKSB7CisgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgfQorCisgICAgUmVmUHRyPE9mZmxpbmVBdWRpb0NvbnRleHQ+IGF1ZGlvQ29udGV4dChhZG9w
dFJlZihuZXcgT2ZmbGluZUF1ZGlvQ29udGV4dChkb2N1bWVudCwgbnVtYmVyT2ZDaGFubmVscywg
bnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpKSk7CisgICAgYXVkaW9Db250ZXh0LT5zdXNwZW5k
SWZOZWVkZWQoKTsKKyAgICByZXR1cm4gYXVkaW9Db250ZXh0LnJlbGVhc2UoKTsKK30KKworT2Zm
bGluZUF1ZGlvQ29udGV4dDo6T2ZmbGluZUF1ZGlvQ29udGV4dChEb2N1bWVudCogZG9jdW1lbnQs
IHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQg
c2FtcGxlUmF0ZSkKKyAgICA6IEF1ZGlvQ29udGV4dChkb2N1bWVudCwgbnVtYmVyT2ZDaGFubmVs
cywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpCit7Cit9CisKK09mZmxpbmVBdWRpb0NvbnRl
eHQ6On5PZmZsaW5lQXVkaW9Db250ZXh0KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y3
Y2QyNDFjN2RkNTA5NTY0ZDQ0NDIzODE0M2JlZmJjMjExZTZlNAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oCkBA
IC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE9mZmxpbmVBdWRpb0NvbnRleHRf
aAorI2RlZmluZSBPZmZsaW5lQXVkaW9Db250ZXh0X2gKKworI2luY2x1ZGUgIkF1ZGlvQ29udGV4
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE9mZmxpbmVBdWRpb0NvbnRleHQg
OiBwdWJsaWMgQXVkaW9Db250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxP
ZmZsaW5lQXVkaW9Db250ZXh0PiBjcmVhdGUoRG9jdW1lbnQqLCB1bnNpZ25lZCBudW1iZXJPZkNo
YW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUsIEV4Y2VwdGlv
bkNvZGUmKTsKKworICAgIHZpcnR1YWwgfk9mZmxpbmVBdWRpb0NvbnRleHQoKTsKKworcHJpdmF0
ZToKKyAgICBPZmZsaW5lQXVkaW9Db250ZXh0KERvY3VtZW50KiwgdW5zaWduZWQgbnVtYmVyT2ZD
aGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlKTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIE9mZmxpbmVBdWRpb0NvbnRleHRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVk
aW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1
ZGlvQ29udGV4dC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcyMDQ1ODlhYzg0NWY5MzY5OTA5YjY5NmU0ZTg4
ODZlYjc5MTlkNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCisgICAgQWN0aXZlRE9NT2JqZWN0LAor
ICAgIENvbnN0cnVjdG9yUGFyYW1ldGVycz0wLAorICAgIEN1c3RvbUNvbnN0cnVjdG9yLAorICAg
IEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBpbnRlcmZhY2UgT2ZmbGluZUF1ZGlvQ29udGV4dCA6
IEF1ZGlvQ29udGV4dCB7CisKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBkNGI1MGNiOWJhODM5NTg2Mjc1
MTk4NjQzNzViMDdhN2Q1MDAzYzcwLi42ODEwMDJiMThhNDliMGE4YmQ5N2UwZjFhMjJiYmUwNGVj
MWFiYjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTMzOTksNiArMzM5OSw3IEBAIGVuYWJsZT8oV0VCX0FV
RElPKSB7CiAgICAgU09VUkNFUyArPSBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTQXVkaW9Db250
ZXh0Q3VzdG9tLmNwcCBcCisgICAgICAgIGJpbmRpbmdzL2pzL0pTT2ZmbGluZUF1ZGlvQ29udGV4
dEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1dlYkF1ZGlvQ3Vz
dG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTU2NyaXB0UHJvY2Vzc29yTm9kZUN1c3Rv
bS5jcHAgXAogICAgICAgICBNb2R1bGVzL3dlYmF1ZGlvL0FzeW5jQXVkaW9EZWNvZGVyLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9Vc2VKU0MuY21ha2UKaW5kZXggYTBmYWVkZjRlNTEzZWQwM2IwZTA3NjdiNzE2NjdlZDdiYTQ4
YTIyYy4uMzNiYWZjM2VmNWVlNzhiZDBhZmUyY2U4YTAxNDQ5ZDg2OWM0NjM0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1VzZUpT
Qy5jbWFrZQpAQCAtMjcyLDYgKzI3Miw3IEBAIElGIChFTkFCTEVfV0VCX0FVRElPKQogICAgIExJ
U1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICBiaW5kaW5ncy9qcy9KU0F1ZGlvQnVm
ZmVyU291cmNlTm9kZUN1c3RvbS5jcHAKICAgICAgICAgYmluZGluZ3MvanMvSlNBdWRpb0NvbnRl
eHRDdXN0b20uY3BwCisgICAgICAgIGJpbmRpbmdzL2pzL0pTT2ZmbGluZUF1ZGlvQ29udGV4dEN1
c3RvbS5jcHAKICAgICAgICAgYmluZGluZ3MvanMvSlNTY3JpcHRQcm9jZXNzb3JOb2RlQ3VzdG9t
LmNwcAogICAgICkKIEVORElGICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VWOC5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCmluZGV4IDAzNjMzY2I4YjZiMWM5MDVm
YzVhY2QwYmQxYmM3NzMzNWJmZjJmOGEuLjA4ZDhjNWI2OTA0OTYzNGNkZmNmZTdmMTcyOTQ4ZWY1
YWJiODQ4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCkBAIC03Niw2ICs3Niw3IEBAIExJU1QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyQ3VzdG9t
LmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEFycmF5QnVmZmVyVmlld0N1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0NvbnRleHRDdXN0b20uY3BwCisgICAgYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4T2ZmbGluZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy92OC9jdXN0b20vVjhDU1NSdWxlQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3Rv
bS9WOENTU1N0eWxlRGVjbGFyYXRpb25DdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9t
L1Y4Q1NTVmFsdWVDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYTkzYWY1ZTU3MDY1OGNj
OGI1YTA2NGFjMGRjMDdkZjNhZGM5YTNjMy4uZTliZjUzNmRhNTZiMDdiZDVmOTVkMmFkMzM0ZDdk
YWU2OWE4NTgyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtOTI2LDYgKzkyNiw3IEBACiAgICAgICAg
ICAgICAnTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmlk
bCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
Tm9kZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29t
cGxldGlvbkV2ZW50LmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5l
QXVkaW9Db250ZXh0LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxh
dG9yTm9kZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2Rl
LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwn
LApAQCAtMTc1Nyw2ICsxNzU4LDggQEAKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViYXVk
aW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCcsCisgICAgICAgICAgICAn
TW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcCcsCisgICAgICAgICAgICAn
TW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmgnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCcsCiAgICAgICAg
ICAgICAnTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAnLApAQCAtMjQy
Myw2ICsyNDI2LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOb2RlTGlz
dEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vdGlmaWNh
dGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vdGlm
aWNhdGlvbkNlbnRlckN1c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE9mZmxpbmVBdWRpb0NvbnRleHRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhQZXJmb3JtYW5jZUVudHJ5Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4UG9wU3RhdGVFdmVudEN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFNRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA4NTVhOGIyZmRkMmIwZTVkMWI4ZmFjMGIyZjAxMDQ2YzJmNjIzZmFjLi45ZGYxMmVhN2Iw
NTRlNjNhNWUzYjcxMTFhYjZlYzFjMTdjOWJmMzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NjA4LDYgKzY2MDgsMTEgQEAK
IAkJRkRBM0U5NUExMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRBM0U5
NTYxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5oICovOyB9
OwogCQlGREEzRTk1QjEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25O
b2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
QTNFOTU3MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
ICovOyB9OwogCQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGREEzRTk1ODEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmggKi87IH07CisJCUZEQTkzMjVEMTY3MDNCMkEwMDg5ODJEQyAvKiBPZmZsaW5lQXVkaW9Db250
ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
QTkzMjVBMTY3MDNCMkEwMDg5ODJEQyAvKiBPZmZsaW5lQXVkaW9Db250ZXh0LmNwcCAqLzsgfTsK
KwkJRkRBOTMyNUUxNjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQTkzMjVCMTY3MDNC
MkEwMDg5ODJEQyAvKiBPZmZsaW5lQXVkaW9Db250ZXh0LmggKi87IH07CisJCUZEQTkzMjYzMTY3
MDNCNUMwMDg5ODJEQyAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHRDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRBOTMyNjIxNjcwM0I1QzAw
ODk4MkRDIC8qIEpTT2ZmbGluZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHAgKi87IH07CisJCUZEQTkz
MjY2MTY3MDNCQTkwMDg5ODJEQyAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRBOTMyNjQxNjcwM0JBOTAw
ODk4MkRDIC8qIEpTT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgKi87IH07CisJCUZEQTkzMjY3MTY3
MDNCQTkwMDg5ODJEQyAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQTkzMjY1MTY3MDNCQTkwMDg5ODJEQyAv
KiBKU09mZmxpbmVBdWRpb0NvbnRleHQuaCAqLzsgfTsKIAkJRkRBRjE5OTgxNTEzRDEzMTAwOERC
MEMzIC8qIERpcmVjdENvbnZvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGREFGMTk5NjE1MTNEMTMxMDA4REIwQzMgLyogRGlyZWN0Q29udm9s
dmVyLmNwcCAqLzsgfTsKIAkJRkRBRjE5OTkxNTEzRDEzMTAwOERCMEMzIC8qIERpcmVjdENvbnZv
bHZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRB
RjE5OTcxNTEzRDEzMTAwOERCMEMzIC8qIERpcmVjdENvbnZvbHZlci5oICovOyB9OwogCQlGREIw
NTJERjE1NjFBNDJDMDBCNTAwRDYgLyogQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRCMDUyREQxNTYxQTQyQzAw
QjUwMEQ2IC8qIEF1ZGlvU3VtbWluZ0p1bmN0aW9uLmNwcCAqLzsgfTsKQEAgLTE0MTU0LDYgKzE0
MTU5LDEyIEBACiAJCUZEQTNFOTU3MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9EZXN0
aW5hdGlvbk5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gT2Zm
bGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRkRBM0U5NTgxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPZmZsaW5lQXVkaW9EZXN0aW5h
dGlvbk5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRBM0U5NUQxMzRBNDlG
RjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRkRBOTMyNUExNjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVBdWRp
b0NvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gT2ZmbGlu
ZUF1ZGlvQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZEQTkzMjVC
MTY3MDNCMkEwMDg5ODJEQyAvKiBPZmZsaW5lQXVkaW9Db250ZXh0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE9mZmxpbmVBdWRpb0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRkRBOTMyNUMxNjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVBdWRpb0Nv
bnRleHQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE9mZmxpbmVBdWRpb0NvbnRleHQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGREE5MzI2MjE2NzAzQjVDMDA4OTgyREMg
LyogSlNPZmZsaW5lQXVkaW9Db250ZXh0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTT2ZmbGluZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUZEQTkzMjY0MTY3MDNCQTkwMDg5ODJEQyAvKiBKU09mZmxp
bmVBdWRpb0NvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
SlNPZmZsaW5lQXVkaW9Db250ZXh0LmNwcDsgcGF0aCA9IEpTT2ZmbGluZUF1ZGlvQ29udGV4dC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZEQTkzMjY1MTY3MDNCQTkwMDg5ODJE
QyAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gSlNPZmZsaW5lQXVkaW9Db250ZXh0Lmg7IHBhdGggPSBKU09mZmxpbmVBdWRpb0NvbnRl
eHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRBRjE5OTYxNTEzRDEzMTAwOERC
MEMzIC8qIERpcmVjdENvbnZvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBEaXJlY3RDb252b2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGREFGMTk5NzE1MTNEMTMxMDA4REIwQzMgLyogRGlyZWN0Q29udm9sdmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpcmVjdENvbnZvbHZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGREIwNTJERDE1NjFBNDJDMDBCNTAwRDYgLyogQXVkaW9TdW1taW5n
SnVuY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9T
dW1taW5nSnVuY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA2NTks
NiArMjA2NzAsNyBAQAogCQkJCTFBNzUwREQzMEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVy
YXRvckN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMyNjEwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9k
ZUxpc3RDdXN0b20uY3BwICovLAogCQkJCTMxRkU2RTZDMTUwMUEzQkYwMDA0RUJDNCAvKiBKU05v
dGlmaWNhdGlvbkN1c3RvbS5jcHAgKi8sCisJCQkJRkRBOTMyNjIxNjcwM0I1QzAwODk4MkRDIC8q
IEpTT2ZmbGluZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHAgKi8sCiAJCQkJQTg1RjIyMDgxNDMwMzc3
RDAwN0NDODg0IC8qIEpTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAgKi8sCiAJCQkJRTFBRDEyRDUx
Mjk1RDBCRDAwQUNBOTg5IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uQ3VzdG9tLmNwcCAqLywK
IAkJCQk0OTk4QUVEMzEzRkM0MTdGMDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVD
YWxsYmFja0N1c3RvbS5jcHAgKi8sCkBAIC0yMjM0OSw2ICsyMjM2MSw5IEBACiAJCQkJRkQ2NzFB
NzQxNTlCQjA3MDAwMTk3NTU5IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcCAqLywK
IAkJCQlGRDY3MUE3NTE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5v
ZGUuaCAqLywKIAkJCQlGRDY3MUE3NjE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGUuaWRsICovLAorCQkJCUZEQTkzMjVBMTY3MDNCMkEwMDg5ODJEQyAvKiBPZmZs
aW5lQXVkaW9Db250ZXh0LmNwcCAqLywKKwkJCQlGREE5MzI1QjE2NzAzQjJBMDA4OTgyREMgLyog
T2ZmbGluZUF1ZGlvQ29udGV4dC5oICovLAorCQkJCUZEQTkzMjVDMTY3MDNCMkEwMDg5ODJEQyAv
KiBPZmZsaW5lQXVkaW9Db250ZXh0LmlkbCAqLywKIAkJCQlGREEzRTk1NTEzNEE0OUVGMDA4RDRC
NUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmNwcCAqLywKIAkJCQlGREEzRTk1NjEz
NEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggKi8sCiAJCQkJ
RkRBM0U5NUQxMzRBNDlGRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5p
ZGwgKi8sCkBAIC0yMjUxNSw2ICsyMjUzMCw4IEBACiAJCQkJRkQyM0ExMjQxM0Y1RkE1OTAwRjY3
MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmggKi8sCiAJCQkJRkRCRDQ4MEEx
NTlCQzY4NzAwOTNFQjRGIC8qIEpTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwICovLAog
CQkJCUZEQkQ0ODBCMTU5QkM2ODcwMDkzRUI0RiAvKiBKU01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VO
b2RlLmggKi8sCisJCQkJRkRBOTMyNjQxNjcwM0JBOTAwODk4MkRDIC8qIEpTT2ZmbGluZUF1ZGlv
Q29udGV4dC5jcHAgKi8sCisJCQkJRkRBOTMyNjUxNjcwM0JBOTAwODk4MkRDIC8qIEpTT2ZmbGlu
ZUF1ZGlvQ29udGV4dC5oICovLAogCQkJCUZERjZCQUY2MTM0QTRDOTgwMDgyMjkyMCAvKiBKU09m
ZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5jcHAgKi8sCiAJCQkJRkRGNkJBRjcxMzRBNEM5ODAw
ODIyOTIwIC8qIEpTT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggKi8sCiAJCQkJRkRFQTYy
NDAxNTIxMDJFMjAwNDc5REYwIC8qIEpTT3NjaWxsYXRvck5vZGUuY3BwICovLApAQCAtMjU4ODks
NiArMjU5MDYsOCBAQAogCQkJCTkzRjcyQUYzMTY2NkVERkMwMDJBMDJCRCAvKiBMYXllclBvb2wu
aCBpbiBIZWFkZXJzICovLAogCQkJCURFQkNDREQyMTY2NDZFODIwMEE0NTJFMSAvKiBSZW5kZXJN
ZWRpYUNvbnRyb2xFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJREVCQ0NERDQxNjY0NkVB
RjAwQTQ1MkUxIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRkRBOTMyNUUxNjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUZEQTkzMjY3MTY3MDNCQTkwMDg5ODJEQyAvKiBKU09mZmxpbmVBdWRp
b0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjg5OTcsNiArMjkwMTYsOSBAQAogCQkJCTg2
QkE3NjZFMTY2NDI3QTgwMDVCRTVEMSAvKiBGcmFtZUxvYWRSZXF1ZXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzRjcyQUY0MTY2NkVERkMwMDJBMDJCRCAvKiBMYXllclBvb2wubW0gaW4gU291
cmNlcyAqLywKIAkJCQlDMzc1RDdGRDE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUZEQTkzMjVEMTY3MDNCMkEwMDg5ODJEQyAvKiBPZmZsaW5lQXVk
aW9Db250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEQTkzMjYzMTY3MDNCNUMwMDg5ODJE
QyAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RkRBOTMyNjYxNjcwM0JBOTAwODk4MkRDIC8qIEpTT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggOTNjYjgzOTExODE2OGMyMGNhNDk2NmFi
OWY1YjA3ZTZlMzZlYTdhNi4uMThmNjYxYzZjOWI1Mzg4MTM4YzAwZThlOTRiYjg0ZGJkMWRmZGMw
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTEyMyw2ICsxMjMsNyBAQCBwdWJsaWM6CiAjaWYgRU5B
QkxFKFdFQl9BVURJTykKICAgICBzdGF0aWMgdm9pZCBzZXRXZWJraXRBdWRpb0NvbnRleHRFbmFi
bGVkKGJvb2wgaXNFbmFibGVkKSB7IGlzV2ViQXVkaW9FbmFibGVkID0gaXNFbmFibGVkOyB9CiAg
ICAgc3RhdGljIGJvb2wgd2Via2l0QXVkaW9Db250ZXh0RW5hYmxlZCgpIHsgcmV0dXJuIGlzV2Vi
QXVkaW9FbmFibGVkOyB9CisgICAgc3RhdGljIGJvb2wgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4
dEVuYWJsZWQoKSB7IHJldHVybiBpc1dlYkF1ZGlvRW5hYmxlZDsgfQogI2VuZGlmCiAKICNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNBdWRpb0NvbnRleHRDdXN0b20uY3BwCmluZGV4IDEyMGZjNTdkYjgwZDkxYThlMWMyZDczNWQw
NTE2YTM1NmY4YzA4YmYuLmZmN2ZhZWU0N2U4YTQwZGIwMjcyOTIxMTFhYWVmZjViOWQ0NGFkN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3Vz
dG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1
c3RvbS5jcHAKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlICJKU0FycmF5QnVmZmVyLmgiCiAj
aW5jbHVkZSAiSlNBdWRpb0J1ZmZlci5oIgogI2luY2x1ZGUgIkpTQXVkaW9Db250ZXh0LmgiCisj
aW5jbHVkZSAiSlNPZmZsaW5lQXVkaW9Db250ZXh0LmgiCisjaW5jbHVkZSAiT2ZmbGluZUF1ZGlv
Q29udGV4dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDx3dGYvQXJy
YXlCdWZmZXIuaD4KIApAQCAtNzcsOCArNzksMTIgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBKU0F1ZGlvQ29udGV4dENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0F1ZGlvQ29udGV4dCgK
ICAgICAgICAgaWYgKCFhdWRpb0NvbnRleHQuZ2V0KCkpCiAgICAgICAgICAgICByZXR1cm4gdGhy
b3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJhdWRpbyByZXNvdXJjZXMg
dW5hdmFpbGFibGUgZm9yIEF1ZGlvQ29udGV4dCBjb25zdHJ1Y3Rpb24iKSk7CiAgICAgfSBlbHNl
IHsKKyNpZiBFTkFCTEUoTEVHQUNZX1dFQl9BVURJTykKICAgICAgICAgLy8gQ29uc3RydWN0b3Ig
Zm9yIG9mZmxpbmUgKHJlbmRlci10YXJnZXQpIEF1ZGlvQ29udGV4dCB3aGljaCByZW5kZXJzIGlu
dG8gYW4gQXVkaW9CdWZmZXIuCiAgICAgICAgIC8vIG5ldyBBdWRpb0NvbnRleHQoaW4gdW5zaWdu
ZWQgbG9uZyBudW1iZXJPZkNoYW5uZWxzLCBpbiB1bnNpZ25lZCBsb25nIG51bWJlck9mRnJhbWVz
LCBpbiBmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNz
YWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWws
CisgICAgICAgICAgICAiRGVwcmVjYXRlZCBBdWRpb0NvbnRleHQgY29uc3RydWN0b3I6IHVzZSBP
ZmZsaW5lQXVkaW9Db250ZXh0IGluc3RlYWQiKTsKKwogICAgICAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpIDwgMykKICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3Jl
YXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOwogCkBAIC05NSwxMiArMTAxLDE2IEBA
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNBdWRpb0NvbnRleHRDb25zdHJ1Y3Rvcjo6
Y29uc3RydWN0SlNBdWRpb0NvbnRleHQoCiAgICAgICAgIGlmIChzYW1wbGVSYXRlIDw9IDApCiAg
ICAgICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4
ZWMsICJJbnZhbGlkIHNhbXBsZSByYXRlIikpOwogCisKICAgICAgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7Ci0gICAgICAgIGF1ZGlvQ29udGV4dCA9IEF1ZGlvQ29udGV4dDo6Y3JlYXRlT2ZmbGlu
ZUNvbnRleHQoZG9jdW1lbnQsIG51bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1w
bGVSYXRlLCBlYyk7CisgICAgICAgIGF1ZGlvQ29udGV4dCA9IE9mZmxpbmVBdWRpb0NvbnRleHQ6
OmNyZWF0ZShkb2N1bWVudCwgbnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBs
ZVJhdGUsIGVjKTsKICAgICAgICAgaWYgKGVjKSB7CiAgICAgICAgICAgICBzZXRET01FeGNlcHRp
b24oZXhlYywgZWMpOwogICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVh
dGVTeW50YXhFcnJvcihleGVjLCAiRXJyb3IgY3JlYXRpbmcgT2ZmbGluZUF1ZGlvQ29udGV4dCIp
KTsKICAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVTeW50YXhFcnJvcihleGVjLCAiSWxsZWdhbCBBdWRpb0NvbnRleHQgY29uc3RydWN0b3Ii
KSk7CisjZW5kaWYKICAgICB9CiAKICAgICBpZiAoIWF1ZGlvQ29udGV4dC5nZXQoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93V2ViQXVkaW9DdXN0
b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dXZWJBdWRpb0N1
c3RvbS5jcHAKaW5kZXggMDEzMTQwZTg3M2I5MTUzNzJlYjMzMmExYTVhMzZiMjJlOTcwZWViMy4u
ZjVjNzcwODRjODkzMGRlNzBkNmJiNTg5YjNkNWRlNjY5YmRiNGY0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dXZWJBdWRpb0N1c3RvbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dXZWJBdWRpb0N1c3RvbS5j
cHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiSlNBdWRpb0NvbnRleHQuaCIKKyNpbmNsdWRlICJKU09mZmxpbmVB
dWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogCiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwpAQCAtNDYsNiArNDcsMTQgQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6d2Via2l0QXVkaW9D
b250ZXh0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
IH0KIAorSlNWYWx1ZSBKU0RPTVdpbmRvdzo6d2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dChFeGVj
U3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgU2V0dGluZ3MqIHNldHRpbmdzID0gc2V0dGluZ3NG
b3JXaW5kb3dXZWJBdWRpbyh0aGlzKTsKKyAgICBpZiAoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPndl
YkF1ZGlvRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNPZmZs
aW5lQXVkaW9Db250ZXh0Q29uc3RydWN0b3I+KGV4ZWMsIHRoaXMpOworICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPZmZsaW5lQXVkaW9Db250ZXh0Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT2ZmbGluZUF1ZGlvQ29udGV4
dEN1c3RvbS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY1OTQ0NjU1Zjg3Mjg0N2IwMzczMmY3OGZmZjZmYmE0
YTg4MTIwYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T2ZmbGluZUF1ZGlvQ29udGV4dEN1c3RvbS5jcHAKQEAgLTAsMCArMSw5MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisKKyNpbmNs
dWRlICJPZmZsaW5lQXVkaW9Db250ZXh0LmgiCisKKyNpbmNsdWRlICJBdWRpb0J1ZmZlci5oIgor
I2luY2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKKyNpbmNsdWRlICJKU0F1ZGlvQnVmZmVyLmgiCisj
aW5jbHVkZSAiSlNPZmZsaW5lQXVkaW9Db250ZXh0LmgiCisjaW5jbHVkZSA8cnVudGltZS9FcnJv
ci5oPgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgorCit1c2luZyBuYW1lc3BhY2UgSlND
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SlNPZmZsaW5lQXVkaW9Db250ZXh0Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpTT2ZmbGluZUF1ZGlv
Q29udGV4dChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNPZmZsaW5lQXVkaW9Db250ZXh0Q29u
c3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBqc0Nhc3Q8SlNPZmZsaW5lQXVkaW9Db250ZXh0Q29u
c3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7CisgICAgaWYgKCFqc0NvbnN0cnVjdG9yKQorICAg
ICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVJlZmVyZW5jZUVycm9yKGV4ZWMs
ICJPZmZsaW5lQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yIGNhbGxlZSBpcyB1bmF2YWlsYWJsZSIp
KTsKKworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQg
PSBqc0NvbnN0cnVjdG9yLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYgKCFzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNy
ZWF0ZVJlZmVyZW5jZUVycm9yKGV4ZWMsICJPZmZsaW5lQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9y
IHNjcmlwdCBleGVjdXRpb24gY29udGV4dCBpcyB1bmF2YWlsYWJsZSIpKTsKKyAgICAgICAgCisg
ICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0RvY3VtZW50KCkpCisgICAgICAgIHJl
dHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlUmVmZXJlbmNlRXJyb3IoZXhlYywgIk9mZmxp
bmVBdWRpb0NvbnRleHQgY29uc3RydWN0b3IgY2FsbGVkIGluIGEgc2NyaXB0IGV4ZWN1dGlvbiBj
b250ZXh0IHdoaWNoIGlzIG5vdCBhIGRvY3VtZW50IikpOworCisgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKwor
ICAgIFJlZlB0cjxPZmZsaW5lQXVkaW9Db250ZXh0PiBhdWRpb0NvbnRleHQ7CisgICAgCisgICAg
Ly8gQ29uc3RydWN0b3IgZm9yIG9mZmxpbmUgKHJlbmRlci10YXJnZXQpIE9mZmxpbmVBdWRpb0Nv
bnRleHQgd2hpY2ggcmVuZGVycyBpbnRvIGFuIEF1ZGlvQnVmZmVyLgorICAgIC8vIG5ldyBPZmZs
aW5lQXVkaW9Db250ZXh0KGluIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZDaGFubmVscywgaW4gdW5z
aWduZWQgbG9uZyBudW1iZXJPZkZyYW1lcywgaW4gZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgaWYg
KGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA8IDMpCisgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Io
ZXhlYywgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoZXhlYykpOworCisgICAgaW50MzJf
dCBudW1iZXJPZkNoYW5uZWxzID0gZXhlYy0+YXJndW1lbnQoMCkudG9JbnQzMihleGVjKTsKKyAg
ICBpbnQzMl90IG51bWJlck9mRnJhbWVzID0gZXhlYy0+YXJndW1lbnQoMSkudG9JbnQzMihleGVj
KTsKKyAgICBmbG9hdCBzYW1wbGVSYXRlID0gZXhlYy0+YXJndW1lbnQoMikudG9GbG9hdChleGVj
KTsKKyAgICAKKyAgICBpZiAobnVtYmVyT2ZDaGFubmVscyA8PSAwIHx8IG51bWJlck9mQ2hhbm5l
bHMgPiAxMCkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVTeW50YXhF
cnJvcihleGVjLCAiSW52YWxpZCBudW1iZXIgb2YgY2hhbm5lbHMiKSk7CisKKyAgICBpZiAobnVt
YmVyT2ZGcmFtZXMgPD0gMCkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVh
dGVTeW50YXhFcnJvcihleGVjLCAiSW52YWxpZCBudW1iZXIgb2YgZnJhbWVzIikpOworCisgICAg
aWYgKHNhbXBsZVJhdGUgPD0gMCkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBj
cmVhdGVTeW50YXhFcnJvcihleGVjLCAiSW52YWxpZCBzYW1wbGUgcmF0ZSIpKTsKKworICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGF1ZGlvQ29udGV4dCA9IE9mZmxpbmVBdWRpb0NvbnRl
eHQ6OmNyZWF0ZShkb2N1bWVudCwgbnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZGcmFtZXMsIHNh
bXBsZVJhdGUsIGVjKTsKKyAgICBpZiAoZWMpIHsKKyAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4
ZWMsIGVjKTsKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVTeW50YXhF
cnJvcihleGVjLCAiRXJyb3IgY3JlYXRpbmcgT2ZmbGluZUF1ZGlvQ29udGV4dCIpKTsKKyAgICB9
CisKKyAgICBpZiAoIWF1ZGlvQ29udGV4dC5nZXQoKSkKKyAgICAgICAgcmV0dXJuIHRocm93Vk1F
cnJvcihleGVjLCBjcmVhdGVSZWZlcmVuY2VFcnJvcihleGVjLCAiRXJyb3IgY3JlYXRpbmcgT2Zm
bGluZUF1ZGlvQ29udGV4dCIpKTsKKworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRF
X0RPTV9XUkFQUEVSKGV4ZWMsIGpzQ29uc3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBPZmZsaW5l
QXVkaW9Db250ZXh0LCBhdWRpb0NvbnRleHQuZ2V0KCkpKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0NvbnRleHRDdXN0b20uY3Bw
CmluZGV4IDgwYTMyYmFkYjE1OTQ3N2RjZmQ0MmY2MDdiMTc4NDA4OWRlYjg4ZTQuLjliOWZlMjY5
ZWIwN2UxNTgxYmM3NjY2YmYwYzMyYWZlYmI1Y2FkOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcApA
QCAtMzIsOSArMzIsMTEgQEAKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJC
aW5kaW5nU3RhdGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk9mZmxpbmVBdWRp
b0NvbnRleHQuaCIKICNpbmNsdWRlICJWOEFycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiVjhBdWRp
b0J1ZmZlci5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4T2ZmbGluZUF1
ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC01NCwyOSArNTYsMTYgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4QXVk
aW9Db250ZXh0Ojpjb25zdHJ1Y3RvckNhbGxiYWNrQ3VzdG9tKGNvbnN0IHY4OjpBcmd1bWUKICAg
ICAgICAgaWYgKCFhdWRpb0NvbnRleHQuZ2V0KCkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dF
cnJvcih2OFN5bnRheEVycm9yLCAiYXVkaW8gcmVzb3VyY2VzIHVuYXZhaWxhYmxlIGZvciBBdWRp
b0NvbnRleHQgY29uc3RydWN0aW9uIiwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIH0gZWxzZSB7
CisjaWYgRU5BQkxFKExFR0FDWV9XRUJfQVVESU8pCiAgICAgICAgIC8vIENvbnN0cnVjdG9yIGZv
ciBvZmZsaW5lIChyZW5kZXItdGFyZ2V0KSBBdWRpb0NvbnRleHQgd2hpY2ggcmVuZGVycyBpbnRv
IGFuIEF1ZGlvQnVmZmVyLgogICAgICAgICAvLyBuZXcgQXVkaW9Db250ZXh0KGluIHVuc2lnbmVk
IGxvbmcgbnVtYmVyT2ZDaGFubmVscywgaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkZyYW1lcywg
aW4gZmxvYXQgc2FtcGxlUmF0ZSk7Ci0gICAgICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMykKLSAg
ICAgICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNv
bGF0ZSgpKTsKKyAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNv
dXJjZSwgTG9nTWVzc2FnZVR5cGUsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsCisgICAgICAgICAgICAi
RGVwcmVjYXRlZCBBdWRpb0NvbnRleHQgY29uc3RydWN0b3I6IHVzZSBPZmZsaW5lQXVkaW9Db250
ZXh0IGluc3RlYWQiKTsKIAotICAgICAgICBib29sIG9rID0gZmFsc2U7Ci0KLSAgICAgICAgaW50
MzJfdCBudW1iZXJPZkNoYW5uZWxzID0gdG9JbnQzMihhcmdzWzBdLCBvayk7Ci0gICAgICAgIGlm
ICghb2sgfHwgbnVtYmVyT2ZDaGFubmVscyA8PSAwIHx8IG51bWJlck9mQ2hhbm5lbHMgPiAxMCkK
LSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHY4U3ludGF4RXJyb3IsICJJbnZhbGlkIG51
bWJlciBvZiBjaGFubmVscyIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLQotICAgICAgICBpbnQzMl90
IG51bWJlck9mRnJhbWVzID0gdG9JbnQzMihhcmdzWzFdLCBvayk7Ci0gICAgICAgIGlmICghb2sg
fHwgbnVtYmVyT2ZGcmFtZXMgPD0gMCkKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHY4
U3ludGF4RXJyb3IsICJJbnZhbGlkIG51bWJlciBvZiBmcmFtZXMiLCBhcmdzLkdldElzb2xhdGUo
KSk7Ci0KLSAgICAgICAgZmxvYXQgc2FtcGxlUmF0ZSA9IHRvRmxvYXQoYXJnc1syXSk7Ci0gICAg
ICAgIGlmIChzYW1wbGVSYXRlIDw9IDApCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih2
OFN5bnRheEVycm9yLCAiSW52YWxpZCBzYW1wbGUgcmF0ZSIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsK
LQotICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgYXVkaW9Db250ZXh0ID0g
QXVkaW9Db250ZXh0OjpjcmVhdGVPZmZsaW5lQ29udGV4dChkb2N1bWVudCwgbnVtYmVyT2ZDaGFu
bmVscywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUsIGVjKTsKLSAgICAgICAgaWYgKGVjKQot
ICAgICAgICAgICAgcmV0dXJuIHNldERPTUV4Y2VwdGlvbihlYywgYXJncy5HZXRJc29sYXRlKCkp
OworICAgICAgICByZXR1cm4gVjhPZmZsaW5lQXVkaW9Db250ZXh0Ojpjb25zdHJ1Y3RvckNhbGxi
YWNrQ3VzdG9tKGFyZ3MpOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIHRocm93RXJyb3IodjhTeW50
YXhFcnJvciwgIklsbGVnYWwgQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yIiwgYXJncy5HZXRJc29s
YXRlKCkpOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKCFhdWRpb0NvbnRleHQuZ2V0KCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhPZmZsaW5lQXVk
aW9Db250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OE9mZmxpbmVBdWRpb0NvbnRleHRDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhNmJjNzNkOWJkMzRl
YjJiZWZkZjMwNGU5NTk5MThkYjdjYmU1YzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhPZmZsaW5lQXVkaW9Db250ZXh0Q3VzdG9tLmNwcApA
QCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
RU5BQkxFKFdFQl9BVURJTykKKworI2luY2x1ZGUgIlY4T2ZmbGluZUF1ZGlvQ29udGV4dC5oIgor
CisjaW5jbHVkZSAiQXVkaW9CdWZmZXIuaCIKKyNpbmNsdWRlICJCaW5kaW5nU3RhdGUuaCIKKyNp
bmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk9mZmxpbmVBdWRpb0NvbnRleHQuaCIKKyNpbmNs
dWRlICJWOEFycmF5QnVmZmVyLmgiCisjaW5jbHVkZSAiVjhBdWRpb0J1ZmZlci5oIgorI2luY2x1
ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOE9mZmxpbmVBdWRpb0NvbnRl
eHQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2tDdXN0b20oY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
K3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjdXJyZW50RG9jdW1lbnQoQmluZGluZ1N0YXRl
OjppbnN0YW5jZSgpKTsKKworICAgIFJlZlB0cjxPZmZsaW5lQXVkaW9Db250ZXh0PiBhdWRpb0Nv
bnRleHQ7CisgICAgCisgICAgLy8gQ29uc3RydWN0b3IgZm9yIG9mZmxpbmUgKHJlbmRlci10YXJn
ZXQpIE9mZmxpbmVBdWRpb0NvbnRleHQgd2hpY2ggcmVuZGVycyBpbnRvIGFuIEF1ZGlvQnVmZmVy
LgorICAgIC8vIG5ldyBPZmZsaW5lQXVkaW9Db250ZXh0KGluIHVuc2lnbmVkIGxvbmcgbnVtYmVy
T2ZDaGFubmVscywgaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkZyYW1lcywgaW4gZmxvYXQgc2Ft
cGxlUmF0ZSk7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQorICAgICAgICByZXR1cm4gdGhy
b3dOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihhcmdzLkdldElzb2xhdGUoKSk7CisKKyAgICBib29s
IG9rID0gZmFsc2U7CisKKyAgICBpbnQzMl90IG51bWJlck9mQ2hhbm5lbHMgPSB0b0ludDMyKGFy
Z3NbMF0sIG9rKTsKKyAgICBpZiAoIW9rIHx8IG51bWJlck9mQ2hhbm5lbHMgPD0gMCB8fCBudW1i
ZXJPZkNoYW5uZWxzID4gMTApCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHY4U3ludGF4RXJy
b3IsICJJbnZhbGlkIG51bWJlciBvZiBjaGFubmVscyIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKwor
ICAgIGludDMyX3QgbnVtYmVyT2ZGcmFtZXMgPSB0b0ludDMyKGFyZ3NbMV0sIG9rKTsKKyAgICBp
ZiAoIW9rIHx8IG51bWJlck9mRnJhbWVzIDw9IDApCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9y
KHY4U3ludGF4RXJyb3IsICJJbnZhbGlkIG51bWJlciBvZiBmcmFtZXMiLCBhcmdzLkdldElzb2xh
dGUoKSk7CisKKyAgICBmbG9hdCBzYW1wbGVSYXRlID0gdG9GbG9hdChhcmdzWzJdKTsKKyAgICBp
ZiAoc2FtcGxlUmF0ZSA8PSAwKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih2OFN5bnRheEVy
cm9yLCAiSW52YWxpZCBzYW1wbGUgcmF0ZSIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKworICAgIEV4
Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGF1ZGlvQ29udGV4dCA9IE9mZmxpbmVBdWRpb0NvbnRl
eHQ6OmNyZWF0ZShkb2N1bWVudCwgbnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZGcmFtZXMsIHNh
bXBsZVJhdGUsIGVjKTsKKyAgICBpZiAoZWMpCisgICAgICAgIHJldHVybiBzZXRET01FeGNlcHRp
b24oZWMsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKworICAgIGlmICghYXVkaW9Db250ZXh0LmdldCgp
KQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih2OFN5bnRheEVycm9yLCAiRXJyb3IgY3JlYXRp
bmcgT2ZmbGluZUF1ZGlvQ29udGV4dCIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKKyAgICAKKyAgICAv
LyBUcmFuc2Zvcm0gdGhlIGhvbGRlciBpbnRvIGEgd3JhcHBlciBvYmplY3QgZm9yIHRoZSBhdWRp
byBjb250ZXh0LgorICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFyZ3MuSG9s
ZGVyKCk7CisgICAgVjhET01XcmFwcGVyOjpjcmVhdGVET01XcmFwcGVyKGF1ZGlvQ29udGV4dC5y
ZWxlYXNlKCksICZpbmZvLCB3cmFwcGVyKTsKKyAgICAKKyAgICByZXR1cm4gd3JhcHBlcjsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiMzc1NGE0NGQ1MzE1Mzk2OTk5NGNlMWQwMjNmZmE1OTk3NmQ0MDRmLi42NjBhNzIz
YTU4MDU4YjA3NTM2MTYwOGZkODFmYmYwNTNiZGNhY2Y1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAK
KzIwMTItMTItMDUgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgT2ZmbGluZUF1ZGlvQ29udGV4dCBjb25zdHJ1Y3RvcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0MTg4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3dpdGNoIFdlYiBBdWRpbyBsYXlv
dXQgdGVzdHMgdG8gdXNlIE9mZmxpbmVBdWRpb0NvbnRleHQgY29uc3RydWN0b3IuCisKKyAgICAg
ICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1sb29wLWNvbXByZWhlbnNpdmUuaHRtbDoK
KyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1sb29wLXBvaW50cy5odG1sOgor
ICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW11bHRpLWNoYW5uZWxzLmh0bWw6
CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tTdGF0ZS5odG1s
OgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrcmF0ZS5odG1s
OgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXN0YXJ0Lmh0bWw6CisgICAg
ICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRp
by9hdWRpb2NoYW5uZWxtZXJnZXItc3RlcmVvLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVk
aW9jaGFubmVsc3BsaXR0ZXIuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb25vZGUtY29u
bmVjdC1vcmRlci5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvbm9kZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9wYXJhbS1jb25uZWN0LWF1ZGlvcmF0ZXNpZ25h
bC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvcGFyYW0tc3VtbWluZ2p1bmN0aW9uLmh0
bWw6CisgICAgICAgICogd2ViYXVkaW8vYXV0b21hdGljLXB1bGwtbm9kZS5odG1sOgorICAgICAg
ICAqIHdlYmF1ZGlvL2JpcXVhZC1hbGxwYXNzLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlx
dWFkLWJhbmRwYXNzLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlxdWFkLWhpZ2hwYXNzLmh0
bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlxdWFkLWhpZ2hzaGVsZi5odG1sOgorICAgICAgICAq
IHdlYmF1ZGlvL2JpcXVhZC1sb3dwYXNzLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlxdWFk
LWxvd3NoZWxmLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlxdWFkLW5vdGNoLmh0bWw6Cisg
ICAgICAgICogd2ViYXVkaW8vYmlxdWFkLXBlYWtpbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRp
by9jb252b2x1dGlvbi1tb25vLW1vbm8uaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9kZWxheW5v
ZGUtbWF4LWRlZmF1bHQtZGVsYXkuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9kZWxheW5vZGUt
bWF4LW5vbmRlZmF1bHQtZGVsYXkuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9kZWxheW5vZGUt
bWF4ZGVsYXkuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXlsaW1p
dC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2RlbGF5bm9kZS1zY2hlZHVsaW5nLmh0bWw6Cisg
ICAgICAgICogd2ViYXVkaW8vZGVsYXlub2RlLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZGlz
dGFuY2UtZXhwb25lbnRpYWwuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9kaXN0YW5jZS1pbnZl
cnNlLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZGlzdGFuY2UtbGluZWFyLmh0bWw6CisgICAg
ICAgICogd2ViYXVkaW8vZ2Fpbi5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2phdmFzY3JpcHRh
dWRpb25vZGUtemVyby1pbnB1dC1jaGFubmVscy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2ph
dmFzY3JpcHRhdWRpb25vZGUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9tZWRpYWVsZW1lbnRh
dWRpb3NvdXJjZW5vZGUtZ2MuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9taXhpbmcuaHRtbDoK
KyAgICAgICAgKiB3ZWJhdWRpby9ub3RlLWdyYWluLW9uLXBsYXkuaHRtbDoKKyAgICAgICAgKiB3
ZWJhdWRpby9ub3RlLWdyYWluLW9uLXRpbWluZy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL29z
Y2lsbGF0b3ItYmFzaWMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dl
ci1zdGVyZW8uaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci5odG1s
OgorICAgICAgICAqIHdlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy5odG1sOgor
ICAgICAgICAqIHdlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1jb2RlYy10ZXN0LmpzOgorICAgICAg
ICAocnVuRGVjb2RpbmdUZXN0KToKKyAgICAgICAgKiB3ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9w
YXJhbS10ZXN0aW5nLmpzOgorICAgICAgICAoY3JlYXRlQXVkaW9HcmFwaEFuZFRlc3QpOgorICAg
ICAgICAqIHdlYmF1ZGlvL3Jlc291cmNlcy9qYXZhc2NyaXB0YXVkaW9ub2RlLXRlc3RpbmcuanM6
CisgICAgICAgIChydW5KU05vZGVUZXN0KToKKyAgICAgICAgKiB3ZWJhdWRpby9zYW1wbGUtYWNj
dXJhdGUtc2NoZWR1bGluZy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3N0ZXJlbzJtb25vLWRv
d24tbWl4aW5nLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vdXAtbWl4aW5nLW1vbm8tNTEuaHRt
bDoKKyAgICAgICAgKiB3ZWJhdWRpby91cC1taXhpbmctbW9uby1zdGVyZW8uaHRtbDoKKyAgICAg
ICAgKiB3ZWJhdWRpby91cC1taXhpbmctc3RlcmVvLTUxLmh0bWw6CisgICAgICAgICogd2ViYXVk
aW8vd2F2ZXNoYXBlci5odG1sOgorCiAyMDEyLTEyLTA1ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBBbGxvdyBtdWx0aXBsZSB0cmFuc2Fj
dGlvbnMgdG8gaW50ZXJsZWF2ZSByZXF1ZXN0IGV4ZWN1dGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbG9vcC1jb21wcmVoZW5zaXZlLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1sb29wLWNvbXByZWhlbnNp
dmUuaHRtbAppbmRleCAyNTIwNjlmYWFmOTBjNmI0Mzg3NmM3NWIyMzNlNjY2OTk1ZDkwMzQyLi5h
ZWRlNDc4ZmVmODNlYzQ5ZTRjYzNmYjQzMDg5YjM4ZjY3ZjM1MzAxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1sb29wLWNvbXByZWhlbnNpdmUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1sb29wLWNvbXBy
ZWhlbnNpdmUuaHRtbApAQCAtOTcsNyArOTcsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1
ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEs
IHRvdGFsUmVuZGVyTGVuZ3RoRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9
IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHRvdGFsUmVuZGVyTGVuZ3RoRnJhbWVz
LCBzYW1wbGVSYXRlKTsKICAgICBidWZmZXIgPSBjcmVhdGVUZXN0QnVmZmVyKGNvbnRleHQsIGJ1
ZmZlckZyYW1lTGVuZ3RoKTsKIAogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdHMubGVuZ3Ro
OyArK2kpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJj
ZS1sb29wLXBvaW50cy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3Vy
Y2UtbG9vcC1wb2ludHMuaHRtbAppbmRleCAwMGZmYTg3ZWM3ZGJhOTUyMWM1N2M1MzE4NzcyYjk2
MjRiZGRjY2E5Li41NjAxZDAyNTVhZmQ4YTVjMzY0OTlhODIxMzQ3YzllY2IxYjQ2ZDdkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1sb29wLXBvaW50
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWxvb3At
cG9pbnRzLmh0bWwKQEAgLTgyLDcgKzgyLDcgQEAgZnVuY3Rpb24gaW5pdCgpIHsKICAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250
ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNv
bmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0Nv
bnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAg
ICAvLyBDcmVhdGUgdGhlIHRlc3QgYnVmZmVyLgogICAgIC8vIFdlJ2xsIGxvb3AgdGhpcyB3aXRo
IHRoZSBsb29wLXBvaW50cyBzZXQgZm9yIHRoZSAybmQgaGFsZiBvZiB0aGlzIGJ1ZmZlci4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW11bHRpLWNo
YW5uZWxzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1tdWx0
aS1jaGFubmVscy5odG1sCmluZGV4IGFlODI4ZjM3Mzg0OGVmYjI3NzExZGYzMGZjMWQ2YTQyYjJm
YjgxYzEuLjdiODUzZjdlMzViNDYxYzE4ZjgzNWEwMGE1YTEzMTkwZmY3MDgxYTcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW11bHRpLWNoYW5uZWxz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbXVsdGkt
Y2hhbm5lbHMuaHRtbApAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAg
ICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dAogICAgIHZhciBzYW1wbGVSYXRlID0g
NDQxMDAuMDsKLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoNiwgc2Ft
cGxlUmF0ZSAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4
dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDYsIHNhbXBsZVJhdGUgKiB0b25lTGVu
Z3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25l
QnVmZmVyKGNvbnRleHQsIDQ0MCwgdG9uZUxlbmd0aFNlY29uZHMsIDYpOyAKIAogICAgIHZhciBz
b3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tTdGF0ZS5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tTdGF0ZS5odG1sCmlu
ZGV4IGMzMmY5OTZmNDc5NzU3NTk5ZDljOTg3YWE0MDBiODI0ZDg3MDkyNzIuLmQyYzNlMTQxMjI0
YzMyN2UzMWM3NGViODZhYTVjOWM3Y2YxMzZjYWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrU3RhdGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja1N0YXRlLmh0bWwKQEAgLTEw
NSw3ICsxMDUsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICB3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CiAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LCByZW5kZXJp
bmcgZm9yIHJlbmRlclRpbWUgc2Vjb25kcy4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlv
Q29udGV4dCgyLCB0aW1lVG9TYW1wbGVGcmFtZShyZW5kZXJUaW1lLCBzYW1wbGVSYXRlKSwgc2Ft
cGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIs
IHRpbWVUb1NhbXBsZUZyYW1lKHJlbmRlclRpbWUsIHNhbXBsZVJhdGUpLCBzYW1wbGVSYXRlKTsK
IAogICAgIC8vIFRoaXMgaXMgb25seSB1c2VkIHNvIHdlIGNhbiBhY2Nlc3MgdGhlIHBsYXliYWNr
IHN0YXRlIGNvbnN0YW50cy4KICAgICB2YXIgYnVmZmVyU291cmNlID0gY29udGV4dC5jcmVhdGVC
dWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVm
ZmVyc291cmNlLXBsYXliYWNrcmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9i
dWZmZXJzb3VyY2UtcGxheWJhY2tyYXRlLmh0bWwKaW5kZXggMGQ0ZTNkNmJkZjAwZTRhZTliZDJl
NDZkMjA3NDI3NWE4ZGU0MzBhZS4uMmNhYTBmYjNmZjYzNDc4ODNlZGY4MzJhMmFiMzE4ODFjMTFl
ZDM1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Ut
cGxheWJhY2tyYXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJz
b3VyY2UtcGxheWJhY2tyYXRlLmh0bWwKQEAgLTcxLDcgKzcxLDcgQEAgZnVuY3Rpb24gaW5pdCgp
IHsKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4
dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICog
bGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9m
ZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxl
UmF0ZSk7CiAKICAgICAvLyBDcmVhdGUgYSBzaW5nbGUgY3ljbGUgb2YgYSBzaW5lIHdhdmUuCiAg
ICAgLy8gV2UnbGwgbG9vcCB0aGlzIHRvIHBsYXkgbm90ZXMgb2YgYSBnaXZlbiBkdXJhdGlvbiwg
YXQgYSBnaXZlbiBwbGF5YmFjayByYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9idWZmZXJzb3VyY2Utc3RhcnQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvYnVmZmVyc291cmNlLXN0YXJ0Lmh0bWwKaW5kZXggYjY5N2I3ZTM5OTU3MzM5ODMxN2NjYTdl
Y2JkMGJjMjgwNGU3Y2Y5Ni4uODU1ZDAxOWVhNWM4MzU2YjdhNDM1ODAzZjQ3MDliY2FjZTc1MzNk
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Utc3Rh
cnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1zdGFy
dC5odG1sCkBAIC04MCw3ICs4MCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29u
dGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgdG90YWxS
ZW5kZXJMZW5ndGhGcmFtZXMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdl
YmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgdG90YWxSZW5kZXJMZW5ndGhGcmFtZXMsIHNhbXBs
ZVJhdGUpOwogICAgIGJ1ZmZlciA9IGNyZWF0ZVRlc3RCdWZmZXIoY29udGV4dCwgYnVmZmVyRnJh
bWVMZW5ndGgpOwogCiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS5odG1sCmluZGV4IGMwMGQ3
YjJlODE4OTdjYjEyZjMwNzNhZDE5ZDRiNTk4ODI2NzY4NGQuLmRiZTEwNTQ4ZmI0YjhmNGMwYzgx
MGVlMThmNjQ2NzYzMjA4ZmI2N2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvYnVmZmVyc291cmNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZm
ZXJzb3VyY2UuaHRtbApAQCAtMjQsNyArMjQsNyBAQCBmdW5jdGlvbiBpbml0KCkgewogICAgICAg
ICByZXR1cm47CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQu
Ci0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxl
bmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZs
aW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJh
dGUpOwogICAgIAogICAgIGJ1ZmZlckxvYWRlciA9IG5ldyBCdWZmZXJMb2FkZXIoCiAgICAgICAg
IGNvbnRleHQsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxt
ZXJnZXItc3RlcmVvLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJn
ZXItc3RlcmVvLmh0bWwKaW5kZXggYzQ2NmM2ODA2NDVlZjBlYTEzODVkM2YxZjg4ZWM2NThlM2Zm
ZGMzNC4uNDEyZjU4NzAxMGNkNDI3OGFiYWU5NjRjY2NjYTFhYmMxZTljZDk5ZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVyZ2VyLXN0ZXJlby5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY2hhbm5lbG1lcmdlci1zdGVyZW8uaHRtbApA
QCAtNzgsNyArNzgsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIHN0ZXJlbyBvZmZsaW5lIGF1
ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgbGVu
Z3RoSW5TYW1wbGVGcmFtZXMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0
T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBsZW5ndGhJblNhbXBsZUZyYW1lcywgc2FtcGxlUmF0ZSk7
CiAKICAgICAvLyBDcmVhdGUgdHdvIG1vbm8gYnVmZmVycywgb25lIGhhdmluZyBhbGwgLTEgdmFs
dWVzLCB0aGUgb3RoZXIgYWxsICsxLgogICAgIGJ1ZmZlcjEgPSBjcmVhdGVCdWZmZXJXaXRoRENP
ZmZzZXQobGVuZ3RoSW5TYW1wbGVGcmFtZXMsIHNhbXBsZVJhdGUsIC0xKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY2hhbm5lbHNwbGl0dGVyLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxzcGxpdHRlci5odG1sCmluZGV4IGFiNjJjMGJlYjBm
Y2ZlNzgxZjA1YzMwNmE5MTZkYTAzNTVkZjQzNTAuLmM3YTUxNDNlYTNkODYxODQyMWQzYTEwMzg1
Mjc1NDU1ZWQzZWRiNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY2hh
bm5lbHNwbGl0dGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jaGFubmVs
c3BsaXR0ZXIuaHRtbApAQCAtODEsNyArODEsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIC8vIENyZWF0ZSBzdGVyZW8gb2Zm
bGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0
KDIsIGxlbmd0aEluU2FtcGxlRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3
IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgbGVuZ3RoSW5TYW1wbGVGcmFtZXMsIHNhbXBs
ZVJhdGUpOwogCiAgICAgdHJ5IHsKICAgICAgICAgdmFyIHNwbGl0dGVybm9kZSA9IGNvbnRleHQu
Y3JlYXRlQ2hhbm5lbFNwbGl0dGVyKDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3JkZXIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1
ZGlvbm9kZS1jb25uZWN0LW9yZGVyLmh0bWwKaW5kZXggYWI0YzQwMmMzNTA5MTE3YzdmMGU2MzFm
MzcwN2MxOGVlZDEwZjQwMC4uM2RmYjJmMDJmOTJmOGZjN2VhM2U1MWFmNTQwYjg0NGFmZDI1NjNi
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3Jk
ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb25vZGUtY29ubmVjdC1vcmRl
ci5odG1sCkBAIC00MCw3ICs0MCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBh
dWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgx
LCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFy
IGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICog
cmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBj
cmVhdGVTaW5XYXZlQnVmZmVyKGNvbnRleHQsIHJlbmRlckxlbmd0aFNlY29uZHMsIDg4MCk7CiAg
ICAgCiAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb25vZGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9ub2RlLWV4cGVjdGVkLnR4dAppbmRleCAwNTQw
ZmU3NDk5ZjA5ODI5YTM5ZTk2MjhlZjFkYjhiZTAwZmI5OGRlLi44MzU4YzczYWI2ZmMwNmUwZGYw
ZTUzN2RjZmQzMGViMzFmZjM2NjZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9h
dWRpb25vZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvbm9k
ZS1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IERlcHJlY2F0
ZWQgQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yOiB1c2UgT2ZmbGluZUF1ZGlvQ29udGV4dCBpbnN0
ZWFkCiBCYXNpYyB0ZXN0cyBmb3IgQXVkaW9Ob2RlIEFQSS4KIAogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1jb25u
ZWN0LWF1ZGlvcmF0ZXNpZ25hbC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJh
bS1jb25uZWN0LWF1ZGlvcmF0ZXNpZ25hbC5odG1sCmluZGV4IDE3M2FjNmZkOTkxYjJlMTZmZWRk
NjJmZjZhNmIzYTQyYThiMzk3NGQuLjFjMWIzZDMwNTJiMDFmODk5ZDg2YWFmOGU3NzQ2ZjU2MzEy
YWJlMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY29ubmVj
dC1hdWRpb3JhdGVzaWduYWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3Bh
cmFtLWNvbm5lY3QtYXVkaW9yYXRlc2lnbmFsLmh0bWwKQEAgLTY5LDcgKzY5LDcgQEAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKICAgICB2YXIgc2FtcGxlRnJhbWVMZW5ndGggPSBzYW1wbGVSYXRlICog
bGVuZ3RoSW5TZWNvbmRzOwogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4K
LSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCBzYW1wbGVGcmFtZUxlbmd0
aCwgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250
ZXh0KDEsIHNhbXBsZUZyYW1lTGVuZ3RoLCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIENyZWF0ZSBi
dWZmZXIgdXNlZCBieSB0aGUgc291cmNlIHdoaWNoIHdpbGwgaGF2ZSBpdHMgZ2FpbiBjb250cm9s
bGVkLgogICAgIGNvbnN0YW50T25lQnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4
dCwgc2FtcGxlRnJhbWVMZW5ndGgsIDEpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9wYXJhbS1zdW1taW5nanVuY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvcGFyYW0tc3VtbWluZ2p1bmN0aW9uLmh0bWwKaW5kZXggOWMyNjdlZmEwMTU4ZTQzZDg1
ZDg1ZmMwZDRmNTFlNzRmM2M1ZjY2NC4uYTgyYjI3NTJhNmQxYTRiY2YxYzkyOGI2ZmVkMjU1MzBl
NjhiZmY5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1zdW1t
aW5nanVuY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLXN1
bW1pbmdqdW5jdGlvbi5odG1sCkBAIC04Miw3ICs4Miw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
CiAgICAgdmFyIHNhbXBsZUZyYW1lTGVuZ3RoID0gc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25k
czsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9
IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgc2FtcGxlRnJhbWVMZW5ndGgsIHNhbXBsZVJhdGUp
OworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVG
cmFtZUxlbmd0aCwgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBDcmVhdGUgYnVmZmVyIHVzZWQgYnkg
dGhlIHNvdXJjZSB3aGljaCB3aWxsIGhhdmUgaXRzIGdhaW4gY29udHJvbGxlZC4KICAgICB2YXIg
Y29uc3RhbnRPbmVCdWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCBzYW1wbGVG
cmFtZUxlbmd0aCwgMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdXRvbWF0
aWMtcHVsbC1ub2RlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdXRvbWF0aWMtcHVsbC1u
b2RlLmh0bWwKaW5kZXggZTI3Mzc0NTcwYzdkNDlhYWMyOTJlNzUzMjUwMDAwMzE3YjU2YmNiNC4u
NDQwYzcwNmYwNjgzNjI2MzAwZDgzMGQyMWJlZGM5ZDVlNzhjMmJmYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXV0b21hdGljLXB1bGwtbm9kZS5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1dG9tYXRpYy1wdWxsLW5vZGUuaHRtbApAQCAtMzAsNyArMzAsNyBAQCB2
YXIgYW5hbHlzZXI7CiAKIGZ1bmN0aW9uIGNvbnN0cnVjdENvbW1vbkdyYXBoKCkgewogICAgIC8v
IENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRB
dWRpb0NvbnRleHQoMSwgcmVuZGVyTGVuZ3RoSW5GcmFtZXMsIHNhbXBsZVJhdGUpOworICAgIGNv
bnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJMZW5ndGhJbkZy
YW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgY29uc3RhbnRCdWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1
ZmZlcihjb250ZXh0LCByZW5kZXJMZW5ndGhJbkZyYW1lcywgMSk7CiAKICAgICBidWZmZXJTb3Vy
Y2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYmlxdWFkLWFsbHBhc3MuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Jp
cXVhZC1hbGxwYXNzLmh0bWwKaW5kZXggZWNmY2M5NWRkMmQ0ZTY5YzE1Y2JlMWRlYjllODFkMjI2
ZDY1MWUyMC4uNDIzNDQ2ZTkyZGNiZjMzNzhmNjM0YmViMzJkNDYzMWRkNjNkZDI5YiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWFsbHBhc3MuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtYWxscGFzcy5odG1sCkBAIC0yNSw3ICsyNSw3IEBAIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAg
ICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250
ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3Ro
U2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGlu
ZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxl
UmF0ZSk7CiAKICAgICAvLyBEdW1teSBmaWx0ZXIgdG8gZ2V0IGZpbHRlciB0eXBlIGNvbnN0YW50
CiAgICAgdmFyIGYgPSBjb250ZXh0LmNyZWF0ZUJpcXVhZEZpbHRlcigpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWJhbmRwYXNzLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9iaXF1YWQtYmFuZHBhc3MuaHRtbAppbmRleCAzNGUyNTY3YjI2NGUxN2NjZGVmMTg2
ZmNmOTAwYWZlMTk3Y2VkY2ZiLi4zMmMyY2U3MjE0OTc2MGEzYzgyNDU0MjgwNDkyMTJhNGFkNmZl
MjYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtYmFuZHBhc3MuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtYmFuZHBhc3MuaHRtbApAQCAtMjUs
NyArMjUsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4K
LSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAq
IHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3
IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNl
Y29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgLy8gRHVtbXkgZmlsdGVyIHRvIGdldCBmaWx0ZXIg
dHlwZSBjb25zdGFudAogICAgIHZhciBmID0gY29udGV4dC5jcmVhdGVCaXF1YWRGaWx0ZXIoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1oaWdocGFzcy5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWhpZ2hwYXNzLmh0bWwKaW5kZXggNTY3MzBjNWRm
ODdkZjljYTBkZjM4YWI2OGM1YWFiNjJiYTIyMjYwNC4uZWI2MzBjOGQ5NjE2NjE0YWY5NDI2OTFj
YTViZmU2YmJlMWM3MmUwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFk
LWhpZ2hwYXNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWhpZ2hwYXNz
Lmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1
ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIs
IHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIg
Y29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiBy
ZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIER1bW15IGZpbHRlciB0
byBnZXQgZmlsdGVyIHR5cGUgY29uc3RhbnQKICAgICB2YXIgZiA9IGNvbnRleHQuY3JlYXRlQmlx
dWFkRmlsdGVyKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtaGln
aHNoZWxmLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtaGlnaHNoZWxmLmh0bWwK
aW5kZXggY2UyOWE0MzUzY2RmODhlNzc4YzZjYjlhYWMyMzllMjU2YzFmYWJmNC4uOGY4M2I1MDdl
NmJlY2RhZTJmYTA3ZjJlZjM3M2Y3ZjUwNTA0MGQ3MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYmlxdWFkLWhpZ2hzaGVsZi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2JpcXVhZC1oaWdoc2hlbGYuaHRtbApAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiBydW5UZXN0
KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8g
Q3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJr
aXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBs
ZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQo
Miwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAg
Ly8gRHVtbXkgZmlsdGVyIHRvIGdldCBmaWx0ZXIgdHlwZSBjb25zdGFudAogICAgIHZhciBmID0g
Y29udGV4dC5jcmVhdGVCaXF1YWRGaWx0ZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2JpcXVhZC1sb3dwYXNzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQt
bG93cGFzcy5odG1sCmluZGV4IDhkNWU0YTk4MTZjMDc1MDRkNGM0ODAyMTdmMjNlZmYyMjRmNTEw
MzQuLjdlYmRmMDExN2RkMjI1OWZkNzQ4MzU0M2I2NmYyOTYxY2M1MWQ0OTkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1sb3dwYXNzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYmlxdWFkLWxvd3Bhc3MuaHRtbApAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlv
biBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAg
CiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9
IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29u
ZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRp
b0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUp
OwogCiAgICAgLy8gRHVtbXkgZmlsdGVyIHRvIGdldCBmaWx0ZXIgdHlwZSBjb25zdGFudAogICAg
IHZhciBmID0gY29udGV4dC5jcmVhdGVCaXF1YWRGaWx0ZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1sb3dzaGVsZi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYmlxdWFkLWxvd3NoZWxmLmh0bWwKaW5kZXggYzBkZjFiY2IwYjVjOGZkMWU2NjVmY2Q2N2I5
ZGVjNjAyMGFjOGQ3MS4uMDNiMDdkNWNhYWFiNjM2MWE2ZmJiMjUzMTU0NGYyYTEzZDJlODYyNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWxvd3NoZWxmLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWxvd3NoZWxmLmh0bWwKQEAgLTI1LDcgKzI1
LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAg
dmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5k
ZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJr
aXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRz
LCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIER1bW15IGZpbHRlciB0byBnZXQgZmlsdGVyIHR5cGUg
Y29uc3RhbnQKICAgICB2YXIgZiA9IGNvbnRleHQuY3JlYXRlQmlxdWFkRmlsdGVyKCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtbm90Y2guaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2JpcXVhZC1ub3RjaC5odG1sCmluZGV4IDZjNGE2NzIzNjM1MTE1N2JjNzky
NGRlZTczZmFjYWY2OWY4MTY1ZDcuLjUyZDJlY2E0NmM2OGNmNGVhNzQyNjlkZTU5NzNmM2UxYzU2
MDJhMTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1ub3RjaC5odG1s
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1ub3RjaC5odG1sCkBAIC0yNSw3ICsy
NSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAg
IHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVu
ZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Vi
a2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25k
cywgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBEdW1teSBmaWx0ZXIgdG8gZ2V0IGZpbHRlciB0eXBl
IGNvbnN0YW50CiAgICAgdmFyIGYgPSBjb250ZXh0LmNyZWF0ZUJpcXVhZEZpbHRlcigpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLXBlYWtpbmcuaHRtbCBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1wZWFraW5nLmh0bWwKaW5kZXggODUxOWE2NDgxNmViZThi
OTA0OGE1ZTVjZTdlZjYzOGUzZmYzOWNhMy4uZmM0NjBlYjNiMDc1NzU2ZTAxOGM3NzIzYjc0MDhm
N2Q4YmEzZTRiYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLXBlYWtp
bmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtcGVha2luZy5odG1sCkBA
IC0yNSw3ICsyNSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250
ZXh0LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVS
YXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQg
PSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVu
Z3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBEdW1teSBmaWx0ZXIgdG8gZ2V0IGZp
bHRlciB0eXBlIGNvbnN0YW50CiAgICAgdmFyIGYgPSBjb250ZXh0LmNyZWF0ZUJpcXVhZEZpbHRl
cigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY29udm9sdXRpb24tbW9uby1t
b25vLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9jb252b2x1dGlvbi1tb25vLW1vbm8uaHRt
bAppbmRleCAwZmI0MmQ3YTFhOGZhYTBlMTExZDI0MjdhNzg1OGRiOTE5OWM1MGZmLi5iZjU3ZjM4
M2Q1NmFkNjg1YjA2ODYwZWMyYjYzMTM0YzM4MjFhYjRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9jb252b2x1dGlvbi1tb25vLW1vbm8uaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9jb252b2x1dGlvbi1tb25vLW1vbm8uaHRtbApAQCAtMzUsNyArMzUsNyBAQCBmdW5j
dGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAg
ICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4
dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNl
Y29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVB
dWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJh
dGUpOwogCiAgICAgdmFyIHNxdWFyZVB1bHNlID0gY3JlYXRlU3F1YXJlUHVsc2VCdWZmZXIoY29u
dGV4dCwgcHVsc2VMZW5ndGhGcmFtZXMpOwogICAgIHZhciB0cmlhbmdsZVB1bHNlID0gY3JlYXRl
VHJpYW5nbGVQdWxzZUJ1ZmZlcihjb250ZXh0LCAyICogcHVsc2VMZW5ndGhGcmFtZXMpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heC1kZWZhdWx0LWRlbGF5
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LWRlZmF1bHQtZGVsYXku
aHRtbAppbmRleCA2YmNjMjYwYWFiYjUyZjBkNmFmNjljOTdhYjAxNzBjZGU4OTlkOTJkLi4wZjBm
ODEyMDc3OTViNTk0ODY3MDFiNGM1MmE2Mjc4OTQzZmIwNjQ2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LWRlZmF1bHQtZGVsYXkuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LWRlZmF1bHQtZGVsYXkuaHRtbApAQCAtMjQs
NyArMjQsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4K
LSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAq
IHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3
IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNl
Y29uZHMsIHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZl
cihjb250ZXh0LCAyMCwgMjAgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7IC8vIDIw
SHogdG9uZQogICAgIAogICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZl
clNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1h
eC1ub25kZWZhdWx0LWRlbGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUt
bWF4LW5vbmRlZmF1bHQtZGVsYXkuaHRtbAppbmRleCA0MWFkMWUyYTU5NGIxMzU0MTk3Yzc0Y2Mz
ZDRjZTMwZmE3MGVjNjBjLi5lMjgzMzUzODI0ZDUzZjhjOWEwNGExZTVhOTE1N2Q1MWZkYTRhNDE3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LW5vbmRlZmF1
bHQtZGVsYXkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4LW5v
bmRlZmF1bHQtZGVsYXkuaHRtbApAQCAtMjQsNyArMjQsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkg
ewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3Jl
YXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRB
dWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJh
dGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwg
c2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgIHZhciB0
b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250ZXh0LCAyMCwgMjAgKiB0b25lTGVuZ3Ro
U2Vjb25kcywgc2FtcGxlUmF0ZSk7IC8vIDIwSHogdG9uZQogICAgIAogICAgIHZhciBidWZmZXJT
b3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9kZWxheW5vZGUtbWF4ZGVsYXkuaHRtbAppbmRleCBlMjdjNTNjMWFjN2U5MjA3ZmIzYzAw
OGU5ZmU1M2NiYjRhMGYwYWU3Li4wODkyZDRlYzg2N2FjZWIxZjk4YzM4YThiYjVmZTQxN2NjMzE4
MDRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXku
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXkuaHRtbApA
QCAtMjQsNyArMjQsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29u
dGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgc2FtcGxl
UmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0
ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxl
bmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9u
ZUJ1ZmZlcihjb250ZXh0LCAyMCwgMjAgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7
IC8vIDIwSHogdG9uZQogICAgIAogICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0
ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlu
b2RlLW1heGRlbGF5bGltaXQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1t
YXhkZWxheWxpbWl0Lmh0bWwKaW5kZXggNTJlNWViMjY5MzYyMmM5NmQ4MDAwNzE2Y2IwOGE0ZWY0
YTY2Mzg1NS4uZmIyMDZhNjI5NzFkYjk1YmYwZGY2NDFmYzczNTRmMjhmMWFiMjYzMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5bGltaXQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXlsaW1pdC5odG1sCkBA
IC0yNCw3ICsyNCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250
ZXh0LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCBzYW1wbGVS
YXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQg
PSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVu
Z3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25l
QnVmZmVyKGNvbnRleHQsIDIwLCAyMCAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsg
Ly8gMjBIeiB0b25lCiAgICAgCiAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRl
QnVmZmVyU291cmNlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5v
ZGUtc2NoZWR1bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLXNjaGVk
dWxpbmcuaHRtbAppbmRleCAxNGRmYmQyNmU5OGQzZDRmMWEzOTc4Y2NlMDVkMTM3MDM0NWY0ZWUx
Li5kZmFmN2Q5MDhkYmE1YjRkNDNjY2ZkM2UxZGIzYmUzYzAzMGZiNGNkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtc2NoZWR1bGluZy5odG1sCisrKyBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1zY2hlZHVsaW5nLmh0bWwKQEAgLTI0LDcgKzI0LDcg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFy
IGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJM
ZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRP
ZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBz
YW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1ZmZlciA9IGNyZWF0ZVRvbmVCdWZmZXIoY29udGV4
dCwgMjAsIDIwICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOyAvLyAyMEh6IHRvbmUK
ICAgICAKICAgICB2YXIgYnVmZmVyU291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2Uo
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLmh0bWwKaW5kZXggNDAzODU1OGU4ZmM3NDQyNTlk
MTAxMmZhMTJjOTM4NTQyY2NiNjI2MC4uODdjNDdlNzJkOTYwZWY0YjcxZDIyNDczZjM5OGI2YmFj
M2EyZjk3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLmh0bWwKQEAgLTI0LDcgKzI0LDcg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFy
IGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJM
ZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRP
ZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBz
YW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1ZmZlciA9IGNyZWF0ZVRvbmVCdWZmZXIoY29udGV4
dCwgMjAsIDIwICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOyAvLyAyMEh6IHRvbmUK
ICAgICAKICAgICB2YXIgYnVmZmVyU291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2Uo
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWV4cG9uZW50aWFs
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1leHBvbmVudGlhbC5odG1sCmlu
ZGV4IGMwNTlkMTU3YjdjZGJhODZlZGI0NGU4MTQxZDY0M2Q1Mjg2NWQxMWYuLmZhMGY5OTEwNTZl
MmMyZjBlMzhjMjA3NWZlNDc1Mzk1ZmI5MjMwMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2Rpc3RhbmNlLWV4cG9uZW50aWFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vZGlzdGFuY2UtZXhwb25lbnRpYWwuaHRtbApAQCAtMjMsNyArMjMsNyBAQAogICAgICAgICAg
IHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICAgIC8vIENyZWF0ZSBvZmZs
aW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0Nv
bnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwor
ICAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1w
bGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgICAv
LyBUZW1wIHBhbm5lciBub2RlIHNvIHdlIGNhbiBnZXQgdGhlIEVYUE9ORU5USUFMX0RJU1RBTkNF
IHZhbHVlLgogICAgICAgICAgIHZhciB0ZW1wUGFubmVyID0gY29udGV4dC5jcmVhdGVQYW5uZXIo
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWludmVyc2UuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWludmVyc2UuaHRtbAppbmRleCA2YjQ0
NDhkMDA1YjY3ZTk3OGZlZjYyNDZhOGUyMzcwYzg1YTkxMjEwLi5jNTRlNzM4ZWQ0ZjdmYTk2ZGYz
YTAwOGZiMTI0ZWMxYTE2Nzg3NWFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9k
aXN0YW5jZS1pbnZlcnNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2Ut
aW52ZXJzZS5odG1sCkBAIC0yMyw3ICsyMyw3IEBACiAgICAgICAgICAgd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOwogCiAgICAgICAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4
dC4KLSAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVS
YXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgICAgICAgY29udGV4
dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJM
ZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgICAgICAgIC8vIFRlbXAgcGFubmVyIG5v
ZGUgc28gd2UgY2FuIGdldCB0aGUgSU5WRVJTRV9ESVNUQU5DRSB2YWx1ZS4KICAgICAgICAgICB2
YXIgdGVtcFBhbm5lciA9IGNvbnRleHQuY3JlYXRlUGFubmVyKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1saW5lYXIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2Rpc3RhbmNlLWxpbmVhci5odG1sCmluZGV4IGY0MzUyNjI1NGFiMzlmM2NmNWNhZTdjNTRi
M2IxMTFiNjUyMDVhMzEuLmU4ODlhMzkzZDczNTIyYjVkNzA4NThiZGM1MDQ5ZTg1ZDA1YzZmYzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWxpbmVhci5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWxpbmVhci5odG1sCkBAIC0yMyw3ICsy
Myw3IEBACiAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAg
ICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICAgICAgICBjb250ZXh0ID0g
bmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25k
cywgc2FtcGxlUmF0ZSk7CisgICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVk
aW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRl
KTsKIAogICAgICAgICAgIC8vIENyZWF0ZSB0ZW1wIHBhbm5lciB0byBnZXQgTElORUFSX0RJU1RB
TkNFIHZhbHVlIGZvciB0ZXN0aW5nLgogICAgICAgICAgIHZhciBwYW5uZXJNb2RlbCA9IGNvbnRl
eHQuY3JlYXRlUGFubmVyKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9nYWlu
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9nYWluLmh0bWwKaW5kZXggMWZmMWJhNjhhN2Jk
MWU4YzM0MTg4NjYyZDBmNzE0NzZmZmQzNjFjMC4uMzg2YjNlMDdhNTFmZjkzNGE1YzY2ZTNkNGU2
MDI2MmI4OTMwNGI2OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZ2Fpbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2dhaW4uaHRtbApAQCAtNTksNyArNTksNyBAQCBm
dW5jdGlvbiBpbml0KCkgewogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDcmVhdGUgb2ZmbGlu
ZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIs
IHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQg
PSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5T
ZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIENyZWF0ZSBhIGJ1ZmZlciBmb3IgYSBzaG9y
dCAibm90ZSIuCiAgICAgc2luV2F2ZUJ1ZmZlciA9IGNyZWF0ZVNpbldhdmVCdWZmZXIoYnVmZmVy
RHVyYXRpb25TZWNvbmRzLCA4ODAuMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9qYXZhc2NyaXB0YXVkaW9ub2RlLXplcm8taW5wdXQtY2hhbm5lbHMuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUtemVyby1pbnB1dC1jaGFubmVscy5odG1s
CmluZGV4IDYzOGU1YWQwZTM3NTUyNTAyMjczNDcwYmY4NjQ3YzFjNWRkYzkyZDMuLjdiNDc0Y2I0
NGE5OTFiYTgwYjM4OTc2ZTE2MGM3NjVlZDg3NzAyMzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUtemVyby1pbnB1dC1jaGFubmVscy5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUtemVyby1pbnB1dC1j
aGFubmVscy5odG1sCkBAIC0zMyw3ICszMyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogCiAgICAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Vi
a2l0QXVkaW9Db250ZXh0KDEsIHJlbmRlckxlbmd0aEluRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAg
ICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHJlbmRlckxl
bmd0aEluRnJhbWVzLCBzYW1wbGVSYXRlKTsKIAogICAgIHZhciBub2RlOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2RlLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2RlLmh0bWwKaW5kZXggODhmMDFlYjMxNGM3
ZTMyN2QxYWYzMzk5MTQ5MWYwY2UyZTBhYmQxNy4uYWI1MmViY2JiYmU4NGViNGFlMTA1NGUzNzBj
MWI4M2ZmNTYzYzM4ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vamF2YXNjcmlw
dGF1ZGlvbm9kZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRp
b25vZGUuaHRtbApAQCAtODQsNyArODQsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlv
IGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgcmVuZGVy
TGVuZ3RoSW5GcmFtZXMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2Zm
bGluZUF1ZGlvQ29udGV4dCgyLCByZW5kZXJMZW5ndGhJbkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAK
ICAgICB0cnkgewogICAgICAgICB2YXIganNub2RlID0gY29udGV4dC5jcmVhdGVTY3JpcHRQcm9j
ZXNzb3IoNTEyLCAwLCAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL21lZGlh
ZWxlbWVudGF1ZGlvc291cmNlbm9kZS1nYy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWVk
aWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWdjLmh0bWwKaW5kZXggODMwYWJiMzg0ZmIyOGU5YTMx
ZDVhZTBjZWVlMGU2Y2YxYjJiZmVmMS4uYWNhNTM5YmZiMWVhMTg4Yzg4YTRiMGY1OWU2NGY3YWU2
YjcxYmIzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVk
aW9zb3VyY2Vub2RlLWdjLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWVkaWFlbGVt
ZW50YXVkaW9zb3VyY2Vub2RlLWdjLmh0bWwKQEAgLTE5LDcgKzE5LDcgQEAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKICAgICB9CiAKICAgICBhdWRpb0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJhdWRpbyIpOwotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIDEw
MDAsIDQ0MTAwKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQo
MSwgMTAwMCwgNDQxMDApOwogICAgIHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlTWVkaWFFbGVtZW50
U291cmNlKGF1ZGlvRWxlbWVudCk7CiAgICAgYXVkaW9FbGVtZW50ID0gbnVsbDsKICAgICBjb250
ZXh0ID0gbnVsbDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL21peGluZy5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWl4aW5nLmh0bWwKaW5kZXggM2Y2ODE0OWY0MjdkOGM4
ZGM3ODA4MDM5Y2I5OTA0NWU3YzVkM2IyOS4uMTBiNzYzZTk2YzNlZWYxZjVmYWZkNzc4ZTk0MjQw
OTMwZjQ5MWFiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWl4aW5nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbWl4aW5nLmh0bWwKQEAgLTI4LDcgKzI4LDcgQEAg
ZnVuY3Rpb24gaW5pdCgpIHsKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICAvLyBDcmVh
dGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9D
b250ZXh0KDIsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOworICAg
IGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICog
bGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICAgICAgCiAgICAgYnVmZmVyTG9hZGVy
ID0gbmV3IEJ1ZmZlckxvYWRlcigKICAgICAgICAgY29udGV4dCwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL25vdGUtZ3JhaW4tb24tcGxheS5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vbm90ZS1ncmFpbi1vbi1wbGF5Lmh0bWwKaW5kZXggYjVkNTk2NWJkNzgzMGVkNGUxM2Q2
NDZmOTdhNWNmZGQ3N2IwODYzYi4uOGJkYjkxMDBjZjFiOWFmZWM0N2M3OTZhZjVkMjc5MDQxZWZh
ZjcwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbm90ZS1ncmFpbi1vbi1wbGF5
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbm90ZS1ncmFpbi1vbi1wbGF5Lmh0bWwK
QEAgLTEwNyw3ICsxMDcsNyBAQAogICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKIAogICAgICAgICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgICAg
ICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRl
clRpbWUsIHNhbXBsZVJhdGUpOworICAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGlu
ZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyVGltZSwgc2FtcGxlUmF0ZSk7CiAK
ICAgICAgICAgICAvLyBDcmVhdGUgYSBsaW5lYXIgcmFtcCBmb3IgdGVzdGluZyBub3RlR3JhaW5P
bi4KICAgICAgICAgICBsaW5lYXJSYW1wQnVmZmVyID0gY3JlYXRlU2lnbmFsQnVmZmVyKGNvbnRl
eHQsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9ub3RlLWdyYWluLW9uLXRpbWlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbm90ZS1ncmFpbi1vbi10aW1pbmcuaHRtbApp
bmRleCAxMzZiNGEyMWVjMDkxZGJiY2QxNWYzMzYwZjVkNDliNTRlYjMyM2JkLi40ZTVjY2IxNjZm
NmE5MDEwY2NhYTg5NjI0MDRhYTc4NWVjZjM3Y2M0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9ub3RlLWdyYWluLW9uLXRpbWluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL25vdGUtZ3JhaW4tb24tdGltaW5nLmh0bWwKQEAgLTQ0LDcgKzQ0LDcgQEAKICAgICAgICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAgICAgICAvLyBDcmVhdGUgb2Zm
bGluZSBhdWRpbyBjb250ZXh0LgotICAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9D
b250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJUaW1lLCBzYW1wbGVSYXRlKTsKKyAgICAgICAg
ICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAq
IHJlbmRlclRpbWUsIHNhbXBsZVJhdGUpOwogCiAgICAgICAgICAgc3F1YXJlUHVsc2VCdWZmZXIg
PSBjcmVhdGVTaWduYWxCdWZmZXIoY29udGV4dCwgZnVuY3Rpb24gKGspIHsgcmV0dXJuIDEgfSk7
ICAgIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9yLWJhc2lj
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9yLWJhc2ljLmh0bWwKaW5kZXgg
ZDM5ODllYmZkMmU3NTg5NDU3ZDc1MmY4YTg2YzUwMTkxOGJlMDljNy4uNDRlYjhmNjE1ZjdiYTY4
MTdiMGI3Yjk4ZGE1OTlmOTE4YmQ4YmVkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vb3NjaWxsYXRvci1iYXNpYy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL29zY2ls
bGF0b3ItYmFzaWMuaHRtbApAQCAtMzYsNyArMzYsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBv
ZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9D
b250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsK
KyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBs
ZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgb3NjID0g
Y29udGV4dC5jcmVhdGVPc2NpbGxhdG9yKCk7CiAKICAgICAvLyBTZXQgZWFjaCBwb3NzaWJsZSBv
c2NpbGxhdG9yIHR5cGUgKGV4Y2VwdCBDVVNUT00pIGFuZCB2ZXJpZnkgdGhhdCB0aGUgdHlwZSBp
cyBjb3JyZWN0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLWVxdWFs
cG93ZXItc3RlcmVvLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dl
ci1zdGVyZW8uaHRtbAppbmRleCAzMTY2Y2RkYThiZDczOGJjNDQyNGNmNzU1MGQ1YmYzZDM1NjQx
Y2YxLi4xODA1NGZkYzJiYTFiMzFlZWMxOWI3YjQzMTFlY2YzOTQyYjE4YTFlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci1zdGVyZW8uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci1zdGVyZW8uaHRtbApAQCAt
MjksNyArMjksNyBAQAogICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAog
ICAgICAgICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgICAgICAgY29u
dGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0
aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2Zm
bGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2Ft
cGxlUmF0ZSk7CiAKICAgICAgICAgICBjcmVhdGVUZXN0QW5kUnVuKGNvbnRleHQsIG5vZGVzVG9D
cmVhdGUsIDIpOwogICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFu
bmVyLWVxdWFscG93ZXIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBv
d2VyLmh0bWwKaW5kZXggZWVjMGRkZDk2MTA0NzYxNjQ1N2VlYzFiZWEzYWI3MzAzZWJmNjRiZS4u
MTg5MDQ2YTA0MWMxZWQ3ZmI0YWU0MjA1OWJmMWY1YjhkMzdhZDU4ZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci5odG1sCkBAIC0yOSw3ICsyOSw3IEBACiAgICAg
ICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAgICAgLy8gQ3JlYXRl
IG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1
ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0
ZSk7CisgICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIs
IHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgICAg
ICAgIGNyZWF0ZVRlc3RBbmRSdW4oY29udGV4dCwgbm9kZXNUb0NyZWF0ZSwgMSk7CiAgICAgICB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1z
aXppbmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNp
emluZy5odG1sCmluZGV4IDkwYzg5MzhiNGM1Y2MxNWYxMjVjNTI2OWIyZWJhNWNkZWFhNTJlZDQu
LmM1YWUyYWEwNTk2OGMxNDMzYTY4YjAxZWFkNzM1YjA2ZDVhYmUxZTMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0aW1lYW5hbHlzZXItZmZ0LXNpemluZy5odG1sCkBA
IC0xOSw3ICsxOSw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogfQogCiB2YXIgZG9UZXN0
ID0gZnVuY3Rpb24oZmZ0U2l6ZSwgaWxsZWdhbCkgewotICAgIHZhciBjID0gbmV3IHdlYmtpdEF1
ZGlvQ29udGV4dCgxLCAxMDAwLCA0NDEwMCk7CisgICAgdmFyIGMgPSBuZXcgd2Via2l0T2ZmbGlu
ZUF1ZGlvQ29udGV4dCgxLCAxMDAwLCA0NDEwMCk7CiAgICAgdmFyIGEgPSBjLmNyZWF0ZUFuYWx5
c2VyKCk7CiAgICAgdHJ5IHsKICAgICAgICAgYS5mZnRTaXplID0gZmZ0U2l6ZTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1jb2RlYy10ZXN0LmpzIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvLWNvZGVjLXRlc3QuanMKaW5kZXgg
ZTEzMDViNjJiYTQyZjA1ZjE0Yjk4ZTk0OGNmMGU5ZmI5ZDY5NWM2My4uZTQxNDhhYWUzZmIwMjYy
Y2I5ZjhiZTRlMmRkMTY2OTllY2I4MGU2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vcmVzb3VyY2VzL2F1ZGlvLWNvZGVjLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vcmVzb3VyY2VzL2F1ZGlvLWNvZGVjLXRlc3QuanMKQEAgLTE0LDcgKzE0LDcgQEAgZnVuY3Rp
b24gcnVuRGVjb2RpbmdUZXN0KHVybCwgb3B0aW9uYWxTYW1wbGVSYXRlKQogICAgIHZhciBzYW1w
bGVSYXRlID0gKHR5cGVvZiBvcHRpb25hbFNhbXBsZVJhdGUgPT09ICJ1bmRlZmluZWQiKSA/IGRl
ZmF1bHRTYW1wbGVSYXRlIDogb3B0aW9uYWxTYW1wbGVSYXRlOwogCiAgICAgLy8gQ3JlYXRlIG9m
ZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4
dCgxLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250
ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIGxlbmd0
aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgCiAgICAgYnVmZmVyTG9hZGVyID0gbmV3IEJ1
ZmZlckxvYWRlcigKICAgICAgICAgY29udGV4dCwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmcuanMgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLmpzCmluZGV4IGE1OWY2N2Q4NTRmMmIw
MmZkMTJkNGRiYzlkY2UyMzVmMmMxNTcxODkuLjM0Y2QwZDA3MzVhMjc0ZjM0ZTk0ZDU2ZGIyNzY5
ZmM1NzRiMTU0YTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9h
dWRpb3BhcmFtLXRlc3RpbmcuanMKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2Vz
L2F1ZGlvcGFyYW0tdGVzdGluZy5qcwpAQCAtNDA1LDcgKzQwNSw3IEBAIGZ1bmN0aW9uIGNyZWF0
ZUF1ZGlvR3JhcGhBbmRUZXN0KG51bWJlck9mVGVzdHMsIGluaXRpYWxWYWx1ZSwgc2V0VmFsdWVG
dW5jdGlvbiwKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAvLyBDcmVh
dGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9D
b250ZXh0KDIsIHJlbmRlckxlbmd0aChudW1iZXJPZlRlc3RzKSwgc2FtcGxlUmF0ZSk7CisgICAg
Y29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHJlbmRlckxlbmd0aChu
dW1iZXJPZlRlc3RzKSwgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIGNvbnN0YW50QnVmZmVyID0gY3Jl
YXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgMSwgcmVuZGVyTGVuZ3RoKG51bWJlck9mVGVzdHMp
KTsKIAogICAgIC8vIFdlIHVzZSBhbiBBdWRpb0dhaW5Ob2RlIGhlcmUgc2ltcGx5IGFzIGEgY29u
dmVuaWVudCB3YXkgdG8gdGVzdCB0aGUgQXVkaW9QYXJhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vcmVzb3VyY2VzL2phdmFzY3JpcHRhdWRpb25vZGUtdGVzdGluZy5qcyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9qYXZhc2NyaXB0YXVkaW9ub2RlLXRlc3Rpbmcu
anMKaW5kZXggMTE5Nzg0ODk4YWZlMGVjYjYzMmQzMGJhODkyNzU5YTAwOWMzYjU0OC4uMDQ1NDIx
MTBlNjdkODczN2ZkYzA5NTE5NTBhMjNiMzJhODFmNmViNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vcmVzb3VyY2VzL2phdmFzY3JpcHRhdWRpb25vZGUtdGVzdGluZy5qcworKysg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvamF2YXNjcmlwdGF1ZGlvbm9kZS10ZXN0
aW5nLmpzCkBAIC02NSw3ICs2NSw3IEBAIGZ1bmN0aW9uIGNoZWNrU3RlcmVvT25seURhdGEoYnVm
ZmVyLCBudW1iZXJPZkNoYW5uZWxzLCBsZW5ndGgpIHsKIGZ1bmN0aW9uIHJ1bkpTTm9kZVRlc3Qo
KQogewogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9
IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgcmVuZGVyTGVuZ3RoSW5GcmFtZXMsIHNhbXBsZVJh
dGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCByZW5k
ZXJMZW5ndGhJbkZyYW1lcywgc2FtcGxlUmF0ZSk7CiAKICAgICB2YXIgc291cmNlQnVmZmVyID0g
Y3JlYXRlQnVmZmVyKGNvbnRleHQsIHNvdXJjZUNoYW5uZWxzLCByZW5kZXJMZW5ndGhJbkZyYW1l
cyk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3NhbXBsZS1hY2N1cmF0ZS1z
Y2hlZHVsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9zYW1wbGUtYWNjdXJhdGUtc2No
ZWR1bGluZy5odG1sCmluZGV4IDZkNjdkNzA3YWQxYjU5NzE4NDFkZWRjMmE3OTZiOWI2Njc2ZjFi
ZjYuLjUxMGIxZmY3OTBiZjM2MWYwNjM1Y2QxZjRhODQ3Njg1YjhkYjdmNmUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL3NhbXBsZS1hY2N1cmF0ZS1zY2hlZHVsaW5nLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxpbmcuaHRtbApA
QCAtMTEzLDcgKzExMyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVz
dElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBj
b250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJh
dGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Vi
a2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBz
YW1wbGVSYXRlKTsKICAgICBjcmVhdGVJbXB1bHNlKCk7ICAgIAogCiAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBzYW1wbGVPZmZzZXRzLmxlbmd0aDsgKytpKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9zdGVyZW8ybW9uby1kb3duLW1peGluZy5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vc3RlcmVvMm1vbm8tZG93bi1taXhpbmcuaHRtbAppbmRleCBmNDY1NTcwYjEyYmM3
Y2U0MDAxYTM0NDM1YWUxYzQyMzZjMzMzZDRiLi4xN2U5N2U5MzBjMjJjNzJlNDNiMTk1NWRmNDQ4
NWM5ZTA4ZmQxZmYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9zdGVyZW8ybW9u
by1kb3duLW1peGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25v
LWRvd24tbWl4aW5nLmh0bWwKQEAgLTUwLDcgKzUwLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
ICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAvLyBDcmVhdGUgb2ZmbGlu
ZSBhdWRpbyBjb250ZXh0LCB0aGUgZGVzdGluYXRpb24gaXMgbW9uby4KLSAgICBjb250ZXh0ID0g
bmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25k
cywgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250
ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAg
ICAvLyBDcmVhdGUgYSBzdGVyZW8gQXVkaW9CdWZmZXIuCiAgICAgdG9uZUJ1ZmZlciA9IGNyZWF0
ZURhdGFCdWZmZXIoY29udGV4dCwgcmVuZGVyTGVuZ3RoU2Vjb25kcyk7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1tb25vLTUxLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby91cC1taXhpbmctbW9uby01MS5odG1sCmluZGV4IGE1NzQ1MWY4ZWZkMmZkMjlh
NDM1NjcwOGZmM2FlOGI4ZDdiNWRkNmQuLmViNTUwODcwMGRjYjBlMGZhNTc1NzE4ODYxOTY2ZGYw
OGM2OTBmOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1tb25v
LTUxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLW1vbm8tNTEuaHRt
bApAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAgICAgLy8gQ3JlYXRl
IG9mZmxpbmUgYXVkaW8gY29udGV4dAogICAgIHZhciBzYW1wbGVSYXRlID0gNDQxMDAuMDsKLSAg
ICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoNiwgc2FtcGxlUmF0ZSAqIHRv
bmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJr
aXRPZmZsaW5lQXVkaW9Db250ZXh0KDYsIHNhbXBsZVJhdGUgKiB0b25lTGVuZ3RoU2Vjb25kcywg
c2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVyKGNvbnRl
eHQsIDQ0MCwgdG9uZUxlbmd0aFNlY29uZHMsIDEpOyAKIAogICAgIHZhciBzb3VyY2UgPSBjb250
ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vdXAtbWl4aW5nLW1vbm8tc3RlcmVvLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby91cC1t
aXhpbmctbW9uby1zdGVyZW8uaHRtbAppbmRleCA5M2M3MTkwOThlYTg1ODE4ZDkxMTM2NzgzMGU5
NWE1NWUzYTEzNzg3Li4yZmMwN2JlY2RlYmY2ZDhhMGEzOWI4NDA3ODczMzgyYTM2YzE5MDMyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctbW9uby1zdGVyZW8uaHRt
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctbW9uby1zdGVyZW8uaHRtbApA
QCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAgICAgLy8gQ3JlYXRlIG9m
ZmxpbmUgYXVkaW8gY29udGV4dAogICAgIHZhciBzYW1wbGVSYXRlID0gNDQxMDAuMDsKLSAgICB2
YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHRvbmVM
ZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRP
ZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2Ft
cGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVyKGNvbnRleHQs
IDQ0MCwgdG9uZUxlbmd0aFNlY29uZHMsIDEpOyAKIAogICAgIHZhciBzb3VyY2UgPSBjb250ZXh0
LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
dXAtbWl4aW5nLXN0ZXJlby01MS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5n
LXN0ZXJlby01MS5odG1sCmluZGV4IDBiZTZlYTkyN2NhNDJkNWYwNTZjMzhjMGYzYzExYTIyOWJm
NjE5MDIuLjkzMjM0MDM0ZGY5OTgyMDIyMWM0NmE3M2NhMmNiYjI5NzQwNjE5YjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1zdGVyZW8tNTEuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctc3RlcmVvLTUxLmh0bWwKQEAgLTIzLDcgKzIz
LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlv
IGNvbnRleHQKICAgICB2YXIgc2FtcGxlUmF0ZSA9IDQ0MTAwLjA7Ci0gICAgdmFyIGNvbnRleHQg
PSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDYsIHNhbXBsZVJhdGUgKiB0b25lTGVuZ3RoU2Vjb25k
cywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlv
Q29udGV4dCg2LCBzYW1wbGVSYXRlICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwog
ICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250ZXh0LCA0NDAsIHRvbmVM
ZW5ndGhTZWNvbmRzLCAyKTsgCiAKICAgICB2YXIgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZm
ZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dhdmVzaGFwZXIu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dhdmVzaGFwZXIuaHRtbAppbmRleCA2YzU2YWI1
YzExNTA4NWNlY2UzYmM4YjBlMzg4ZGVkNTQxY2UyMzE0Li4yMmE1OTU1MTA2ZGI1NjYyN2RkYjg2
Njc0MGMyZDJmMjViZDZjMDc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby93YXZl
c2hhcGVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd2F2ZXNoYXBlci5odG1sCkBA
IC0xMDcsNyArMTA3LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNv
bnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgbnVtYmVyT2ZS
ZW5kZXJGcmFtZXMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGlu
ZUF1ZGlvQ29udGV4dCgxLCBudW1iZXJPZlJlbmRlckZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAg
CiAgICAgLy8gc291cmNlIC0+IHdhdmVzaGFwZXIgLT4gZGVzdGluYXRpb24KICAgICB2YXIgc291
cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178662</attachid>
            <date>2012-12-10 16:12:50 -0800</date>
            <delta_ts>2012-12-12 13:01:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104188-20121210161012.patch</filename>
            <type>text/plain</type>
            <size>71104</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzlkY2RlZTViOWZmNTJm
OTcwYmY0ODBmM2ZiYmVkZTU0MWEyYmU1Yy4uYTgxYzk2NWEwYzU4NGIwZDM0ZjRlZGMzYzc4YjQx
YWY1MjE5ZThkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEyLTEwICBDaHJp
cyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IE9mZmxp
bmVBdWRpb0NvbnRleHQgY29uc3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNDE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSBXZWIgQXVkaW8gbGF5b3V0IHRlc3RzIGhhdmUgcmVsaWVk
IG9uIGFuIHVuZG9jdW1lbnRlZCB3YXkgKGluIHRoZSBzcGVjaWZpY2F0aW9uKSB0byByZW5kZXIK
KyAgICAgICAgYXVkaW8gZmFzdGVyIHRoYW4gcmVhbHRpbWUgdXNpbmcgYW4gT2ZmbGluZUF1ZGlv
Q29udGV4dC4gIFdlIHdhbnQgdG8gZXhwb3NlIGEgcHJvcGVyIE9mZmxpbmVBdWRpb0NvbnRleHQK
KyAgICAgICAgb2JqZWN0IGFuZCBjb25zdHJ1Y3RvciBpbnN0ZWFkIG9mIHBpZ2d5YmFja2luZyBv
ZmYgb2YgdGhlIG5vcm1hbCBBdWRpb0NvbnRleHQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLnByaToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQ29u
dGV4dDo6aXNTYW1wbGVSYXRlUmFuZ2VHb29kKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAoQXVkaW9Db250ZXh0KToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0RPTVdpbmRvd1dlYkF1ZGlvLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0NvbnRleHQ6Ok9mZmxpbmVBdWRpb0NvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6T2ZmbGluZUF1ZGlvQ29udGV4dDo6fk9mZmxpbmVBdWRpb0NvbnRl
eHQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoT2ZmbGluZUF1ZGlvQ29udGV4dCk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmlkbDogQWRk
ZWQuCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OndlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHRFbmFibGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0F1ZGlvQ29u
dGV4dENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0F1ZGlvQ29udGV4dCk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dXZWJBdWRpb0N1c3RvbS5jcHA6CisgICAgICAgICogYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4QXVkaW9Db250ZXh0Ojpjb25zdHJ1Y3RvckNhbGxiYWNrQ3VzdG9tKToKKwogMjAxMi0xMi0x
MCAgS3l1bmdUYWUgS2ltICA8a3RmLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbc291cF0g
Rml4IGJ1aWxkIHdhcm5pbmcgaW4gUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCAxODhmMzExNDUwM2Y2MWMxNjM3NDc0MmRkYTg4Y2VhOTIzMzI2MmIyLi5jZjFl
NWNhNzk5YjgyZGJkYTdiNTE2NjZlYzllYzVmNmQwNGVjMjMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMjgxLDYgKzI4MSw3IEBAIHNldChXZWJDb3JlX0lETF9GSUxFUwogICAgIE1vZHVsZXMv
d2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL01lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1
ZGlvQ29udGV4dC5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbXBsZXRp
b25FdmVudC5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmlkbAogICAg
IE1vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2RlLmlkbApAQCAtOTMxLDYgKzkzMiw3IEBAIHNl
dChXZWJDb3JlX1NPVVJDRVMKICAgICBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5v
ZGUuY3BwCiAgICAgTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUu
Y3BwCiAgICAgTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAK
KyAgICBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCiAgICAgTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwCiAgICAgTW9kdWxlcy93
ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCiAgICAgTW9kdWxlcy93ZWJh
dWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IDEwODQxMWJmODNlNzYyYzA5YjljMTQ4MzdhZjkwYWI5OTYxMmYyZDUuLjY4OTk1ZDY0YWQ5YTcy
MGYzOGY4ODI0ZjE2MDMyOGY3MTQwYWE1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtMTQyLDYgKzE0Miw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmlkbCBcCisg
ICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpIGIvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCmluZGV4IDE3OGZkYTVmNTIwNGY5ODJiNjQyM2U2
ZTIyMTUxZjIzZGE0OTc3NGUuLmE2ZTQwZjU3ZjM5ODVhYTY3ODAxYzA4NzEwZWJjN2ZkZWE1MmVk
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKQEAgLTE2MCw2ICsxNjAsNyBAQCBJRExf
QklORElOR1MgKz0gXAogICAgICQkUFdEL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29y
Tm9kZS5pZGwgXAogICAgICQkUFdEL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9T
b3VyY2VOb2RlLmlkbCBcCiAgICAgJCRQV0QvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1
ZGlvU291cmNlTm9kZS5pZGwgXAorICAgICQkUFdEL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1
ZGlvQ29udGV4dC5pZGwgXAogICAgICQkUFdEL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlv
Q29tcGxldGlvbkV2ZW50LmlkbCBcCiAgICAgJCRQV0QvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxh
dG9yTm9kZS5pZGwgXAogICAgICQkUFdEL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2RlLmlk
bCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzMjQxZGVlZWYzNmZiYmRlNmEw
NzExY2ZjNjQ1NzNmZjUxYTc0NmQxLi42ZDkzNGJkNTIyNjg2NWE2NmI1NDg2MTRiY2ZjMGYzNjhj
YzQwN2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTU4MSw2ICs1ODEsOCBA
QCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNP
RVNWZXJ0ZXhBcnJheU9iamVjdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTRWxl
bWVudEluZGV4VWludC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPRVNFbGVtZW50
SW5kZXhVaW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPZmZsaW5lQXVkaW9Db250
ZXh0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU09mZmxpbmVBdWRpb0NvbnRleHQu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVu
dC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9u
RXZlbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU09zY2lsbGF0b3JOb2RlLmNwcCBc
CkBAIC0xMjkyLDYgKzEyOTQsNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUp
L01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5pZGwgXAogCSQoV2ViQ29yZSkv
TW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaWRsIFwKIAkkKFdl
YkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaWRsIFwK
KwkkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5pZGwgXAog
CSQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRs
IFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2RlLmlkbCBcCkBAIC0y
MDY3LDYgKzIwNzAsOCBAQCB3ZWJjb3JlX21vZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBcCiAJ
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9k
ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGUuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5l
QXVkaW9Db250ZXh0LmNwcCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZs
aW5lQXVkaW9Db250ZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2Zm
bGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKaW5kZXggNzE0
YWI1MjBlZTM5MmY5NzZkYjRlZjAzNGUzYzczMDUwNjJjODcwZi4uYjIwMDc5MDkzMjQ5Mzk2NDcz
NjY5OTQxOGRjMTliMTEyNDdhMWYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtOTUsMTcgKzk1LDEzIEBAIGNvbnN0IHVuc2ln
bmVkIE1heE5vZGVzVG9EZWxldGVQZXJRdWFudHVtID0gMTA7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAKLW5hbWVzcGFjZSB7Ci0gICAgCi1ib29sIGlzU2FtcGxlUmF0ZVJhbmdlR29vZChm
bG9hdCBzYW1wbGVSYXRlKQorYm9vbCBBdWRpb0NvbnRleHQ6OmlzU2FtcGxlUmF0ZVJhbmdlR29v
ZChmbG9hdCBzYW1wbGVSYXRlKQogewogICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBuaWNlIGlm
IHRoZSBtaW5pbXVtIHNhbXBsZS1yYXRlIGNvdWxkIGJlIGxlc3MgdGhhbiA0NC4xS0h6LAogICAg
IC8vIGJ1dCB0aGF0IHdpbGwgcmVxdWlyZSBzb21lIGZpeGVzIGluIEhSVEZQYW5uZXI6OmZmdFNp
emVGb3JTYW1wbGVSYXRlKCksIGFuZCBzb21lIHRlc3RpbmcgdGhlcmUuCiAgICAgcmV0dXJuIHNh
bXBsZVJhdGUgPj0gNDQxMDAgJiYgc2FtcGxlUmF0ZSA8PSA5NjAwMDsKIH0KIAotfQotCiAvLyBE
b24ndCBhbGxvdyBtb3JlIHRoYW4gdGhpcyBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIEF1ZGlvQ29u
dGV4dHMgdGFsa2luZyB0byBoYXJkd2FyZS4KIGNvbnN0IHVuc2lnbmVkIE1heEhhcmR3YXJlQ29u
dGV4dHMgPSA0OwogdW5zaWduZWQgQXVkaW9Db250ZXh0OjpzX2hhcmR3YXJlQ29udGV4dENvdW50
ID0gMDsKQEAgLTEyNCwyMyArMTIwLDYgQEAgUGFzc1JlZlB0cjxBdWRpb0NvbnRleHQ+IEF1ZGlv
Q29udGV4dDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYKICAgICBy
ZXR1cm4gYXVkaW9Db250ZXh0LnJlbGVhc2UoKTsKIH0KIAotUGFzc1JlZlB0cjxBdWRpb0NvbnRl
eHQ+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlT2ZmbGluZUNvbnRleHQoRG9jdW1lbnQqIGRvY3VtZW50
LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0
IHNhbXBsZVJhdGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIEFTU0VSVChkb2N1bWVudCk7
Ci0KLSAgICAvLyBGSVhNRTogb2ZmbGluZSBjb250ZXh0cyBoYXZlIGxpbWl0YXRpb25zIG9uIHN1
cHBvcnRlZCBzYW1wbGUtcmF0ZXMuCi0gICAgLy8gQ3VycmVudGx5IGFsbCBBdWRpb0NvbnRleHRz
IG11c3QgaGF2ZSB0aGUgc2FtZSBzYW1wbGUtcmF0ZS4KLSAgICBIUlRGRGF0YWJhc2VMb2FkZXIq
IGxvYWRlciA9IEhSVEZEYXRhYmFzZUxvYWRlcjo6bG9hZGVyKCk7Ci0gICAgaWYgKG51bWJlck9m
Q2hhbm5lbHMgPiAxMCB8fCAhaXNTYW1wbGVSYXRlUmFuZ2VHb29kKHNhbXBsZVJhdGUpIHx8IChs
b2FkZXIgJiYgbG9hZGVyLT5kYXRhYmFzZVNhbXBsZVJhdGUoKSAhPSBzYW1wbGVSYXRlKSkgewot
ICAgICAgICBlYyA9IFNZTlRBWF9FUlI7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAg
IFJlZlB0cjxBdWRpb0NvbnRleHQ+IGF1ZGlvQ29udGV4dChhZG9wdFJlZihuZXcgQXVkaW9Db250
ZXh0KGRvY3VtZW50LCBudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0
ZSkpKTsKLSAgICBhdWRpb0NvbnRleHQtPnN1c3BlbmRJZk5lZWRlZCgpOwotICAgIHJldHVybiBh
dWRpb0NvbnRleHQucmVsZWFzZSgpOwotfQotCiAvLyBDb25zdHJ1Y3RvciBmb3IgcmVuZGVyaW5n
IHRvIHRoZSBhdWRpbyBoYXJkd2FyZS4KIEF1ZGlvQ29udGV4dDo6QXVkaW9Db250ZXh0KERvY3Vt
ZW50KiBkb2N1bWVudCkKICAgICA6IEFjdGl2ZURPTU9iamVjdChkb2N1bWVudCwgdGhpcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCmluZGV4IDZk
YTNjMTJhOWY1ZWQzNTBkNDM5ZmQ4ZjkwNTFiZWJlNDZjMTcxZjkuLjhhMDY2NjgzYmMyMTJiMGRm
OGMwYWI3YjExMjJlM2ViMmNmYmJiNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAtMjUwLDkgKzI1MCwxMyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0
IE9WRVJSSURFOwogCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEF1ZGlvQ29u
dGV4dChEb2N1bWVudCopOwogICAgIEF1ZGlvQ29udGV4dChEb2N1bWVudCosIHVuc2lnbmVkIG51
bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSk7
CisgICAgCisgICAgc3RhdGljIGJvb2wgaXNTYW1wbGVSYXRlUmFuZ2VHb29kKGZsb2F0IHNhbXBs
ZVJhdGUpOworICAgIAorcHJpdmF0ZToKICAgICB2b2lkIGNvbnN0cnVjdENvbW1vbigpOwogCiAg
ICAgdm9pZCBsYXp5SW5pdGlhbGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9ET01XaW5kb3dXZWJBdWRpby5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0RPTVdpbmRvd1dlYkF1ZGlvLmlkbAppbmRleCBkZjg4ZmIwZjYxNzBlM2Yy
ODE5NzBlMWI0Y2YyMDA0OGE3YmQ2NTEwLi40YjFiN2QxOTI3NWFlY2Y3ZGM2NjQ2MmEzNmRmNjM0
MTI2OGNmZDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RP
TVdpbmRvd1dlYkF1ZGlvLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0RPTVdpbmRvd1dlYkF1ZGlvLmlkbApAQCAtMzAsNiArMzAsNyBAQAogXSBpbnRlcmZhY2UgRE9N
V2luZG93V2ViQXVkaW8gewogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQUCkgfHwgIUxBTkdVQUdF
X0NQUAogICAgIFtKU0N1c3RvbUdldHRlciwgVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUg
QXVkaW9Db250ZXh0Q29uc3RydWN0b3Igd2Via2l0QXVkaW9Db250ZXh0OworICAgIFtWOEVuYWJs
ZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBPZmZsaW5lQXVkaW9Db250ZXh0Q29uc3RydWN0b3Igd2Vi
a2l0T2ZmbGluZUF1ZGlvQ29udGV4dDsKICAgICBhdHRyaWJ1dGUgUGFubmVyTm9kZUNvbnN0cnVj
dG9yIHdlYmtpdEF1ZGlvUGFubmVyTm9kZTsKICAgICBhdHRyaWJ1dGUgQXVkaW9Qcm9jZXNzaW5n
RXZlbnRDb25zdHJ1Y3RvciBBdWRpb1Byb2Nlc3NpbmdFdmVudDsKICAgICBhdHRyaWJ1dGUgT2Zm
bGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50Q29uc3RydWN0b3IgT2ZmbGluZUF1ZGlvQ29tcGxldGlv
bkV2ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZs
aW5lQXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2Zm
bGluZUF1ZGlvQ29udGV4dC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZlMzYyNzM5YjA0YjhjN2UwODZhM2Ux
NmY0N2M4NmNiNDlkOThlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAKQEAgLTAsMCArMSw3MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShXRUJfQVVESU8pCisK
KyNpbmNsdWRlICJPZmZsaW5lQXVkaW9Db250ZXh0LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJIUlRGRGF0YWJhc2VMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUGFzc1JlZlB0cjxPZmZsaW5lQXVkaW9Db250ZXh0PiBPZmZsaW5lQXVkaW9D
b250ZXh0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgdW5zaWduZWQg
bnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRl
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICAvLyBGSVhNRTogYWRkIHN1cHBvcnQgZm9yIHdv
cmtlcnMuCisgICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0LT5pc0RvY3VtZW50KCkpIHsKKyAg
ICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQor
CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0
KTsKKworICAgIC8vIEZJWE1FOiBvZmZsaW5lIGNvbnRleHRzIGhhdmUgbGltaXRhdGlvbnMgb24g
c3VwcG9ydGVkIHNhbXBsZS1yYXRlcy4KKyAgICAvLyBDdXJyZW50bHkgYWxsIEF1ZGlvQ29udGV4
dHMgbXVzdCBoYXZlIHRoZSBzYW1lIHNhbXBsZS1yYXRlLgorICAgIEhSVEZEYXRhYmFzZUxvYWRl
ciogbG9hZGVyID0gSFJURkRhdGFiYXNlTG9hZGVyOjpsb2FkZXIoKTsKKyAgICBpZiAobnVtYmVy
T2ZDaGFubmVscyA+IDEwIHx8ICFpc1NhbXBsZVJhdGVSYW5nZUdvb2Qoc2FtcGxlUmF0ZSkgfHwg
KGxvYWRlciAmJiBsb2FkZXItPmRhdGFiYXNlU2FtcGxlUmF0ZSgpICE9IHNhbXBsZVJhdGUpKSB7
CisgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisg
ICAgUmVmUHRyPE9mZmxpbmVBdWRpb0NvbnRleHQ+IGF1ZGlvQ29udGV4dChhZG9wdFJlZihuZXcg
T2ZmbGluZUF1ZGlvQ29udGV4dChkb2N1bWVudCwgbnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZG
cmFtZXMsIHNhbXBsZVJhdGUpKSk7CisgICAgYXVkaW9Db250ZXh0LT5zdXNwZW5kSWZOZWVkZWQo
KTsKKyAgICByZXR1cm4gYXVkaW9Db250ZXh0LnJlbGVhc2UoKTsKK30KKworT2ZmbGluZUF1ZGlv
Q29udGV4dDo6T2ZmbGluZUF1ZGlvQ29udGV4dChEb2N1bWVudCogZG9jdW1lbnQsIHVuc2lnbmVk
IG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0
ZSkKKyAgICA6IEF1ZGlvQ29udGV4dChkb2N1bWVudCwgbnVtYmVyT2ZDaGFubmVscywgbnVtYmVy
T2ZGcmFtZXMsIHNhbXBsZVJhdGUpCit7Cit9CisKK09mZmxpbmVBdWRpb0NvbnRleHQ6On5PZmZs
aW5lQXVkaW9Db250ZXh0KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmViNmJmNTdiNzVi
YzViYmUyOTIwNzA2MmI5MGM3ZTkxYmFhZjE0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oCkBAIC0wLDAgKzEs
NDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE9mZmxpbmVBdWRpb0NvbnRleHRfaAorI2RlZmlu
ZSBPZmZsaW5lQXVkaW9Db250ZXh0X2gKKworI2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE9mZmxpbmVBdWRpb0NvbnRleHQgOiBwdWJsaWMg
QXVkaW9Db250ZXh0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxPZmZsaW5lQXVk
aW9Db250ZXh0PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIHVuc2lnbmVkIG51bWJl
ck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSwgRXhj
ZXB0aW9uQ29kZSYpOworCisgICAgdmlydHVhbCB+T2ZmbGluZUF1ZGlvQ29udGV4dCgpOworCitw
cml2YXRlOgorICAgIE9mZmxpbmVBdWRpb0NvbnRleHQoRG9jdW1lbnQqLCB1bnNpZ25lZCBudW1i
ZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUpOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gT2ZmbGluZUF1ZGlvQ29u
dGV4dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxp
bmVBdWRpb0NvbnRleHQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9PZmZs
aW5lQXVkaW9Db250ZXh0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDAzZTgzMjAxZDk3MzhkNjBkZDYwOTI4
YTM5N2YyYzZjMDk4N2E1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmlkbApAQCAtMCwwICsxLDM0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKKyAgICBBY3RpdmVET01PYmpl
Y3QsCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCisgICAgQ29uc3RydWN0b3IoaW4gdW5zaWdu
ZWQgbG9uZyBudW1iZXJPZkNoYW5uZWxzLCBpbiB1bnNpZ25lZCBsb25nIG51bWJlck9mRnJhbWVz
LCBpbiBmbG9hdCBzYW1wbGVSYXRlKSwKKyAgICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbiwK
KyAgICBDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0CitdIGludGVyZmFjZSBPZmZsaW5l
QXVkaW9Db250ZXh0IDogQXVkaW9Db250ZXh0IHsKKworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1
NjljOTg2NzU4Y2Q5MDQ5N2JiNjUxOTNhYmNkNmI4MGRjNjllMzQ1Li5lMjE4MDNhM2Y1ZDdlNDk2
NDJmZWQ1NGJkMGM5MDY0OGE5OGUxOTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMzMsNiArMTMz
LDcgQEAKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9EZXN0
aW5hdGlvbk5vZGUuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2VOb2RlLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaWRsJywKKyAgICAgICAgICAgICdNb2R1bGVzL3dl
YmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL3dl
YmF1ZGlvL09zY2lsbGF0b3JOb2RlLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRp
by9BbmFseXNlck5vZGUuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmF1ZGlvL1dhdmVT
aGFwZXJOb2RlLmlkbCcsCkBAIC05NjQsNiArOTY1LDggQEAKICAgICAgICAgICAgICdNb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmgnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmNwcCcsCiAgICAgICAg
ICAgICAnTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCcsCisg
ICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcCcsCisg
ICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmgnLAogICAg
ICAgICAgICAgJ01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNw
cCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9EZXN0aW5hdGlv
bk5vZGUuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5j
cHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDMxNjY3MzZiN2ExOGNmMzNiZWZlNDYxZDk2NDRhMDg0MDA3Y2NjOGQuLjliOGI1
OGFjNTZlZjJlZTUyN2ZmZGY2ZjQxM2ViZTI3MjVjZTk3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY2MTcsNiArNjYxNywx
MCBAQAogCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlv
bkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
REEzRTk1NjEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50Lmgg
Ki87IH07CiAJCUZEQTNFOTVCMTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9EZXN0aW5h
dGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkRBM0U5NTcxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAgKi87IH07CiAJCUZEQTNFOTVDMTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9E
ZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEZEQTNFOTU4MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9EZXN0aW5hdGlv
bk5vZGUuaCAqLzsgfTsKKwkJRkRBOTMyNUQxNjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVBdWRp
b0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkRBOTMyNUExNjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuY3BwICov
OyB9OworCQlGREE5MzI1RTE2NzAzQjJBMDA4OTgyREMgLyogT2ZmbGluZUF1ZGlvQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRBOTMyNUIx
NjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuaCAqLzsgfTsKKwkJRkRBOTMy
NjYxNjcwM0JBOTAwODk4MkRDIC8qIEpTT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREE5MzI2NDE2NzAzQkE5MDA4
OTgyREMgLyogSlNPZmZsaW5lQXVkaW9Db250ZXh0LmNwcCAqLzsgfTsKKwkJRkRBOTMyNjcxNjcw
M0JBOTAwODk4MkRDIC8qIEpTT2ZmbGluZUF1ZGlvQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRBOTMyNjUxNjcwM0JBOTAwODk4MkRDIC8q
IEpTT2ZmbGluZUF1ZGlvQ29udGV4dC5oICovOyB9OwogCQlGREFGMTk5ODE1MTNEMTMxMDA4REIw
QzMgLyogRGlyZWN0Q29udm9sdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZEQUYxOTk2MTUxM0QxMzEwMDhEQjBDMyAvKiBEaXJlY3RDb252b2x2
ZXIuY3BwICovOyB9OwogCQlGREFGMTk5OTE1MTNEMTMxMDA4REIwQzMgLyogRGlyZWN0Q29udm9s
dmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREFG
MTk5NzE1MTNEMTMxMDA4REIwQzMgLyogRGlyZWN0Q29udm9sdmVyLmggKi87IH07CiAJCUZEQjA1
MkRGMTU2MUE0MkMwMEI1MDBENiAvKiBBdWRpb1N1bW1pbmdKdW5jdGlvbi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREIwNTJERDE1NjFBNDJDMDBC
NTAwRDYgLyogQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwICovOyB9OwpAQCAtMTQxNjgsNiArMTQx
NzIsMTEgQEAKIAkJRkRBM0U5NTcxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPZmZs
aW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGREEzRTk1ODEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREEzRTk1RDEzNEE0OUZG
MDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGREE5MzI1QTE2NzAzQjJBMDA4OTgyREMgLyogT2ZmbGluZUF1ZGlv
Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPZmZsaW5l
QXVkaW9Db250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkRBOTMyNUIx
NjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gT2ZmbGluZUF1ZGlvQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGREE5MzI1QzE2NzAzQjJBMDA4OTgyREMgLyogT2ZmbGluZUF1ZGlvQ29u
dGV4dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gT2ZmbGluZUF1ZGlvQ29udGV4dC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZEQTkzMjY0MTY3MDNCQTkwMDg5ODJEQyAv
KiBKU09mZmxpbmVBdWRpb0NvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNPZmZsaW5lQXVkaW9Db250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRkRBOTMyNjUxNjcwM0JBOTAwODk4MkRDIC8qIEpTT2ZmbGluZUF1ZGlvQ29udGV4
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09mZmxpbmVBdWRpb0NvbnRl
eHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRBRjE5OTYxNTEzRDEzMTAwOERC
MEMzIC8qIERpcmVjdENvbnZvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBEaXJlY3RDb252b2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGREFGMTk5NzE1MTNEMTMxMDA4REIwQzMgLyogRGlyZWN0Q29udm9sdmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpcmVjdENvbnZvbHZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGREIwNTJERDE1NjFBNDJDMDBCNTAwRDYgLyogQXVkaW9TdW1taW5n
SnVuY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9T
dW1taW5nSnVuY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjIzNjcs
NiArMjIzNzYsOSBAQAogCQkJCUZENjcxQTc0MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVh
bUF1ZGlvU291cmNlTm9kZS5jcHAgKi8sCiAJCQkJRkQ2NzFBNzUxNTlCQjA3MDAwMTk3NTU5IC8q
IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmggKi8sCiAJCQkJRkQ2NzFBNzYxNTlCQjA3MDAw
MTk3NTU5IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmlkbCAqLywKKwkJCQlGREE5MzI1
QTE2NzAzQjJBMDA4OTgyREMgLyogT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgKi8sCisJCQkJRkRB
OTMyNUIxNjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuaCAqLywKKwkJCQlG
REE5MzI1QzE2NzAzQjJBMDA4OTgyREMgLyogT2ZmbGluZUF1ZGlvQ29udGV4dC5pZGwgKi8sCiAJ
CQkJRkRBM0U5NTUxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVu
dC5jcHAgKi8sCiAJCQkJRkRBM0U5NTYxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Nv
bXBsZXRpb25FdmVudC5oICovLAogCQkJCUZEQTNFOTVEMTM0QTQ5RkYwMDhENEI1QSAvKiBPZmZs
aW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaWRsICovLApAQCAtMjI1MzMsNiArMjI1NDUsOCBAQAog
CQkJCUZEMjNBMTI0MTNGNUZBNTkwMEY2NzAwMSAvKiBKU01lZGlhRWxlbWVudEF1ZGlvU291cmNl
Tm9kZS5oICovLAogCQkJCUZEQkQ0ODBBMTU5QkM2ODcwMDkzRUI0RiAvKiBKU01lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VOb2RlLmNwcCAqLywKIAkJCQlGREJENDgwQjE1OUJDNjg3MDA5M0VCNEYgLyog
SlNNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oICovLAorCQkJCUZEQTkzMjY0MTY3MDNCQTkw
MDg5ODJEQyAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHQuY3BwICovLAorCQkJCUZEQTkzMjY1MTY3
MDNCQTkwMDg5ODJEQyAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHQuaCAqLywKIAkJCQlGREY2QkFG
NjEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwICov
LAogCQkJCUZERjZCQUY3MTM0QTRDOTgwMDgyMjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRp
b25FdmVudC5oICovLAogCQkJCUZERUE2MjQwMTUyMTAyRTIwMDQ3OURGMCAvKiBKU09zY2lsbGF0
b3JOb2RlLmNwcCAqLywKQEAgLTI1OTEzLDYgKzI1OTI3LDggQEAKIAkJCQlENjQ4OUQyNjE2NkZG
Q0YxMDA3QzAzMUIgLyogSlNIVE1MVGVtcGxhdGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkzMUQ1OTFCQzE2NkMyRTZDMDBFNkJGMDIgLyogUGx1Z0luT3JpZ2luSGFzaC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTg2RUE4ODMxNUZGRjI5MDAwOTg1RTVFIC8qIFByZXJlbmRlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRkRBOTMyNUUxNjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVB
dWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUZEQTkzMjY3MTY3MDNCQTkwMDg5ODJE
QyAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjkwMjMsNiAr
MjkwMzksOCBAQAogCQkJCUQ2NDg5RDI1MTY2RkZDRjEwMDdDMDMxQiAvKiBKU0hUTUxUZW1wbGF0
ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDZGNzk2MEQxNjZGRkVDRTAwNzZERDE4
IC8qIEpTSFRNTFRlbXBsYXRlRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkz
MUQ1OTFCQjE2NkMyRTZDMDBFNkJGMDIgLyogUGx1Z0luT3JpZ2luSGFzaC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGREE5MzI1RDE2NzAzQjJBMDA4OTgyREMgLyogT2ZmbGluZUF1ZGlvQ29udGV4
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGREE5MzI2NjE2NzAzQkE5MDA4OTgyREMgLyogSlNP
ZmZsaW5lQXVkaW9Db250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlG
b3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAppbmRl
eCA5M2NiODM5MTE4MTY4YzIwY2E0OTY2YWI5ZjViMDdlNmUzNmVhN2E2Li4xOGY2NjFjNmM5YjUz
ODgxMzhjMDBlOGU5NGJiODRkYmQxZGZkYzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaApAQCAtMTIzLDYg
KzEyMyw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIHN0YXRpYyB2b2lk
IHNldFdlYmtpdEF1ZGlvQ29udGV4dEVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgaXNXZWJBdWRp
b0VuYWJsZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBzdGF0aWMgYm9vbCB3ZWJraXRBdWRpb0NvbnRl
eHRFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJBdWRpb0VuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9v
bCB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0RW5hYmxlZCgpIHsgcmV0dXJuIGlzV2ViQXVkaW9F
bmFibGVkOyB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1c3RvbS5jcHAKaW5kZXgg
MTIwZmM1N2RiODBkOTFhOGUxYzJkNzM1ZDA1MTZhMzU2ZjhjMDhiZi4uZmY3ZmFlZTQ3ZThhNDBk
YjAyNzI5MjExMWFhZWZmNWI5ZDQ0YWQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2lu
Y2x1ZGUgIkpTQXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJKU0F1ZGlvQnVmZmVyLmgiCiAjaW5j
bHVkZSAiSlNBdWRpb0NvbnRleHQuaCIKKyNpbmNsdWRlICJKU09mZmxpbmVBdWRpb0NvbnRleHQu
aCIKKyNpbmNsdWRlICJPZmZsaW5lQXVkaW9Db250ZXh0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9F
cnJvci5oPgogI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogCkBAIC03Nyw4ICs3OSwxMiBA
QCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIEpTQXVkaW9Db250ZXh0Q29uc3RydWN0b3I6
OmNvbnN0cnVjdEpTQXVkaW9Db250ZXh0KAogICAgICAgICBpZiAoIWF1ZGlvQ29udGV4dC5nZXQo
KSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlU3ludGF4RXJy
b3IoZXhlYywgImF1ZGlvIHJlc291cmNlcyB1bmF2YWlsYWJsZSBmb3IgQXVkaW9Db250ZXh0IGNv
bnN0cnVjdGlvbiIpKTsKICAgICB9IGVsc2UgeworI2lmIEVOQUJMRShMRUdBQ1lfV0VCX0FVRElP
KQogICAgICAgICAvLyBDb25zdHJ1Y3RvciBmb3Igb2ZmbGluZSAocmVuZGVyLXRhcmdldCkgQXVk
aW9Db250ZXh0IHdoaWNoIHJlbmRlcnMgaW50byBhbiBBdWRpb0J1ZmZlci4KICAgICAgICAgLy8g
bmV3IEF1ZGlvQ29udGV4dChpbiB1bnNpZ25lZCBsb25nIG51bWJlck9mQ2hhbm5lbHMsIGluIHVu
c2lnbmVkIGxvbmcgbnVtYmVyT2ZGcmFtZXMsIGluIGZsb2F0IHNhbXBsZVJhdGUpOworICAgICAg
ICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdl
VHlwZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwKKyAgICAgICAgICAgICJEZXByZWNhdGVkIEF1ZGlv
Q29udGV4dCBjb25zdHJ1Y3RvcjogdXNlIE9mZmxpbmVBdWRpb0NvbnRleHQgaW5zdGVhZCIpOwor
CiAgICAgICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPCAzKQogICAgICAgICAgICAgcmV0
dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihleGVj
KSk7CiAKQEAgLTk1LDEyICsxMDEsMTYgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBK
U0F1ZGlvQ29udGV4dENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0F1ZGlvQ29udGV4dCgKICAgICAg
ICAgaWYgKHNhbXBsZVJhdGUgPD0gMCkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Io
ZXhlYywgY3JlYXRlU3ludGF4RXJyb3IoZXhlYywgIkludmFsaWQgc2FtcGxlIHJhdGUiKSk7CiAK
KwogICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAgICAgYXVkaW9Db250ZXh0ID0g
QXVkaW9Db250ZXh0OjpjcmVhdGVPZmZsaW5lQ29udGV4dChkb2N1bWVudCwgbnVtYmVyT2ZDaGFu
bmVscywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUsIGVjKTsKKyAgICAgICAgYXVkaW9Db250
ZXh0ID0gT2ZmbGluZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBudW1iZXJPZkNoYW5u
ZWxzLCBudW1iZXJPZkZyYW1lcywgc2FtcGxlUmF0ZSwgZWMpOwogICAgICAgICBpZiAoZWMpIHsK
ICAgICAgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7CiAgICAgICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJFcnJvciBjcmVh
dGluZyBPZmZsaW5lQXVkaW9Db250ZXh0IikpOwogICAgICAgICB9CisjZWxzZQorICAgICAgICBy
ZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJJbGxlZ2Fs
IEF1ZGlvQ29udGV4dCBjb25zdHJ1Y3RvciIpKTsKKyNlbmRpZgogICAgIH0KIAogICAgIGlmICgh
YXVkaW9Db250ZXh0LmdldCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHAKaW5kZXggODBhMzJiYWRiMTU5
NDc3ZGNmZDQyZjYwN2IxNzg0MDg5ZGViODhlNC4uZTY1ODAzNjU1ZGM0MTdjZWVkMjQzZTEzNWQ2
ZWNiMjUyZDViMjg5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhBdWRpb0NvbnRleHRDdXN0b20uY3BwCkBAIC0zMiw5ICszMiwxMSBAQAog
I2luY2x1ZGUgIkF1ZGlvQ29udGV4dC5oIgogI2luY2x1ZGUgIkJpbmRpbmdTdGF0ZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiT2ZmbGluZUF1ZGlvQ29udGV4dC5oIgogI2luY2x1
ZGUgIlY4QXJyYXlCdWZmZXIuaCIKICNpbmNsdWRlICJWOEF1ZGlvQnVmZmVyLmgiCiAjaW5jbHVk
ZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhPZmZsaW5lQXVkaW9Db250ZXh0LmgiCiAjaW5j
bHVkZSA8d3RmL0FycmF5QnVmZmVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU0LDI5
ICs1NiwxNiBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhBdWRpb0NvbnRleHQ6OmNvbnN0cnVj
dG9yQ2FsbGJhY2tDdXN0b20oY29uc3Qgdjg6OkFyZ3VtZQogICAgICAgICBpZiAoIWF1ZGlvQ29u
dGV4dC5nZXQoKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHY4U3ludGF4RXJyb3Is
ICJhdWRpbyByZXNvdXJjZXMgdW5hdmFpbGFibGUgZm9yIEF1ZGlvQ29udGV4dCBjb25zdHJ1Y3Rp
b24iLCBhcmdzLkdldElzb2xhdGUoKSk7CiAgICAgfSBlbHNlIHsKKyNpZiBFTkFCTEUoTEVHQUNZ
X1dFQl9BVURJTykKICAgICAgICAgLy8gQ29uc3RydWN0b3IgZm9yIG9mZmxpbmUgKHJlbmRlci10
YXJnZXQpIEF1ZGlvQ29udGV4dCB3aGljaCByZW5kZXJzIGludG8gYW4gQXVkaW9CdWZmZXIuCiAg
ICAgICAgIC8vIG5ldyBBdWRpb0NvbnRleHQoaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkNoYW5u
ZWxzLCBpbiB1bnNpZ25lZCBsb25nIG51bWJlck9mRnJhbWVzLCBpbiBmbG9hdCBzYW1wbGVSYXRl
KTsKLSAgICAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAzKQotICAgICAgICAgICAgcmV0dXJuIHRo
cm93Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoYXJncy5HZXRJc29sYXRlKCkpOworICAgICAgICBk
b2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlw
ZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwKKyAgICAgICAgICAgICJEZXByZWNhdGVkIEF1ZGlvQ29u
dGV4dCBjb25zdHJ1Y3RvcjogdXNlIE9mZmxpbmVBdWRpb0NvbnRleHQgaW5zdGVhZCIpOwogCi0g
ICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKLQotICAgICAgICBpbnQzMl90IG51bWJlck9mQ2hhbm5l
bHMgPSB0b0ludDMyKGFyZ3NbMF0sIG9rKTsKLSAgICAgICAgaWYgKCFvayB8fCBudW1iZXJPZkNo
YW5uZWxzIDw9IDAgfHwgbnVtYmVyT2ZDaGFubmVscyA+IDEwKQotICAgICAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IodjhTeW50YXhFcnJvciwgIkludmFsaWQgbnVtYmVyIG9mIGNoYW5uZWxzIiwg
YXJncy5HZXRJc29sYXRlKCkpOwotCi0gICAgICAgIGludDMyX3QgbnVtYmVyT2ZGcmFtZXMgPSB0
b0ludDMyKGFyZ3NbMV0sIG9rKTsKLSAgICAgICAgaWYgKCFvayB8fCBudW1iZXJPZkZyYW1lcyA8
PSAwKQotICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IodjhTeW50YXhFcnJvciwgIkludmFs
aWQgbnVtYmVyIG9mIGZyYW1lcyIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLQotICAgICAgICBmbG9h
dCBzYW1wbGVSYXRlID0gdG9GbG9hdChhcmdzWzJdKTsKLSAgICAgICAgaWYgKHNhbXBsZVJhdGUg
PD0gMCkKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHY4U3ludGF4RXJyb3IsICJJbnZh
bGlkIHNhbXBsZSByYXRlIiwgYXJncy5HZXRJc29sYXRlKCkpOwotCi0gICAgICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgICAgICBhdWRpb0NvbnRleHQgPSBBdWRpb0NvbnRleHQ6OmNyZWF0
ZU9mZmxpbmVDb250ZXh0KGRvY3VtZW50LCBudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1l
cywgc2FtcGxlUmF0ZSwgZWMpOwotICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4g
c2V0RE9NRXhjZXB0aW9uKGVjLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgICAgIHJldHVybiBW
OE9mZmxpbmVBdWRpb0NvbnRleHQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2soYXJncyk7CisjZWxzZQor
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih2OFN5bnRheEVycm9yLCAiSWxsZWdhbCBBdWRpb0Nv
bnRleHQgY29uc3RydWN0b3IiLCBhcmdzLkdldElzb2xhdGUoKSk7CisjZW5kaWYKICAgICB9CiAK
ICAgICBpZiAoIWF1ZGlvQ29udGV4dC5nZXQoKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMjg4NDZkZTJiYmJhYmY3ODlm
YjE2ZGNjOWQxMzJjMDJkZmNlOWY1Li4xZWU2NDQ0NmMzMDk0YzEzZmE5MTNjZTEwYThhMTYyMjNj
M2NkMTk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjggQEAKKzIwMTItMTItMTAgIENocmlzIFJvZ2VycyAg
PGNyb2dlcnNAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgT2ZmbGluZUF1ZGlvQ29u
dGV4dCBjb25zdHJ1Y3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA0MTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3dpdGNoIFdlYiBBdWRpbyBsYXlvdXQgdGVzdHMgdG8gdXNlIE9mZmxpbmVBdWRp
b0NvbnRleHQgY29uc3RydWN0b3IuCisKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNv
dXJjZS1sb29wLWNvbXByZWhlbnNpdmUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1
ZmZlcnNvdXJjZS1sb29wLXBvaW50cy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVm
ZmVyc291cmNlLW11bHRpLWNoYW5uZWxzLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9i
dWZmZXJzb3VyY2UtcGxheWJhY2tTdGF0ZS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlv
YnVmZmVyc291cmNlLXBsYXliYWNrcmF0ZS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlv
YnVmZmVyc291cmNlLXN0YXJ0Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXJz
b3VyY2UuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJnZXItc3RlcmVv
Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jaGFubmVsc3BsaXR0ZXIuaHRtbDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9hdWRpb25vZGUtY29ubmVjdC1vcmRlci5odG1sOgorICAgICAgICAq
IHdlYmF1ZGlvL2F1ZGlvbm9kZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViYXVkaW8vYXVk
aW9wYXJhbS1jb25uZWN0LWF1ZGlvcmF0ZXNpZ25hbC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlv
L2F1ZGlvcGFyYW0tc3VtbWluZ2p1bmN0aW9uLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXV0
b21hdGljLXB1bGwtbm9kZS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2JpcXVhZC1hbGxwYXNz
Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlxdWFkLWJhbmRwYXNzLmh0bWw6CisgICAgICAg
ICogd2ViYXVkaW8vYmlxdWFkLWhpZ2hwYXNzLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlx
dWFkLWhpZ2hzaGVsZi5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2JpcXVhZC1sb3dwYXNzLmh0
bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlxdWFkLWxvd3NoZWxmLmh0bWw6CisgICAgICAgICog
d2ViYXVkaW8vYmlxdWFkLW5vdGNoLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYmlxdWFkLXBl
YWtpbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9jb252b2x1dGlvbi1tb25vLW1vbm8uaHRt
bDoKKyAgICAgICAgKiB3ZWJhdWRpby9kZWxheW5vZGUtbWF4LWRlZmF1bHQtZGVsYXkuaHRtbDoK
KyAgICAgICAgKiB3ZWJhdWRpby9kZWxheW5vZGUtbWF4LW5vbmRlZmF1bHQtZGVsYXkuaHRtbDoK
KyAgICAgICAgKiB3ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXkuaHRtbDoKKyAgICAgICAgKiB3
ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXlsaW1pdC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlv
L2RlbGF5bm9kZS1zY2hlZHVsaW5nLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZGVsYXlub2Rl
Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZGlzdGFuY2UtZXhwb25lbnRpYWwuaHRtbDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9kaXN0YW5jZS1pbnZlcnNlLmh0bWw6CisgICAgICAgICogd2ViYXVk
aW8vZGlzdGFuY2UtbGluZWFyLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vZ2Fpbi5odG1sOgor
ICAgICAgICAqIHdlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUtemVyby1pbnB1dC1jaGFubmVs
cy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUuaHRtbDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRtbDoKKyAg
ICAgICAgKiB3ZWJhdWRpby9taXhpbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9ub3RlLWdy
YWluLW9uLXBsYXkuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9ub3RlLWdyYWluLW9uLXRpbWlu
Zy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL29zY2lsbGF0b3ItYmFzaWMuaHRtbDoKKyAgICAg
ICAgKiB3ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci1zdGVyZW8uaHRtbDoKKyAgICAgICAgKiB3
ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3JlYWx0
aW1lYW5hbHlzZXItZmZ0LXNpemluZy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3Jlc291cmNl
cy9hdWRpby1jb2RlYy10ZXN0LmpzOgorICAgICAgICAocnVuRGVjb2RpbmdUZXN0KToKKyAgICAg
ICAgKiB3ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLmpzOgorICAgICAgICAo
Y3JlYXRlQXVkaW9HcmFwaEFuZFRlc3QpOgorICAgICAgICAqIHdlYmF1ZGlvL3Jlc291cmNlcy9q
YXZhc2NyaXB0YXVkaW9ub2RlLXRlc3RpbmcuanM6CisgICAgICAgIChydW5KU05vZGVUZXN0KToK
KyAgICAgICAgKiB3ZWJhdWRpby9zYW1wbGUtYWNjdXJhdGUtc2NoZWR1bGluZy5odG1sOgorICAg
ICAgICAqIHdlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWw6CisgICAgICAgICog
d2ViYXVkaW8vdXAtbWl4aW5nLW1vbm8tNTEuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby91cC1t
aXhpbmctbW9uby1zdGVyZW8uaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby91cC1taXhpbmctc3Rl
cmVvLTUxLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vd2F2ZXNoYXBlci5odG1sOgorCiAyMDEy
LTEyLTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IFdoZW4gY29udmVydGluZyBhIGxheWVyIGludG8gYSB0aWxlZCBsYXllciwgZW5zdXJlIHRoYXQg
d2UgdXBkYXRlIHRoZSB2aXNpYmxlIHJlY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWxvb3AtY29tcHJlaGVuc2l2ZS5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbG9vcC1jb21wcmVoZW5zaXZlLmh0bWwKaW5k
ZXggMjUyMDY5ZmFhZjkwYzZiNDM4NzZjNzViMjMzZTY2Njk5NWQ5MDM0Mi4uYWVkZTQ3OGZlZjgz
ZWM0OWU0Y2MzZmI0MzA4OWIzOGY2N2YzNTMwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbG9vcC1jb21wcmVoZW5zaXZlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbG9vcC1jb21wcmVoZW5zaXZlLmh0
bWwKQEAgLTk3LDcgKzk3LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0
LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCB0b3RhbFJlbmRl
ckxlbmd0aEZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0
T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCB0b3RhbFJlbmRlckxlbmd0aEZyYW1lcywgc2FtcGxlUmF0
ZSk7CiAgICAgYnVmZmVyID0gY3JlYXRlVGVzdEJ1ZmZlcihjb250ZXh0LCBidWZmZXJGcmFtZUxl
bmd0aCk7CiAKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgKytpKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbG9vcC1wb2lu
dHMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWxvb3AtcG9p
bnRzLmh0bWwKaW5kZXggMDBmZmE4N2VjN2RiYTk1MjFjNTdjNTMxODc3MmI5NjI0YmRkY2NhOS4u
NTYwMWQwMjU1YWZkOGE1YzM2NDk5YTgyMTM0N2M5ZWNiMWI0NmQ3ZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbG9vcC1wb2ludHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1sb29wLXBvaW50cy5odG1s
CkBAIC04Miw3ICs4Miw3IEBAIGZ1bmN0aW9uIGluaXQoKSB7CiAgICAgICAgIHJldHVybjsKIAog
ICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3
ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxl
UmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNh
bXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgLy8gQ3JlYXRl
IHRoZSB0ZXN0IGJ1ZmZlci4KICAgICAvLyBXZSdsbCBsb29wIHRoaXMgd2l0aCB0aGUgbG9vcC1w
b2ludHMgc2V0IGZvciB0aGUgMm5kIGhhbGYgb2YgdGhpcyBidWZmZXIuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1tdWx0aS1jaGFubmVscy5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtbXVsdGktY2hhbm5lbHMu
aHRtbAppbmRleCBhZTgyOGYzNzM4NDhlZmIyNzcxMWRmMzBmYzFkNmE0MmIyZmI4MWMxLi43Yjg1
M2Y3ZTM1YjQ2MWMxOGY4MzVhMDBhNWExMzE5MGZmNzA4MWE3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1tdWx0aS1jaGFubmVscy5odG1sCisrKyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLW11bHRpLWNoYW5uZWxzLmh0
bWwKQEAgLTIzLDcgKzIzLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIAogICAgIC8vIENyZWF0
ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQKICAgICB2YXIgc2FtcGxlUmF0ZSA9IDQ0MTAwLjA7Ci0g
ICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDYsIHNhbXBsZVJhdGUgKiB0
b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Vi
a2l0T2ZmbGluZUF1ZGlvQ29udGV4dCg2LCBzYW1wbGVSYXRlICogdG9uZUxlbmd0aFNlY29uZHMs
IHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250
ZXh0LCA0NDAsIHRvbmVMZW5ndGhTZWNvbmRzLCA2KTsgCiAKICAgICB2YXIgc291cmNlID0gY29u
dGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrU3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrU3RhdGUuaHRtbAppbmRleCBjMzJmOTk2
ZjQ3OTc1NzU5OWQ5Yzk4N2FhNDAwYjgyNGQ4NzA5MjcyLi5kMmMzZTE0MTIyNGMzMjdlMzFjNzRl
Yjg2YWE1YzljN2NmMTM2Y2FiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b2J1ZmZlcnNvdXJjZS1wbGF5YmFja1N0YXRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tTdGF0ZS5odG1sCkBAIC0xMDUsNyArMTA1LDcg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwog
CiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dCwgcmVuZGVyaW5nIGZvciByZW5k
ZXJUaW1lIHNlY29uZHMuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwg
dGltZVRvU2FtcGxlRnJhbWUocmVuZGVyVGltZSwgc2FtcGxlUmF0ZSksIHNhbXBsZVJhdGUpOwor
ICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCB0aW1lVG9TYW1w
bGVGcmFtZShyZW5kZXJUaW1lLCBzYW1wbGVSYXRlKSwgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBU
aGlzIGlzIG9ubHkgdXNlZCBzbyB3ZSBjYW4gYWNjZXNzIHRoZSBwbGF5YmFjayBzdGF0ZSBjb25z
dGFudHMuCiAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNl
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1w
bGF5YmFja3JhdGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNl
LXBsYXliYWNrcmF0ZS5odG1sCmluZGV4IDBkNGUzZDZiZGYwMGU0YWU5YmQyZTQ2ZDIwNzQyNzVh
OGRlNDMwYWUuLjJjYWEwZmIzZmY2MzQ3ODgzZWRmODMyYTJhYjMxODgxYzExZWQzNWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNrcmF0
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXli
YWNrcmF0ZS5odG1sCkBAIC03MSw3ICs3MSw3IEBAIGZ1bmN0aW9uIGluaXQoKSB7CiAgICAgICAg
IHJldHVybjsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29u
dGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vj
b25kcywgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9D
b250ZXh0KDIsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAg
ICAgLy8gQ3JlYXRlIGEgc2luZ2xlIGN5Y2xlIG9mIGEgc2luZSB3YXZlLgogICAgIC8vIFdlJ2xs
IGxvb3AgdGhpcyB0byBwbGF5IG5vdGVzIG9mIGEgZ2l2ZW4gZHVyYXRpb24sIGF0IGEgZ2l2ZW4g
cGxheWJhY2sgcmF0ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVm
ZmVyc291cmNlLXN0YXJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNv
dXJjZS1zdGFydC5odG1sCmluZGV4IGI2OTdiN2UzOTk1NzMzOTgzMTdjY2E3ZWNiZDBiYzI4MDRl
N2NmOTYuLjg1NWQwMTllYTVjODM1NmI3YTQzNTgwM2Y0NzA5YmNhY2U3NTMzZDMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXN0YXJ0Lmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Utc3RhcnQuaHRtbApAQCAt
ODAsNyArODAsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAg
dmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIHRvdGFsUmVuZGVyTGVuZ3Ro
RnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5l
QXVkaW9Db250ZXh0KDEsIHRvdGFsUmVuZGVyTGVuZ3RoRnJhbWVzLCBzYW1wbGVSYXRlKTsKICAg
ICBidWZmZXIgPSBjcmVhdGVUZXN0QnVmZmVyKGNvbnRleHQsIGJ1ZmZlckZyYW1lTGVuZ3RoKTsK
IAogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdHMubGVuZ3RoOyArK2kpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS5odG1sIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UuaHRtbAppbmRleCBjMDBkN2IyZTgxODk3Y2Ix
MmYzMDczYWQxOWQ0YjU5ODgyNjc2ODRkLi5kYmUxMDU0OGZiNGI4ZjRjMGM4MTBlZTE4ZjY0Njc2
MzIwOGZiNjdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNv
dXJjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLmh0
bWwKQEAgLTI0LDcgKzI0LDcgQEAgZnVuY3Rpb24gaW5pdCgpIHsKICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRl
eHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29u
ZHMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29u
dGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICAK
ICAgICBidWZmZXJMb2FkZXIgPSBuZXcgQnVmZmVyTG9hZGVyKAogICAgICAgICBjb250ZXh0LApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVyZ2VyLXN0ZXJl
by5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVyZ2VyLXN0ZXJlby5o
dG1sCmluZGV4IGM0NjZjNjgwNjQ1ZWYwZWExMzg1ZDNmMWY4OGVjNjU4ZTNmZmRjMzQuLjQxMmY1
ODcwMTBjZDQyNzhhYmFlOTY0Y2NjY2ExYWJjMWU5Y2Q5OWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvY2hhbm5lbG1lcmdlci1zdGVyZW8uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJnZXItc3RlcmVvLmh0bWwKQEAgLTc4LDcgKzc4
LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBzdGVyZW8gb2ZmbGluZSBhdWRpbyBjb250ZXh0
LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIGxlbmd0aEluU2FtcGxl
RnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRp
b0NvbnRleHQoMiwgbGVuZ3RoSW5TYW1wbGVGcmFtZXMsIHNhbXBsZVJhdGUpOwogCiAgICAgLy8g
Q3JlYXRlIHR3byBtb25vIGJ1ZmZlcnMsIG9uZSBoYXZpbmcgYWxsIC0xIHZhbHVlcywgdGhlIG90
aGVyIGFsbCArMS4KICAgICBidWZmZXIxID0gY3JlYXRlQnVmZmVyV2l0aERDT2Zmc2V0KGxlbmd0
aEluU2FtcGxlRnJhbWVzLCBzYW1wbGVSYXRlLCAtMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxzcGxpdHRlci5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vYXVkaW9jaGFubmVsc3BsaXR0ZXIuaHRtbAppbmRleCBhYjYyYzBiZWIwZmNmZTc4MWYwNWMz
MDZhOTE2ZGEwMzU1ZGY0MzUwLi5jN2E1MTQzZWEzZDg2MTg0MjFkM2ExMDM4NTI3NTQ1NWVkM2Vk
YjY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxzcGxpdHRl
ci5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY2hhbm5lbHNwbGl0dGVyLmh0
bWwKQEAgLTgxLDcgKzgxLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAvLyBDcmVhdGUgc3RlcmVvIG9mZmxpbmUgYXVkaW8g
Y29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBsZW5ndGhJ
blNhbXBsZUZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZs
aW5lQXVkaW9Db250ZXh0KDIsIGxlbmd0aEluU2FtcGxlRnJhbWVzLCBzYW1wbGVSYXRlKTsKIAog
ICAgIHRyeSB7CiAgICAgICAgIHZhciBzcGxpdHRlcm5vZGUgPSBjb250ZXh0LmNyZWF0ZUNoYW5u
ZWxTcGxpdHRlcigwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvbm9k
ZS1jb25uZWN0LW9yZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb25vZGUtY29u
bmVjdC1vcmRlci5odG1sCmluZGV4IGFiNGM0MDJjMzUwOTExN2M3ZjBlNjMxZjM3MDdjMThlZWQx
MGY0MDAuLjNkZmIyZjAyZjkyZjhmYzdlYTNlNTFhZjU0MGI4NDRhZmQyNTYzYjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvbm9kZS1jb25uZWN0LW9yZGVyLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3JkZXIuaHRtbApAQCAt
NDAsNyArNDAsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4
dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0
ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0g
bmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0
aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlU2luV2F2
ZUJ1ZmZlcihjb250ZXh0LCByZW5kZXJMZW5ndGhTZWNvbmRzLCA4ODApOwogICAgIAogICAgIHZh
ciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9ub2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2F1ZGlvbm9kZS1leHBlY3RlZC50eHQKaW5kZXggMDU0MGZlNzQ5OWYwOTgy
OWEzOWU5NjI4ZWYxZGI4YmUwMGZiOThkZS4uODM1OGM3M2FiNmZjMDZlMGRmMGU1MzdkY2ZkMzBl
YjMxZmYzNjY2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9ub2RlLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb25vZGUtZXhwZWN0ZWQu
dHh0CkBAIC0xLDMgKzEsNCBAQAorQ09OU09MRSBNRVNTQUdFOiBEZXByZWNhdGVkIEF1ZGlvQ29u
dGV4dCBjb25zdHJ1Y3RvcjogdXNlIE9mZmxpbmVBdWRpb0NvbnRleHQgaW5zdGVhZAogQmFzaWMg
dGVzdHMgZm9yIEF1ZGlvTm9kZSBBUEkuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY29ubmVjdC1hdWRpb3Jh
dGVzaWduYWwuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY29ubmVjdC1h
dWRpb3JhdGVzaWduYWwuaHRtbAppbmRleCAxNzNhYzZmZDk5MWIyZTE2ZmVkZDYyZmY2YTZiM2E0
MmE4YjM5NzRkLi4xYzFiM2QzMDUyYjAxZjg5OWQ4NmFhZjhlNzc0NmY1NjMxMmFiZTFhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLWNvbm5lY3QtYXVkaW9yYXRl
c2lnbmFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1jb25uZWN0
LWF1ZGlvcmF0ZXNpZ25hbC5odG1sCkBAIC02OSw3ICs2OSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CiAgICAgdmFyIHNhbXBsZUZyYW1lTGVuZ3RoID0gc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vj
b25kczsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4
dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgc2FtcGxlRnJhbWVMZW5ndGgsIHNhbXBsZVJh
dGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1w
bGVGcmFtZUxlbmd0aCwgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBDcmVhdGUgYnVmZmVyIHVzZWQg
YnkgdGhlIHNvdXJjZSB3aGljaCB3aWxsIGhhdmUgaXRzIGdhaW4gY29udHJvbGxlZC4KICAgICBj
b25zdGFudE9uZUJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIHNhbXBsZUZy
YW1lTGVuZ3RoLCAxKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFy
YW0tc3VtbWluZ2p1bmN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFt
LXN1bW1pbmdqdW5jdGlvbi5odG1sCmluZGV4IDljMjY3ZWZhMDE1OGU0M2Q4NWQ4NWZjMGQ0ZjUx
ZTc0ZjNjNWY2NjQuLmE4MmIyNzUyYTZkMWE0YmNmMWM5MjhiNmZlZDI1NTMwZTY4YmZmOTMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvcGFyYW0tc3VtbWluZ2p1bmN0aW9u
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1zdW1taW5nanVuY3Rp
b24uaHRtbApAQCAtODIsNyArODIsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHZhciBz
YW1wbGVGcmFtZUxlbmd0aCA9IHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHM7CiAKICAgICAv
LyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0
QXVkaW9Db250ZXh0KDEsIHNhbXBsZUZyYW1lTGVuZ3RoLCBzYW1wbGVSYXRlKTsKKyAgICBjb250
ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlRnJhbWVMZW5ndGgs
IHNhbXBsZVJhdGUpOwogCiAgICAgLy8gQ3JlYXRlIGJ1ZmZlciB1c2VkIGJ5IHRoZSBzb3VyY2Ug
d2hpY2ggd2lsbCBoYXZlIGl0cyBnYWluIGNvbnRyb2xsZWQuCiAgICAgdmFyIGNvbnN0YW50T25l
QnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4dCwgc2FtcGxlRnJhbWVMZW5ndGgs
IDEpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXV0b21hdGljLXB1bGwtbm9k
ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXV0b21hdGljLXB1bGwtbm9kZS5odG1sCmlu
ZGV4IGUyNzM3NDU3MGM3ZDQ5YWFjMjkyZTc1MzI1MDAwMDMxN2I1NmJjYjQuLjQ0MGM3MDZmMDY4
MzYyNjMwMGQ4MzBkMjFiZWRjOWQ1ZTc4YzJiZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2F1dG9tYXRpYy1wdWxsLW5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdXRvbWF0aWMtcHVsbC1ub2RlLmh0bWwKQEAgLTMwLDcgKzMwLDcgQEAgdmFyIGFuYWx5c2Vy
OwogCiBmdW5jdGlvbiBjb25zdHJ1Y3RDb21tb25HcmFwaCgpIHsKICAgICAvLyBDcmVhdGUgb2Zm
bGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0
KDEsIHJlbmRlckxlbmd0aEluRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3
IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgcmVuZGVyTGVuZ3RoSW5GcmFtZXMsIHNhbXBs
ZVJhdGUpOwogICAgIGNvbnN0YW50QnVmZmVyID0gY3JlYXRlQ29uc3RhbnRCdWZmZXIoY29udGV4
dCwgcmVuZGVyTGVuZ3RoSW5GcmFtZXMsIDEpOwogCiAgICAgYnVmZmVyU291cmNlID0gY29udGV4
dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2JpcXVhZC1hbGxwYXNzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtYWxscGFz
cy5odG1sCmluZGV4IGVjZmNjOTVkZDJkNGU2OWMxNWNiZTFkZWI5ZTgxZDIyNmQ2NTFlMjAuLjQy
MzQ0NmU5MmRjYmYzMzc4ZjYzNGJlYjMyZDQ2MzFkZDYzZGQyOWIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1hbGxwYXNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vYmlxdWFkLWFsbHBhc3MuaHRtbApAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAg
Ly8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3
ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNh
bXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRl
eHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAg
ICAgLy8gRHVtbXkgZmlsdGVyIHRvIGdldCBmaWx0ZXIgdHlwZSBjb25zdGFudAogICAgIHZhciBm
ID0gY29udGV4dC5jcmVhdGVCaXF1YWRGaWx0ZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2JpcXVhZC1iYW5kcGFzcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlx
dWFkLWJhbmRwYXNzLmh0bWwKaW5kZXggMzRlMjU2N2IyNjRlMTdjY2RlZjE4NmZjZjkwMGFmZTE5
N2NlZGNmYi4uMzJjMmNlNzIxNDk3NjBhM2M4MjQ1NDI4MDQ5MjEyYTRhZDZmZTI2MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWJhbmRwYXNzLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWJhbmRwYXNzLmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAg
ICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNv
bnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5n
dGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZs
aW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1w
bGVSYXRlKTsKIAogICAgIC8vIER1bW15IGZpbHRlciB0byBnZXQgZmlsdGVyIHR5cGUgY29uc3Rh
bnQKICAgICB2YXIgZiA9IGNvbnRleHQuY3JlYXRlQmlxdWFkRmlsdGVyKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtaGlnaHBhc3MuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2JpcXVhZC1oaWdocGFzcy5odG1sCmluZGV4IDU2NzMwYzVkZjg3ZGY5Y2EwZGYz
OGFiNjhjNWFhYjYyYmEyMjI2MDQuLmViNjMwYzhkOTYxNjYxNGFmOTQyNjkxY2E1YmZlNmJiZTFj
NzJlMDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1oaWdocGFzcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1oaWdocGFzcy5odG1sCkBAIC0y
NSw3ICsyNSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0
LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRl
ICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBu
ZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3Ro
U2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBEdW1teSBmaWx0ZXIgdG8gZ2V0IGZpbHRl
ciB0eXBlIGNvbnN0YW50CiAgICAgdmFyIGYgPSBjb250ZXh0LmNyZWF0ZUJpcXVhZEZpbHRlcigp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWhpZ2hzaGVsZi5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWhpZ2hzaGVsZi5odG1sCmluZGV4IGNlMjlh
NDM1M2NkZjg4ZTc3OGM2Y2I5YWFjMjM5ZTI1NmMxZmFiZjQuLjhmODNiNTA3ZTZiZWNkYWUyZmEw
N2YyZWYzNzNmN2Y1MDUwNDBkNzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Jp
cXVhZC1oaWdoc2hlbGYuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtaGln
aHNoZWxmLmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZs
aW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250
ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAg
ICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJh
dGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIER1bW15IGZp
bHRlciB0byBnZXQgZmlsdGVyIHR5cGUgY29uc3RhbnQKICAgICB2YXIgZiA9IGNvbnRleHQuY3Jl
YXRlQmlxdWFkRmlsdGVyKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1
YWQtbG93cGFzcy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWxvd3Bhc3MuaHRt
bAppbmRleCA4ZDVlNGE5ODE2YzA3NTA0ZDRjNDgwMjE3ZjIzZWZmMjI0ZjUxMDM0Li43ZWJkZjAx
MTdkZDIyNTlmZDc0ODM1NDNiNjZmMjk2MWNjNTFkNDk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9iaXF1YWQtbG93cGFzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2JpcXVhZC1sb3dwYXNzLmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgp
IHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENy
ZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0
QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVS
YXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIs
IHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgIC8v
IER1bW15IGZpbHRlciB0byBnZXQgZmlsdGVyIHR5cGUgY29uc3RhbnQKICAgICB2YXIgZiA9IGNv
bnRleHQuY3JlYXRlQmlxdWFkRmlsdGVyKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby9iaXF1YWQtbG93c2hlbGYuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1s
b3dzaGVsZi5odG1sCmluZGV4IGMwZGYxYmNiMGI1YzhmZDFlNjY1ZmNkNjdiOWRlYzYwMjBhYzhk
NzEuLjAzYjA3ZDVjYWFhYjYzNjFhNmZiYjI1MzE1NDRmMmExM2QyZTg2MjYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1sb3dzaGVsZi5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2JpcXVhZC1sb3dzaGVsZi5odG1sCkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAg
ICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0
ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vj
b25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1
ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0
ZSk7CiAKICAgICAvLyBEdW1teSBmaWx0ZXIgdG8gZ2V0IGZpbHRlciB0eXBlIGNvbnN0YW50CiAg
ICAgdmFyIGYgPSBjb250ZXh0LmNyZWF0ZUJpcXVhZEZpbHRlcigpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLW5vdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9iaXF1YWQtbm90Y2guaHRtbAppbmRleCA2YzRhNjcyMzYzNTExNTdiYzc5MjRkZWU3M2ZhY2Fm
NjlmODE2NWQ3Li41MmQyZWNhNDZjNjhjZjRlYTc0MjY5ZGU1OTczZjNlMWM1NjAyYTE1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtbm90Y2guaHRtbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtbm90Y2guaHRtbApAQCAtMjUsNyArMjUsNyBAQCBmdW5j
dGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAg
ICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4
dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNl
Y29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVB
dWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJh
dGUpOwogCiAgICAgLy8gRHVtbXkgZmlsdGVyIHRvIGdldCBmaWx0ZXIgdHlwZSBjb25zdGFudAog
ICAgIHZhciBmID0gY29udGV4dC5jcmVhdGVCaXF1YWRGaWx0ZXIoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1wZWFraW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9iaXF1YWQtcGVha2luZy5odG1sCmluZGV4IDg1MTlhNjQ4MTZlYmU4YjkwNDhhNWU1Y2U3
ZWY2MzhlM2ZmMzljYTMuLmZjNDYwZWIzYjA3NTc1NmUwMThjNzcyM2I3NDA4ZjdkOGJhM2U0YmIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1wZWFraW5nLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLXBlYWtpbmcuaHRtbApAQCAtMjUsNyArMjUs
NyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2
YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRl
ckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtp
dE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMs
IHNhbXBsZVJhdGUpOwogCiAgICAgLy8gRHVtbXkgZmlsdGVyIHRvIGdldCBmaWx0ZXIgdHlwZSBj
b25zdGFudAogICAgIHZhciBmID0gY29udGV4dC5jcmVhdGVCaXF1YWRGaWx0ZXIoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NvbnZvbHV0aW9uLW1vbm8tbW9uby5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vY29udm9sdXRpb24tbW9uby1tb25vLmh0bWwKaW5kZXggMGZi
NDJkN2ExYThmYWEwZTExMWQyNDI3YTc4NThkYjkxOTljNTBmZi4uYmY1N2YzODNkNTZhZDY4NWIw
Njg2MGVjMmI2MzEzNGMzODIxYWI0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
Y29udm9sdXRpb24tbW9uby1tb25vLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vY29u
dm9sdXRpb24tbW9uby1tb25vLmh0bWwKQEAgLTM1LDcgKzM1LDcgQEAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8v
IENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Vi
a2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1w
bGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0
KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAg
IHZhciBzcXVhcmVQdWxzZSA9IGNyZWF0ZVNxdWFyZVB1bHNlQnVmZmVyKGNvbnRleHQsIHB1bHNl
TGVuZ3RoRnJhbWVzKTsKICAgICB2YXIgdHJpYW5nbGVQdWxzZSA9IGNyZWF0ZVRyaWFuZ2xlUHVs
c2VCdWZmZXIoY29udGV4dCwgMiAqIHB1bHNlTGVuZ3RoRnJhbWVzKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXgtZGVmYXVsdC1kZWxheS5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heC1kZWZhdWx0LWRlbGF5Lmh0bWwKaW5kZXgg
NmJjYzI2MGFhYmI1MmYwZDZhZjY5Yzk3YWIwMTcwY2RlODk5ZDkyZC4uMGYwZjgxMjA3Nzk1YjU5
NDg2NzAxYjRjNTJhNjI3ODk0M2ZiMDY0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vZGVsYXlub2RlLW1heC1kZWZhdWx0LWRlbGF5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vZGVsYXlub2RlLW1heC1kZWZhdWx0LWRlbGF5Lmh0bWwKQEAgLTI0LDcgKzI0LDcgQEAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAg
ICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNv
bnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5n
dGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZs
aW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1w
bGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1ZmZlciA9IGNyZWF0ZVRvbmVCdWZmZXIoY29udGV4dCwg
MjAsIDIwICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOyAvLyAyMEh6IHRvbmUKICAg
ICAKICAgICB2YXIgYnVmZmVyU291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXgtbm9uZGVmYXVs
dC1kZWxheS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heC1ub25kZWZh
dWx0LWRlbGF5Lmh0bWwKaW5kZXggNDFhZDFlMmE1OTRiMTM1NDE5N2M3NGNjM2Q0Y2UzMGZhNzBl
YzYwYy4uZTI4MzM1MzgyNGQ1M2Y4YzlhMDRhMWU1YTkxNTdkNTFmZGE0YTQxNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heC1ub25kZWZhdWx0LWRlbGF5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heC1ub25kZWZhdWx0LWRl
bGF5Lmh0bWwKQEAgLTI0LDcgKzI0LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5k
b3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5l
IGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0
KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2
YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUg
KiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1ZmZlciA9
IGNyZWF0ZVRvbmVCdWZmZXIoY29udGV4dCwgMjAsIDIwICogdG9uZUxlbmd0aFNlY29uZHMsIHNh
bXBsZVJhdGUpOyAvLyAyMEh6IHRvbmUKICAgICAKICAgICB2YXIgYnVmZmVyU291cmNlID0gY29u
dGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2RlbGF5bm9kZS1tYXhkZWxheS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlu
b2RlLW1heGRlbGF5Lmh0bWwKaW5kZXggZTI3YzUzYzFhYzdlOTIwN2ZiM2MwMDhlOWZlNTNjYmI0
YTBmMGFlNy4uMDg5MmQ0ZWM4NjdhY2ViMWY5OGMzOGE4YmI1ZmU0MTdjYzMxODA0YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5Lmh0bWwKQEAgLTI0LDcgKzI0
LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRy
dWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAg
dmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5k
ZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJr
aXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRz
LCBzYW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1ZmZlciA9IGNyZWF0ZVRvbmVCdWZmZXIoY29u
dGV4dCwgMjAsIDIwICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOyAvLyAyMEh6IHRv
bmUKICAgICAKICAgICB2YXIgYnVmZmVyU291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3Vy
Y2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXhkZWxh
eWxpbWl0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXlsaW1p
dC5odG1sCmluZGV4IDUyZTVlYjI2OTM2MjJjOTZkODAwMDcxNmNiMDhhNGVmNGE2NjM4NTUuLmZi
MjA2YTYyOTcxZGI5NWJmMGRmNjQxZmM3MzU0ZjI4ZjFhYjI2MzIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXhkZWxheWxpbWl0Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5bGltaXQuaHRtbApAQCAtMjQsNyArMjQs
NyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2
YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRl
ckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtp
dE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMs
IHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250
ZXh0LCAyMCwgMjAgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7IC8vIDIwSHogdG9u
ZQogICAgIAogICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJj
ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLXNjaGVkdWxp
bmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1zY2hlZHVsaW5nLmh0bWwK
aW5kZXggMTRkZmJkMjZlOThkM2Q0ZjFhMzk3OGNjZTA1ZDEzNzAzNDVmNGVlMS4uZGZhZjdkOTA4
ZGJhNWI0ZDQzY2NmZDNlMWRiM2JlM2MwMzBmYjRjZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vZGVsYXlub2RlLXNjaGVkdWxpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9kZWxheW5vZGUtc2NoZWR1bGluZy5odG1sCkBAIC0yNCw3ICsyNCw3IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAK
ICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0g
bmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25k
cywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlv
Q29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7
CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVyKGNvbnRleHQsIDIwLCAyMCAq
IHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsgLy8gMjBIeiB0b25lCiAgICAgCiAgICAg
dmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2RlbGF5bm9kZS5odG1sCmluZGV4IDQwMzg1NThlOGZjNzQ0MjU5ZDEwMTJmYTEyYzkz
ODU0MmNjYjYyNjAuLjg3YzQ3ZTcyZDk2MGVmNGI3MWQyMjQ3M2YzOThiNmJhYzNhMmY5NzEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS5odG1sCkBAIC0yNCw3ICsyNCw3IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAK
ICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0g
bmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25k
cywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlv
Q29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7
CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVyKGNvbnRleHQsIDIwLCAyMCAq
IHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsgLy8gMjBIeiB0b25lCiAgICAgCiAgICAg
dmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1leHBvbmVudGlhbC5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtZXhwb25lbnRpYWwuaHRtbAppbmRleCBjMDU5ZDE1
N2I3Y2RiYTg2ZWRiNDRlODE0MWQ2NDNkNTI4NjVkMTFmLi5mYTBmOTkxMDU2ZTJjMmYwZTM4YzIw
NzVmZTQ3NTM5NWZiOTIzMDA1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0
YW5jZS1leHBvbmVudGlhbC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNl
LWV4cG9uZW50aWFsLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAKICAgICAgICAgICB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAgICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBj
b250ZXh0LgotICAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNh
bXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgICBj
b250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJl
bmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgICAgICAgLy8gVGVtcCBwYW5u
ZXIgbm9kZSBzbyB3ZSBjYW4gZ2V0IHRoZSBFWFBPTkVOVElBTF9ESVNUQU5DRSB2YWx1ZS4KICAg
ICAgICAgICB2YXIgdGVtcFBhbm5lciA9IGNvbnRleHQuY3JlYXRlUGFubmVyKCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1pbnZlcnNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1pbnZlcnNlLmh0bWwKaW5kZXggNmI0NDQ4ZDAwNWI2N2U5
NzhmZWY2MjQ2YThlMjM3MGM4NWE5MTIxMC4uYzU0ZTczOGVkNGY3ZmE5NmRmM2EwMDhmYjEyNGVj
MWExNjc4NzVhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtaW52
ZXJzZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWludmVyc2UuaHRt
bApAQCAtMjMsNyArMjMsNyBAQAogICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKIAogICAgICAgICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgICAg
ICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRl
ckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Vi
a2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25k
cywgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgICAvLyBUZW1wIHBhbm5lciBub2RlIHNvIHdlIGNh
biBnZXQgdGhlIElOVkVSU0VfRElTVEFOQ0UgdmFsdWUuCiAgICAgICAgICAgdmFyIHRlbXBQYW5u
ZXIgPSBjb250ZXh0LmNyZWF0ZVBhbm5lcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vZGlzdGFuY2UtbGluZWFyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5j
ZS1saW5lYXIuaHRtbAppbmRleCBmNDM1MjYyNTRhYjM5ZjNjZjVjYWU3YzU0YjNiMTExYjY1MjA1
YTMxLi5lODg5YTM5M2Q3MzUyMmI1ZDcwODU4YmRjNTA0OWU4NWQwNWM2ZmM5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1saW5lYXIuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1saW5lYXIuaHRtbApAQCAtMjMsNyArMjMsNyBAQAogICAg
ICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICAgIC8vIENyZWF0
ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRB
dWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJh
dGUpOworICAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgy
LCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAg
ICAgICAvLyBDcmVhdGUgdGVtcCBwYW5uZXIgdG8gZ2V0IExJTkVBUl9ESVNUQU5DRSB2YWx1ZSBm
b3IgdGVzdGluZy4KICAgICAgICAgICB2YXIgcGFubmVyTW9kZWwgPSBjb250ZXh0LmNyZWF0ZVBh
bm5lcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZ2Fpbi5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vZ2Fpbi5odG1sCmluZGV4IDFmZjFiYTY4YTdiZDFlOGMzNDE4ODY2
MmQwZjcxNDc2ZmZkMzYxYzAuLjM4NmIzZTA3YTUxZmY5MzRhNWM2NmUzZDRlNjAyNjJiODkzMDRi
NjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2dhaW4uaHRtbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9nYWluLmh0bWwKQEAgLTU5LDcgKzU5LDcgQEAgZnVuY3Rpb24gaW5p
dCgpIHsKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29u
dGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRl
ICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtp
dE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2Ft
cGxlUmF0ZSk7CiAKICAgICAvLyBDcmVhdGUgYSBidWZmZXIgZm9yIGEgc2hvcnQgIm5vdGUiLgog
ICAgIHNpbldhdmVCdWZmZXIgPSBjcmVhdGVTaW5XYXZlQnVmZmVyKGJ1ZmZlckR1cmF0aW9uU2Vj
b25kcywgODgwLjApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vamF2YXNjcmlw
dGF1ZGlvbm9kZS16ZXJvLWlucHV0LWNoYW5uZWxzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9qYXZhc2NyaXB0YXVkaW9ub2RlLXplcm8taW5wdXQtY2hhbm5lbHMuaHRtbAppbmRleCA2Mzhl
NWFkMGUzNzU1MjUwMjI3MzQ3MGJmODY0N2MxYzVkZGM5MmQzLi43YjQ3NGNiNDRhOTkxYmE4MGIz
ODk3NmUxNjBjNzY1ZWQ4NzcwMjMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9q
YXZhc2NyaXB0YXVkaW9ub2RlLXplcm8taW5wdXQtY2hhbm5lbHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2RlLXplcm8taW5wdXQtY2hhbm5lbHMuaHRt
bApAQCAtMzMsNyArMzMsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkKIAogICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKIAotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29u
dGV4dCgxLCByZW5kZXJMZW5ndGhJbkZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRl
eHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCByZW5kZXJMZW5ndGhJbkZyYW1l
cywgc2FtcGxlUmF0ZSk7CiAKICAgICB2YXIgbm9kZTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vamF2YXNjcmlwdGF1ZGlvbm9kZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vamF2YXNjcmlwdGF1ZGlvbm9kZS5odG1sCmluZGV4IDg4ZjAxZWIzMTRjN2UzMjdkMWFmMzM5
OTE0OTFmMGNlMmUwYWJkMTcuLmFiNTJlYmNiYmJlODRlYjRhZTEwNTRlMzcwYzFiODNmZjU2M2Mz
OGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2RlLmh0bWwK
QEAgLTg0LDcgKzg0LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CiAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0Lgot
ICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHJlbmRlckxlbmd0aEluRnJh
bWVzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0Nv
bnRleHQoMiwgcmVuZGVyTGVuZ3RoSW5GcmFtZXMsIHNhbXBsZVJhdGUpOwogCiAgICAgdHJ5IHsK
ICAgICAgICAgdmFyIGpzbm9kZSA9IGNvbnRleHQuY3JlYXRlU2NyaXB0UHJvY2Vzc29yKDUxMiwg
MCwgMCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRp
b3NvdXJjZW5vZGUtZ2MuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL21lZGlhZWxlbWVudGF1
ZGlvc291cmNlbm9kZS1nYy5odG1sCmluZGV4IDgzMGFiYjM4NGZiMjhlOWEzMWQ1YWUwY2VlZTBl
NmNmMWIyYmZlZjEuLmFjYTUzOWJmYjFlYTE4OGM4OGE0YjBmNTllNjRmN2FlNmI3MWJiM2UgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL21lZGlhZWxlbWVudGF1ZGlvc291cmNlbm9k
ZS1nYy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL21lZGlhZWxlbWVudGF1ZGlvc291
cmNlbm9kZS1nYy5odG1sCkBAIC0xOSw3ICsxOSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAg
ICAgfQogCiAgICAgYXVkaW9FbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYXVkaW8i
KTsKLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCAxMDAwLCA0NDEwMCk7
CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDEwMDAsIDQ0
MTAwKTsKICAgICBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZU1lZGlhRWxlbWVudFNvdXJjZShhdWRp
b0VsZW1lbnQpOwogICAgIGF1ZGlvRWxlbWVudCA9IG51bGw7CiAgICAgY29udGV4dCA9IG51bGw7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9taXhpbmcuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL21peGluZy5odG1sCmluZGV4IDNmNjgxNDlmNDI3ZDhjOGRjNzgwODAzOWNi
OTkwNDVlN2M1ZDNiMjkuLjEwYjc2M2U5NmMzZWVmMWY1ZmFmZDc3OGU5NDI0MDkzMGY0OTFhYjEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL21peGluZy5odG1sCisrKyBiL0xheW91
dFRlc3RzL3dlYmF1ZGlvL21peGluZy5odG1sCkBAIC0yOCw3ICsyOCw3IEBAIGZ1bmN0aW9uIGlu
aXQoKSB7CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUg
YXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBz
YW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0g
bmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vj
b25kcywgc2FtcGxlUmF0ZSk7CiAgICAgICAgIAogICAgIGJ1ZmZlckxvYWRlciA9IG5ldyBCdWZm
ZXJMb2FkZXIoCiAgICAgICAgIGNvbnRleHQsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby9ub3RlLWdyYWluLW9uLXBsYXkuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL25vdGUt
Z3JhaW4tb24tcGxheS5odG1sCmluZGV4IGI1ZDU5NjViZDc4MzBlZDRlMTNkNjQ2Zjk3YTVjZmRk
NzdiMDg2M2IuLjhiZGI5MTAwY2YxYjlhZmVjNDdjNzk2YWY1ZDI3OTA0MWVmYWY3MDIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL25vdGUtZ3JhaW4tb24tcGxheS5odG1sCisrKyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL25vdGUtZ3JhaW4tb24tcGxheS5odG1sCkBAIC0xMDcsNyAr
MTA3LDcgQEAKICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAg
ICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgICAgICAgIGNvbnRleHQg
PSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJUaW1lLCBzYW1w
bGVSYXRlKTsKKyAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRl
eHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlclRpbWUsIHNhbXBsZVJhdGUpOwogCiAgICAgICAgICAg
Ly8gQ3JlYXRlIGEgbGluZWFyIHJhbXAgZm9yIHRlc3Rpbmcgbm90ZUdyYWluT24uCiAgICAgICAg
ICAgbGluZWFyUmFtcEJ1ZmZlciA9IGNyZWF0ZVNpZ25hbEJ1ZmZlcihjb250ZXh0LApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbm90ZS1ncmFpbi1vbi10aW1pbmcuaHRtbCBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL25vdGUtZ3JhaW4tb24tdGltaW5nLmh0bWwKaW5kZXggMTM2YjRh
MjFlYzA5MWRiYmNkMTVmMzM2MGY1ZDQ5YjU0ZWIzMjNiZC4uNGU1Y2NiMTY2ZjZhOTAxMGNjYWE4
OTYyNDA0YWE3ODVlY2YzN2NjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbm90
ZS1ncmFpbi1vbi10aW1pbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9ub3RlLWdy
YWluLW9uLXRpbWluZy5odG1sCkBAIC00NCw3ICs0NCw3IEBACiAgICAgICAgICAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8g
Y29udGV4dC4KLSAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBz
YW1wbGVSYXRlICogcmVuZGVyVGltZSwgc2FtcGxlUmF0ZSk7CisgICAgICAgICAgY29udGV4dCA9
IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJUaW1l
LCBzYW1wbGVSYXRlKTsKIAogICAgICAgICAgIHNxdWFyZVB1bHNlQnVmZmVyID0gY3JlYXRlU2ln
bmFsQnVmZmVyKGNvbnRleHQsIGZ1bmN0aW9uIChrKSB7IHJldHVybiAxIH0pOyAgICAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vb3NjaWxsYXRvci1iYXNpYy5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vb3NjaWxsYXRvci1iYXNpYy5odG1sCmluZGV4IGQzOTg5ZWJmZDJl
NzU4OTQ1N2Q3NTJmOGE4NmM1MDE5MThiZTA5YzcuLjQ0ZWI4ZjYxNWY3YmE2ODE3YjBiN2I5OGRh
NTk5ZjkxOGJkOGJlZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0
b3ItYmFzaWMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9yLWJhc2lj
Lmh0bWwKQEAgLTM2LDcgKzM2LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRp
byBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBz
YW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNv
bnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVu
ZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIG9zYyA9IGNvbnRleHQuY3Jl
YXRlT3NjaWxsYXRvcigpOwogCiAgICAgLy8gU2V0IGVhY2ggcG9zc2libGUgb3NjaWxsYXRvciB0
eXBlIChleGNlcHQgQ1VTVE9NKSBhbmQgdmVyaWZ5IHRoYXQgdGhlIHR5cGUgaXMgY29ycmVjdC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBvd2VyLXN0ZXJl
by5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXItc3RlcmVvLmh0
bWwKaW5kZXggMzE2NmNkZGE4YmQ3MzhiYzQ0MjRjZjc1NTBkNWJmM2QzNTY0MWNmMS4uMTgwNTRm
ZGMyYmExYjMxZWVjMTliN2I0MzExZWNmMzk0MmIxOGExZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXItc3RlcmVvLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXItc3RlcmVvLmh0bWwKQEAgLTI5LDcgKzI5LDcg
QEAKICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAgICAgICAv
LyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgICAgICAgIGNvbnRleHQgPSBuZXcg
d2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBz
YW1wbGVSYXRlKTsKKyAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0Nv
bnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwog
CiAgICAgICAgICAgY3JlYXRlVGVzdEFuZFJ1bihjb250ZXh0LCBub2Rlc1RvQ3JlYXRlLCAyKTsK
ICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBv
d2VyLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci5odG1sCmlu
ZGV4IGVlYzBkZGQ5NjEwNDc2MTY0NTdlZWMxYmVhM2FiNzMwM2ViZjY0YmUuLjE4OTA0NmEwNDFj
MWVkN2ZiNGFlNDIwNTliZjFmNWI4ZDM3YWQ1OGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL3Bhbm5lci1lcXVhbHBvd2VyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
cGFubmVyLWVxdWFscG93ZXIuaHRtbApAQCAtMjksNyArMjksNyBAQAogICAgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAgICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1
ZGlvIGNvbnRleHQuCi0gICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQo
Miwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgICAg
ICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRl
ICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgICBjcmVhdGVU
ZXN0QW5kUnVuKGNvbnRleHQsIG5vZGVzVG9DcmVhdGUsIDEpOwogICAgICAgfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQtc2l6aW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmcuaHRtbApp
bmRleCA5MGM4OTM4YjRjNWNjMTVmMTI1YzUyNjliMmViYTVjZGVhYTUyZWQ0Li5jNWFlMmFhMDU5
NjhjMTQzM2E2OGIwMWVhZDczNWIwNmQ1YWJlMWUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9yZWFsdGltZWFuYWx5c2VyLWZmdC1zaXppbmcuaHRtbApAQCAtMTksNyArMTks
NyBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIH0KIAogdmFyIGRvVGVzdCA9IGZ1bmN0aW9u
KGZmdFNpemUsIGlsbGVnYWwpIHsKLSAgICB2YXIgYyA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQo
MSwgMTAwMCwgNDQxMDApOworICAgIHZhciBjID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRl
eHQoMSwgMTAwMCwgNDQxMDApOwogICAgIHZhciBhID0gYy5jcmVhdGVBbmFseXNlcigpOwogICAg
IHRyeSB7CiAgICAgICAgIGEuZmZ0U2l6ZSA9IGZmdFNpemU7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW8tY29kZWMtdGVzdC5qcyBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpby1jb2RlYy10ZXN0LmpzCmluZGV4IGUxMzA1YjYyYmE0
MmYwNWYxNGI5OGU5NDhjZjBlOWZiOWQ2OTVjNjMuLmU0MTQ4YWFlM2ZiMDI2MmNiOWY4YmU0ZTJk
ZDE2Njk5ZWNiODBlNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNl
cy9hdWRpby1jb2RlYy10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNl
cy9hdWRpby1jb2RlYy10ZXN0LmpzCkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIHJ1bkRlY29k
aW5nVGVzdCh1cmwsIG9wdGlvbmFsU2FtcGxlUmF0ZSkKICAgICB2YXIgc2FtcGxlUmF0ZSA9ICh0
eXBlb2Ygb3B0aW9uYWxTYW1wbGVSYXRlID09PSAidW5kZWZpbmVkIikgPyBkZWZhdWx0U2FtcGxl
UmF0ZSA6IG9wdGlvbmFsU2FtcGxlUmF0ZTsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlv
IGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgc2FtcGxl
UmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3
ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMs
IHNhbXBsZVJhdGUpOwogICAgIAogICAgIGJ1ZmZlckxvYWRlciA9IG5ldyBCdWZmZXJMb2FkZXIo
CiAgICAgICAgIGNvbnRleHQsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNv
dXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLmpzIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3Vy
Y2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5qcwppbmRleCBhNTlmNjdkODU0ZjJiMDJmZDEyZDRkYmM5
ZGNlMjM1ZjJjMTU3MTg5Li4zNGNkMGQwNzM1YTI3NGYzNGU5NGQ1NmRiMjc2OWZjNTc0YjE1NGE2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9wYXJhbS10
ZXN0aW5nLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFt
LXRlc3RpbmcuanMKQEAgLTQwNSw3ICs0MDUsNyBAQCBmdW5jdGlvbiBjcmVhdGVBdWRpb0dyYXBo
QW5kVGVzdChudW1iZXJPZlRlc3RzLCBpbml0aWFsVmFsdWUsIHNldFZhbHVlRnVuY3Rpb24sCiAg
ICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUg
YXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBy
ZW5kZXJMZW5ndGgobnVtYmVyT2ZUZXN0cyksIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBu
ZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCByZW5kZXJMZW5ndGgobnVtYmVyT2ZUZXN0
cyksIHNhbXBsZVJhdGUpOwogICAgIHZhciBjb25zdGFudEJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50
QnVmZmVyKGNvbnRleHQsIDEsIHJlbmRlckxlbmd0aChudW1iZXJPZlRlc3RzKSk7CiAKICAgICAv
LyBXZSB1c2UgYW4gQXVkaW9HYWluTm9kZSBoZXJlIHNpbXBseSBhcyBhIGNvbnZlbmllbnQgd2F5
IHRvIHRlc3QgdGhlIEF1ZGlvUGFyYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L3Jlc291cmNlcy9qYXZhc2NyaXB0YXVkaW9ub2RlLXRlc3RpbmcuanMgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9yZXNvdXJjZXMvamF2YXNjcmlwdGF1ZGlvbm9kZS10ZXN0aW5nLmpzCmluZGV4IDEx
OTc4NDg5OGFmZTBlY2I2MzJkMzBiYTg5Mjc1OWEwMDljM2I1NDguLjA0NTQyMTEwZTY3ZDg3Mzdm
ZGMwOTUxOTUwYTIzYjMyYTgxZjZlYjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L3Jlc291cmNlcy9qYXZhc2NyaXB0YXVkaW9ub2RlLXRlc3RpbmcuanMKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vcmVzb3VyY2VzL2phdmFzY3JpcHRhdWRpb25vZGUtdGVzdGluZy5qcwpAQCAt
NjUsNyArNjUsNyBAQCBmdW5jdGlvbiBjaGVja1N0ZXJlb09ubHlEYXRhKGJ1ZmZlciwgbnVtYmVy
T2ZDaGFubmVscywgbGVuZ3RoKSB7CiBmdW5jdGlvbiBydW5KU05vZGVUZXN0KCkKIHsKICAgICAv
LyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0
QXVkaW9Db250ZXh0KDIsIHJlbmRlckxlbmd0aEluRnJhbWVzLCBzYW1wbGVSYXRlKTsKKyAgICBj
b250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgcmVuZGVyTGVuZ3RoSW5G
cmFtZXMsIHNhbXBsZVJhdGUpOwogCiAgICAgdmFyIHNvdXJjZUJ1ZmZlciA9IGNyZWF0ZUJ1ZmZl
cihjb250ZXh0LCBzb3VyY2VDaGFubmVscywgcmVuZGVyTGVuZ3RoSW5GcmFtZXMpOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9zYW1wbGUtYWNjdXJhdGUtc2NoZWR1bGluZy5o
dG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxpbmcuaHRt
bAppbmRleCA2ZDY3ZDcwN2FkMWI1OTcxODQxZGVkYzJhNzk2YjliNjY3NmYxYmY2Li41MTBiMWZm
NzkwYmYzNjFmMDYzNWNkMWY0YTg0NzY4NWI4ZGI3ZjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9zYW1wbGUtYWNjdXJhdGUtc2NoZWR1bGluZy5odG1sCisrKyBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3NhbXBsZS1hY2N1cmF0ZS1zY2hlZHVsaW5nLmh0bWwKQEAgLTExMyw3ICsx
MTMsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAg
ICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3Ro
SW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVB
dWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7
CiAgICAgY3JlYXRlSW1wdWxzZSgpOyAgICAKIAogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2Ft
cGxlT2Zmc2V0cy5sZW5ndGg7ICsraSkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vc3RlcmVvMm1vbm8tZG93bi1taXhpbmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0
ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWwKaW5kZXggZjQ2NTU3MGIxMmJjN2NlNDAwMWEzNDQz
NWFlMWM0MjM2YzMzM2Q0Yi4uMTdlOTdlOTMwYzIyYzcyZTQzYjE5NTVkZjQ0ODVjOWUwOGZkMWZm
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc3RlcmVvMm1vbm8tZG93bi1taXhp
bmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9zdGVyZW8ybW9uby1kb3duLW1peGlu
Zy5odG1sCkBAIC01MCw3ICs1MCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29u
dGV4dCwgdGhlIGRlc3RpbmF0aW9uIGlzIG1vbm8uCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRB
dWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJh
dGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1w
bGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgLy8gQ3JlYXRl
IGEgc3RlcmVvIEF1ZGlvQnVmZmVyLgogICAgIHRvbmVCdWZmZXIgPSBjcmVhdGVEYXRhQnVmZmVy
KGNvbnRleHQsIHJlbmRlckxlbmd0aFNlY29uZHMpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby91cC1taXhpbmctbW9uby01MS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
dXAtbWl4aW5nLW1vbm8tNTEuaHRtbAppbmRleCBhNTc0NTFmOGVmZDJmZDI5YTQzNTY3MDhmZjNh
ZThiOGQ3YjVkZDZkLi5lYjU1MDg3MDBkY2IwZTBmYTU3NTcxODg2MTk2NmRmMDhjNjkwZjk3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctbW9uby01MS5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1tb25vLTUxLmh0bWwKQEAgLTIzLDcg
KzIzLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1
ZGlvIGNvbnRleHQKICAgICB2YXIgc2FtcGxlUmF0ZSA9IDQ0MTAwLjA7Ci0gICAgdmFyIGNvbnRl
eHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDYsIHNhbXBsZVJhdGUgKiB0b25lTGVuZ3RoU2Vj
b25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1
ZGlvQ29udGV4dCg2LCBzYW1wbGVSYXRlICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUp
OwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250ZXh0LCA0NDAsIHRv
bmVMZW5ndGhTZWNvbmRzLCAxKTsgCiAKICAgICB2YXIgc291cmNlID0gY29udGV4dC5jcmVhdGVC
dWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGlu
Zy1tb25vLXN0ZXJlby5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLW1vbm8t
c3RlcmVvLmh0bWwKaW5kZXggOTNjNzE5MDk4ZWE4NTgxOGQ5MTEzNjc4MzBlOTVhNTVlM2ExMzc4
Ny4uMmZjMDdiZWNkZWJmNmQ4YTBhMzliODQwNzg3MzM4MmEzNmMxOTAzMiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLW1vbm8tc3RlcmVvLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLW1vbm8tc3RlcmVvLmh0bWwKQEAgLTIzLDcgKzIz
LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlv
IGNvbnRleHQKICAgICB2YXIgc2FtcGxlUmF0ZSA9IDQ0MTAwLjA7Ci0gICAgdmFyIGNvbnRleHQg
PSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiB0b25lTGVuZ3RoU2Vjb25k
cywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlv
Q29udGV4dCgyLCBzYW1wbGVSYXRlICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwog
ICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRlVG9uZUJ1ZmZlcihjb250ZXh0LCA0NDAsIHRvbmVM
ZW5ndGhTZWNvbmRzLCAxKTsgCiAKICAgICB2YXIgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZm
ZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1z
dGVyZW8tNTEuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1zdGVyZW8tNTEu
aHRtbAppbmRleCAwYmU2ZWE5MjdjYTQyZDVmMDU2YzM4YzBmM2MxMWEyMjliZjYxOTAyLi45MzIz
NDAzNGRmOTk4MjAyMjFjNDZhNzNjYTJjYmIyOTc0MDYxOWI3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby91cC1taXhpbmctc3RlcmVvLTUxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vdXAtbWl4aW5nLXN0ZXJlby01MS5odG1sCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CiAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0CiAg
ICAgdmFyIHNhbXBsZVJhdGUgPSA0NDEwMC4wOwotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtp
dEF1ZGlvQ29udGV4dCg2LCBzYW1wbGVSYXRlICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJh
dGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoNiwg
c2FtcGxlUmF0ZSAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgdG9u
ZUJ1ZmZlciA9IGNyZWF0ZVRvbmVCdWZmZXIoY29udGV4dCwgNDQwLCB0b25lTGVuZ3RoU2Vjb25k
cywgMik7IAogCiAgICAgdmFyIHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby93YXZlc2hhcGVyLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby93YXZlc2hhcGVyLmh0bWwKaW5kZXggNmM1NmFiNWMxMTUwODVjZWNl
M2JjOGIwZTM4OGRlZDU0MWNlMjMxNC4uMjJhNTk1NTEwNmRiNTY2MjdkZGI4NjY3NDBjMmQyZjI1
YmQ2YzA3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd2F2ZXNoYXBlci5odG1s
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3dhdmVzaGFwZXIuaHRtbApAQCAtMTA3LDcgKzEw
Nyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAg
IGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIG51bWJlck9mUmVuZGVyRnJhbWVz
LCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRl
eHQoMSwgbnVtYmVyT2ZSZW5kZXJGcmFtZXMsIHNhbXBsZVJhdGUpOwogICAgIAogICAgIC8vIHNv
dXJjZSAtPiB3YXZlc2hhcGVyIC0+IGRlc3RpbmF0aW9uCiAgICAgdmFyIHNvdXJjZSA9IGNvbnRl
eHQuY3JlYXRlQnVmZmVyU291cmNlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179109</attachid>
            <date>2012-12-12 13:01:46 -0800</date>
            <delta_ts>2013-01-02 11:09:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104188-20121212125907.patch</filename>
            <type>text/plain</type>
            <size>72671</size>
            <attacher name="Chris Rogers">crogers</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI4OGVlZThlZmM1MTlk
N2MxZjFiZmVhZWY1NWY2ZDAxNjc0NjBlYS4uZjdjYzBlNGU4MjJhODIzMDQ5NzIwNjQwMmFkZDQ4
NjMyOGY4ODIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTEyLTEyICBDaHJp
cyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IE9mZmxp
bmVBdWRpb0NvbnRleHQgY29uc3RydWN0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwNDE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSBXZWIgQXVkaW8gbGF5b3V0IHRlc3RzIGhhdmUgcmVsaWVk
IG9uIGFuIHVuZG9jdW1lbnRlZCB3YXkgKGluIHRoZSBzcGVjaWZpY2F0aW9uKSB0byByZW5kZXIK
KyAgICAgICAgYXVkaW8gZmFzdGVyIHRoYW4gcmVhbHRpbWUgdXNpbmcgYW4gT2ZmbGluZUF1ZGlv
Q29udGV4dC4gIFdlIHdhbnQgdG8gZXhwb3NlIGEgcHJvcGVyIE9mZmxpbmVBdWRpb0NvbnRleHQK
KyAgICAgICAgb2JqZWN0IGFuZCBjb25zdHJ1Y3RvciBpbnN0ZWFkIG9mIHBpZ2d5YmFja2luZyBv
ZmYgb2YgdGhlIG5vcm1hbCBBdWRpb0NvbnRleHQuCisgICAgICAgICAgICAgCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb0NvbnRleHQ6OmlzU2FtcGxlUmF0ZVJhbmdlR29vZCk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKEF1ZGlvQ29udGV4dCk6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9ET01XaW5kb3dXZWJBdWRpby5pZGw6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0NvbnRleHQ6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpPZmZsaW5lQXVkaW9Db250ZXh0OjpPZmZsaW5lQXVk
aW9Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9mZmxpbmVBdWRpb0NvbnRleHQ6On5PZmZs
aW5lQXVkaW9Db250ZXh0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRp
b0NvbnRleHQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE9mZmxpbmVB
dWRpb0NvbnRleHQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29u
dGV4dC5pZGw6IEFkZGVkLgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJp
Yy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjp3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0RW5hYmxlZCk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SlNBdWRpb0NvbnRleHRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNBdWRpb0NvbnRleHQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpWOEF1ZGlvQ29udGV4dDo6Y29uc3RydWN0b3JDYWxsYmFja0N1c3Rv
bSk6CisKIDIwMTItMTItMTIgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lh
LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiByMTM3NDgxIGNhdXNlZCBhIGJ1aWxkIGZhaWx1
cmUgd2l0aCBHVEsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZGM0NWZjNmM1NjljNjM3YmM0MTY4
YTRjMzgxOGU1YWU1MmRkZGQ3Yi4uYTcyOTc3OGNhNmEzYTY1MDdiOTRjZWYyNjMxNmE3ZDNkN2Jh
YzQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTI4MSw2ICsyODEsNyBAQCBzZXQoV2ViQ29y
ZV9JRExfRklMRVMKICAgICBNb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuaWRs
CiAgICAgTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaWRsCiAg
ICAgTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5pZGwKKyAgICBN
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaWRsCiAgICAgTW9kdWxlcy93ZWJh
dWRpby9PZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRp
by9Pc2NpbGxhdG9yTm9kZS5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5p
ZGwKQEAgLTkyOSw2ICs5MzAsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxlcy93
ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcAogICAgIE1vZHVsZXMvd2ViYXVkaW8vTWVk
aWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcAogICAgIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCisgICAgTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVk
aW9Db250ZXh0LmNwcAogICAgIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlv
bkV2ZW50LmNwcAogICAgIE1vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25O
b2RlLmNwcAogICAgIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA3YmUwZDZhOWVjMGE3MGQ2YzE1YTEzYTRmZGJmOTMx
NDBkYTUxYmM4Li45ODkwZjAxODgxZDJiYWJlY2VlYjBjMjE4Y2MyZGNhZDhmNWVlZTkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0Miw2ICsxNDIsNyBAQCBCSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlv
U291cmNlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlTm9kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRp
by9Pc2NpbGxhdG9yTm9kZS5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9P
ZmZsaW5lQXVkaW9Db250ZXh0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlv
L09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy93ZWJhdWRpby9BbmFseXNlck5vZGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vi
YXVkaW8vV2F2ZVNoYXBlck5vZGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLnByaSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQppbmRl
eCA1NWRiNDIzMmNiODYxNGY1MDA4YzU4MDI4N2VlMzYzYzdkZGI4M2FlLi5kNThhZmI5MzE2N2Y3
MTU4NGViYmVmMGZjNmQ0MjYyMzY4MGU4MTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJp
CkBAIC0xNjAsNiArMTYwLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICAkJFBXRC9Nb2R1bGVz
L3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuaWRsIFwKICAgICAkJFBXRC9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5pZGwgXAogICAgICQkUFdEL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaWRsIFwKKyAgICAkJFBXRC9N
b2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuaWRsIFwKICAgICAkJFBXRC9Nb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5pZGwgXAogICAgICQkUFdE
L01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsIFwKICAgICAkJFBXRC9Nb2R1bGVz
L3dlYmF1ZGlvL0FuYWx5c2VyTm9kZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
aW5kZXggYWQ2NDViZDgyZDY1Zjg5YTZjMjU3MDk2OWEyMDg4ZDYwNzVjNGI5Yy4uYmNmZGVkZmVk
YWNiNzc1NzY1MDg4NjI2Y2NmMTk5YzQxMDFlMzIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCkBAIC01ODEsNiArNTgxLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTVmVydGV4QXJyYXlPYmplY3QuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU09FU0VsZW1lbnRJbmRleFVpbnQuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTT0VTRWxlbWVudEluZGV4VWludC5oIFwKKwlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNPZmZsaW5lQXVkaW9Db250ZXh0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNP
ZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNPc2NpbGxhdG9yTm9kZS5jcHAgXApAQCAtMTI4OCw2ICsxMjkwLDcgQEAgZG9tX2JpbmRp
bmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nv
ck5vZGUuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVk
aW9Tb3VyY2VOb2RlLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2VOb2RlLmlkbCBcCisJJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL09m
ZmxpbmVBdWRpb0NvbnRleHQuaWRsIFwKIAkkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vT2Zm
bGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YmF1ZGlvL09zY2lsbGF0b3JOb2RlLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlv
L0FuYWx5c2VyTm9kZS5pZGwgXApAQCAtMjA2MSw2ICsyMDY0LDggQEAgd2ViY29yZV9tb2R1bGVz
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVt
ZW50QXVkaW9Tb3VyY2VOb2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmggXAorCVNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgXAorCVNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29t
cGxldGlvbkV2ZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuY3BwCmluZGV4IDcxNGFiNTIwZWUzOTJmOTc2ZGI0ZWYwMzRlM2M3MzA1MDYy
Yzg3MGYuLmIyMDA3OTA5MzI0OTM5NjQ3MzY2OTk0MThkYzE5YjExMjQ3YTFmMjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTk1
LDE3ICs5NSwxMyBAQCBjb25zdCB1bnNpZ25lZCBNYXhOb2Rlc1RvRGVsZXRlUGVyUXVhbnR1bSA9
IDEwOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCi1uYW1lc3BhY2UgewotICAgIAotYm9v
bCBpc1NhbXBsZVJhdGVSYW5nZUdvb2QoZmxvYXQgc2FtcGxlUmF0ZSkKK2Jvb2wgQXVkaW9Db250
ZXh0Ojppc1NhbXBsZVJhdGVSYW5nZUdvb2QoZmxvYXQgc2FtcGxlUmF0ZSkKIHsKICAgICAvLyBG
SVhNRTogSXQgd291bGQgYmUgbmljZSBpZiB0aGUgbWluaW11bSBzYW1wbGUtcmF0ZSBjb3VsZCBi
ZSBsZXNzIHRoYW4gNDQuMUtIeiwKICAgICAvLyBidXQgdGhhdCB3aWxsIHJlcXVpcmUgc29tZSBm
aXhlcyBpbiBIUlRGUGFubmVyOjpmZnRTaXplRm9yU2FtcGxlUmF0ZSgpLCBhbmQgc29tZSB0ZXN0
aW5nIHRoZXJlLgogICAgIHJldHVybiBzYW1wbGVSYXRlID49IDQ0MTAwICYmIHNhbXBsZVJhdGUg
PD0gOTYwMDA7CiB9CiAKLX0KLQogLy8gRG9uJ3QgYWxsb3cgbW9yZSB0aGFuIHRoaXMgbnVtYmVy
IG9mIHNpbXVsdGFuZW91cyBBdWRpb0NvbnRleHRzIHRhbGtpbmcgdG8gaGFyZHdhcmUuCiBjb25z
dCB1bnNpZ25lZCBNYXhIYXJkd2FyZUNvbnRleHRzID0gNDsKIHVuc2lnbmVkIEF1ZGlvQ29udGV4
dDo6c19oYXJkd2FyZUNvbnRleHRDb3VudCA9IDA7CkBAIC0xMjQsMjMgKzEyMCw2IEBAIFBhc3NS
ZWZQdHI8QXVkaW9Db250ZXh0PiBBdWRpb0NvbnRleHQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1l
bnQsIEV4Y2VwdGlvbkNvZGUmCiAgICAgcmV0dXJuIGF1ZGlvQ29udGV4dC5yZWxlYXNlKCk7CiB9
CiAKLVBhc3NSZWZQdHI8QXVkaW9Db250ZXh0PiBBdWRpb0NvbnRleHQ6OmNyZWF0ZU9mZmxpbmVD
b250ZXh0KERvY3VtZW50KiBkb2N1bWVudCwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6
ZV90IG51bWJlck9mRnJhbWVzLCBmbG9hdCBzYW1wbGVSYXRlLCBFeGNlcHRpb25Db2RlJiBlYykK
LXsKLSAgICBBU1NFUlQoZG9jdW1lbnQpOwotCi0gICAgLy8gRklYTUU6IG9mZmxpbmUgY29udGV4
dHMgaGF2ZSBsaW1pdGF0aW9ucyBvbiBzdXBwb3J0ZWQgc2FtcGxlLXJhdGVzLgotICAgIC8vIEN1
cnJlbnRseSBhbGwgQXVkaW9Db250ZXh0cyBtdXN0IGhhdmUgdGhlIHNhbWUgc2FtcGxlLXJhdGUu
Ci0gICAgSFJURkRhdGFiYXNlTG9hZGVyKiBsb2FkZXIgPSBIUlRGRGF0YWJhc2VMb2FkZXI6Omxv
YWRlcigpOwotICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID4gMTAgfHwgIWlzU2FtcGxlUmF0ZVJh
bmdlR29vZChzYW1wbGVSYXRlKSB8fCAobG9hZGVyICYmIGxvYWRlci0+ZGF0YWJhc2VTYW1wbGVS
YXRlKCkgIT0gc2FtcGxlUmF0ZSkpIHsKLSAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwotICAgICAg
ICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBSZWZQdHI8QXVkaW9Db250ZXh0PiBhdWRpb0NvbnRl
eHQoYWRvcHRSZWYobmV3IEF1ZGlvQ29udGV4dChkb2N1bWVudCwgbnVtYmVyT2ZDaGFubmVscywg
bnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUpKSk7Ci0gICAgYXVkaW9Db250ZXh0LT5zdXNwZW5k
SWZOZWVkZWQoKTsKLSAgICByZXR1cm4gYXVkaW9Db250ZXh0LnJlbGVhc2UoKTsKLX0KLQogLy8g
Q29uc3RydWN0b3IgZm9yIHJlbmRlcmluZyB0byB0aGUgYXVkaW8gaGFyZHdhcmUuCiBBdWRpb0Nv
bnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBBY3RpdmVET01P
YmplY3QoZG9jdW1lbnQsIHRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHQuaAppbmRleCA2ZGEzYzEyYTlmNWVkMzUwZDQzOWZkOGY5MDUxYmViZTQ2
YzE3MWY5Li44YTA2NjY4M2JjMjEyYjBkZjhjMGFiN2IxMTIyZTNlYjJjZmJiYjc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKQEAgLTI1MCw5
ICsyNTAsMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKIAotcHJpdmF0ZToKK3Byb3RlY3Rl
ZDoKICAgICBleHBsaWNpdCBBdWRpb0NvbnRleHQoRG9jdW1lbnQqKTsKICAgICBBdWRpb0NvbnRl
eHQoRG9jdW1lbnQqLCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZG
cmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUpOworICAgIAorICAgIHN0YXRpYyBib29sIGlzU2FtcGxl
UmF0ZVJhbmdlR29vZChmbG9hdCBzYW1wbGVSYXRlKTsKKyAgICAKK3ByaXZhdGU6CiAgICAgdm9p
ZCBjb25zdHJ1Y3RDb21tb24oKTsKIAogICAgIHZvaWQgbGF6eUluaXRpYWxpemUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRE9NV2luZG93V2ViQXVkaW8u
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9ET01XaW5kb3dXZWJBdWRpby5p
ZGwKaW5kZXggZGY4OGZiMGY2MTcwZTNmMjgxOTcwZTFiNGNmMjAwNDhhN2JkNjUxMC4uNGIxYjdk
MTkyNzVhZWNmN2RjNjY0NjJhMzZkZjYzNDEyNjhjZmQwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9ET01XaW5kb3dXZWJBdWRpby5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9ET01XaW5kb3dXZWJBdWRpby5pZGwKQEAgLTMwLDYg
KzMwLDcgQEAKIF0gaW50ZXJmYWNlIERPTVdpbmRvd1dlYkF1ZGlvIHsKICNpZiAhZGVmaW5lZChM
QU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKICAgICBbSlNDdXN0b21HZXR0ZXIsIFY4RW5h
YmxlZEF0UnVudGltZV0gYXR0cmlidXRlIEF1ZGlvQ29udGV4dENvbnN0cnVjdG9yIHdlYmtpdEF1
ZGlvQ29udGV4dDsKKyAgICBbVjhFbmFibGVkQXRSdW50aW1lXSBhdHRyaWJ1dGUgT2ZmbGluZUF1
ZGlvQ29udGV4dENvbnN0cnVjdG9yIHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQ7CiAgICAgYXR0
cmlidXRlIFBhbm5lck5vZGVDb25zdHJ1Y3RvciB3ZWJraXRBdWRpb1Bhbm5lck5vZGU7CiAgICAg
YXR0cmlidXRlIEF1ZGlvUHJvY2Vzc2luZ0V2ZW50Q29uc3RydWN0b3IgQXVkaW9Qcm9jZXNzaW5n
RXZlbnQ7CiAgICAgYXR0cmlidXRlIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudENvbnN0cnVj
dG9yIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNmZTM2MjczOWIwNGI4YzdlMDg2YTNlMTZmNDdjODZjYjQ5ZDk4ZWIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQu
Y3BwCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVkZSAiT2ZmbGluZUF1ZGlvQ29udGV4dC5o
IgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisj
aW5jbHVkZSAiSFJURkRhdGFiYXNlTG9hZGVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8T2ZmbGluZUF1
ZGlvQ29udGV4dD4gT2ZmbGluZUF1ZGlvQ29udGV4dDo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVfdCBudW1iZXJP
ZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgLy8g
RklYTUU6IGFkZCBzdXBwb3J0IGZvciB3b3JrZXJzLgorICAgIGlmICghY29udGV4dCB8fCAhY29u
dGV4dC0+aXNEb2N1bWVudCgpKSB7CisgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7Cisg
ICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRp
Y19jYXN0PERvY3VtZW50Kj4oY29udGV4dCk7CisKKyAgICAvLyBGSVhNRTogb2ZmbGluZSBjb250
ZXh0cyBoYXZlIGxpbWl0YXRpb25zIG9uIHN1cHBvcnRlZCBzYW1wbGUtcmF0ZXMuCisgICAgLy8g
Q3VycmVudGx5IGFsbCBBdWRpb0NvbnRleHRzIG11c3QgaGF2ZSB0aGUgc2FtZSBzYW1wbGUtcmF0
ZS4KKyAgICBIUlRGRGF0YWJhc2VMb2FkZXIqIGxvYWRlciA9IEhSVEZEYXRhYmFzZUxvYWRlcjo6
bG9hZGVyKCk7CisgICAgaWYgKG51bWJlck9mQ2hhbm5lbHMgPiAxMCB8fCAhaXNTYW1wbGVSYXRl
UmFuZ2VHb29kKHNhbXBsZVJhdGUpIHx8IChsb2FkZXIgJiYgbG9hZGVyLT5kYXRhYmFzZVNhbXBs
ZVJhdGUoKSAhPSBzYW1wbGVSYXRlKSkgeworICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAg
ICAgIHJldHVybiAwOworICAgIH0KKworICAgIFJlZlB0cjxPZmZsaW5lQXVkaW9Db250ZXh0PiBh
dWRpb0NvbnRleHQoYWRvcHRSZWYobmV3IE9mZmxpbmVBdWRpb0NvbnRleHQoZG9jdW1lbnQsIG51
bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKSkpOworICAgIGF1ZGlv
Q29udGV4dC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIGF1ZGlvQ29udGV4dC5yZWxl
YXNlKCk7Cit9CisKK09mZmxpbmVBdWRpb0NvbnRleHQ6Ok9mZmxpbmVBdWRpb0NvbnRleHQoRG9j
dW1lbnQqIGRvY3VtZW50LCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVy
T2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUpCisgICAgOiBBdWRpb0NvbnRleHQoZG9jdW1lbnQs
IG51bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlKQoreworfQorCitP
ZmZsaW5lQXVkaW9Db250ZXh0Ojp+T2ZmbGluZUF1ZGlvQ29udGV4dCgpCit7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJlYjZiZjU3Yjc1YmM1YmJlMjkyMDcwNjJiOTBjN2U5MWJhYWYxNGUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09mZmxpbmVB
dWRpb0NvbnRleHQuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBPZmZs
aW5lQXVkaW9Db250ZXh0X2gKKyNkZWZpbmUgT2ZmbGluZUF1ZGlvQ29udGV4dF9oCisKKyNpbmNs
dWRlICJBdWRpb0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBPZmZs
aW5lQXVkaW9Db250ZXh0IDogcHVibGljIEF1ZGlvQ29udGV4dCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8T2ZmbGluZUF1ZGlvQ29udGV4dD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVtYmVyT2ZGcmFt
ZXMsIGZsb2F0IHNhbXBsZVJhdGUsIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIHZpcnR1YWwgfk9m
ZmxpbmVBdWRpb0NvbnRleHQoKTsKKworcHJpdmF0ZToKKyAgICBPZmZsaW5lQXVkaW9Db250ZXh0
KERvY3VtZW50KiwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgc2l6ZV90IG51bWJlck9mRnJh
bWVzLCBmbG9hdCBzYW1wbGVSYXRlKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIE9mZmxpbmVBdWRpb0NvbnRleHRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5lQXVkaW9Db250ZXh0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWU1N2FhOWQ3MGE0ZTcyODMwOTYxM2NiZDEyNDUzYjE1MDU5NjNmOQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5p
ZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiwgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1XRUJf
QVVESU8sCisgICAgQWN0aXZlRE9NT2JqZWN0LAorICAgIEV2ZW50VGFyZ2V0LAorICAgIEpTR2Vu
ZXJhdGVUb0pTT2JqZWN0LAorICAgIENvbnN0cnVjdG9yKGluIHVuc2lnbmVkIGxvbmcgbnVtYmVy
T2ZDaGFubmVscywgaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkZyYW1lcywgaW4gZmxvYXQgc2Ft
cGxlUmF0ZSksCisgICAgQ29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24sCisgICAgQ2FsbFdpdGg9
U2NyaXB0RXhlY3V0aW9uQ29udGV4dAorXSBpbnRlcmZhY2UgT2ZmbGluZUF1ZGlvQ29udGV4dCA6
IEF1ZGlvQ29udGV4dCB7CisKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggYTY3MzQwNGU2NGJlYmQ4
ZjQzYzUzNzBmMTBkYjJhYjg4MDBjMTE0ZC4uYjE1ZjljNDViYjJiYjgwY2RlYTU2ZGU4NTQyZmRj
OTNlM2Q2ZjNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTMzLDYgKzEzMyw3IEBACiAgICAgICAg
ICAgICAnTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvRGVzdGluYXRpb25Ob2RlLmlk
bCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
Tm9kZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29t
cGxldGlvbkV2ZW50LmlkbCcsCisgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9PZmZsaW5l
QXVkaW9Db250ZXh0LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxh
dG9yTm9kZS5pZGwnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViYXVkaW8vQW5hbHlzZXJOb2Rl
LmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwn
LApAQCAtOTYyLDYgKzk2Myw4IEBACiAgICAgICAgICAgICAnTW9kdWxlcy93ZWJhdWRpby9NZWRp
YVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL3dlYmF1ZGlv
L09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMv
d2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmgnLAorICAgICAgICAgICAgJ01v
ZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5jcHAnLAorICAgICAgICAgICAgJ01v
ZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvQ29udGV4dC5oJywKICAgICAgICAgICAgICdNb2R1
bGVzL3dlYmF1ZGlvL09mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvd2ViYXVkaW8vT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgnLAogICAg
ICAgICAgICAgJ01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ZmU1
MmZjMTkxMzNiOWE2MGE4Y2FlYTBmMzc2MWQ2NzdkYTg1Yzg3Li41YWQyY2U0NzIwNTFjOTljMDg4
MjQxZjhkZjExZjczODRmNjcxYWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NjExLDYgKzY2MTEsMTAgQEAKIAkJRkRBM0U5
NUExMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRBM0U5NTYxMzRBNDlF
RjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5oICovOyB9OwogCQlGREEz
RTk1QjEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQTNFOTU3MTM0
QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwICovOyB9Owog
CQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREEzRTk1
ODEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggKi87IH07
CisJCUZEQTkzMjVEMTY3MDNCMkEwMDg5ODJEQyAvKiBPZmZsaW5lQXVkaW9Db250ZXh0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQTkzMjVBMTY3
MDNCMkEwMDg5ODJEQyAvKiBPZmZsaW5lQXVkaW9Db250ZXh0LmNwcCAqLzsgfTsKKwkJRkRBOTMy
NUUxNjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQTkzMjVCMTY3MDNCMkEwMDg5ODJE
QyAvKiBPZmZsaW5lQXVkaW9Db250ZXh0LmggKi87IH07CisJCUZEQTkzMjY2MTY3MDNCQTkwMDg5
ODJEQyAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRBOTMyNjQxNjcwM0JBOTAwODk4MkRDIC8qIEpTT2Zm
bGluZUF1ZGlvQ29udGV4dC5jcHAgKi87IH07CisJCUZEQTkzMjY3MTY3MDNCQTkwMDg5ODJEQyAv
KiBKU09mZmxpbmVBdWRpb0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZEQTkzMjY1MTY3MDNCQTkwMDg5ODJEQyAvKiBKU09mZmxpbmVBdWRp
b0NvbnRleHQuaCAqLzsgfTsKIAkJRkRBRjE5OTgxNTEzRDEzMTAwOERCMEMzIC8qIERpcmVjdENv
bnZvbHZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGREFGMTk5NjE1MTNEMTMxMDA4REIwQzMgLyogRGlyZWN0Q29udm9sdmVyLmNwcCAqLzsgfTsK
IAkJRkRBRjE5OTkxNTEzRDEzMTAwOERCMEMzIC8qIERpcmVjdENvbnZvbHZlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRBRjE5OTcxNTEzRDEzMTAw
OERCMEMzIC8qIERpcmVjdENvbnZvbHZlci5oICovOyB9OwogCQlGREIwNTJERjE1NjFBNDJDMDBC
NTAwRDYgLyogQXVkaW9TdW1taW5nSnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRCMDUyREQxNTYxQTQyQzAwQjUwMEQ2IC8qIEF1ZGlv
U3VtbWluZ0p1bmN0aW9uLmNwcCAqLzsgfTsKQEAgLTE0MTU0LDYgKzE0MTU4LDExIEBACiAJCUZE
QTNFOTU3MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gT2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRBM0U5NTgxMzRB
NDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRBM0U5NUQxMzRBNDlGRjAwOEQ0QjVBIC8qIE9m
ZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gT2Zm
bGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRkRBOTMyNUExNjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gT2ZmbGluZUF1ZGlvQ29udGV4dC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZEQTkzMjVCMTY3MDNCMkEwMDg5ODJE
QyAvKiBPZmZsaW5lQXVkaW9Db250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE9mZmxpbmVBdWRpb0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RkRBOTMyNUMxNjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IE9mZmxpbmVBdWRpb0NvbnRleHQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGREE5MzI2NDE2NzAzQkE5MDA4OTgyREMgLyogSlNPZmZsaW5lQXVk
aW9Db250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTT2Zm
bGluZUF1ZGlvQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZEQTkz
MjY1MTY3MDNCQTkwMDg5ODJEQyAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPZmZsaW5lQXVkaW9Db250ZXh0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZEQUYxOTk2MTUxM0QxMzEwMDhEQjBDMyAvKiBEaXJlY3RD
b252b2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlyZWN0
Q29udm9sdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRBRjE5OTcxNTEz
RDEzMTAwOERCMEMzIC8qIERpcmVjdENvbnZvbHZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEaXJlY3RDb252b2x2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRkRCMDUyREQxNTYxQTQyQzAwQjUwMEQ2IC8qIEF1ZGlvU3VtbWluZ0p1bmN0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1ZGlvU3VtbWluZ0p1bmN0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMzQ1LDYgKzIyMzU0LDkgQEAK
IAkJCQlGRDY3MUE3NDE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5v
ZGUuY3BwICovLAogCQkJCUZENjcxQTc1MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1
ZGlvU291cmNlTm9kZS5oICovLAogCQkJCUZENjcxQTc2MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRp
YVN0cmVhbUF1ZGlvU291cmNlTm9kZS5pZGwgKi8sCisJCQkJRkRBOTMyNUExNjcwM0IyQTAwODk4
MkRDIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuY3BwICovLAorCQkJCUZEQTkzMjVCMTY3MDNCMkEw
MDg5ODJEQyAvKiBPZmZsaW5lQXVkaW9Db250ZXh0LmggKi8sCisJCQkJRkRBOTMyNUMxNjcwM0Iy
QTAwODk4MkRDIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuaWRsICovLAogCQkJCUZEQTNFOTU1MTM0
QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwICovLAogCQkJ
CUZEQTNFOTU2MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQu
aCAqLywKIAkJCQlGREEzRTk1RDEzNEE0OUZGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxl
dGlvbkV2ZW50LmlkbCAqLywKQEAgLTIyNTExLDYgKzIyNTIzLDggQEAKIAkJCQlGRDIzQTEyNDEz
RjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCAqLywKIAkJ
CQlGREJENDgwQTE1OUJDNjg3MDA5M0VCNEYgLyogSlNNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9k
ZS5jcHAgKi8sCiAJCQkJRkRCRDQ4MEIxNTlCQzY4NzAwOTNFQjRGIC8qIEpTTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZU5vZGUuaCAqLywKKwkJCQlGREE5MzI2NDE2NzAzQkE5MDA4OTgyREMgLyogSlNP
ZmZsaW5lQXVkaW9Db250ZXh0LmNwcCAqLywKKwkJCQlGREE5MzI2NTE2NzAzQkE5MDA4OTgyREMg
LyogSlNPZmZsaW5lQXVkaW9Db250ZXh0LmggKi8sCiAJCQkJRkRGNkJBRjYxMzRBNEM5ODAwODIy
OTIwIC8qIEpTT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmNwcCAqLywKIAkJCQlGREY2QkFG
NzEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCAqLywK
IAkJCQlGREVBNjI0MDE1MjEwMkUyMDA0NzlERjAgLyogSlNPc2NpbGxhdG9yTm9kZS5jcHAgKi8s
CkBAIC0yNTg5MCw2ICsyNTkwNCw4IEBACiAJCQkJMzFENTkxQkMxNjZDMkU2QzAwRTZCRjAyIC8q
IFBsdWdJbk9yaWdpbkhhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCTk4NkVBODgzMTVGRkYyOTAw
MDk4NUU1RSAvKiBQcmVyZW5kZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNTEzRDRG
MTY3N0VBODMwMDE0OUZDQiAvKiBJbml0aWFsaXplTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRkRBOTMyNUUxNjcwM0IyQTAwODk4MkRDIC8qIE9mZmxpbmVBdWRpb0NvbnRleHQuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUZEQTkzMjY3MTY3MDNCQTkwMDg5ODJEQyAvKiBKU09mZmxpbmVBdWRp
b0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjg5OTUsNiArMjkwMTEsOCBAQAogCQkJCUQ2
Rjc5NjBEMTY2RkZFQ0UwMDc2REQxOCAvKiBKU0hUTUxUZW1wbGF0ZUVsZW1lbnRDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMzFENTkxQkIxNjZDMkU2QzAwRTZCRjAyIC8qIFBsdWdJbk9y
aWdpbkhhc2guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE1MTNENTExNjc3RjA4ODAwMTQ5RkNC
IC8qIE5vdEltcGxlbWVudGVkLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEQTkzMjVEMTY3MDNC
MkEwMDg5ODJEQyAvKiBPZmZsaW5lQXVkaW9Db250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUZEQTkzMjY2MTY3MDNCQTkwMDg5ODJEQyAvKiBKU09mZmxpbmVBdWRpb0NvbnRleHQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDkzY2I4MzkxMTgxNjhjMjBjYTQ5NjZh
YjlmNWIwN2U2ZTM2ZWE3YTYuLjE4ZjY2MWM2YzliNTM4ODEzOGMwMGU4ZTk0YmI4NGRiZDFkZmRj
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC0xMjMsNiArMTIzLDcgQEAgcHVibGljOgogI2lmIEVO
QUJMRShXRUJfQVVESU8pCiAgICAgc3RhdGljIHZvaWQgc2V0V2Via2l0QXVkaW9Db250ZXh0RW5h
YmxlZChib29sIGlzRW5hYmxlZCkgeyBpc1dlYkF1ZGlvRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQog
ICAgIHN0YXRpYyBib29sIHdlYmtpdEF1ZGlvQ29udGV4dEVuYWJsZWQoKSB7IHJldHVybiBpc1dl
YkF1ZGlvRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRl
eHRFbmFibGVkKCkgeyByZXR1cm4gaXNXZWJBdWRpb0VuYWJsZWQ7IH0KICNlbmRpZgogCiAjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQXVkaW9Db250ZXh0Q3VzdG9tLmNwcAppbmRleCAxMjBmYzU3ZGI4MGQ5MWE4ZTFjMmQ3MzVk
MDUxNmEzNTZmOGMwOGJmLi42MWQ3ODdkNGZlMjE1MDE5MjJmMTEyMmYwMzQyMzcyODcwMjNjNjdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29udGV4dEN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnRleHRD
dXN0b20uY3BwCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSAiSlNBcnJheUJ1ZmZlci5oIgog
I2luY2x1ZGUgIkpTQXVkaW9CdWZmZXIuaCIKICNpbmNsdWRlICJKU0F1ZGlvQ29udGV4dC5oIgor
I2luY2x1ZGUgIkpTT2ZmbGluZUF1ZGlvQ29udGV4dC5oIgorI2luY2x1ZGUgIk9mZmxpbmVBdWRp
b0NvbnRleHQuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8d3RmL0Fy
cmF5QnVmZmVyLmg+CiAKQEAgLTc3LDggKzc5LDEyIEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgSlNBdWRpb0NvbnRleHRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNBdWRpb0NvbnRleHQo
CiAgICAgICAgIGlmICghYXVkaW9Db250ZXh0LmdldCgpKQogICAgICAgICAgICAgcmV0dXJuIHRo
cm93Vk1FcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihleGVjLCAiYXVkaW8gcmVzb3VyY2Vz
IHVuYXZhaWxhYmxlIGZvciBBdWRpb0NvbnRleHQgY29uc3RydWN0aW9uIikpOwogICAgIH0gZWxz
ZSB7CisjaWYgRU5BQkxFKExFR0FDWV9XRUJfQVVESU8pCiAgICAgICAgIC8vIENvbnN0cnVjdG9y
IGZvciBvZmZsaW5lIChyZW5kZXItdGFyZ2V0KSBBdWRpb0NvbnRleHQgd2hpY2ggcmVuZGVycyBp
bnRvIGFuIEF1ZGlvQnVmZmVyLgogICAgICAgICAvLyBuZXcgQXVkaW9Db250ZXh0KGluIHVuc2ln
bmVkIGxvbmcgbnVtYmVyT2ZDaGFubmVscywgaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkZyYW1l
cywgaW4gZmxvYXQgc2FtcGxlUmF0ZSk7CisgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVz
c2FnZShKU01lc3NhZ2VTb3VyY2UsIFdhcm5pbmdNZXNzYWdlTGV2ZWwsCisgICAgICAgICAgICAi
RGVwcmVjYXRlZCBBdWRpb0NvbnRleHQgY29uc3RydWN0b3I6IHVzZSBPZmZsaW5lQXVkaW9Db250
ZXh0IGluc3RlYWQiKTsKKwogICAgICAgICBpZiAoZXhlYy0+YXJndW1lbnRDb3VudCgpIDwgMykK
ICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhlYywgY3JlYXRlTm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoZXhlYykpOwogCkBAIC05NSwxMiArMTAxLDE2IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgSlNBdWRpb0NvbnRleHRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNBdWRp
b0NvbnRleHQoCiAgICAgICAgIGlmIChzYW1wbGVSYXRlIDw9IDApCiAgICAgICAgICAgICByZXR1
cm4gdGhyb3dWTUVycm9yKGV4ZWMsIGNyZWF0ZVN5bnRheEVycm9yKGV4ZWMsICJJbnZhbGlkIHNh
bXBsZSByYXRlIikpOwogCisKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgICAg
IGF1ZGlvQ29udGV4dCA9IEF1ZGlvQ29udGV4dDo6Y3JlYXRlT2ZmbGluZUNvbnRleHQoZG9jdW1l
bnQsIG51bWJlck9mQ2hhbm5lbHMsIG51bWJlck9mRnJhbWVzLCBzYW1wbGVSYXRlLCBlYyk7Cisg
ICAgICAgIGF1ZGlvQ29udGV4dCA9IE9mZmxpbmVBdWRpb0NvbnRleHQ6OmNyZWF0ZShkb2N1bWVu
dCwgbnVtYmVyT2ZDaGFubmVscywgbnVtYmVyT2ZGcmFtZXMsIHNhbXBsZVJhdGUsIGVjKTsKICAg
ICAgICAgaWYgKGVjKSB7CiAgICAgICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwog
ICAgICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJvcihl
eGVjLCAiRXJyb3IgY3JlYXRpbmcgT2ZmbGluZUF1ZGlvQ29udGV4dCIpKTsKICAgICAgICAgfQor
I2Vsc2UKKyAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVTeW50YXhFcnJv
cihleGVjLCAiSWxsZWdhbCBBdWRpb0NvbnRleHQgY29uc3RydWN0b3IiKSk7CisjZW5kaWYKICAg
ICB9CiAKICAgICBpZiAoIWF1ZGlvQ29udGV4dC5nZXQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhBdWRpb0NvbnRleHRDdXN0b20uY3BwCmlu
ZGV4IDgwYTMyYmFkYjE1OTQ3N2RjZmQ0MmY2MDdiMTc4NDA4OWRlYjg4ZTQuLjdjYmU1NjZkOWRl
MjRkN2VmOGM4NTJlMmY4NzU0M2MzYmM1OGVjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEF1ZGlvQ29udGV4dEN1c3RvbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QXVkaW9Db250ZXh0Q3VzdG9tLmNwcApAQCAt
MzIsOSArMzIsMTEgQEAKICNpbmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJCaW5k
aW5nU3RhdGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk9mZmxpbmVBdWRpb0Nv
bnRleHQuaCIKICNpbmNsdWRlICJWOEFycmF5QnVmZmVyLmgiCiAjaW5jbHVkZSAiVjhBdWRpb0J1
ZmZlci5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4T2ZmbGluZUF1ZGlv
Q29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9BcnJheUJ1ZmZlci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC01NCwyOSArNTYsMTYgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4QXVkaW9D
b250ZXh0Ojpjb25zdHJ1Y3RvckNhbGxiYWNrQ3VzdG9tKGNvbnN0IHY4OjpBcmd1bWUKICAgICAg
ICAgaWYgKCFhdWRpb0NvbnRleHQuZ2V0KCkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJv
cih2OFN5bnRheEVycm9yLCAiYXVkaW8gcmVzb3VyY2VzIHVuYXZhaWxhYmxlIGZvciBBdWRpb0Nv
bnRleHQgY29uc3RydWN0aW9uIiwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIH0gZWxzZSB7Cisj
aWYgRU5BQkxFKExFR0FDWV9XRUJfQVVESU8pCiAgICAgICAgIC8vIENvbnN0cnVjdG9yIGZvciBv
ZmZsaW5lIChyZW5kZXItdGFyZ2V0KSBBdWRpb0NvbnRleHQgd2hpY2ggcmVuZGVycyBpbnRvIGFu
IEF1ZGlvQnVmZmVyLgogICAgICAgICAvLyBuZXcgQXVkaW9Db250ZXh0KGluIHVuc2lnbmVkIGxv
bmcgbnVtYmVyT2ZDaGFubmVscywgaW4gdW5zaWduZWQgbG9uZyBudW1iZXJPZkZyYW1lcywgaW4g
ZmxvYXQgc2FtcGxlUmF0ZSk7Ci0gICAgICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMykKLSAgICAg
ICAgICAgIHJldHVybiB0aHJvd05vdEVub3VnaEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0
ZSgpKTsKKyAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgV2FybmluZ01lc3NhZ2VMZXZlbCwKKyAgICAgICAgICAgICJEZXByZWNhdGVkIEF1ZGlvQ29u
dGV4dCBjb25zdHJ1Y3RvcjogdXNlIE9mZmxpbmVBdWRpb0NvbnRleHQgaW5zdGVhZCIpOwogCi0g
ICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKLQotICAgICAgICBpbnQzMl90IG51bWJlck9mQ2hhbm5l
bHMgPSB0b0ludDMyKGFyZ3NbMF0sIG9rKTsKLSAgICAgICAgaWYgKCFvayB8fCBudW1iZXJPZkNo
YW5uZWxzIDw9IDAgfHwgbnVtYmVyT2ZDaGFubmVscyA+IDEwKQotICAgICAgICAgICAgcmV0dXJu
IHRocm93RXJyb3IodjhTeW50YXhFcnJvciwgIkludmFsaWQgbnVtYmVyIG9mIGNoYW5uZWxzIiwg
YXJncy5HZXRJc29sYXRlKCkpOwotCi0gICAgICAgIGludDMyX3QgbnVtYmVyT2ZGcmFtZXMgPSB0
b0ludDMyKGFyZ3NbMV0sIG9rKTsKLSAgICAgICAgaWYgKCFvayB8fCBudW1iZXJPZkZyYW1lcyA8
PSAwKQotICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IodjhTeW50YXhFcnJvciwgIkludmFs
aWQgbnVtYmVyIG9mIGZyYW1lcyIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKLQotICAgICAgICBmbG9h
dCBzYW1wbGVSYXRlID0gdG9GbG9hdChhcmdzWzJdKTsKLSAgICAgICAgaWYgKHNhbXBsZVJhdGUg
PD0gMCkKLSAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHY4U3ludGF4RXJyb3IsICJJbnZh
bGlkIHNhbXBsZSByYXRlIiwgYXJncy5HZXRJc29sYXRlKCkpOwotCi0gICAgICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgICAgICBhdWRpb0NvbnRleHQgPSBBdWRpb0NvbnRleHQ6OmNyZWF0
ZU9mZmxpbmVDb250ZXh0KGRvY3VtZW50LCBudW1iZXJPZkNoYW5uZWxzLCBudW1iZXJPZkZyYW1l
cywgc2FtcGxlUmF0ZSwgZWMpOwotICAgICAgICBpZiAoZWMpCi0gICAgICAgICAgICByZXR1cm4g
c2V0RE9NRXhjZXB0aW9uKGVjLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgICAgIHJldHVybiBW
OE9mZmxpbmVBdWRpb0NvbnRleHQ6OmNvbnN0cnVjdG9yQ2FsbGJhY2soYXJncyk7CisjZWxzZQor
ICAgICAgICByZXR1cm4gdGhyb3dFcnJvcih2OFN5bnRheEVycm9yLCAiSWxsZWdhbCBBdWRpb0Nv
bnRleHQgY29uc3RydWN0b3IiLCBhcmdzLkdldElzb2xhdGUoKSk7CisjZW5kaWYKICAgICB9CiAK
ICAgICBpZiAoIWF1ZGlvQ29udGV4dC5nZXQoKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NWE0NjUxYTAxMmY0MDI2YjNi
NDUxYWRhZTc3YTZkZTA2OTJhYzVlLi5jMWVjMmNlNDRjZTkwNWI3MjlhMjUyZDY2NGI0NzIyZTlm
OTllYTVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMTItMTItMTIgIENocmlzIFJvZ2VycyAg
PGNyb2dlcnNAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgT2ZmbGluZUF1ZGlvQ29u
dGV4dCBjb25zdHJ1Y3RvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA0MTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3dpdGNoIFdlYiBBdWRpbyBsYXlvdXQgdGVzdHMgdG8gdXNlIE9mZmxpbmVBdWRp
b0NvbnRleHQgY29uc3RydWN0b3IuCisKKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvbm1p
LXdlYmF1ZGlvLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9h
dWRpby1jb250ZXh0Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Ut
bG9vcC1jb21wcmVoZW5zaXZlLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9idWZmZXJz
b3VyY2UtbG9vcC1wb2ludHMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZlcnNv
dXJjZS1tdWx0aS1jaGFubmVscy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVy
c291cmNlLXBsYXliYWNrU3RhdGUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZl
cnNvdXJjZS1wbGF5YmFja3JhdGUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRpb2J1ZmZl
cnNvdXJjZS1zdGFydC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNl
Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVyZ2VyLXN0ZXJlby5odG1s
OgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvY2hhbm5lbHNwbGl0dGVyLmh0bWw6CisgICAgICAg
ICogd2ViYXVkaW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3JkZXIuaHRtbDoKKyAgICAgICAgKiB3ZWJh
dWRpby9hdWRpb25vZGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmF1ZGlvL2F1ZGlvcGFy
YW0tY29ubmVjdC1hdWRpb3JhdGVzaWduYWwuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9hdWRp
b3BhcmFtLXN1bW1pbmdqdW5jdGlvbi5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2F1dG9tYXRp
Yy1wdWxsLW5vZGUuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9iaXF1YWQtYWxscGFzcy5odG1s
OgorICAgICAgICAqIHdlYmF1ZGlvL2JpcXVhZC1iYW5kcGFzcy5odG1sOgorICAgICAgICAqIHdl
YmF1ZGlvL2JpcXVhZC1oaWdocGFzcy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2JpcXVhZC1o
aWdoc2hlbGYuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9iaXF1YWQtbG93cGFzcy5odG1sOgor
ICAgICAgICAqIHdlYmF1ZGlvL2JpcXVhZC1sb3dzaGVsZi5odG1sOgorICAgICAgICAqIHdlYmF1
ZGlvL2JpcXVhZC1ub3RjaC5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2JpcXVhZC1wZWFraW5n
Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vY29udm9sdXRpb24tbW9uby1tb25vLmh0bWw6Cisg
ICAgICAgICogd2ViYXVkaW8vZGVsYXlub2RlLW1heC1kZWZhdWx0LWRlbGF5Lmh0bWw6CisgICAg
ICAgICogd2ViYXVkaW8vZGVsYXlub2RlLW1heC1ub25kZWZhdWx0LWRlbGF5Lmh0bWw6CisgICAg
ICAgICogd2ViYXVkaW8vZGVsYXlub2RlLW1heGRlbGF5Lmh0bWw6CisgICAgICAgICogd2ViYXVk
aW8vZGVsYXlub2RlLW1heGRlbGF5bGltaXQuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9kZWxh
eW5vZGUtc2NoZWR1bGluZy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2RlbGF5bm9kZS5odG1s
OgorICAgICAgICAqIHdlYmF1ZGlvL2Rpc3RhbmNlLWV4cG9uZW50aWFsLmh0bWw6CisgICAgICAg
ICogd2ViYXVkaW8vZGlzdGFuY2UtaW52ZXJzZS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2Rp
c3RhbmNlLWxpbmVhci5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL2dhaW4uaHRtbDoKKyAgICAg
ICAgKiB3ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2RlLXplcm8taW5wdXQtY2hhbm5lbHMuaHRt
bDoKKyAgICAgICAgKiB3ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2RlLmh0bWw6CisgICAgICAg
ICogd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWdjLmh0bWw6CisgICAgICAg
ICogd2ViYXVkaW8vbWl4aW5nLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vbm90ZS1ncmFpbi1v
bi1wbGF5Lmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vbm90ZS1ncmFpbi1vbi10aW1pbmcuaHRt
bDoKKyAgICAgICAgKiB3ZWJhdWRpby9vc2NpbGxhdG9yLWJhc2ljLmh0bWw6CisgICAgICAgICog
d2ViYXVkaW8vcGFubmVyLWVxdWFscG93ZXItc3RlcmVvLmh0bWw6CisgICAgICAgICogd2ViYXVk
aW8vcGFubmVyLWVxdWFscG93ZXIuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9yZWFsdGltZWFu
YWx5c2VyLWZmdC1zaXppbmcuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRpby9yZXNvdXJjZXMvYXVk
aW8tY29kZWMtdGVzdC5qczoKKyAgICAgICAgKHJ1bkRlY29kaW5nVGVzdCk6CisgICAgICAgICog
d2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5qczoKKyAgICAgICAgKGNyZWF0
ZUF1ZGlvR3JhcGhBbmRUZXN0KToKKyAgICAgICAgKiB3ZWJhdWRpby9yZXNvdXJjZXMvamF2YXNj
cmlwdGF1ZGlvbm9kZS10ZXN0aW5nLmpzOgorICAgICAgICAocnVuSlNOb2RlVGVzdCk6CisgICAg
ICAgICogd2ViYXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxpbmcuaHRtbDoKKyAgICAgICAg
KiB3ZWJhdWRpby9zdGVyZW8ybW9uby1kb3duLW1peGluZy5odG1sOgorICAgICAgICAqIHdlYmF1
ZGlvL3VwLW1peGluZy1tb25vLTUxLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vdXAtbWl4aW5n
LW1vbm8tc3RlcmVvLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vdXAtbWl4aW5nLXN0ZXJlby01
MS5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3dhdmVzaGFwZXIuaHRtbDoKKwogMjAxMi0xMi0x
MiAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNYXJrIGZhc3Qv
Y3NzL25lc3RlZC1yb3VuZGVkLWNvcm5lcnMuaHRtbCBhcyBmbGFreSBvbiBDaHJvbWl1bS9Nb3Vu
dGFpbkxpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ubWkt
d2ViYXVkaW8uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVk
aW8uaHRtbAppbmRleCA3OWE4YzgzYmU3MDU0ZTllMTMxMThhYzYwY2Y4ZmM3ZDJiMzYzZmQwLi40
ZjcwMDFiYmQwZTdjYTUwZmFiODNiMDVmOWQyZWQ1MmJiMjNkMzU4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby5odG1sCkBAIC0yMCw3ICsyMCw3
IEBAIGZ1bmN0aW9uIHJ1blBhZ2VUZXN0KCkKICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRl
eHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhT
ZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5l
QXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVS
YXRlKTsKIAogICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJj
ZSgpOwogICAgIGJ1ZmZlclNvdXJjZS5idWZmZXIgPSBjcmVhdGVTaW5XYXZlQnVmZmVyKGNvbnRl
eHQsIHJlbmRlckxlbmd0aFNlY29uZHMsIDg4MCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL2F1ZGlvLWNvbnRleHQuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvYXVkaW8tY29udGV4dC5odG1sCmluZGV4
IGEzNWI0ZTcwMzk3ZjM1YzJhZDk0ZmUzMTc5ZGZkZjU1NmUxNGZkNDIuLjA2MmE3NDk5MDkzMDJh
NjYxNjVlODQ3NzBiYzRlMzIzMDM1MDQ5YzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvYXVkaW8tY29udGV4dC5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvYXVkaW8tY29udGV4dC5odG1sCkBAIC01
LDcgKzUsNyBAQCB2YXIgc2FtcGxlUmF0ZSA9IDQ0MTAwLjA7CiB2YXIgcmVuZGVyTGVuZ3RoU2Vj
b25kcyA9IDAuMTI1OwogCiAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotdmFyIGNv
bnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5n
dGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKK3ZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVB
dWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJh
dGUpOwogCiAvLyBUaGlzIGNhbGwgZm9yY2VzIEF1ZGlvQ29udGV4dCBsYXp5IGluaXRpYWxpemF0
aW9uLgogdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1sb29wLWNv
bXByZWhlbnNpdmUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNl
LWxvb3AtY29tcHJlaGVuc2l2ZS5odG1sCmluZGV4IDI1MjA2OWZhYWY5MGM2YjQzODc2Yzc1YjIz
M2U2NjY5OTVkOTAzNDIuLmFlZGU0NzhmZWY4M2VjNDllNGNjM2ZiNDMwODliMzhmNjdmMzUzMDEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLWxvb3At
Y29tcHJlaGVuc2l2ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVy
c291cmNlLWxvb3AtY29tcHJlaGVuc2l2ZS5odG1sCkBAIC05Nyw3ICs5Nyw3IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgLy8g
Q3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJr
aXRBdWRpb0NvbnRleHQoMSwgdG90YWxSZW5kZXJMZW5ndGhGcmFtZXMsIHNhbXBsZVJhdGUpOwor
ICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgdG90YWxS
ZW5kZXJMZW5ndGhGcmFtZXMsIHNhbXBsZVJhdGUpOwogICAgIGJ1ZmZlciA9IGNyZWF0ZVRlc3RC
dWZmZXIoY29udGV4dCwgYnVmZmVyRnJhbWVMZW5ndGgpOwogCiAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB0ZXN0cy5sZW5ndGg7ICsraSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvYnVmZmVyc291cmNlLWxvb3AtcG9pbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb2J1ZmZlcnNvdXJjZS1sb29wLXBvaW50cy5odG1sCmluZGV4IDAwZmZhODdlYzdkYmE5
NTIxYzU3YzUzMTg3NzJiOTYyNGJkZGNjYTkuLjU2MDFkMDI1NWFmZDhhNWMzNjQ5OWE4MjEzNDdj
OWVjYjFiNDZkN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVy
c291cmNlLWxvb3AtcG9pbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9i
dWZmZXJzb3VyY2UtbG9vcC1wb2ludHMuaHRtbApAQCAtODIsNyArODIsNyBAQCBmdW5jdGlvbiBp
bml0KCkgewogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBj
b250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJh
dGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Vi
a2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBz
YW1wbGVSYXRlKTsKIAogICAgIC8vIENyZWF0ZSB0aGUgdGVzdCBidWZmZXIuCiAgICAgLy8gV2Un
bGwgbG9vcCB0aGlzIHdpdGggdGhlIGxvb3AtcG9pbnRzIHNldCBmb3IgdGhlIDJuZCBoYWxmIG9m
IHRoaXMgYnVmZmVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZm
ZXJzb3VyY2UtbXVsdGktY2hhbm5lbHMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
YnVmZmVyc291cmNlLW11bHRpLWNoYW5uZWxzLmh0bWwKaW5kZXggYWU4MjhmMzczODQ4ZWZiMjc3
MTFkZjMwZmMxZDZhNDJiMmZiODFjMS4uN2I4NTNmN2UzNWI0NjFjMThmODM1YTAwYTVhMTMxOTBm
ZjcwODFhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3Vy
Y2UtbXVsdGktY2hhbm5lbHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1
ZmZlcnNvdXJjZS1tdWx0aS1jaGFubmVscy5odG1sCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CiAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0CiAgICAg
dmFyIHNhbXBsZVJhdGUgPSA0NDEwMC4wOwotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1
ZGlvQ29udGV4dCg2LCBzYW1wbGVSYXRlICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUp
OworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoNiwgc2Ft
cGxlUmF0ZSAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1
ZmZlciA9IGNyZWF0ZVRvbmVCdWZmZXIoY29udGV4dCwgNDQwLCB0b25lTGVuZ3RoU2Vjb25kcywg
Nik7IAogCiAgICAgdmFyIHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFj
a1N0YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5
YmFja1N0YXRlLmh0bWwKaW5kZXggYzMyZjk5NmY0Nzk3NTc1OTlkOWM5ODdhYTQwMGI4MjRkODcw
OTI3Mi4uZDJjM2UxNDEyMjRjMzI3ZTMxYzc0ZWI4NmFhNWM5YzdjZjEzNmNhYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tTdGF0ZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNlLXBsYXliYWNr
U3RhdGUuaHRtbApAQCAtMTA1LDcgKzEwNSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlv
IGNvbnRleHQsIHJlbmRlcmluZyBmb3IgcmVuZGVyVGltZSBzZWNvbmRzLgotICAgIGNvbnRleHQg
PSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHRpbWVUb1NhbXBsZUZyYW1lKHJlbmRlclRpbWUs
IHNhbXBsZVJhdGUpLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxp
bmVBdWRpb0NvbnRleHQoMiwgdGltZVRvU2FtcGxlRnJhbWUocmVuZGVyVGltZSwgc2FtcGxlUmF0
ZSksIHNhbXBsZVJhdGUpOwogCiAgICAgLy8gVGhpcyBpcyBvbmx5IHVzZWQgc28gd2UgY2FuIGFj
Y2VzcyB0aGUgcGxheWJhY2sgc3RhdGUgY29uc3RhbnRzLgogICAgIHZhciBidWZmZXJTb3VyY2Ug
PSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UtcGxheWJhY2tyYXRlLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUuaHRtbAppbmRleCAwZDRl
M2Q2YmRmMDBlNGFlOWJkMmU0NmQyMDc0Mjc1YThkZTQzMGFlLi4yY2FhMGZiM2ZmNjM0Nzg4M2Vk
ZjgzMmEyYWIzMTg4MWMxMWVkMzVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9h
dWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1wbGF5YmFja3JhdGUuaHRtbApAQCAtNzEsNyArNzEsNyBA
QCBmdW5jdGlvbiBpbml0KCkgewogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDcmVhdGUgb2Zm
bGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0
KDIsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIGNvbnRl
eHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogbGVuZ3Ro
SW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIENyZWF0ZSBhIHNpbmdsZSBjeWNsZSBv
ZiBhIHNpbmUgd2F2ZS4KICAgICAvLyBXZSdsbCBsb29wIHRoaXMgdG8gcGxheSBub3RlcyBvZiBh
IGdpdmVuIGR1cmF0aW9uLCBhdCBhIGdpdmVuIHBsYXliYWNrIHJhdGUuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS1zdGFydC5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2Utc3RhcnQuaHRtbAppbmRleCBiNjk3Yjdl
Mzk5NTczMzk4MzE3Y2NhN2VjYmQwYmMyODA0ZTdjZjk2Li44NTVkMDE5ZWE1YzgzNTZiN2E0MzU4
MDNmNDcwOWJjYWNlNzUzM2QzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b2J1ZmZlcnNvdXJjZS1zdGFydC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
YnVmZmVyc291cmNlLXN0YXJ0Lmh0bWwKQEAgLTgwLDcgKzgwLDcgQEAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAvLyBDcmVhdGUg
b2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlv
Q29udGV4dCgxLCB0b3RhbFJlbmRlckxlbmd0aEZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgdmFy
IGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCB0b3RhbFJlbmRlckxl
bmd0aEZyYW1lcywgc2FtcGxlUmF0ZSk7CiAgICAgYnVmZmVyID0gY3JlYXRlVGVzdEJ1ZmZlcihj
b250ZXh0LCBidWZmZXJGcmFtZUxlbmd0aCk7CiAKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRl
c3RzLmxlbmd0aDsgKytpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9i
dWZmZXJzb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvYnVmZmVyc291cmNl
Lmh0bWwKaW5kZXggYzAwZDdiMmU4MTg5N2NiMTJmMzA3M2FkMTlkNGI1OTg4MjY3Njg0ZC4uZGJl
MTA1NDhmYjRiOGY0YzBjODEwZWUxOGY2NDY3NjMyMDhmYjY3YSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9idWZmZXJzb3VyY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb2J1ZmZlcnNvdXJjZS5odG1sCkBAIC0yNCw3ICsyNCw3IEBAIGZ1bmN0aW9u
IGluaXQoKSB7CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxp
bmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgy
LCBzYW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0
ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aElu
U2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgCiAgICAgYnVmZmVyTG9hZGVyID0gbmV3IEJ1ZmZl
ckxvYWRlcigKICAgICAgICAgY29udGV4dCwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvY2hhbm5lbG1lcmdlci1zdGVyZW8uaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1ZGlvY2hhbm5lbG1lcmdlci1zdGVyZW8uaHRtbAppbmRleCBjNDY2YzY4MDY0NWVmMGVhMTM4
NWQzZjFmODhlYzY1OGUzZmZkYzM0Li40MTJmNTg3MDEwY2Q0Mjc4YWJhZTk2NGNjY2NhMWFiYzFl
OWNkOTlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb2NoYW5uZWxtZXJn
ZXItc3RlcmVvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsbWVy
Z2VyLXN0ZXJlby5odG1sCkBAIC03OCw3ICs3OCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAg
ICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUg
c3RlcmVvIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1
ZGlvQ29udGV4dCgyLCBsZW5ndGhJblNhbXBsZUZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgY29u
dGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIGxlbmd0aEluU2FtcGxlRnJh
bWVzLCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIENyZWF0ZSB0d28gbW9ubyBidWZmZXJzLCBvbmUg
aGF2aW5nIGFsbCAtMSB2YWx1ZXMsIHRoZSBvdGhlciBhbGwgKzEuCiAgICAgYnVmZmVyMSA9IGNy
ZWF0ZUJ1ZmZlcldpdGhEQ09mZnNldChsZW5ndGhJblNhbXBsZUZyYW1lcywgc2FtcGxlUmF0ZSwg
LTEpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9jaGFubmVsc3BsaXR0
ZXIuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvY2hhbm5lbHNwbGl0dGVyLmh0bWwK
aW5kZXggYWI2MmMwYmViMGZjZmU3ODFmMDVjMzA2YTkxNmRhMDM1NWRmNDM1MC4uYzdhNTE0M2Vh
M2Q4NjE4NDIxZDNhMTAzODUyNzU0NTVlZDNlZGI2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9jaGFubmVsc3BsaXR0ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9hdWRpb2NoYW5uZWxzcGxpdHRlci5odG1sCkBAIC04MSw3ICs4MSw3IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgLy8g
Q3JlYXRlIHN0ZXJlbyBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3
ZWJraXRBdWRpb0NvbnRleHQoMiwgbGVuZ3RoSW5TYW1wbGVGcmFtZXMsIHNhbXBsZVJhdGUpOwor
ICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBsZW5ndGhJblNh
bXBsZUZyYW1lcywgc2FtcGxlUmF0ZSk7CiAKICAgICB0cnkgewogICAgICAgICB2YXIgc3BsaXR0
ZXJub2RlID0gY29udGV4dC5jcmVhdGVDaGFubmVsU3BsaXR0ZXIoMCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb25vZGUtY29ubmVjdC1vcmRlci5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYXVkaW9ub2RlLWNvbm5lY3Qtb3JkZXIuaHRtbAppbmRleCBhYjRjNDAy
YzM1MDkxMTdjN2YwZTYzMWYzNzA3YzE4ZWVkMTBmNDAwLi4zZGZiMmYwMmY5MmY4ZmM3ZWEzZTUx
YWY1NDBiODQ0YWZkMjU2M2I3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRp
b25vZGUtY29ubmVjdC1vcmRlci5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
bm9kZS1jb25uZWN0LW9yZGVyLmh0bWwKQEAgLTQwLDcgKzQwLDcgQEAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8v
IENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Vi
a2l0QXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1w
bGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0
KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2
YXIgdG9uZUJ1ZmZlciA9IGNyZWF0ZVNpbldhdmVCdWZmZXIoY29udGV4dCwgcmVuZGVyTGVuZ3Ro
U2Vjb25kcywgODgwKTsKICAgICAKICAgICB2YXIgYnVmZmVyU291cmNlID0gY29udGV4dC5jcmVh
dGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2F1ZGlv
bm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb25vZGUtZXhwZWN0
ZWQudHh0CmluZGV4IDA1NDBmZTc0OTlmMDk4MjlhMzllOTYyOGVmMWRiOGJlMDBmYjk4ZGUuLjgz
NThjNzNhYjZmYzA2ZTBkZjBlNTM3ZGNmZDMwZWIzMWZmMzY2NmQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2F1ZGlvbm9kZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vYXVkaW9ub2RlLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDQgQEAKK0NPTlNPTEUg
TUVTU0FHRTogRGVwcmVjYXRlZCBBdWRpb0NvbnRleHQgY29uc3RydWN0b3I6IHVzZSBPZmZsaW5l
QXVkaW9Db250ZXh0IGluc3RlYWQKIEJhc2ljIHRlc3RzIGZvciBBdWRpb05vZGUgQVBJLgogCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb3BhcmFtLWNvbm5lY3QtYXVkaW9yYXRlc2lnbmFsLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9hdWRpb3BhcmFtLWNvbm5lY3QtYXVkaW9yYXRlc2lnbmFsLmh0bWwKaW5kZXggMTcz
YWM2ZmQ5OTFiMmUxNmZlZGQ2MmZmNmE2YjNhNDJhOGIzOTc0ZC4uMWMxYjNkMzA1MmIwMWY4OTlk
ODZhYWY4ZTc3NDZmNTYzMTJhYmUxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YXVkaW9wYXJhbS1jb25uZWN0LWF1ZGlvcmF0ZXNpZ25hbC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2F1ZGlvcGFyYW0tY29ubmVjdC1hdWRpb3JhdGVzaWduYWwuaHRtbApAQCAtNjks
NyArNjksNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHZhciBzYW1wbGVGcmFtZUxlbmd0
aCA9IHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHM7CiAKICAgICAvLyBDcmVhdGUgb2ZmbGlu
ZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEs
IHNhbXBsZUZyYW1lTGVuZ3RoLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtp
dE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlRnJhbWVMZW5ndGgsIHNhbXBsZVJhdGUpOwog
CiAgICAgLy8gQ3JlYXRlIGJ1ZmZlciB1c2VkIGJ5IHRoZSBzb3VyY2Ugd2hpY2ggd2lsbCBoYXZl
IGl0cyBnYWluIGNvbnRyb2xsZWQuCiAgICAgY29uc3RhbnRPbmVCdWZmZXIgPSBjcmVhdGVDb25z
dGFudEJ1ZmZlcihjb250ZXh0LCBzYW1wbGVGcmFtZUxlbmd0aCwgMSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9hdWRpb3BhcmFtLXN1bW1pbmdqdW5jdGlvbi5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYXVkaW9wYXJhbS1zdW1taW5nanVuY3Rpb24uaHRtbAppbmRleCA5
YzI2N2VmYTAxNThlNDNkODVkODVmYzBkNGY1MWU3NGYzYzVmNjY0Li5hODJiMjc1MmE2ZDFhNGJj
ZjFjOTI4YjZmZWQyNTUzMGU2OGJmZjkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9hdWRpb3BhcmFtLXN1bW1pbmdqdW5jdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL2F1ZGlvcGFyYW0tc3VtbWluZ2p1bmN0aW9uLmh0bWwKQEAgLTgyLDcgKzgyLDcgQEAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKICAgICB2YXIgc2FtcGxlRnJhbWVMZW5ndGggPSBzYW1wbGVSYXRl
ICogbGVuZ3RoSW5TZWNvbmRzOwogCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4
dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCBzYW1wbGVGcmFtZUxl
bmd0aCwgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9D
b250ZXh0KDEsIHNhbXBsZUZyYW1lTGVuZ3RoLCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIENyZWF0
ZSBidWZmZXIgdXNlZCBieSB0aGUgc291cmNlIHdoaWNoIHdpbGwgaGF2ZSBpdHMgZ2FpbiBjb250
cm9sbGVkLgogICAgIHZhciBjb25zdGFudE9uZUJ1ZmZlciA9IGNyZWF0ZUNvbnN0YW50QnVmZmVy
KGNvbnRleHQsIHNhbXBsZUZyYW1lTGVuZ3RoLCAxKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2F1dG9tYXRpYy1wdWxsLW5vZGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2F1dG9tYXRpYy1wdWxsLW5vZGUuaHRtbAppbmRleCBlMjczNzQ1NzBjN2Q0OWFhYzI5MmU3NTMy
NTAwMDAzMTdiNTZiY2I0Li40NDBjNzA2ZjA2ODM2MjYzMDBkODMwZDIxYmVkYzlkNWU3OGMyYmZh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9hdXRvbWF0aWMtcHVsbC1ub2RlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYXV0b21hdGljLXB1bGwtbm9kZS5odG1sCkBA
IC0zMCw3ICszMCw3IEBAIHZhciBhbmFseXNlcjsKIAogZnVuY3Rpb24gY29uc3RydWN0Q29tbW9u
R3JhcGgoKSB7CiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250
ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCByZW5kZXJMZW5ndGhJbkZyYW1lcywgc2Ft
cGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEs
IHJlbmRlckxlbmd0aEluRnJhbWVzLCBzYW1wbGVSYXRlKTsKICAgICBjb25zdGFudEJ1ZmZlciA9
IGNyZWF0ZUNvbnN0YW50QnVmZmVyKGNvbnRleHQsIHJlbmRlckxlbmd0aEluRnJhbWVzLCAxKTsK
IAogICAgIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtYWxscGFzcy5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWFsbHBhc3MuaHRtbAppbmRleCBlY2ZjYzk1ZGQyZDRlNjlj
MTVjYmUxZGViOWU4MWQyMjZkNjUxZTIwLi40MjM0NDZlOTJkY2JmMzM3OGY2MzRiZWIzMmQ0NjMx
ZGQ2M2RkMjliIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtYWxscGFz
cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1hbGxwYXNzLmh0bWwKQEAg
LTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRl
eHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJh
dGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9
IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5n
dGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIER1bW15IGZpbHRlciB0byBnZXQgZmls
dGVyIHR5cGUgY29uc3RhbnQKICAgICB2YXIgZiA9IGNvbnRleHQuY3JlYXRlQmlxdWFkRmlsdGVy
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtYmFuZHBhc3MuaHRt
bCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1iYW5kcGFzcy5odG1sCmluZGV4IDM0ZTI1
NjdiMjY0ZTE3Y2NkZWYxODZmY2Y5MDBhZmUxOTdjZWRjZmIuLjMyYzJjZTcyMTQ5NzYwYTNjODI0
NTQyODA0OTIxMmE0YWQ2ZmUyNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Jp
cXVhZC1iYW5kcGFzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1iYW5k
cGFzcy5odG1sCkBAIC0yNSw3ICsyNSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGlu
ZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4
dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAg
dmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRl
ICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBEdW1teSBmaWx0
ZXIgdG8gZ2V0IGZpbHRlciB0eXBlIGNvbnN0YW50CiAgICAgdmFyIGYgPSBjb250ZXh0LmNyZWF0
ZUJpcXVhZEZpbHRlcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFk
LWhpZ2hwYXNzLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtaGlnaHBhc3MuaHRt
bAppbmRleCA1NjczMGM1ZGY4N2RmOWNhMGRmMzhhYjY4YzVhYWI2MmJhMjIyNjA0Li5lYjYzMGM4
ZDk2MTY2MTRhZjk0MjY5MWNhNWJmZTZiYmUxYzcyZTA4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9iaXF1YWQtaGlnaHBhc3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9iaXF1YWQtaGlnaHBhc3MuaHRtbApAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiBydW5UZXN0
KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8g
Q3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJr
aXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBs
ZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQo
Miwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAg
Ly8gRHVtbXkgZmlsdGVyIHRvIGdldCBmaWx0ZXIgdHlwZSBjb25zdGFudAogICAgIHZhciBmID0g
Y29udGV4dC5jcmVhdGVCaXF1YWRGaWx0ZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2JpcXVhZC1oaWdoc2hlbGYuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVh
ZC1oaWdoc2hlbGYuaHRtbAppbmRleCBjZTI5YTQzNTNjZGY4OGU3NzhjNmNiOWFhYzIzOWUyNTZj
MWZhYmY0Li44ZjgzYjUwN2U2YmVjZGFlMmZhMDdmMmVmMzczZjdmNTA1MDQwZDcyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtaGlnaHNoZWxmLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWhpZ2hzaGVsZi5odG1sCkBAIC0yNSw3ICsyNSw3IEBA
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwog
ICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBj
b250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVu
Z3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2Zm
bGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2Ft
cGxlUmF0ZSk7CiAKICAgICAvLyBEdW1teSBmaWx0ZXIgdG8gZ2V0IGZpbHRlciB0eXBlIGNvbnN0
YW50CiAgICAgdmFyIGYgPSBjb250ZXh0LmNyZWF0ZUJpcXVhZEZpbHRlcigpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWxvd3Bhc3MuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2JpcXVhZC1sb3dwYXNzLmh0bWwKaW5kZXggOGQ1ZTRhOTgxNmMwNzUwNGQ0YzQ4
MDIxN2YyM2VmZjIyNGY1MTAzNC4uN2ViZGYwMTE3ZGQyMjU5ZmQ3NDgzNTQzYjY2ZjI5NjFjYzUx
ZDQ5OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWxvd3Bhc3MuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtbG93cGFzcy5odG1sCkBAIC0yNSw3
ICsyNSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0Lgot
ICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICog
cmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcg
d2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vj
b25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICAvLyBEdW1teSBmaWx0ZXIgdG8gZ2V0IGZpbHRlciB0
eXBlIGNvbnN0YW50CiAgICAgdmFyIGYgPSBjb250ZXh0LmNyZWF0ZUJpcXVhZEZpbHRlcigpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLWxvd3NoZWxmLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtbG93c2hlbGYuaHRtbAppbmRleCBjMGRmMWJjYjBi
NWM4ZmQxZTY2NWZjZDY3YjlkZWM2MDIwYWM4ZDcxLi4wM2IwN2Q1Y2FhYWI2MzYxYTZmYmIyNTMx
NTQ0ZjJhMTNkMmU4NjI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQt
bG93c2hlbGYuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtbG93c2hlbGYu
aHRtbApAQCAtMjUsNyArMjUsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVk
aW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwg
c2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBj
b250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJl
bmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgLy8gRHVtbXkgZmlsdGVyIHRv
IGdldCBmaWx0ZXIgdHlwZSBjb25zdGFudAogICAgIHZhciBmID0gY29udGV4dC5jcmVhdGVCaXF1
YWRGaWx0ZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVhZC1ub3Rj
aC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLW5vdGNoLmh0bWwKaW5kZXggNmM0
YTY3MjM2MzUxMTU3YmM3OTI0ZGVlNzNmYWNhZjY5ZjgxNjVkNy4uNTJkMmVjYTQ2YzY4Y2Y0ZWE3
NDI2OWRlNTk3M2YzZTFjNTYwMmExNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
YmlxdWFkLW5vdGNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLW5vdGNo
Lmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cu
anNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1
ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIs
IHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIg
Y29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiBy
ZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIER1bW15IGZpbHRlciB0
byBnZXQgZmlsdGVyIHR5cGUgY29uc3RhbnQKICAgICB2YXIgZiA9IGNvbnRleHQuY3JlYXRlQmlx
dWFkRmlsdGVyKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9iaXF1YWQtcGVh
a2luZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vYmlxdWFkLXBlYWtpbmcuaHRtbAppbmRl
eCA4NTE5YTY0ODE2ZWJlOGI5MDQ4YTVlNWNlN2VmNjM4ZTNmZjM5Y2EzLi5mYzQ2MGViM2IwNzU3
NTZlMDE4Yzc3MjNiNzQwOGY3ZDhiYTNlNGJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby9iaXF1YWQtcGVha2luZy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2JpcXVh
ZC1wZWFraW5nLmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBv
ZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9D
b250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsK
KyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBs
ZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIER1bW15
IGZpbHRlciB0byBnZXQgZmlsdGVyIHR5cGUgY29uc3RhbnQKICAgICB2YXIgZiA9IGNvbnRleHQu
Y3JlYXRlQmlxdWFkRmlsdGVyKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9j
b252b2x1dGlvbi1tb25vLW1vbm8uaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NvbnZvbHV0
aW9uLW1vbm8tbW9uby5odG1sCmluZGV4IDBmYjQyZDdhMWE4ZmFhMGUxMTFkMjQyN2E3ODU4ZGI5
MTk5YzUwZmYuLmJmNTdmMzgzZDU2YWQ2ODViMDY4NjBlYzJiNjMxMzRjMzgyMWFiNGYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NvbnZvbHV0aW9uLW1vbm8tbW9uby5odG1sCisr
KyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2NvbnZvbHV0aW9uLW1vbm8tbW9uby5odG1sCkBAIC0z
NSw3ICszNSw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5
bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0
LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRl
ICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBu
ZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3Ro
U2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAKICAgICB2YXIgc3F1YXJlUHVsc2UgPSBjcmVhdGVTcXVh
cmVQdWxzZUJ1ZmZlcihjb250ZXh0LCBwdWxzZUxlbmd0aEZyYW1lcyk7CiAgICAgdmFyIHRyaWFu
Z2xlUHVsc2UgPSBjcmVhdGVUcmlhbmdsZVB1bHNlQnVmZmVyKGNvbnRleHQsIDIgKiBwdWxzZUxl
bmd0aEZyYW1lcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUt
bWF4LWRlZmF1bHQtZGVsYXkuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1t
YXgtZGVmYXVsdC1kZWxheS5odG1sCmluZGV4IDZiY2MyNjBhYWJiNTJmMGQ2YWY2OWM5N2FiMDE3
MGNkZTg5OWQ5MmQuLjBmMGY4MTIwNzc5NWI1OTQ4NjcwMWI0YzUyYTYyNzg5NDNmYjA2NDYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXgtZGVmYXVsdC1kZWxh
eS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXgtZGVmYXVsdC1k
ZWxheS5odG1sCkBAIC0yNCw3ICsyNCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGlu
ZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4
dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAg
dmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRl
ICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIg
PSBjcmVhdGVUb25lQnVmZmVyKGNvbnRleHQsIDIwLCAyMCAqIHRvbmVMZW5ndGhTZWNvbmRzLCBz
YW1wbGVSYXRlKTsgLy8gMjBIeiB0b25lCiAgICAgCiAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNv
bnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby9kZWxheW5vZGUtbWF4LW5vbmRlZmF1bHQtZGVsYXkuaHRtbCBiL0xheW91dFRlc3RzL3dl
YmF1ZGlvL2RlbGF5bm9kZS1tYXgtbm9uZGVmYXVsdC1kZWxheS5odG1sCmluZGV4IDQxYWQxZTJh
NTk0YjEzNTQxOTdjNzRjYzNkNGNlMzBmYTcwZWM2MGMuLmUyODMzNTM4MjRkNTNmOGM5YTA0YTFl
NWE5MTU3ZDUxZmRhNGE0MTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5
bm9kZS1tYXgtbm9uZGVmYXVsdC1kZWxheS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2RlbGF5bm9kZS1tYXgtbm9uZGVmYXVsdC1kZWxheS5odG1sCkBAIC0yNCw3ICsyNCw3IEBAIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAg
ICAgICAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250
ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3Ro
U2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGlu
ZUF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxl
UmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVyKGNvbnRleHQsIDIw
LCAyMCAqIHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsgLy8gMjBIeiB0b25lCiAgICAg
CiAgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXkuaHRtbCBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXhkZWxheS5odG1sCmluZGV4IGUyN2M1
M2MxYWM3ZTkyMDdmYjNjMDA4ZTlmZTUzY2JiNGEwZjBhZTcuLjA4OTJkNGVjODY3YWNlYjFmOThj
MzhhOGJiNWZlNDE3Y2MzMTgwNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rl
bGF5bm9kZS1tYXhkZWxheS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9k
ZS1tYXhkZWxheS5odG1sCkBAIC0yNCw3ICsyNCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAg
ICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgICAgICAKICAgICAvLyBDcmVhdGUg
b2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlv
Q29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7
CisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBzYW1w
bGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVC
dWZmZXIgPSBjcmVhdGVUb25lQnVmZmVyKGNvbnRleHQsIDIwLCAyMCAqIHRvbmVMZW5ndGhTZWNv
bmRzLCBzYW1wbGVSYXRlKTsgLy8gMjBIeiB0b25lCiAgICAgCiAgICAgdmFyIGJ1ZmZlclNvdXJj
ZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4ZGVsYXlsaW1pdC5odG1sIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vZGVsYXlub2RlLW1heGRlbGF5bGltaXQuaHRtbAppbmRleCA1MmU1ZWIyNjkzNjIyYzk2
ZDgwMDA3MTZjYjA4YTRlZjRhNjYzODU1Li5mYjIwNmE2Mjk3MWRiOTViZjBkZjY0MWZjNzM1NGYy
OGYxYWIyNjMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUtbWF4
ZGVsYXlsaW1pdC5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1tYXhk
ZWxheWxpbWl0Lmh0bWwKQEAgLTI0LDcgKzI0LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0ZSBv
ZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9D
b250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsK
KyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIHNhbXBs
ZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1
ZmZlciA9IGNyZWF0ZVRvbmVCdWZmZXIoY29udGV4dCwgMjAsIDIwICogdG9uZUxlbmd0aFNlY29u
ZHMsIHNhbXBsZVJhdGUpOyAvLyAyMEh6IHRvbmUKICAgICAKICAgICB2YXIgYnVmZmVyU291cmNl
ID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2RlbGF5bm9kZS1zY2hlZHVsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRp
by9kZWxheW5vZGUtc2NoZWR1bGluZy5odG1sCmluZGV4IDE0ZGZiZDI2ZTk4ZDNkNGYxYTM5Nzhj
Y2UwNWQxMzcwMzQ1ZjRlZTEuLmRmYWY3ZDkwOGRiYTViNGQ0M2NjZmQzZTFkYjNiZTNjMDMwZmI0
Y2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RlbGF5bm9kZS1zY2hlZHVsaW5n
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVsYXlub2RlLXNjaGVkdWxpbmcuaHRt
bApAQCAtMjQsNyArMjQsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8g
Y29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgc2Ft
cGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250
ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRl
ckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRl
VG9uZUJ1ZmZlcihjb250ZXh0LCAyMCwgMjAgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0
ZSk7IC8vIDIwSHogdG9uZQogICAgIAogICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNy
ZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGVs
YXlub2RlLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUuaHRtbAppbmRleCA0
MDM4NTU4ZThmYzc0NDI1OWQxMDEyZmExMmM5Mzg1NDJjY2I2MjYwLi44N2M0N2U3MmQ5NjBlZjRi
NzFkMjI0NzNmMzk4YjZiYWMzYTJmOTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9kZWxheW5vZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kZWxheW5vZGUuaHRt
bApAQCAtMjQsNyArMjQsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8g
Y29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgc2Ft
cGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250
ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRl
ckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgIHZhciB0b25lQnVmZmVyID0gY3JlYXRl
VG9uZUJ1ZmZlcihjb250ZXh0LCAyMCwgMjAgKiB0b25lTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0
ZSk7IC8vIDIwSHogdG9uZQogICAgIAogICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNy
ZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlz
dGFuY2UtZXhwb25lbnRpYWwuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWV4
cG9uZW50aWFsLmh0bWwKaW5kZXggYzA1OWQxNTdiN2NkYmE4NmVkYjQ0ZTgxNDFkNjQzZDUyODY1
ZDExZi4uZmEwZjk5MTA1NmUyYzJmMGUzOGMyMDc1ZmU0NzUzOTVmYjkyMzAwNSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtZXhwb25lbnRpYWwuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9kaXN0YW5jZS1leHBvbmVudGlhbC5odG1sCkBAIC0yMyw3ICsy
Myw3IEBACiAgICAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAg
ICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICAgICAgICBjb250ZXh0ID0g
bmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyTGVuZ3RoU2Vjb25k
cywgc2FtcGxlUmF0ZSk7CisgICAgICAgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVk
aW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRl
KTsKIAogICAgICAgICAgIC8vIFRlbXAgcGFubmVyIG5vZGUgc28gd2UgY2FuIGdldCB0aGUgRVhQ
T05FTlRJQUxfRElTVEFOQ0UgdmFsdWUuCiAgICAgICAgICAgdmFyIHRlbXBQYW5uZXIgPSBjb250
ZXh0LmNyZWF0ZVBhbm5lcigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlz
dGFuY2UtaW52ZXJzZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtaW52ZXJz
ZS5odG1sCmluZGV4IDZiNDQ0OGQwMDViNjdlOTc4ZmVmNjI0NmE4ZTIzNzBjODVhOTEyMTAuLmM1
NGU3MzhlZDRmN2ZhOTZkZjNhMDA4ZmIxMjRlYzFhMTY3ODc1YWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWludmVyc2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9kaXN0YW5jZS1pbnZlcnNlLmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAKICAgICAgICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAgICAgICAgICAvLyBDcmVhdGUgb2Zm
bGluZSBhdWRpbyBjb250ZXh0LgotICAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9D
b250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsK
KyAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2Ft
cGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgICAgICAg
Ly8gVGVtcCBwYW5uZXIgbm9kZSBzbyB3ZSBjYW4gZ2V0IHRoZSBJTlZFUlNFX0RJU1RBTkNFIHZh
bHVlLgogICAgICAgICAgIHZhciB0ZW1wUGFubmVyID0gY29udGV4dC5jcmVhdGVQYW5uZXIoKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2Rpc3RhbmNlLWxpbmVhci5odG1sIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtbGluZWFyLmh0bWwKaW5kZXggZjQzNTI2MjU0
YWIzOWYzY2Y1Y2FlN2M1NGIzYjExMWI2NTIwNWEzMS4uZTg4OWEzOTNkNzM1MjJiNWQ3MDg1OGJk
YzUwNDllODVkMDVjNmZjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFu
Y2UtbGluZWFyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZGlzdGFuY2UtbGluZWFy
Lmh0bWwKQEAgLTIzLDcgKzIzLDcgQEAKICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CiAKICAgICAgICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAg
ICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiBy
ZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgICBjb250ZXh0ID0gbmV3
IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNl
Y29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgICAgICAgLy8gQ3JlYXRlIHRlbXAgcGFubmVyIHRv
IGdldCBMSU5FQVJfRElTVEFOQ0UgdmFsdWUgZm9yIHRlc3RpbmcuCiAgICAgICAgICAgdmFyIHBh
bm5lck1vZGVsID0gY29udGV4dC5jcmVhdGVQYW5uZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL2dhaW4uaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2dhaW4uaHRtbApp
bmRleCAxZmYxYmE2OGE3YmQxZThjMzQxODg2NjJkMGY3MTQ3NmZmZDM2MWMwLi4zODZiM2UwN2E1
MWZmOTM0YTVjNjZlM2Q0ZTYwMjYyYjg5MzA0YjY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9nYWluLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZ2Fpbi5odG1sCkBA
IC01OSw3ICs1OSw3IEBAIGZ1bmN0aW9uIGluaXQoKSB7CiAgICAgICAgIHJldHVybjsKIAogICAg
IC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJr
aXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0
ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBs
ZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOwogCiAgICAgLy8gQ3JlYXRlIGEg
YnVmZmVyIGZvciBhIHNob3J0ICJub3RlIi4KICAgICBzaW5XYXZlQnVmZmVyID0gY3JlYXRlU2lu
V2F2ZUJ1ZmZlcihidWZmZXJEdXJhdGlvblNlY29uZHMsIDg4MC4wKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUtemVyby1pbnB1dC1jaGFubmVs
cy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vamF2YXNjcmlwdGF1ZGlvbm9kZS16ZXJvLWlu
cHV0LWNoYW5uZWxzLmh0bWwKaW5kZXggNjM4ZTVhZDBlMzc1NTI1MDIyNzM0NzBiZjg2NDdjMWM1
ZGRjOTJkMy4uN2I0NzRjYjQ0YTk5MWJhODBiMzg5NzZlMTYwYzc2NWVkODc3MDIzMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vamF2YXNjcmlwdGF1ZGlvbm9kZS16ZXJvLWlucHV0
LWNoYW5uZWxzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vamF2YXNjcmlwdGF1ZGlv
bm9kZS16ZXJvLWlucHV0LWNoYW5uZWxzLmh0bWwKQEAgLTMzLDcgKzMzLDcgQEAgZnVuY3Rpb24g
cnVuVGVzdCgpCiAKICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKLSAgICB2YXIg
Y29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgcmVuZGVyTGVuZ3RoSW5GcmFtZXMs
IHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0Nv
bnRleHQoMSwgcmVuZGVyTGVuZ3RoSW5GcmFtZXMsIHNhbXBsZVJhdGUpOwogCiAgICAgdmFyIG5v
ZGU7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25v
ZGUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2phdmFzY3JpcHRhdWRpb25vZGUuaHRtbApp
bmRleCA4OGYwMWViMzE0YzdlMzI3ZDFhZjMzOTkxNDkxZjBjZTJlMGFiZDE3Li5hYjUyZWJjYmJi
ZTg0ZWI0YWUxMDU0ZTM3MGMxYjgzZmY1NjNjMzhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93
ZWJhdWRpby9qYXZhc2NyaXB0YXVkaW9ub2RlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vamF2YXNjcmlwdGF1ZGlvbm9kZS5odG1sCkBAIC04NCw3ICs4NCw3IEBAIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CiAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgLy8gQ3Jl
YXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlv
Q29udGV4dCgyLCByZW5kZXJMZW5ndGhJbkZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4
dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHJlbmRlckxlbmd0aEluRnJhbWVz
LCBzYW1wbGVSYXRlKTsKIAogICAgIHRyeSB7CiAgICAgICAgIHZhciBqc25vZGUgPSBjb250ZXh0
LmNyZWF0ZVNjcmlwdFByb2Nlc3Nvcig1MTIsIDAsIDApOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vbWVkaWFlbGVtZW50YXVkaW9zb3VyY2Vub2RlLWdjLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRtbAppbmRleCA4
MzBhYmIzODRmYjI4ZTlhMzFkNWFlMGNlZWUwZTZjZjFiMmJmZWYxLi5hY2E1MzliZmIxZWExODhj
ODhhNGIwZjU5ZTY0ZjdhZTZiNzFiYjNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRp
by9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9tZWRpYWVsZW1lbnRhdWRpb3NvdXJjZW5vZGUtZ2MuaHRtbApAQCAtMTksNyArMTks
NyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIH0KIAogICAgIGF1ZGlvRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImF1ZGlvIik7Ci0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRB
dWRpb0NvbnRleHQoMSwgMTAwMCwgNDQxMDApOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2Zm
bGluZUF1ZGlvQ29udGV4dCgxLCAxMDAwLCA0NDEwMCk7CiAgICAgc291cmNlID0gY29udGV4dC5j
cmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UoYXVkaW9FbGVtZW50KTsKICAgICBhdWRpb0VsZW1lbnQg
PSBudWxsOwogICAgIGNvbnRleHQgPSBudWxsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vbWl4aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9taXhpbmcuaHRtbAppbmRl
eCAzZjY4MTQ5ZjQyN2Q4YzhkYzc4MDgwMzljYjk5MDQ1ZTdjNWQzYjI5Li4xMGI3NjNlOTZjM2Vl
ZjFmNWZhZmQ3NzhlOTQyNDA5MzBmNDkxYWIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby9taXhpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9taXhpbmcuaHRtbApA
QCAtMjgsNyArMjgsNyBAQCBmdW5jdGlvbiBpbml0KCkgewogICAgICAgICByZXR1cm47CiAgICAg
ICAgIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9
IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywg
c2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0
KDIsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgICAgICAK
ICAgICBidWZmZXJMb2FkZXIgPSBuZXcgQnVmZmVyTG9hZGVyKAogICAgICAgICBjb250ZXh0LApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vbm90ZS1ncmFpbi1vbi1wbGF5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9ub3RlLWdyYWluLW9uLXBsYXkuaHRtbAppbmRleCBiNWQ1
OTY1YmQ3ODMwZWQ0ZTEzZDY0NmY5N2E1Y2ZkZDc3YjA4NjNiLi44YmRiOTEwMGNmMWI5YWZlYzQ3
Yzc5NmFmNWQyNzkwNDFlZmFmNzAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9u
b3RlLWdyYWluLW9uLXBsYXkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9ub3RlLWdy
YWluLW9uLXBsYXkuaHRtbApAQCAtMTA3LDcgKzEwNyw3IEBACiAgICAgICAgICAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOwogCiAgICAgICAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8g
Y29udGV4dC4KLSAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBz
YW1wbGVSYXRlICogcmVuZGVyVGltZSwgc2FtcGxlUmF0ZSk7CisgICAgICAgICAgY29udGV4dCA9
IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJUaW1l
LCBzYW1wbGVSYXRlKTsKIAogICAgICAgICAgIC8vIENyZWF0ZSBhIGxpbmVhciByYW1wIGZvciB0
ZXN0aW5nIG5vdGVHcmFpbk9uLgogICAgICAgICAgIGxpbmVhclJhbXBCdWZmZXIgPSBjcmVhdGVT
aWduYWxCdWZmZXIoY29udGV4dCwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL25v
dGUtZ3JhaW4tb24tdGltaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9ub3RlLWdyYWlu
LW9uLXRpbWluZy5odG1sCmluZGV4IDEzNmI0YTIxZWMwOTFkYmJjZDE1ZjMzNjBmNWQ0OWI1NGVi
MzIzYmQuLjRlNWNjYjE2NmY2YTkwMTBjY2FhODk2MjQwNGFhNzg1ZWNmMzdjYzQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL25vdGUtZ3JhaW4tb24tdGltaW5nLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vbm90ZS1ncmFpbi1vbi10aW1pbmcuaHRtbApAQCAtNDQsNyAr
NDQsNyBAQAogICAgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAgICAg
ICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgICAgICAgY29udGV4dCA9
IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlclRpbWUsIHNhbXBs
ZVJhdGUpOworICAgICAgICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4
dCgyLCBzYW1wbGVSYXRlICogcmVuZGVyVGltZSwgc2FtcGxlUmF0ZSk7CiAKICAgICAgICAgICBz
cXVhcmVQdWxzZUJ1ZmZlciA9IGNyZWF0ZVNpZ25hbEJ1ZmZlcihjb250ZXh0LCBmdW5jdGlvbiAo
aykgeyByZXR1cm4gMSB9KTsgICAgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlv
L29zY2lsbGF0b3ItYmFzaWMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL29zY2lsbGF0b3It
YmFzaWMuaHRtbAppbmRleCBkMzk4OWViZmQyZTc1ODk0NTdkNzUyZjhhODZjNTAxOTE4YmUwOWM3
Li40NGViOGY2MTVmN2JhNjgxN2IwYjdiOThkYTU5OWY5MThiZDhiZWQyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9vc2NpbGxhdG9yLWJhc2ljLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXVkaW8vb3NjaWxsYXRvci1iYXNpYy5odG1sCkBAIC0zNiw3ICszNiw3IEBAIGZ1bmN0
aW9uIHJ1blRlc3QoKQogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAg
CiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICB2YXIgY29udGV4dCA9
IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29u
ZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRp
b0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUp
OwogICAgIHZhciBvc2MgPSBjb250ZXh0LmNyZWF0ZU9zY2lsbGF0b3IoKTsKIAogICAgIC8vIFNl
dCBlYWNoIHBvc3NpYmxlIG9zY2lsbGF0b3IgdHlwZSAoZXhjZXB0IENVU1RPTSkgYW5kIHZlcmlm
eSB0aGF0IHRoZSB0eXBlIGlzIGNvcnJlY3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJh
dWRpby9wYW5uZXItZXF1YWxwb3dlci1zdGVyZW8uaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L3Bhbm5lci1lcXVhbHBvd2VyLXN0ZXJlby5odG1sCmluZGV4IDMxNjZjZGRhOGJkNzM4YmM0NDI0
Y2Y3NTUwZDViZjNkMzU2NDFjZjEuLjE4MDU0ZmRjMmJhMWIzMWVlYzE5YjdiNDMxMWVjZjM5NDJi
MThhMWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBvd2Vy
LXN0ZXJlby5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBvd2Vy
LXN0ZXJlby5odG1sCkBAIC0yOSw3ICsyOSw3IEBACiAgICAgICAgICAgd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOwogCiAgICAgICAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4
dC4KLSAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBzYW1wbGVS
YXRlICogcmVuZGVyTGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAgICAgICAgY29udGV4
dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJM
ZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKIAogICAgICAgICAgIGNyZWF0ZVRlc3RBbmRSdW4o
Y29udGV4dCwgbm9kZXNUb0NyZWF0ZSwgMik7CiAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vcGFubmVyLWVxdWFscG93ZXIuaHRtbAppbmRleCBlZWMwZGRkOTYxMDQ3NjE2NDU3ZWVjMWJl
YTNhYjczMDNlYmY2NGJlLi4xODkwNDZhMDQxYzFlZDdmYjRhZTQyMDU5YmYxZjViOGQzN2FkNThk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXItZXF1YWxwb3dlci5odG1s
CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lci1lcXVhbHBvd2VyLmh0bWwKQEAgLTI5
LDcgKzI5LDcgQEAKICAgICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAKICAg
ICAgICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgICAgICAgIGNvbnRl
eHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhT
ZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICAgICAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxp
bmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBs
ZVJhdGUpOwogCiAgICAgICAgICAgY3JlYXRlVGVzdEFuZFJ1bihjb250ZXh0LCBub2Rlc1RvQ3Jl
YXRlLCAxKTsKICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3JlYWx0
aW1lYW5hbHlzZXItZmZ0LXNpemluZy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVhbHRp
bWVhbmFseXNlci1mZnQtc2l6aW5nLmh0bWwKaW5kZXggOTBjODkzOGI0YzVjYzE1ZjEyNWM1MjY5
YjJlYmE1Y2RlYWE1MmVkNC4uYzVhZTJhYTA1OTY4YzE0MzNhNjhiMDFlYWQ3MzViMDZkNWFiZTFl
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1mZnQt
c2l6aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVhbHRpbWVhbmFseXNlci1m
ZnQtc2l6aW5nLmh0bWwKQEAgLTE5LDcgKzE5LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CiB9CiAKIHZhciBkb1Rlc3QgPSBmdW5jdGlvbihmZnRTaXplLCBpbGxlZ2FsKSB7Ci0gICAgdmFy
IGMgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIDEwMDAsIDQ0MTAwKTsKKyAgICB2YXIgYyA9
IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIDEwMDAsIDQ0MTAwKTsKICAgICB2YXIg
YSA9IGMuY3JlYXRlQW5hbHlzZXIoKTsKICAgICB0cnkgewogICAgICAgICBhLmZmdFNpemUgPSBm
ZnRTaXplOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlv
LWNvZGVjLXRlc3QuanMgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW8tY29k
ZWMtdGVzdC5qcwppbmRleCBlMTMwNWI2MmJhNDJmMDVmMTRiOThlOTQ4Y2YwZTlmYjlkNjk1YzYz
Li5lNDE0OGFhZTNmYjAyNjJjYjlmOGJlNGUyZGQxNjY5OWVjYjgwZTY0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW8tY29kZWMtdGVzdC5qcworKysgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW8tY29kZWMtdGVzdC5qcwpAQCAtMTQs
NyArMTQsNyBAQCBmdW5jdGlvbiBydW5EZWNvZGluZ1Rlc3QodXJsLCBvcHRpb25hbFNhbXBsZVJh
dGUpCiAgICAgdmFyIHNhbXBsZVJhdGUgPSAodHlwZW9mIG9wdGlvbmFsU2FtcGxlUmF0ZSA9PT0g
InVuZGVmaW5lZCIpID8gZGVmYXVsdFNhbXBsZVJhdGUgOiBvcHRpb25hbFNhbXBsZVJhdGU7CiAK
ICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgotICAgIGNvbnRleHQgPSBuZXcg
d2Via2l0QXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiBsZW5ndGhJblNlY29uZHMsIHNhbXBs
ZVJhdGUpOworICAgIGNvbnRleHQgPSBuZXcgd2Via2l0T2ZmbGluZUF1ZGlvQ29udGV4dCgxLCBz
YW1wbGVSYXRlICogbGVuZ3RoSW5TZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICAKICAgICBidWZm
ZXJMb2FkZXIgPSBuZXcgQnVmZmVyTG9hZGVyKAogICAgICAgICBjb250ZXh0LApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5qcyBi
L0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9hdWRpb3BhcmFtLXRlc3RpbmcuanMKaW5k
ZXggYTU5ZjY3ZDg1NGYyYjAyZmQxMmQ0ZGJjOWRjZTIzNWYyYzE1NzE4OS4uMzRjZDBkMDczNWEy
NzRmMzRlOTRkNTZkYjI3NjlmYzU3NGIxNTRhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vcmVzb3VyY2VzL2F1ZGlvcGFyYW0tdGVzdGluZy5qcworKysgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby9yZXNvdXJjZXMvYXVkaW9wYXJhbS10ZXN0aW5nLmpzCkBAIC00MDUsNyArNDA1LDcg
QEAgZnVuY3Rpb24gY3JlYXRlQXVkaW9HcmFwaEFuZFRlc3QobnVtYmVyT2ZUZXN0cywgaW5pdGlh
bFZhbHVlLCBzZXRWYWx1ZUZ1bmN0aW9uLAogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKIAogICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9
IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMiwgcmVuZGVyTGVuZ3RoKG51bWJlck9mVGVzdHMpLCBz
YW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQo
MiwgcmVuZGVyTGVuZ3RoKG51bWJlck9mVGVzdHMpLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgY29u
c3RhbnRCdWZmZXIgPSBjcmVhdGVDb25zdGFudEJ1ZmZlcihjb250ZXh0LCAxLCByZW5kZXJMZW5n
dGgobnVtYmVyT2ZUZXN0cykpOwogCiAgICAgLy8gV2UgdXNlIGFuIEF1ZGlvR2Fpbk5vZGUgaGVy
ZSBzaW1wbHkgYXMgYSBjb252ZW5pZW50IHdheSB0byB0ZXN0IHRoZSBBdWRpb1BhcmFtCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvamF2YXNjcmlwdGF1ZGlvbm9k
ZS10ZXN0aW5nLmpzIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcmVzb3VyY2VzL2phdmFzY3JpcHRh
dWRpb25vZGUtdGVzdGluZy5qcwppbmRleCAxMTk3ODQ4OThhZmUwZWNiNjMyZDMwYmE4OTI3NTlh
MDA5YzNiNTQ4Li4wNDU0MjExMGU2N2Q4NzM3ZmRjMDk1MTk1MGEyM2IzMmE4MWY2ZWI3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9yZXNvdXJjZXMvamF2YXNjcmlwdGF1ZGlvbm9k
ZS10ZXN0aW5nLmpzCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Jlc291cmNlcy9qYXZhc2Ny
aXB0YXVkaW9ub2RlLXRlc3RpbmcuanMKQEAgLTY1LDcgKzY1LDcgQEAgZnVuY3Rpb24gY2hlY2tT
dGVyZW9Pbmx5RGF0YShidWZmZXIsIG51bWJlck9mQ2hhbm5lbHMsIGxlbmd0aCkgewogZnVuY3Rp
b24gcnVuSlNOb2RlVGVzdCgpCiB7CiAgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4
dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCByZW5kZXJMZW5ndGhJ
bkZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVk
aW9Db250ZXh0KDIsIHJlbmRlckxlbmd0aEluRnJhbWVzLCBzYW1wbGVSYXRlKTsKIAogICAgIHZh
ciBzb3VyY2VCdWZmZXIgPSBjcmVhdGVCdWZmZXIoY29udGV4dCwgc291cmNlQ2hhbm5lbHMsIHJl
bmRlckxlbmd0aEluRnJhbWVzKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
c2FtcGxlLWFjY3VyYXRlLXNjaGVkdWxpbmcuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Nh
bXBsZS1hY2N1cmF0ZS1zY2hlZHVsaW5nLmh0bWwKaW5kZXggNmQ2N2Q3MDdhZDFiNTk3MTg0MWRl
ZGMyYTc5NmI5YjY2NzZmMWJmNi4uNTEwYjFmZjc5MGJmMzYxZjA2MzVjZDFmNGE4NDc2ODViOGRi
N2Y2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vc2FtcGxlLWFjY3VyYXRlLXNj
aGVkdWxpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9zYW1wbGUtYWNjdXJhdGUt
c2NoZWR1bGluZy5odG1sCkBAIC0xMTMsNyArMTEzLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
ICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgICAgIAogICAgIC8vIENyZWF0
ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0Nv
bnRleHQoMiwgc2FtcGxlUmF0ZSAqIGxlbmd0aEluU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisgICAg
Y29udGV4dCA9IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDIsIHNhbXBsZVJhdGUgKiBs
ZW5ndGhJblNlY29uZHMsIHNhbXBsZVJhdGUpOwogICAgIGNyZWF0ZUltcHVsc2UoKTsgICAgCiAK
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNhbXBsZU9mZnNldHMubGVuZ3RoOyArK2kpIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9zdGVyZW8ybW9uby1kb3duLW1peGluZy5odG1sCmlu
ZGV4IGY0NjU1NzBiMTJiYzdjZTQwMDFhMzQ0MzVhZTFjNDIzNmMzMzNkNGIuLjE3ZTk3ZTkzMGMy
MmM3MmU0M2IxOTU1ZGY0NDg1YzllMDhmZDFmZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL3N0ZXJlbzJtb25vLWRvd24tbWl4aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vc3RlcmVvMm1vbm8tZG93bi1taXhpbmcuaHRtbApAQCAtNTAsNyArNTAsNyBAQCBmdW5j
dGlvbiBydW5UZXN0KCkgewogICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAogICAg
IC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQsIHRoZSBkZXN0aW5hdGlvbiBpcyBtb25v
LgotICAgIGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiBy
ZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICBjb250ZXh0ID0gbmV3IHdlYmtp
dE9mZmxpbmVBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMs
IHNhbXBsZVJhdGUpOwogICAgIC8vIENyZWF0ZSBhIHN0ZXJlbyBBdWRpb0J1ZmZlci4KICAgICB0
b25lQnVmZmVyID0gY3JlYXRlRGF0YUJ1ZmZlcihjb250ZXh0LCByZW5kZXJMZW5ndGhTZWNvbmRz
KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLW1vbm8tNTEu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1tb25vLTUxLmh0bWwKaW5kZXgg
YTU3NDUxZjhlZmQyZmQyOWE0MzU2NzA4ZmYzYWU4YjhkN2I1ZGQ2ZC4uZWI1NTA4NzAwZGNiMGUw
ZmE1NzU3MTg4NjE5NjZkZjA4YzY5MGY5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVk
aW8vdXAtbWl4aW5nLW1vbm8tNTEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby91cC1t
aXhpbmctbW9uby01MS5odG1sCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
CiAKICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0CiAgICAgdmFyIHNhbXBsZVJh
dGUgPSA0NDEwMC4wOwotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCg2
LCBzYW1wbGVSYXRlICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBj
b250ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoNiwgc2FtcGxlUmF0ZSAqIHRv
bmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1ZmZlciA9IGNyZWF0
ZVRvbmVCdWZmZXIoY29udGV4dCwgNDQwLCB0b25lTGVuZ3RoU2Vjb25kcywgMSk7IAogCiAgICAg
dmFyIHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctbW9uby1zdGVyZW8uaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3VwLW1peGluZy1tb25vLXN0ZXJlby5odG1sCmluZGV4IDkzYzcxOTA5OGVh
ODU4MThkOTExMzY3ODMwZTk1YTU1ZTNhMTM3ODcuLjJmYzA3YmVjZGViZjZkOGEwYTM5Yjg0MDc4
NzMzODJhMzZjMTkwMzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGlu
Zy1tb25vLXN0ZXJlby5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1t
b25vLXN0ZXJlby5odG1sCkBAIC0yMyw3ICsyMyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAK
ICAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0CiAgICAgdmFyIHNhbXBsZVJhdGUg
PSA0NDEwMC4wOwotICAgIHZhciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgyLCBz
YW1wbGVSYXRlICogdG9uZUxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworICAgIHZhciBjb250
ZXh0ID0gbmV3IHdlYmtpdE9mZmxpbmVBdWRpb0NvbnRleHQoMiwgc2FtcGxlUmF0ZSAqIHRvbmVM
ZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKICAgICB2YXIgdG9uZUJ1ZmZlciA9IGNyZWF0ZVRv
bmVCdWZmZXIoY29udGV4dCwgNDQwLCB0b25lTGVuZ3RoU2Vjb25kcywgMSk7IAogCiAgICAgdmFy
IHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJhdWRpby91cC1taXhpbmctc3RlcmVvLTUxLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJhdWRpby91cC1taXhpbmctc3RlcmVvLTUxLmh0bWwKaW5kZXggMGJlNmVhOTI3Y2E0MmQ1ZjA1
NmMzOGMwZjNjMTFhMjI5YmY2MTkwMi4uOTMyMzQwMzRkZjk5ODIwMjIxYzQ2YTczY2EyY2JiMjk3
NDA2MTliNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdXAtbWl4aW5nLXN0ZXJl
by01MS5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VwLW1peGluZy1zdGVyZW8tNTEu
aHRtbApAQCAtMjMsNyArMjMsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogCiAgICAgLy8gQ3Jl
YXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dAogICAgIHZhciBzYW1wbGVSYXRlID0gNDQxMDAuMDsK
LSAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoNiwgc2FtcGxlUmF0ZSAq
IHRvbmVMZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgY29udGV4dCA9IG5ldyB3
ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDYsIHNhbXBsZVJhdGUgKiB0b25lTGVuZ3RoU2Vjb25k
cywgc2FtcGxlUmF0ZSk7CiAgICAgdmFyIHRvbmVCdWZmZXIgPSBjcmVhdGVUb25lQnVmZmVyKGNv
bnRleHQsIDQ0MCwgdG9uZUxlbmd0aFNlY29uZHMsIDIpOyAKIAogICAgIHZhciBzb3VyY2UgPSBj
b250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vd2F2ZXNoYXBlci5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vd2F2ZXNoYXBlci5o
dG1sCmluZGV4IDZjNTZhYjVjMTE1MDg1Y2VjZTNiYzhiMGUzODhkZWQ1NDFjZTIzMTQuLjIyYTU5
NTUxMDZkYjU2NjI3ZGRiODY2NzQwYzJkMmYyNWJkNmMwNzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3dhdmVzaGFwZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby93
YXZlc2hhcGVyLmh0bWwKQEAgLTEwNyw3ICsxMDcsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewog
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICAgICAgCiAgICAgLy8gQ3JlYXRl
IG9mZmxpbmUgYXVkaW8gY29udGV4dC4KLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29u
dGV4dCgxLCBudW1iZXJPZlJlbmRlckZyYW1lcywgc2FtcGxlUmF0ZSk7CisgICAgY29udGV4dCA9
IG5ldyB3ZWJraXRPZmZsaW5lQXVkaW9Db250ZXh0KDEsIG51bWJlck9mUmVuZGVyRnJhbWVzLCBz
YW1wbGVSYXRlKTsKICAgICAKICAgICAvLyBzb3VyY2UgLT4gd2F2ZXNoYXBlciAtPiBkZXN0aW5h
dGlvbgogICAgIHZhciBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>