<?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>219663</bug_id>
          
          <creation_ts>2020-12-08 18:41:04 -0800</creation_ts>
          <short_desc>Add a JSC API to allow acquiring the JSLock</short_desc>
          <delta_ts>2020-12-14 12:47:34 -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>JavaScriptCore</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tadeu Zagallo">tzagallo</reporter>
          <assigned_to name="Tadeu Zagallo">tzagallo</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>jbedard</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1712998</commentid>
    <comment_count>0</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-12-08 18:41:04 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713000</commentid>
    <comment_count>1</comment_count>
      <attachid>415700</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-12-08 19:13:52 -0800</bug_when>
    <thetext>Created attachment 415700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713004</commentid>
    <comment_count>2</comment_count>
      <attachid>415700</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-12-08 20:10:16 -0800</bug_when>
    <thetext>Comment on attachment 415700
Patch

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

&gt; Source/JavaScriptCore/API/JSLockRef.cpp:51
&gt; +JSLockRef JSLock(JSContextRef ctx)
&gt; +{
&gt; +    if (!ctx) {
&gt; +        ASSERT_NOT_REACHED();
&gt; +        return nullptr;
&gt; +    }
&gt; +    JSGlobalObject* globalObject = toJS(ctx);
&gt; +    return toRef(new JSLockHolder(globalObject));
&gt; +}
&gt; +
&gt; +void JSUnlock(JSLockRef ref)
&gt; +{
&gt; +    JSLockHolder* lock = toJS(ref);
&gt; +    if (!lock) {
&gt; +        ASSERT_NOT_REACHED();
&gt; +        return;
&gt; +    }
&gt; +    delete lock;
&gt; +}

Why are we mallocing an object for this? Let&apos;s just call lock()/unlock() on the JSLock, and return back the JSContextRef or something as the &quot;JSLockRef&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713012</commentid>
    <comment_count>3</comment_count>
      <attachid>415700</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-12-08 20:32:13 -0800</bug_when>
    <thetext>Comment on attachment 415700
Patch

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

&gt;&gt; Source/JavaScriptCore/API/JSLockRef.cpp:51
&gt;&gt; +}
&gt; 
&gt; Why are we mallocing an object for this? Let&apos;s just call lock()/unlock() on the JSLock, and return back the JSContextRef or something as the &quot;JSLockRef&quot;.

I agree: don&apos;t go through the JSLockHolder, just lock / unlock the JSLock directly.  There&apos;s also no added advantage in introducing a new JSLockRef abstraction.  It is better to make it clear that the lock is associated with the JSContextRef.  By passing that to JSLock() and JSUnlock(), the API would communicate that association, and avoid all kinds of confusions that may arise should the user used more than 1 JSContextRefs.

&gt; Source/JavaScriptCore/API/JSLockRefPrivate.h:38
&gt; +JS_EXPORT JSLockRef JSLock(JSContextRef);
&gt; +
&gt; +JS_EXPORT void JSUnlock(JSLockRef);

It&apos;s a pity that we can&apos;t use C++ and implement this as an RAII object.  Anyway, I don&apos;t see JSUnlock() used in any of your benchmarks.  It may not matter in terms of the benchmark results, but can you call JSUnlock() in the right places just so it documents the right thing to do?  I can see these benchmarks being consulted as examples of &quot;best practices&quot; in the future, and it would be good to be complete in the example.

&gt; PerformanceTests/APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC/richards.c:348
&gt; +        JSLock(ctx);

Why is the locking done after the work is finished?  Why is it not done right after creating the context?

&gt; PerformanceTests/APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/WorkerTask.m:55
&gt; +        JSLock(context.JSGlobalContextRef);

Why is this doing the locking after the script has been evaluated?  Why not right after the context is created?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713144</commentid>
    <comment_count>4</comment_count>
      <attachid>415700</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-12-09 07:57:14 -0800</bug_when>
    <thetext>Comment on attachment 415700
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/API/JSLockRef.cpp:51
&gt;&gt;&gt; +}
&gt;&gt; 
&gt;&gt; Why are we mallocing an object for this? Let&apos;s just call lock()/unlock() on the JSLock, and return back the JSContextRef or something as the &quot;JSLockRef&quot;.
&gt; 
&gt; I agree: don&apos;t go through the JSLockHolder, just lock / unlock the JSLock directly.  There&apos;s also no added advantage in introducing a new JSLockRef abstraction.  It is better to make it clear that the lock is associated with the JSContextRef.  By passing that to JSLock() and JSUnlock(), the API would communicate that association, and avoid all kinds of confusions that may arise should the user used more than 1 JSContextRefs.

Agreed it&apos;s nicer, I&apos;ll update it.

&gt;&gt; Source/JavaScriptCore/API/JSLockRefPrivate.h:38
&gt;&gt; +JS_EXPORT void JSUnlock(JSLockRef);
&gt; 
&gt; It&apos;s a pity that we can&apos;t use C++ and implement this as an RAII object.  Anyway, I don&apos;t see JSUnlock() used in any of your benchmarks.  It may not matter in terms of the benchmark results, but can you call JSUnlock() in the right places just so it documents the right thing to do?  I can see these benchmarks being consulted as examples of &quot;best practices&quot; in the future, and it would be good to be complete in the example.

The problem is that there&apos;s no right place to call JSUnlock in these benchmarks since the context is stored in a static variable that&apos;s never released.

&gt;&gt; PerformanceTests/APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC/richards.c:348
&gt;&gt; +        JSLock(ctx);
&gt; 
&gt; Why is the locking done after the work is finished?  Why is it not done right after creating the context?

Same thing here, I moved it to be clearer, but the costly part is after this.

&gt;&gt; PerformanceTests/APIBench/UpcomingAPI/RichardsMostlyObjC/RichardsMostlyObjC/WorkerTask.m:55
&gt;&gt; +        JSLock(context.JSGlobalContextRef);
&gt; 
&gt; Why is this doing the locking after the script has been evaluated?  Why not right after the context is created?

I moved it next to the context creation to be clearer, but it doesn&apos;t really matter here since the costly part is calling all the C APIs. This is just initial script evaluation that puts the function we need in the global object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713224</commentid>
    <comment_count>5</comment_count>
      <attachid>415700</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-12-09 10:55:09 -0800</bug_when>
    <thetext>Comment on attachment 415700
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/API/JSLockRefPrivate.h:38
&gt;&gt;&gt; +JS_EXPORT JSLockRef JSLock(JSContextRef);
&gt;&gt;&gt; +
&gt;&gt;&gt; +JS_EXPORT void JSUnlock(JSLockRef);
&gt;&gt; 
&gt;&gt; It&apos;s a pity that we can&apos;t use C++ and implement this as an RAII object.  Anyway, I don&apos;t see JSUnlock() used in any of your benchmarks.  It may not matter in terms of the benchmark results, but can you call JSUnlock() in the right places just so it documents the right thing to do?  I can see these benchmarks being consulted as examples of &quot;best practices&quot; in the future, and it would be good to be complete in the example.
&gt; 
&gt; The problem is that there&apos;s no right place to call JSUnlock in these benchmarks since the context is stored in a static variable that&apos;s never released.

Are we planning to make this API public? If so, we should do API review.

An alternative API that is C-compatible and avoids the problem of forgetting to call unlock is to take a block as an argument. You call lock, invoke the block, and then call unlock. That might be a friendlier API since it&apos;s much harder to use wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713285</commentid>
    <comment_count>6</comment_count>
      <attachid>415793</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-12-09 13:09:38 -0800</bug_when>
    <thetext>Created attachment 415793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713397</commentid>
    <comment_count>7</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-12-09 18:32:10 -0800</bug_when>
    <thetext>&gt; Are we planning to make this API public? If so, we should do API review.

I think it would be nice to make it public, I&apos;ll look into getting that started when this lands.

&gt; An alternative API that is C-compatible and avoids the problem of forgetting
&gt; to call unlock is to take a block as an argument. You call lock, invoke the
&gt; block, and then call unlock. That might be a friendlier API since it&apos;s much
&gt; harder to use wrong.

I agree that would be a better API in general, but I still think that it&apos;s a very common scenario to just create the context, lock it to the current thread and never unlock it again. But I guess we could always have both APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713578</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-12-10 09:54:24 -0800</bug_when>
    <thetext>&gt; I agree that would be a better API in general, but I still think that it&apos;s a
&gt; very common scenario to just create the context, lock it to the current
&gt; thread and never unlock it again. But I guess we could always have both APIs.

Can you give some examples?

The examples I&apos;ve seen most, at least inside Apple, use dispatch queues. An unfortunate side-effect of a dispatch queue is that it may execute on any thread, so you need to re-aqcuire the JSLock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713696</commentid>
    <comment_count>9</comment_count>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-12-10 13:33:09 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #8)
&gt; &gt; I agree that would be a better API in general, but I still think that it&apos;s a
&gt; &gt; very common scenario to just create the context, lock it to the current
&gt; &gt; thread and never unlock it again. But I guess we could always have both APIs.
&gt; 
&gt; Can you give some examples?
&gt; 
&gt; The examples I&apos;ve seen most, at least inside Apple, use dispatch queues. An
&gt; unfortunate side-effect of a dispatch queue is that it may execute on any
&gt; thread, so you need to re-aqcuire the JSLock.

Any time you have dedicated thread. Isn&apos;t that what we do? Do you see any downside to having both APIs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713705</commentid>
    <comment_count>10</comment_count>
      <attachid>415793</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-12-10 13:56:50 -0800</bug_when>
    <thetext>Comment on attachment 415793
Patch

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

&gt; Source/JavaScriptCore/API/JSLockRefPrivate.h:38
&gt; + @discussion The lock has to be held to perform any interactions with the JSContextRef. This function allows holding the lock across multiple interactions to amortize the cost.

Should we say anything about the lock being re-entrant?

&gt; PerformanceTests/APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC/richards.c:16
&gt; +#import &lt;JavaScriptCore/JSLockRefPrivate.h&gt;
&gt; +#import &lt;JavaScriptCore/JavaScriptCore.h&gt;
&gt;  #import &lt;QuartzCore/QuartzCore.h&gt;

Should this file &quot;RichardsMostlyC&quot; be named richards.m since it is using ObjC constructs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713718</commentid>
    <comment_count>11</comment_count>
      <attachid>415793</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-12-10 14:16:17 -0800</bug_when>
    <thetext>Comment on attachment 415793
Patch

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

&gt;&gt; Source/JavaScriptCore/API/JSLockRefPrivate.h:38
&gt;&gt; + @discussion The lock has to be held to perform any interactions with the JSContextRef. This function allows holding the lock across multiple interactions to amortize the cost.
&gt; 
&gt; Should we say anything about the lock being re-entrant?

Sounds like a good idea. I&apos;ll add it.

&gt;&gt; PerformanceTests/APIBench/UpcomingAPI/RichardsMostlyC/RichardsMostlyC/richards.c:16
&gt;&gt;  #import &lt;QuartzCore/QuartzCore.h&gt;
&gt; 
&gt; Should this file &quot;RichardsMostlyC&quot; be named richards.m since it is using ObjC constructs?

it&apos;s only using #import, I&apos;ll change it to #include.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713726</commentid>
    <comment_count>12</comment_count>
      <attachid>415933</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2020-12-10 14:40:28 -0800</bug_when>
    <thetext>Created attachment 415933
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713737</commentid>
    <comment_count>13</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-12-10 15:04:21 -0800</bug_when>
    <thetext>&gt; &gt; The examples I&apos;ve seen most, at least inside Apple, use dispatch queues. An
&gt; &gt; unfortunate side-effect of a dispatch queue is that it may execute on any
&gt; &gt; thread, so you need to re-aqcuire the JSLock.
&gt; 
&gt; Any time you have dedicated thread. Isn&apos;t that what we do?

Yes, WebKit uses dedicated VMs for the main thread and worker threads. But I haven&apos;t seen that kind of use of JSC outside WebKit, in a public API client.

&gt; Do you see any downside to having both APIs?

Not a huge downside, but having two ways to do something pushes onto each API client a certain amount of cognitive load: They need to read documentation, weigh tradeoffs, understand subtleties, and make a decision any time they do that thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713738</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-10 15:11:02 -0800</bug_when>
    <thetext>Committed r270659: &lt;https://trac.webkit.org/changeset/270659&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415933.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1713739</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-10 15:12:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/72199236&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1714555</commentid>
    <comment_count>16</comment_count>
      <attachid>415933</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-12-14 12:47:34 -0800</bug_when>
    <thetext>Comment on attachment 415933
Patch for landing

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

&gt; Source/JavaScriptCore/API/JSLockRefPrivate.h:40
&gt; +JS_EXPORT void JSLock(JSContextRef ctx);

Shouldn&apos;t this take a JSContextGroupRef? We lock the entire VM which corresponds to a group. With this API I&apos;d expect to be able to have two different JSContextRefs from the same group locked and running on different threads at the same time. If we ever add a concurrent JS feature in the future we can add this version back, especially since people could use this API today as a thread exclusion. So making this API work across threads could be a compatibly issue in the future.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415700</attachid>
            <date>2020-12-08 19:13:52 -0800</date>
            <delta_ts>2020-12-09 13:09:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219663-20201208191351.patch</filename>
            <type>text/plain</type>
            <size>37156</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MmI0YmJkNWJmNGRjOTUxZjQxY2E5MjFiMTM3MmI3ZjA0NTQzNmM0Li4xMzM5MDVjMDgxNDkwN2Mz
