<?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>94171</bug_id>
          
          <creation_ts>2012-08-15 19:19:22 -0700</creation_ts>
          <short_desc>Allow blocking of IndexedDB in third-party contexts</short_desc>
          <delta_ts>2013-01-31 06:59:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>108154</dependson>
          <blocked>108476</blocked>
    
    <blocked>108477</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Vicki Pfau">jeffrey+webkit</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jeffrey+webkit</cc>
    
    <cc>jochen</cc>
    
    <cc>jsbell</cc>
    
    <cc>mkwst</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>696636</commentid>
    <comment_count>0</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2012-08-15 19:19:22 -0700</bug_when>
    <thetext>Bug #94057 adds a parameter to SecurityOrigin::canAccessDatabase to enable the user to choose to block third-party contexts from accessing storage databases. This parameter needs to be passed in the IndexedDB code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707959</commentid>
    <comment_count>1</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-29 15:47:38 -0700</bug_when>
    <thetext>Looks like this could be done in DOMWindowIndexedDatabase::webkitIndexedDB and WorkerContextIndexedDatabase::webkitIndexedDB to forbid access to the IDBFactory itself.

(Alternately, the checks could be added to IDBFactory.cpp&apos;s isContextValid(ScriptContext*) function which all IDBFactory methods call, but that doesn&apos;t seem to be the pattern used elsewhere.)

jeffrey@ - were you planning to take this on?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707979</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-29 15:56:46 -0700</bug_when>
    <thetext>I think jpfau filed another bug on this topic, which should probably be duped one way or another.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707981</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-29 15:57:06 -0700</bug_when>
    <thetext>Oh, maybe this is same one.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708082</commentid>
    <comment_count>4</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2012-08-29 17:18:01 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Looks like this could be done in DOMWindowIndexedDatabase::webkitIndexedDB and WorkerContextIndexedDatabase::webkitIndexedDB to forbid access to the IDBFactory itself.
&gt; 
&gt; (Alternately, the checks could be added to IDBFactory.cpp&apos;s isContextValid(ScriptContext*) function which all IDBFactory methods call, but that doesn&apos;t seem to be the pattern used elsewhere.)
&gt; 
&gt; jeffrey@ - were you planning to take this on?

I haven&apos;t taken a deep look at what the spec says about how errors should be handled, but it seems like the best way to go about this is to return an error when attempting to open a database. It&apos;s probably also a good idea to check per call (as it looks like the spec might allow this)--this isn&apos;t done in other places because in many cases the spec does not give allowances that would let us do this.

I was also not planning on implementing this soon. It looks like work on IndexedDB is currently very active, so it might be better for someone more involved in that work to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818072</commentid>
    <comment_count>5</comment_count>
      <attachid>185056</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-28 13:59:59 -0800</bug_when>
    <thetext>Created attachment 185056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818086</commentid>
    <comment_count>6</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-28 14:11:45 -0800</bug_when>
    <thetext>I&apos;ve taken a quick stab at implementing this for IndexedDB. It seems to work correctly, modulo the exception type that&apos;s thrown. Actually, now that I look at it again, this is likely wrong; the check probably needs to be in IDBFactory::open. Hrm.

+jochen, since he likes blocking third-party content. Seriously. I think he&apos;d block first-part content too if he could get away with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818091</commentid>
    <comment_count>7</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-28 14:15:40 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I&apos;ve taken a quick stab at implementing this for IndexedDB. It seems to work correctly, modulo the exception type that&apos;s thrown. Actually, now that I look at it again, this is likely wrong; the check probably needs to be in IDBFactory::open. Hrm.

Yeah, this patch is wrong. It&apos;s blocking creation of `window.webkitIndexedDB` entirely. Ugh.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818093</commentid>
    <comment_count>8</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-28 14:17:17 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I&apos;ve taken a quick stab at implementing this for IndexedDB. It seems to work correctly, modulo the exception type that&apos;s thrown.

Noticed that - looks like it&apos;s returning null from self.indexedDB and the TypeError arises from calling indexedDB.open(...) ?

&gt; Actually, now that I look at it again, this is likely wrong; the check probably needs to be in IDBFactory::open. Hrm.

Yeah, that&apos;d make returning a SecurityError easier.

If implemented in ::open(), should be done in deleteDatabase() and getDatabaseNames() too.

Another place this could conceivably live is in Source/WebKit/chromium/src/IDBFactoryBackendProxy.cpp&apos;s IDBFactoryBackendProxy::allowIndexedDB</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818096</commentid>
    <comment_count>9</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-28 14:18:18 -0800</bug_when>
    <thetext>Thanks for tackling this!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818116</commentid>
    <comment_count>10</comment_count>
    <who name="">jochen</who>
    <bug_when>2013-01-28 14:35:20 -0800</bug_when>
    <thetext>In chromium, we do the checks in IDBFactory.getDatabaseNames, IDBFactory.open, and IDBFactory.deleteDatabase