MWJmMWI5YjZiZjgxN2U4YzExNzM5ZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMC0xMi0wOCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgYSBKU0MgQVBJIHRvIGFsbG93IGFjcXVpcmluZyB0aGUgSlNMb2Nr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk2NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1
Y2UgdHdvIG5ldyBmdW5jdGlvbnMgdG8gdGhlIEMgQVBJOiBKU0xvY2sgYW5kIEpTVW5sb2NrLiBU
aGVzZQorICAgICAgICBmdW5jdGlvbnMgYWxsb3cgdXNlcnMgdG8gdGFrZSBjb250cm9sIG9mIHRo
ZSBKU0NvbnRleHQncyBsb2NrLCB3aGljaAorICAgICAgICBjYW4gZ3JlYXRseSByZWR1Y2UgdGhl
IG92ZXJoZWFkIG9mIGJyaWRnaW5nIGJldHdlZW4gSlMgYW5kIG5hdGl2ZS4KKworICAgICAgICAq
IEFQSS9BUElDYXN0Lmg6CisgICAgICAgICh0b0pTKToKKyAgICAgICAgKHRvUmVmKToKKyAgICAg
ICAgKiBBUEkvSlNMb2NrUmVmLmNwcDogQWRkZWQuCisgICAgICAgIChKU0xvY2spOgorICAgICAg
ICAoSlNVbmxvY2spOgorICAgICAgICAqIEFQSS9KU0xvY2tSZWZQcml2YXRlLmg6IEFkZGVkLgor
ICAgICAgICAqIEFQSS9KU1ZhbHVlUmVmLmNwcDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorCiAyMDIw
LTEyLTA4ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkIG5vbi11bmlmaWVkIGJ1aWxkIGZpeCBmb2xsb3dpbmcgcjI3MDU1Mi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvQVBJQ2FzdC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9BUElDYXN0LmgKaW5kZXggM2I0ZjMxZDY3YWJjNTQ0ZTk5ZTllZGRl
YTViNDliNGI5MTUwODg4Zi4uZGZkMjNhMTA0Njk0N2UwMzBiMTE1N2EyNTE2N2E5YjU1Y2FmYjUz
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9BUElDYXN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9BUElDYXN0LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgdHlw
ZWRlZiBzdHJ1Y3QgT3BhcXVlSlNDb250ZXh0KiBKU0dsb2JhbENvbnRleHRSZWY7CiB0eXBlZGVm
IHN0cnVjdCBPcGFxdWVKU1Byb3BlcnR5TmFtZUFjY3VtdWxhdG9yKiBKU1Byb3BlcnR5TmFtZUFj
Y3VtdWxhdG9yUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlSlNWYWx1ZSogSlNWYWx1
ZVJlZjsKIHR5cGVkZWYgc3RydWN0IE9wYXF1ZUpTVmFsdWUqIEpTT2JqZWN0UmVmOwordHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgT3BhcXVlSlNMb2NrKiBKU0xvY2tSZWY7CiAKIC8qIE9wYXF1ZSB0eXBp
bmcgY29udmVuaWVuY2UgbWV0aG9kcyAqLwogCkBAIC0xMjgsNiArMTI5LDExIEBAIGlubGluZSBK
U0M6OlZNKiB0b0pTKEpTQ29udGV4dEdyb3VwUmVmIGcpCiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8SlNDOjpWTSo+KGNvbnN0X2Nhc3Q8T3BhcXVlSlNDb250ZXh0R3JvdXAqPihnKSk7CiB9
CiAKK2lubGluZSBKU0M6OkpTTG9ja0hvbGRlciogdG9KUyhKU0xvY2tSZWYgbG9jaykKK3sKKyAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU0M6OkpTTG9ja0hvbGRlcio+KGNvbnN0X2Nhc3Q8
T3BhcXVlSlNMb2NrKj4obG9jaykpOworfQorCiBpbmxpbmUgSlNWYWx1ZVJlZiB0b1JlZihKU0M6
OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHYpCiB7CiAgICAgQVNTRVJUKHZtLmN1cnJlbnRUaHJlYWRJ
c0hvbGRpbmdBUElMb2NrKCkpOwpAQCAtMTc4LDQgKzE4NCw5IEBAIGlubGluZSBKU0NvbnRleHRH
cm91cFJlZiB0b1JlZihKU0M6OlZNKiBnKQogICAgIHJldHVybiByZWludGVycHJldF9jYXN0PEpT
Q29udGV4dEdyb3VwUmVmPihnKTsKIH0KIAoraW5saW5lIEpTTG9ja1JlZiB0b1JlZihKU0M6OkpT
TG9ja0hvbGRlciogbG9jaykKK3sKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKU0xvY2tS
ZWY+KGxvY2spOworfQorCiAjZW5kaWYgLy8gQVBJQ2FzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTTG9ja1JlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTTG9ja1JlZi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2JmNDI2N2E1NzYwYmE0N2Y5NTc3NGNmYjA1
OGQ2NTkwOWI4NTMyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNMb2NrUmVmLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpT
TG9ja1JlZlByaXZhdGUuaCIKKworI2luY2x1ZGUgIkpTTG9jay5oIgorCit1c2luZyBuYW1lc3Bh
Y2UgSlNDOworCitKU0xvY2tSZWYgSlNMb2NrKEpTQ29udGV4dFJlZiBjdHgpCit7CisgICAgaWYg
KCFjdHgpIHsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIH0KKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KUyhj
dHgpOworICAgIHJldHVybiB0b1JlZihuZXcgSlNMb2NrSG9sZGVyKGdsb2JhbE9iamVjdCkpOwor
fQorCit2b2lkIEpTVW5sb2NrKEpTTG9ja1JlZiByZWYpCit7CisgICAgSlNMb2NrSG9sZGVyKiBs
b2NrID0gdG9KUyhyZWYpOworICAgIGlmICghbG9jaykgeworICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkZWxldGUgbG9jazsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNMb2NrUmVmUHJpdmF0ZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0xvY2tSZWZQcml2YXRlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGQyMmNjNzdjMDcxZDA2N2FhNDk0NzRmNjJhMTRjMWQyZmIwYTk4YQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNMb2NrUmVmUHJpdmF0ZS5oCkBAIC0wLDAg
KzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgorCisjaWZk
ZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK3R5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZUpTTG9jayogSlNMb2NrUmVmOworCitKU19FWFBPUlQgSlNMb2NrUmVmIEpTTG9j
ayhKU0NvbnRleHRSZWYpOworCitKU19FWFBPUlQgdm9pZCBKU1VubG9jayhKU0xvY2tSZWYpOwor
CisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkv
SlNWYWx1ZVJlZi5jcHAKaW5kZXggNWRiYTA4ODk2MTk0MTMxMzI1NmNhYTY5ZDVhN2RjMTVjNjM4
ZTY3NC4uZWY5NmQ4ZWYyZmRkYjE0NWIxNGQyNTIxMGI0NTQ1OWQzMDljOWE4MCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5j
bHVkZSAiQVBJQ2FzdC5oIgogI2luY2x1ZGUgIkFQSVV0aWxzLmgiCiAjaW5jbHVkZSAiRGF0ZUlu
c3RhbmNlLmgiCisjaW5jbHVkZSAiSlNBUElXcmFwcGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ2FsbGJhY2tPYmplY3QuaCIKICNpbmNsdWRlICJKU09O
T2JqZWN0LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE1ZGQwNjcwNTNkYzc0
ZWRkMTYzZDk2ZWVhZGU3MWU1OWQzNTNiMDMuLmMzODUxOTE2ZmQ2ZWFjYzFiMWZhOWUwZDNhZTYy
MzNkNjU4MWRhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC04MDksNiArODA5
LDcgQEAKIAkJMTQ3ODI5N0IxMzc5RThBODAwQTdDMkEzIC8qIEhhbmRsZVR5cGVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDZGQTVBODEzNzhGNkIw
MDAzNjI3QTMgLyogSGFuZGxlVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkxNDdCODNBQzBFNkRCOEM5MDA0Nzc1QTQgLyogQmF0Y2hlZFRy
YW5zaXRpb25PcHRpbWl6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0N0I4M0FBMEU2REI4QzkwMDQ3NzVBNCAvKiBCYXRjaGVkVHJhbnNpdGlvbk9w
dGltaXplci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTE0N0I4NDYzMEU2REU2QjEwMDQ3NzVBNCAvKiBQdXRQcm9wZXJ0eVNsb3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0N0I4NDYyMEU2REU2QjEw
MDQ3NzVBNCAvKiBQdXRQcm9wZXJ0eVNsb3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQkxNDg2QThDMDI0QUJFRDQ4MDA3MzkyMkQgLyogSlNMb2Nr
UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTQ4NkE4QkYyNEFCRUQzQzAwNzM5MjJEIC8qIEpTTG9ja1JlZlByaXZhdGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDg3NEFFNjE1RUJE
RTRBMDAyRTM1ODcgLyogSlNTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTQ4NzRBRTIxNUVCREU0QTAwMkUzNTg3IC8qIEpTU2NvcGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDhBN0JGMDFC
ODI5NzVBMDAyRDkxNTcgLyogSW5saW5lQ2FsbEZyYW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDhBN0JFRTFCODI5NzVBMDAyRDkxNTcgLyogSW5s
aW5lQ2FsbEZyYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMTQ4Q0QxRDgxMDhDRjkwMjAwODE2M0M2IC8qIEpTQ29udGV4dFJlZlByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0OENEMUQ3
MTA4Q0Y5MDIwMDgxNjNDNiAvKiBKU0NvbnRleHRSZWZQcml2YXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTM0MTUsNiArMzQxNiw4IEBACiAJ
CTE0ODJCNzhBMEE0MzA1QUIwMDUxN0NGQyAvKiBBUElDYXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEFQSUNhc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTQ4MkI3RTEwQTQzMDc2MDAwNTE3Q0ZDIC8qIEpTT2JqZWN0UmVmLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTT2JqZWN0UmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTE0ODJCN0UyMEE0MzA3NjAwMDUxN0NGQyAvKiBKU09iamVjdFJlZi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU09iamVjdFJlZi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTE0ODZBOEJFMjRBQkVEM0IwMDczOTIyRCAvKiBKU0xvY2tS
ZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNMb2NrUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMTQ4NkE4QkYyNEFCRUQzQzAwNzM5MjJEIC8qIEpTTG9ja1JlZlByaXZh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNMb2NrUmVmUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxNDg3NEFFMTE1RUJERTRBMDAyRTM1ODcgLyogSlNTY29wZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Njb3BlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4NzRBRTIxNUVCREU0QTAwMkUzNTg3IC8qIEpTU2NvcGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTY29wZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxNDg3Q0UxNjIzNzc0MTAwMDA0NDQyOUMgLyogV2FzbUdlbmVy
YXRvclRyYWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXYXNtR2VuZXJh
dG9yVHJhaXRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NDg1LDYgKzY0ODgs
OCBAQAogCQkJCTg2RTNDNjBBMTY3QkFCODcwMDZENzYwQSAvKiBKU0V4cG9ydC5oICovLAogCQkJ
CTBGMENBRUY5MUVDNERBNjIwMDk3MEQxMiAvKiBKU0hlYXBGaW5hbGl6ZXJQcml2YXRlLmNwcCAq
LywKIAkJCQkwRjBDQUVGQTFFQzREQTYyMDA5NzBEMTIgLyogSlNIZWFwRmluYWxpemVyUHJpdmF0
ZS5oICovLAorCQkJCTE0ODZBOEJFMjRBQkVEM0IwMDczOTIyRCAvKiBKU0xvY2tSZWYuY3BwICov
LAorCQkJCTE0ODZBOEJGMjRBQkVEM0MwMDczOTIyRCAvKiBKU0xvY2tSZWZQcml2YXRlLmggKi8s
CiAJCQkJQzI1RDcwOUExNkRFOTlGNDAwRkNBNkJDIC8qIEpTTWFuYWdlZFZhbHVlLmggKi8sCiAJ
CQkJQzI1RDcwOTkxNkRFOTlGNDAwRkNBNkJDIC8qIEpTTWFuYWdlZFZhbHVlLm1tICovLAogCQkJ
CTJBNEJCN0YyMThBNDExNzkwMDhBMEZDRCAvKiBKU01hbmFnZWRWYWx1ZUludGVybmFsLmggKi8s
CkBAIC0xMDA0Miw2ICsxMDA0Nyw3IEBACiAJCQkJQTUwM0ZBMUUxODhFMEZCMDAwMTEwRjE0IC8q
IEpTSmF2YVNjcmlwdENhbGxGcmFtZVByb3RvdHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
OEM0MTYwRTE2RjVDRDAwQjM0NDYwIC8qIEpTTGV4aWNhbEVudmlyb25tZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzE4QzQyMzBFMTZGNUNEMDBCMzQ0NjAgLyogSlNMb2NrLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkxNDg2QThDMDI0QUJFRDQ4MDA3MzkyMkQgLyogSlNMb2NrUmVmUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQzI1RDcwOUMxNkRFOTlGNDAwRkNBNkJDIC8qIEpTTWFuYWdl
ZFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyQTRCQjdGMzE4QTQxMTc5MDA4QTBGQ0QgLyog
SlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwMDg3NDIxN0NC
RThFQjAwQzNFNjQzIC8qIEpTTWFwLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3Vy
Y2VzLnR4dAppbmRleCBmOTdmYjBlOTU4NDAwZGJjMWYyOTRkYmZjMmJlNTJhYWNlZmZjYzU4Li4y
MWRjNTIxYmI4NWExMDk5ZmE3NWU1NzFjNWY5ZDI3ODliNjg0MDA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1NvdXJjZXMudHh0CkBAIC0zMSw2ICszMSw3IEBAIEFQSS9KU0NhbGxiYWNrT2JqZWN0LmNwcAog
QVBJL0pTQ2xhc3NSZWYuY3BwCiBBUEkvSlNDb250ZXh0UmVmLmNwcAogQVBJL0pTSGVhcEZpbmFs
aXplclByaXZhdGUuY3BwCitBUEkvSlNMb2NrUmVmLmNwcAogQVBJL0pTTWFya2luZ0NvbnN0cmFp
bnRQcml2YXRlLmNwcAogQVBJL0pTT2JqZWN0UmVmLmNwcAogQVBJL0pTVHlwZWRBcnJheS5jcHAK
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFy
ZHNNb3N0bHlDL1JpY2hhcmRzTW9zdGx5Qy9yaWNoYXJkcy5jIGIvUGVyZm9ybWFuY2VUZXN0cy9B
UElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseUMvUmljaGFyZHNNb3N0bHlDL3JpY2hh
cmRzLmMKaW5kZXggYzUyMjk0N2FhOGEwZTVjYjhjNjdmYWI4MjI1ZjMzYjlhMGJhZmViZS4uZTZk
MmVkN2M1NTU2MWY0NDQyOGQyYWM3ZTQyZDQ0YmUyZWZkZDZkOSAxMDA2NDQKLS0tIGEvUGVyZm9y
bWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseUMvUmljaGFyZHNN
b3N0bHlDL3JpY2hhcmRzLmMKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWlu
Z0FQSS9SaWNoYXJkc01vc3RseUMvUmljaGFyZHNNb3N0bHlDL3JpY2hhcmRzLmMKQEAgLTExLDcg
KzExLDggQEAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgogCi0jaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuaD4KKyNpbXBvcnQgPEphdmFTY3Jp
cHRDb3JlL0pTTG9ja1JlZlByaXZhdGUuaD4KKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmg+CiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KIAogI2lmIDEK
QEAgLTM0NCw2ICszNDUsNyBAQCBzdHJ1Y3QgdGFzayAqd29ya2ZuKHN0cnVjdCBwYWNrZXQgKnBr
dCkKICAgICAgICAgfTsKICAgICAgICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU09iamVjdENhbGxB
c0Z1bmN0aW9uKGN0eCwgY3JlYXRlV29ya2ZuLCBOVUxMLCA1LCBhcmdzLCBOVUxMKTsKICAgICAg
ICAganNXb3JrZm4gPSBKU1ZhbHVlVG9PYmplY3QoY3R4LCByZXN1bHQsIE5VTEwpOworICAgICAg
ICBKU0xvY2soY3R4KTsKICAgICAgICAgCiAgICAgICAgIEpTU3RyaW5nUmVsZWFzZShzb3VyY2Up
OwogICAgICAgICBKU1N0cmluZ1JlbGVhc2Uod29ya2ZuU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlPYmpDL1Jp
Y2hhcmRzTW9zdGx5T2JqQy54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9SaWNoYXJk
c01vc3RseU9iakMueGNzY2hlbWUgYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5n
QVBJL1JpY2hhcmRzTW9zdGx5T2JqQy9SaWNoYXJkc01vc3RseU9iakMueGNvZGVwcm9qL3hjc2hh
cmVkZGF0YS94Y3NjaGVtZXMvUmljaGFyZHNNb3N0bHlPYmpDLnhjc2NoZW1lCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg3ODhlNTBhM2EwNjI2MmI0MWI4YTM1MmExZTQ4ZTc0ZjQ4ZGE1OWEKLS0tIC9kZXYvbnVsbAor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5
T2JqQy9SaWNoYXJkc01vc3RseU9iakMueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMv
UmljaGFyZHNNb3N0bHlPYmpDLnhjc2NoZW1lCkBAIC0wLDAgKzEsODEgQEAKKzw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8U2NoZW1lCisgICBMYXN0VXBncmFkZVZlcnNp
b24gPSAiMTIwMCIKKyAgIHZlcnNpb24gPSAiMS43Ij4KKyAgIDxCdWlsZEFjdGlvbgorICAgICAg
cGFyYWxsZWxpemVCdWlsZGFibGVzID0gIllFUyIKKyAgICAgIGJ1aWxkSW1wbGljaXREZXBlbmRl
bmNpZXMgPSAiWUVTIj4KKyAgICAgIDxCdWlsZEFjdGlvbkVudHJpZXM+CisgICAgICAgICA8QnVp
bGRBY3Rpb25FbnRyeQorICAgICAgICAgICAgYnVpbGRGb3JUZXN0aW5nID0gIllFUyIKKyAgICAg
ICAgICAgIGJ1aWxkRm9yUnVubmluZyA9ICJZRVMiCisgICAgICAgICAgICBidWlsZEZvclByb2Zp
bGluZyA9ICJZRVMiCisgICAgICAgICAgICBidWlsZEZvckFyY2hpdmluZyA9ICJZRVMiCisgICAg
ICAgICAgICBidWlsZEZvckFuYWx5emluZyA9ICJZRVMiPgorICAgICAgICAgICAgPEJ1aWxkYWJs
ZVJlZmVyZW5jZQorICAgICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5
IgorICAgICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICIxNDE1QUQyMTI0OTlCQzVD
MDA1QkIyRTQiCisgICAgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0gIlJpY2hhcmRzTW9zdGx5
T2JqQyIKKyAgICAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAiUmljaGFyZHNNb3N0bHlPYmpD
IgorICAgICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6UmljaGFy
ZHNNb3N0bHlPYmpDLnhjb2RlcHJvaiI+CisgICAgICAgICAgICA8L0J1aWxkYWJsZVJlZmVyZW5j
ZT4KKyAgICAgICAgIDwvQnVpbGRBY3Rpb25FbnRyeT4KKyAgICAgIDwvQnVpbGRBY3Rpb25FbnRy
aWVzPgorICAgPC9CdWlsZEFjdGlvbj4KKyAgIDxUZXN0QWN0aW9uCisgICAgICBidWlsZENvbmZp
Z3VyYXRpb24gPSAiRGVidWciCisgICAgICBzZWxlY3RlZERlYnVnZ2VySWRlbnRpZmllciA9ICJY
Y29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdnZXIuTExEQiIKKyAgICAgIHNlbGVjdGVkTGF1
bmNoZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5MYXVuY2hlci5MTERC
IgorICAgICAgc2hvdWxkVXNlTGF1bmNoU2NoZW1lQXJnc0VudiA9ICJZRVMiPgorICAgICAgPFRl
c3RhYmxlcz4KKyAgICAgIDwvVGVzdGFibGVzPgorICAgPC9UZXN0QWN0aW9uPgorICAgPExhdW5j
aEFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIkRlYnVnIgorICAgICAgc2VsZWN0
ZWREZWJ1Z2dlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkRlYnVnZ2Vy
LkxMREIiCisgICAgICBzZWxlY3RlZExhdW5jaGVySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dl
ckZvdW5kYXRpb24uTGF1bmNoZXIuTExEQiIKKyAgICAgIGxhdW5jaFN0eWxlID0gIjAiCisgICAg
ICB1c2VDdXN0b21Xb3JraW5nRGlyZWN0b3J5ID0gIk5PIgorICAgICAgaWdub3Jlc1BlcnNpc3Rl
bnRTdGF0ZU9uTGF1bmNoID0gIk5PIgorICAgICAgZGVidWdEb2N1bWVudFZlcnNpb25pbmcgPSAi
WUVTIgorICAgICAgZGVidWdTZXJ2aWNlRXh0ZW5zaW9uID0gImludGVybmFsIgorICAgICAgYWxs
b3dMb2NhdGlvblNpbXVsYXRpb24gPSAiWUVTIj4KKyAgICAgIDxCdWlsZGFibGVQcm9kdWN0UnVu
bmFibGUKKyAgICAgICAgIHJ1bm5hYmxlRGVidWdnaW5nTW9kZSA9ICIwIj4KKyAgICAgICAgIDxC
dWlsZGFibGVSZWZlcmVuY2UKKyAgICAgICAgICAgIEJ1aWxkYWJsZUlkZW50aWZpZXIgPSAicHJp
bWFyeSIKKyAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIgPSAiMTQxNUFEMjEyNDk5QkM1
QzAwNUJCMkU0IgorICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJSaWNoYXJkc01vc3RseU9i
akMiCisgICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIlJpY2hhcmRzTW9zdGx5T2JqQyIKKyAg
ICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAiY29udGFpbmVyOlJpY2hhcmRzTW9zdGx5
T2JqQy54Y29kZXByb2oiPgorICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+CisgICAgICA8
L0J1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZT4KKyAgIDwvTGF1bmNoQWN0aW9uPgorICAgPFByb2Zp
bGVBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNlIgorICAgICAgc2hv
dWxkVXNlTGF1bmNoU2NoZW1lQXJnc0VudiA9ICJZRVMiCisgICAgICBzYXZlZFRvb2xJZGVudGlm
aWVyID0gIiIKKyAgICAgIHVzZUN1c3RvbVdvcmtpbmdEaXJlY3RvcnkgPSAiTk8iCisgICAgICBk
ZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZRVMiPgorICAgICAgPEJ1aWxkYWJsZVByb2R1Y3RS
dW5uYWJsZQorICAgICAgICAgcnVubmFibGVEZWJ1Z2dpbmdNb2RlID0gIjAiPgorICAgICAgICAg
PEJ1aWxkYWJsZVJlZmVyZW5jZQorICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJw
cmltYXJ5IgorICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICIxNDE1QUQyMTI0OTlC
QzVDMDA1QkIyRTQiCisgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0gIlJpY2hhcmRzTW9zdGx5
T2JqQyIKKyAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAiUmljaGFyZHNNb3N0bHlPYmpDIgor
ICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6UmljaGFyZHNNb3N0
bHlPYmpDLnhjb2RlcHJvaiI+CisgICAgICAgICA8L0J1aWxkYWJsZVJlZmVyZW5jZT4KKyAgICAg
IDwvQnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlPgorICAgPC9Qcm9maWxlQWN0aW9uPgorICAgPEFu
YWx5emVBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJEZWJ1ZyI+CisgICA8L0Fu
YWx5emVBY3Rpb24+CisgICA8QXJjaGl2ZUFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9u
ID0gIlJlbGVhc2UiCisgICAgICByZXZlYWxBcmNoaXZlSW5Pcmdhbml6ZXIgPSAiWUVTIj4KKyAg
IDwvQXJjaGl2ZUFjdGlvbj4KKyAgIDxJbnN0YWxsQWN0aW9uCisgICAgICBidWlsZENvbmZpZ3Vy
YXRpb24gPSAiUmVsZWFzZSI+CisgICA8L0luc3RhbGxBY3Rpb24+Cis8L1NjaGVtZT4KZGlmZiAt
LWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0
bHlPYmpDL1JpY2hhcmRzTW9zdGx5T2JqQy54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1l
cy9SaWNoYXJkc01vc3RseVN3aWZ0Lnhjc2NoZW1lIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5j
aC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseU9iakMvUmljaGFyZHNNb3N0bHlPYmpDLnhjb2Rl
cHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL1JpY2hhcmRzTW9zdGx5U3dpZnQueGNzY2hlbWUK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3ODhlNTBhM2EwNjI2MmI0MWI4YTM1MmEx
ZTQ4ZTc0ZjQ4ZGE1OWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3Rs
eU9iakMvUmljaGFyZHNNb3N0bHlPYmpDLnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVz
L1JpY2hhcmRzTW9zdGx5U3dpZnQueGNzY2hlbWUKKysrIC9kZXYvbnVsbApAQCAtMSw4MSArMCww
IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPFNjaGVtZQotICAg
TGFzdFVwZ3JhZGVWZXJzaW9uID0gIjEyMDAiCi0gICB2ZXJzaW9uID0gIjEuNyI+Ci0gICA8QnVp
bGRBY3Rpb24KLSAgICAgIHBhcmFsbGVsaXplQnVpbGRhYmxlcyA9ICJZRVMiCi0gICAgICBidWls
ZEltcGxpY2l0RGVwZW5kZW5jaWVzID0gIllFUyI+Ci0gICAgICA8QnVpbGRBY3Rpb25FbnRyaWVz
PgotICAgICAgICAgPEJ1aWxkQWN0aW9uRW50cnkKLSAgICAgICAgICAgIGJ1aWxkRm9yVGVzdGlu
ZyA9ICJZRVMiCi0gICAgICAgICAgICBidWlsZEZvclJ1bm5pbmcgPSAiWUVTIgotICAgICAgICAg
ICAgYnVpbGRGb3JQcm9maWxpbmcgPSAiWUVTIgotICAgICAgICAgICAgYnVpbGRGb3JBcmNoaXZp
bmcgPSAiWUVTIgotICAgICAgICAgICAgYnVpbGRGb3JBbmFseXppbmcgPSAiWUVTIj4KLSAgICAg
ICAgICAgIDxCdWlsZGFibGVSZWZlcmVuY2UKLSAgICAgICAgICAgICAgIEJ1aWxkYWJsZUlkZW50
aWZpZXIgPSAicHJpbWFyeSIKLSAgICAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIgPSAi
MTQxNUFEMjEyNDk5QkM1QzAwNUJCMkU0IgotICAgICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9
ICJSaWNoYXJkc01vc3RseU9iakMiCi0gICAgICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIlJp
Y2hhcmRzTW9zdGx5T2JqQyIKLSAgICAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAi
Y29udGFpbmVyOlJpY2hhcmRzTW9zdGx5T2JqQy54Y29kZXByb2oiPgotICAgICAgICAgICAgPC9C
dWlsZGFibGVSZWZlcmVuY2U+Ci0gICAgICAgICA8L0J1aWxkQWN0aW9uRW50cnk+Ci0gICAgICA8
L0J1aWxkQWN0aW9uRW50cmllcz4KLSAgIDwvQnVpbGRBY3Rpb24+Ci0gICA8VGVzdEFjdGlvbgot
ICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIkRlYnVnIgotICAgICAgc2VsZWN0ZWREZWJ1Z2dl
cklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkRlYnVnZ2VyLkxMREIiCi0g
ICAgICBzZWxlY3RlZExhdW5jaGVySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRp
b24uTGF1bmNoZXIuTExEQiIKLSAgICAgIHNob3VsZFVzZUxhdW5jaFNjaGVtZUFyZ3NFbnYgPSAi
WUVTIj4KLSAgICAgIDxUZXN0YWJsZXM+Ci0gICAgICA8L1Rlc3RhYmxlcz4KLSAgIDwvVGVzdEFj
dGlvbj4KLSAgIDxMYXVuY2hBY3Rpb24KLSAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJEZWJ1
ZyIKLSAgICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91
bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgotICAgICAgc2VsZWN0ZWRMYXVuY2hlcklkZW50aWZpZXIg
PSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxMREIiCi0gICAgICBsYXVuY2hT
dHlsZSA9ICIwIgotICAgICAgdXNlQ3VzdG9tV29ya2luZ0RpcmVjdG9yeSA9ICJOTyIKLSAgICAg
IGlnbm9yZXNQZXJzaXN0ZW50U3RhdGVPbkxhdW5jaCA9ICJOTyIKLSAgICAgIGRlYnVnRG9jdW1l
bnRWZXJzaW9uaW5nID0gIllFUyIKLSAgICAgIGRlYnVnU2VydmljZUV4dGVuc2lvbiA9ICJpbnRl
cm5hbCIKLSAgICAgIGFsbG93TG9jYXRpb25TaW11bGF0aW9uID0gIllFUyI+Ci0gICAgICA8QnVp
bGRhYmxlUHJvZHVjdFJ1bm5hYmxlCi0gICAgICAgICBydW5uYWJsZURlYnVnZ2luZ01vZGUgPSAi
MCI+Ci0gICAgICAgICA8QnVpbGRhYmxlUmVmZXJlbmNlCi0gICAgICAgICAgICBCdWlsZGFibGVJ
ZGVudGlmaWVyID0gInByaW1hcnkiCi0gICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0g
IjE0MTVBRDIxMjQ5OUJDNUMwMDVCQjJFNCIKLSAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAi
UmljaGFyZHNNb3N0bHlPYmpDIgotICAgICAgICAgICAgQmx1ZXByaW50TmFtZSA9ICJSaWNoYXJk
c01vc3RseU9iakMiCi0gICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5l
cjpSaWNoYXJkc01vc3RseU9iakMueGNvZGVwcm9qIj4KLSAgICAgICAgIDwvQnVpbGRhYmxlUmVm
ZXJlbmNlPgotICAgICAgPC9CdWlsZGFibGVQcm9kdWN0UnVubmFibGU+Ci0gICA8L0xhdW5jaEFj
dGlvbj4KLSAgIDxQcm9maWxlQWN0aW9uCi0gICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiUmVs
ZWFzZSIKLSAgICAgIHNob3VsZFVzZUxhdW5jaFNjaGVtZUFyZ3NFbnYgPSAiWUVTIgotICAgICAg
c2F2ZWRUb29sSWRlbnRpZmllciA9ICIiCi0gICAgICB1c2VDdXN0b21Xb3JraW5nRGlyZWN0b3J5
ID0gIk5PIgotICAgICAgZGVidWdEb2N1bWVudFZlcnNpb25pbmcgPSAiWUVTIj4KLSAgICAgIDxC
dWlsZGFibGVQcm9kdWN0UnVubmFibGUKLSAgICAgICAgIHJ1bm5hYmxlRGVidWdnaW5nTW9kZSA9
ICIwIj4KLSAgICAgICAgIDxCdWlsZGFibGVSZWZlcmVuY2UKLSAgICAgICAgICAgIEJ1aWxkYWJs
ZUlkZW50aWZpZXIgPSAicHJpbWFyeSIKLSAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIg
PSAiMTQxNUFEMjEyNDk5QkM1QzAwNUJCMkU0IgotICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9
ICJSaWNoYXJkc01vc3RseU9iakMiCi0gICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIlJpY2hh
cmRzTW9zdGx5T2JqQyIKLSAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAiY29udGFp
bmVyOlJpY2hhcmRzTW9zdGx5T2JqQy54Y29kZXByb2oiPgotICAgICAgICAgPC9CdWlsZGFibGVS
ZWZlcmVuY2U+Ci0gICAgICA8L0J1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZT4KLSAgIDwvUHJvZmls
ZUFjdGlvbj4KLSAgIDxBbmFseXplQWN0aW9uCi0gICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAi
RGVidWciPgotICAgPC9BbmFseXplQWN0aW9uPgotICAgPEFyY2hpdmVBY3Rpb24KLSAgICAgIGJ1
aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNlIgotICAgICAgcmV2ZWFsQXJjaGl2ZUluT3JnYW5p
emVyID0gIllFUyI+Ci0gICA8L0FyY2hpdmVBY3Rpb24+Ci0gICA8SW5zdGFsbEFjdGlvbgotICAg
ICAgYnVpbGRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiPgotICAgPC9JbnN0YWxsQWN0aW9uPgot
PC9TY2hlbWU+CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5n
QVBJL1JpY2hhcmRzTW9zdGx5T2JqQy9SaWNoYXJkc01vc3RseU9iakMvV29ya2VyVGFzay5tIGIv
UGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseU9iakMv
UmljaGFyZHNNb3N0bHlPYmpDL1dvcmtlclRhc2subQppbmRleCBhZDFiY2Q5NDVkZDcxZjk2ZDc2
ZjM2MTMzNmQyOTdiZWRiMzI1YWE4Li5mMWQ2ZjU1Y2M0NGQyNjM4MjdkZWFiMTZhYTMwN2Y2NjEy
YzM3YTQxIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJ
L1JpY2hhcmRzTW9zdGx5T2JqQy9SaWNoYXJkc01vc3RseU9iakMvV29ya2VyVGFzay5tCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlPYmpD
L1JpY2hhcmRzTW9zdGx5T2JqQy9Xb3JrZXJUYXNrLm0KQEAgLTI1LDYgKzI1LDcgQEAKIAogI2lt
cG9ydCAiV29ya2VyVGFzay5oIgogCisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU0xvY2tSZWZQ
cml2YXRlLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgogCiBA
aW1wbGVtZW50YXRpb24gV29ya2VyVGFzayB7CkBAIC01MSw2ICs1Miw3IEBAICsgKEpTQ29udGV4
dCAqKWNvbnRleHQgewogICAgICAgICAKICAgICAgICAgTlNTdHJpbmcgKnNvdXJjZSA9IFtOU1N0
cmluZyBzdHJpbmdXaXRoQ29udGVudHNPZkZpbGU6QCJyaWNoYXJkcy5qcyIgZW5jb2Rpbmc6TlNV
VEY4U3RyaW5nRW5jb2RpbmcgZXJyb3I6bmlsXTsKICAgICAgICAgW2NvbnRleHQgZXZhbHVhdGVT
Y3JpcHQ6c291cmNlXTsKKyAgICAgICAgSlNMb2NrKGNvbnRleHQuSlNHbG9iYWxDb250ZXh0UmVm
KTsKICAgICB9KTsKICAgICByZXR1cm4gY29udGV4dDsKIH0KZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJk
c01vc3RseVN3aWZ0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9QZXJmb3JtYW5jZVRlc3Rz
L0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5U3dpZnQvUmljaGFyZHNNb3N0bHlT
d2lmdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI5NjBhNWRhYTJhNWM4YmI4NGRl
YjU5MzM5ZmUyMTk3YzU2YTAzN2UuLmI5MzBlNWFlZDk0ZWY0MDQ1YTY0MmRlM2RhYzcxMDk5OTUy
YzM3ODkgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkv
UmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3RseVN3aWZ0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNo
YXJkc01vc3RseVN3aWZ0L1JpY2hhcmRzTW9zdGx5U3dpZnQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNDQsNiArNDQsNyBAQAogCQkxNDBBQUMzRjI0OUIwMUQxMDAwMUYxMUUgLyogRGV2
aWNlVGFzay5zd2lmdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuc3dpZnQ7IHBhdGggPSBEZXZpY2VU
YXNrLnN3aWZ0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDE1QUQyMjI0OTlCQzVD
MDA1QkIyRTQgLyogUmljaGFyZHNNb3N0bHlTd2lmdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5j
bHVkZUluSW5kZXggPSAwOyBwYXRoID0gUmljaGFyZHNNb3N0bHlTd2lmdDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMTQxNUFEMjUyNDk5QkM1QzAwNUJCMkU0IC8qIG1h
aW4uc3dpZnQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLnN3aWZ0OyBwYXRoID0gbWFpbi5zd2lmdDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMTQ1MDg3RTkyNTgwNTgxOTAwRDk0MTk3IC8qIEJyaWRnaW5nSGVhZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEJyaWRnaW5nSGVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWEZy
YW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTc2LDYgKzc3LDcgQEAKIAkJMTQxNUFE
MjQyNDk5QkM1QzAwNUJCMkU0IC8qIFJpY2hhcmRzTW9zdGx5U3dpZnQgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTE0NTA4N0U5MjU4MDU4MTkwMEQ5NDE5
NyAvKiBCcmlkZ2luZ0hlYWRlci5oICovLAogCQkJCTE0MEFBQzNGMjQ5QjAxRDEwMDAxRjExRSAv
KiBEZXZpY2VUYXNrLnN3aWZ0ICovLAogCQkJCTE0MEFBQzNEMjQ5QjAxRDEwMDAxRjExRSAvKiBI
YW5kbGVyVGFzay5zd2lmdCAqLywKIAkJCQkxNDBBQUMzQzI0OUIwMUQxMDAwMUYxMUUgLyogSWRs
ZVRhc2suc3dpZnQgKi8sCkBAIC0yODIsNiArMjg0LDcgQEAKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7
CiAJCQkJQ09ERV9TSUdOX1NUWUxFID0gQXV0b21hdGljOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIk
KFRBUkdFVF9OQU1FKSI7CisJCQkJU1dJRlRfT0JKQ19CUklER0lOR19IRUFERVIgPSBSaWNoYXJk
c01vc3RseVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmg7CiAJCQkJU1dJRlRfVkVSU0lPTiA9IDUuMDsK
IAkJCX07CiAJCQluYW1lID0gRGVidWc7CkBAIC0yOTEsNiArMjk0LDcgQEAKIAkJCWJ1aWxkU2V0
dGluZ3MgPSB7CiAJCQkJQ09ERV9TSUdOX1NUWUxFID0gQXV0b21hdGljOwogCQkJCVBST0RVQ1Rf
TkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJU1dJRlRfT0JKQ19CUklER0lOR19IRUFERVIg
PSBSaWNoYXJkc01vc3RseVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmg7CiAJCQkJU1dJRlRfVkVSU0lP
TiA9IDUuMDsKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJk
c01vc3RseVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmggYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNo
L1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5U3dpZnQvUmljaGFyZHNNb3N0bHlTd2lmdC9Ccmlk
Z2luZ0hlYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyYzBlOTFmYzdkOWUyNjM5ODk5MmM3ZWNhMzg2OWIx
OTIzNzdkMmYKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1Vw
Y29taW5nQVBJL1JpY2hhcmRzTW9zdGx5U3dpZnQvUmljaGFyZHNNb3N0bHlTd2lmdC9CcmlkZ2lu
Z0hlYWRlci5oCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrUmVmUHJpdmF0ZS5oPgpkaWZmIC0tZ2l0IGEv
UGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseVN3aWZ0
L1JpY2hhcmRzTW9zdGx5U3dpZnQvV29ya2VyVGFzay5zd2lmdCBiL1BlcmZvcm1hbmNlVGVzdHMv
QVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3RseVN3
aWZ0L1dvcmtlclRhc2suc3dpZnQKaW5kZXggZDk3NmIwZTcyNTEwZWFkNzA1N2QzN2Q3ZGUwYWIy
OGJmNjc2ODgyMS4uZGU0YmI2ODlmOWY5NzkxMDdhMzg3ZjliZDBhNWM5NzAzNWUwMWZkYyAxMDA2
NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01v
c3RseVN3aWZ0L1JpY2hhcmRzTW9zdGx5U3dpZnQvV29ya2VyVGFzay5zd2lmdAorKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5U3dpZnQvUmlj
aGFyZHNNb3N0bHlTd2lmdC9Xb3JrZXJUYXNrLnN3aWZ0CkBAIC0zMSw2ICszMSw3IEBAIGNsYXNz
IFdvcmtlclRhc2sgOiBUYXNrIHsKICAgICBwcml2YXRlIHN0YXRpYyBsZXQgY29udGV4dCA6IEpT
Q29udGV4dCA9IHsKICAgICAgICAgbGV0IGNvbnRleHQgPSBKU0NvbnRleHQoKSEKICAgICAgICAg
bGV0IHNvdXJjZSA9IHRyeSEgU3RyaW5nKGNvbnRlbnRzT2ZGaWxlOiAicmljaGFyZHMuanMiKQor
ICAgICAgICBKU0xvY2soY29udGV4dC5qc0dsb2JhbENvbnRleHRSZWYpCiAgICAgICAgIGNvbnRl
eHQuZXZhbHVhdGVTY3JpcHQoc291cmNlKQogICAgICAgICBjb250ZXh0LmV4Y2VwdGlvbkhhbmRs
ZXIgPSB7IGNvbnRleHQsIGV4Y2VwdGlvbiBpbgogICAgICAgICAgICAgcHJpbnQoZXhjZXB0aW9u
IS50b1N0cmluZygpISkKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBj
b21pbmdBUEkvUmljaGFyZHNTb21lQy9SaWNoYXJkc1NvbWVDL21haW4ubSBiL1BlcmZvcm1hbmNl
VGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lQy9SaWNoYXJkc1NvbWVDL21h
aW4ubQppbmRleCA5MzJkYmIyMDQzN2MzMTE1NTcxYzRjYzVjNTViNmJmYjk5NGEyNmYxLi40NTc4
ZTIyMzk3NzAyNDc2NDAxNmJmMjQzNDRiMTBmOWE1NmI4MWUzIDEwMDY0NAotLS0gYS9QZXJmb3Jt
YW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZUMvUmljaGFyZHNTb21l
Qy9tYWluLm0KKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNo
YXJkc1NvbWVDL1JpY2hhcmRzU29tZUMvbWFpbi5tCkBAIC0yNCw2ICsyNCw3IEBACiAqLwogCiAj
aW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPEphdmFTY3JpcHRDb3Jl
L0pTTG9ja1JlZlByaXZhdGUuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmg+CiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KIApAQCAtMTMyLDcgKzEz
Myw3IEBAIGludCBtYWluKCkKICAgICBKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCA9IEpTR2xv
YmFsQ29udGV4dENyZWF0ZShOVUxMKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIGV4aXQo
MSk7Ci0gICAgCisgICAgSlNMb2NrKGNvbnRleHQpOwogICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9u
ID0gTlVMTDsKICAgICBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0NvbnRleHRHZXRHbG9i
YWxPYmplY3QoY29udGV4dCk7CiAgICAgCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FQ
SUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZU9iakMvUmljaGFyZHNTb21lT2JqQy9tYWlu
Lm0gYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZU9i
akMvUmljaGFyZHNTb21lT2JqQy9tYWluLm0KaW5kZXggZTRmZDAyNzgzNjUwODYxMGJiMmVkNmUx
NmQyMmIyOWRiYTM5NjFkYy4uNTUzYmU0MjlmZGM3MTMwZmFjZWFmMmQwOWFhOGFmYzc3MDVmZTlj
OCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNo
YXJkc1NvbWVPYmpDL1JpY2hhcmRzU29tZU9iakMvbWFpbi5tCisrKyBiL1BlcmZvcm1hbmNlVGVz
dHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lT2JqQy9SaWNoYXJkc1NvbWVPYmpD
L21haW4ubQpAQCAtMjQsNiArMjQsNyBAQAogKi8KIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3Vu
ZGF0aW9uLmg+CisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU0xvY2tSZWZQcml2YXRlLmg+CiAj
aW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgogI2ltcG9ydCA8UXVhcnR6
Q29yZS9RdWFydHpDb3JlLmg+CiAKQEAgLTkzLDcgKzk0LDcgQEAgaW50IG1haW4oKQogICAgIEpT
Q29udGV4dCAqY29udGV4dCA9IFtbSlNDb250ZXh0IGFsbG9jXSBpbml0XTsKICAgICBpZiAoIWNv
bnRleHQpCiAgICAgICAgIGV4aXQoMSk7Ci0KKyAgICBKU0xvY2soY29udGV4dC5KU0dsb2JhbENv
bnRleHRSZWYpOwogICAgIFtjb250ZXh0IHNldE9iamVjdDpXb3JrZXJUYXNrLnNlbGYgZm9yS2V5
ZWRTdWJzY3JpcHQ6QCJXb3JrZXJUYXNrIl07CiAgICAgW2NvbnRleHQgc2V0RXhjZXB0aW9uSGFu
ZGxlcjpeKEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZSAqZXhjZXB0aW9uKSB7CiAgICAgICAg
IE5TTG9nKEAiJUAiLCBleGNlcHRpb24udG9TdHJpbmcpOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc1NvbWVTd2lmdC9SaWNoYXJkc1Nv
bWVTd2lmdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElC
ZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc1NvbWVTd2lmdC9SaWNoYXJkc1NvbWVTd2lmdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDMzOTY1ZDM4YjVlYjc5YTAxNmM1OGZmNThkN2Ni
NzA4MjRkYjU4OTEuLjgwNWQ1ZWZmNTgzMThiNGZkZWNmNjdkNzc4MmZlNjQyNjJmZjE0NGEgMTAw
NjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNT
b21lU3dpZnQvUmljaGFyZHNTb21lU3dpZnQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZVN3aWZ0
L1JpY2hhcmRzU29tZVN3aWZ0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4LDYgKzI4
LDcgQEAKIAkJMTQwMTE4MTgyNDk5ODUxNzAwMzk4N0E5IC8qIFJpY2hhcmRzU29tZVN3aWZ0ICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQu
bWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBSaWNoYXJkc1Nv
bWVTd2lmdDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMTQwMTE4MUIy
NDk5ODUxNzAwMzk4N0E5IC8qIG1haW4uc3dpZnQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLnN3aWZ0OyBwYXRoID0gbWFpbi5zd2lm
dDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQxNUFEMTYyNDk5ODYwNTAwNUJCMkU0
IC8qIHJpY2hhcmRzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRoID0g
cmljaGFyZHMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE0NTA4N0VDMjU4MDU4
QjgwMEQ5NDE5NyAvKiBCcmlkZ2luZ0hlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCcmlkZ2luZ0hl
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVu
Y2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9u
ICovCkBAIC02MCw2ICs2MSw3IEBACiAJCTE0MDExODFBMjQ5OTg1MTcwMDM5ODdBOSAvKiBSaWNo
YXJkc1NvbWVTd2lmdCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJMTQ1MDg3RUMyNTgwNThCODAwRDk0MTk3IC8qIEJyaWRnaW5nSGVhZGVyLmggKi8sCiAJ
CQkJMTQwMTE4MUIyNDk5ODUxNzAwMzk4N0E5IC8qIG1haW4uc3dpZnQgKi8sCiAJCQkJMTQxNUFE
MTYyNDk5ODYwNTAwNUJCMkU0IC8qIHJpY2hhcmRzLmpzICovLAogCQkJKTsKQEAgLTI1MCw2ICsy
NTIsNyBAQAogCQkJYnVpbGRTZXR0aW5ncyA9IHsKIAkJCQlDT0RFX1NJR05fU1RZTEUgPSBBdXRv
bWF0aWM7CiAJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCQlTV0lGVF9P
QkpDX0JSSURHSU5HX0hFQURFUiA9IFJpY2hhcmRzU29tZVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmg7
CiAJCQkJU1dJRlRfVkVSU0lPTiA9IDUuMDsKIAkJCX07CiAJCQluYW1lID0gRGVidWc7CkBAIC0y
NTksNiArMjYyLDcgQEAKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7CiAJCQkJQ09ERV9TSUdOX1NUWUxF
ID0gQXV0b21hdGljOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJ
U1dJRlRfT0JKQ19CUklER0lOR19IRUFERVIgPSBSaWNoYXJkc1NvbWVTd2lmdC9CcmlkZ2luZ0hl
YWRlci5oOwogCQkJCVNXSUZUX1ZFUlNJT04gPSA1LjA7CiAJCQl9OwogCQkJbmFtZSA9IFJlbGVh
c2U7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1Jp
Y2hhcmRzU29tZVN3aWZ0L1JpY2hhcmRzU29tZVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmggYi9QZXJm
b3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZVN3aWZ0L1JpY2hh
cmRzU29tZVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJjMGU5MWZjN2Q5ZTI2
Mzk4OTkyYzdlY2EzODY5YjE5MjM3N2QyZgotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNl
VGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lU3dpZnQvUmljaGFyZHNTb21l
U3dpZnQvQnJpZGdpbmdIZWFkZXIuaApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9ja1JlZlByaXZhdGUuaD4K
ZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFy
ZHNTb21lU3dpZnQvUmljaGFyZHNTb21lU3dpZnQvbWFpbi5zd2lmdCBiL1BlcmZvcm1hbmNlVGVz
dHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lU3dpZnQvUmljaGFyZHNTb21lU3dp
ZnQvbWFpbi5zd2lmdAppbmRleCA0OWFlYjkyMWIwOTlhNWRhOWVkNWQ5NWUyYTQ3MjI2MDkwY2Rk
ZDNhLi40NTg0ZTJlMmEzODA3YjA4MWE3NDhhMGJjYmNiM2ZhMDlkMDY1ZDQ0IDEwMDY0NAotLS0g
YS9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZVN3aWZ0
L1JpY2hhcmRzU29tZVN3aWZ0L21haW4uc3dpZnQKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElC
ZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc1NvbWVTd2lmdC9SaWNoYXJkc1NvbWVTd2lmdC9tYWlu
LnN3aWZ0CkBAIC04Myw2ICs4Myw4IEBAIGd1YXJkIGxldCBjb250ZXh0ID0gSlNDb250ZXh0KCkg
ZWxzZSB7CiAgICAgZXhpdCgxKQogfQogCitKU0xvY2soY29udGV4dC5qc0dsb2JhbENvbnRleHRS
ZWYpCisKIGNvbnRleHQuc2V0T2JqZWN0KFdvcmtlclRhc2suc2VsZiwgZm9yS2V5ZWRTdWJzY3Jp
cHQ6ICJXb3JrZXJUYXNrIiBhcyBOU1N0cmluZykKIGNvbnRleHQuZXhjZXB0aW9uSGFuZGxlciA9
IHsgY29udGV4dCwgZXhjZXB0aW9uIGluCiAgICAgcHJpbnQoZXhjZXB0aW9uPy50b1N0cmluZygp
IGFzIEFueSkKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvYXBpLWJlbmNo
IGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9hcGktYmVuY2gKaW5kZXggYThiMTg3MDExNjE5
N2IwN2ZkZGQyZjQ3NDYzMWVlMGNlMjNhMGI3YS4uOWM2YTEwZjk1OWU0OWMzZGRkZjdhYzQ2MDZl
OWE3NmZlZWEwZTUzMSAxMDA3NTUKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9hcGkt
YmVuY2gKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9hcGktYmVuY2gKQEAgLTM2LDYg
KzM2LDcgQEAgQlVJTERfRElSRUNUT1JJRVM9KCkKIFJFRkVSRU5DRVM9KCJYIikKIENVUlJFTlRf
QVBJPSgpCiBVUENPTUlOR19BUEk9KCkKK0FSQ0hTPSR7QVJDSFM6LSQodW5hbWUgLW0pfQogCiBz
aG91bGRCdWlsZD10cnVlCiBydW5SZWZlcmVuY2VzPXRydWUKQEAgLTE0NiwxMSArMTQ3LDEyIEBA
IGJ1aWxkQmVuY2htYXJrKCkgewogICAgICAgICByZXR1cm4KICAgICBmaQogCi0gICAgbG9nICJC
dWlsZGluZyAkQkVOQ0hNQVJLX05BTUUuLi4iCi0gICAgeGNvZGVidWlsZCAtcHJvamVjdCAiJHBy
b2plY3QiIC10YXJnZXQgIiRCRU5DSE1BUktfTkFNRSIgLWNvbmZpZ3VyYXRpb24gUmVsZWFzZSBi
dWlsZAorICAgIGxvZyAiQnVpbGRpbmcgJEJFTkNITUFSS19OQU1FLi4uIChGUkFNRVdPUktfU0VB
UkNIX1BBVEhTPSckQlVJTERfRElSRUNUT1JZJykiCisgICAgeGNvZGVidWlsZCAtcHJvamVjdCAi
JHByb2plY3QiIC10YXJnZXQgIiRCRU5DSE1BUktfTkFNRSIgLWNvbmZpZ3VyYXRpb24gUmVsZWFz
ZSBidWlsZCAiRlJBTUVXT1JLX1NFQVJDSF9QQVRIUz0nJEJVSUxEX0RJUkVDVE9SWSciICJBUkNI
Uz0nJEFSQ0hTJyIKIH0KIAogYnVpbGQoKSB7CisgICAgQlVJTERfRElSRUNUT1JZPSQxCiAgICAg
Zm9yRWFjaEJlbmNobWFyayAiYnVpbGRCZW5jaG1hcmsiCiB9CiAKQEAgLTIyMyw3ICsyMjUsNyBA
QCBwcmludFJlc3VsdHMoKSB7CiAgICAgZmkKIAogICAgIGxvY2FsIHNjb3JlIGNvdW50Ci0gICAg
c2NvcmU9MQorICAgIHNjb3JlPTAKICAgICBjb3VudD0wCiAgICAgCiAgICAgcHJpbnRDYXRlZ29y
eSgpIHsKQEAgLTIzNywxMiArMjM5LDEyIEBAIHByaW50UmVzdWx0cygpIHsKICAgICAgICAgICAg
IGF2Zz0kKGNvbXB1dGVBdmVyYWdlICIkYmVuY2htYXJrSUQiKQogICAgICAgICAgICAgcHJpbnRB
dmVyYWdlICIkYmVuY2htYXJrSUQiICIkYXZnIgogICAgICAgICAgICAgY291bnQ9JCgoY291bnQg
KyAxKSkKLSAgICAgICAgICAgIHNjb3JlPSQoKHNjb3JlICogYXZnKSkKKyAgICAgICAgICAgIHNj
b3JlPSQoZWNobyAiJHNjb3JlIiAiJGF2ZyIgfCBhd2sgJ3twcmludCAoJDEgKyBsb2coJDIpKSB9
JykKICAgICAgICAgZG9uZQogICAgIH0KICAgICBwcmludENhdGVnb3J5ICJDVVJSRU5UX0FQSSIK
ICAgICBwcmludENhdGVnb3J5ICJVUENPTUlOR19BUEkiCi0gICAgc2NvcmU9JChlY2hvICIkc2Nv
cmUiICIkY291bnQiIHwgYXdrICd7IHByaW50KDUwMDAuMCAvICgkMS4wIF4gKDEuMCAvICQyKSkp
IH0nKQorICAgIHNjb3JlPSQoZWNobyAiJHNjb3JlIiAiJGNvdW50IiB8IGF3ayAneyBwcmludCg1
MDAwLjAgLyBleHAoJDEgLyAkMikpIH0nKQogCiAgICAgZWNobyAiIgogICAgIGVjaG8gIlNjb3Jl
OiAkc2NvcmUiCkBAIC0yNjUsMTEgKzI2NywxMSBAQCBydW4oKSB7CiBtYWluKCkgewogICAgIGNv
bGxlY3RGbGFncyAiJEAiCiAgICAgY29sbGVjdEJlbmNobWFya3MKLSAgICBpZiBbICIkc2hvdWxk
QnVpbGQiID09IHRydWUgXTsgdGhlbgotICAgICAgICBidWlsZAotICAgIGZpCi0KICAgICBmb3Ig
YnVpbGREaXJlY3RvcnkgaW4gIiR7QlVJTERfRElSRUNUT1JJRVNbQF19IjsgZG8KKyAgICAgICAg
aWYgWyAiJHNob3VsZEJ1aWxkIiA9PSB0cnVlIF07IHRoZW4KKyAgICAgICAgICAgIGJ1aWxkICIk
YnVpbGREaXJlY3RvcnkiCisgICAgICAgIGZpCisKICAgICAgICAgcnVuICIkYnVpbGREaXJlY3Rv
cnkiCiAgICAgZG9uZQogfQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VMb2cg
Yi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCA1ZmM4NzlmOTA3MDk0YzE1NjQ1MmZl
NGVjODdkODFiNmVjYzkxNWQ4Li5jMTAyYjQxNzMxM2Q2MGQyMTQzY2YzZDBiMjgwNDllZjYwOTA3
MGNkIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9QZXJmb3Jt
YW5jZVRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTEyLTA4ICBUYWRldSBa
YWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIEpTQyBBUEkgdG8g
YWxsb3cgYWNxdWlyaW5nIHRoZSBKU0xvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxOTY2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyAzIHRoaW5nczoKKyAgICAgICAgLSBD
aGFuZ2UgaG93IHRoZSBnZW9tZWFuIGlzIGNhbGN1bGF0ZWQgaW4gYXBpLWJlbmNoIHRvIGF2b2lk
IG92ZXJmbG93aW5nCisgICAgICAgIC0gQWxsb3cgbGlua2luZyBhZ2FpbnN0IHRoZSBsb2NhbCBi
dWlsZCB3ZSdyZSBiZW5jaG1hcmtpbmcKKyAgICAgICAgLSBBZG9wdCB0aGUgbmV3IEpTTG9jayBB
UEkgaW4gdGhlIFVwY29taW5nQVBJIHN1YnRlc3RzCisKKyAgICAgICAgVXNpbmcgdGhlIG5ldyBB
UEkgdGhlIHNjb3JlIGltcHJvdmVzIGJ5IH4xMy41JS4gSGVyZSBhcmUgdGhlIHJlc3VsdHMgZm9y
IGVhY2gKKyAgICAgICAgb2YgdGhlICJVcGNvbWluZ0FQSSIgc3VidGVzdHMgcGx1cyB0aGUgdG90
YWwgc2NvcmU6CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmVmb3JlICAgICAg
IEFmdGVyCisgICAgICAgIFJpY2hhcmRzTW9zdGx5QzogICAgICAgICAgNzdtcyAgICAgICAgMjNt
cworICAgICAgICBSaWNoYXJkc01vc3RseU9iakM6ICAgICAgMzA5bXMgICAgICAgMjgybXMKKyAg
ICAgICAgUmljaGFyZHNNb3N0bHlTd2lmdCAgICAgIDMwNW1zICAgICAgIDI4MG1zCisgICAgICAg
IFJpY2hhcmRzU29tZUM6ICAgICAgICAgICAxMDFtcyAgICAgICAgOTVtcworICAgICAgICBSaWNo
YXJkc1NvbWVPYmpDOiAgICAgICAgMTYwbXMgICAgICAgMTU3bXMKKyAgICAgICAgUmljaGFyZHNT
b21lU3dpZnQ6ICAgICAgIDIwMW1zICAgICAgIDIwMm1zCisgICAgICAgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICBTY29yZTogICAgICAgICAgICAg
ICAgIDI5LjU5NzQgICAgIDMzLjY0MDQKKworICAgICAgICAqIEFQSUJlbmNoL1VwY29taW5nQVBJ
L1JpY2hhcmRzTW9zdGx5Qy9SaWNoYXJkc01vc3RseUMvcmljaGFyZHMuYzoKKyAgICAgICAgKHdv
cmtmbik6CisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlPYmpD
L1JpY2hhcmRzTW9zdGx5T2JqQy54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9SaWNo
YXJkc01vc3RseU9iakMueGNzY2hlbWU6IFJlbmFtZWQgZnJvbSBQZXJmb3JtYW5jZVRlc3RzL0FQ
SUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5T2JqQy9SaWNoYXJkc01vc3RseU9iakMu
eGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvUmljaGFyZHNNb3N0bHlTd2lmdC54Y3Nj
aGVtZS4KKyAgICAgICAgKiBBUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseU9iakMv
UmljaGFyZHNNb3N0bHlPYmpDL1dvcmtlclRhc2subToKKyAgICAgICAgKCtbV29ya2VyVGFzayBj
b250ZXh0XSk6CisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlT
d2lmdC9SaWNoYXJkc01vc3RseVN3aWZ0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01v
c3RseVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmg6IENvcGllZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMv
QVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3RseVN3
aWZ0L1dvcmtlclRhc2suc3dpZnQuCisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmlj
aGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3RseVN3aWZ0L1dvcmtlclRhc2suc3dpZnQ6Cisg
ICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lQy9SaWNoYXJkc1NvbWVD
L21haW4ubToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIEFQSUJlbmNoL1VwY29taW5nQVBJ
L1JpY2hhcmRzU29tZU9iakMvUmljaGFyZHNTb21lT2JqQy9tYWluLm06CisgICAgICAgIChtYWlu
KToKKyAgICAgICAgKiBBUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc1NvbWVTd2lmdC9SaWNo
YXJkc1NvbWVTd2lmdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIEFQSUJl
bmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZVN3aWZ0L1JpY2hhcmRzU29tZVN3aWZ0L0JyaWRn
aW5nSGVhZGVyLmg6IENvcGllZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21p
bmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3RseVN3aWZ0L1dvcmtlclRhc2su
c3dpZnQuCisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lU3dpZnQv
UmljaGFyZHNTb21lU3dpZnQvbWFpbi5zd2lmdDoKKyAgICAgICAgKiBBUElCZW5jaC9hcGktYmVu
Y2g6CisKIDIwMjAtMTItMDcgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4K
IAogICAgICAgICBbQ01ha2VdIFJlbW92ZSBXRUJLSVRfV1JBUF9TT1VSQ0VMSVNUCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415793</attachid>
            <date>2020-12-09 13:09:38 -0800</date>
            <delta_ts>2020-12-10 14:40:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219663-20201209130938.patch</filename>
            <type>text/plain</type>
            <size>36418</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MmI0YmJkNWJmNGRjOTUxZjQxY2E5MjFiMTM3MmI3ZjA0NTQzNmM0Li5mMzZhZmY3ZWQ4NjBhNDEw
Yjg4ZDhkZThiNWM4NjIwYzQwMThhN2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0xMi0wOCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgYSBKU0MgQVBJIHRvIGFsbG93IGFjcXVpcmluZyB0aGUgSlNMb2Nr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk2NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1
Y2UgdHdvIG5ldyBmdW5jdGlvbnMgdG8gdGhlIEMgQVBJOiBKU0xvY2sgYW5kIEpTVW5sb2NrLiBU
aGVzZQorICAgICAgICBmdW5jdGlvbnMgYWxsb3cgdXNlcnMgdG8gdGFrZSBjb250cm9sIG9mIHRo
ZSBKU0NvbnRleHQncyBsb2NrLCB3aGljaAorICAgICAgICBjYW4gZ3JlYXRseSByZWR1Y2UgdGhl
IG92ZXJoZWFkIG9mIGJyaWRnaW5nIGJldHdlZW4gSlMgYW5kIG5hdGl2ZS4KKworICAgICAgICAq
IEFQSS9KU0xvY2tSZWYuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTTG9jayk6CisgICAgICAgIChK
U1VubG9jayk6CisgICAgICAgICogQVBJL0pTTG9ja1JlZlByaXZhdGUuaDogQWRkZWQuCisgICAg
ICAgICogQVBJL0pTVmFsdWVSZWYuY3BwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisKIDIwMjAtMTIt
MDggIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgbm9uLXVuaWZpZWQgYnVpbGQgZml4IGZvbGxvd2luZyByMjcwNTUyLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0xvY2tSZWYuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU0xvY2tSZWYuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczM2JmMTVlZDgyZmE3
NGUzODZjNzM2YzhlMjZjODBiNmY5OTVhYzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTTG9ja1JlZi5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJKU0xvY2tSZWZQcml2YXRlLmgiCisKKyNpbmNsdWRlICJKU0xvY2suaCIKKwor
dXNpbmcgbmFtZXNwYWNlIEpTQzsKKwordm9pZCBKU0xvY2soSlNDb250ZXh0UmVmIGN0eCkKK3sK
KyAgICBpZiAoIWN0eCkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KUyhj
dHgpOworICAgIGdsb2JhbE9iamVjdC0+dm0oKS5hcGlMb2NrKCkubG9jaygpOworfQorCit2b2lk
IEpTVW5sb2NrKEpTQ29udGV4dFJlZiBjdHgpCit7CisgICAgaWYgKCFjdHgpIHsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlMoY3R4KTsKKyAgICBnbG9iYWxPYmplY3QtPnZt
KCkuYXBpTG9jaygpLnVubG9jaygpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0xvY2tSZWZQcml2YXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
TG9ja1JlZlByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjE4MzJmMmIyYzRmZDRmMjY0NmQxYTUyYzk5
OTAyYTc4MGFiM2QxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU0xvY2tSZWZQcml2YXRlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7
CisjZW5kaWYKKworLyohCisgQGZ1bmN0aW9uCisgQGFic3RyYWN0IEFjcXVpcmUgdGhlIEFQSSBs
b2NrIGZvciB0aGUgZ2l2ZW4gSlNDb250ZXh0UmVmLgorIEBwYXJhbSBjdHggVGhlIGV4ZWN1dGlv
biBjb250ZXh0IHRvIGJlIGxvY2tlZC4KKyBAZGlzY3Vzc2lvbiBUaGUgbG9jayBoYXMgdG8gYmUg
aGVsZCB0byBwZXJmb3JtIGFueSBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgSlNDb250ZXh0UmVmLiBU
aGlzIGZ1bmN0aW9uIGFsbG93cyBob2xkaW5nIHRoZSBsb2NrIGFjcm9zcyBtdWx0aXBsZSBpbnRl
cmFjdGlvbnMgdG8gYW1vcnRpemUgdGhlIGNvc3QuCisgKi8KK0pTX0VYUE9SVCB2b2lkIEpTTG9j
ayhKU0NvbnRleHRSZWYgY3R4KTsKKworLyohCisgQGZ1bmN0aW9uCisgQGFic3RyYWN0IFJlbGVh
c2UgdGhlIEFQSSBsb2NrIGZvciB0aGUgZ2l2ZW4gSlNDb250ZXh0UmVmLgorIEBwYXJhbSBjdHgg
VGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIGJlIHVubG9ja2VkLgorIEBkaXNjdXNzaW9uIFJlbGVh
c2VzIHRoZSBsb2NrIHRoYXQgd2FzIHByZXZpb3VzbHkgYWNxdWlyZWQgdXNpbmcgSlNMb2NrLgor
ICovCitKU19FWFBPUlQgdm9pZCBKU1VubG9jayhKU0NvbnRleHRSZWYgY3R4KTsKKworI2lmZGVm
IF9fY3BsdXNwbHVzCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNWYWx1ZVJlZi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVS
ZWYuY3BwCmluZGV4IDVkYmEwODg5NjE5NDEzMTMyNTZjYWE2OWQ1YTdkYzE1YzYzOGU2NzQuLmVm
OTZkOGVmMmZkZGIxNDViMTRkMjUyMTBiNDU0NTlkMzA5YzlhODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFQ
SUNhc3QuaCIKICNpbmNsdWRlICJBUElVdGlscy5oIgogI2luY2x1ZGUgIkRhdGVJbnN0YW5jZS5o
IgorI2luY2x1ZGUgIkpTQVBJV3JhcHBlck9iamVjdC5oIgogI2luY2x1ZGUgIkpTQ0lubGluZXMu
aCIKICNpbmNsdWRlICJKU0NhbGxiYWNrT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNPTk9iamVjdC5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNWRkMDY3MDUzZGM3NGVkZDE2M2Q5
NmVlYWRlNzFlNTlkMzUzYjAzLi5jMzg1MTkxNmZkNmVhY2MxYjFmYTllMGQzYWU2MjMzZDY1ODFk
YTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODA5LDYgKzgwOSw3IEBACiAJ
CTE0NzgyOTdCMTM3OUU4QTgwMEE3QzJBMyAvKiBIYW5kbGVUeXBlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ2RkE1QTgxMzc4RjZCMDAwMzYyN0Ez
IC8qIEhhbmRsZVR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMTQ3QjgzQUMwRTZEQjhDOTAwNDc3NUE0IC8qIEJhdGNoZWRUcmFuc2l0aW9u
T3B0aW1pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNDdCODNBQTBFNkRCOEM5MDA0Nzc1QTQgLyogQmF0Y2hlZFRyYW5zaXRpb25PcHRpbWl6ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDdC
ODQ2MzBFNkRFNkIxMDA0Nzc1QTQgLyogUHV0UHJvcGVydHlTbG90LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDdCODQ2MjBFNkRFNkIxMDA0Nzc1QTQg
LyogUHV0UHJvcGVydHlTbG90LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJMTQ4NkE4QzAyNEFCRUQ0ODAwNzM5MjJEIC8qIEpTTG9ja1JlZlByaXZh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0ODZB
OEJGMjRBQkVEM0MwMDczOTIyRCAvKiBKU0xvY2tSZWZQcml2YXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQ4NzRBRTYxNUVCREU0QTAwMkUz
NTg3IC8qIEpTU2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDE0ODc0QUUyMTVFQkRFNEEwMDJFMzU4NyAvKiBKU1Njb3BlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQ4QTdCRjAxQjgyOTc1QTAw
MkQ5MTU3IC8qIElubGluZUNhbGxGcmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQ4QTdCRUUxQjgyOTc1QTAwMkQ5MTU3IC8qIElubGluZUNhbGxG
cmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTE0OENEMUQ4MTA4Q0Y5MDIwMDgxNjNDNiAvKiBKU0NvbnRleHRSZWZQcml2YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDhDRDFENzEwOENGOTAy
MDA4MTYzQzYgLyogSlNDb250ZXh0UmVmUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zNDE1LDYgKzM0MTYsOCBAQAogCQkxNDgyQjc4
QTBBNDMwNUFCMDA1MTdDRkMgLyogQVBJQ2FzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBUElDYXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0ODJCN0Ux
MEE0MzA3NjAwMDUxN0NGQyAvKiBKU09iamVjdFJlZi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU09iamVjdFJlZi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
NDgyQjdFMjBBNDMwNzYwMDA1MTdDRkMgLyogSlNPYmplY3RSZWYuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPYmplY3RSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxNDg2QThCRTI0QUJFRDNCMDA3MzkyMkQgLyogSlNMb2NrUmVmLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTTG9ja1JlZi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTE0ODZBOEJGMjRBQkVEM0MwMDczOTIyRCAvKiBKU0xvY2tSZWZQcml2YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTTG9ja1JlZlByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMTQ4NzRBRTExNUVCREU0QTAwMkUzNTg3IC8qIEpTU2NvcGUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTY29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTE0ODc0QUUyMTVFQkRFNEEwMDJFMzU4NyAvKiBKU1Njb3BlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMTQ4N0NFMTYyMzc3NDEwMDAwNDQ0MjlDIC8qIFdhc21HZW5lcmF0b3JUcmFp
dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2FzbUdlbmVyYXRvclRyYWl0
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjQ4NSw2ICs2NDg4LDggQEAKIAkJ
CQk4NkUzQzYwQTE2N0JBQjg3MDA2RDc2MEEgLyogSlNFeHBvcnQuaCAqLywKIAkJCQkwRjBDQUVG
OTFFQzREQTYyMDA5NzBEMTIgLyogSlNIZWFwRmluYWxpemVyUHJpdmF0ZS5jcHAgKi8sCiAJCQkJ
MEYwQ0FFRkExRUM0REE2MjAwOTcwRDEyIC8qIEpTSGVhcEZpbmFsaXplclByaXZhdGUuaCAqLywK
KwkJCQkxNDg2QThCRTI0QUJFRDNCMDA3MzkyMkQgLyogSlNMb2NrUmVmLmNwcCAqLywKKwkJCQkx
NDg2QThCRjI0QUJFRDNDMDA3MzkyMkQgLyogSlNMb2NrUmVmUHJpdmF0ZS5oICovLAogCQkJCUMy
NUQ3MDlBMTZERTk5RjQwMEZDQTZCQyAvKiBKU01hbmFnZWRWYWx1ZS5oICovLAogCQkJCUMyNUQ3
MDk5MTZERTk5RjQwMEZDQTZCQyAvKiBKU01hbmFnZWRWYWx1ZS5tbSAqLywKIAkJCQkyQTRCQjdG
MjE4QTQxMTc5MDA4QTBGQ0QgLyogSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oICovLApAQCAtMTAw
NDIsNiArMTAwNDcsNyBAQAogCQkJCUE1MDNGQTFFMTg4RTBGQjAwMDExMEYxNCAvKiBKU0phdmFT
Y3JpcHRDYWxsRnJhbWVQcm90b3R5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDE2MEUx
NkY1Q0QwMEIzNDQ2MCAvKiBKU0xleGljYWxFbnZpcm9ubWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxOEM0MjMwRTE2RjVDRDAwQjM0NDYwIC8qIEpTTG9jay5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMTQ4NkE4QzAyNEFCRUQ0ODAwNzM5MjJEIC8qIEpTTG9ja1JlZlByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUMyNUQ3MDlDMTZERTk5RjQwMEZDQTZCQyAvKiBKU01hbmFnZWRWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMkE0QkI3RjMxOEE0MTE3OTAwOEEwRkNEIC8qIEpTTWFuYWdl
ZFZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDA4NzQyMTdDQkU4RUIwMEMz
RTY0MyAvKiBKU01hcC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQK
aW5kZXggZjk3ZmIwZTk1ODQwMGRiYzFmMjk0ZGJmYzJiZTUyYWFjZWZmY2M1OC4uMjFkYzUyMWJi
ODVhMTA5OWZhNzVlNTcxYzVmOWQyNzg5YjY4NDAwNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2Vz
LnR4dApAQCAtMzEsNiArMzEsNyBAQCBBUEkvSlNDYWxsYmFja09iamVjdC5jcHAKIEFQSS9KU0Ns
YXNzUmVmLmNwcAogQVBJL0pTQ29udGV4dFJlZi5jcHAKIEFQSS9KU0hlYXBGaW5hbGl6ZXJQcml2
YXRlLmNwcAorQVBJL0pTTG9ja1JlZi5jcHAKIEFQSS9KU01hcmtpbmdDb25zdHJhaW50UHJpdmF0
ZS5jcHAKIEFQSS9KU09iamVjdFJlZi5jcHAKIEFQSS9KU1R5cGVkQXJyYXkuY3BwCmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5
Qy9SaWNoYXJkc01vc3RseUMvcmljaGFyZHMuYyBiL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gv
VXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlDL1JpY2hhcmRzTW9zdGx5Qy9yaWNoYXJkcy5jCmlu
ZGV4IGM1MjI5NDdhYThhMGU1Y2I4YzY3ZmFiODIyNWYzM2I5YTBiYWZlYmUuLjZkNTQyOTYwNDFh
ZmVlMGNjN2M5MzI1Y2YxNWI5ZTIzNjAxNzE1OWEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVz
dHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlDL1JpY2hhcmRzTW9zdGx5Qy9y
aWNoYXJkcy5jCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmlj
aGFyZHNNb3N0bHlDL1JpY2hhcmRzTW9zdGx5Qy9yaWNoYXJkcy5jCkBAIC0xMSw3ICsxMSw4IEBA
CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KIAotI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmg+CisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9K
U0xvY2tSZWZQcml2YXRlLmg+CisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5oPgogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CiAKICNpZiAxCkBAIC0zMjIs
NiArMzIzLDcgQEAgc3RydWN0IHRhc2sgKndvcmtmbihzdHJ1Y3QgcGFja2V0ICpwa3QpCiAgICAg
c3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CiAgICAgZGlzcGF0Y2hfb25jZSgmb25j
ZVRva2VuLCBeewogICAgICAgICBjdHggPSBKU0dsb2JhbENvbnRleHRDcmVhdGUoTlVMTCk7Cisg
ICAgICAgIEpTTG9jayhjdHgpOwogICAgICAgICBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QgPSBK
U0NvbnRleHRHZXRHbG9iYWxPYmplY3QoY3R4KTsKICAgICAgICAgCiAgICAgICAgIEpTU3RyaW5n
UmVmIHNvdXJjZSA9IHJlYWRGaWxlKCJyaWNoYXJkcy5qcyIpOwpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseU9iakMvUmljaGFy
ZHNNb3N0bHlPYmpDLnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL1JpY2hhcmRzTW9z
dGx5T2JqQy54Y3NjaGVtZSBiL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkv
UmljaGFyZHNNb3N0bHlPYmpDL1JpY2hhcmRzTW9zdGx5T2JqQy54Y29kZXByb2oveGNzaGFyZWRk
YXRhL3hjc2NoZW1lcy9SaWNoYXJkc01vc3RseU9iakMueGNzY2hlbWUKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc4
OGU1MGEzYTA2MjYyYjQxYjhhMzUyYTFlNDhlNzRmNDhkYTU5YQotLS0gL2Rldi9udWxsCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlPYmpD
L1JpY2hhcmRzTW9zdGx5T2JqQy54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9SaWNo
YXJkc01vc3RseU9iakMueGNzY2hlbWUKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxTY2hlbWUKKyAgIExhc3RVcGdyYWRlVmVyc2lvbiA9
ICIxMjAwIgorICAgdmVyc2lvbiA9ICIxLjciPgorICAgPEJ1aWxkQWN0aW9uCisgICAgICBwYXJh
bGxlbGl6ZUJ1aWxkYWJsZXMgPSAiWUVTIgorICAgICAgYnVpbGRJbXBsaWNpdERlcGVuZGVuY2ll
cyA9ICJZRVMiPgorICAgICAgPEJ1aWxkQWN0aW9uRW50cmllcz4KKyAgICAgICAgIDxCdWlsZEFj
dGlvbkVudHJ5CisgICAgICAgICAgICBidWlsZEZvclRlc3RpbmcgPSAiWUVTIgorICAgICAgICAg
ICAgYnVpbGRGb3JSdW5uaW5nID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yUHJvZmlsaW5n
ID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yQXJjaGl2aW5nID0gIllFUyIKKyAgICAgICAg
ICAgIGJ1aWxkRm9yQW5hbHl6aW5nID0gIllFUyI+CisgICAgICAgICAgICA8QnVpbGRhYmxlUmVm
ZXJlbmNlCisgICAgICAgICAgICAgICBCdWlsZGFibGVJZGVudGlmaWVyID0gInByaW1hcnkiCisg
ICAgICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0gIjE0MTVBRDIxMjQ5OUJDNUMwMDVC
QjJFNCIKKyAgICAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAiUmljaGFyZHNNb3N0bHlPYmpD
IgorICAgICAgICAgICAgICAgQmx1ZXByaW50TmFtZSA9ICJSaWNoYXJkc01vc3RseU9iakMiCisg
ICAgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpSaWNoYXJkc01v
c3RseU9iakMueGNvZGVwcm9qIj4KKyAgICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgor
ICAgICAgICAgPC9CdWlsZEFjdGlvbkVudHJ5PgorICAgICAgPC9CdWlsZEFjdGlvbkVudHJpZXM+
CisgICA8L0J1aWxkQWN0aW9uPgorICAgPFRlc3RBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJh
dGlvbiA9ICJEZWJ1ZyIKKyAgICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhjb2Rl
LkRlYnVnZ2VyRm91bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgorICAgICAgc2VsZWN0ZWRMYXVuY2hl
cklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxMREIiCisg
ICAgICBzaG91bGRVc2VMYXVuY2hTY2hlbWVBcmdzRW52ID0gIllFUyI+CisgICAgICA8VGVzdGFi
bGVzPgorICAgICAgPC9UZXN0YWJsZXM+CisgICA8L1Rlc3RBY3Rpb24+CisgICA8TGF1bmNoQWN0
aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCisgICAgICBzZWxlY3RlZERl
YnVnZ2VySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdnZXIuTExE
QiIKKyAgICAgIHNlbGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91
bmRhdGlvbi5MYXVuY2hlci5MTERCIgorICAgICAgbGF1bmNoU3R5bGUgPSAiMCIKKyAgICAgIHVz
ZUN1c3RvbVdvcmtpbmdEaXJlY3RvcnkgPSAiTk8iCisgICAgICBpZ25vcmVzUGVyc2lzdGVudFN0
YXRlT25MYXVuY2ggPSAiTk8iCisgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZRVMi
CisgICAgICBkZWJ1Z1NlcnZpY2VFeHRlbnNpb24gPSAiaW50ZXJuYWwiCisgICAgICBhbGxvd0xv
Y2F0aW9uU2ltdWxhdGlvbiA9ICJZRVMiPgorICAgICAgPEJ1aWxkYWJsZVByb2R1Y3RSdW5uYWJs
ZQorICAgICAgICAgcnVubmFibGVEZWJ1Z2dpbmdNb2RlID0gIjAiPgorICAgICAgICAgPEJ1aWxk
YWJsZVJlZmVyZW5jZQorICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5
IgorICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICIxNDE1QUQyMTI0OTlCQzVDMDA1
QkIyRTQiCisgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0gIlJpY2hhcmRzTW9zdGx5T2JqQyIK
KyAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAiUmljaGFyZHNNb3N0bHlPYmpDIgorICAgICAg
ICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6UmljaGFyZHNNb3N0bHlPYmpD
Lnhjb2RlcHJvaiI+CisgICAgICAgICA8L0J1aWxkYWJsZVJlZmVyZW5jZT4KKyAgICAgIDwvQnVp
bGRhYmxlUHJvZHVjdFJ1bm5hYmxlPgorICAgPC9MYXVuY2hBY3Rpb24+CisgICA8UHJvZmlsZUFj
dGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiCisgICAgICBzaG91bGRV
c2VMYXVuY2hTY2hlbWVBcmdzRW52ID0gIllFUyIKKyAgICAgIHNhdmVkVG9vbElkZW50aWZpZXIg
PSAiIgorICAgICAgdXNlQ3VzdG9tV29ya2luZ0RpcmVjdG9yeSA9ICJOTyIKKyAgICAgIGRlYnVn
RG9jdW1lbnRWZXJzaW9uaW5nID0gIllFUyI+CisgICAgICA8QnVpbGRhYmxlUHJvZHVjdFJ1bm5h
YmxlCisgICAgICAgICBydW5uYWJsZURlYnVnZ2luZ01vZGUgPSAiMCI+CisgICAgICAgICA8QnVp
bGRhYmxlUmVmZXJlbmNlCisgICAgICAgICAgICBCdWlsZGFibGVJZGVudGlmaWVyID0gInByaW1h
cnkiCisgICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0gIjE0MTVBRDIxMjQ5OUJDNUMw
MDVCQjJFNCIKKyAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAiUmljaGFyZHNNb3N0bHlPYmpD
IgorICAgICAgICAgICAgQmx1ZXByaW50TmFtZSA9ICJSaWNoYXJkc01vc3RseU9iakMiCisgICAg
ICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpSaWNoYXJkc01vc3RseU9i
akMueGNvZGVwcm9qIj4KKyAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgorICAgICAgPC9C
dWlsZGFibGVQcm9kdWN0UnVubmFibGU+CisgICA8L1Byb2ZpbGVBY3Rpb24+CisgICA8QW5hbHl6
ZUFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIkRlYnVnIj4KKyAgIDwvQW5hbHl6
ZUFjdGlvbj4KKyAgIDxBcmNoaXZlQWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAi
UmVsZWFzZSIKKyAgICAgIHJldmVhbEFyY2hpdmVJbk9yZ2FuaXplciA9ICJZRVMiPgorICAgPC9B
cmNoaXZlQWN0aW9uPgorICAgPEluc3RhbGxBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJhdGlv
biA9ICJSZWxlYXNlIj4KKyAgIDwvSW5zdGFsbEFjdGlvbj4KKzwvU2NoZW1lPgpkaWZmIC0tZ2l0
IGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseU9i
akMvUmljaGFyZHNNb3N0bHlPYmpDLnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL1Jp
Y2hhcmRzTW9zdGx5U3dpZnQueGNzY2hlbWUgYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1Vw
Y29taW5nQVBJL1JpY2hhcmRzTW9zdGx5T2JqQy9SaWNoYXJkc01vc3RseU9iakMueGNvZGVwcm9q
L3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvUmljaGFyZHNNb3N0bHlTd2lmdC54Y3NjaGVtZQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc4OGU1MGEzYTA2MjYyYjQxYjhhMzUyYTFlNDhl
NzRmNDhkYTU5YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5T2Jq
Qy9SaWNoYXJkc01vc3RseU9iakMueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvUmlj
aGFyZHNNb3N0bHlTd2lmdC54Y3NjaGVtZQorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAgQEAK
LTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08U2NoZW1lCi0gICBMYXN0
VXBncmFkZVZlcnNpb24gPSAiMTIwMCIKLSAgIHZlcnNpb24gPSAiMS43Ij4KLSAgIDxCdWlsZEFj
dGlvbgotICAgICAgcGFyYWxsZWxpemVCdWlsZGFibGVzID0gIllFUyIKLSAgICAgIGJ1aWxkSW1w
bGljaXREZXBlbmRlbmNpZXMgPSAiWUVTIj4KLSAgICAgIDxCdWlsZEFjdGlvbkVudHJpZXM+Ci0g
ICAgICAgICA8QnVpbGRBY3Rpb25FbnRyeQotICAgICAgICAgICAgYnVpbGRGb3JUZXN0aW5nID0g
IllFUyIKLSAgICAgICAgICAgIGJ1aWxkRm9yUnVubmluZyA9ICJZRVMiCi0gICAgICAgICAgICBi
dWlsZEZvclByb2ZpbGluZyA9ICJZRVMiCi0gICAgICAgICAgICBidWlsZEZvckFyY2hpdmluZyA9
ICJZRVMiCi0gICAgICAgICAgICBidWlsZEZvckFuYWx5emluZyA9ICJZRVMiPgotICAgICAgICAg
ICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQotICAgICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmll
ciA9ICJwcmltYXJ5IgotICAgICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICIxNDE1
QUQyMTI0OTlCQzVDMDA1QkIyRTQiCi0gICAgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0gIlJp
Y2hhcmRzTW9zdGx5T2JqQyIKLSAgICAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAiUmljaGFy
ZHNNb3N0bHlPYmpDIgotICAgICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250
YWluZXI6UmljaGFyZHNNb3N0bHlPYmpDLnhjb2RlcHJvaiI+Ci0gICAgICAgICAgICA8L0J1aWxk
YWJsZVJlZmVyZW5jZT4KLSAgICAgICAgIDwvQnVpbGRBY3Rpb25FbnRyeT4KLSAgICAgIDwvQnVp
bGRBY3Rpb25FbnRyaWVzPgotICAgPC9CdWlsZEFjdGlvbj4KLSAgIDxUZXN0QWN0aW9uCi0gICAg
ICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCi0gICAgICBzZWxlY3RlZERlYnVnZ2VySWRl
bnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdnZXIuTExEQiIKLSAgICAg
IHNlbGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5M
YXVuY2hlci5MTERCIgotICAgICAgc2hvdWxkVXNlTGF1bmNoU2NoZW1lQXJnc0VudiA9ICJZRVMi
PgotICAgICAgPFRlc3RhYmxlcz4KLSAgICAgIDwvVGVzdGFibGVzPgotICAgPC9UZXN0QWN0aW9u
PgotICAgPExhdW5jaEFjdGlvbgotICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIkRlYnVnIgot
ICAgICAgc2VsZWN0ZWREZWJ1Z2dlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0
aW9uLkRlYnVnZ2VyLkxMREIiCi0gICAgICBzZWxlY3RlZExhdW5jaGVySWRlbnRpZmllciA9ICJY
Y29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uTGF1bmNoZXIuTExEQiIKLSAgICAgIGxhdW5jaFN0eWxl
ID0gIjAiCi0gICAgICB1c2VDdXN0b21Xb3JraW5nRGlyZWN0b3J5ID0gIk5PIgotICAgICAgaWdu
b3Jlc1BlcnNpc3RlbnRTdGF0ZU9uTGF1bmNoID0gIk5PIgotICAgICAgZGVidWdEb2N1bWVudFZl
cnNpb25pbmcgPSAiWUVTIgotICAgICAgZGVidWdTZXJ2aWNlRXh0ZW5zaW9uID0gImludGVybmFs
IgotICAgICAgYWxsb3dMb2NhdGlvblNpbXVsYXRpb24gPSAiWUVTIj4KLSAgICAgIDxCdWlsZGFi
bGVQcm9kdWN0UnVubmFibGUKLSAgICAgICAgIHJ1bm5hYmxlRGVidWdnaW5nTW9kZSA9ICIwIj4K
LSAgICAgICAgIDxCdWlsZGFibGVSZWZlcmVuY2UKLSAgICAgICAgICAgIEJ1aWxkYWJsZUlkZW50
aWZpZXIgPSAicHJpbWFyeSIKLSAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIgPSAiMTQx
NUFEMjEyNDk5QkM1QzAwNUJCMkU0IgotICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJSaWNo
YXJkc01vc3RseU9iakMiCi0gICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIlJpY2hhcmRzTW9z
dGx5T2JqQyIKLSAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAiY29udGFpbmVyOlJp
Y2hhcmRzTW9zdGx5T2JqQy54Y29kZXByb2oiPgotICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVu
Y2U+Ci0gICAgICA8L0J1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZT4KLSAgIDwvTGF1bmNoQWN0aW9u
PgotICAgPFByb2ZpbGVBY3Rpb24KLSAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxlYXNl
IgotICAgICAgc2hvdWxkVXNlTGF1bmNoU2NoZW1lQXJnc0VudiA9ICJZRVMiCi0gICAgICBzYXZl
ZFRvb2xJZGVudGlmaWVyID0gIiIKLSAgICAgIHVzZUN1c3RvbVdvcmtpbmdEaXJlY3RvcnkgPSAi
Tk8iCi0gICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZRVMiPgotICAgICAgPEJ1aWxk
YWJsZVByb2R1Y3RSdW5uYWJsZQotICAgICAgICAgcnVubmFibGVEZWJ1Z2dpbmdNb2RlID0gIjAi
PgotICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQotICAgICAgICAgICAgQnVpbGRhYmxlSWRl
bnRpZmllciA9ICJwcmltYXJ5IgotICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICIx
NDE1QUQyMTI0OTlCQzVDMDA1QkIyRTQiCi0gICAgICAgICAgICBCdWlsZGFibGVOYW1lID0gIlJp
Y2hhcmRzTW9zdGx5T2JqQyIKLSAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAiUmljaGFyZHNN
b3N0bHlPYmpDIgotICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6
UmljaGFyZHNNb3N0bHlPYmpDLnhjb2RlcHJvaiI+Ci0gICAgICAgICA8L0J1aWxkYWJsZVJlZmVy
ZW5jZT4KLSAgICAgIDwvQnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlPgotICAgPC9Qcm9maWxlQWN0
aW9uPgotICAgPEFuYWx5emVBY3Rpb24KLSAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJEZWJ1
ZyI+Ci0gICA8L0FuYWx5emVBY3Rpb24+Ci0gICA8QXJjaGl2ZUFjdGlvbgotICAgICAgYnVpbGRD
b25maWd1cmF0aW9uID0gIlJlbGVhc2UiCi0gICAgICByZXZlYWxBcmNoaXZlSW5Pcmdhbml6ZXIg
PSAiWUVTIj4KLSAgIDwvQXJjaGl2ZUFjdGlvbj4KLSAgIDxJbnN0YWxsQWN0aW9uCi0gICAgICBi
dWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSI+Ci0gICA8L0luc3RhbGxBY3Rpb24+Ci08L1Nj
aGVtZT4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkv
UmljaGFyZHNNb3N0bHlPYmpDL1JpY2hhcmRzTW9zdGx5T2JqQy9Xb3JrZXJUYXNrLm0gYi9QZXJm
b3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5T2JqQy9SaWNo
YXJkc01vc3RseU9iakMvV29ya2VyVGFzay5tCmluZGV4IGFkMWJjZDk0NWRkNzFmOTZkNzZmMzYx
MzM2ZDI5N2JlZGIzMjVhYTguLjExZTliMzQ0NWY3NDY0YWFhYzBkMGFlMmE1YjU0MTk0NjQ2OTZl
OTEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmlj
aGFyZHNNb3N0bHlPYmpDL1JpY2hhcmRzTW9zdGx5T2JqQy9Xb3JrZXJUYXNrLm0KKysrIGIvUGVy
Zm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseU9iakMvUmlj
aGFyZHNNb3N0bHlPYmpDL1dvcmtlclRhc2subQpAQCAtMjUsNiArMjUsNyBAQAogCiAjaW1wb3J0
ICJXb3JrZXJUYXNrLmgiCiAKKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTTG9ja1JlZlByaXZh
dGUuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmg+CiAKIEBpbXBs
ZW1lbnRhdGlvbiBXb3JrZXJUYXNrIHsKQEAgLTQ0LDYgKzQ1LDcgQEAgKyAoSlNDb250ZXh0ICop
Y29udGV4dCB7CiAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CiAgICAgZGlz
cGF0Y2hfb25jZSgmb25jZVRva2VuLCBeewogICAgICAgICBjb250ZXh0ID0gW1tKU0NvbnRleHQg
YWxsb2NdIGluaXRdOworICAgICAgICBKU0xvY2soY29udGV4dC5KU0dsb2JhbENvbnRleHRSZWYp
OwogICAgICAgICBbY29udGV4dCBzZXRFeGNlcHRpb25IYW5kbGVyOl4oSlNDb250ZXh0ICpjb250
ZXh0LCBKU1ZhbHVlICpleGNlcHRpb24pIHsKICAgICAgICAgICAgIE5TTG9nKEAiJUAiLCBleGNl
cHRpb24udG9TdHJpbmcpOwogICAgICAgICAgICAgZXhpdCgyKTsKZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNo
YXJkc01vc3RseVN3aWZ0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9QZXJmb3JtYW5jZVRl
c3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5U3dpZnQvUmljaGFyZHNNb3N0
bHlTd2lmdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI5NjBhNWRhYTJhNWM4YmI4
NGRlYjU5MzM5ZmUyMTk3YzU2YTAzN2UuLmI5MzBlNWFlZDk0ZWY0MDQ1YTY0MmRlM2RhYzcxMDk5
OTUyYzM3ODkgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdB
UEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3RseVN3aWZ0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9S
aWNoYXJkc01vc3RseVN3aWZ0L1JpY2hhcmRzTW9zdGx5U3dpZnQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNDQsNiArNDQsNyBAQAogCQkxNDBBQUMzRjI0OUIwMUQxMDAwMUYxMUUgLyog
RGV2aWNlVGFzay5zd2lmdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuc3dpZnQ7IHBhdGggPSBEZXZp
Y2VUYXNrLnN3aWZ0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDE1QUQyMjI0OTlC
QzVDMDA1QkIyRTQgLyogUmljaGFyZHNNb3N0bHlTd2lmdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsg
aW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gUmljaGFyZHNNb3N0bHlTd2lmdDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMTQxNUFEMjUyNDk5QkM1QzAwNUJCMkU0IC8q
IG1haW4uc3dpZnQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLnN3aWZ0OyBwYXRoID0gbWFpbi5zd2lmdDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMTQ1MDg3RTkyNTgwNTgxOTAwRDk0MTk3IC8qIEJyaWRnaW5nSGVhZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEJyaWRnaW5nSGVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBC
WEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTc2LDYgKzc3LDcgQEAKIAkJMTQx
NUFEMjQyNDk5QkM1QzAwNUJCMkU0IC8qIFJpY2hhcmRzTW9zdGx5U3dpZnQgKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTE0NTA4N0U5MjU4MDU4MTkwMEQ5
NDE5NyAvKiBCcmlkZ2luZ0hlYWRlci5oICovLAogCQkJCTE0MEFBQzNGMjQ5QjAxRDEwMDAxRjEx
RSAvKiBEZXZpY2VUYXNrLnN3aWZ0ICovLAogCQkJCTE0MEFBQzNEMjQ5QjAxRDEwMDAxRjExRSAv
KiBIYW5kbGVyVGFzay5zd2lmdCAqLywKIAkJCQkxNDBBQUMzQzI0OUIwMUQxMDAwMUYxMUUgLyog
SWRsZVRhc2suc3dpZnQgKi8sCkBAIC0yODIsNiArMjg0LDcgQEAKIAkJCWJ1aWxkU2V0dGluZ3Mg
PSB7CiAJCQkJQ09ERV9TSUdOX1NUWUxFID0gQXV0b21hdGljOwogCQkJCVBST0RVQ1RfTkFNRSA9
ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJU1dJRlRfT0JKQ19CUklER0lOR19IRUFERVIgPSBSaWNo
YXJkc01vc3RseVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmg7CiAJCQkJU1dJRlRfVkVSU0lPTiA9IDUu
MDsKIAkJCX07CiAJCQluYW1lID0gRGVidWc7CkBAIC0yOTEsNiArMjk0LDcgQEAKIAkJCWJ1aWxk
U2V0dGluZ3MgPSB7CiAJCQkJQ09ERV9TSUdOX1NUWUxFID0gQXV0b21hdGljOwogCQkJCVBST0RV
Q1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJU1dJRlRfT0JKQ19CUklER0lOR19IRUFE
RVIgPSBSaWNoYXJkc01vc3RseVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmg7CiAJCQkJU1dJRlRfVkVS
U0lPTiA9IDUuMDsKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKZGlmZiAtLWdpdCBhL1BlcmZv
cm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNo
YXJkc01vc3RseVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmggYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJl
bmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5U3dpZnQvUmljaGFyZHNNb3N0bHlTd2lmdC9C
cmlkZ2luZ0hlYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyYzBlOTFmYzdkOWUyNjM5ODk5MmM3ZWNhMzg2
OWIxOTIzNzdkMmYKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNo
L1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5U3dpZnQvUmljaGFyZHNNb3N0bHlTd2lmdC9Ccmlk
Z2luZ0hlYWRlci5oCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrUmVmUHJpdmF0ZS5oPgpkaWZmIC0tZ2l0
IGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseVN3
aWZ0L1JpY2hhcmRzTW9zdGx5U3dpZnQvV29ya2VyVGFzay5zd2lmdCBiL1BlcmZvcm1hbmNlVGVz
dHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3Rs
eVN3aWZ0L1dvcmtlclRhc2suc3dpZnQKaW5kZXggZDk3NmIwZTcyNTEwZWFkNzA1N2QzN2Q3ZGUw
YWIyOGJmNjc2ODgyMS4uZGU0YmI2ODlmOWY5NzkxMDdhMzg3ZjliZDBhNWM5NzAzNWUwMWZkYyAx
MDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJk
c01vc3RseVN3aWZ0L1JpY2hhcmRzTW9zdGx5U3dpZnQvV29ya2VyVGFzay5zd2lmdAorKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5U3dpZnQv
UmljaGFyZHNNb3N0bHlTd2lmdC9Xb3JrZXJUYXNrLnN3aWZ0CkBAIC0zMSw2ICszMSw3IEBAIGNs
YXNzIFdvcmtlclRhc2sgOiBUYXNrIHsKICAgICBwcml2YXRlIHN0YXRpYyBsZXQgY29udGV4dCA6
IEpTQ29udGV4dCA9IHsKICAgICAgICAgbGV0IGNvbnRleHQgPSBKU0NvbnRleHQoKSEKICAgICAg
ICAgbGV0IHNvdXJjZSA9IHRyeSEgU3RyaW5nKGNvbnRlbnRzT2ZGaWxlOiAicmljaGFyZHMuanMi
KQorICAgICAgICBKU0xvY2soY29udGV4dC5qc0dsb2JhbENvbnRleHRSZWYpCiAgICAgICAgIGNv
bnRleHQuZXZhbHVhdGVTY3JpcHQoc291cmNlKQogICAgICAgICBjb250ZXh0LmV4Y2VwdGlvbkhh
bmRsZXIgPSB7IGNvbnRleHQsIGV4Y2VwdGlvbiBpbgogICAgICAgICAgICAgcHJpbnQoZXhjZXB0
aW9uIS50b1N0cmluZygpISkKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gv
VXBjb21pbmdBUEkvUmljaGFyZHNTb21lQy9SaWNoYXJkc1NvbWVDL21haW4ubSBiL1BlcmZvcm1h
bmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lQy9SaWNoYXJkc1NvbWVD
L21haW4ubQppbmRleCA5MzJkYmIyMDQzN2MzMTE1NTcxYzRjYzVjNTViNmJmYjk5NGEyNmYxLi40
NTc4ZTIyMzk3NzAyNDc2NDAxNmJmMjQzNDRiMTBmOWE1NmI4MWUzIDEwMDY0NAotLS0gYS9QZXJm
b3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZUMvUmljaGFyZHNT
b21lQy9tYWluLm0KKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9S
aWNoYXJkc1NvbWVDL1JpY2hhcmRzU29tZUMvbWFpbi5tCkBAIC0yNCw2ICsyNCw3IEBACiAqLwog
CiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPEphdmFTY3JpcHRD
b3JlL0pTTG9ja1JlZlByaXZhdGUuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmg+CiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KIApAQCAtMTMyLDcg
KzEzMyw3IEBAIGludCBtYWluKCkKICAgICBKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCA9IEpT
R2xvYmFsQ29udGV4dENyZWF0ZShOVUxMKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgIGV4
aXQoMSk7Ci0gICAgCisgICAgSlNMb2NrKGNvbnRleHQpOwogICAgIEpTVmFsdWVSZWYgZXhjZXB0
aW9uID0gTlVMTDsKICAgICBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0NvbnRleHRHZXRH
bG9iYWxPYmplY3QoY29udGV4dCk7CiAgICAgCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZU9iakMvUmljaGFyZHNTb21lT2JqQy9t
YWluLm0gYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29t
ZU9iakMvUmljaGFyZHNTb21lT2JqQy9tYWluLm0KaW5kZXggZTRmZDAyNzgzNjUwODYxMGJiMmVk
NmUxNmQyMmIyOWRiYTM5NjFkYy4uNTUzYmU0MjlmZGM3MTMwZmFjZWFmMmQwOWFhOGFmYzc3MDVm
ZTljOCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9S
aWNoYXJkc1NvbWVPYmpDL1JpY2hhcmRzU29tZU9iakMvbWFpbi5tCisrKyBiL1BlcmZvcm1hbmNl
VGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lT2JqQy9SaWNoYXJkc1NvbWVP
YmpDL21haW4ubQpAQCAtMjQsNiArMjQsNyBAQAogKi8KIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9G
b3VuZGF0aW9uLmg+CisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU0xvY2tSZWZQcml2YXRlLmg+
CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgogI2ltcG9ydCA8UXVh
cnR6Q29yZS9RdWFydHpDb3JlLmg+CiAKQEAgLTkzLDcgKzk0LDcgQEAgaW50IG1haW4oKQogICAg
IEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlNDb250ZXh0IGFsbG9jXSBpbml0XTsKICAgICBpZiAo
IWNvbnRleHQpCiAgICAgICAgIGV4aXQoMSk7Ci0KKyAgICBKU0xvY2soY29udGV4dC5KU0dsb2Jh
bENvbnRleHRSZWYpOwogICAgIFtjb250ZXh0IHNldE9iamVjdDpXb3JrZXJUYXNrLnNlbGYgZm9y
S2V5ZWRTdWJzY3JpcHQ6QCJXb3JrZXJUYXNrIl07CiAgICAgW2NvbnRleHQgc2V0RXhjZXB0aW9u
SGFuZGxlcjpeKEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZSAqZXhjZXB0aW9uKSB7CiAgICAg
ICAgIE5TTG9nKEAiJUAiLCBleGNlcHRpb24udG9TdHJpbmcpOwpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc1NvbWVTd2lmdC9SaWNoYXJk
c1NvbWVTd2lmdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvUGVyZm9ybWFuY2VUZXN0cy9B
UElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc1NvbWVTd2lmdC9SaWNoYXJkc1NvbWVTd2lmdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDMzOTY1ZDM4YjVlYjc5YTAxNmM1OGZmNThk
N2NiNzA4MjRkYjU4OTEuLjgwNWQ1ZWZmNTgzMThiNGZkZWNmNjdkNzc4MmZlNjQyNjJmZjE0NGEg
MTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFy
ZHNTb21lU3dpZnQvUmljaGFyZHNTb21lU3dpZnQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZVN3
aWZ0L1JpY2hhcmRzU29tZVN3aWZ0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4LDYg
KzI4LDcgQEAKIAkJMTQwMTE4MTgyNDk5ODUxNzAwMzk4N0E5IC8qIFJpY2hhcmRzU29tZVN3aWZ0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGls
ZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBSaWNoYXJk
c1NvbWVTd2lmdDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMTQwMTE4
MUIyNDk5ODUxNzAwMzk4N0E5IC8qIG1haW4uc3dpZnQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLnN3aWZ0OyBwYXRoID0gbWFpbi5z
d2lmdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQxNUFEMTYyNDk5ODYwNTAwNUJC
MkU0IC8qIHJpY2hhcmRzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBwYXRo
ID0gcmljaGFyZHMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE0NTA4N0VDMjU4
MDU4QjgwMEQ5NDE5NyAvKiBCcmlkZ2luZ0hlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCcmlkZ2lu
Z0hlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZl
cmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0
aW9uICovCkBAIC02MCw2ICs2MSw3IEBACiAJCTE0MDExODFBMjQ5OTg1MTcwMDM5ODdBOSAvKiBS
aWNoYXJkc1NvbWVTd2lmdCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJMTQ1MDg3RUMyNTgwNThCODAwRDk0MTk3IC8qIEJyaWRnaW5nSGVhZGVyLmggKi8s
CiAJCQkJMTQwMTE4MUIyNDk5ODUxNzAwMzk4N0E5IC8qIG1haW4uc3dpZnQgKi8sCiAJCQkJMTQx
NUFEMTYyNDk5ODYwNTAwNUJCMkU0IC8qIHJpY2hhcmRzLmpzICovLAogCQkJKTsKQEAgLTI1MCw2
ICsyNTIsNyBAQAogCQkJYnVpbGRTZXR0aW5ncyA9IHsKIAkJCQlDT0RFX1NJR05fU1RZTEUgPSBB
dXRvbWF0aWM7CiAJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCQlTV0lG
VF9PQkpDX0JSSURHSU5HX0hFQURFUiA9IFJpY2hhcmRzU29tZVN3aWZ0L0JyaWRnaW5nSGVhZGVy
Lmg7CiAJCQkJU1dJRlRfVkVSU0lPTiA9IDUuMDsKIAkJCX07CiAJCQluYW1lID0gRGVidWc7CkBA
IC0yNTksNiArMjYyLDcgQEAKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7CiAJCQkJQ09ERV9TSUdOX1NU
WUxFID0gQXV0b21hdGljOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJ
CQkJU1dJRlRfT0JKQ19CUklER0lOR19IRUFERVIgPSBSaWNoYXJkc1NvbWVTd2lmdC9CcmlkZ2lu
Z0hlYWRlci5oOwogCQkJCVNXSUZUX1ZFUlNJT04gPSA1LjA7CiAJCQl9OwogCQkJbmFtZSA9IFJl
bGVhc2U7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJ
L1JpY2hhcmRzU29tZVN3aWZ0L1JpY2hhcmRzU29tZVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmggYi9Q
ZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZVN3aWZ0L1Jp
Y2hhcmRzU29tZVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJjMGU5MWZjN2Q5
ZTI2Mzk4OTkyYzdlY2EzODY5YjE5MjM3N2QyZgotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1h
bmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lU3dpZnQvUmljaGFyZHNT
b21lU3dpZnQvQnJpZGdpbmdIZWFkZXIuaApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9ja1JlZlByaXZhdGUu
aD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmlj
aGFyZHNTb21lU3dpZnQvUmljaGFyZHNTb21lU3dpZnQvbWFpbi5zd2lmdCBiL1BlcmZvcm1hbmNl
VGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lU3dpZnQvUmljaGFyZHNTb21l
U3dpZnQvbWFpbi5zd2lmdAppbmRleCA0OWFlYjkyMWIwOTlhNWRhOWVkNWQ5NWUyYTQ3MjI2MDkw
Y2RkZDNhLi40NTg0ZTJlMmEzODA3YjA4MWE3NDhhMGJjYmNiM2ZhMDlkMDY1ZDQ0IDEwMDY0NAot
LS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZVN3
aWZ0L1JpY2hhcmRzU29tZVN3aWZ0L21haW4uc3dpZnQKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9B
UElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc1NvbWVTd2lmdC9SaWNoYXJkc1NvbWVTd2lmdC9t
YWluLnN3aWZ0CkBAIC04Myw2ICs4Myw4IEBAIGd1YXJkIGxldCBjb250ZXh0ID0gSlNDb250ZXh0
KCkgZWxzZSB7CiAgICAgZXhpdCgxKQogfQogCitKU0xvY2soY29udGV4dC5qc0dsb2JhbENvbnRl
eHRSZWYpCisKIGNvbnRleHQuc2V0T2JqZWN0KFdvcmtlclRhc2suc2VsZiwgZm9yS2V5ZWRTdWJz
Y3JpcHQ6ICJXb3JrZXJUYXNrIiBhcyBOU1N0cmluZykKIGNvbnRleHQuZXhjZXB0aW9uSGFuZGxl
ciA9IHsgY29udGV4dCwgZXhjZXB0aW9uIGluCiAgICAgcHJpbnQoZXhjZXB0aW9uPy50b1N0cmlu
ZygpIGFzIEFueSkKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvYXBpLWJl
bmNoIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9hcGktYmVuY2gKaW5kZXggYThiMTg3MDEx
NjE5N2IwN2ZkZGQyZjQ3NDYzMWVlMGNlMjNhMGI3YS4uOWM2YTEwZjk1OWU0OWMzZGRkZjdhYzQ2
MDZlOWE3NmZlZWEwZTUzMSAxMDA3NTUKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9h
cGktYmVuY2gKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9hcGktYmVuY2gKQEAgLTM2
LDYgKzM2LDcgQEAgQlVJTERfRElSRUNUT1JJRVM9KCkKIFJFRkVSRU5DRVM9KCJYIikKIENVUlJF
TlRfQVBJPSgpCiBVUENPTUlOR19BUEk9KCkKK0FSQ0hTPSR7QVJDSFM6LSQodW5hbWUgLW0pfQog
CiBzaG91bGRCdWlsZD10cnVlCiBydW5SZWZlcmVuY2VzPXRydWUKQEAgLTE0NiwxMSArMTQ3LDEy
IEBAIGJ1aWxkQmVuY2htYXJrKCkgewogICAgICAgICByZXR1cm4KICAgICBmaQogCi0gICAgbG9n
ICJCdWlsZGluZyAkQkVOQ0hNQVJLX05BTUUuLi4iCi0gICAgeGNvZGVidWlsZCAtcHJvamVjdCAi
JHByb2plY3QiIC10YXJnZXQgIiRCRU5DSE1BUktfTkFNRSIgLWNvbmZpZ3VyYXRpb24gUmVsZWFz
ZSBidWlsZAorICAgIGxvZyAiQnVpbGRpbmcgJEJFTkNITUFSS19OQU1FLi4uIChGUkFNRVdPUktf
U0VBUkNIX1BBVEhTPSckQlVJTERfRElSRUNUT1JZJykiCisgICAgeGNvZGVidWlsZCAtcHJvamVj
dCAiJHByb2plY3QiIC10YXJnZXQgIiRCRU5DSE1BUktfTkFNRSIgLWNvbmZpZ3VyYXRpb24gUmVs
ZWFzZSBidWlsZCAiRlJBTUVXT1JLX1NFQVJDSF9QQVRIUz0nJEJVSUxEX0RJUkVDVE9SWSciICJB
UkNIUz0nJEFSQ0hTJyIKIH0KIAogYnVpbGQoKSB7CisgICAgQlVJTERfRElSRUNUT1JZPSQxCiAg
ICAgZm9yRWFjaEJlbmNobWFyayAiYnVpbGRCZW5jaG1hcmsiCiB9CiAKQEAgLTIyMyw3ICsyMjUs
NyBAQCBwcmludFJlc3VsdHMoKSB7CiAgICAgZmkKIAogICAgIGxvY2FsIHNjb3JlIGNvdW50Ci0g
ICAgc2NvcmU9MQorICAgIHNjb3JlPTAKICAgICBjb3VudD0wCiAgICAgCiAgICAgcHJpbnRDYXRl
Z29yeSgpIHsKQEAgLTIzNywxMiArMjM5LDEyIEBAIHByaW50UmVzdWx0cygpIHsKICAgICAgICAg
ICAgIGF2Zz0kKGNvbXB1dGVBdmVyYWdlICIkYmVuY2htYXJrSUQiKQogICAgICAgICAgICAgcHJp
bnRBdmVyYWdlICIkYmVuY2htYXJrSUQiICIkYXZnIgogICAgICAgICAgICAgY291bnQ9JCgoY291
bnQgKyAxKSkKLSAgICAgICAgICAgIHNjb3JlPSQoKHNjb3JlICogYXZnKSkKKyAgICAgICAgICAg
IHNjb3JlPSQoZWNobyAiJHNjb3JlIiAiJGF2ZyIgfCBhd2sgJ3twcmludCAoJDEgKyBsb2coJDIp
KSB9JykKICAgICAgICAgZG9uZQogICAgIH0KICAgICBwcmludENhdGVnb3J5ICJDVVJSRU5UX0FQ
SSIKICAgICBwcmludENhdGVnb3J5ICJVUENPTUlOR19BUEkiCi0gICAgc2NvcmU9JChlY2hvICIk
c2NvcmUiICIkY291bnQiIHwgYXdrICd7IHByaW50KDUwMDAuMCAvICgkMS4wIF4gKDEuMCAvICQy
KSkpIH0nKQorICAgIHNjb3JlPSQoZWNobyAiJHNjb3JlIiAiJGNvdW50IiB8IGF3ayAneyBwcmlu
dCg1MDAwLjAgLyBleHAoJDEgLyAkMikpIH0nKQogCiAgICAgZWNobyAiIgogICAgIGVjaG8gIlNj
b3JlOiAkc2NvcmUiCkBAIC0yNjUsMTEgKzI2NywxMSBAQCBydW4oKSB7CiBtYWluKCkgewogICAg
IGNvbGxlY3RGbGFncyAiJEAiCiAgICAgY29sbGVjdEJlbmNobWFya3MKLSAgICBpZiBbICIkc2hv
dWxkQnVpbGQiID09IHRydWUgXTsgdGhlbgotICAgICAgICBidWlsZAotICAgIGZpCi0KICAgICBm
b3IgYnVpbGREaXJlY3RvcnkgaW4gIiR7QlVJTERfRElSRUNUT1JJRVNbQF19IjsgZG8KKyAgICAg
ICAgaWYgWyAiJHNob3VsZEJ1aWxkIiA9PSB0cnVlIF07IHRoZW4KKyAgICAgICAgICAgIGJ1aWxk
ICIkYnVpbGREaXJlY3RvcnkiCisgICAgICAgIGZpCisKICAgICAgICAgcnVuICIkYnVpbGREaXJl
Y3RvcnkiCiAgICAgZG9uZQogfQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFuZ2VM
b2cgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCA1ZmM4NzlmOTA3MDk0YzE1NjQ1
MmZlNGVjODdkODFiNmVjYzkxNWQ4Li5jMTAyYjQxNzMxM2Q2MGQyMTQzY2YzZDBiMjgwNDllZjYw
OTA3MGNkIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTEyLTA4ICBUYWRl
dSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIEpTQyBBUEkg
dG8gYWxsb3cgYWNxdWlyaW5nIHRoZSBKU0xvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTY2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyAzIHRoaW5nczoKKyAgICAgICAg
LSBDaGFuZ2UgaG93IHRoZSBnZW9tZWFuIGlzIGNhbGN1bGF0ZWQgaW4gYXBpLWJlbmNoIHRvIGF2
b2lkIG92ZXJmbG93aW5nCisgICAgICAgIC0gQWxsb3cgbGlua2luZyBhZ2FpbnN0IHRoZSBsb2Nh
bCBidWlsZCB3ZSdyZSBiZW5jaG1hcmtpbmcKKyAgICAgICAgLSBBZG9wdCB0aGUgbmV3IEpTTG9j
ayBBUEkgaW4gdGhlIFVwY29taW5nQVBJIHN1YnRlc3RzCisKKyAgICAgICAgVXNpbmcgdGhlIG5l
dyBBUEkgdGhlIHNjb3JlIGltcHJvdmVzIGJ5IH4xMy41JS4gSGVyZSBhcmUgdGhlIHJlc3VsdHMg
Zm9yIGVhY2gKKyAgICAgICAgb2YgdGhlICJVcGNvbWluZ0FQSSIgc3VidGVzdHMgcGx1cyB0aGUg
dG90YWwgc2NvcmU6CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmVmb3JlICAg
ICAgIEFmdGVyCisgICAgICAgIFJpY2hhcmRzTW9zdGx5QzogICAgICAgICAgNzdtcyAgICAgICAg
MjNtcworICAgICAgICBSaWNoYXJkc01vc3RseU9iakM6ICAgICAgMzA5bXMgICAgICAgMjgybXMK
KyAgICAgICAgUmljaGFyZHNNb3N0bHlTd2lmdCAgICAgIDMwNW1zICAgICAgIDI4MG1zCisgICAg
ICAgIFJpY2hhcmRzU29tZUM6ICAgICAgICAgICAxMDFtcyAgICAgICAgOTVtcworICAgICAgICBS
aWNoYXJkc1NvbWVPYmpDOiAgICAgICAgMTYwbXMgICAgICAgMTU3bXMKKyAgICAgICAgUmljaGFy
ZHNTb21lU3dpZnQ6ICAgICAgIDIwMW1zICAgICAgIDIwMm1zCisgICAgICAgIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICBTY29yZTogICAgICAgICAg
ICAgICAgIDI5LjU5NzQgICAgIDMzLjY0MDQKKworICAgICAgICAqIEFQSUJlbmNoL1VwY29taW5n
QVBJL1JpY2hhcmRzTW9zdGx5Qy9SaWNoYXJkc01vc3RseUMvcmljaGFyZHMuYzoKKyAgICAgICAg
KHdvcmtmbik6CisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlP
YmpDL1JpY2hhcmRzTW9zdGx5T2JqQy54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9S
aWNoYXJkc01vc3RseU9iakMueGNzY2hlbWU6IFJlbmFtZWQgZnJvbSBQZXJmb3JtYW5jZVRlc3Rz
L0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5T2JqQy9SaWNoYXJkc01vc3RseU9i
akMueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvUmljaGFyZHNNb3N0bHlTd2lmdC54
Y3NjaGVtZS4KKyAgICAgICAgKiBBUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseU9i
akMvUmljaGFyZHNNb3N0bHlPYmpDL1dvcmtlclRhc2subToKKyAgICAgICAgKCtbV29ya2VyVGFz
ayBjb250ZXh0XSk6CisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0
bHlTd2lmdC9SaWNoYXJkc01vc3RseVN3aWZ0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJk
c01vc3RseVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmg6IENvcGllZCBmcm9tIFBlcmZvcm1hbmNlVGVz
dHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3Rs
eVN3aWZ0L1dvcmtlclRhc2suc3dpZnQuCisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkv
UmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3RseVN3aWZ0L1dvcmtlclRhc2suc3dpZnQ6
CisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lQy9SaWNoYXJkc1Nv
bWVDL21haW4ubToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIEFQSUJlbmNoL1VwY29taW5n
QVBJL1JpY2hhcmRzU29tZU9iakMvUmljaGFyZHNTb21lT2JqQy9tYWluLm06CisgICAgICAgICht
YWluKToKKyAgICAgICAgKiBBUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc1NvbWVTd2lmdC9S
aWNoYXJkc1NvbWVTd2lmdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIEFQ
SUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZVN3aWZ0L1JpY2hhcmRzU29tZVN3aWZ0L0Jy
aWRnaW5nSGVhZGVyLmg6IENvcGllZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBj
b21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3RseVN3aWZ0L1dvcmtlclRh
c2suc3dpZnQuCisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lU3dp
ZnQvUmljaGFyZHNTb21lU3dpZnQvbWFpbi5zd2lmdDoKKyAgICAgICAgKiBBUElCZW5jaC9hcGkt
YmVuY2g6CisKIDIwMjAtMTItMDcgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNv
bT4KIAogICAgICAgICBbQ01ha2VdIFJlbW92ZSBXRUJLSVRfV1JBUF9TT1VSQ0VMSVNUCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415933</attachid>
            <date>2020-12-10 14:40:28 -0800</date>
            <delta_ts>2020-12-10 15:11:03 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-219663-20201210144027.patch</filename>
            <type>text/plain</type>
            <size>37786</size>
            <attacher name="Tadeu Zagallo">tzagallo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MmI0YmJkNWJmNGRjOTUxZjQxY2E5MjFiMTM3MmI3ZjA0NTQzNmM0Li41ZjI4ZGMyNWU0Zjk4MTNm