For workers, we don&apos;t do third-party access checks (what&apos;s the first party URL of a shared worker anyway?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818151</commentid>
    <comment_count>11</comment_count>
      <attachid>185076</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-28 15:00:05 -0800</bug_when>
    <thetext>Created attachment 185076
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818163</commentid>
    <comment_count>12</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-28 15:08:18 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; In chromium, we do the checks in IDBFactory.getDatabaseNames, IDBFactory.open, and IDBFactory.deleteDatabase

The current patch moves the check to these methods, and seems to work correctly for .open(). I&apos;ll add moar tests for the other two methods sometime tomorrow. Depending on how much work it is to pipe an exception-throwing-mechanism down to getDatabaseNames, I might or might not want to split that out into a separate patch.

WDYT?

&gt; For workers, we don&apos;t do third-party access checks

Not even for regular ol&apos; workers?

&gt; (what&apos;s the first party URL of a shared worker anyway?)

According to this patch, it&apos;s the SecurityOrigin of the ScriptExecutionContext that&apos;s passed in when it&apos;s created. Shared workers don&apos;t have &quot;top&quot; origins at the moment, though, which would certainly cause problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818166</commentid>
    <comment_count>13</comment_count>
      <attachid>185076</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-28 15:10:46 -0800</bug_when>
    <thetext>Comment on attachment 185076
Patch

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

IDB changes LGTM with one nit

&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:104
&gt; +        return 0;

Why no ec = SECURITY_ERR here?

&gt; LayoutTests/http/tests/security/cross-origin-worker-indexeddb-expected.txt:8
&gt; +self.webkitIndexedDB.open() threw an exception: SecurityError

tests for deleteDatabase() and webkitGetDatabaseNames() would be nice (as mentioned in a comment)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818168</commentid>
    <comment_count>14</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-28 15:12:50 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 185076 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=185076&amp;action=review
&gt; 
&gt; IDB changes LGTM with one nit
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:104
&gt; &gt; +        return 0;
&gt; 
&gt; Why no ec = SECURITY_ERR here

Ah, no raises (DOMException) in the IDL. Want to go ahead an add that and update the method signature?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818175</commentid>
    <comment_count>15</comment_count>
      <attachid>185076</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-28 15:16:46 -0800</bug_when>
    <thetext>Comment on attachment 185076
Patch

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

Thanks for taking a look!

&gt;&gt;&gt; Source/WebCore/Modules/indexeddb/IDBFactory.cpp:104
&gt;&gt;&gt; +        return 0;
&gt;&gt; 
&gt;&gt; Why no ec = SECURITY_ERR here?
&gt; 
&gt; Ah, no raises (DOMException) in the IDL. Want to go ahead an add that and update the method signature?

It&apos;s a bit tangential to this patch. I think I&apos;d prefer to split it out into a separate patch and land that first. I&apos;ll spin something up tomorrow.

&gt;&gt; LayoutTests/http/tests/security/cross-origin-worker-indexeddb-expected.txt:8
&gt;&gt; +self.webkitIndexedDB.open() threw an exception: SecurityError
&gt; 
&gt; tests for deleteDatabase() and webkitGetDatabaseNames() would be nice (as mentioned in a comment)

Yes. MOAR TESTS. Tomorrow. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818257</commentid>
    <comment_count>16</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-28 16:37:15 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt; Ah, no raises (DOMException) in the IDL. Want to go ahead an add that and update the method signature?
&gt; 
&gt; It&apos;s a bit tangential to this patch. I think I&apos;d prefer to split it out into a separate patch and land that first. I&apos;ll spin something up tomorrow.

SGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818744</commentid>
    <comment_count>17</comment_count>
      <attachid>185204</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-29 02:24:01 -0800</bug_when>
    <thetext>Created attachment 185204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818747</commentid>
    <comment_count>18</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-29 02:25:30 -0800</bug_when>
    <thetext>The current patch adds tests on top of the patch from yesterday, and relies upon http://wkbug.com/108154 to add exception-throwing support to getDatabaseNames. I&apos;m not going to throw it to the bots until that patch lands, but I&apos;d appreciate you folks taking a look at your leisure. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818749</commentid>
    <comment_count>19</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-29 02:29:51 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; The current patch adds tests on top of the patch from yesterday, and relies upon http://wkbug.com/108154 to add exception-throwing support to getDatabaseNames. I&apos;m not going to throw it to the bots until that patch lands, but I&apos;d appreciate you folks taking a look at your leisure. :)

Also: Jochen mentioned that this diverges from Chrome&apos;s current behavior, as it doesn&apos;t currently throw exceptions. I&apos;ll figure out how to change that: throwing exceptions seems like the right thing to do.

Jochen: is it worth trying to stuff that into this patch as well? I haven&apos;t looked at the code yet, so I&apos;m not sure what the complexity level is. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819922</commentid>
    <comment_count>20</comment_count>
      <attachid>185204</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-30 01:14:08 -0800</bug_when>
    <thetext>Comment on attachment 185204
Patch

Ugh. Thought I set this earlier. Would one of you fine folks mind reviewing this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819967</commentid>
    <comment_count>21</comment_count>
      <attachid>185204</attachid>
    <who name="">jochen</who>
    <bug_when>2013-01-30 01:57:15 -0800</bug_when>
    <thetext>Comment on attachment 185204
Patch

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

&gt; Source/WebCore/dom/ScriptExecutionContext.h:92
&gt; +    virtual const SecurityOrigin* topOrigin() const = 0;

Adam, can you have a look at this?

I also wonder whether the existing code e.g. DOMWindow::localStorage should use this method as well?

&gt; Source/WebCore/workers/WorkerContext.h:141
&gt; +        virtual const SecurityOrigin* topOrigin() const OVERRIDE { return m_topOrigin.get(); }

What is topOrigin() I guess for workers that&apos;s the topOrigin of the frame that created the worker?

What about shared workers?

In the chromium port, we treat them as first parties (see ChromeContentBrowserClient::AllowWorkerIndexedDB)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819970</commentid>
    <comment_count>22</comment_count>
      <attachid>185204</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-30 02:11:52 -0800</bug_when>
    <thetext>Comment on attachment 185204
Patch

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

&gt;&gt; Source/WebCore/dom/ScriptExecutionContext.h:92
&gt;&gt; +    virtual const SecurityOrigin* topOrigin() const = 0;
&gt; 
&gt; Adam, can you have a look at this?
&gt; 
&gt; I also wonder whether the existing code e.g. DOMWindow::localStorage should use this method as well?

I do think we should change the existing code to use this method; I didn&apos;t want to do that in the same patch, but I&apos;d certainly like to follow this up with changes for other places that are pulling &apos;frame()-&gt;document()-&gt;topDocument()-&gt;securityOrigin()&apos;.

&gt;&gt; Source/WebCore/workers/WorkerContext.h:141
&gt;&gt; +        virtual const SecurityOrigin* topOrigin() const OVERRIDE { return m_topOrigin.get(); }
&gt; 
&gt; What is topOrigin() I guess for workers that&apos;s the topOrigin of the frame that created the worker?
&gt; 
&gt; What about shared workers?
&gt; 
&gt; In the chromium port, we treat them as first parties (see ChromeContentBrowserClient::AllowWorkerIndexedDB)

There&apos;s a FIXME in SecurityOrigin::canAccessDatabase that implies that there should always be a topOrigin. For the moment, however, that&apos;s not the case for shared workers, which pass in 0 as a topOrigin in their constructor.

For normal workers, I think you&apos;re correct that the top origin passed in when creating the worker thread is the top-level origin of the document that created the worker: see WorkerMessagingProxy::startWorkerContext (Source/WebCore/workers/WorkerMessagingProxy.cpp:285).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820472</commentid>
    <comment_count>23</comment_count>
      <attachid>185204</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-30 13:22:59 -0800</bug_when>
    <thetext>Comment on attachment 185204
Patch

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

&gt;&gt;&gt; Source/WebCore/dom/ScriptExecutionContext.h:92
&gt;&gt;&gt; +    virtual const SecurityOrigin* topOrigin() const = 0;
&gt;&gt; 
&gt;&gt; Adam, can you have a look at this?
&gt;&gt; 
&gt;&gt; I also wonder whether the existing code e.g. DOMWindow::localStorage should use this method as well?
&gt; 
&gt; I do think we should change the existing code to use this method; I didn&apos;t want to do that in the same patch, but I&apos;d certainly like to follow this up with changes for other places that are pulling &apos;frame()-&gt;document()-&gt;topDocument()-&gt;securityOrigin()&apos;.

+1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820479</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-30 13:24:19 -0800</bug_when>
    <thetext>It would be good to align our notion of &quot;top origin&quot; and &quot;first party&quot; for workers.  It&apos;s not clear to me what we should do for shared workers.  For dedicated workers, I think it makes sense to take the top origin of the frame that created them because they&apos;re most similar to invisible iframes in that page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821237</commentid>
    <comment_count>25</comment_count>
      <attachid>185204</attachid>
    <who name="">jochen</who>
    <bug_when>2013-01-31 01:16:51 -0800</bug_when>
    <thetext>Comment on attachment 185204
Patch

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

r=me

&gt; LayoutTests/http/tests/security/cross-origin-worker-indexeddb.html:1
&gt; +&lt;html&gt;

missing DOCTYPE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821272</commentid>
    <comment_count>26</comment_count>
      <attachid>185723</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-01-31 02:16:58 -0800</bug_when>
    <thetext>Created attachment 185723
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821495</commentid>
    <comment_count>27</comment_count>
      <attachid>185723</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 06:59:29 -0800</bug_when>
    <thetext>Comment on attachment 185723
Patch for landing.

Clearing flags on attachment: 185723

Committed r141418: &lt;http://trac.webkit.org/changeset/141418&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821496</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-31 06:59:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185056</attachid>
            <date>2013-01-28 13:59:59 -0800</date>
            <delta_ts>2013-01-28 14:59:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94171-20130128225645.patch</filename>
            <type>text/plain</type>
            <size>21103</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZmN2RlNzAyZGQ5MThj
N2E1ZGQ4OTAxMWUxZmYzY2ExZTU4MzA5MS4uZWU1ZTgxMjQ0YzdhNmVhNzU3YWVhMDAzNjJlOGQy
NDBhYTE0N2Q2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAxLTI4ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWxsb3cgYmxvY2tpbmcgb2Yg
SW5kZXhlZERCIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDE3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZW5zdXJlcyB0aGF0IHRoZSBvcmln
aW4gb2YgdGhlIHRvcCB3aW5kb3cgaXMgcGFzc2VkIGludG8KKyAgICAgICAgU2VjdXJpdHlPcmln
aW46OmNhbkFjY2Vzc0RhdGFiYXNlIHdoZW4gY3JlYXRpbmcgYW4gSW5kZXhlZERCLiBHaXZpbmcK
KyAgICAgICAgU2VjdXJpdHlPcmlnaW4gYWNjZXNzIHRvIHRoaXMgZGF0YSBtZWFucyB0aGF0IGl0
IGNhbiBwcm9wZXJseSBjaGVjaworICAgICAgICB3aGV0aGVyIHRoZSBkYXRhYmFzZSBpcyBiZWlu
ZyBvcGVuZWQgaW4gYSB0aGlyZC1wYXJ0eSBjb250ZXh0LCBhbmQKKyAgICAgICAgdGhlcmVmb3Jl
IHByb3Blcmx5IGVuZm9yY2UgdGhlIHRoaXJkLXBhcnR5IGFjY2VzcyBjaGVja3MgdGhhdCB3ZXJl
CisgICAgICAgIGFkZGVkIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyNTcz
Ni4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5k
ZXhlZGRiLWFsbG93ZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRi
Lmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRh
YmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dJbmRleGVkRGF0YWJhc2U6Omlu
ZGV4ZWREQik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyQ29udGV4dEluZGV4
ZWREYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0SW5kZXhlZERh
dGFiYXNlOjppbmRleGVkREIpOgorCiAyMDEzLTAxLTI3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgU1ZHUGF0aFN0cmluZ1NvdXJjZSBzaG91bGQgbm90IHVwLWNvbnZl
cnQgOC1iaXQgc3RyaW5ncyB0byBVVEYtMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9ET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuY3BwCmluZGV4
IGE2MTY5MTNiMjYzZWE4ODFiMTk5OTcwNTcyZjEyYjhlNmE4Mjk3YWMuLmY0MDY1ZTFmMjYzZWQ0
YWViZDJkMWQ5ZTRmNzNlMjY0MmM3ZjRlYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0RPTVdpbmRvd0luZGV4ZWREYXRhYmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvRE9NV2luZG93SW5kZXhlZERhdGFiYXNlLmNwcApA
QCAtMTA3LDcgKzEwNyw3IEBAIElEQkZhY3RvcnkqIERPTVdpbmRvd0luZGV4ZWREYXRhYmFzZTo6
aW5kZXhlZERCKCkKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYg
KCFkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuQWNjZXNzRGF0YWJhc2UoKSkKKyAgICBp
ZiAoIWRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT5jYW5BY2Nlc3NEYXRhYmFzZShkb2N1bWVu
dC0+dG9wRG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpCiAgICAgICAgIHJldHVybiAwOwog
CiAgICAgaWYgKCFtX3dpbmRvdy0+aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJDb250ZXh0SW5k
ZXhlZERhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtl
ckNvbnRleHRJbmRleGVkRGF0YWJhc2UuY3BwCmluZGV4IDQwNDhhNzk1ZWVlY2MwNDBhY2JlNDlh
ZTFiOTllMjg0NzIzYWExMTYuLmZjNzRkMDk4NGIxZDg5MGJlZTRkMmM5ZjgxYzg0NjczZGYwNDQ0
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckNv
bnRleHRJbmRleGVkRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL1dvcmtlckNvbnRleHRJbmRleGVkRGF0YWJhc2UuY3BwCkBAIC0zNSw2ICszNSw3IEBA
CiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNs
dWRlICJXb3JrZXJDb250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjksNyAr
NzAsOCBAQCBJREJGYWN0b3J5KiBXb3JrZXJDb250ZXh0SW5kZXhlZERhdGFiYXNlOjppbmRleGVk
REIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udAogCiBJREJGYWN0b3J5KiBXb3JrZXJDb250
ZXh0SW5kZXhlZERhdGFiYXNlOjppbmRleGVkREIoKQogewotICAgIGlmICghbV9jb250ZXh0LT5z
ZWN1cml0eU9yaWdpbigpLT5jYW5BY2Nlc3NEYXRhYmFzZSgpKQorICAgIEFTU0VSVChtX2NvbnRl
eHQtPmlzV29ya2VyQ29udGV4dCgpKTsKKyAgICBpZiAoIW1fY29udGV4dC0+c2VjdXJpdHlPcmln
aW4oKS0+Y2FuQWNjZXNzRGF0YWJhc2Uoc3RhdGljX2Nhc3Q8V29ya2VyQ29udGV4dCo+KG1fY29u
dGV4dCktPnRvcE9yaWdpbigpKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgaWYgKCFtX2ZhY3Rv
cnlCYWNrZW5kKQogICAgICAgICBtX2ZhY3RvcnlCYWNrZW5kID0gSURCRmFjdG9yeUJhY2tlbmRJ
bnRlcmZhY2U6OmNyZWF0ZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI3MGRlYTUyOGVkNmFjNzRhMWRjMTY2OGI4Nzdm
NDQ4YThkY2QyYzMuLjYzYzZmMjMwODNkZThhODE2MTNmNmM5ODYyYjAyOTEyMzhlZGQ2NTYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMy0wMS0yOCAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEFsbG93IGJsb2NraW5nIG9mIEluZGV4ZWREQiBpbiB0aGlyZC1w
YXJ0eSBjb250ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTQxNzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgdGVzdHMgdG8gZW5zdXJlIHRoYXQgSW5kZXhlZERCIGNhbiBiZSBibG9ja2VkIGlu
IGEgdGhpcmQtcGFydHkKKyAgICAgICAgY29udGV4dCBpbiBib3RoIG5vcm1hbCBkb2N1bWVudHMg
YW5kIGluIHdvcmtlcnMuIFRoZXNlIHRlc3RzIGFyZQorICAgICAgICBtb2RlbGVkIGFmdGVyIHRo
ZSBleGlzdGluZyBjcm9zcy1vcmlnaW4td2Vic3FsKiB0ZXN0czsgaXQgbWlnaHQgYmUKKyAgICAg
ICAgcG9zc2libGUgdG8gcmV1c2Ugc29tZSBjb2RlIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3Jp
Z2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXIt
aW5kZXhlZGRiLWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2Vy
LWluZGV4ZWRkYi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGIuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3It
aW5kZXhlZGRiLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVz
b3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLXdvcmtlci1pbmRleGVkZGIuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvZG9jdW1lbnQtZm9y
LWNyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3dvcmtlci1mb3ItaW5kZXhlZGRiLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNlbGYub25tZXNzYWdlKToKKyAgICAgICAgICAgIEFkZCBleGNpdGluZyBu
ZXcgdGVzdHMsIHdpdGggbW9yZSBib2lsZXJwbGF0ZSB0aGFuIEkgZXhwZWN0ZWQhCisgICAgICAg
ICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFj
LXNub3dsZW9wYXJkL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAgICAgU2tpcCB0aGVzZSBJ
bmRleGVkREIgdGVzdHMgb24gcGxhdGZvcm1zIHdoZXJlIHRoZSBmZWF0dXJlIGlzbid0CisgICAg
ICAgICAgICBlbmFibGVkLgorCiAyMDEzLTAxLTI4ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMTM5MTQ1KTogQSBjb3VwbGUgb2YgZmFzdC93
b3JrZXJzIHRlc3RzIGZhaWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1hbGxvd2Vk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzViZTM5ZjFlY2MzMjhjNDk3ODIyYzg2MmVmYzI5
Nzg5YmU1NTBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWFsbG93ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTMgQEAKK0JvdGggb2YgdGhlc2UgZnJhbWVzIHNob3VsZCBzdWNjZXNzZnVsbHkgb3BlbiB0
aGUgZGF0YWJhc2U6CisKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88
IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1N1Y2Nlc3NmdWxseSBjYWxsZWQgd2luZG93Lndl
YmtpdEluZGV4ZWREQi5vcGVuKCkuCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGgg
Ly88IS0tZnJhbWUxLS0+LS0+JworLS0tLS0tLS0KK1N1Y2Nlc3NmdWxseSBjYWxsZWQgd2luZG93
LndlYmtpdEluZGV4ZWREQi5vcGVuKCkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWFsbG93ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNzI3YzM2MTIyYTAyNjEyNmM3ZTIyYjJkMWY3YmVmMzgwN2Y0ODc3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4taW5kZXhlZGRiLWFsbG93ZWQuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgIH0K
KyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxwPkJvdGggb2YgdGhlc2UgZnJh
bWVzIHNob3VsZCBzdWNjZXNzZnVsbHkgb3BlbiB0aGUgZGF0YWJhc2U6PC9wPgorICAgIDxpZnJh
bWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLW9y
aWdpbi1pZnJhbWUtZm9yLWluZGV4ZWRkYi5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIHNy
Yz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4t
aWZyYW1lLWZvci1pbmRleGVkZGIuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1p
bmRleGVkZGItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1vcmlnaW4taW5kZXhlZGRiLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGI0NGQ2ZGI5
YjQ1NTQwZDQ3YWRjZGNkZjU2YWQ5ZTVmMjVmMmMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEzIEBACitUaGUgZmlyc3QgaWZyYW1lIGJlbG93IHNob3VsZCByZXR1
cm4gYSBzZWN1cml0eSBlcnJvciwgYW5kIHRoZSBzZWNvbmQgc2hvdWxkIHN1Y2Nlc3NmdWxseSBv
cGVuIHRoZSBkYXRhYmFzZS4KKworICAKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0
aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQord2luZG93LndlYmtpdEluZGV4ZWREQi5v
cGVuKCkgdGhyZXcgYW4gZXhjZXB0aW9uOiBUeXBlRXJyb3IKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTEtLT4tLT4nCistLS0tLS0tLQorU3VjY2Vzc2Z1bGx5
IGNhbGxlZCB3aW5kb3cud2Via2l0SW5kZXhlZERCLm9wZW4oKS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmRlMjY0MTI1ZDIwMGQ1YmZhOWNlZDdjNDYwNDgwZmFmMmM3ZTNlZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLWluZGV4ZWRkYi5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIgZnJhbWVzID0gMjsKKyAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0
KCk7CisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9s
aWN5KCdCbG9ja1RoaXJkUGFydHknKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRl
Y3JlbWVudCgpIHsKKyAgICAgICAgICAgIC0tZnJhbWVzOworICAgICAgICAgICAgaWYgKCFmcmFt
ZXMgJiYgd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgnQWxsb3dBbGwnKTsKKyAgICAgICAgfQorICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+VGhlIGZpcnN0IGlmcmFtZSBiZWxv
dyBzaG91bGQgcmV0dXJuIGEgc2VjdXJpdHkgZXJyb3IsIGFuZCB0aGUgc2Vjb25kIHNob3VsZCBz
dWNjZXNzZnVsbHkgb3BlbiB0aGUgZGF0YWJhc2UuPC9wPgorICAgIDxpZnJhbWUgc3JjPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUt
Zm9yLWluZGV4ZWRkYi5odG1sIiBvbmxvYWQ9ImRlY3JlbWVudCgpIj48L2lmcmFtZT4KKyAgICA8
aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9z
cy1vcmlnaW4taWZyYW1lLWZvci1pbmRleGVkZGIuaHRtbCIgb25sb2FkPSJkZWNyZW1lbnQoKSI+
PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
d29ya2VyLWluZGV4ZWRkYi1hbGxvd2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYTQzOTU2
ZDRkMzFlYjg5NWNkYjg0ODM4MWY5ZTU3NTNkNzMyZDdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRk
Yi1hbGxvd2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitCb3RoIG9mIHRoZXNlIGZy
YW1lcyBzaG91bGQgc3VjY2Vzc2Z1bGx5IG9wZW4gdGhlIGRhdGFiYXNlOgorCisgIAorCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0t
CitTdWNjZXNzZnVsbHkgY2FsbGVkIHNlbGYud2Via2l0SW5kZXhlZERCLm9wZW4oKS4KKworLS0t
LS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTEtLT4tLT4nCistLS0tLS0t
LQorU3VjY2Vzc2Z1bGx5IGNhbGxlZCBzZWxmLndlYmtpdEluZGV4ZWREQi5vcGVuKCkuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3Jr
ZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZmOTA1MGQwMzZjODVjODQ5MWNiMTg2Mzk5NDQ5ZjhjMTcwOWI5MzEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXIt
aW5kZXhlZGRiLWFsbG93ZWQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdmFyIGZyYW1lcyA9IDI7Cisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4
dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiBkZWNyZW1lbnQoKSB7CisgICAgICAgICAgICAtLWZyYW1lczsK
KyAgICAgICAgICAgIGlmICghZnJhbWVzICYmIHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgd2lu
ZG93Lm9ubWVzc2FnZSA9IGRlY3JlbWVudDsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICAgIDxwPkJvdGggb2YgdGhlc2UgZnJhbWVzIHNob3VsZCBzdWNjZXNzZnVsbHkgb3BlbiB0
aGUgZGF0YWJhc2U6PC9wPgorICAgIDxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAv
c2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLXdvcmtlci1pbmRleGVk
ZGIuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3Itd29ya2VyLWluZGV4
ZWRkYi5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmln
aW4td29ya2VyLWluZGV4ZWRkYi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTk3YWJhNTE2NGNk
OTUwYmMyZGJlZjYyYjViNjBjYjA5MzBlNzA2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1RoZSBmaXJzdCBpZnJhbWUgYmVsb3cgc2hvdWxk
IHJldHVybiBhIHNlY3VyaXR5IGVycm9yLCBhbmQgdGhlIHNlY29uZCBzaG91bGQgc3VjY2Vzc2Z1
bGx5IG9wZW4gdGhlIGRhdGFiYXNlLgorCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCitzZWxmLndlYmtpdEluZGV4ZWRE
Qi5vcGVuKCkgdGhyZXcgYW4gZXhjZXB0aW9uOiBUeXBlRXJyb3IKKworLS0tLS0tLS0KK0ZyYW1l
OiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTEtLT4tLT4nCistLS0tLS0tLQorU3VjY2Vzc2Z1
bGx5IGNhbGxlZCBzZWxmLndlYmtpdEluZGV4ZWREQi5vcGVuKCkuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRi
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3Jr
ZXItaW5kZXhlZGRiLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ1MDA5MTAyZWUxZWE0MGE0YmViZWRhZTMy
MGYwYjg5MTI3ZmUwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGIuaHRtbApAQCAtMCwwICsxLDE4
IEBACis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVlKTsKKyAgICAgICAgICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQ
YXJ0eScpOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24gPSAicmVzb3Vy
Y2VzL2RvY3VtZW50LWZvci1jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sIgorICAg
IDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3ItaW5kZXhl
ZGRiLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9z
cy1vcmlnaW4taWZyYW1lLWZvci1pbmRleGVkZGIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTI2MjdmMjBj
MGRkZDBjNDA5YzdlNjk5Yjk4MzE0NDkwZTVkOGU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1m
b3ItaW5kZXhlZGRiLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdHJ5IHsK
KyAgICAgICAgICAgIHZhciByZXF1ZXN0ID0gd2luZG93LndlYmtpdEluZGV4ZWREQi5vcGVuKCd0
ZXN0Jyk7CisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiU3VjY2Vzc2Z1bGx5IGNhbGxlZCB3
aW5kb3cud2Via2l0SW5kZXhlZERCLm9wZW4oKS4iKTsKKyAgICAgICAgfSBjYXRjaCAoZXhjZXB0
aW9uKSB7CisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgid2luZG93LndlYmtpdEluZGV4ZWRE
Qi5vcGVuKCkgdGhyZXcgYW4gZXhjZXB0aW9uOiAiICsgZXhjZXB0aW9uLm5hbWUpOworICAgICAg
ICB9CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLWZv
ci13b3JrZXItaW5kZXhlZGRiLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLWZvci13b3JrZXItaW5kZXhlZGRiLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTVhMWYyOWY4YjJkMjM3OTVjNjYzYTU1OTg1NWRjZDE5NDg3MmU0YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2Vz
L2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLXdvcmtlci1pbmRleGVkZGIuaHRtbApAQCAtMCwwICsx
LDIyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIHdvcmtl
ciA9IG5ldyBXb3JrZXIoJ3dvcmtlci1mb3ItaW5kZXhlZGRiLmpzJyk7CisgICAgICAgICAgICB3
b3JrZXIucG9zdE1lc3NhZ2UodHJ1ZSk7CisgICAgICAgICAgICB3b3JrZXIub25tZXNzYWdlID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEpIHsKKyAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCJzZWxmLndlYmtpdEluZGV4ZWREQi5vcGVuKCkg
dGhyZXcgYW4gZXhjZXB0aW9uOiAiICsgZXZlbnQuZGF0YSk7CisgICAgICAgICAgICAgICAgICB3
aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEsICcqJyk7CisgICAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiU3VjY2Vzc2Z1bGx5
IGNhbGxlZCBzZWxmLndlYmtpdEluZGV4ZWREQi5vcGVuKCkuIik7CisgICAgICAgICAgICAgICAg
ICB3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKCdObyBleGNlcHRpb24nLCAnKicpOworICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2RvY3VtZW50LWZvci1jcm9zcy1vcmlnaW4td29y
a2VyLWluZGV4ZWRkYi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNv
dXJjZXMvZG9jdW1lbnQtZm9yLWNyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTYxY2MwOTI2ZGE4YTAwMTA0NzQ2MjkzMzFiNzY5NjUxNDdjOWZlZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Rv
Y3VtZW50LWZvci1jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sCkBAIC0wLDAgKzEs
MjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAg
ICAgICB2YXIgZnJhbWVzID0gMjsKKworICAgICAgICBmdW5jdGlvbiBkZWNyZW1lbnQoKSB7Cisg
ICAgICAgICAgICAtLWZyYW1lczsKKyAgICAgICAgICAgIGlmICghZnJhbWVzICYmIHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3Jh
Z2VCbG9ja2luZ1BvbGljeSgnQWxsb3dBbGwnKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHdpbmRv
dy5vbm1lc3NhZ2UgPSBkZWNyZW1lbnQ7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICA8cD5UaGUgZmlyc3QgaWZyYW1lIGJlbG93IHNob3VsZCByZXR1cm4gYSBzZWN1cml0eSBl
cnJvciwgYW5kIHRoZSBzZWNvbmQgc2hvdWxkIHN1Y2Nlc3NmdWxseSBvcGVuIHRoZSBkYXRhYmFz
ZS48L3A+CisgICAgPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9y
ZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3Itd29ya2VyLWluZGV4ZWRkYi5odG1sIj48
L2lmcmFtZT4KKyAgICA8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5
L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLWZvci13b3JrZXItaW5kZXhlZGRiLmh0bWwi
PjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvd29ya2VyLWZvci1pbmRleGVkZGIuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy93b3JrZXItZm9yLWluZGV4ZWRk
Yi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mMjU1NzI4OWUzZGY1YTczYjA3NmU2MWVhMDE2ZWRiZjliZDk4NTAw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNv
dXJjZXMvd29ya2VyLWZvci1pbmRleGVkZGIuanMKQEAgLTAsMCArMSw4IEBACitzZWxmLm9ubWVz
c2FnZSA9IGZ1bmN0aW9uKCkgeworICAgIHRyeSB7CisgICAgICAgIHZhciByZXF1ZXN0ID0gc2Vs
Zi53ZWJraXRJbmRleGVkREIub3BlbigndGVzdCcpOworICAgICAgICBzZWxmLnBvc3RNZXNzYWdl
KG51bGwpOworICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAgICAgICBzZWxmLnBvc3RNZXNz
YWdlKGV4Y2VwdGlvbi5uYW1lKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA3NzEwMDM4YzAxMDZkNmZlMzE3YTZiOTMyZmU0M2Y3NzVj
ZGUzYTU5Li5kYzU1YTZlNWJhZDMxNzU3ODViOTdlYmRjMGNjZGZkMWQyZGZkYjA4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTExNCw2ICsxMTE0LDEw
IEBAIHdlYmtpdC5vcmcvYi84NDU4OSBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1nZXQuaHRtbCBbIEZhaWx1cmUgXQogIyBJbmRleGVkREIgaXMgbm90IHlldCBlbmFibGVk
LgogQnVnKEVGTCkgc3RvcmFnZS9pbmRleGVkZGIKIEJ1ZyhFRkwpIGh0dHAvdGVzdHMvaW5zcGVj
dG9yL2luZGV4ZWRkYgorQnVnKEVGTCkgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
aW5kZXhlZGRiLWFsbG93ZWQuaHRtbAorQnVnKEVGTCkgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4taW5kZXhlZGRiLmh0bWwKK0J1ZyhFRkwpIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sCitCdWcoRUZMKSBodHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwKIAogIyBRdW90
YSBBUEkgaXMgbm90IHN1cHBvcnRlZC4KIEJ1ZyhFRkwpIHN0b3JhZ2Uvc3RvcmFnZWluZm8tbWlz
c2luZy1hcmd1bWVudHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXNub3dsZW9wYXJkL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
c25vd2xlb3BhcmQvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2MTRiNTQxMTFhNDNkMDdlMmE1Mjgx
YmQwMjkyNjA1NTA3YTliMGNjLi44YzBhMTY2NjQ0MDg3NmU0OWU5ZjhmOWE3YTRlYTIyNzhkODQw
ZTQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM0LDYgKzEzNCwxMCBAQCBmYXN0L3JlcGFpbnQvZml4ZWQt
bW92ZS1hZnRlci1rZXlib2FyZC1zY3JvbGwuaHRtbAogIyBJbmRleGVkREIgaXMgbm90IHlldCBl
bmFibGVkLgogc3RvcmFnZS9pbmRleGVkZGIKIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRk
YgoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWFsbG93ZWQuaHRt
bAoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwKK2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1s
CitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwK
IAogIyBQaGlsaXAncyBjYW52YXMgdGVzdHMgdGhhdCBmYWlsIG9uIFNub3dMZW9wYXJkIG9ubHkK
IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQuaW50ZXJwb2xhdGUub3ZlcmxhcC5odG1s
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDM0YTBkMTA4
YTQzOTRlOWQyMjAwM2NlN2Q3OTc5OTRkODNlMjYxNzEuLjc4NTRiYjdhZWYwYjQ0MWJhNGIwMmJi
Mzc2OTIzOTUxMjU2Y2FkNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCkBAIC0xMzUsNiArMTM1LDEwIEBAIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0lt
YWdlLm91dHNpZGVzb3VyY2UuaHRtbAogIyBJbmRleGVkREIgaXMgbm90IHlldCBlbmFibGVkLgog
c3RvcmFnZS9pbmRleGVkZGIKIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYgoraHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWFsbG93ZWQuaHRtbAoraHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwKK2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sCitodHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwKIAogIyBUaGlz
IHBvcnQgZG9lc24ndCBzdXBwb3J0IERldmljZU1vdGlvbiBvciBEZXZpY2VPcmllbnRhdGlvbi4K
IGZhc3QvZG9tL0RldmljZU1vdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggMjBiMmYxNDJiMWI2YzRhMjY5MzY0NzgyMjg3YTVlN2Q2MTc2NGFjNS4uNDlk
YmNmYTE2OTU2N2YzYmM0MDg5ZTA4MmY2OGNiMzBhOGUzNjlhZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMTEsNiArMTExLDEwIEBAIGZhc3QvZXZlbnRz
L2NvbnN0cnVjdG9ycy9tb3VzZS1ldmVudC1jb25zdHJ1Y3Rvci5odG1sCiAjIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKSBpcyBkaXNhYmxlZC4KIHN0b3JhZ2UvaW5kZXhlZGRiCiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbmRleGVkZGIKK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWlu
ZGV4ZWRkYi1hbGxvd2VkLmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWlu
ZGV4ZWRkYi5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5k
ZXhlZGRiLWFsbG93ZWQuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29y
a2VyLWluZGV4ZWRkYi5odG1sCiAKIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1hbmltYXRp
b24tZnJhbWUuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGExNTRkYjRhOGQxZTc2OWNlZDY0ZWVkZTE2ZDFhN2JlMjFjY2JjMWUuLjdjOWU4YWEz
ZTQ0MzUyOTkxMGMzNzg5M2UyN2RhMWE0YzllMDk1N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMDkzLDYgKzEwOTMsMTAgQEAgZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy1tYXJrZXItZGVzY3JpcHRpb24uaHRtbAogIyBJbmRleGVkREIgaXMgbm90
IHlldCBlbmFibGVkLgogc3RvcmFnZS9pbmRleGVkZGIKIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
ZGV4ZWRkYgoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWFsbG93
ZWQuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwK
K2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dl
ZC5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRi
Lmh0bWwKIAogIyBTdG9yYWdlVHJhY2tlciBpcyBub3QgZW5hYmxlZC4KIHN0b3JhZ2UvZG9tc3Rv
cmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGU1Y2UwYzcyMDA5NmY1OWVhM2FjYzkw
ODViZDMyZjQ2MTc3MzgzNDQuLjM3Yjg3MDRmN2IyMmI2ODlhYTI0NTUzMzE1YWM4NjM2NjY4OGRl
ZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMTYxOCw2ICsxNjE4LDEwIEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2Vy
LWRlc2NyaXB0aW9uLmh0bWwKICMgSW5kZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHN0b3Jh
Z2UvaW5kZXhlZGRiCiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIKK2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwKK2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbAoraHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sCiAKICMgU3RvcmFnZVRy
YWNrZXIgaXMgbm90IGVuYWJsZWQuCiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0
b3JhZ2V0cmFja2VyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185076</attachid>
            <date>2013-01-28 15:00:05 -0800</date>
            <delta_ts>2013-01-29 02:23:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94171-20130128235651.patch</filename>
            <type>text/plain</type>
            <size>25147</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZmN2RlNzAyZGQ5MThj
N2E1ZGQ4OTAxMWUxZmYzY2ExZTU4MzA5MS4uYmRhNjUwYTQwYmVhZGQ2YzgxOTMxZTE1MGE1YmMz
Zjg4Y2UyZDMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEzLTAxLTI4ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWxsb3cgYmxvY2tpbmcgb2Yg
SW5kZXhlZERCIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDE3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZW5zdXJlcyB0aGF0IHRoZSBvcmln
aW4gb2YgdGhlIHRvcCB3aW5kb3cgaXMgcGFzc2VkIGludG8KKyAgICAgICAgU2VjdXJpdHlPcmln
aW46OmNhbkFjY2Vzc0RhdGFiYXNlIHdoZW4gY3JlYXRpbmcgYW4gSW5kZXhlZERCLiBHaXZpbmcK
KyAgICAgICAgU2VjdXJpdHlPcmlnaW4gYWNjZXNzIHRvIHRoaXMgZGF0YSBtZWFucyB0aGF0IGl0
IGNhbiBwcm9wZXJseSBjaGVjaworICAgICAgICB3aGV0aGVyIHRoZSBkYXRhYmFzZSBpcyBiZWlu
ZyBvcGVuZWQgaW4gYSB0aGlyZC1wYXJ0eSBjb250ZXh0LCBhbmQKKyAgICAgICAgdGhlcmVmb3Jl
IHByb3Blcmx5IGVuZm9yY2UgdGhlIHRoaXJkLXBhcnR5IGFjY2VzcyBjaGVja3MgdGhhdCB3ZXJl
CisgICAgICAgIGFkZGVkIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyNTcz
Ni4KKworICAgICAgICBDaGFuZ2VMb2cgbmVlZHMgYW4gdXBkYXRlIHRvIGluY2x1ZGUgdGhlIGNo
YW5nZXMgdG8gRG9jdW1lbnQgYW5kCisgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuIChP
T1BTISkKKworICAgICAgICBBbHNvLCBtb2FyIHRlc3RzIHRvIGNvdmVyIDo6ZGVsZXRlRGF0YWJh
c2UgYW5kIDo6Z2V0RGF0YWJhc2VOYW1lcyAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC5odG1sCisgICAg
ICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGIuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2Vy
LWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGIuaHRtbAorCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5
OjpnZXREYXRhYmFzZU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkZhY3Rvcnk6Om9wZW5J
bnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5OjpkZWxldGVEYXRhYmFzZSk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0SW5kZXhlZERhdGFiYXNlOjpp
bmRleGVkREIpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6dG9wT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgIChTY3JpcHRFeGVjdXRpb25Db250ZXh0KToKKyAg
ICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQuaDoKKwogMjAxMy0wMS0yNyAgU2FtIFdlaW5p
ZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFNWR1BhdGhTdHJpbmdTb3VyY2Ugc2hvdWxk
IG5vdCB1cC1jb252ZXJ0IDgtYml0IHN0cmluZ3MgdG8gVVRGLTE2CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCmluZGV4IDRkZTAzZWYwZmNlNzdm
MGYyNmFhYWYyNTg5MmQ1MGY1MWY2ZGZjNTkuLjFmNGU0YTAyNDFlZmRkN2ZiYWNlMmJiYzRkMWVm
ODk1ZjFmYmY2OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnkuY3BwCkBAIC0xMDAsNiArMTAwLDggQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJ
REJGYWN0b3J5OjpnZXREYXRhYmFzZU5hbWVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnQK
IHsKICAgICBpZiAoIWlzQ29udGV4dFZhbGlkKGNvbnRleHQpKQogICAgICAgICByZXR1cm4gMDsK
KyAgICBpZiAoIWNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCktPmNhbkFjY2Vzc0RhdGFiYXNlKGNv
bnRleHQtPnRvcE9yaWdpbigpKSkKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8SURC
UmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNy
ZWF0ZSh0aGlzKSwgMCk7CiAgICAgbV9iYWNrZW5kLT5nZXREYXRhYmFzZU5hbWVzKHJlcXVlc3Qs
IGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIGNvbnRleHQsIGdldEluZGV4ZWREQkRhdGFiYXNl
UGF0aChjb250ZXh0KSk7CkBAIC0xMjYsNiArMTI4LDEwIEBAIFBhc3NSZWZQdHI8SURCT3BlbkRC
UmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbkludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvCiAgICAgfQogICAgIGlmICghaXNDb250ZXh0VmFsaWQoY29udGV4dCkpCiAgICAgICAgIHJl
dHVybiAwOworICAgIGlmICghY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuQWNjZXNzRGF0
YWJhc2UoY29udGV4dC0+dG9wT3JpZ2luKCkpKSB7CisgICAgICAgIGVjID0gU0VDVVJJVFlfRVJS
OworICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAKICAgICBSZWZQdHI8SURCRGF0YWJhc2VDYWxs
YmFja3NJbXBsPiBkYXRhYmFzZUNhbGxiYWNrcyA9IElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6
Y3JlYXRlKCk7CiAgICAgaW50NjRfdCB0cmFuc2FjdGlvbklkID0gSURCRGF0YWJhc2U6Om5leHRU
cmFuc2FjdGlvbklkKCk7CkBAIC0xNDcsNiArMTUzLDEwIEBAIFBhc3NSZWZQdHI8SURCVmVyc2lv
bkNoYW5nZVJlcXVlc3Q+IElEQkZhY3Rvcnk6OmRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlv
bkNvCiAgICAgfQogICAgIGlmICghaXNDb250ZXh0VmFsaWQoY29udGV4dCkpCiAgICAgICAgIHJl
dHVybiAwOworICAgIGlmICghY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuQWNjZXNzRGF0
YWJhc2UoY29udGV4dC0+dG9wT3JpZ2luKCkpKSB7CisgICAgICAgIGVjID0gU0VDVVJJVFlfRVJS
OworICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAKICAgICBSZWZQdHI8SURCVmVyc2lvbkNoYW5n
ZVJlcXVlc3Q+IHJlcXVlc3QgPSBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdDo6Y3JlYXRlKGNvbnRl
eHQsIElEQkFueTo6Y3JlYXRlTnVsbCgpLCAiIik7CiAgICAgbV9iYWNrZW5kLT5kZWxldGVEYXRh
YmFzZShuYW1lLCByZXF1ZXN0LCBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBjb250ZXh0LCBn
ZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoY29udGV4dCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJDb250ZXh0SW5kZXhlZERh
dGFiYXNlLmNwcAppbmRleCA0MDQ4YTc5NWVlZWNjMDQwYWNiZTQ5YWUxYjk5ZTI4NDcyM2FhMTE2
Li5jZmNmNjJjNTc0OWM0ZDNkOWI4Y2I1MTQ4Y2QyMWU4ZWExY2U0NjIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJDb250ZXh0SW5kZXhlZERhdGFi
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJDb250
ZXh0SW5kZXhlZERhdGFiYXNlLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIklEQkZh
Y3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiV29ya2VyQ29udGV4
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY5LDYgKzcwLDcgQEAgSURCRmFjdG9y
eSogV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFzZTo6aW5kZXhlZERCKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnQKIAogSURCRmFjdG9yeSogV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFz
ZTo6aW5kZXhlZERCKCkKIHsKKyAgICBBU1NFUlQobV9jb250ZXh0LT5pc1dvcmtlckNvbnRleHQo
KSk7CiAgICAgaWYgKCFtX2NvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCktPmNhbkFjY2Vzc0RhdGFi
YXNlKCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIGlmICghbV9mYWN0b3J5QmFja2VuZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDZjYmEyOWVkNjk4MmIwN2NlOTE3NmI1NzEyNjM5MjRk
NWQ5NTE4ZWIuLjNiZDExOTIxYmYzMzVkNWM4OTdkNjg1YjlhNjE4ZjM1YmM3ODRlMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDc3MSw2ICs0NzcxLDExIEBAIHZvaWQgRG9jdW1lbnQ6
OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29u
c3QgU3RyaW5nCiAgICAgfQogfQogCitjb25zdCBTZWN1cml0eU9yaWdpbiogRG9jdW1lbnQ6OnRv
cE9yaWdpbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRvcERvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCk7Cit9CisKIHN0cnVjdCBQZXJmb3JtVGFza0NvbnRleHQgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFBlcmZvcm1UYXNrQ29udGV4dCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAwYjJiZGQ3ZTI4ZjZjZDFkMTU0YzEyM2M0
ZDdhNmIyZTYwNGNmOTkzLi44OGQzMGI3MTgxMTE0NDUzOWY4Mzk5N2MyMzVkYWQwNGU4N2Y3ZDFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTE5Nyw2ICsxMTk3LDggQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VM
ZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlm
aWVyID0gMCk7CiAKKyAgICB2aXJ0dWFsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4o
KSBjb25zdCBPVkVSUklERTsKKwogcHJvdGVjdGVkOgogICAgIERvY3VtZW50KEZyYW1lKiwgY29u
c3QgS1VSTCYsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCA2ZTQzNDY2MjFmOGVlMzQ1YTUyMDkw
OGQyY2E5NjVjMzM3YTc3ZmIzLi43NjE4ODg2MDEzMzg1MDJhZjQyZjQzODBmMDQzOTFjYmFlMWRj
ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAg
LTg5LDYgKzg5LDggQEAgcHVibGljOgogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBTY3JpcHRTdGF0ZSogPSAwLCB1bnNp
Z25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7CiAgICAgdmlydHVhbCB2b2lkIGFkZENv
bnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCkgPSAwOwogCisgICAg
dmlydHVhbCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKCkgY29uc3QgPSAwOworCiAj
aWYgRU5BQkxFKEJMT0IpCiAgICAgUHVibGljVVJMTWFuYWdlciYgcHVibGljVVJMTWFuYWdlcigp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCmluZGV4IDRhYmMz
YjJmNGUwNDFhOTdmZTlmZTY5ODc1NjQ4YjBjYzJiMTg5MTQuLjdiMGVlMWU5YWM4ZTQ1NGFhMTQx
MjYyMTUzNjE3YzRmZDc3MTFkYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4
dC5oCkBAIC0xMzgsNyArMTM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lk
IHVucmVnaXN0ZXJPYnNlcnZlcihPYnNlcnZlciopOwogICAgICAgICB2b2lkIG5vdGlmeU9ic2Vy
dmVyc09mU3RvcCgpOwogCi0gICAgICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4o
KSBjb25zdCB7IHJldHVybiBtX3RvcE9yaWdpbi5nZXQoKTsgfQorICAgICAgICB2aXJ0dWFsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBt
X3RvcE9yaWdpbi5nZXQoKTsgfQogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBXb3JrZXJDb250
ZXh0KGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgUGFzc093blB0cjxHcm91
cFNldHRpbmdzPiwgV29ya2VyVGhyZWFkKiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9w
T3JpZ2luKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAyNzBkZWE1MjhlZDZhYzc0YTFkYzE2NjhiODc3ZjQ0OGE4ZGNkMmMz
Li42M2M2ZjIzMDgzZGU4YTgxNjEzZjZjOTg2MmIwMjkxMjM4ZWRkNjU2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzggQEAKKzIwMTMtMDEtMjggIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBBbGxvdyBibG9ja2luZyBvZiBJbmRleGVkREIgaW4gdGhpcmQtcGFydHkgY29udGV4
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MTcx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRl
c3RzIHRvIGVuc3VyZSB0aGF0IEluZGV4ZWREQiBjYW4gYmUgYmxvY2tlZCBpbiBhIHRoaXJkLXBh
cnR5CisgICAgICAgIGNvbnRleHQgaW4gYm90aCBub3JtYWwgZG9jdW1lbnRzIGFuZCBpbiB3b3Jr
ZXJzLiBUaGVzZSB0ZXN0cyBhcmUKKyAgICAgICAgbW9kZWxlZCBhZnRlciB0aGUgZXhpc3Rpbmcg
Y3Jvc3Mtb3JpZ2luLXdlYnNxbCogdGVzdHM7IGl0IG1pZ2h0IGJlCisgICAgICAgIHBvc3NpYmxl
IHRvIHJldXNlIHNvbWUgY29kZSBpbiB0aGUgZnV0dXJlLgorCisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVk
ZGItYWxsb3dlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLW9yaWdpbi1pbmRleGVkZGItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1h
bGxvd2VkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGIt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLWluZGV4ZWRkYi5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9z
cy1vcmlnaW4taWZyYW1lLWZvci13b3JrZXItaW5kZXhlZGRiLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2RvY3VtZW50LWZvci1jcm9zcy1vcmln
aW4td29ya2VyLWluZGV4ZWRkYi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3Jlc291cmNlcy93b3JrZXItZm9yLWluZGV4ZWRkYi5qczogQWRkZWQuCisgICAgICAg
IChzZWxmLm9ubWVzc2FnZSk6CisgICAgICAgICAgICBBZGQgZXhjaXRpbmcgbmV3IHRlc3RzLCB3
aXRoIG1vcmUgYm9pbGVycGxhdGUgdGhhbiBJIGV4cGVjdGVkIQorICAgICAgICAqIHBsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy1zbm93bGVvcGFy
ZC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luY2Fp
cm8vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgICAgIFNraXAgdGhlc2UgSW5kZXhlZERCIHRl
c3RzIG9uIHBsYXRmb3JtcyB3aGVyZSB0aGUgZmVhdHVyZSBpc24ndAorICAgICAgICAgICAgZW5h
YmxlZC4KKwogMjAxMy0wMS0yOCAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04ocjEzOTE0NSk6IEEgY291cGxlIG9mIGZhc3Qvd29ya2VycyB0ZXN0
cyBmYWlsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGM1YmUzOWYxZWNjMzI4YzQ5NzgyMmM4NjJlZmMyOTc4OWJlNTUwYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitC
b3RoIG9mIHRoZXNlIGZyYW1lcyBzaG91bGQgc3VjY2Vzc2Z1bGx5IG9wZW4gdGhlIGRhdGFiYXNl
OgorCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0t
Pi0tPicKKy0tLS0tLS0tCitTdWNjZXNzZnVsbHkgY2FsbGVkIHdpbmRvdy53ZWJraXRJbmRleGVk
REIub3BlbigpLgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1l
MS0tPi0tPicKKy0tLS0tLS0tCitTdWNjZXNzZnVsbHkgY2FsbGVkIHdpbmRvdy53ZWJraXRJbmRl
eGVkREIub3BlbigpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWFsbG93ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTcyN2MzNjEyMmEwMjYxMjZjN2UyMmIyZDFmN2JlZjM4MDdmNDg3NwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWlu
ZGV4ZWRkYi1hbGxvd2VkLmh0bWwKQEAgLTAsMCArMSwxNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5Cb3RoIG9mIHRoZXNlIGZyYW1lcyBzaG91bGQg
c3VjY2Vzc2Z1bGx5IG9wZW4gdGhlIGRhdGFiYXNlOjwvcD4KKyAgICA8aWZyYW1lIHNyYz0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1l
LWZvci1pbmRleGVkZGIuaHRtbCI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBzcmM9Imh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3It
aW5kZXhlZGRiLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2lu
LWluZGV4ZWRkYi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA4ZDMxM2UyYTUxYWE5NjAwZDE2
NTVhYmJmNzFhOWJlMDNjM2ZhNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMyBAQAorVGhlIGZpcnN0IGlmcmFtZSBiZWxvdyBzaG91bGQgcmV0dXJuIGEgc2VjdXJp
dHkgZXJyb3IsIGFuZCB0aGUgc2Vjb25kIHNob3VsZCBzdWNjZXNzZnVsbHkgb3BlbiB0aGUgZGF0
YWJhc2UuCisKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJh
bWUwLS0+LS0+JworLS0tLS0tLS0KK3dpbmRvdy53ZWJraXRJbmRleGVkREIub3BlbigpIHRocmV3
IGFuIGV4Y2VwdGlvbjogU2VjdXJpdHlFcnJvcgorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJh
bWVQYXRoIC8vPCEtLWZyYW1lMS0tPi0tPicKKy0tLS0tLS0tCitTdWNjZXNzZnVsbHkgY2FsbGVk
IHdpbmRvdy53ZWJraXRJbmRleGVkREIub3BlbigpLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGIuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZGUyNjQxMjVkMjAwZDViZmE5Y2VkN2M0NjA0ODBmYWYyYzdlM2VkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
aW5kZXhlZGRiLmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBmcmFtZXMgPSAyOworICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAg
ICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Js
b2NrVGhpcmRQYXJ0eScpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZGVjcmVtZW50
KCkgeworICAgICAgICAgICAgLS1mcmFtZXM7CisgICAgICAgICAgICBpZiAoIWZyYW1lcyAmJiB3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
U3RvcmFnZUJsb2NraW5nUG9saWN5KCdBbGxvd0FsbCcpOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5UaGUgZmlyc3QgaWZyYW1lIGJlbG93IHNob3Vs
ZCByZXR1cm4gYSBzZWN1cml0eSBlcnJvciwgYW5kIHRoZSBzZWNvbmQgc2hvdWxkIHN1Y2Nlc3Nm
dWxseSBvcGVuIHRoZSBkYXRhYmFzZS48L3A+CisgICAgPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3ItaW5k
ZXhlZGRiLmh0bWwiIG9ubG9hZD0iZGVjcmVtZW50KCkiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUg
c3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLW9yaWdp
bi1pZnJhbWUtZm9yLWluZGV4ZWRkYi5odG1sIiBvbmxvYWQ9ImRlY3JlbWVudCgpIj48L2lmcmFt
ZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXIt
aW5kZXhlZGRiLWFsbG93ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhNDM5NTZkNGQzMWVi
ODk1Y2RiODQ4MzgxZjllNTc1M2Q3MzJkN2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK0JvdGggb2YgdGhlc2UgZnJhbWVzIHNo
b3VsZCBzdWNjZXNzZnVsbHkgb3BlbiB0aGUgZGF0YWJhc2U6CisKKyAgCisKKy0tLS0tLS0tCitG
cmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1N1Y2Nl
c3NmdWxseSBjYWxsZWQgc2VsZi53ZWJraXRJbmRleGVkREIub3BlbigpLgorCistLS0tLS0tLQor
RnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMS0tPi0tPicKKy0tLS0tLS0tCitTdWNj
ZXNzZnVsbHkgY2FsbGVkIHNlbGYud2Via2l0SW5kZXhlZERCLm9wZW4oKS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRl
eGVkZGItYWxsb3dlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY5MDUw
ZDAzNmM4NWM4NDkxY2IxODYzOTk0NDlmOGMxNzA5YjkzMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVk
ZGItYWxsb3dlZC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIgZnJhbWVzID0gMjsKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIGRlY3JlbWVudCgpIHsKKyAgICAgICAgICAgIC0tZnJhbWVzOworICAgICAg
ICAgICAgaWYgKCFmcmFtZXMgJiYgd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cub25t
ZXNzYWdlID0gZGVjcmVtZW50OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAg
PHA+Qm90aCBvZiB0aGVzZSBmcmFtZXMgc2hvdWxkIHN1Y2Nlc3NmdWxseSBvcGVuIHRoZSBkYXRh
YmFzZTo8L3A+CisgICAgPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0
eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3Itd29ya2VyLWluZGV4ZWRkYi5odG1s
Ij48L2lmcmFtZT4KKyAgICA8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3Vy
aXR5L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLWZvci13b3JrZXItaW5kZXhlZGRiLmh0
bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3Jr
ZXItaW5kZXhlZGRiLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDk0ODdmYzkzOWFlZWJmYzQz
NDM0MDJhMmMyMWRmODZlYTNkOWVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMyBAQAorVGhlIGZpcnN0IGlmcmFtZSBiZWxvdyBzaG91bGQgcmV0dXJu
IGEgc2VjdXJpdHkgZXJyb3IsIGFuZCB0aGUgc2Vjb25kIHNob3VsZCBzdWNjZXNzZnVsbHkgb3Bl
biB0aGUgZGF0YWJhc2UuCisKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGgg
Ly88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK3NlbGYud2Via2l0SW5kZXhlZERCLm9wZW4o
KSB0aHJldyBhbiBleGNlcHRpb246IFNlY3VyaXR5RXJyb3IKKworLS0tLS0tLS0KK0ZyYW1lOiAn
PCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTEtLT4tLT4nCistLS0tLS0tLQorU3VjY2Vzc2Z1bGx5
IGNhbGxlZCBzZWxmLndlYmtpdEluZGV4ZWREQi5vcGVuKCkuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXIt
aW5kZXhlZGRiLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ1MDA5MTAyZWUxZWE0MGE0YmViZWRhZTMyMGYw
Yjg5MTI3ZmUwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGIuaHRtbApAQCAtMCwwICsxLDE4IEBA
Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVlKTsKKyAgICAgICAgICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0
eScpOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24gPSAicmVzb3VyY2Vz
L2RvY3VtZW50LWZvci1jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sIgorICAgIDwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3ItaW5kZXhlZGRi
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1v
cmlnaW4taWZyYW1lLWZvci1pbmRleGVkZGIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMTI2MjdmMjBjMGRk
ZDBjNDA5YzdlNjk5Yjk4MzE0NDkwZTVkOGU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3It
aW5kZXhlZGRiLmh0bWwKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPC9oZWFkPgorPGJvZHk+CisgICAgPHNjcmlwdD4KKyAgICAgICAgdHJ5IHsKKyAg
ICAgICAgICAgIHZhciByZXF1ZXN0ID0gd2luZG93LndlYmtpdEluZGV4ZWREQi5vcGVuKCd0ZXN0
Jyk7CisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiU3VjY2Vzc2Z1bGx5IGNhbGxlZCB3aW5k
b3cud2Via2l0SW5kZXhlZERCLm9wZW4oKS4iKTsKKyAgICAgICAgfSBjYXRjaCAoZXhjZXB0aW9u
KSB7CisgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgid2luZG93LndlYmtpdEluZGV4ZWREQi5v
cGVuKCkgdGhyZXcgYW4gZXhjZXB0aW9uOiAiICsgZXhjZXB0aW9uLm5hbWUpOworICAgICAgICB9
CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLWZvci13
b3JrZXItaW5kZXhlZGRiLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
c291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLWZvci13b3JrZXItaW5kZXhlZGRiLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTVhMWYyOWY4YjJkMjM3OTVjNjYzYTU1OTg1NWRjZDE5NDg3MmU0YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Ny
b3NzLW9yaWdpbi1pZnJhbWUtZm9yLXdvcmtlci1pbmRleGVkZGIuaHRtbApAQCAtMCwwICsxLDIy
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdmFyIHdvcmtlciA9
IG5ldyBXb3JrZXIoJ3dvcmtlci1mb3ItaW5kZXhlZGRiLmpzJyk7CisgICAgICAgICAgICB3b3Jr
ZXIucG9zdE1lc3NhZ2UodHJ1ZSk7CisgICAgICAgICAgICB3b3JrZXIub25tZXNzYWdlID0gZnVu
Y3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEpIHsKKyAgICAgICAg
ICAgICAgICAgIGRvY3VtZW50LndyaXRlKCJzZWxmLndlYmtpdEluZGV4ZWREQi5vcGVuKCkgdGhy
ZXcgYW4gZXhjZXB0aW9uOiAiICsgZXZlbnQuZGF0YSk7CisgICAgICAgICAgICAgICAgICB3aW5k
b3cucGFyZW50LnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEsICcqJyk7CisgICAgICAgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICAgICAgICBkb2N1bWVudC53cml0ZSgiU3VjY2Vzc2Z1bGx5IGNh
bGxlZCBzZWxmLndlYmtpdEluZGV4ZWREQi5vcGVuKCkuIik7CisgICAgICAgICAgICAgICAgICB3
aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKCdObyBleGNlcHRpb24nLCAnKicpOworICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzwvYm9keT4KKzwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2RvY3VtZW50LWZvci1jcm9zcy1vcmlnaW4td29ya2Vy
LWluZGV4ZWRkYi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvZG9jdW1lbnQtZm9yLWNyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZTYxY2MwOTI2ZGE4YTAwMTA0NzQ2MjkzMzFiNzY5NjUxNDdjOWZlZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2RvY3Vt
ZW50LWZvci1jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sCkBAIC0wLDAgKzEsMjMg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAg
ICB2YXIgZnJhbWVzID0gMjsKKworICAgICAgICBmdW5jdGlvbiBkZWNyZW1lbnQoKSB7CisgICAg
ICAgICAgICAtLWZyYW1lczsKKyAgICAgICAgICAgIGlmICghZnJhbWVzICYmIHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VC
bG9ja2luZ1BvbGljeSgnQWxsb3dBbGwnKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5v
bm1lc3NhZ2UgPSBkZWNyZW1lbnQ7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8cD5UaGUgZmlyc3QgaWZyYW1lIGJlbG93IHNob3VsZCByZXR1cm4gYSBzZWN1cml0eSBlcnJv
ciwgYW5kIHRoZSBzZWNvbmQgc2hvdWxkIHN1Y2Nlc3NmdWxseSBvcGVuIHRoZSBkYXRhYmFzZS48
L3A+CisgICAgPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNv
dXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3Itd29ya2VyLWluZGV4ZWRkYi5odG1sIj48L2lm
cmFtZT4KKyAgICA8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jl
c291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLWZvci13b3JrZXItaW5kZXhlZGRiLmh0bWwiPjwv
aWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvd29ya2VyLWZvci1pbmRleGVkZGIuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy93b3JrZXItZm9yLWluZGV4ZWRkYi5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mMjU1NzI4OWUzZGY1YTczYjA3NmU2MWVhMDE2ZWRiZjliZDk4NTAwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvd29ya2VyLWZvci1pbmRleGVkZGIuanMKQEAgLTAsMCArMSw4IEBACitzZWxmLm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKCkgeworICAgIHRyeSB7CisgICAgICAgIHZhciByZXF1ZXN0ID0gc2VsZi53
ZWJraXRJbmRleGVkREIub3BlbigndGVzdCcpOworICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKG51
bGwpOworICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAgICAgICBzZWxmLnBvc3RNZXNzYWdl
KGV4Y2VwdGlvbi5uYW1lKTsKKyAgICB9Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCA3NzEwMDM4YzAxMDZkNmZlMzE3YTZiOTMyZmU0M2Y3NzVjZGUz
YTU5Li5kYzU1YTZlNWJhZDMxNzU3ODViOTdlYmRjMGNjZGZkMWQyZGZkYjA4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTExNCw2ICsxMTE0LDEwIEBA
IHdlYmtpdC5vcmcvYi84NDU4OSBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXQuaHRtbCBbIEZhaWx1cmUgXQogIyBJbmRleGVkREIgaXMgbm90IHlldCBlbmFibGVkLgog
QnVnKEVGTCkgc3RvcmFnZS9pbmRleGVkZGIKIEJ1ZyhFRkwpIGh0dHAvdGVzdHMvaW5zcGVjdG9y
L2luZGV4ZWRkYgorQnVnKEVGTCkgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5k
ZXhlZGRiLWFsbG93ZWQuaHRtbAorQnVnKEVGTCkgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1v
cmlnaW4taW5kZXhlZGRiLmh0bWwKK0J1ZyhFRkwpIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sCitCdWcoRUZMKSBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwKIAogIyBRdW90YSBB
UEkgaXMgbm90IHN1cHBvcnRlZC4KIEJ1ZyhFRkwpIHN0b3JhZ2Uvc3RvcmFnZWluZm8tbWlzc2lu
Zy1hcmd1bWVudHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNu
b3dsZW9wYXJkL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25v
d2xlb3BhcmQvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2MTRiNTQxMTFhNDNkMDdlMmE1MjgxYmQw
MjkyNjA1NTA3YTliMGNjLi44YzBhMTY2NjQ0MDg3NmU0OWU5ZjhmOWE3YTRlYTIyNzhkODQwZTQ2
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMTM0LDYgKzEzNCwxMCBAQCBmYXN0L3JlcGFpbnQvZml4ZWQtbW92
ZS1hZnRlci1rZXlib2FyZC1zY3JvbGwuaHRtbAogIyBJbmRleGVkREIgaXMgbm90IHlldCBlbmFi
bGVkLgogc3RvcmFnZS9pbmRleGVkZGIKIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYgor
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWFsbG93ZWQuaHRtbAor
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwKK2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sCito
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwKIAog
IyBQaGlsaXAncyBjYW52YXMgdGVzdHMgdGhhdCBmYWlsIG9uIFNub3dMZW9wYXJkIG9ubHkKIGNh
bnZhcy9waGlsaXAvdGVzdHMvMmQuZ3JhZGllbnQuaW50ZXJwb2xhdGUub3ZlcmxhcC5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDM0YTBkMTA4YTQz
OTRlOWQyMjAwM2NlN2Q3OTc5OTRkODNlMjYxNzEuLjc4NTRiYjdhZWYwYjQ0MWJhNGIwMmJiMzc2
OTIzOTUxMjU2Y2FkNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCkBAIC0xMzUsNiArMTM1LDEwIEBAIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdl
Lm91dHNpZGVzb3VyY2UuaHRtbAogIyBJbmRleGVkREIgaXMgbm90IHlldCBlbmFibGVkLgogc3Rv
cmFnZS9pbmRleGVkZGIKIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYgoraHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWFsbG93ZWQuaHRtbAoraHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sCitodHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwKIAogIyBUaGlzIHBv
cnQgZG9lc24ndCBzdXBwb3J0IERldmljZU1vdGlvbiBvciBEZXZpY2VPcmllbnRhdGlvbi4KIGZh
c3QvZG9tL0RldmljZU1vdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggMjBiMmYxNDJiMWI2YzRhMjY5MzY0NzgyMjg3YTVlN2Q2MTc2NGFjNS4uNDlkYmNm
YTE2OTU2N2YzYmM0MDg5ZTA4MmY2OGNiMzBhOGUzNjlhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMTEsNiArMTExLDEwIEBAIGZhc3QvZXZlbnRzL2Nv
bnN0cnVjdG9ycy9tb3VzZS1ldmVudC1jb25zdHJ1Y3Rvci5odG1sCiAjIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKSBpcyBkaXNhYmxlZC4KIHN0b3JhZ2UvaW5kZXhlZGRiCiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9pbmRleGVkZGIKK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4
ZWRkYi1hbGxvd2VkLmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4
ZWRkYi5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhl
ZGRiLWFsbG93ZWQuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2Vy
LWluZGV4ZWRkYi5odG1sCiAKIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1hbmltYXRpb24t
ZnJhbWUuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGExNTRkYjRhOGQxZTc2OWNlZDY0ZWVkZTE2ZDFhN2JlMjFjY2JjMWUuLjdjOWU4YWEzZTQ0
MzUyOTkxMGMzNzg5M2UyN2RhMWE0YzllMDk1N2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMDkzLDYgKzEwOTMsMTAgQEAgZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy1tYXJrZXItZGVzY3JpcHRpb24uaHRtbAogIyBJbmRleGVkREIgaXMgbm90IHll
dCBlbmFibGVkLgogc3RvcmFnZS9pbmRleGVkZGIKIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4
ZWRkYgoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWFsbG93ZWQu
aHRtbAoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwKK2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5o
dG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0
bWwKIAogIyBTdG9yYWdlVHJhY2tlciBpcyBub3QgZW5hYmxlZC4KIHN0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGU1Y2UwYzcyMDA5NmY1OWVhM2FjYzkwODVi
ZDMyZjQ2MTc3MzgzNDQuLjM3Yjg3MDRmN2IyMmI2ODlhYTI0NTUzMzE1YWM4NjM2NjY4OGRlZjgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTYxOCw2ICsxNjE4LDEwIEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2VyLWRl
c2NyaXB0aW9uLmh0bWwKICMgSW5kZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHN0b3JhZ2Uv
aW5kZXhlZGRiCiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIKK2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwKK2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbAoraHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sCiAKICMgU3RvcmFnZVRyYWNr
ZXIgaXMgbm90IGVuYWJsZWQuCiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3Jh
Z2V0cmFja2VyCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185204</attachid>
            <date>2013-01-29 02:24:01 -0800</date>
            <delta_ts>2013-01-31 02:16:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94171-20130129112047.patch</filename>
            <type>text/plain</type>
            <size>26903</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzEwYjBlNGYyMTBkYmIw
ZDExYWIxMDFlZTdhMzA1NzBhMGZjYmJmMS4uYjIxMWQ1MmQxNGI4YWVhNGVlMzVjZTMwMzkyZDIw
ZGEyYzlmZTU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU0IEBACiAyMDEzLTAxLTI5ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgQWxsb3cgYmxvY2tpbmcgb2Yg
SW5kZXhlZERCIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDE3MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZW5zdXJlcyB0aGF0IHRoZSBvcmln
aW4gb2YgdGhlIHRvcCB3aW5kb3cgaXMgcGFzc2VkIGludG8KKyAgICAgICAgU2VjdXJpdHlPcmln
aW46OmNhbkFjY2Vzc0RhdGFiYXNlIHdoZW4gd29ya2luZyB3aXRoIEluZGV4ZWREQi4gR2l2aW5n
CisgICAgICAgIFNlY3VyaXR5T3JpZ2luIGFjY2VzcyB0byB0aGlzIGRhdGEgbWVhbnMgdGhhdCBp
dCBjYW4gcHJvcGVybHkgY2hlY2sKKyAgICAgICAgd2hldGhlciB0aGUgZGF0YWJhc2UgaXMgYmVp
bmcgb3BlbmVkIGluIGEgdGhpcmQtcGFydHkgY29udGV4dCwgYW5kCisgICAgICAgIHRoZXJlZm9y
ZSBwcm9wZXJseSBlbmZvcmNlIHRoZSB0aGlyZC1wYXJ0eSBhY2Nlc3MgY2hlY2tzIHRoYXQgd2Vy
ZQorICAgICAgICBhZGRlZCBpbiBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMjU3
MzYuCisKKyAgICAgICAgVGhpcmQtcGFydHkgY2hlY2tzIGFyZSBhZGRlZCB0byBJREJGYWN0b3J5
OjpvcGVuLAorICAgICAgICBJREJGYWN0b3J5OjpkZWxldGVEYXRhYmFzZSwgYW5kIElEQkZhY3Rv
cnk6OmdldERhdGFiYXNlTmFtZXM7IGVhY2ggd2lsbAorICAgICAgICBub3cgdGhyb3cgYSBTRUNV
UklUWV9FUlIgZXhjZXB0aW9uIHdoZW4gYWNjZXNzIGluIGEgdGhpcmQtcGFydHkgY29udGV4dAor
ICAgICAgICBpZiB0aGlyZC1wYXJ0eSBhY2Nlc3MgY2hlY2tzIGFyZSBlbmFibGVkLgorCisgICAg
ICAgIFRvIG1ha2UgdGhpcyBwcm9jZXNzIHNsaWdodGx5IG1vcmUgY2xlYXIsIGFuZCBhdm9pZCBz
b21lIHVnbHkgY2FzdGluZworICAgICAgICBsb2dpYywgdGhpcyBwYXRjaCBhZGRzIGEgJ3RvcE9y
aWdpbicgIG1ldGhvZCB0byBTY3JpcHRFeGVjdXRpb25Db250ZXh0LAorICAgICAgICBhbmQgaW1w
bGVtZW50cyBpdCBvbiBib3RoIFdvcmtlckNvbnRleHQgYW5kIERvY3VtZW50LgorCisgICAgICAg
IFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dl
ZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1p
bmRleGVkZGIuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1v
cmlnaW4td29ya2VyLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGIuaHRtbAorCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJGYWN0b3J5OjpnZXREYXRhYmFzZU5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkZh
Y3Rvcnk6Om9wZW5JbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5OjpkZWxl
dGVEYXRhYmFzZSk6CisgICAgICAgICAgICBHcmFiIHRoZSBTZWN1cml0eU9yaWdpbiBvZiB0aGUg
Y3VycmVudCBjb250ZXh0J3MgdG9wLWxldmVsIG9yaWdpbiwKKyAgICAgICAgICAgIGFuZCBwYXNz
IGl0IHRvIFNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3NEYXRhYmFzZSB0byBlbnN1cmUgdGhhdAor
ICAgICAgICAgICAgYWNjZXNzIGNoZWNrcyBhcmUgcHJvcGVybHkgYXBwbGllZCB0byB0aGVzZSB0
aHJlZSBtZXRob2RzLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6dG9wT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgIChTY3JpcHRFeGVjdXRpb25Db250ZXh0KToK
KyAgICAgICAgICAgIEFkZCBhIHRvcE9yaWdpbigpIG1ldGhvZCB0byBTY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBhbmQgaW1wbGVtZW50IGl0CisgICAgICAgICAgICBvbiBEb2N1bWVudCBpbiBvcmRl
ciB0byBnaXZlIGNhbGxlcnMgYWNjZXNzIHRvIHRoZSB0b3AgZG9jdW1lbnQncworICAgICAgICAg
ICAgU2VjdXJpdHlPcmlnaW4gd2l0aG91dCBjYXN0aW5nIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJDb250ZXh0Lmg6CisgICAgICAgICAgICBDaGFuZ2Ug
dGhlIGV4aXN0aW5nIHRvcE9yaWdpbigpIG1ldGhvZCB0byBvdmVycmlkZSB0aGUgbmV3IG1ldGhv
ZAorICAgICAgICAgICAgb24gU2NyaXB0RXhlY3V0aW9uQ29udGV4dC4KKworMjAxMy0wMS0yOSAg
TWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIElEQkZhY3Rvcnk6Ondl
YmtpdEdldERhdGFiYXNlTmFtZXMgc2hvdWxkIHJhaXNlIERPTUV4Y2VwdGlvbnMuCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxNTQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAppbmRleCAyZDNj
MGQzZDA3M2IxZTkzNDk2YmFlOGNkZDk3YmI5Njg0MTc4NzAyLi43YWQ3NTY2MWFkZDYwMDE4YTI5
NmI4N2E3M2E0NTEwMDMyNzQ3YjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmNwcApAQCAtOTUsMTAgKzk1LDE0IEBAIHN0YXRpYyBTdHJpbmcg
Z2V0SW5kZXhlZERCRGF0YWJhc2VQYXRoKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQp
CiB9CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCRmFjdG9yeTo6Z2V0RGF0YWJhc2VO
YW1lcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJikKK1Bh
c3NSZWZQdHI8SURCUmVxdWVzdD4gSURCRmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1lcyhTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAo
IWlzQ29udGV4dFZhbGlkKGNvbnRleHQpKQogICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoIWNv
bnRleHQtPnNlY3VyaXR5T3JpZ2luKCktPmNhbkFjY2Vzc0RhdGFiYXNlKGNvbnRleHQtPnRvcE9y
aWdpbigpKSkgeworICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgfQogCiAgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0Ojpj
cmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcyksIDApOwogICAgIG1fYmFja2VuZC0+
Z2V0RGF0YWJhc2VOYW1lcyhyZXF1ZXN0LCBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCBjb250
ZXh0LCBnZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoY29udGV4dCkpOwpAQCAtMTI1LDYgKzEyOSwx
MCBAQCBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6Om9wZW5JbnRlcm5h
bChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjbwogICAgIH0KICAgICBpZiAoIWlzQ29udGV4dFZh
bGlkKGNvbnRleHQpKQogICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoIWNvbnRleHQtPnNlY3Vy
aXR5T3JpZ2luKCktPmNhbkFjY2Vzc0RhdGFiYXNlKGNvbnRleHQtPnRvcE9yaWdpbigpKSkgewor
ICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQogCiAg
ICAgUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbD4gZGF0YWJhc2VDYWxsYmFja3MgPSBJ
REJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6OmNyZWF0ZSgpOwogICAgIGludDY0X3QgdHJhbnNhY3Rp
b25JZCA9IElEQkRhdGFiYXNlOjpuZXh0VHJhbnNhY3Rpb25JZCgpOwpAQCAtMTQ2LDYgKzE1NCwx
MCBAQCBQYXNzUmVmUHRyPElEQk9wZW5EQlJlcXVlc3Q+IElEQkZhY3Rvcnk6OmRlbGV0ZURhdGFi
YXNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqCiAgICAgfQogICAgIGlmICghaXNDb250ZXh0VmFs
aWQoY29udGV4dCkpCiAgICAgICAgIHJldHVybiAwOworICAgIGlmICghY29udGV4dC0+c2VjdXJp
dHlPcmlnaW4oKS0+Y2FuQWNjZXNzRGF0YWJhc2UoY29udGV4dC0+dG9wT3JpZ2luKCkpKSB7Cisg
ICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAKICAg
ICBSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gcmVxdWVzdCA9IElEQk9wZW5EQlJlcXVlc3Q6OmNy
ZWF0ZShjb250ZXh0LCAwLCAwLCBJREJEYXRhYmFzZU1ldGFkYXRhOjpEZWZhdWx0SW50VmVyc2lv
bik7CiAgICAgbV9iYWNrZW5kLT5kZWxldGVEYXRhYmFzZShuYW1lLCByZXF1ZXN0LCBjb250ZXh0
LT5zZWN1cml0eU9yaWdpbigpLCBjb250ZXh0LCBnZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoY29u
dGV4dCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNmNiYTI5ZWQ2OTgyYjA3Y2U5MTc2
YjU3MTI2MzkyNGQ1ZDk1MThlYi4uM2JkMTE5MjFiZjMzNWQ1Yzg5N2Q2ODViOWE2MThmMzViYzc4
NGUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00NzcxLDYgKzQ3NzEsMTEgQEAgdm9p
ZCBEb2N1bWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVs
IGxldmVsLCBjb25zdCBTdHJpbmcKICAgICB9CiB9CiAKK2NvbnN0IFNlY3VyaXR5T3JpZ2luKiBE
b2N1bWVudDo6dG9wT3JpZ2luKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdG9wRG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKTsKK30KKwogc3RydWN0IFBlcmZvcm1UYXNrQ29udGV4dCB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoUGVyZm9ybVRhc2tDb250ZXh0KTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDBiMmJkZDdlMjhmNmNk
MWQxNTRjMTIzYzRkN2E2YjJlNjA0Y2Y5OTMuLjg4ZDMwYjcxODExMTQ0NTM5ZjgzOTk3YzIzNWRh
ZDA0ZTg3ZjdkMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xMTk3LDYgKzExOTcsOCBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVx
dWVzdElkZW50aWZpZXIgPSAwKTsKIAorICAgIHZpcnR1YWwgY29uc3QgU2VjdXJpdHlPcmlnaW4q
IHRvcE9yaWdpbigpIGNvbnN0IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQo
RnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDZlNDM0NjYyMWY4
ZWUzNDVhNTIwOTA4ZDJjYTk2NWMzMzdhNzdmYjMuLjc2MTg4ODYwMTMzODUwMmFmNDJmNDM4MGYw
NDM5MWNiYWUxZGM4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaApAQCAtODksNiArODksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIFNjcmlwdFN0YXRl
KiA9IDAsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsKICAgICB2aXJ0dWFs
IHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKSA9
IDA7CiAKKyAgICB2aXJ0dWFsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4oKSBjb25z
dCA9IDA7CisKICNpZiBFTkFCTEUoQkxPQikKICAgICBQdWJsaWNVUkxNYW5hZ2VyJiBwdWJsaWNV
UkxNYW5hZ2VyKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgK
aW5kZXggNGFiYzNiMmY0ZTA0MWE5N2ZlOWZlNjk4NzU2NDhiMGNjMmIxODkxNC4uN2IwZWUxZTlh
YzhlNDU0YWExNDEyNjIxNTM2MTdjNGZkNzcxMWRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb250ZXh0LmgKQEAgLTEzOCw3ICsxMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZvaWQgdW5yZWdpc3Rlck9ic2VydmVyKE9ic2VydmVyKik7CiAgICAgICAgIHZvaWQg
bm90aWZ5T2JzZXJ2ZXJzT2ZTdG9wKCk7CiAKLSAgICAgICAgY29uc3QgU2VjdXJpdHlPcmlnaW4q
IHRvcE9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fdG9wT3JpZ2luLmdldCgpOyB9CisgICAgICAg
IHZpcnR1YWwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbigpIGNvbnN0IE9WRVJSSURF
IHsgcmV0dXJuIG1fdG9wT3JpZ2luLmdldCgpOyB9CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAg
IFdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBQYXNz
T3duUHRyPEdyb3VwU2V0dGluZ3M+LCBXb3JrZXJUaHJlYWQqLCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiB0b3BPcmlnaW4pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhlNzA2ZjA5M2U4YWQwODY5ZDIwMmQ3NTFhNmVh
NThjMzMyOGNiYzguLjUxYjJmNzNhOTI4NDZjOGVlYmEyMTY4Mjg0NzI1NjIyYzc1YjA3MTMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMy0wMS0yOSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEFsbG93IGJsb2NraW5nIG9mIEluZGV4ZWREQiBpbiB0aGlyZC1w
YXJ0eSBjb250ZXh0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTQxNzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgdGVzdHMgdG8gZW5zdXJlIHRoYXQgSW5kZXhlZERCIGNhbiBiZSBibG9ja2VkIGlu
IGEgdGhpcmQtcGFydHkKKyAgICAgICAgY29udGV4dCBpbiBib3RoIG5vcm1hbCBkb2N1bWVudHMg
YW5kIGluIHdvcmtlcnMuIFRoZXNlIHRlc3RzIGFyZQorICAgICAgICBtb2RlbGVkIGFmdGVyIHRo
ZSBleGlzdGluZyBjcm9zcy1vcmlnaW4td2Vic3FsKiB0ZXN0czsgaXQgbWlnaHQgYmUKKyAgICAg
ICAgcG9zc2libGUgdG8gcmV1c2Ugc29tZSBjb2RlIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3Jp
Z2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXIt
aW5kZXhlZGRiLWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2Vy
LWluZGV4ZWRkYi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGIuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3It
aW5kZXhlZGRiLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVz
b3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLXdvcmtlci1pbmRleGVkZGIuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvZG9jdW1lbnQtZm9y
LWNyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3dvcmtlci1mb3ItaW5kZXhlZGRiLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNlbGYub25tZXNzYWdlKToKKyAgICAgICAgICAgIEFkZCBleGNpdGluZyBu
ZXcgdGVzdHMsIHdpdGggbW9yZSBib2lsZXJwbGF0ZSB0aGFuIEkgZXhwZWN0ZWQhCisgICAgICAg
ICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFj
LXNub3dsZW9wYXJkL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAgICAgU2tpcCB0aGVzZSBJ
bmRleGVkREIgdGVzdHMgb24gcGxhdGZvcm1zIHdoZXJlIHRoZSBmZWF0dXJlIGlzbid0CisgICAg
ICAgICAgICBlbmFibGVkLgorCiAyMDEzLTAxLTI4ICAgVmluZWV0IENoYXVkaGFyeSAgPHJnZjc0
OEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgSFRNTE91dHB1dEVsZW1lbnQ6Omh0bWxGb3Igc2hv
dWxkIGJlIHJlYWRvbmx5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGI5YjU0YzgzNTQxOTJiNDc0MWFmZTY2ZTFjOTM3ODBj
NDRmOTg2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE5IEBACitCb3RoIG9mIHRoZXNlIGZyYW1lcyBzaG91bGQgc3VjY2Vzc2Z1bGx5IG9wZW4gdGhl
IGRhdGFiYXNlOgorCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEt
LWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCitTdWNjZXNzZnVsbHkgY2FsbGVkIHdpbmRvdy53ZWJr
aXRJbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoKS4KK1N1Y2Nlc3NmdWxseSBjYWxsZWQgd2luZG93
LndlYmtpdEluZGV4ZWREQi5vcGVuKCkuCitTdWNjZXNzZnVsbHkgY2FsbGVkIHdpbmRvdy53ZWJr
aXRJbmRleGVkREIud2Via2l0R2V0RGF0YWJhc2VOYW1lcygpLgorCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+LS0+JworLS0tLS0tLS0KK1N1Y2Nlc3Nm
dWxseSBjYWxsZWQgd2luZG93LndlYmtpdEluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgpLgorU3Vj
Y2Vzc2Z1bGx5IGNhbGxlZCB3aW5kb3cud2Via2l0SW5kZXhlZERCLm9wZW4oKS4KK1N1Y2Nlc3Nm
dWxseSBjYWxsZWQgd2luZG93LndlYmtpdEluZGV4ZWREQi53ZWJraXRHZXREYXRhYmFzZU5hbWVz
KCkuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3
MjdjMzYxMjJhMDI2MTI2YzdlMjJiMmQxZjdiZWYzODA3ZjQ4NzcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGIt
YWxsb3dlZC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+CisgICAgPHA+Qm90aCBvZiB0aGVzZSBmcmFtZXMgc2hvdWxkIHN1Y2Nlc3Nm
dWxseSBvcGVuIHRoZSBkYXRhYmFzZTo8L3A+CisgICAgPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3ItaW5k
ZXhlZGRiLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLWluZGV4ZWRk
Yi5odG1sIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVk
ZGItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0M2FlMGJjMTc1YjUzNmVjNTdmZjBhYzk3YjQz
ZGVmYTg0OWJhNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkg
QEAKK1RoZSBmaXJzdCBpZnJhbWUgYmVsb3cgc2hvdWxkIHJldHVybiBhIHNlY3VyaXR5IGVycm9y
LCBhbmQgdGhlIHNlY29uZCBzaG91bGQgc3VjY2Vzc2Z1bGx5IG9wZW4gdGhlIGRhdGFiYXNlLgor
CisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0t
PicKKy0tLS0tLS0tCit3aW5kb3cud2Via2l0SW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCkgdGhy
ZXcgYW4gZXhjZXB0aW9uOiBTZWN1cml0eUVycm9yCit3aW5kb3cud2Via2l0SW5kZXhlZERCLm9w
ZW4oKSB0aHJldyBhbiBleGNlcHRpb246IFNlY3VyaXR5RXJyb3IKK3dpbmRvdy53ZWJraXRJbmRl
eGVkREIud2Via2l0R2V0RGF0YWJhc2VOYW1lcygpIHRocmV3IGFuIGV4Y2VwdGlvbjogU2VjdXJp
dHlFcnJvcgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUx
LS0+LS0+JworLS0tLS0tLS0KK1N1Y2Nlc3NmdWxseSBjYWxsZWQgd2luZG93LndlYmtpdEluZGV4
ZWREQi5kZWxldGVEYXRhYmFzZSgpLgorU3VjY2Vzc2Z1bGx5IGNhbGxlZCB3aW5kb3cud2Via2l0
SW5kZXhlZERCLm9wZW4oKS4KK1N1Y2Nlc3NmdWxseSBjYWxsZWQgd2luZG93LndlYmtpdEluZGV4
ZWREQi53ZWJraXRHZXREYXRhYmFzZU5hbWVzKCkuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmRlMjY0MTI1ZDIwMGQ1YmZhOWNlZDdjNDYwNDgwZmFmMmM3ZTNlZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2lu
LWluZGV4ZWRkYi5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIgZnJhbWVzID0gMjsKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cisg
ICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdC
bG9ja1RoaXJkUGFydHknKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRlY3JlbWVu
dCgpIHsKKyAgICAgICAgICAgIC0tZnJhbWVzOworICAgICAgICAgICAgaWYgKCFmcmFtZXMgJiYg
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgnQWxsb3dBbGwnKTsKKyAgICAgICAgfQorICAgIDwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+VGhlIGZpcnN0IGlmcmFtZSBiZWxvdyBzaG91
bGQgcmV0dXJuIGEgc2VjdXJpdHkgZXJyb3IsIGFuZCB0aGUgc2Vjb25kIHNob3VsZCBzdWNjZXNz
ZnVsbHkgb3BlbiB0aGUgZGF0YWJhc2UuPC9wPgorICAgIDxpZnJhbWUgc3JjPSJodHRwOi8vbG9j
YWxob3N0OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLWlu
ZGV4ZWRkYi5odG1sIiBvbmxvYWQ9ImRlY3JlbWVudCgpIj48L2lmcmFtZT4KKyAgICA8aWZyYW1l
IHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmln
aW4taWZyYW1lLWZvci1pbmRleGVkZGIuaHRtbCIgb25sb2FkPSJkZWNyZW1lbnQoKSI+PC9pZnJh
bWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2Vy
LWluZGV4ZWRkYi1hbGxvd2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2NjODhiNGRmYWZl
Y2YxNjdjYTljN2FhMGQ1NDM0ZmYxZDI1ZmVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1hbGxv
d2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitCb3RoIG9mIHRoZXNlIGZyYW1lcyBz
aG91bGQgc3VjY2Vzc2Z1bGx5IG9wZW4gdGhlIGRhdGFiYXNlOgorCisgIAorCistLS0tLS0tLQor
RnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCitTdWNj
ZXNzZnVsbHkgY2FsbGVkIHNlbGYud2Via2l0SW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCkuCitT
dWNjZXNzZnVsbHkgY2FsbGVkIHNlbGYud2Via2l0SW5kZXhlZERCLm9wZW4oKS4KK1N1Y2Nlc3Nm
dWxseSBjYWxsZWQgc2VsZi53ZWJraXRJbmRleGVkREIud2Via2l0R2V0RGF0YWJhc2VOYW1lcygp
LgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+LS0+
JworLS0tLS0tLS0KK1N1Y2Nlc3NmdWxseSBjYWxsZWQgc2VsZi53ZWJraXRJbmRleGVkREIuZGVs
ZXRlRGF0YWJhc2UoKS4KK1N1Y2Nlc3NmdWxseSBjYWxsZWQgc2VsZi53ZWJraXRJbmRleGVkREIu
b3BlbigpLgorU3VjY2Vzc2Z1bGx5IGNhbGxlZCBzZWxmLndlYmtpdEluZGV4ZWREQi53ZWJraXRH
ZXREYXRhYmFzZU5hbWVzKCkuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRk
Yi1hbGxvd2VkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY5MDUwZDAzNmM4NWM4NDkxY2IxODYzOTk0NDlm
OGMxNzA5YjkzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sCkBAIC0wLDAg
KzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0Pgor
ICAgICAgICB2YXIgZnJhbWVzID0gMjsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRlY3JlbWVudCgp
IHsKKyAgICAgICAgICAgIC0tZnJhbWVzOworICAgICAgICAgICAgaWYgKCFmcmFtZXMgJiYgd2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cub25tZXNzYWdlID0gZGVjcmVtZW50OworICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+Qm90aCBvZiB0aGVzZSBmcmFtZXMg
c2hvdWxkIHN1Y2Nlc3NmdWxseSBvcGVuIHRoZSBkYXRhYmFzZTo8L3A+CisgICAgPGlmcmFtZSBz
cmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2lu
LWlmcmFtZS1mb3Itd29ya2VyLWluZGV4ZWRkYi5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1l
IHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmln
aW4taWZyYW1lLWZvci13b3JrZXItaW5kZXhlZGRiLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iODUwZTUxZTdiNzY2OWU3MDdkYTVjYTNlYmY5MzA5NjZmM2UzZTc0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1v
cmlnaW4td29ya2VyLWluZGV4ZWRkYi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGhl
IGZpcnN0IGlmcmFtZSBiZWxvdyBzaG91bGQgcmV0dXJuIGEgc2VjdXJpdHkgZXJyb3IsIGFuZCB0
aGUgc2Vjb25kIHNob3VsZCBzdWNjZXNzZnVsbHkgb3BlbiB0aGUgZGF0YWJhc2UuCisKKyAgCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0t
LS0tLS0KK3NlbGYud2Via2l0SW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCkgdGhyZXcgYW4gZXhj
ZXB0aW9uOiBTZWN1cml0eUVycm9yCitzZWxmLndlYmtpdEluZGV4ZWREQi5vcGVuKCkgdGhyZXcg
YW4gZXhjZXB0aW9uOiBTZWN1cml0eUVycm9yCitzZWxmLndlYmtpdEluZGV4ZWREQi53ZWJraXRH
ZXREYXRhYmFzZU5hbWVzKCkgdGhyZXcgYW4gZXhjZXB0aW9uOiBTZWN1cml0eUVycm9yCisKKwor
LS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwhLS1mcmFtZTEtLT4tLT4nCistLS0t
LS0tLQorU3VjY2Vzc2Z1bGx5IGNhbGxlZCBzZWxmLndlYmtpdEluZGV4ZWREQi5kZWxldGVEYXRh
YmFzZSgpLgorU3VjY2Vzc2Z1bGx5IGNhbGxlZCBzZWxmLndlYmtpdEluZGV4ZWREQi5vcGVuKCku
CitTdWNjZXNzZnVsbHkgY2FsbGVkIHNlbGYud2Via2l0SW5kZXhlZERCLndlYmtpdEdldERhdGFi
YXNlTmFtZXMoKS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE0NTAwOTEwMmVlMWVhNDBhNGJlYmVkYWUzMjBmMGI4OTEyN2ZlMDYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3Jr
ZXItaW5kZXhlZGRiLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+Cis8aGVhZD4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dz
KHRydWUpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRDbG9zZVJlbWFpbmluZ1dpbmRvd3NX
aGVuQ29tcGxldGUodHJ1ZSk7CisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U3Rv
cmFnZUJsb2NraW5nUG9saWN5KCdCbG9ja1RoaXJkUGFydHknKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGRvY3VtZW50LmxvY2F0aW9uID0gInJlc291cmNlcy9kb2N1bWVudC1mb3ItY3Jvc3Mtb3Jp
Z2luLXdvcmtlci1pbmRleGVkZGIuaHRtbCIKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2Vz
L2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLWluZGV4ZWRkYi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3ItaW5kZXhl
ZGRiLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQ5ZGVkMjU4ZjA0ODIyNzBiZGVkMDZmNzU3MDIzMjg3MThi
MmI2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
cmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLWluZGV4ZWRkYi5odG1sCkBAIC0wLDAg
KzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGZ1bmN0aW9uIHRlc3QobWV0aG9kLCBhcmdzKSB7Cisg
ICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHZhciByZXF1ZXN0ID0gd2luZG93Lndl
YmtpdEluZGV4ZWREQlttZXRob2RdLmNhbGwod2luZG93LndlYmtpdEluZGV4ZWREQiwgYXJncyk7
CisgICAgICAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoJ1N1Y2Nlc3NmdWxseSBjYWxsZWQgd2lu
ZG93LndlYmtpdEluZGV4ZWREQi4nICsgbWV0aG9kICsgJygpLjxicj4nKTsKKyAgICAgICAgICAg
IH0gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCd3
aW5kb3cud2Via2l0SW5kZXhlZERCLicgKyBtZXRob2QgKyAnKCkgdGhyZXcgYW4gZXhjZXB0aW9u
OiAnICsgZXhjZXB0aW9uLm5hbWUgKyAnPGJyPicpOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIHRlc3QoJ2RlbGV0ZURhdGFiYXNlJywgJ3Rlc3REQk5hbWUnKTsKKyAgICAgICAg
dGVzdCgnb3BlbicsICd0ZXN0REJOYW1lJyk7CisgICAgICAgIHRlc3QoJ3dlYmtpdEdldERhdGFi
YXNlTmFtZXMnKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaGVhZD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1p
ZnJhbWUtZm9yLXdvcmtlci1pbmRleGVkZGIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLXdvcmtlci1pbmRleGVk
ZGIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMWM0ZWY2Mzg0ZWYxOTIxNDRkNDMwNTU0MGVjZDI1MTlhYzVk
M2E4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9y
ZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3Itd29ya2VyLWluZGV4ZWRkYi5odG1sCkBA
IC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2Ny
aXB0PgorICAgICAgICB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2
YXIgd29ya2VyID0gbmV3IFdvcmtlcignd29ya2VyLWZvci1pbmRleGVkZGIuanMnKTsKKyAgICAg
ICAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh0cnVlKTsKKyAgICAgICAgICAgIHdvcmtlci5vbm1l
c3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgZXZlbnQuZGF0YS5yZXN1bHQubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICAgICAg
IGRvY3VtZW50LndyaXRlKGV2ZW50LmRhdGEucmVzdWx0W2ldKTsKKyAgICAgICAgICAgICAgICB3
aW5kb3cucGFyZW50LnBvc3RNZXNzYWdlKCdET05FJywgJyonKTsKKyAgICAgICAgICAgIH07Cisg
ICAgICAgIH07CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaGVh
ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2Vz
L2RvY3VtZW50LWZvci1jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvZG9jdW1lbnQtZm9yLWNyb3NzLW9y
aWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYxY2MwOTI2ZGE4YTAwMTA0
NzQ2MjkzMzFiNzY5NjUxNDdjOWZlZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2RvY3VtZW50LWZvci1jcm9zcy1vcmlnaW4td29y
a2VyLWluZGV4ZWRkYi5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIgZnJhbWVzID0gMjsKKworICAg
ICAgICBmdW5jdGlvbiBkZWNyZW1lbnQoKSB7CisgICAgICAgICAgICAtLWZyYW1lczsKKyAgICAg
ICAgICAgIGlmICghZnJhbWVzICYmIHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgnQWxsb3dBbGwn
KTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSBkZWNyZW1lbnQ7Cisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5UaGUgZmlyc3QgaWZyYW1lIGJl
bG93IHNob3VsZCByZXR1cm4gYSBzZWN1cml0eSBlcnJvciwgYW5kIHRoZSBzZWNvbmQgc2hvdWxk
IHN1Y2Nlc3NmdWxseSBvcGVuIHRoZSBkYXRhYmFzZS48L3A+CisgICAgPGlmcmFtZSBzcmM9Imh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFt
ZS1mb3Itd29ya2VyLWluZGV4ZWRkYi5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIHNyYz0i
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZy
YW1lLWZvci13b3JrZXItaW5kZXhlZGRiLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMv
d29ya2VyLWZvci1pbmRleGVkZGIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy93b3JrZXItZm9yLWluZGV4ZWRkYi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOGEyOTE5N2Q4
YjE2OTVlY2RhYjM1NGNmMjQ0N2ExNDQ3ZTY2NTU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvd29ya2VyLWZvci1pbmRleGVkZGIu
anMKQEAgLTAsMCArMSwxNyBAQAorc2VsZi5vbm1lc3NhZ2UgPSBmdW5jdGlvbigpIHsKKyAgICBm
dW5jdGlvbiB0ZXN0KG1ldGhvZCwgYXJncykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAg
dmFyIHJlcXVlc3QgPSBzZWxmLndlYmtpdEluZGV4ZWREQlttZXRob2RdLmNhbGwoc2VsZi53ZWJr
aXRJbmRleGVkREIsIGFyZ3MpOworICAgICAgICAgICAgcmV0dXJuICdTdWNjZXNzZnVsbHkgY2Fs
bGVkIHNlbGYud2Via2l0SW5kZXhlZERCLicgKyBtZXRob2QgKyAnKCkuPGJyPic7CisgICAgICAg
IH0gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgcmV0dXJuICdzZWxmLndlYmtpdElu
ZGV4ZWREQi4nICsgbWV0aG9kICsgJygpIHRocmV3IGFuIGV4Y2VwdGlvbjogJyArIGV4Y2VwdGlv
bi5uYW1lICsgJzxicj4nOworICAgICAgICB9CisgICAgfQorICAgIHNlbGYucG9zdE1lc3NhZ2Uo
eworICAgICAgICAncmVzdWx0JzogWworICAgICAgICAgICAgdGVzdCgnZGVsZXRlRGF0YWJhc2Un
LCAndGVzdERCTmFtZScpLAorICAgICAgICAgICAgdGVzdCgnb3BlbicsICd0ZXN0REJOYW1lJyks
CisgICAgICAgICAgICB0ZXN0KCd3ZWJraXRHZXREYXRhYmFzZU5hbWVzJykKKyAgICAgICAgXQor
ICAgIH0pOworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggZjk5ODgwOTdiOTE3MWFiZTA4YWJmZjI0YTE0M2M3MjA5YzIzMjlmYi4uOWViNzU2NTJmNWM2
ZDNhOWFjYzM2OWJkMzAzYWEzOTljYWVkODIyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTExMTQsNiArMTExNCwxMCBAQCB3ZWJraXQub3JnL2IvODQ1
ODkgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWwgWyBGYWls
dXJlIF0KICMgSW5kZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIEJ1ZyhFRkwpIHN0b3JhZ2Uv
aW5kZXhlZGRiCiBCdWcoRUZMKSBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIKK0J1ZyhF
RkwpIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0
bWwKK0J1ZyhFRkwpIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5o
dG1sCitCdWcoRUZMKSBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5k
ZXhlZGRiLWFsbG93ZWQuaHRtbAorQnVnKEVGTCkgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1v
cmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sCiAKICMgUXVvdGEgQVBJIGlzIG5vdCBzdXBwb3J0
ZWQuCiBCdWcoRUZMKSBzdG9yYWdlL3N0b3JhZ2VpbmZvLW1pc3NpbmctYXJndW1lbnRzLmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zbm93bGVvcGFyZC9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNjE0YjU0MTExYTQzZDA3ZTJhNTI4MWJkMDI5MjYwNTUwN2E5YjBjYy4u
OGMwYTE2NjY0NDA4NzZlNDllOWY4ZjlhN2E0ZWEyMjc4ZDg0MGU0NiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTEzNCw2ICsxMzQsMTAgQEAgZmFzdC9yZXBhaW50L2ZpeGVkLW1vdmUtYWZ0ZXIta2V5Ym9hcmQt
c2Nyb2xsLmh0bWwKICMgSW5kZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHN0b3JhZ2UvaW5k
ZXhlZGRiCiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIKK2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sCiAKICMgUGhpbGlwJ3MgY2FudmFz
IHRlc3RzIHRoYXQgZmFpbCBvbiBTbm93TGVvcGFyZCBvbmx5CiBjYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLmdyYWRpZW50LmludGVycG9sYXRlLm92ZXJsYXAuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzNGEwZDEwOGE0Mzk0ZTlkMjIwMDNjZTdkNzk3
OTk0ZDgzZTI2MTcxLi43ODU0YmI3YWVmMGI0NDFiYTRiMDJiYjM3NjkyMzk1MTI1NmNhZDRhIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM1LDYgKzEz
NSwxMCBAQCBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5vdXRzaWRlc291cmNlLmh0
bWwKICMgSW5kZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHN0b3JhZ2UvaW5kZXhlZGRiCiBo
dHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIKK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLWluZGV4ZWRkYi5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13
b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1v
cmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sCiAKICMgVGhpcyBwb3J0IGRvZXNuJ3Qgc3VwcG9y
dCBEZXZpY2VNb3Rpb24gb3IgRGV2aWNlT3JpZW50YXRpb24uCiBmYXN0L2RvbS9EZXZpY2VNb3Rp
b24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDhjNTZjYjkx
NTcxY2VlOTExMjE1OWFiOTAyMjE1ODRhMGM4YmM1MWYuLjA5MWFjMjIxMTBkNjU1NzNmOTg2NDMz
ZjQ1OGU3OWI4ZWY3ZmE2NmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtMTEyLDYgKzExMiwxMCBAQCBmYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvY29tcG9z
aXRpb24tZXZlbnQtY29uc3RydWN0b3IuaHRtbAogIyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkg
aXMgZGlzYWJsZWQuCiBzdG9yYWdlL2luZGV4ZWRkYgogaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5k
ZXhlZGRiCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dl
ZC5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGIuaHRtbAor
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1hbGxvd2Vk
Lmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGIu
aHRtbAogCiBpbnNwZWN0b3IvdGltZWxpbmUvdGltZWxpbmUtYW5pbWF0aW9uLWZyYW1lLmh0bWwK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjNjdkZmEy
OWM1MzZjYWY1MTZiNTE1ZjIzNWNlMzQ3Njg5NjUwNDdlLi5mNGM3NjAyZGRlZjRkYjFiZDQ0MzZh
MDczNjk2MWY0NWNjMTdjYTVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTA5Myw2ICsxMDkzLDEwIEBAIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmct
bWFya2VyLWRlc2NyaXB0aW9uLmh0bWwKICMgSW5kZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4K
IHN0b3JhZ2UvaW5kZXhlZGRiCiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIKK2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwKK2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sCitodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbAoraHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sCiAKICMgU3Rv
cmFnZVRyYWNrZXIgaXMgbm90IGVuYWJsZWQuCiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9y
YWdlL3N0b3JhZ2V0cmFja2VyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5j
YWlyby9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVz
dEV4cGVjdGF0aW9ucwppbmRleCA4NmMwNjVhN2FjZjY5YWFmNTc2NWM5NTFlZDY2NTE4Yzk4MWY1
YjdmLi4xNDUyMzY4Yjk1ZWEyNjE3NDc2OTVlMjc2MDllMjM5ZDU1ODQ5MjUzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE2MTgsNiAr
MTYxOCwxMCBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlci1kZXNjcmlwdGlvbi5o
dG1sCiAjIEluZGV4ZWREQiBpcyBub3QgeWV0IGVuYWJsZWQuCiBzdG9yYWdlL2luZGV4ZWRkYgog
aHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5kZXhlZGRiCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LW9yaWdpbi1pbmRleGVkZGIuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
d29ya2VyLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLXdvcmtlci1pbmRleGVkZGIuaHRtbAogCiAjIFN0b3JhZ2VUcmFja2VyIGlzIG5vdCBl
bmFibGVkLgogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlcgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185723</attachid>
            <date>2013-01-31 02:16:58 -0800</date>
            <delta_ts>2013-01-31 06:59:29 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-94171-20130131111341.patch</filename>
            <type>text/plain</type>
            <size>26893</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTY0MDhhODA5ZmRlYmNl
ZTdlODg3ZTNhMTJkYzc5MTI3MzNjZDE2Mi4uODgwYjc0ZWM3N2I0YTFlNWNhZGJiYWE1YjkwNjlm
ZjM5NTQxMWI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEzLTAxLTMxICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWxsb3cgYmxvY2tpbmcgb2Yg
SW5kZXhlZERCIGluIHRoaXJkLXBhcnR5IGNvbnRleHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDE3MQorCisgICAgICAgIFJldmlld2VkIGJ5IEpv
Y2hlbiBFaXNpbmdlci4KKworICAgICAgICBUaGlzIHBhdGNoIGVuc3VyZXMgdGhhdCB0aGUgb3Jp
Z2luIG9mIHRoZSB0b3Agd2luZG93IGlzIHBhc3NlZCBpbnRvCisgICAgICAgIFNlY3VyaXR5T3Jp
Z2luOjpjYW5BY2Nlc3NEYXRhYmFzZSB3aGVuIHdvcmtpbmcgd2l0aCBJbmRleGVkREIuIEdpdmlu
ZworICAgICAgICBTZWN1cml0eU9yaWdpbiBhY2Nlc3MgdG8gdGhpcyBkYXRhIG1lYW5zIHRoYXQg
aXQgY2FuIHByb3Blcmx5IGNoZWNrCisgICAgICAgIHdoZXRoZXIgdGhlIGRhdGFiYXNlIGlzIGJl
aW5nIG9wZW5lZCBpbiBhIHRoaXJkLXBhcnR5IGNvbnRleHQsIGFuZAorICAgICAgICB0aGVyZWZv
cmUgcHJvcGVybHkgZW5mb3JjZSB0aGUgdGhpcmQtcGFydHkgYWNjZXNzIGNoZWNrcyB0aGF0IHdl
cmUKKyAgICAgICAgYWRkZWQgaW4gaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTI1
NzM2LgorCisgICAgICAgIFRoaXJkLXBhcnR5IGNoZWNrcyBhcmUgYWRkZWQgdG8gSURCRmFjdG9y
eTo6b3BlbiwKKyAgICAgICAgSURCRmFjdG9yeTo6ZGVsZXRlRGF0YWJhc2UsIGFuZCBJREJGYWN0
b3J5OjpnZXREYXRhYmFzZU5hbWVzOyBlYWNoIHdpbGwKKyAgICAgICAgbm93IHRocm93IGEgU0VD
VVJJVFlfRVJSIGV4Y2VwdGlvbiB3aGVuIGFjY2VzcyBpbiBhIHRoaXJkLXBhcnR5IGNvbnRleHQK
KyAgICAgICAgaWYgdGhpcmQtcGFydHkgYWNjZXNzIGNoZWNrcyBhcmUgZW5hYmxlZC4KKworICAg
ICAgICBUbyBtYWtlIHRoaXMgcHJvY2VzcyBzbGlnaHRseSBtb3JlIGNsZWFyLCBhbmQgYXZvaWQg
c29tZSB1Z2x5IGNhc3RpbmcKKyAgICAgICAgbG9naWMsIHRoaXMgcGF0Y2ggYWRkcyBhICd0b3BP
cmlnaW4nICBtZXRob2QgdG8gU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwKKyAgICAgICAgYW5kIGlt
cGxlbWVudHMgaXQgb24gYm90aCBXb3JrZXJDb250ZXh0IGFuZCBEb2N1bWVudC4KKworICAgICAg
ICBUZXN0czogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWFsbG93
ZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
aW5kZXhlZGRiLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwKKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCRmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJG
YWN0b3J5OjpvcGVuSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6ZGVs
ZXRlRGF0YWJhc2UpOgorICAgICAgICAgICAgR3JhYiB0aGUgU2VjdXJpdHlPcmlnaW4gb2YgdGhl
IGN1cnJlbnQgY29udGV4dCdzIHRvcC1sZXZlbCBvcmlnaW4sCisgICAgICAgICAgICBhbmQgcGFz
cyBpdCB0byBTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzRGF0YWJhc2UgdG8gZW5zdXJlIHRoYXQK
KyAgICAgICAgICAgIGFjY2VzcyBjaGVja3MgYXJlIHByb3Blcmx5IGFwcGxpZWQgdG8gdGhlc2Ug
dGhyZWUgbWV0aG9kcy4KKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OnRvcE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAgICAgKiBkb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6
CisgICAgICAgICAgICBBZGQgYSB0b3BPcmlnaW4oKSBtZXRob2QgdG8gU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgYW5kIGltcGxlbWVudCBpdAorICAgICAgICAgICAgb24gRG9jdW1lbnQgaW4gb3Jk
ZXIgdG8gZ2l2ZSBjYWxsZXJzIGFjY2VzcyB0byB0aGUgdG9wIGRvY3VtZW50J3MKKyAgICAgICAg
ICAgIFNlY3VyaXR5T3JpZ2luIHdpdGhvdXQgY2FzdGluZyBTY3JpcHRFeGVjdXRpb25Db250ZXh0
LgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyQ29udGV4dC5oOgorICAgICAgICAgICAgQ2hhbmdl
IHRoZSBleGlzdGluZyB0b3BPcmlnaW4oKSBtZXRob2QgdG8gb3ZlcnJpZGUgdGhlIG5ldyBtZXRo
b2QKKyAgICAgICAgICAgIG9uIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCisKIDIwMTMtMDEtMzEg
IEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtWOF0gVHJh
Y2Ugbm90IG9ubHkgbWFqb3IgRE9NIEdDcyBidXQgYWxzbyBtaW5vciBET00gR0NzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCmluZGV4IDJkM2Mw
ZDNkMDczYjFlOTM0OTZiYWU4Y2RkOTdiYjk2ODQxNzg3MDIuLjdhZDc1NjYxYWRkNjAwMThhMjk2
Yjg3YTczYTQ1MTAwMzI3NDdiNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnkuY3BwCkBAIC05NSwxMCArOTUsMTQgQEAgc3RhdGljIFN0cmluZyBn
ZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkK
IH0KIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpnZXREYXRhYmFzZU5h
bWVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmKQorUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpnZXREYXRhYmFzZU5hbWVzKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgh
aXNDb250ZXh0VmFsaWQoY29udGV4dCkpCiAgICAgICAgIHJldHVybiAwOworICAgIGlmICghY29u
dGV4dC0+c2VjdXJpdHlPcmlnaW4oKS0+Y2FuQWNjZXNzRGF0YWJhc2UoY29udGV4dC0+dG9wT3Jp
Z2luKCkpKSB7CisgICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOworICAgICAgICByZXR1cm4gMDsK
KyAgICB9CiAKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNy
ZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgMCk7CiAgICAgbV9iYWNrZW5kLT5n
ZXREYXRhYmFzZU5hbWVzKHJlcXVlc3QsIGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCksIGNvbnRl
eHQsIGdldEluZGV4ZWREQkRhdGFiYXNlUGF0aChjb250ZXh0KSk7CkBAIC0xMjUsNiArMTI5LDEw
IEBAIFBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6b3BlbkludGVybmFs
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvCiAgICAgfQogICAgIGlmICghaXNDb250ZXh0VmFs
aWQoY29udGV4dCkpCiAgICAgICAgIHJldHVybiAwOworICAgIGlmICghY29udGV4dC0+c2VjdXJp
dHlPcmlnaW4oKS0+Y2FuQWNjZXNzRGF0YWJhc2UoY29udGV4dC0+dG9wT3JpZ2luKCkpKSB7Cisg
ICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAKICAg
ICBSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NJbXBsPiBkYXRhYmFzZUNhbGxiYWNrcyA9IElE
QkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6Y3JlYXRlKCk7CiAgICAgaW50NjRfdCB0cmFuc2FjdGlv
bklkID0gSURCRGF0YWJhc2U6Om5leHRUcmFuc2FjdGlvbklkKCk7CkBAIC0xNDYsNiArMTU0LDEw
IEBAIFBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gSURCRmFjdG9yeTo6ZGVsZXRlRGF0YWJh
c2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKICAgICB9CiAgICAgaWYgKCFpc0NvbnRleHRWYWxp
ZChjb250ZXh0KSkKICAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKCFjb250ZXh0LT5zZWN1cml0
eU9yaWdpbigpLT5jYW5BY2Nlc3NEYXRhYmFzZShjb250ZXh0LT50b3BPcmlnaW4oKSkpIHsKKyAg
ICAgICAgZWMgPSBTRUNVUklUWV9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KIAogICAg
IFJlZlB0cjxJREJPcGVuREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCT3BlbkRCUmVxdWVzdDo6Y3Jl
YXRlKGNvbnRleHQsIDAsIDAsIElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9u
KTsKICAgICBtX2JhY2tlbmQtPmRlbGV0ZURhdGFiYXNlKG5hbWUsIHJlcXVlc3QsIGNvbnRleHQt
PnNlY3VyaXR5T3JpZ2luKCksIGNvbnRleHQsIGdldEluZGV4ZWREQkRhdGFiYXNlUGF0aChjb250
ZXh0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBhYzhlOTg2ZjY5Y2IxOWU0ZjQ3MzJh
ODhiYzg1OTA3OGNlZWY0Y2QzLi5kZDkzOTZjMmQ4MGI2MGEyZjFhYTllNGExMzM3OTUzN2ViM2Zm
ZGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQ3NzYsNiArNDc3NiwxMSBAQCB2b2lk
IERvY3VtZW50OjphZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwg
bGV2ZWwsIGNvbnN0IFN0cmluZwogICAgIH0KIH0KIAorY29uc3QgU2VjdXJpdHlPcmlnaW4qIERv
Y3VtZW50Ojp0b3BPcmlnaW4oKSBjb25zdAoreworICAgIHJldHVybiB0b3BEb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpOworfQorCiBzdHJ1Y3QgUGVyZm9ybVRhc2tDb250ZXh0IHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShQZXJmb3JtVGFza0NvbnRleHQpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggODU4ZTQ1OTBlNzY1NzNi
OTg2MzUyNGYzMTEyYzYwM2U1ZjIxNjUwOS4uOThmYmU5YTAxNmJhMDRlNjE5OTUyMTYyMDUzMzEy
ZWFiMzNkMzhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExOTksNiArMTE5OSw4IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1
ZXN0SWRlbnRpZmllciA9IDApOwogCisgICAgdmlydHVhbCBjb25zdCBTZWN1cml0eU9yaWdpbiog
dG9wT3JpZ2luKCkgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICBEb2N1bWVudChG
cmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggNmU0MzQ2NjIxZjhl
ZTM0NWE1MjA5MDhkMmNhOTY1YzMzN2E3N2ZiMy4uNzYxODg4NjAxMzM4NTAyYWY0MmY0MzgwZjA0
MzkxY2JhZTFkYzgyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oCkBAIC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgbGluZU51bWJlciwgU2NyaXB0U3RhdGUq
ID0gMCwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwogICAgIHZpcnR1YWwg
dm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApID0g
MDsKIAorICAgIHZpcnR1YWwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbigpIGNvbnN0
ID0gMDsKKwogI2lmIEVOQUJMRShCTE9CKQogICAgIFB1YmxpY1VSTE1hbmFnZXImIHB1YmxpY1VS
TE1hbmFnZXIoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaApp
bmRleCA0YWJjM2IyZjRlMDQxYTk3ZmU5ZmU2OTg3NTY0OGIwY2MyYjE4OTE0Li43YjBlZTFlOWFj
OGU0NTRhYTE0MTI2MjE1MzYxN2M0ZmQ3NzExZGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckNvbnRleHQuaApAQCAtMTM4LDcgKzEzOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdm9pZCB1bnJlZ2lzdGVyT2JzZXJ2ZXIoT2JzZXJ2ZXIqKTsKICAgICAgICAgdm9pZCBu
b3RpZnlPYnNlcnZlcnNPZlN0b3AoKTsKIAotICAgICAgICBjb25zdCBTZWN1cml0eU9yaWdpbiog
dG9wT3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV90b3BPcmlnaW4uZ2V0KCk7IH0KKyAgICAgICAg
dmlydHVhbCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKCkgY29uc3QgT1ZFUlJJREUg
eyByZXR1cm4gbV90b3BPcmlnaW4uZ2V0KCk7IH0KIAogICAgIHByb3RlY3RlZDoKICAgICAgICAg
V29ya2VyQ29udGV4dChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFBhc3NP
d25QdHI8R3JvdXBTZXR0aW5ncz4sIFdvcmtlclRocmVhZCosIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IHRvcE9yaWdpbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTk1YWIxYzc5YzFkYmFmNzIwMTY5YjFmZTc0MjNl
ZTk5YjljYWFhNC4uZWEwY2ZiMWYyY2Q2MjZjOThiMjRmMjViNDYyNGNkNjkwNTMyYjI0MiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAxLTMxICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgQWxsb3cgYmxvY2tpbmcgb2YgSW5kZXhlZERCIGluIHRoaXJkLXBh
cnR5IGNvbnRleHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NDE3MQorCisgICAgICAgIFJldmlld2VkIGJ5IEpvY2hlbiBFaXNpbmdlci4KKworICAg
ICAgICBBZGQgdGVzdHMgdG8gZW5zdXJlIHRoYXQgSW5kZXhlZERCIGNhbiBiZSBibG9ja2VkIGlu
IGEgdGhpcmQtcGFydHkKKyAgICAgICAgY29udGV4dCBpbiBib3RoIG5vcm1hbCBkb2N1bWVudHMg
YW5kIGluIHdvcmtlcnMuIFRoZXNlIHRlc3RzIGFyZQorICAgICAgICBtb2RlbGVkIGFmdGVyIHRo
ZSBleGlzdGluZyBjcm9zcy1vcmlnaW4td2Vic3FsKiB0ZXN0czsgaXQgbWlnaHQgYmUKKyAgICAg
ICAgcG9zc2libGUgdG8gcmV1c2Ugc29tZSBjb2RlIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3Jp
Z2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXIt
aW5kZXhlZGRiLWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2Vy
LWluZGV4ZWRkYi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGIuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3It
aW5kZXhlZGRiLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVz
b3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLXdvcmtlci1pbmRleGVkZGIuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvZG9jdW1lbnQtZm9y
LWNyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL3dvcmtlci1mb3ItaW5kZXhlZGRiLmpzOiBBZGRl
ZC4KKyAgICAgICAgKHNlbGYub25tZXNzYWdlKToKKyAgICAgICAgICAgIEFkZCBleGNpdGluZyBu
ZXcgdGVzdHMsIHdpdGggbW9yZSBib2lsZXJwbGF0ZSB0aGFuIEkgZXhwZWN0ZWQhCisgICAgICAg
ICogcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFj
LXNub3dsZW9wYXJkL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9uczoK
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAgICAgU2tpcCB0aGVzZSBJ
bmRleGVkREIgdGVzdHMgb24gcGxhdGZvcm1zIHdoZXJlIHRoZSBmZWF0dXJlIGlzbid0CisgICAg
ICAgICAgICBlbmFibGVkLgorCiAyMDEzLTAxLTMxICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIExheW91dCBUZXN0IGluc3BlY3Rvci1wcm90b2NvbC90
YWtlLWhlYXAtc25hcHNob3QuaHRtbCBjcmFzaGVzIGluIHRoZSBEZWJ1ZyBtb2RlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVk
ZGItYWxsb3dlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OGI5YjU0YzgzNTQxOTJiNDc0MWFmZTY2ZTFjOTM3ODBjNDRmOTg2NwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRk
Yi1hbGxvd2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitCb3RoIG9mIHRoZXNlIGZy
YW1lcyBzaG91bGQgc3VjY2Vzc2Z1bGx5IG9wZW4gdGhlIGRhdGFiYXNlOgorCisgIAorCistLS0t
LS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0t
CitTdWNjZXNzZnVsbHkgY2FsbGVkIHdpbmRvdy53ZWJraXRJbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoKS4KK1N1Y2Nlc3NmdWxseSBjYWxsZWQgd2luZG93LndlYmtpdEluZGV4ZWREQi5vcGVuKCku
CitTdWNjZXNzZnVsbHkgY2FsbGVkIHdpbmRvdy53ZWJraXRJbmRleGVkREIud2Via2l0R2V0RGF0
YWJhc2VOYW1lcygpLgorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0t
ZnJhbWUxLS0+LS0+JworLS0tLS0tLS0KK1N1Y2Nlc3NmdWxseSBjYWxsZWQgd2luZG93LndlYmtp
dEluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgpLgorU3VjY2Vzc2Z1bGx5IGNhbGxlZCB3aW5kb3cu
d2Via2l0SW5kZXhlZERCLm9wZW4oKS4KK1N1Y2Nlc3NmdWxseSBjYWxsZWQgd2luZG93LndlYmtp
dEluZGV4ZWREQi53ZWJraXRHZXREYXRhYmFzZU5hbWVzKCkuCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1hbGxvd2Vk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRl
eGVkZGItYWxsb3dlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3MjdjMzYxMjJhMDI2MTI2YzdlMjJiMmQx
ZjdiZWYzODA3ZjQ4NzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC5odG1sCkBAIC0wLDAgKzEs
MTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQo
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+Qm90
aCBvZiB0aGVzZSBmcmFtZXMgc2hvdWxkIHN1Y2Nlc3NmdWxseSBvcGVuIHRoZSBkYXRhYmFzZTo8
L3A+CisgICAgPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9yZXNv
dXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3ItaW5kZXhlZGRiLmh0bWwiPjwvaWZyYW1lPgor
ICAgIDxpZnJhbWUgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2Vz
L2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLWluZGV4ZWRkYi5odG1sIj48L2lmcmFtZT4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjA0M2FlMGJjMTc1YjUzNmVjNTdmZjBhYzk3YjQzZGVmYTg0OWJhNWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRl
eGVkZGItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK1RoZSBmaXJzdCBpZnJhbWUgYmVs
b3cgc2hvdWxkIHJldHVybiBhIHNlY3VyaXR5IGVycm9yLCBhbmQgdGhlIHNlY29uZCBzaG91bGQg
c3VjY2Vzc2Z1bGx5IG9wZW4gdGhlIGRhdGFiYXNlLgorCisgIAorCistLS0tLS0tLQorRnJhbWU6
ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCit3aW5kb3cud2Vi
a2l0SW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCkgdGhyZXcgYW4gZXhjZXB0aW9uOiBTZWN1cml0
eUVycm9yCit3aW5kb3cud2Via2l0SW5kZXhlZERCLm9wZW4oKSB0aHJldyBhbiBleGNlcHRpb246
IFNlY3VyaXR5RXJyb3IKK3dpbmRvdy53ZWJraXRJbmRleGVkREIud2Via2l0R2V0RGF0YWJhc2VO
YW1lcygpIHRocmV3IGFuIGV4Y2VwdGlvbjogU2VjdXJpdHlFcnJvcgorCisKKy0tLS0tLS0tCitG
cmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+LS0+JworLS0tLS0tLS0KK1N1Y2Nl
c3NmdWxseSBjYWxsZWQgd2luZG93LndlYmtpdEluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgpLgor
U3VjY2Vzc2Z1bGx5IGNhbGxlZCB3aW5kb3cud2Via2l0SW5kZXhlZERCLm9wZW4oKS4KK1N1Y2Nl
c3NmdWxseSBjYWxsZWQgd2luZG93LndlYmtpdEluZGV4ZWREQi53ZWJraXRHZXREYXRhYmFzZU5h
bWVzKCkuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmRlMjY0MTI1ZDIwMGQ1
YmZhOWNlZDdjNDYwNDgwZmFmMmM3ZTNlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sCkBAIC0wLDAg
KzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0Pgor
ICAgICAgICB2YXIgZnJhbWVzID0gMjsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdCbG9ja1RoaXJkUGFydHknKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRlY3JlbWVudCgpIHsKKyAgICAgICAgICAgIC0tZnJh
bWVzOworICAgICAgICAgICAgaWYgKCFmcmFtZXMgJiYgd2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeSgn
QWxsb3dBbGwnKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cisg
ICAgPHA+VGhlIGZpcnN0IGlmcmFtZSBiZWxvdyBzaG91bGQgcmV0dXJuIGEgc2VjdXJpdHkgZXJy
b3IsIGFuZCB0aGUgc2Vjb25kIHNob3VsZCBzdWNjZXNzZnVsbHkgb3BlbiB0aGUgZGF0YWJhc2Uu
PC9wPgorICAgIDxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkvcmVz
b3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9yLWluZGV4ZWRkYi5odG1sIiBvbmxvYWQ9ImRl
Y3JlbWVudCgpIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLWZvci1pbmRleGVkZGIu
aHRtbCIgb25sb2FkPSJkZWNyZW1lbnQoKSI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13
b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1hbGxvd2VkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43Y2NjODhiNGRmYWZlY2YxNjdjYTljN2FhMGQ1NDM0ZmYxZDI1
ZmVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1hbGxvd2VkLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE5IEBACitCb3RoIG9mIHRoZXNlIGZyYW1lcyBzaG91bGQgc3VjY2Vzc2Z1bGx5IG9wZW4g
dGhlIGRhdGFiYXNlOgorCisgIAorCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8v
PCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCitTdWNjZXNzZnVsbHkgY2FsbGVkIHNlbGYud2Vi
a2l0SW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCkuCitTdWNjZXNzZnVsbHkgY2FsbGVkIHNlbGYu
d2Via2l0SW5kZXhlZERCLm9wZW4oKS4KK1N1Y2Nlc3NmdWxseSBjYWxsZWQgc2VsZi53ZWJraXRJ
bmRleGVkREIud2Via2l0R2V0RGF0YWJhc2VOYW1lcygpLgorCisKKy0tLS0tLS0tCitGcmFtZTog
JzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUxLS0+LS0+JworLS0tLS0tLS0KK1N1Y2Nlc3NmdWxs
eSBjYWxsZWQgc2VsZi53ZWJraXRJbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoKS4KK1N1Y2Nlc3Nm
dWxseSBjYWxsZWQgc2VsZi53ZWJraXRJbmRleGVkREIub3BlbigpLgorU3VjY2Vzc2Z1bGx5IGNh
bGxlZCBzZWxmLndlYmtpdEluZGV4ZWREQi53ZWJraXRHZXREYXRhYmFzZU5hbWVzKCkuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdv
cmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmY5MDUwZDAzNmM4NWM4NDkxY2IxODYzOTk0NDlmOGMxNzA5YjkzMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtl
ci1pbmRleGVkZGItYWxsb3dlZC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICB2YXIgZnJhbWVzID0gMjsK
KyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNU
ZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIGRlY3JlbWVudCgpIHsKKyAgICAgICAgICAgIC0tZnJhbWVz
OworICAgICAgICAgICAgaWYgKCFmcmFtZXMgJiYgd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICB3
aW5kb3cub25tZXNzYWdlID0gZGVjcmVtZW50OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPHA+Qm90aCBvZiB0aGVzZSBmcmFtZXMgc2hvdWxkIHN1Y2Nlc3NmdWxseSBvcGVu
IHRoZSBkYXRhYmFzZTo8L3A+CisgICAgPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3Itd29ya2VyLWluZGV4
ZWRkYi5odG1sIj48L2lmcmFtZT4KKyAgICA8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4
MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLWZvci13b3JrZXItaW5k
ZXhlZGRiLmh0bWwiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRk
Yi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9y
aWdpbi13b3JrZXItaW5kZXhlZGRiLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODUwZTUxZTdi
NzY2OWU3MDdkYTVjYTNlYmY5MzA5NjZmM2UzZTc0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorVGhlIGZpcnN0IGlmcmFtZSBiZWxvdyBzaG91
bGQgcmV0dXJuIGEgc2VjdXJpdHkgZXJyb3IsIGFuZCB0aGUgc2Vjb25kIHNob3VsZCBzdWNjZXNz
ZnVsbHkgb3BlbiB0aGUgZGF0YWJhc2UuCisKKyAgCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1m
cmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK3NlbGYud2Via2l0SW5kZXhl
ZERCLmRlbGV0ZURhdGFiYXNlKCkgdGhyZXcgYW4gZXhjZXB0aW9uOiBTZWN1cml0eUVycm9yCitz
ZWxmLndlYmtpdEluZGV4ZWREQi5vcGVuKCkgdGhyZXcgYW4gZXhjZXB0aW9uOiBTZWN1cml0eUVy
cm9yCitzZWxmLndlYmtpdEluZGV4ZWREQi53ZWJraXRHZXREYXRhYmFzZU5hbWVzKCkgdGhyZXcg
YW4gZXhjZXB0aW9uOiBTZWN1cml0eUVycm9yCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZy
YW1lUGF0aCAvLzwhLS1mcmFtZTEtLT4tLT4nCistLS0tLS0tLQorU3VjY2Vzc2Z1bGx5IGNhbGxl
ZCBzZWxmLndlYmtpdEluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgpLgorU3VjY2Vzc2Z1bGx5IGNh
bGxlZCBzZWxmLndlYmtpdEluZGV4ZWREQi5vcGVuKCkuCitTdWNjZXNzZnVsbHkgY2FsbGVkIHNl
bGYud2Via2l0SW5kZXhlZERCLndlYmtpdEdldERhdGFiYXNlTmFtZXMoKS4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWlu
ZGV4ZWRkYi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmln
aW4td29ya2VyLWluZGV4ZWRkYi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzMjkzZDQ3ZjBkYmFmMmZhZDYw
ZjUwODJjYThlNzZjMzkzNWVjYjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwKQEAgLTAs
MCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21w
bGV0ZSh0cnVlKTsKKyAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTdG9yYWdlQmxv
Y2tpbmdQb2xpY3koJ0Jsb2NrVGhpcmRQYXJ0eScpOworICAgICAgICB9CisKKyAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24gPSAicmVzb3VyY2VzL2RvY3VtZW50LWZvci1jcm9zcy1vcmlnaW4td29y
a2VyLWluZGV4ZWRkYi5odG1sIgorICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mt
b3JpZ2luLWlmcmFtZS1mb3ItaW5kZXhlZGRiLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLWZvci1pbmRleGVkZGIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41ZDlkZWQyNThmMDQ4MjI3MGJkZWQwNmY3NTcwMjMyODcxOGIyYjYwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJj
ZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3ItaW5kZXhlZGRiLmh0bWwKQEAgLTAsMCArMSwyMCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gdGVzdChtZXRob2QsIGFyZ3MpIHsKKyAgICAgICAg
ICAgIHRyeSB7CisgICAgICAgICAgICAgICAgdmFyIHJlcXVlc3QgPSB3aW5kb3cud2Via2l0SW5k
ZXhlZERCW21ldGhvZF0uY2FsbCh3aW5kb3cud2Via2l0SW5kZXhlZERCLCBhcmdzKTsKKyAgICAg
ICAgICAgICAgICBkb2N1bWVudC53cml0ZSgnU3VjY2Vzc2Z1bGx5IGNhbGxlZCB3aW5kb3cud2Vi
a2l0SW5kZXhlZERCLicgKyBtZXRob2QgKyAnKCkuPGJyPicpOworICAgICAgICAgICAgfSBjYXRj
aCAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQud3JpdGUoJ3dpbmRvdy53
ZWJraXRJbmRleGVkREIuJyArIG1ldGhvZCArICcoKSB0aHJldyBhbiBleGNlcHRpb246ICcgKyBl
eGNlcHRpb24ubmFtZSArICc8YnI+Jyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAg
ICAgdGVzdCgnZGVsZXRlRGF0YWJhc2UnLCAndGVzdERCTmFtZScpOworICAgICAgICB0ZXN0KCdv
cGVuJywgJ3Rlc3REQk5hbWUnKTsKKyAgICAgICAgdGVzdCgnd2Via2l0R2V0RGF0YWJhc2VOYW1l
cycpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1m
b3Itd29ya2VyLWluZGV4ZWRkYi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9yZXNvdXJjZXMvY3Jvc3Mtb3JpZ2luLWlmcmFtZS1mb3Itd29ya2VyLWluZGV4ZWRkYi5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjMxYzRlZjYzODRlZjE5MjE0NGQ0MzA1NTQwZWNkMjUxOWFjNWQzYTgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNl
cy9jcm9zcy1vcmlnaW4taWZyYW1lLWZvci13b3JrZXItaW5kZXhlZGRiLmh0bWwKQEAgLTAsMCAr
MSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHZhciB3b3Jr
ZXIgPSBuZXcgV29ya2VyKCd3b3JrZXItZm9yLWluZGV4ZWRkYi5qcycpOworICAgICAgICAgICAg
d29ya2VyLnBvc3RNZXNzYWdlKHRydWUpOworICAgICAgICAgICAgd29ya2VyLm9ubWVzc2FnZSA9
IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBl
dmVudC5kYXRhLnJlc3VsdC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICAgICAgZG9jdW1l
bnQud3JpdGUoZXZlbnQuZGF0YS5yZXN1bHRbaV0pOworICAgICAgICAgICAgICAgIHdpbmRvdy5w
YXJlbnQucG9zdE1lc3NhZ2UoJ0RPTkUnLCAnKicpOworICAgICAgICAgICAgfTsKKyAgICAgICAg
fTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9oZWFkPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvZG9jdW1l
bnQtZm9yLWNyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9kb2N1bWVudC1mb3ItY3Jvc3Mtb3JpZ2luLXdv
cmtlci1pbmRleGVkZGIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNjFjYzA5MjZkYThhMDAxMDQ3NDYyOTMz
MWI3Njk2NTE0N2M5ZmVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9yZXNvdXJjZXMvZG9jdW1lbnQtZm9yLWNyb3NzLW9yaWdpbi13b3JrZXItaW5k
ZXhlZGRiLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIHZhciBmcmFtZXMgPSAyOworCisgICAgICAgIGZ1
bmN0aW9uIGRlY3JlbWVudCgpIHsKKyAgICAgICAgICAgIC0tZnJhbWVzOworICAgICAgICAgICAg
aWYgKCFmcmFtZXMgJiYgd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KCdBbGxvd0FsbCcpOworICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisKKyAgICAgICAgd2luZG93Lm9ubWVzc2FnZSA9IGRlY3JlbWVudDsKKyAgICA8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxwPlRoZSBmaXJzdCBpZnJhbWUgYmVsb3cgc2hv
dWxkIHJldHVybiBhIHNlY3VyaXR5IGVycm9yLCBhbmQgdGhlIHNlY29uZCBzaG91bGQgc3VjY2Vz
c2Z1bGx5IG9wZW4gdGhlIGRhdGFiYXNlLjwvcD4KKyAgICA8aWZyYW1lIHNyYz0iaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1vcmlnaW4taWZyYW1lLWZvci13
b3JrZXItaW5kZXhlZGRiLmh0bWwiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgc3JjPSJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLW9yaWdpbi1pZnJhbWUtZm9y
LXdvcmtlci1pbmRleGVkZGIuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy93b3JrZXIt
Zm9yLWluZGV4ZWRkYi5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3Vy
Y2VzL3dvcmtlci1mb3ItaW5kZXhlZGRiLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4YTI5MTk3ZDhiMTY5NWVj
ZGFiMzU0Y2YyNDQ3YTE0NDdlNjY1NTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy93b3JrZXItZm9yLWluZGV4ZWRkYi5qcwpAQCAt
MCwwICsxLDE3IEBACitzZWxmLm9ubWVzc2FnZSA9IGZ1bmN0aW9uKCkgeworICAgIGZ1bmN0aW9u
IHRlc3QobWV0aG9kLCBhcmdzKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICB2YXIgcmVx
dWVzdCA9IHNlbGYud2Via2l0SW5kZXhlZERCW21ldGhvZF0uY2FsbChzZWxmLndlYmtpdEluZGV4
ZWREQiwgYXJncyk7CisgICAgICAgICAgICByZXR1cm4gJ1N1Y2Nlc3NmdWxseSBjYWxsZWQgc2Vs
Zi53ZWJraXRJbmRleGVkREIuJyArIG1ldGhvZCArICcoKS48YnI+JzsKKyAgICAgICAgfSBjYXRj
aCAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICByZXR1cm4gJ3NlbGYud2Via2l0SW5kZXhlZERC
LicgKyBtZXRob2QgKyAnKCkgdGhyZXcgYW4gZXhjZXB0aW9uOiAnICsgZXhjZXB0aW9uLm5hbWUg
KyAnPGJyPic7CisgICAgICAgIH0KKyAgICB9CisgICAgc2VsZi5wb3N0TWVzc2FnZSh7CisgICAg
ICAgICdyZXN1bHQnOiBbCisgICAgICAgICAgICB0ZXN0KCdkZWxldGVEYXRhYmFzZScsICd0ZXN0
REJOYW1lJyksCisgICAgICAgICAgICB0ZXN0KCdvcGVuJywgJ3Rlc3REQk5hbWUnKSwKKyAgICAg
ICAgICAgIHRlc3QoJ3dlYmtpdEdldERhdGFiYXNlTmFtZXMnKQorICAgICAgICBdCisgICAgfSk7
Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhMzU3
NTBjY2MzNjc4M2Y1NDZmNmVmNjAzNTY4ZGJlYWNlZjIyNGM4Li45OTBjYmEzYWVhOWQ4MjgxMTc2
NzIzOTVlYWM3MDg4MDE0MzlkNWQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9l
ZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTExNSw2ICsxMTE1LDEwIEBAIHdlYmtpdC5vcmcvYi84NDU4OSBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRtbCBbIEZhaWx1cmUgXQog
IyBJbmRleGVkREIgaXMgbm90IHlldCBlbmFibGVkLgogQnVnKEVGTCkgc3RvcmFnZS9pbmRleGVk
ZGIKIEJ1ZyhFRkwpIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYgorQnVnKEVGTCkgaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWFsbG93ZWQuaHRtbAorQnVn
KEVGTCkgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwKK0J1
ZyhFRkwpIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGIt
YWxsb3dlZC5odG1sCitCdWcoRUZMKSBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13
b3JrZXItaW5kZXhlZGRiLmh0bWwKIAogIyBRdW90YSBBUEkgaXMgbm90IHN1cHBvcnRlZC4KIEJ1
ZyhFRkwpIHN0b3JhZ2Uvc3RvcmFnZWluZm8tbWlzc2luZy1hcmd1bWVudHMuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNub3dsZW9wYXJkL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCA2MTRiNTQxMTFhNDNkMDdlMmE1MjgxYmQwMjkyNjA1NTA3YTliMGNjLi44YzBhMTY2
NjQ0MDg3NmU0OWU5ZjhmOWE3YTRlYTIyNzhkODQwZTQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtc25vd2xlb3BhcmQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTM0LDYg
KzEzNCwxMCBAQCBmYXN0L3JlcGFpbnQvZml4ZWQtbW92ZS1hZnRlci1rZXlib2FyZC1zY3JvbGwu
aHRtbAogIyBJbmRleGVkREIgaXMgbm90IHlldCBlbmFibGVkLgogc3RvcmFnZS9pbmRleGVkZGIK
IGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYgoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4taW5kZXhlZGRiLWFsbG93ZWQuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1vcmlnaW4taW5kZXhlZGRiLmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2lu
LXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwKIAogIyBQaGlsaXAncyBjYW52YXMgdGVzdHMg
dGhhdCBmYWlsIG9uIFNub3dMZW9wYXJkIG9ubHkKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZ3Jh
ZGllbnQuaW50ZXJwb2xhdGUub3ZlcmxhcC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGY4YmU1OWEyMTc0YWRmNzcyMjlkZjBlMjM3OWJjNDE1MTY4
ZDY2MjQuLjJkZTQyYjRhN2MyYTU3MWZkZWQwZTU0ZjBlODk5YTMyYzQ1NDQzODMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMzUsNiArMTM1LDEwIEBA
IGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLm91dHNpZGVzb3VyY2UuaHRtbAogIyBJ
bmRleGVkREIgaXMgbm90IHlldCBlbmFibGVkLgogc3RvcmFnZS9pbmRleGVkZGIKIGh0dHAvdGVz
dHMvaW5zcGVjdG9yL2luZGV4ZWRkYgoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
aW5kZXhlZGRiLWFsbG93ZWQuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4t
aW5kZXhlZGRiLmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1p
bmRleGVkZGItYWxsb3dlZC5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13
b3JrZXItaW5kZXhlZGRiLmh0bWwKIAogIyBUaGlzIHBvcnQgZG9lc24ndCBzdXBwb3J0IERldmlj
ZU1vdGlvbiBvciBEZXZpY2VPcmllbnRhdGlvbi4KIGZhc3QvZG9tL0RldmljZU1vdGlvbgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODYzMmI1YTQ0NTJlMTNl
M2JjYjk3YmY2M2E4MWJhNjQ3MjY0YjE4Yy4uNmM0ZjI2NjkyY2IxNGVjODY4NmQ1ZWNiOTIxNjU1
YTNiMTMyNjI0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMTQsNiArMTE0LDEwIEBAIGZhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9rZXlib2FyZC1ldmVu
dC1jb25zdHJ1Y3Rvci5odG1sCiAjIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKSBpcyBkaXNhYmxl
ZC4KIHN0b3JhZ2UvaW5kZXhlZGRiCiBodHRwL3Rlc3RzL2luc3BlY3Rvci9pbmRleGVkZGIKK2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwKK2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sCitodHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbAoraHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sCiAKIGlu
c3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1hbmltYXRpb24tZnJhbWUuaHRtbAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDJlYWMwYzU5ZTE4MmU0NTJl
ZmY2ZjVkOTIwMjI2NmQzOWQ2MmRmNTguLmIyMWM5ZThmMjE0NGEyMDc4NWVlM2Q0ZDFjM2NkZTg3
M2M1MWE3ZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMDkzLDYgKzEwOTMsMTAgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJrZXItZGVz
Y3JpcHRpb24uaHRtbAogIyBJbmRleGVkREIgaXMgbm90IHlldCBlbmFibGVkLgogc3RvcmFnZS9p
bmRleGVkZGIKIGh0dHAvdGVzdHMvaW5zcGVjdG9yL2luZGV4ZWRkYgoraHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLWFsbG93ZWQuaHRtbAoraHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZGRiLmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5odG1sCitodHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0bWwKIAogIyBTdG9yYWdlVHJhY2tl
ciBpcyBub3QgZW5hYmxlZC4KIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFn
ZXRyYWNrZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IGNhZDQ4ZmRkNjc2MDQ1ZTNmNjljMzM4MThkNWVkODE5MDNmYmUwNDAuLmE1NzBh
ZmUxMDdmNGQyYTQ1MmY0ODMyMDFiZmNiYzEyZGVjZDEyOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTYxOCw2ICsxNjE4LDEwIEBA
IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctbWFya2VyLWRlc2NyaXB0aW9uLmh0bWwKICMgSW5k
ZXhlZERCIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHN0b3JhZ2UvaW5kZXhlZGRiCiBodHRwL3Rlc3Rz
L2luc3BlY3Rvci9pbmRleGVkZGIKK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWlu
ZGV4ZWRkYi1hbGxvd2VkLmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWlu
ZGV4ZWRkYi5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5k
ZXhlZGRiLWFsbG93ZWQuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29y
a2VyLWluZGV4ZWRkYi5odG1sCiAKICMgU3RvcmFnZVRyYWNrZXIgaXMgbm90IGVuYWJsZWQuCiBz
dG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>