Mzg5YjJiN2YyOTBmMTMwYzg0YmZjMmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMC0xMi0wOCAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgYSBKU0MgQVBJIHRvIGFsbG93IGFjcXVpcmluZyB0aGUgSlNMb2Nr
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk2NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBGaWxpcCBQaXpsby4KKworICAgICAgICBJbnRyb2R1Y2Ug
dHdvIG5ldyBmdW5jdGlvbnMgdG8gdGhlIEMgQVBJOiBKU0xvY2sgYW5kIEpTVW5sb2NrLiBUaGVz
ZQorICAgICAgICBmdW5jdGlvbnMgYWxsb3cgdXNlcnMgdG8gdGFrZSBjb250cm9sIG9mIHRoZSBK
U0NvbnRleHQncyBsb2NrLCB3aGljaAorICAgICAgICBjYW4gZ3JlYXRseSByZWR1Y2UgdGhlIG92
ZXJoZWFkIG9mIGJyaWRnaW5nIGJldHdlZW4gSlMgYW5kIG5hdGl2ZS4KKworICAgICAgICAqIEFQ
SS9KU0xvY2tSZWYuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTTG9jayk6CisgICAgICAgIChKU1Vu
bG9jayk6CisgICAgICAgICogQVBJL0pTTG9ja1JlZlByaXZhdGUuaDogQWRkZWQuCisgICAgICAg
ICogQVBJL0pTVmFsdWVSZWYuY3BwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogU291cmNlcy50eHQ6CisKIDIwMjAtMTItMDgg
IFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgbm9uLXVuaWZpZWQgYnVpbGQgZml4IGZvbGxvd2luZyByMjcwNTUyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0xvY2tSZWYuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU0xvY2tSZWYuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjczM2JmMTVlZDgyZmE3NGUz
ODZjNzM2YzhlMjZjODBiNmY5OTVhYzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTTG9ja1JlZi5jcHAKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJKU0xvY2tSZWZQcml2YXRlLmgiCisKKyNpbmNsdWRlICJKU0xvY2suaCIKKwordXNp
bmcgbmFtZXNwYWNlIEpTQzsKKwordm9pZCBKU0xvY2soSlNDb250ZXh0UmVmIGN0eCkKK3sKKyAg
ICBpZiAoIWN0eCkgeworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KUyhjdHgp
OworICAgIGdsb2JhbE9iamVjdC0+dm0oKS5hcGlMb2NrKCkubG9jaygpOworfQorCit2b2lkIEpT
VW5sb2NrKEpTQ29udGV4dFJlZiBjdHgpCit7CisgICAgaWYgKCFjdHgpIHsKKyAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlMoY3R4KTsKKyAgICBnbG9iYWxPYmplY3QtPnZtKCku
YXBpTG9jaygpLnVubG9jaygpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU0xvY2tSZWZQcml2YXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTG9j
a1JlZlByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNDFhMzdlZTdmM2M5MzY1ZGRhODFkNjllMzdkODY1
NGQwODMwOTZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U0xvY2tSZWZQcml2YXRlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8SmF2YVNj
cmlwdENvcmUvSlNCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7Cisj
ZW5kaWYKKworLyohCisgQGZ1bmN0aW9uCisgQGFic3RyYWN0IEFjcXVpcmUgdGhlIEFQSSBsb2Nr
IGZvciB0aGUgZ2l2ZW4gSlNDb250ZXh0UmVmLgorIEBwYXJhbSBjdHggVGhlIGV4ZWN1dGlvbiBj
b250ZXh0IHRvIGJlIGxvY2tlZC4KKyBAZGlzY3Vzc2lvbiBUaGUgbG9jayBoYXMgdG8gYmUgaGVs
ZCB0byBwZXJmb3JtIGFueSBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgSlNDb250ZXh0UmVmLiBUaGlz
IGZ1bmN0aW9uIGFsbG93cyBob2xkaW5nIHRoZSBsb2NrIGFjcm9zcyBtdWx0aXBsZSBpbnRlcmFj
dGlvbnMgdG8gYW1vcnRpemUgdGhlIGNvc3QuIFRoaXMgbG9jayBpcyBhIHJlY3Vyc2l2ZSBsb2Nr
LgorICovCitKU19FWFBPUlQgdm9pZCBKU0xvY2soSlNDb250ZXh0UmVmIGN0eCk7CisKKy8qIQor
IEBmdW5jdGlvbgorIEBhYnN0cmFjdCBSZWxlYXNlIHRoZSBBUEkgbG9jayBmb3IgdGhlIGdpdmVu
IEpTQ29udGV4dFJlZi4KKyBAcGFyYW0gY3R4IFRoZSBleGVjdXRpb24gY29udGV4dCB0byBiZSB1
bmxvY2tlZC4KKyBAZGlzY3Vzc2lvbiBSZWxlYXNlcyB0aGUgbG9jayB0aGF0IHdhcyBwcmV2aW91
c2x5IGFjcXVpcmVkIHVzaW5nIEpTTG9jay4KKyAqLworSlNfRVhQT1JUIHZvaWQgSlNVbmxvY2so
SlNDb250ZXh0UmVmIGN0eCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNwcAppbmRleCA1ZGJhMDg4OTYxOTQxMzEz
MjU2Y2FhNjlkNWE3ZGMxNWM2MzhlNjc0Li5lZjk2ZDhlZjJmZGRiMTQ1YjE0ZDI1MjEwYjQ1NDU5
ZDMwOWM5YTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVS
ZWYuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJBUElDYXN0LmgiCiAjaW5jbHVkZSAiQVBJVXRpbHMu
aCIKICNpbmNsdWRlICJEYXRlSW5zdGFuY2UuaCIKKyNpbmNsdWRlICJKU0FQSVdyYXBwZXJPYmpl
Y3QuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDYWxsYmFja09iamVj
dC5oIgogI2luY2x1ZGUgIkpTT05PYmplY3QuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYTVkZDA2NzA1M2RjNzRlZGQxNjNkOTZlZWFkZTcxZTU5ZDM1M2IwMy4uYzM4NTE5MTZm
ZDZlYWNjMWIxZmE5ZTBkM2FlNjIzM2Q2NTgxZGE0YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTgwOSw2ICs4MDksNyBAQAogCQkxNDc4Mjk3QjEzNzlFOEE4MDBBN0MyQTMgLyog
SGFuZGxlVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE0NkZBNUE4MTM3OEY2QjAwMDM2MjdBMyAvKiBIYW5kbGVUeXBlcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE0N0I4M0FDMEU2REI4Qzkw
MDQ3NzVBNCAvKiBCYXRjaGVkVHJhbnNpdGlvbk9wdGltaXplci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ3QjgzQUEwRTZEQjhDOTAwNDc3NUE0IC8q
IEJhdGNoZWRUcmFuc2l0aW9uT3B0aW1pemVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTQ3Qjg0NjMwRTZERTZCMTAwNDc3NUE0IC8qIFB1dFBy
b3BlcnR5U2xvdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMTQ3Qjg0NjIwRTZERTZCMTAwNDc3NUE0IC8qIFB1dFByb3BlcnR5U2xvdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTE0ODZBOEMwMjRBQkVE
NDgwMDczOTIyRCAvKiBKU0xvY2tSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDg2QThCRjI0QUJFRDNDMDA3MzkyMkQgLyogSlNMb2Nr
UmVmUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTE0ODc0QUU2MTVFQkRFNEEwMDJFMzU4NyAvKiBKU1Njb3BlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDg3NEFFMjE1RUJERTRBMDAyRTM1
ODcgLyogSlNTY29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTE0OEE3QkYwMUI4Mjk3NUEwMDJEOTE1NyAvKiBJbmxpbmVDYWxsRnJhbWUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0OEE3QkVFMUI4
Mjk3NUEwMDJEOTE1NyAvKiBJbmxpbmVDYWxsRnJhbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxNDhDRDFEODEwOENGOTAyMDA4MTYzQzYgLyog
SlNDb250ZXh0UmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTQ4Q0QxRDcxMDhDRjkwMjAwODE2M0M2IC8qIEpTQ29udGV4dFJlZlByaXZh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MzQxNSw2ICszNDE2LDggQEAKIAkJMTQ4MkI3OEEwQTQzMDVBQjAwNTE3Q0ZDIC8qIEFQSUNhc3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJQ2FzdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxNDgyQjdFMTBBNDMwNzYwMDA1MTdDRkMgLyogSlNPYmplY3RS
ZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPYmplY3RSZWYuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQ4MkI3RTIwQTQzMDc2MDAwNTE3Q0ZDIC8qIEpT
T2JqZWN0UmVmLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTT2Jq
ZWN0UmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTQ4NkE4QkUyNEFCRUQz
QjAwNzM5MjJEIC8qIEpTTG9ja1JlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0xvY2tSZWYu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxNDg2QThCRjI0QUJFRDNDMDA3Mzky
MkQgLyogSlNMb2NrUmVmUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0xvY2tSZWZQcml2YXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0ODc0QUUxMTVFQkRFNEEwMDJFMzU4
NyAvKiBKU1Njb3BlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
U2NvcGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDg3NEFFMjE1RUJERTRB
MDAyRTM1ODcgLyogSlNTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1Njb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0ODdDRTE2MjM3NzQxMDAw
MDQ0NDI5QyAvKiBXYXNtR2VuZXJhdG9yVHJhaXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdhc21HZW5lcmF0b3JUcmFpdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTY0ODUsNiArNjQ4OCw4IEBACiAJCQkJODZFM0M2MEExNjdCQUI4NzAwNkQ3NjBBIC8q
IEpTRXhwb3J0LmggKi8sCiAJCQkJMEYwQ0FFRjkxRUM0REE2MjAwOTcwRDEyIC8qIEpTSGVhcEZp
bmFsaXplclByaXZhdGUuY3BwICovLAogCQkJCTBGMENBRUZBMUVDNERBNjIwMDk3MEQxMiAvKiBK
U0hlYXBGaW5hbGl6ZXJQcml2YXRlLmggKi8sCisJCQkJMTQ4NkE4QkUyNEFCRUQzQjAwNzM5MjJE
IC8qIEpTTG9ja1JlZi5jcHAgKi8sCisJCQkJMTQ4NkE4QkYyNEFCRUQzQzAwNzM5MjJEIC8qIEpT
TG9ja1JlZlByaXZhdGUuaCAqLywKIAkJCQlDMjVENzA5QTE2REU5OUY0MDBGQ0E2QkMgLyogSlNN
YW5hZ2VkVmFsdWUuaCAqLywKIAkJCQlDMjVENzA5OTE2REU5OUY0MDBGQ0E2QkMgLyogSlNNYW5h
Z2VkVmFsdWUubW0gKi8sCiAJCQkJMkE0QkI3RjIxOEE0MTE3OTAwOEEwRkNEIC8qIEpTTWFuYWdl
ZFZhbHVlSW50ZXJuYWwuaCAqLywKQEAgLTEwMDQyLDYgKzEwMDQ3LDcgQEAKIAkJCQlBNTAzRkEx
RTE4OEUwRkIwMDAxMTBGMTQgLyogSlNKYXZhU2NyaXB0Q2FsbEZyYW1lUHJvdG90eXBlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzE4QzQxNjBFMTZGNUNEMDBCMzQ0NjAgLyogSlNMZXhpY2FsRW52
aXJvbm1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDIzMEUxNkY1Q0QwMEIzNDQ2MCAv
KiBKU0xvY2suaCBpbiBIZWFkZXJzICovLAorCQkJCTE0ODZBOEMwMjRBQkVENDgwMDczOTIyRCAv
KiBKU0xvY2tSZWZQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjVENzA5QzE2REU5OUY0
MDBGQ0E2QkMgLyogSlNNYW5hZ2VkVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJBNEJCN0Yz
MThBNDExNzkwMDhBMEZDRCAvKiBKU01hbmFnZWRWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNzAwODc0MjE3Q0JFOEVCMDBDM0U2NDMgLyogSlNNYXAuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CmluZGV4IGY5N2ZiMGU5NTg0MDBkYmMxZjI5NGRi
ZmMyYmU1MmFhY2VmZmNjNTguLjIxZGM1MjFiYjg1YTEwOTlmYTc1ZTU3MWM1ZjlkMjc4OWI2ODQw
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKQEAgLTMxLDYgKzMxLDcgQEAgQVBJL0pT
Q2FsbGJhY2tPYmplY3QuY3BwCiBBUEkvSlNDbGFzc1JlZi5jcHAKIEFQSS9KU0NvbnRleHRSZWYu
Y3BwCiBBUEkvSlNIZWFwRmluYWxpemVyUHJpdmF0ZS5jcHAKK0FQSS9KU0xvY2tSZWYuY3BwCiBB
UEkvSlNNYXJraW5nQ29uc3RyYWludFByaXZhdGUuY3BwCiBBUEkvSlNPYmplY3RSZWYuY3BwCiBB
UEkvSlNUeXBlZEFycmF5LmNwcApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5j
aC9DdXJyZW50QVBJL1JpY2hhcmRzTW9zdGx5Qy9SaWNoYXJkc01vc3RseUMvcmljaGFyZHMuYyBi
L1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvQ3VycmVudEFQSS9SaWNoYXJkc01vc3RseUMvUmlj
aGFyZHNNb3N0bHlDL3JpY2hhcmRzLmMKaW5kZXggYzUyMjk0N2FhOGEwZTVjYjhjNjdmYWI4MjI1
ZjMzYjlhMGJhZmViZS4uZTA1YTYxMWIzYzRlZjg2MzcxZWNlZGE1OTdjODgzZjFjZTY2MTc0OCAx
MDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9DdXJyZW50QVBJL1JpY2hhcmRz
TW9zdGx5Qy9SaWNoYXJkc01vc3RseUMvcmljaGFyZHMuYworKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L0FQSUJlbmNoL0N1cnJlbnRBUEkvUmljaGFyZHNNb3N0bHlDL1JpY2hhcmRzTW9zdGx5Qy9yaWNo
YXJkcy5jCkBAIC0xMCw5ICsxMCw4IEBACiAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUg
PHN0ZGxpYi5oPgotCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuaD4K
LSNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgorI2luY2x1ZGUgPFF1YXJ0ekNvcmUv
UXVhcnR6Q29yZS5oPgogCiAjaWYgMQogI2RlZmluZSAgICAgICAgICAgICAgICBDb3VudCAgICAg
ICAgICAgMTAwMApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9SZWZlcmVu
Y2VzL1JpY2hhcmRzQy9SaWNoYXJkc0MvcmljaGFyZHMuYyBiL1BlcmZvcm1hbmNlVGVzdHMvQVBJ
QmVuY2gvUmVmZXJlbmNlcy9SaWNoYXJkc0MvUmljaGFyZHNDL3JpY2hhcmRzLmMKaW5kZXggZjBh
NmE1ODVjNjk1NTMxMDFjZTg0NmJiYWY3ZTMzNzE5ZjJmYmFjMy4uZjcyNzNjZWY4ODIzYjU0ZjUx
YjU1ZmNkMTBhMGMwODE1M2FmMjc0OCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9BUElC
ZW5jaC9SZWZlcmVuY2VzL1JpY2hhcmRzQy9SaWNoYXJkc0MvcmljaGFyZHMuYworKysgYi9QZXJm
b3JtYW5jZVRlc3RzL0FQSUJlbmNoL1JlZmVyZW5jZXMvUmljaGFyZHNDL1JpY2hhcmRzQy9yaWNo
YXJkcy5jCkBAIC0xMCw5ICsxMCw4IEBACiAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUg
PHN0ZGxpYi5oPgotCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuaD4K
LSNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgorI2luY2x1ZGUgPFF1YXJ0ekNvcmUv
UXVhcnR6Q29yZS5oPgogCiAjaWYgMQogI2RlZmluZSAgICAgICAgICAgICAgICBDb3VudCAgICAg
ICAgICAgMTAwMApkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWlu
Z0FQSS9SaWNoYXJkc01vc3RseUMvUmljaGFyZHNNb3N0bHlDL3JpY2hhcmRzLmMgYi9QZXJmb3Jt
YW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5Qy9SaWNoYXJkc01v
c3RseUMvcmljaGFyZHMuYwppbmRleCBjNTIyOTQ3YWE4YTBlNWNiOGM2N2ZhYjgyMjVmMzNiOWEw
YmFmZWJlLi5jN2M3ZjZkNGJkZmQxN2IwZThlMmQ4ZjM3YzIzNDY2MWYzMWMzMmM2IDEwMDY0NAot
LS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5
Qy9SaWNoYXJkc01vc3RseUMvcmljaGFyZHMuYworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJl
bmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5Qy9SaWNoYXJkc01vc3RseUMvcmljaGFyZHMu
YwpAQCAtMTAsOSArMTAsOSBAQAogCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRs
aWIuaD4KLQorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9ja1JlZlByaXZhdGUuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgotI2ltcG9ydCA8UXVhcnR6
Q29yZS9RdWFydHpDb3JlLmg+CisjaW5jbHVkZSA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CiAK
ICNpZiAxCiAjZGVmaW5lICAgICAgICAgICAgICAgIENvdW50ICAgICAgICAgICAxMDAwCkBAIC0z
MjIsNiArMzIyLDcgQEAgc3RydWN0IHRhc2sgKndvcmtmbihzdHJ1Y3QgcGFja2V0ICpwa3QpCiAg
ICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CiAgICAgZGlzcGF0Y2hfb25jZSgm
b25jZVRva2VuLCBeewogICAgICAgICBjdHggPSBKU0dsb2JhbENvbnRleHRDcmVhdGUoTlVMTCk7
CisgICAgICAgIEpTTG9jayhjdHgpOwogICAgICAgICBKU09iamVjdFJlZiBnbG9iYWxPYmplY3Qg
PSBKU0NvbnRleHRHZXRHbG9iYWxPYmplY3QoY3R4KTsKICAgICAgICAgCiAgICAgICAgIEpTU3Ry
aW5nUmVmIHNvdXJjZSA9IHJlYWRGaWxlKCJyaWNoYXJkcy5qcyIpOwpkaWZmIC0tZ2l0IGEvUGVy
Zm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseU9iakMvUmlj
aGFyZHNNb3N0bHlPYmpDLnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL1JpY2hhcmRz
TW9zdGx5T2JqQy54Y3NjaGVtZSBiL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdB
UEkvUmljaGFyZHNNb3N0bHlPYmpDL1JpY2hhcmRzTW9zdGx5T2JqQy54Y29kZXByb2oveGNzaGFy
ZWRkYXRhL3hjc2NoZW1lcy9SaWNoYXJkc01vc3RseU9iakMueGNzY2hlbWUKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODc4OGU1MGEzYTA2MjYyYjQxYjhhMzUyYTFlNDhlNzRmNDhkYTU5YQotLS0gL2Rldi9udWxsCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlP
YmpDL1JpY2hhcmRzTW9zdGx5T2JqQy54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9S
aWNoYXJkc01vc3RseU9iakMueGNzY2hlbWUKQEAgLTAsMCArMSw4MSBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxTY2hlbWUKKyAgIExhc3RVcGdyYWRlVmVyc2lv
biA9ICIxMjAwIgorICAgdmVyc2lvbiA9ICIxLjciPgorICAgPEJ1aWxkQWN0aW9uCisgICAgICBw
YXJhbGxlbGl6ZUJ1aWxkYWJsZXMgPSAiWUVTIgorICAgICAgYnVpbGRJbXBsaWNpdERlcGVuZGVu
Y2llcyA9ICJZRVMiPgorICAgICAgPEJ1aWxkQWN0aW9uRW50cmllcz4KKyAgICAgICAgIDxCdWls
ZEFjdGlvbkVudHJ5CisgICAgICAgICAgICBidWlsZEZvclRlc3RpbmcgPSAiWUVTIgorICAgICAg
ICAgICAgYnVpbGRGb3JSdW5uaW5nID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yUHJvZmls
aW5nID0gIllFUyIKKyAgICAgICAgICAgIGJ1aWxkRm9yQXJjaGl2aW5nID0gIllFUyIKKyAgICAg
ICAgICAgIGJ1aWxkRm9yQW5hbHl6aW5nID0gIllFUyI+CisgICAgICAgICAgICA8QnVpbGRhYmxl
UmVmZXJlbmNlCisgICAgICAgICAgICAgICBCdWlsZGFibGVJZGVudGlmaWVyID0gInByaW1hcnki
CisgICAgICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0gIjE0MTVBRDIxMjQ5OUJDNUMw
MDVCQjJFNCIKKyAgICAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAiUmljaGFyZHNNb3N0bHlP
YmpDIgorICAgICAgICAgICAgICAgQmx1ZXByaW50TmFtZSA9ICJSaWNoYXJkc01vc3RseU9iakMi
CisgICAgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpSaWNoYXJk
c01vc3RseU9iakMueGNvZGVwcm9qIj4KKyAgICAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNl
PgorICAgICAgICAgPC9CdWlsZEFjdGlvbkVudHJ5PgorICAgICAgPC9CdWlsZEFjdGlvbkVudHJp
ZXM+CisgICA8L0J1aWxkQWN0aW9uPgorICAgPFRlc3RBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmln
dXJhdGlvbiA9ICJEZWJ1ZyIKKyAgICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhj
b2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgorICAgICAgc2VsZWN0ZWRMYXVu
Y2hlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxMREIi
CisgICAgICBzaG91bGRVc2VMYXVuY2hTY2hlbWVBcmdzRW52ID0gIllFUyI+CisgICAgICA8VGVz
dGFibGVzPgorICAgICAgPC9UZXN0YWJsZXM+CisgICA8L1Rlc3RBY3Rpb24+CisgICA8TGF1bmNo
QWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCisgICAgICBzZWxlY3Rl
ZERlYnVnZ2VySWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdnZXIu
TExEQiIKKyAgICAgIHNlbGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2Vy
Rm91bmRhdGlvbi5MYXVuY2hlci5MTERCIgorICAgICAgbGF1bmNoU3R5bGUgPSAiMCIKKyAgICAg
IHVzZUN1c3RvbVdvcmtpbmdEaXJlY3RvcnkgPSAiTk8iCisgICAgICBpZ25vcmVzUGVyc2lzdGVu
dFN0YXRlT25MYXVuY2ggPSAiTk8iCisgICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZ
RVMiCisgICAgICBkZWJ1Z1NlcnZpY2VFeHRlbnNpb24gPSAiaW50ZXJuYWwiCisgICAgICBhbGxv
d0xvY2F0aW9uU2ltdWxhdGlvbiA9ICJZRVMiPgorICAgICAgPEJ1aWxkYWJsZVByb2R1Y3RSdW5u
YWJsZQorICAgICAgICAgcnVubmFibGVEZWJ1Z2dpbmdNb2RlID0gIjAiPgorICAgICAgICAgPEJ1
aWxkYWJsZVJlZmVyZW5jZQorICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmlt
YXJ5IgorICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICIxNDE1QUQyMTI0OTlCQzVD
MDA1QkIyRTQiCisgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0gIlJpY2hhcmRzTW9zdGx5T2Jq
QyIKKyAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAiUmljaGFyZHNNb3N0bHlPYmpDIgorICAg
ICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWluZXI6UmljaGFyZHNNb3N0bHlP
YmpDLnhjb2RlcHJvaiI+CisgICAgICAgICA8L0J1aWxkYWJsZVJlZmVyZW5jZT4KKyAgICAgIDwv
QnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlPgorICAgPC9MYXVuY2hBY3Rpb24+CisgICA8UHJvZmls
ZUFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiCisgICAgICBzaG91
bGRVc2VMYXVuY2hTY2hlbWVBcmdzRW52ID0gIllFUyIKKyAgICAgIHNhdmVkVG9vbElkZW50aWZp
ZXIgPSAiIgorICAgICAgdXNlQ3VzdG9tV29ya2luZ0RpcmVjdG9yeSA9ICJOTyIKKyAgICAgIGRl
YnVnRG9jdW1lbnRWZXJzaW9uaW5nID0gIllFUyI+CisgICAgICA8QnVpbGRhYmxlUHJvZHVjdFJ1
bm5hYmxlCisgICAgICAgICBydW5uYWJsZURlYnVnZ2luZ01vZGUgPSAiMCI+CisgICAgICAgICA8
QnVpbGRhYmxlUmVmZXJlbmNlCisgICAgICAgICAgICBCdWlsZGFibGVJZGVudGlmaWVyID0gInBy
aW1hcnkiCisgICAgICAgICAgICBCbHVlcHJpbnRJZGVudGlmaWVyID0gIjE0MTVBRDIxMjQ5OUJD
NUMwMDVCQjJFNCIKKyAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAiUmljaGFyZHNNb3N0bHlP
YmpDIgorICAgICAgICAgICAgQmx1ZXByaW50TmFtZSA9ICJSaWNoYXJkc01vc3RseU9iakMiCisg
ICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFpbmVyID0gImNvbnRhaW5lcjpSaWNoYXJkc01vc3Rs
eU9iakMueGNvZGVwcm9qIj4KKyAgICAgICAgIDwvQnVpbGRhYmxlUmVmZXJlbmNlPgorICAgICAg
PC9CdWlsZGFibGVQcm9kdWN0UnVubmFibGU+CisgICA8L1Byb2ZpbGVBY3Rpb24+CisgICA8QW5h
bHl6ZUFjdGlvbgorICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIkRlYnVnIj4KKyAgIDwvQW5h
bHl6ZUFjdGlvbj4KKyAgIDxBcmNoaXZlQWN0aW9uCisgICAgICBidWlsZENvbmZpZ3VyYXRpb24g
PSAiUmVsZWFzZSIKKyAgICAgIHJldmVhbEFyY2hpdmVJbk9yZ2FuaXplciA9ICJZRVMiPgorICAg
PC9BcmNoaXZlQWN0aW9uPgorICAgPEluc3RhbGxBY3Rpb24KKyAgICAgIGJ1aWxkQ29uZmlndXJh
dGlvbiA9ICJSZWxlYXNlIj4KKyAgIDwvSW5zdGFsbEFjdGlvbj4KKzwvU2NoZW1lPgpkaWZmIC0t
Z2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3Rs
eU9iakMvUmljaGFyZHNNb3N0bHlPYmpDLnhjb2RlcHJvai94Y3NoYXJlZGRhdGEveGNzY2hlbWVz
L1JpY2hhcmRzTW9zdGx5U3dpZnQueGNzY2hlbWUgYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNo
L1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5T2JqQy9SaWNoYXJkc01vc3RseU9iakMueGNvZGVw
cm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvUmljaGFyZHNNb3N0bHlTd2lmdC54Y3NjaGVtZQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc4OGU1MGEzYTA2MjYyYjQxYjhhMzUyYTFl
NDhlNzRmNDhkYTU5YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5
T2JqQy9SaWNoYXJkc01vc3RseU9iakMueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMv
UmljaGFyZHNNb3N0bHlTd2lmdC54Y3NjaGVtZQorKysgL2Rldi9udWxsCkBAIC0xLDgxICswLDAg
QEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08U2NoZW1lCi0gICBM
YXN0VXBncmFkZVZlcnNpb24gPSAiMTIwMCIKLSAgIHZlcnNpb24gPSAiMS43Ij4KLSAgIDxCdWls
ZEFjdGlvbgotICAgICAgcGFyYWxsZWxpemVCdWlsZGFibGVzID0gIllFUyIKLSAgICAgIGJ1aWxk
SW1wbGljaXREZXBlbmRlbmNpZXMgPSAiWUVTIj4KLSAgICAgIDxCdWlsZEFjdGlvbkVudHJpZXM+
Ci0gICAgICAgICA8QnVpbGRBY3Rpb25FbnRyeQotICAgICAgICAgICAgYnVpbGRGb3JUZXN0aW5n
ID0gIllFUyIKLSAgICAgICAgICAgIGJ1aWxkRm9yUnVubmluZyA9ICJZRVMiCi0gICAgICAgICAg
ICBidWlsZEZvclByb2ZpbGluZyA9ICJZRVMiCi0gICAgICAgICAgICBidWlsZEZvckFyY2hpdmlu
ZyA9ICJZRVMiCi0gICAgICAgICAgICBidWlsZEZvckFuYWx5emluZyA9ICJZRVMiPgotICAgICAg
ICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQotICAgICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRp
ZmllciA9ICJwcmltYXJ5IgotICAgICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICIx
NDE1QUQyMTI0OTlCQzVDMDA1QkIyRTQiCi0gICAgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0g
IlJpY2hhcmRzTW9zdGx5T2JqQyIKLSAgICAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAiUmlj
aGFyZHNNb3N0bHlPYmpDIgotICAgICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJj
b250YWluZXI6UmljaGFyZHNNb3N0bHlPYmpDLnhjb2RlcHJvaiI+Ci0gICAgICAgICAgICA8L0J1
aWxkYWJsZVJlZmVyZW5jZT4KLSAgICAgICAgIDwvQnVpbGRBY3Rpb25FbnRyeT4KLSAgICAgIDwv
QnVpbGRBY3Rpb25FbnRyaWVzPgotICAgPC9CdWlsZEFjdGlvbj4KLSAgIDxUZXN0QWN0aW9uCi0g
ICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCi0gICAgICBzZWxlY3RlZERlYnVnZ2Vy
SWRlbnRpZmllciA9ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uRGVidWdnZXIuTExEQiIKLSAg
ICAgIHNlbGVjdGVkTGF1bmNoZXJJZGVudGlmaWVyID0gIlhjb2RlLkRlYnVnZ2VyRm91bmRhdGlv
bi5MYXVuY2hlci5MTERCIgotICAgICAgc2hvdWxkVXNlTGF1bmNoU2NoZW1lQXJnc0VudiA9ICJZ
RVMiPgotICAgICAgPFRlc3RhYmxlcz4KLSAgICAgIDwvVGVzdGFibGVzPgotICAgPC9UZXN0QWN0
aW9uPgotICAgPExhdW5jaEFjdGlvbgotICAgICAgYnVpbGRDb25maWd1cmF0aW9uID0gIkRlYnVn
IgotICAgICAgc2VsZWN0ZWREZWJ1Z2dlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3Vu
ZGF0aW9uLkRlYnVnZ2VyLkxMREIiCi0gICAgICBzZWxlY3RlZExhdW5jaGVySWRlbnRpZmllciA9
ICJYY29kZS5EZWJ1Z2dlckZvdW5kYXRpb24uTGF1bmNoZXIuTExEQiIKLSAgICAgIGxhdW5jaFN0
eWxlID0gIjAiCi0gICAgICB1c2VDdXN0b21Xb3JraW5nRGlyZWN0b3J5ID0gIk5PIgotICAgICAg
aWdub3Jlc1BlcnNpc3RlbnRTdGF0ZU9uTGF1bmNoID0gIk5PIgotICAgICAgZGVidWdEb2N1bWVu
dFZlcnNpb25pbmcgPSAiWUVTIgotICAgICAgZGVidWdTZXJ2aWNlRXh0ZW5zaW9uID0gImludGVy
bmFsIgotICAgICAgYWxsb3dMb2NhdGlvblNpbXVsYXRpb24gPSAiWUVTIj4KLSAgICAgIDxCdWls
ZGFibGVQcm9kdWN0UnVubmFibGUKLSAgICAgICAgIHJ1bm5hYmxlRGVidWdnaW5nTW9kZSA9ICIw
Ij4KLSAgICAgICAgIDxCdWlsZGFibGVSZWZlcmVuY2UKLSAgICAgICAgICAgIEJ1aWxkYWJsZUlk
ZW50aWZpZXIgPSAicHJpbWFyeSIKLSAgICAgICAgICAgIEJsdWVwcmludElkZW50aWZpZXIgPSAi
MTQxNUFEMjEyNDk5QkM1QzAwNUJCMkU0IgotICAgICAgICAgICAgQnVpbGRhYmxlTmFtZSA9ICJS
aWNoYXJkc01vc3RseU9iakMiCi0gICAgICAgICAgICBCbHVlcHJpbnROYW1lID0gIlJpY2hhcmRz
TW9zdGx5T2JqQyIKLSAgICAgICAgICAgIFJlZmVyZW5jZWRDb250YWluZXIgPSAiY29udGFpbmVy
OlJpY2hhcmRzTW9zdGx5T2JqQy54Y29kZXByb2oiPgotICAgICAgICAgPC9CdWlsZGFibGVSZWZl
cmVuY2U+Ci0gICAgICA8L0J1aWxkYWJsZVByb2R1Y3RSdW5uYWJsZT4KLSAgIDwvTGF1bmNoQWN0
aW9uPgotICAgPFByb2ZpbGVBY3Rpb24KLSAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJSZWxl
YXNlIgotICAgICAgc2hvdWxkVXNlTGF1bmNoU2NoZW1lQXJnc0VudiA9ICJZRVMiCi0gICAgICBz
YXZlZFRvb2xJZGVudGlmaWVyID0gIiIKLSAgICAgIHVzZUN1c3RvbVdvcmtpbmdEaXJlY3Rvcnkg
PSAiTk8iCi0gICAgICBkZWJ1Z0RvY3VtZW50VmVyc2lvbmluZyA9ICJZRVMiPgotICAgICAgPEJ1
aWxkYWJsZVByb2R1Y3RSdW5uYWJsZQotICAgICAgICAgcnVubmFibGVEZWJ1Z2dpbmdNb2RlID0g
IjAiPgotICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQotICAgICAgICAgICAgQnVpbGRhYmxl
SWRlbnRpZmllciA9ICJwcmltYXJ5IgotICAgICAgICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9
ICIxNDE1QUQyMTI0OTlCQzVDMDA1QkIyRTQiCi0gICAgICAgICAgICBCdWlsZGFibGVOYW1lID0g
IlJpY2hhcmRzTW9zdGx5T2JqQyIKLSAgICAgICAgICAgIEJsdWVwcmludE5hbWUgPSAiUmljaGFy
ZHNNb3N0bHlPYmpDIgotICAgICAgICAgICAgUmVmZXJlbmNlZENvbnRhaW5lciA9ICJjb250YWlu
ZXI6UmljaGFyZHNNb3N0bHlPYmpDLnhjb2RlcHJvaiI+Ci0gICAgICAgICA8L0J1aWxkYWJsZVJl
ZmVyZW5jZT4KLSAgICAgIDwvQnVpbGRhYmxlUHJvZHVjdFJ1bm5hYmxlPgotICAgPC9Qcm9maWxl
QWN0aW9uPgotICAgPEFuYWx5emVBY3Rpb24KLSAgICAgIGJ1aWxkQ29uZmlndXJhdGlvbiA9ICJE
ZWJ1ZyI+Ci0gICA8L0FuYWx5emVBY3Rpb24+Ci0gICA8QXJjaGl2ZUFjdGlvbgotICAgICAgYnVp
bGRDb25maWd1cmF0aW9uID0gIlJlbGVhc2UiCi0gICAgICByZXZlYWxBcmNoaXZlSW5Pcmdhbml6
ZXIgPSAiWUVTIj4KLSAgIDwvQXJjaGl2ZUFjdGlvbj4KLSAgIDxJbnN0YWxsQWN0aW9uCi0gICAg
ICBidWlsZENvbmZpZ3VyYXRpb24gPSAiUmVsZWFzZSI+Ci0gICA8L0luc3RhbGxBY3Rpb24+Ci08
L1NjaGVtZT4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdB
UEkvUmljaGFyZHNNb3N0bHlPYmpDL1JpY2hhcmRzTW9zdGx5T2JqQy9Xb3JrZXJUYXNrLm0gYi9Q
ZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5T2JqQy9S
aWNoYXJkc01vc3RseU9iakMvV29ya2VyVGFzay5tCmluZGV4IGFkMWJjZDk0NWRkNzFmOTZkNzZm
MzYxMzM2ZDI5N2JlZGIzMjVhYTguLjExZTliMzQ0NWY3NDY0YWFhYzBkMGFlMmE1YjU0MTk0NjQ2
OTZlOTEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkv
UmljaGFyZHNNb3N0bHlPYmpDL1JpY2hhcmRzTW9zdGx5T2JqQy9Xb3JrZXJUYXNrLm0KKysrIGIv
UGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseU9iakMv
UmljaGFyZHNNb3N0bHlPYmpDL1dvcmtlclRhc2subQpAQCAtMjUsNiArMjUsNyBAQAogCiAjaW1w
b3J0ICJXb3JrZXJUYXNrLmgiCiAKKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTTG9ja1JlZlBy
aXZhdGUuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmg+CiAKIEBp
bXBsZW1lbnRhdGlvbiBXb3JrZXJUYXNrIHsKQEAgLTQ0LDYgKzQ1LDcgQEAgKyAoSlNDb250ZXh0
ICopY29udGV4dCB7CiAgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CiAgICAg
ZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeewogICAgICAgICBjb250ZXh0ID0gW1tKU0NvbnRl
eHQgYWxsb2NdIGluaXRdOworICAgICAgICBKU0xvY2soY29udGV4dC5KU0dsb2JhbENvbnRleHRS
ZWYpOwogICAgICAgICBbY29udGV4dCBzZXRFeGNlcHRpb25IYW5kbGVyOl4oSlNDb250ZXh0ICpj
b250ZXh0LCBKU1ZhbHVlICpleGNlcHRpb24pIHsKICAgICAgICAgICAgIE5TTG9nKEAiJUAiLCBl
eGNlcHRpb24udG9TdHJpbmcpOwogICAgICAgICAgICAgZXhpdCgyKTsKZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9S
aWNoYXJkc01vc3RseVN3aWZ0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9QZXJmb3JtYW5j
ZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5U3dpZnQvUmljaGFyZHNN
b3N0bHlTd2lmdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI5NjBhNWRhYTJhNWM4
YmI4NGRlYjU5MzM5ZmUyMTk3YzU2YTAzN2UuLmI5MzBlNWFlZDk0ZWY0MDQ1YTY0MmRlM2RhYzcx
MDk5OTUyYzM3ODkgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21p
bmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3RseVN3aWZ0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQ
SS9SaWNoYXJkc01vc3RseVN3aWZ0L1JpY2hhcmRzTW9zdGx5U3dpZnQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNDQsNiArNDQsNyBAQAogCQkxNDBBQUMzRjI0OUIwMUQxMDAwMUYxMUUg
LyogRGV2aWNlVGFzay5zd2lmdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuc3dpZnQ7IHBhdGggPSBE
ZXZpY2VUYXNrLnN3aWZ0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNDE1QUQyMjI0
OTlCQzVDMDA1QkIyRTQgLyogUmljaGFyZHNNb3N0bHlTd2lmdCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxl
IjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gUmljaGFyZHNNb3N0bHlTd2lmdDsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMTQxNUFEMjUyNDk5QkM1QzAwNUJCMkU0
IC8qIG1haW4uc3dpZnQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLnN3aWZ0OyBwYXRoID0gbWFpbi5zd2lmdDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMTQ1MDg3RTkyNTgwNTgxOTAwRDk0MTk3IC8qIEJyaWRnaW5nSGVh
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJyaWRnaW5nSGVhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCiAKIC8qIEJlZ2lu
IFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KQEAgLTc2LDYgKzc3LDcgQEAKIAkJ
MTQxNUFEMjQyNDk5QkM1QzAwNUJCMkU0IC8qIFJpY2hhcmRzTW9zdGx5U3dpZnQgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTE0NTA4N0U5MjU4MDU4MTkw
MEQ5NDE5NyAvKiBCcmlkZ2luZ0hlYWRlci5oICovLAogCQkJCTE0MEFBQzNGMjQ5QjAxRDEwMDAx
RjExRSAvKiBEZXZpY2VUYXNrLnN3aWZ0ICovLAogCQkJCTE0MEFBQzNEMjQ5QjAxRDEwMDAxRjEx
RSAvKiBIYW5kbGVyVGFzay5zd2lmdCAqLywKIAkJCQkxNDBBQUMzQzI0OUIwMUQxMDAwMUYxMUUg
LyogSWRsZVRhc2suc3dpZnQgKi8sCkBAIC0yODIsNiArMjg0LDcgQEAKIAkJCWJ1aWxkU2V0dGlu
Z3MgPSB7CiAJCQkJQ09ERV9TSUdOX1NUWUxFID0gQXV0b21hdGljOwogCQkJCVBST0RVQ1RfTkFN
RSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJU1dJRlRfT0JKQ19CUklER0lOR19IRUFERVIgPSBS
aWNoYXJkc01vc3RseVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmg7CiAJCQkJU1dJRlRfVkVSU0lPTiA9
IDUuMDsKIAkJCX07CiAJCQluYW1lID0gRGVidWc7CkBAIC0yOTEsNiArMjk0LDcgQEAKIAkJCWJ1
aWxkU2V0dGluZ3MgPSB7CiAJCQkJQ09ERV9TSUdOX1NUWUxFID0gQXV0b21hdGljOwogCQkJCVBS
T0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQkJU1dJRlRfT0JKQ19CUklER0lOR19I
RUFERVIgPSBSaWNoYXJkc01vc3RseVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmg7CiAJCQkJU1dJRlRf
VkVSU0lPTiA9IDUuMDsKIAkJCX07CiAJCQluYW1lID0gUmVsZWFzZTsKZGlmZiAtLWdpdCBhL1Bl
cmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9S
aWNoYXJkc01vc3RseVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmggYi9QZXJmb3JtYW5jZVRlc3RzL0FQ
SUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5U3dpZnQvUmljaGFyZHNNb3N0bHlTd2lm
dC9CcmlkZ2luZ0hlYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyYzBlOTFmYzdkOWUyNjM5ODk5MmM3ZWNh
Mzg2OWIxOTIzNzdkMmYKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJl
bmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5U3dpZnQvUmljaGFyZHNNb3N0bHlTd2lmdC9C
cmlkZ2luZ0hlYWRlci5oCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrUmVmUHJpdmF0ZS5oPgpkaWZmIC0t
Z2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3Rs
eVN3aWZ0L1JpY2hhcmRzTW9zdGx5U3dpZnQvV29ya2VyVGFzay5zd2lmdCBiL1BlcmZvcm1hbmNl
VGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01v
c3RseVN3aWZ0L1dvcmtlclRhc2suc3dpZnQKaW5kZXggZDk3NmIwZTcyNTEwZWFkNzA1N2QzN2Q3
ZGUwYWIyOGJmNjc2ODgyMS4uZGU0YmI2ODlmOWY5NzkxMDdhMzg3ZjliZDBhNWM5NzAzNWUwMWZk
YyAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNo
YXJkc01vc3RseVN3aWZ0L1JpY2hhcmRzTW9zdGx5U3dpZnQvV29ya2VyVGFzay5zd2lmdAorKysg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5U3dp
ZnQvUmljaGFyZHNNb3N0bHlTd2lmdC9Xb3JrZXJUYXNrLnN3aWZ0CkBAIC0zMSw2ICszMSw3IEBA
IGNsYXNzIFdvcmtlclRhc2sgOiBUYXNrIHsKICAgICBwcml2YXRlIHN0YXRpYyBsZXQgY29udGV4
dCA6IEpTQ29udGV4dCA9IHsKICAgICAgICAgbGV0IGNvbnRleHQgPSBKU0NvbnRleHQoKSEKICAg
ICAgICAgbGV0IHNvdXJjZSA9IHRyeSEgU3RyaW5nKGNvbnRlbnRzT2ZGaWxlOiAicmljaGFyZHMu
anMiKQorICAgICAgICBKU0xvY2soY29udGV4dC5qc0dsb2JhbENvbnRleHRSZWYpCiAgICAgICAg
IGNvbnRleHQuZXZhbHVhdGVTY3JpcHQoc291cmNlKQogICAgICAgICBjb250ZXh0LmV4Y2VwdGlv
bkhhbmRsZXIgPSB7IGNvbnRleHQsIGV4Y2VwdGlvbiBpbgogICAgICAgICAgICAgcHJpbnQoZXhj
ZXB0aW9uIS50b1N0cmluZygpISkKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVu
Y2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lQy9SaWNoYXJkc1NvbWVDL21haW4ubSBiL1BlcmZv
cm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lQy9SaWNoYXJkc1Nv
bWVDL21haW4ubQppbmRleCA5MzJkYmIyMDQzN2MzMTE1NTcxYzRjYzVjNTViNmJmYjk5NGEyNmYx
Li40NTc4ZTIyMzk3NzAyNDc2NDAxNmJmMjQzNDRiMTBmOWE1NmI4MWUzIDEwMDY0NAotLS0gYS9Q
ZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZUMvUmljaGFy
ZHNTb21lQy9tYWluLm0KKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQ
SS9SaWNoYXJkc1NvbWVDL1JpY2hhcmRzU29tZUMvbWFpbi5tCkBAIC0yNCw2ICsyNCw3IEBACiAq
LwogCiAjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBvcnQgPEphdmFTY3Jp
cHRDb3JlL0pTTG9ja1JlZlByaXZhdGUuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmg+CiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KIApAQCAtMTMy
LDcgKzEzMyw3IEBAIGludCBtYWluKCkKICAgICBKU0dsb2JhbENvbnRleHRSZWYgY29udGV4dCA9
IEpTR2xvYmFsQ29udGV4dENyZWF0ZShOVUxMKTsKICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAg
IGV4aXQoMSk7Ci0gICAgCisgICAgSlNMb2NrKGNvbnRleHQpOwogICAgIEpTVmFsdWVSZWYgZXhj
ZXB0aW9uID0gTlVMTDsKICAgICBKU09iamVjdFJlZiBnbG9iYWxPYmplY3QgPSBKU0NvbnRleHRH
ZXRHbG9iYWxPYmplY3QoY29udGV4dCk7CiAgICAgCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRl
c3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZU9iakMvUmljaGFyZHNTb21lT2Jq
Qy9tYWluLm0gYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRz
U29tZU9iakMvUmljaGFyZHNTb21lT2JqQy9tYWluLm0KaW5kZXggZTRmZDAyNzgzNjUwODYxMGJi
MmVkNmUxNmQyMmIyOWRiYTM5NjFkYy4uNTUzYmU0MjlmZGM3MTMwZmFjZWFmMmQwOWFhOGFmYzc3
MDVmZTljOCAxMDA2NDQKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQ
SS9SaWNoYXJkc1NvbWVPYmpDL1JpY2hhcmRzU29tZU9iakMvbWFpbi5tCisrKyBiL1BlcmZvcm1h
bmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lT2JqQy9SaWNoYXJkc1Nv
bWVPYmpDL21haW4ubQpAQCAtMjQsNiArMjQsNyBAQAogKi8KIAogI2ltcG9ydCA8Rm91bmRhdGlv
bi9Gb3VuZGF0aW9uLmg+CisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU0xvY2tSZWZQcml2YXRl
Lmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5oPgogI2ltcG9ydCA8
UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CiAKQEAgLTkzLDcgKzk0LDcgQEAgaW50IG1haW4oKQog
ICAgIEpTQ29udGV4dCAqY29udGV4dCA9IFtbSlNDb250ZXh0IGFsbG9jXSBpbml0XTsKICAgICBp
ZiAoIWNvbnRleHQpCiAgICAgICAgIGV4aXQoMSk7Ci0KKyAgICBKU0xvY2soY29udGV4dC5KU0ds
b2JhbENvbnRleHRSZWYpOwogICAgIFtjb250ZXh0IHNldE9iamVjdDpXb3JrZXJUYXNrLnNlbGYg
Zm9yS2V5ZWRTdWJzY3JpcHQ6QCJXb3JrZXJUYXNrIl07CiAgICAgW2NvbnRleHQgc2V0RXhjZXB0
aW9uSGFuZGxlcjpeKEpTQ29udGV4dCAqY29udGV4dCwgSlNWYWx1ZSAqZXhjZXB0aW9uKSB7CiAg
ICAgICAgIE5TTG9nKEAiJUAiLCBleGNlcHRpb24udG9TdHJpbmcpOwpkaWZmIC0tZ2l0IGEvUGVy
Zm9ybWFuY2VUZXN0cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc1NvbWVTd2lmdC9SaWNo
YXJkc1NvbWVTd2lmdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvUGVyZm9ybWFuY2VUZXN0
cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc1NvbWVTd2lmdC9SaWNoYXJkc1NvbWVTd2lm
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDMzOTY1ZDM4YjVlYjc5YTAxNmM1OGZm
NThkN2NiNzA4MjRkYjU4OTEuLjgwNWQ1ZWZmNTgzMThiNGZkZWNmNjdkNzc4MmZlNjQyNjJmZjE0
NGEgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmlj
aGFyZHNTb21lU3dpZnQvUmljaGFyZHNTb21lU3dpZnQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29t
ZVN3aWZ0L1JpY2hhcmRzU29tZVN3aWZ0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4
LDYgKzI4LDcgQEAKIAkJMTQwMTE4MTgyNDk5ODUxNzAwMzk4N0E5IC8qIFJpY2hhcmRzU29tZVN3
aWZ0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29t
cGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBSaWNo
YXJkc1NvbWVTd2lmdDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMTQw
MTE4MUIyNDk5ODUxNzAwMzk4N0E5IC8qIG1haW4uc3dpZnQgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLnN3aWZ0OyBwYXRoID0gbWFp
bi5zd2lmdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTQxNUFEMTYyNDk5ODYwNTAw
NUJCMkU0IC8qIHJpY2hhcmRzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBw
YXRoID0gcmljaGFyZHMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE0NTA4N0VD
MjU4MDU4QjgwMEQ5NDE5NyAvKiBCcmlkZ2luZ0hlYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCcmlk
Z2luZ0hlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVS
ZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBz
ZWN0aW9uICovCkBAIC02MCw2ICs2MSw3IEBACiAJCTE0MDExODFBMjQ5OTg1MTcwMDM5ODdBOSAv
KiBSaWNoYXJkc1NvbWVTd2lmdCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMTQ1MDg3RUMyNTgwNThCODAwRDk0MTk3IC8qIEJyaWRnaW5nSGVhZGVyLmgg
Ki8sCiAJCQkJMTQwMTE4MUIyNDk5ODUxNzAwMzk4N0E5IC8qIG1haW4uc3dpZnQgKi8sCiAJCQkJ
MTQxNUFEMTYyNDk5ODYwNTAwNUJCMkU0IC8qIHJpY2hhcmRzLmpzICovLAogCQkJKTsKQEAgLTI1
MCw2ICsyNTIsNyBAQAogCQkJYnVpbGRTZXR0aW5ncyA9IHsKIAkJCQlDT0RFX1NJR05fU1RZTEUg
PSBBdXRvbWF0aWM7CiAJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCQlT
V0lGVF9PQkpDX0JSSURHSU5HX0hFQURFUiA9IFJpY2hhcmRzU29tZVN3aWZ0L0JyaWRnaW5nSGVh
ZGVyLmg7CiAJCQkJU1dJRlRfVkVSU0lPTiA9IDUuMDsKIAkJCX07CiAJCQluYW1lID0gRGVidWc7
CkBAIC0yNTksNiArMjYyLDcgQEAKIAkJCWJ1aWxkU2V0dGluZ3MgPSB7CiAJCQkJQ09ERV9TSUdO
X1NUWUxFID0gQXV0b21hdGljOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7
CisJCQkJU1dJRlRfT0JKQ19CUklER0lOR19IRUFERVIgPSBSaWNoYXJkc1NvbWVTd2lmdC9Ccmlk
Z2luZ0hlYWRlci5oOwogCQkJCVNXSUZUX1ZFUlNJT04gPSA1LjA7CiAJCQl9OwogCQkJbmFtZSA9
IFJlbGVhc2U7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5n
QVBJL1JpY2hhcmRzU29tZVN3aWZ0L1JpY2hhcmRzU29tZVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmgg
Yi9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZVN3aWZ0
L1JpY2hhcmRzU29tZVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJjMGU5MWZj
N2Q5ZTI2Mzk4OTkyYzdlY2EzODY5YjE5MjM3N2QyZgotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lU3dpZnQvUmljaGFy
ZHNTb21lU3dpZnQvQnJpZGdpbmdIZWFkZXIuaApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9ja1JlZlByaXZh
dGUuaD4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkv
UmljaGFyZHNTb21lU3dpZnQvUmljaGFyZHNTb21lU3dpZnQvbWFpbi5zd2lmdCBiL1BlcmZvcm1h
bmNlVGVzdHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lU3dpZnQvUmljaGFyZHNT
b21lU3dpZnQvbWFpbi5zd2lmdAppbmRleCA0OWFlYjkyMWIwOTlhNWRhOWVkNWQ5NWUyYTQ3MjI2
MDkwY2RkZDNhLi40NTg0ZTJlMmEzODA3YjA4MWE3NDhhMGJjYmNiM2ZhMDlkMDY1ZDQ0IDEwMDY0
NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29t
ZVN3aWZ0L1JpY2hhcmRzU29tZVN3aWZ0L21haW4uc3dpZnQKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9BUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc1NvbWVTd2lmdC9SaWNoYXJkc1NvbWVTd2lm
dC9tYWluLnN3aWZ0CkBAIC04Myw2ICs4Myw4IEBAIGd1YXJkIGxldCBjb250ZXh0ID0gSlNDb250
ZXh0KCkgZWxzZSB7CiAgICAgZXhpdCgxKQogfQogCitKU0xvY2soY29udGV4dC5qc0dsb2JhbENv
bnRleHRSZWYpCisKIGNvbnRleHQuc2V0T2JqZWN0KFdvcmtlclRhc2suc2VsZiwgZm9yS2V5ZWRT
dWJzY3JpcHQ6ICJXb3JrZXJUYXNrIiBhcyBOU1N0cmluZykKIGNvbnRleHQuZXhjZXB0aW9uSGFu
ZGxlciA9IHsgY29udGV4dCwgZXhjZXB0aW9uIGluCiAgICAgcHJpbnQoZXhjZXB0aW9uPy50b1N0
cmluZygpIGFzIEFueSkKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvYXBp
LWJlbmNoIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9hcGktYmVuY2gKaW5kZXggYThiMTg3
MDExNjE5N2IwN2ZkZGQyZjQ3NDYzMWVlMGNlMjNhMGI3YS4uOWM2YTEwZjk1OWU0OWMzZGRkZjdh
YzQ2MDZlOWE3NmZlZWEwZTUzMSAxMDA3NTUKLS0tIGEvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5j
aC9hcGktYmVuY2gKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9BUElCZW5jaC9hcGktYmVuY2gKQEAg
LTM2LDYgKzM2LDcgQEAgQlVJTERfRElSRUNUT1JJRVM9KCkKIFJFRkVSRU5DRVM9KCJYIikKIENV
UlJFTlRfQVBJPSgpCiBVUENPTUlOR19BUEk9KCkKK0FSQ0hTPSR7QVJDSFM6LSQodW5hbWUgLW0p
fQogCiBzaG91bGRCdWlsZD10cnVlCiBydW5SZWZlcmVuY2VzPXRydWUKQEAgLTE0NiwxMSArMTQ3
LDEyIEBAIGJ1aWxkQmVuY2htYXJrKCkgewogICAgICAgICByZXR1cm4KICAgICBmaQogCi0gICAg
bG9nICJCdWlsZGluZyAkQkVOQ0hNQVJLX05BTUUuLi4iCi0gICAgeGNvZGVidWlsZCAtcHJvamVj
dCAiJHByb2plY3QiIC10YXJnZXQgIiRCRU5DSE1BUktfTkFNRSIgLWNvbmZpZ3VyYXRpb24gUmVs
ZWFzZSBidWlsZAorICAgIGxvZyAiQnVpbGRpbmcgJEJFTkNITUFSS19OQU1FLi4uIChGUkFNRVdP
UktfU0VBUkNIX1BBVEhTPSckQlVJTERfRElSRUNUT1JZJykiCisgICAgeGNvZGVidWlsZCAtcHJv
amVjdCAiJHByb2plY3QiIC10YXJnZXQgIiRCRU5DSE1BUktfTkFNRSIgLWNvbmZpZ3VyYXRpb24g
UmVsZWFzZSBidWlsZCAiRlJBTUVXT1JLX1NFQVJDSF9QQVRIUz0nJEJVSUxEX0RJUkVDVE9SWSci
ICJBUkNIUz0nJEFSQ0hTJyIKIH0KIAogYnVpbGQoKSB7CisgICAgQlVJTERfRElSRUNUT1JZPSQx
CiAgICAgZm9yRWFjaEJlbmNobWFyayAiYnVpbGRCZW5jaG1hcmsiCiB9CiAKQEAgLTIyMyw3ICsy
MjUsNyBAQCBwcmludFJlc3VsdHMoKSB7CiAgICAgZmkKIAogICAgIGxvY2FsIHNjb3JlIGNvdW50
Ci0gICAgc2NvcmU9MQorICAgIHNjb3JlPTAKICAgICBjb3VudD0wCiAgICAgCiAgICAgcHJpbnRD
YXRlZ29yeSgpIHsKQEAgLTIzNywxMiArMjM5LDEyIEBAIHByaW50UmVzdWx0cygpIHsKICAgICAg
ICAgICAgIGF2Zz0kKGNvbXB1dGVBdmVyYWdlICIkYmVuY2htYXJrSUQiKQogICAgICAgICAgICAg
cHJpbnRBdmVyYWdlICIkYmVuY2htYXJrSUQiICIkYXZnIgogICAgICAgICAgICAgY291bnQ9JCgo
Y291bnQgKyAxKSkKLSAgICAgICAgICAgIHNjb3JlPSQoKHNjb3JlICogYXZnKSkKKyAgICAgICAg
ICAgIHNjb3JlPSQoZWNobyAiJHNjb3JlIiAiJGF2ZyIgfCBhd2sgJ3twcmludCAoJDEgKyBsb2co
JDIpKSB9JykKICAgICAgICAgZG9uZQogICAgIH0KICAgICBwcmludENhdGVnb3J5ICJDVVJSRU5U
X0FQSSIKICAgICBwcmludENhdGVnb3J5ICJVUENPTUlOR19BUEkiCi0gICAgc2NvcmU9JChlY2hv
ICIkc2NvcmUiICIkY291bnQiIHwgYXdrICd7IHByaW50KDUwMDAuMCAvICgkMS4wIF4gKDEuMCAv
ICQyKSkpIH0nKQorICAgIHNjb3JlPSQoZWNobyAiJHNjb3JlIiAiJGNvdW50IiB8IGF3ayAneyBw
cmludCg1MDAwLjAgLyBleHAoJDEgLyAkMikpIH0nKQogCiAgICAgZWNobyAiIgogICAgIGVjaG8g
IlNjb3JlOiAkc2NvcmUiCkBAIC0yNjUsMTEgKzI2NywxMSBAQCBydW4oKSB7CiBtYWluKCkgewog
ICAgIGNvbGxlY3RGbGFncyAiJEAiCiAgICAgY29sbGVjdEJlbmNobWFya3MKLSAgICBpZiBbICIk
c2hvdWxkQnVpbGQiID09IHRydWUgXTsgdGhlbgotICAgICAgICBidWlsZAotICAgIGZpCi0KICAg
ICBmb3IgYnVpbGREaXJlY3RvcnkgaW4gIiR7QlVJTERfRElSRUNUT1JJRVNbQF19IjsgZG8KKyAg
ICAgICAgaWYgWyAiJHNob3VsZEJ1aWxkIiA9PSB0cnVlIF07IHRoZW4KKyAgICAgICAgICAgIGJ1
aWxkICIkYnVpbGREaXJlY3RvcnkiCisgICAgICAgIGZpCisKICAgICAgICAgcnVuICIkYnVpbGRE
aXJlY3RvcnkiCiAgICAgZG9uZQogfQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9DaGFu
Z2VMb2cgYi9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwppbmRleCA1ZmM4NzlmOTA3MDk0YzE1
NjQ1MmZlNGVjODdkODFiNmVjYzkxNWQ4Li40ZTc2YWRhYjAwNmJiZjBhMmU4ZjRkN2U1YzU1NWM4
NWQwNDFhOGMyIDEwMDY0NAotLS0gYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZworKysgYi9Q
ZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIwLTEyLTA4ICBU
YWRldSBaYWdhbGxvICA8dHphZ2FsbG9AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIEpTQyBB
UEkgdG8gYWxsb3cgYWNxdWlyaW5nIHRoZSBKU0xvY2sKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTY2MworCisgICAgICAgIFJldmlld2VkIGJ5IEZp
bGlwIFBpemxvLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZG9lcyAzIHRoaW5nczoKKyAgICAgICAg
LSBDaGFuZ2UgaG93IHRoZSBnZW9tZWFuIGlzIGNhbGN1bGF0ZWQgaW4gYXBpLWJlbmNoIHRvIGF2
b2lkIG92ZXJmbG93aW5nCisgICAgICAgIC0gQWxsb3cgbGlua2luZyBhZ2FpbnN0IHRoZSBsb2Nh
bCBidWlsZCB3ZSdyZSBiZW5jaG1hcmtpbmcKKyAgICAgICAgLSBBZG9wdCB0aGUgbmV3IEpTTG9j
ayBBUEkgaW4gdGhlIFVwY29taW5nQVBJIHN1YnRlc3RzCisKKyAgICAgICAgVXNpbmcgdGhlIG5l
dyBBUEkgdGhlIHNjb3JlIGltcHJvdmVzIGJ5IH4xMy41JS4gSGVyZSBhcmUgdGhlIHJlc3VsdHMg
Zm9yIGVhY2gKKyAgICAgICAgb2YgdGhlICJVcGNvbWluZ0FQSSIgc3VidGVzdHMgcGx1cyB0aGUg
dG90YWwgc2NvcmU6CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmVmb3JlICAg
ICAgIEFmdGVyCisgICAgICAgIFJpY2hhcmRzTW9zdGx5QzogICAgICAgICAgNzdtcyAgICAgICAg
MjNtcworICAgICAgICBSaWNoYXJkc01vc3RseU9iakM6ICAgICAgMzA5bXMgICAgICAgMjgybXMK
KyAgICAgICAgUmljaGFyZHNNb3N0bHlTd2lmdCAgICAgIDMwNW1zICAgICAgIDI4MG1zCisgICAg
ICAgIFJpY2hhcmRzU29tZUM6ICAgICAgICAgICAxMDFtcyAgICAgICAgOTVtcworICAgICAgICBS
aWNoYXJkc1NvbWVPYmpDOiAgICAgICAgMTYwbXMgICAgICAgMTU3bXMKKyAgICAgICAgUmljaGFy
ZHNTb21lU3dpZnQ6ICAgICAgIDIwMW1zICAgICAgIDIwMm1zCisgICAgICAgIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICBTY29yZTogICAgICAgICAg
ICAgICAgIDI5LjU5NzQgICAgIDMzLjY0MDQKKworICAgICAgICAqIEFQSUJlbmNoL1VwY29taW5n
QVBJL1JpY2hhcmRzTW9zdGx5Qy9SaWNoYXJkc01vc3RseUMvcmljaGFyZHMuYzoKKyAgICAgICAg
KHdvcmtmbik6CisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlP
YmpDL1JpY2hhcmRzTW9zdGx5T2JqQy54Y29kZXByb2oveGNzaGFyZWRkYXRhL3hjc2NoZW1lcy9S
aWNoYXJkc01vc3RseU9iakMueGNzY2hlbWU6IFJlbmFtZWQgZnJvbSBQZXJmb3JtYW5jZVRlc3Rz
L0FQSUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzTW9zdGx5T2JqQy9SaWNoYXJkc01vc3RseU9i
akMueGNvZGVwcm9qL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvUmljaGFyZHNNb3N0bHlTd2lmdC54
Y3NjaGVtZS4KKyAgICAgICAgKiBBUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc01vc3RseU9i
akMvUmljaGFyZHNNb3N0bHlPYmpDL1dvcmtlclRhc2subToKKyAgICAgICAgKCtbV29ya2VyVGFz
ayBjb250ZXh0XSk6CisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0
bHlTd2lmdC9SaWNoYXJkc01vc3RseVN3aWZ0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJk
c01vc3RseVN3aWZ0L0JyaWRnaW5nSGVhZGVyLmg6IENvcGllZCBmcm9tIFBlcmZvcm1hbmNlVGVz
dHMvQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3Rs
eVN3aWZ0L1dvcmtlclRhc2suc3dpZnQuCisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkv
UmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3RseVN3aWZ0L1dvcmtlclRhc2suc3dpZnQ6
CisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lQy9SaWNoYXJkc1Nv
bWVDL21haW4ubToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIEFQSUJlbmNoL1VwY29taW5n
QVBJL1JpY2hhcmRzU29tZU9iakMvUmljaGFyZHNTb21lT2JqQy9tYWluLm06CisgICAgICAgICht
YWluKToKKyAgICAgICAgKiBBUElCZW5jaC9VcGNvbWluZ0FQSS9SaWNoYXJkc1NvbWVTd2lmdC9S
aWNoYXJkc1NvbWVTd2lmdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIEFQ
SUJlbmNoL1VwY29taW5nQVBJL1JpY2hhcmRzU29tZVN3aWZ0L1JpY2hhcmRzU29tZVN3aWZ0L0Jy
aWRnaW5nSGVhZGVyLmg6IENvcGllZCBmcm9tIFBlcmZvcm1hbmNlVGVzdHMvQVBJQmVuY2gvVXBj
b21pbmdBUEkvUmljaGFyZHNNb3N0bHlTd2lmdC9SaWNoYXJkc01vc3RseVN3aWZ0L1dvcmtlclRh
c2suc3dpZnQuCisgICAgICAgICogQVBJQmVuY2gvVXBjb21pbmdBUEkvUmljaGFyZHNTb21lU3dp
ZnQvUmljaGFyZHNTb21lU3dpZnQvbWFpbi5zd2lmdDoKKyAgICAgICAgKiBBUElCZW5jaC9hcGkt
YmVuY2g6CisKIDIwMjAtMTItMDcgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNv
bT4KIAogICAgICAgICBbQ01ha2VdIFJlbW92ZSBXRUJLSVRfV1JBUF9TT1VSQ0VMSVNUCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>