<?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>80269</bug_id>
          
          <creation_ts>2012-03-05 05:32:45 -0800</creation_ts>
          <short_desc>[Microdata] Implement PropertyNodeList interface.</short_desc>
          <delta_ts>2012-07-24 00:56:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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>80696</dependson>
    
    <dependson>81761</dependson>
          <blocked>68609</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Arko Saha">arko</reporter>
          <assigned_to name="Arko Saha">arko</assigned_to>
          <cc>abarth</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>570591</commentid>
    <comment_count>0</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-03-05 05:32:45 -0800</bug_when>
    <thetext>1. Implement PropertyNodeList interface. HTMLPropertiesCollection.namedItem(name) must return PropertyNodeList object.
2. Implement propertyNodeList.getValues() method. Returns an array of various values. Its values are obtained from the &quot;itemValue&quot; DOM property of each of the elements represented by the object, in tree order.

Specfication : http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#propertynodelist</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570596</commentid>
    <comment_count>1</comment_count>
      <attachid>130101</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-03-05 05:43:22 -0800</bug_when>
    <thetext>Created attachment 130101
Work in progress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571779</commentid>
    <comment_count>2</comment_count>
      <attachid>130364</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-03-06 05:48:05 -0800</bug_when>
    <thetext>Created attachment 130364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571948</commentid>
    <comment_count>3</comment_count>
      <attachid>130364</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-06 10:18:31 -0800</bug_when>
    <thetext>Comment on attachment 130364
Patch

Can we implement this without custom bindings?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571949</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-06 10:19:22 -0800</bug_when>
    <thetext>It seems like whenever someone needs to do something with arrays, they resort to custom bindings.  We should be able to improve the code generator so that it can handle these array cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583991</commentid>
    <comment_count>5</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-03-21 04:32:15 -0700</bug_when>
    <thetext>After r111416 &lt;http://trac.webkit.org/changeset/111416&gt; revision I was trying to remove the custom binding for [Custom] Array getValues() and using sequence&lt;MicroDataItemValue&gt; getValues(). It works for JS bindings but for Gobject bindings it is trying to include #include &quot;sequence&lt;MicroDataItemValue&gt;.h&quot; in WebKitDOMPropertyNodeList.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584122</commentid>
    <comment_count>6</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-21 07:40:17 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; After r111416 &lt;http://trac.webkit.org/changeset/111416&gt; revision I was trying to remove the custom binding for [Custom] Array getValues() and using sequence&lt;MicroDataItemValue&gt; getValues(). It works for JS bindings but for Gobject bindings it is trying to include #include &quot;sequence&lt;MicroDataItemValue&gt;.h&quot; in WebKitDOMPropertyNodeList.cpp.

The issue was already fixed at r111535, thanks to Vineet. Sorry for the trouble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584152</commentid>
    <comment_count>7</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-03-21 08:26:34 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; 
&gt; The issue was already fixed at r111535, thanks to Vineet. Sorry for the trouble.

Thanks Vineet for the quick fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>584211</commentid>
    <comment_count>8</comment_count>
      <attachid>133059</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-03-21 09:21:32 -0700</bug_when>
    <thetext>Created attachment 133059
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589346</commentid>
    <comment_count>9</comment_count>
      <attachid>133059</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-27 15:27:14 -0700</bug_when>
    <thetext>Comment on attachment 133059
Updated patch

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

&gt; Source/WebCore/bindings/js/JSMicroDataItemValueCustom.cpp:49
&gt; +    return jsString(exec, itemValue-&gt;getString());

Why does this return a string?  We have a MicroDataItemValue.idl in this file.  I would have expected it to return a MicroDataItemValue...

&gt; Source/WebCore/bindings/v8/custom/V8MicroDataItemValueCustom.cpp:48
&gt; +    return v8String(itemValue-&gt;getString());

Same question here.

&gt; Source/WebCore/dom/PropertyNodeList.cpp:48
&gt; +        m_propertyValue.append(element-&gt;itemValue());

Is this going to keep appending to m_propertyValue every time this function is called?  That doesn&apos;t seem right.

&gt; Source/WebCore/dom/PropertyNodeList.cpp:66
&gt; +Node* PropertyNodeList::itemWithName(const AtomicString&amp; id) const

itemWithName not itemWithID ?

&gt; Source/WebCore/dom/PropertyNodeList.h:52
&gt; +    PropertyValueArray getValues();

Is this going to thrash the RefCounts of the MicroDataItemValue?

&gt; Source/WebCore/dom/PropertyNodeList.h:61
&gt; +    PropertyNodeList(Vector&lt;RefPtr&lt;Node&gt; &gt;&amp; nodes)

Please add the explicit keyword.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592095</commentid>
    <comment_count>10</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-03-30 05:40:38 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; Source/WebCore/bindings/js/JSMicroDataItemValueCustom.cpp:49
&gt; &gt; +    return jsString(exec, itemValue-&gt;getString());
&gt; 
&gt; Why does this return a string?  We have a MicroDataItemValue.idl in this file.  I would have expected it to return a MicroDataItemValue...

According to the spec http://www.whatwg.org/specs/web-apps/current-work/multipage/common-dom-interfaces.html#propertynodelist : getValues() method object must return a newly constructed array whose values are the values obtained from the itemValue DOM property. itemValue of a property depends on the element. Please check http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#dom-itemvalue.

For an example:

&lt;div itemscope&gt;
&lt;a itemprop=&quot;foo&quot; href=&quot;webkit.org&quot;&gt;&lt;/a&gt;
&lt;p itemprop=&quot;foo&quot; itemscope&gt;&lt;span itemprop=&quot;quz&quot;&gt;&lt;/p&gt;
&lt;/div&gt;

itemValue will return node itself if it has an itemscope attribute specified.
If the element is an &lt;a&gt; element then it will return src content attribute string.

&lt;div&gt; defines the microdata item with two properties &lt;a&gt; and &lt;p&gt;
Here itemValue of the first property is string &quot;webkit.org&quot; and second property is node &lt;p&gt; as it has itemscope attribute.
getValues() will return an array which contains a string and a node i.e, &apos;webkit.org&apos; and &apos;&lt;p&gt;&apos;.

&gt; &gt; Source/WebCore/dom/PropertyNodeList.cpp:48
&gt; &gt; +        m_propertyValue.append(element-&gt;itemValue());
&gt; 
&gt; Is this going to keep appending to m_propertyValue every time this function is called?  That doesn&apos;t seem right.

Ok, we will cache m_propertyValue. so that it does not append to m_propertyValue every time.

&gt; &gt; Source/WebCore/dom/PropertyNodeList.cpp:66
&gt; &gt; +Node* PropertyNodeList::itemWithName(const AtomicString&amp; id) const
&gt; 
&gt; itemWithName not itemWithID ?

Ok will modify.
 
&gt; &gt; Source/WebCore/dom/PropertyNodeList.h:52
&gt; &gt; +    PropertyValueArray getValues();
&gt; 
&gt; Is this going to thrash the RefCounts of the MicroDataItemValue?

I could not get this. Can you please explain a bit.

&gt; &gt; Source/WebCore/dom/PropertyNodeList.h:61
&gt; &gt; +    PropertyNodeList(Vector&lt;RefPtr&lt;Node&gt; &gt;&amp; nodes)
&gt; 
&gt; Please add the explicit keyword.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592500</commentid>
    <comment_count>11</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-30 14:25:50 -0700</bug_when>
    <thetext>FYI, I&apos;m lobbying to kill the getValues method on PropertyNodeList: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-March/035280.html. My preference would be to leave it out of this patch until that discussion is resolved (i.e. only do step 1 from comment 0), but I wouldn&apos;t be too upset if we left it in and removed it later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592642</commentid>
    <comment_count>12</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-30 16:30:05 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; FYI, I&apos;m lobbying to kill the getValues method on PropertyNodeList: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2012-March/035280.html. My preference would be to leave it out of this patch until that discussion is resolved (i.e. only do step 1 from comment 0), but I wouldn&apos;t be too upset if we left it in and removed it later.

Nevermind. I was wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605091</commentid>
    <comment_count>13</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-04-18 14:27:57 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; Source/WebCore/dom/PropertyNodeList.cpp:48
&gt; &gt; +        m_propertyValue.append(element-&gt;itemValue());
&gt; 
&gt; Is this going to keep appending to m_propertyValue every time this function is called?  That doesn&apos;t seem right.

Done!
 
&gt; &gt; Source/WebCore/dom/PropertyNodeList.cpp:66
&gt; &gt; +Node* PropertyNodeList::itemWithName(const AtomicString&amp; id) const
&gt; 
&gt; itemWithName not itemWithID ?

I checked the existing implementation of itemWithID in StaticNodeList and DynamicNodeList. Both used to return the node with the given id from the NodeList. 
 
&gt; &gt; Source/WebCore/dom/PropertyNodeList.h:52
&gt; &gt; +    PropertyValueArray getValues();
&gt; 
&gt; Is this going to thrash the RefCounts of the MicroDataItemValue?

I am not clear about this. WebKitMutationObserver and Console follow the same convension. So I have implemented in the same way.

&gt; &gt; Source/WebCore/dom/PropertyNodeList.h:61
&gt; &gt; +    PropertyNodeList(Vector&lt;RefPtr&lt;Node&gt; &gt;&amp; nodes)
&gt; 
&gt; Please add the explicit keyword.

Done!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>605093</commentid>
    <comment_count>14</comment_count>
      <attachid>137769</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-04-18 14:29:09 -0700</bug_when>
    <thetext>Created attachment 137769
Updated patch

Incorporated review comments..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607307</commentid>
    <comment_count>15</comment_count>
      <attachid>137769</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-21 18:18:47 -0700</bug_when>
    <thetext>Comment on attachment 137769
Updated patch

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

&gt; Source/WebCore/bindings/js/JSNodeListCustom.cpp:75
&gt; +JSValue toJS(ExecState* exec, JSDOMGlobalObject* globalObject, NodeList* nodeList)
&gt; +{
&gt; +    if (!nodeList)
&gt; +        return jsNull();
&gt; +
&gt; +#if ENABLE(MICRODATA)
&gt; +    if (nodeList-&gt;isPropertyNodeList())
&gt; +        return CREATE_DOM_WRAPPER(exec, globalObject, PropertyNodeList, nodeList);
&gt; +#endif
&gt; +
&gt; +    return CREATE_DOM_WRAPPER(exec, globalObject, NodeList, nodeList);
&gt; +}

I&apos;m surprised that we need this code. Doesn&apos;t binding code automatically do this for you?

&gt; Source/WebCore/dom/PropertyNodeList.cpp:50
&gt; +void PropertyNodeList::invalidateCacheIfNeeded() const
&gt; +{
&gt; +    uint64_t docversion = m_nodes[0]-&gt;document()-&gt;domTreeVersion();
&gt; +
&gt; +    if (m_cache.version == docversion)
&gt; +        return;
&gt; +
&gt; +    m_cache.clear();
&gt; +    m_cache.version = docversion;
&gt; +}

This is not a way to implement live node list. You should be using DynamicSubtreeNodeList.
If your class needs to watch outside of the subtree, then take a look at LabelsNodeList.
r- because of this.

&gt; Source/WebCore/dom/PropertyNodeList.h:46
&gt; +    // Adopts the contents of the nodes vector.

This comment repeats the code. Please remove.

&gt; LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element-expected.txt:12
&gt; +Created element of type: div
&gt; +Created element of type: div
&gt; +Set attribute: itemscope, value: itemscope
&gt; +Set attribute: itemref, value: id1
&gt; +Created element of type: meta
&gt; +Set attribute: itemprop, value: foo
&gt; +Set attribute: content, value: test
&gt; +Created element of type: audio
&gt; +Set attribute: itemprop, value: foo
&gt; +Set attribute: src, value: test.com

These debug info is cluttering the test. Can we either interleave these with PASS or if all of these setups are needed, then could you simply hide it?

&gt; LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element.html:29
&gt; +var parentElement = createElement(&apos;div&apos;, {}, &apos;&lt;div id=&quot;id1&quot;&gt;&lt;/div&gt;&apos;);
&gt; +document.body.appendChild(parentElement);
&gt; +var testElement = createElement(&apos;div&apos;, {itemscope: &apos;itemscope&apos;, itemref: &apos;id1&apos;});
&gt; +parentElement.appendChild(testElement);
&gt; +testElement.appendChild(createElement(&apos;meta&apos;, {itemprop: &apos;foo&apos;, content: &apos;test&apos;}));
&gt; +testElement.appendChild(createElement(&apos;audio&apos;, {itemprop: &apos;foo&apos;, src: &apos;test.com&apos;}, &apos;text&apos;));
&gt; +testElement.appendChild(createElement(&apos;embed&apos;, {itemprop:&apos;foo&apos;, src: &apos;test.com&apos;}));
&gt; +testElement.appendChild(createElement(&apos;iframe&apos;, {itemprop: &apos;foo&apos;, src: &apos;test.com&apos;}, &apos;text&apos;));
&gt; +testElement.appendChild(createElement(&apos;img&apos;, {itemprop: &apos;foo&apos;, src: &apos;test.com&apos;}));
&gt; +testElement.appendChild(createElement(&apos;source&apos;, {itemprop: &apos;foo&apos;, src: &apos;test.com&apos;}));
&gt; +testElement.appendChild(createElement(&apos;track&apos;, {itemprop: &apos;foo&apos;, src: &apos;test.com&apos;}));
&gt; +testElement.appendChild(createElement(&apos;video&apos;, {itemprop: &apos;foo&apos;, src: &apos;test.com&apos;}, &apos;text&apos;));
&gt; +testElement.appendChild(createElement(&apos;a&apos;, {itemprop: &apos;foo&apos;, href: &apos;test.com&apos;}, &apos;text&apos;));
&gt; +testElement.appendChild(createElement(&apos;area&apos;, {itemprop: &apos;foo&apos;, href: &apos;test.com&apos;}));
&gt; +testElement.appendChild(createElement(&apos;link&apos;, {itemprop: &apos;foo&apos;, href: &apos;test.com&apos;}));
&gt; +testElement.appendChild(createElement(&apos;object&apos;, {itemprop: &apos;foo&apos;, data: &apos;test.com&apos;}, &apos;text&apos;));
&gt; +parentElement.firstChild.appendChild(createElement(&apos;div&apos;, {itemprop: &apos;foo&apos;}, &apos;&lt;span itemprop=&quot;foo&quot; itemscope&gt;&lt;/span&gt;&apos;));
&gt; +testElement.appendChild(createElement(&apos;p&apos;, {itemprop: &apos;foo&apos;}, &apos;&lt;span itemprop=&quot;foo&quot; itemscope&gt;&lt;/span&gt;&apos;));

Since this setup is done only once, you should just put it as a markup (i.e. HTML).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607308</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-21 18:20:08 -0700</bug_when>
    <thetext>Haraken, could you look at the custom binding code change in NodeList? I don&apos;t think we really need this change. If we DO need this change at the moment, then it&apos;ll be nice to fix the code generator to avoid having to write code like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607320</commentid>
    <comment_count>17</comment_count>
      <attachid>137769</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-21 19:45:21 -0700</bug_when>
    <thetext>Comment on attachment 137769
Updated patch

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

&gt; Source/WebCore/bindings/js/JSNodeListCustom.cpp:72
&gt; +#if ENABLE(MICRODATA)
&gt; +    if (nodeList-&gt;isPropertyNodeList())
&gt; +        return CREATE_DOM_WRAPPER(exec, globalObject, PropertyNodeList, nodeList);
&gt; +#endif

We want to remove this custom binding, but I have two questions before posting more detailed comments:

- The reason why you want to write a custom code for this is to insert &apos;#if ENABLE(MICRODATA)&apos;, right?
- Why did you write a custom code for JSC only? (i.e. why didn&apos;t you write a custom code for V8?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607360</commentid>
    <comment_count>18</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-04-22 10:35:16 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 137769 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137769&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSNodeListCustom.cpp:72
&gt; &gt; +#if ENABLE(MICRODATA)
&gt; &gt; +    if (nodeList-&gt;isPropertyNodeList())
&gt; &gt; +        return CREATE_DOM_WRAPPER(exec, globalObject, PropertyNodeList, nodeList);
&gt; &gt; +#endif
&gt; 
&gt; We want to remove this custom binding, but I have two questions before posting more detailed comments:
&gt; 
&gt; - The reason why you want to write a custom code for this is to insert &apos;#if ENABLE(MICRODATA)&apos;, right?
&gt; - Why did you write a custom code for JSC only? (i.e. why didn&apos;t you write a custom code for V8?)

PropertiesCollection.namedItem() should return ProprtyNodeList object. But without above JS custom binding code namedItem() returns NodeList object. JS code generator does not automatically generate binging code to do the same.
But V8 codegenerater generates appropriate code and V8 returns PropertyNodeList object in this case.
I think we should fix the JS code generator to generate appropriate code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607364</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-22 10:42:51 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; PropertiesCollection.namedItem() should return ProprtyNodeList object. But without above JS custom binding code namedItem() returns NodeList object. JS code generator does not automatically generate binging code to do the same.
&gt; But V8 codegenerater generates appropriate code and V8 returns PropertyNodeList object in this case.
&gt; I think we should fix the JS code generator to generate appropriate code.

That definitely sounds like a bug in JS code generator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607366</commentid>
    <comment_count>20</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-22 10:52:00 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; I think we should fix the JS code generator to generate appropriate code.

Yes! Please edit CodeGeneratorJS.pm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607371</commentid>
    <comment_count>21</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-04-22 12:58:37 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #18)
&gt; &gt; I think we should fix the JS code generator to generate appropriate code.
&gt; 
&gt; Yes! Please edit CodeGeneratorJS.pm.

CodeGeneratorJS.pm generates toJS() code in below case:

if ((!$hasParent or $dataNode-&gt;extendedAttributes-&gt;{&quot;JSGenerateToJSObject&quot;}) and !($dataNode-&gt;extendedAttributes-&gt;{&quot;CustomToJSObject&quot;} or $dataNode-&gt;extendedAttributes-&gt;{&quot;JSCustomToJSObject&quot;})) {...}

Code generator was not generating the toJS() code as PropertyNodeList is derived from NodeList.
So we need to use JSGenerateToJSObject in PropertyNodeList.idl, so that it can generate toJS() code in JSPropertyNodeList.cpp .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607372</commentid>
    <comment_count>22</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-04-22 13:19:50 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Code generator was not generating the toJS() code as PropertyNodeList is derived from NodeList.
&gt; So we need to use JSGenerateToJSObject in PropertyNodeList.idl, so that it can generate toJS() code in JSPropertyNodeList.cpp .

Adding [JSGenerateToJSObject] would make sense. I think that [JSGenerateToJSObject] is assuming such use cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637188</commentid>
    <comment_count>23</comment_count>
      <attachid>144807</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-05-30 07:15:23 -0700</bug_when>
    <thetext>Created attachment 144807
Updated patch

Incorporated review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644466</commentid>
    <comment_count>24</comment_count>
      <attachid>144807</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-08 01:34:48 -0700</bug_when>
    <thetext>Comment on attachment 144807
Updated patch

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

&gt; Source/WebCore/dom/Node.h:644
&gt; +    PassRefPtr&lt;PropertyNodeList&gt; propertyNodeList(const Vector&lt;Element*&gt;&amp;, const String&amp;);
&gt; +    void removeCachedPropertyNodeList(PropertyNodeList*, const String&amp;);

You need to update invalidateNodeListsCacheAfterAttributeChanged and invalidateCachesThatDependOnAttributes. r- because of this.
Also, please add a test case (i.e. modify element attributes and add/remove elements dynamically that demonstrates that the current patch doesn&apos;t update property node list properly).

&gt; Source/WebCore/dom/PropertyNodeList.cpp:46
&gt; +    : DynamicSubtreeNodeList(itemElement-&gt;fastHasAttribute(itemrefAttr) ? static_cast&lt;Node*&gt;(itemElement-&gt;document()) : itemElement)

Here&apos;s no point in casing document() to Node* since Document is a Node.

&gt; Source/WebCore/dom/PropertyNodeList.cpp:63
&gt; +bool PropertyNodeList::isValidAncestor(const Node* testElement, const Node *other) const
&gt; +{
&gt; +    // Return true if other is an ancestor of testElement and any ancestor of testElement
&gt; +    // doesn&apos;t have an itemscope attribute, otherwise false

Instead of adding a comment like this, we should give a descriptive name to the function.
How about elementIsPropertyOfRefElement(const Node* testElement, const Node* refElement)?
Nit: other isn&apos;t a great variable name here.

&gt; Source/WebCore/dom/PropertyNodeList.cpp:69
&gt; +            // Don&apos;t return false if node is the microdata top level item. Microdata top level item
&gt; +            // always have itemscope attribute specified.
&gt; +            if (element-&gt;fastHasAttribute(itemscopeAttr) &amp;&amp; node != m_itemElement)

It&apos;s better to define an inline helper function whose name reflect this comment:
bool ALWAYS_INLINE PropertyNodeList::isTopLevelItem(Node* node)
{
    return node == m_itemElement;
}
Or maybe
bool ALWAYS_INLINE PropertyNodeList::elementDefinesDifferentItem()
{
    return element-&gt;fastHasAttribute(itemscopeAttr) &amp;&amp; node != m_itemElement;
}

&gt; Source/WebCore/dom/PropertyNodeList.cpp:88
&gt; +            validAncestor = true;
&gt; +            break;

I would move the return statement here.

&gt; Source/WebCore/dom/PropertyNodeList.cpp:92
&gt; +    return validAncestor &amp;&amp; testElement-&gt;itemProp()-&gt;tokens().contains(m_name);

And just return false here. You don&apos;t need validAncestor then.

&gt; Source/WebCore/dom/PropertyNodeList.cpp:101
&gt; +        Node* node = item(i);
&gt; +        HTMLElement* element = toHTMLElement(node);
&gt; +        propertyValue.append(element-&gt;itemValue());

I would combine these 3 lines into one:
propertyValue.append(toElement(item(i))-&gt;itemValue());

&gt; Source/WebCore/dom/PropertyNodeList.h:59
&gt; +    virtual bool nodeMatches(Element*) const;

Please use OVERRIDE macro.

&gt; Source/WebCore/html/MicroDataItemValue.idl:36
&gt; +    interface [
&gt; +        Conditional=MICRODATA,
&gt; +        CustomToJSObject
&gt; +    ] MicroDataItemValue {
&gt; +    };

Clever! But we should probably not expose the interface object; OmitConstructor?

&gt; LayoutTests/fast/dom/MicroData/propertynodelist-getvalues-array-values-obtained-from-itemvalue-of-each-element.html:51
&gt; +    shouldBe(&quot;valuesArray[i]&quot;, &quot;propertyNodeList[i].itemValue&quot;);

You should also check that the interface name of each item in the list is not MicroDataItemValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653439</commentid>
    <comment_count>25</comment_count>
      <attachid>148559</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-06-20 07:17:52 -0700</bug_when>
    <thetext>Created attachment 148559
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653444</commentid>
    <comment_count>26</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-06-20 07:23:51 -0700</bug_when>
    <thetext>(In reply to comment #24)

&gt; &gt; Source/WebCore/dom/PropertyNodeList.cpp:46
&gt; &gt; +    : DynamicSubtreeNodeList(itemElement-&gt;fastHasAttribute(itemrefAttr) ? static_cast&lt;Node*&gt;(itemElement-&gt;document()) : itemElement)
&gt; 
&gt; Here&apos;s no point in casing document() to Node* since Document is a Node.

We would require a cast here reason being :
exp1 ? exp2 : exp3
The return type of ternary operator depends on exp2 (Document), and convertibility of exp3 (Element) into exp2 (Document) as per usual/overloaded conversion rules. Otherwise the compiler will complain of  &quot;conditional expression between distinct pointer types &apos;WebCore::Document*&apos; and &apos;WebCore::Element*&apos; &quot;. So we need to make sure both the expressions exp2 and exp3 return same type or atleast safely convertible types by using cast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653485</commentid>
    <comment_count>27</comment_count>
      <attachid>148559</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-20 08:17:01 -0700</bug_when>
    <thetext>Comment on attachment 148559
Updated patch

Attachment 148559 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13001216</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656519</commentid>
    <comment_count>28</comment_count>
      <attachid>149279</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-06-25 06:21:32 -0700</bug_when>
    <thetext>Created attachment 149279
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657333</commentid>
    <comment_count>29</comment_count>
      <attachid>149279</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-26 00:04:16 -0700</bug_when>
    <thetext>Comment on attachment 149279
Updated patch

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

&gt; Source/WebCore/dom/DynamicNodeList.h:72
&gt; -    void invalidateCache() { m_caches.reset(); }
&gt; +    virtual void invalidateCache() { m_caches.reset(); }

We definitely shouldn&apos;t make this a virtual function. This function is hot when inserting/removing nodes. r- because of this.

&gt; Source/WebCore/dom/Node.cpp:2765
&gt; +Vector&lt;Element*&gt; Node::getItemRefElements()
&gt; +{
&gt; +    ASSERT(isElementNode());

Can we add this to Element or HTMLElement instead?
Also, it&apos;s awfully inefficient to return a Vector. Consider making it an out argument (i.e. Vector&lt;Element*&gt;&amp;).

&gt; Source/WebCore/dom/PropertyNodeList.cpp:117
&gt; +    m_caches.rootedAtDocument = toElement(ownerNode())-&gt;fastHasAttribute(itemrefAttr);

We should do this in DynamicNodeList::rootNode() instead. We should probably refactor itemForwardsFromCurrent and itemBackwardsFromCurrent so that they don&apos;t take rootNode() as an argument instead of calling it themselves.

&gt; Source/WebCore/dom/PropertyNodeList.cpp:118
&gt; +    m_isItemRefElementsCacheValid = false;

You should add this to DynamicNodeList::Caches directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661449</commentid>
    <comment_count>30</comment_count>
      <attachid>150414</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-07-02 06:32:07 -0700</bug_when>
    <thetext>Created attachment 150414
Updated patch

Incorporated review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667712</commentid>
    <comment_count>31</comment_count>
      <attachid>151939</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-07-12 06:30:25 -0700</bug_when>
    <thetext>Created attachment 151939
Updated TOT patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667757</commentid>
    <comment_count>32</comment_count>
      <attachid>151939</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-12 07:42:48 -0700</bug_when>
    <thetext>Comment on attachment 151939
Updated TOT patch

Attachment 151939 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13204723</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668039</commentid>
    <comment_count>33</comment_count>
      <attachid>151939</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-12 11:42:50 -0700</bug_when>
    <thetext>Comment on attachment 151939
Updated TOT patch

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

&gt; Source/WebCore/dom/DynamicNodeList.cpp:134
&gt; +bool DynamicNodeList::ownerNodeHasItemRefAttribute() const

Please add inline keyword here.
Also, I would add this right next to rootNode if I were you.

&gt; Source/WebCore/dom/DynamicNodeList.h:52
&gt; +        , m_isRootedAtDocument(rootType == RootedAtDocument)

We don&apos;t need this variable anymore.

&gt; Source/WebCore/dom/PropertyNodeList.cpp:61
&gt; +    return element-&gt;fastHasAttribute(itemscopeAttr) &amp;&amp; element != ownerNode();

I would have included this condition directly in elementIsPropertyOfRefElement.
I don&apos;t think it&apos;s really helping the code clarity.

&gt; Source/WebCore/dom/PropertyNodeList.cpp:68
&gt; +        if (node-&gt;isHTMLElement()) {
&gt; +            if (elementDefinesDifferentItem(toHTMLElement(node)))

Can we combine these if statements?

&gt; Source/WebCore/dom/PropertyNodeList.cpp:108
&gt; +    for (unsigned i = 0; i &lt; length(); ++i)
&gt; +        propertyValue.append(toHTMLElement(item(i))-&gt;itemValue());

This is inefficient when the cache is invalid (we&apos;ll iterate over nodes twice).
It&apos;s probably better to use while and loop as long as item() is returning a non-zero value.

&gt; Source/WebCore/dom/PropertyNodeList.h:61
&gt; +    bool ALWAYS_INLINE elementDefinesDifferentItem(const HTMLElement*) const;

ALWAYS_INLINE here doesn&apos;t do anything.

&gt; Source/WebCore/html/HTMLElement.cpp:1027
&gt; +        if (!processedItemRef-&gt;tokens().contains(id) &amp;&amp; itemRefs-&gt;tokens().contains(id)) {
&gt; +            processedItemRef-&gt;setValue(id);
&gt; +            if (!element-&gt;isDescendantOf(this))
&gt; +                itemRefElements.append(element);
&gt; +        }

I just realized that http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#associating-names-with-items
says that we should be adding the first element that matches the id. Here, we&apos;re adding all elements that match the id.
We should fix that (with a test). In addition, that means we can just use TreeScope::getElementById instead of traversing the entire tree scope.

&gt; Source/WebCore/html/HTMLPropertiesCollection.h:91
&gt;      mutable bool m_hasItemRefElements : 1;

Can we also remove this member variable now that DynamicNodeListCacheBase has isItemRefElementsCacheValid?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668221</commentid>
    <comment_count>34</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-12 14:29:14 -0700</bug_when>
    <thetext>Sorry, you&apos;ll need to rebaseline your patch again after http://trac.webkit.org/changeset/122498.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669057</commentid>
    <comment_count>35</comment_count>
      <attachid>152265</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-07-13 08:22:11 -0700</bug_when>
    <thetext>Created attachment 152265
Updated patch

Incorporated review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669064</commentid>
    <comment_count>36</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-07-13 08:29:51 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 151939 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=151939&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/DynamicNodeList.cpp:134
&gt; &gt; +bool DynamicNodeList::ownerNodeHasItemRefAttribute() const
&gt; 
&gt; Please add inline keyword here.
&gt; Also, I would add this right next to rootNode if I were you.

Done.
 
&gt; &gt; Source/WebCore/dom/DynamicNodeList.h:52
&gt; &gt; +        , m_isRootedAtDocument(rootType == RootedAtDocument)
&gt; 
&gt; We don&apos;t need this variable anymore.

Yes you are right. Removed the variable.
 
&gt; &gt; Source/WebCore/dom/PropertyNodeList.cpp:61
&gt; &gt; +    return element-&gt;fastHasAttribute(itemscopeAttr) &amp;&amp; element != ownerNode();
&gt; 
&gt; I would have included this condition directly in elementIsPropertyOfRefElement.
&gt; I don&apos;t think it&apos;s really helping the code clarity.

Ok.

&gt; &gt; Source/WebCore/dom/PropertyNodeList.cpp:68
&gt; &gt; +        if (node-&gt;isHTMLElement()) {
&gt; &gt; +            if (elementDefinesDifferentItem(toHTMLElement(node)))
&gt; 
&gt; Can we combine these if statements?
&gt; 
&gt; &gt; Source/WebCore/dom/PropertyNodeList.cpp:108
&gt; &gt; +    for (unsigned i = 0; i &lt; length(); ++i)
&gt; &gt; +        propertyValue.append(toHTMLElement(item(i))-&gt;itemValue());
&gt; 
&gt; This is inefficient when the cache is invalid (we&apos;ll iterate over nodes twice).
&gt; It&apos;s probably better to use while and loop as long as item() is returning a non-zero value.

Done.

&gt; &gt; Source/WebCore/dom/PropertyNodeList.h:61
&gt; &gt; +    bool ALWAYS_INLINE elementDefinesDifferentItem(const HTMLElement*) const;
&gt; 
&gt; ALWAYS_INLINE here doesn&apos;t do anything.

ok. Removed inline keyword.
 
&gt; &gt; Source/WebCore/html/HTMLElement.cpp:1027
&gt; &gt; +        if (!processedItemRef-&gt;tokens().contains(id) &amp;&amp; itemRefs-&gt;tokens().contains(id)) {
&gt; &gt; +            processedItemRef-&gt;setValue(id);
&gt; &gt; +            if (!element-&gt;isDescendantOf(this))
&gt; &gt; +                itemRefElements.append(element);
&gt; &gt; +        }
&gt; 
&gt; I just realized that http://www.whatwg.org/specs/web-apps/current-work/multipage/microdata.html#associating-names-with-items
&gt; says that we should be adding the first element that matches the id. Here, we&apos;re adding all elements that match the id.
&gt; We should fix that (with a test). In addition, that means we can just use TreeScope::getElementById instead of traversing the entire tree scope.

Ok. Filed a bug to address this https://bugs.webkit.org/show_bug.cgi?id=91249

&gt; &gt; Source/WebCore/html/HTMLPropertiesCollection.h:91
&gt; &gt;      mutable bool m_hasItemRefElements : 1;
&gt; 
&gt; Can we also remove this member variable now that DynamicNodeListCacheBase has isItemRefElementsCacheValid?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>669220</commentid>
    <comment_count>37</comment_count>
      <attachid>152265</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-13 10:42:58 -0700</bug_when>
    <thetext>Comment on attachment 152265
Updated patch

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

&gt; Source/WebCore/dom/DynamicNodeList.h:109
&gt; +    const NodeListRootType m_rootType;

We shouldn&apos;t do this. It&apos;ll use 32-bits. Please use unsigned with 2 bits and cast as needed. See how m_invalidationType is initialized &amp; usd.

&gt; Source/WebCore/html/HTMLPropertiesCollection.h:87
&gt;      mutable bool m_hasPropertyNameCache : 1;
&gt; -    mutable bool m_hasItemRefElements : 1;
&gt; +    mutable bool m_hasNamedItem : 1;

Why do we need these variables? DynamicNodeListCacheBase already has hasNameCache() and setHasNameCache().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670618</commentid>
    <comment_count>38</comment_count>
      <attachid>152603</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-07-16 13:33:20 -0700</bug_when>
    <thetext>Created attachment 152603
Updated patch

Incorporated review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670625</commentid>
    <comment_count>39</comment_count>
      <attachid>152603</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-16 13:41:14 -0700</bug_when>
    <thetext>Comment on attachment 152603
Updated patch

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

&gt; Source/WebCore/dom/DynamicNodeList.cpp:43
&gt; +    if (rootType() == NodeListIsRootedAtDocumentIfOwnerHasItemrefAttr)

You can directly use m_rootType here or make rootType() private.

&gt; Source/WebCore/dom/DynamicNodeList.h:73
&gt; +    ALWAYS_INLINE NodeListRootType rootType() const { return static_cast&lt;NodeListRootType&gt;(m_rootType); }

This member function shouldn&apos;t be public.

&gt; Source/WebCore/dom/DynamicNodeList.h:115
&gt; +    mutable unsigned m_isItemRefElementsCacheValid : 1;

You should move this to below m_isNameCacheValid since this variable is only used in HTMLCollection.

&gt; Source/WebCore/dom/PropertyNodeList.cpp:84
&gt; +    updateItemRefElements();

We shouldn&apos;t be calling this function here since this function is called for every node during the iteration.
It appears to me that you should wait until my patch for the bug 91335 lands.

&gt; Source/WebCore/html/HTMLElement.cpp:1028
&gt; +    for (Node* current = rootNode-&gt;firstChild(); current; current = current-&gt;traverseNextNode(rootNode)) {
&gt; +        if (!current-&gt;isHTMLElement())
&gt; +            continue;
&gt; +        HTMLElement* element = toHTMLElement(current);
&gt; +
&gt; +        if (element == this) {
&gt; +            itemRefElements.append(element);
&gt; +            continue;
&gt; +        }
&gt; +
&gt; +        const AtomicString&amp; id = element-&gt;getIdAttribute();
&gt; +        if (!processedItemRef-&gt;tokens().contains(id) &amp;&amp; itemRefs-&gt;tokens().contains(id)) {
&gt; +            processedItemRef-&gt;setValue(id);
&gt; +            if (!element-&gt;isDescendantOf(this))
&gt; +                itemRefElements.append(element);
&gt; +        }
&gt; +    }

We should probably fix https://bugs.webkit.org/show_bug.cgi?id=91249 first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675636</commentid>
    <comment_count>40</comment_count>
      <attachid>153779</attachid>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-07-23 05:18:59 -0700</bug_when>
    <thetext>Created attachment 153779
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676391</commentid>
    <comment_count>41</comment_count>
      <attachid>153779</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-23 22:28:31 -0700</bug_when>
    <thetext>Comment on attachment 153779
Updated patch

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

&gt; Source/WebCore/dom/PropertyNodeList.cpp:61
&gt; +                return false;

Nit: Wrong indentation

&gt; Source/WebCore/dom/PropertyNodeList.cpp:99
&gt; +    unsigned offset = 0;
&gt; +
&gt; +    while (Node* node = item(offset)) {

Use for loop instead so that you can declare offset in the for loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676481</commentid>
    <comment_count>42</comment_count>
    <who name="Arko Saha">arko</who>
    <bug_when>2012-07-24 00:56:37 -0700</bug_when>
    <thetext>Landed in: &lt;http://trac.webkit.org/changeset/123434&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130101</attachid>
            <date>2012-03-05 05:43:22 -0800</date>
            <delta_ts>2012-03-06 05:48:05 -0800</delta_ts>
            <desc>Work in progress.</desc>
            <filename>patch_80269.diff</filename>
            <type>text/plain</type>
            <size>23930</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTczNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUyIEBACisyMDEyLTAzLTA1ICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEltcGxlbWVudCBQ
cm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgMS4gSW1wbGVtZW50IFByb3BlcnR5Tm9kZUxpc3QgaW50ZXJmYWNl
LiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24ubmFtZWRJdGVtKG5hbWUpCisgICAgICAgIG11c3Qg
cmV0dXJuIFByb3BlcnR5Tm9kZUxpc3Qgb2JqZWN0LgorICAgICAgICAyLiBJbXBsZW1lbnQgcHJv
cGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QuIFJldHVybnMgYW4gYXJyYXkgb2YgdmFy
aW91cyB2YWx1ZXMuCisgICAgICAgIEl0cyB2YWx1ZXMgYXJlIG9idGFpbmVkIGZyb20gdGhlICJp
dGVtVmFsdWUiIERPTSBwcm9wZXJ0eSBvZiBlYWNoIG9mIHRoZSBlbGVtZW50cworICAgICAgICBy
ZXByZXNlbnRlZCBieSB0aGUgb2JqZWN0LCBpbiB0cmVlIG9yZGVyLgorICAgICAgICBTcGVjOiBo
dHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFn
ZS9jb21tb24tZG9tLWludGVyZmFjZXMuaHRtbCNwcm9wZXJ0eW5vZGVsaXN0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09Q
UyEpCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFVzZVY4LmNt
YWtlOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0
L0dOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTUHJvcGVydHlOb2RlTGlz
dEN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0pTKToKKyAgICAgICAgKFdlYkNvcmU6OkpTUHJvcGVydHlOb2RlTGlzdDo6Z2V0VmFsdWVz
KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhQcm9wZXJ0eU5vZGVMaXN0Q3VzdG9t
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgp
OgorICAgICAgICAoV2ViQ29yZTo6VjhQcm9wZXJ0eU5vZGVMaXN0OjpnZXRWYWx1ZXNDYWxsYmFj
ayk6CisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6Z2V0VmFsdWVz
KToKKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6Omxlbmd0aCk6CisgICAgICAg
IChXZWJDb3JlOjpQcm9wZXJ0eU5vZGVMaXN0OjppdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b3BlcnR5Tm9kZUxpc3Q6Oml0ZW1XaXRoTmFtZSk6CisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9k
ZUxpc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFByb3BlcnR5Tm9k
ZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6YWRvcHQpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6UHJvcGVydHlOb2RlTGlzdCk6CisgICAg
ICAgICogZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb246Om5hbWVkSXRlbSk6CisgICAgICAgICogaHRtbC9IVE1MUHJvcGVydGll
c0NvbGxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5p
ZGw6CisKIDIwMTItMDMtMDUgIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbmNvcnJlY3QgYXBwcm9wcmlhdGVTZWxlY3Rv
ckZvcigpIHN1Z2dlc3Rpb24gZm9yIHdoZW4gYSBET01Ob2RlIGhhcyBtb3JlIHRoYW4gMiBDU1Mg
Y2xhc3NlcwpJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMDk3
MzQpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkp
CkBAIC00NTAsNiArNDUwLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggXAogCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNQcm9ncmVzc0V2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1Byb2dyZXNzRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Byb3BlcnR5
Tm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJvcGVydHlOb2RlTGlz
dC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmFuZ2UuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUmFuZ2VFeGNlcHRpb24uY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTUmFuZ2VFeGNlcHRpb24uaCBcCkBAIC03NDIsNiArNzQ0LDcgQEAgZG9tX2JpbmRpbmdf
aWRscyArPSBcCiAJJChXZWJDb3JlKS9kb20vUG9wU3RhdGVFdmVudC5pZGwgXAogCSQoV2ViQ29y
ZSkvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1Byb2dy
ZXNzRXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbCBcCiAJ
JChXZWJDb3JlKS9kb20vUmFuZ2UuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9SYW5nZUV4Y2VwdGlv
bi5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1NoYWRvd1Jvb3QuaWRsIFwKQEAgLTEyODQsNiArMTI4
Nyw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUG9wU3RhdGVFdmVudEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUHJvY2Vzc2luZ0luc3RydWN0aW9uQ3VzdG9tLmNwcCBcCisJU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNQcm9wZXJ0eU5vZGVMaXN0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNTUUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1FMVHJhbnNhY3Rpb25TeW5jQ3VzdG9tLmNwcCBcCkBAIC0x
NzczLDYgKzE3NzcsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Byb2dyZXNz
RXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUHJvZ3Jlc3NFdmVudC5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Qcm9wZXJ0eU5vZGVMaXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1l
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1Vz
ZVY4LmNtYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCShyZXZp
c2lvbiAxMDk3MzQpCisrKyBTb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQkod29ya2luZyBjb3B5
KQpAQCAtMTM3LDYgKzEzNyw3IEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOE5vdGlmaWNhdGlvbkNlbnRlckN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy92OC9jdXN0b20vVjhQZXJmb3JtYW5jZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9j
dXN0b20vVjhQb3BTdGF0ZUV2ZW50Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OFByb3BlcnR5Tm9kZUxpc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FM
UmVzdWx0U2V0Um93TGlzdEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhTUUxU
cmFuc2FjdGlvbkN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhTUUxUcmFuc2Fj
dGlvblN5bmNDdXN0b20uY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMDk3MzQp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTg0Myw2
ICs4NDMsNyBAQAogICAgICAgICAgICAgJ2RvbS9Qb3BTdGF0ZUV2ZW50LmlkbCcsCiAgICAgICAg
ICAgICAnZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Q
cm9ncmVzc0V2ZW50LmlkbCcsCisgICAgICAgICAgICAnZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRs
JywKICAgICAgICAgICAgICdkb20vUmFuZ2UuaWRsJywKICAgICAgICAgICAgICdkb20vUmFuZ2VF
eGNlcHRpb24uaWRsJywKICAgICAgICAgICAgICdkb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2Fs
bGJhY2suaWRsJywKQEAgLTE3MDcsNiArMTcwOCw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNQbHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNQb3BTdGF0ZUV2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9KU1Byb3BlcnR5Tm9kZUxpc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9qcy9KU1NRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU1NRTFRyYW5zYWN0aW9uQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNTUUxUcmFuc2FjdGlvblN5bmNDdXN0b20uY3BwJywKQEAgLTIwMTQsNiArMjAxNiw3
IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4Tm90aWZpY2F0aW9uQ2VudGVy
Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4UGVyZm9ybWFu
Y2VDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhQb3BTdGF0
ZUV2ZW50Q3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4UHJv
cGVydHlOb2RlTGlzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOFNRTFJlc3VsdFNldFJvd0xpc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFNRTFRyYW5zYWN0aW9uU3luY0N1c3RvbS5jcHAnLApAQCAtNTEz
Myw2ICs1MTM2LDggQEAKICAgICAgICAgICAgICdkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgn
LAogICAgICAgICAgICAgJ2RvbS9Qcm9ncmVzc0V2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9t
L1Byb2dyZXNzRXZlbnQuaCcsCisgICAgICAgICAgICAnZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3Bw
JywKKyAgICAgICAgICAgICdkb20vUHJvcGVydHlOb2RlTGlzdC5oJywKICAgICAgICAgICAgICdk
b20vUXVhbGlmaWVkTmFtZS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9SYW5nZS5jcHAnLAogICAg
ICAgICAgICAgJ2RvbS9SYW5nZUV4Y2VwdGlvbi5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAxMDk3MzQpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCSh3b3JraW5n
IGNvcHkpCkBAIC00MjcsMTAgKzQyNywxMyBAQCBlbmRpZgogCiBpZiBFTkFCTEVfTUlDUk9EQVRB
CiB3ZWJraXRndGtfYnVpbHRfaF9hcGkgKz0gXAotCSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291
cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgKKwkkKHRvcF9i
dWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbi5oIFwKKwkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktp
dERPTVByb3BlcnR5Tm9kZUxpc3QuaAogd2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcyArPSBc
CiAJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5jcHAgXAotCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb25Qcml2YXRlLmgKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uUHJpdmF0ZS5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2Vi
S2l0RE9NUHJvcGVydHlOb2RlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJL
aXRET01Qcm9wZXJ0eU5vZGVMaXN0UHJpdmF0ZS5oCiBlbmRpZgogCiBnZG9tX2NsYXNzX2xpc3Qg
Oj0gJChzdWJzdCBXZWJLaXRET00sLCAkKGZpbHRlci1vdXQgJVByaXZhdGUsICQoYmFzZW5hbWUg
JChub3RkaXIgJCh3ZWJraXRndGtfZ2RvbV9idWlsdF9zb3VyY2VzKSkpKSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUHJvcGVydHlOb2RlTGlzdEN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNQcm9wZXJ0eU5vZGVMaXN0Q3Vz
dG9tLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUHJv
cGVydHlOb2RlTGlzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHks
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1
ZGUgIkpTUHJvcGVydHlOb2RlTGlzdC5oIgorCisjaW5jbHVkZSAiSlNOb2RlLmgiCisjaW5jbHVk
ZSA8cnVudGltZS9KU0FycmF5Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RhdGljIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE1pY3JvRGF0YUl0ZW1WYWx1ZSogaXRlbVZhbHVl
KQoreworICAgIGlmICghaXRlbVZhbHVlKQorICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAg
aWYgKGl0ZW1WYWx1ZS0+aXNOb2RlKCkpCisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgaXRlbVZhbHVlLT5nZXROb2RlKCkpOworICAgIHJldHVybiBqc1N0cmluZyhleGVj
LCBpdGVtVmFsdWUtPmdldFN0cmluZygpKTsKK30KKworSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFByb3BlcnR5
Tm9kZUxpc3QqIHByb3BlcnR5Tm9kZUxpc3QpCit7CisgICAgcmV0dXJuIENSRUFURV9ET01fV1JB
UFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFByb3BlcnR5Tm9kZUxpc3QsIHByb3BlcnR5Tm9kZUxp
c3QpOworfQorCitKU1ZhbHVlIEpTUHJvcGVydHlOb2RlTGlzdDo6Z2V0VmFsdWVzKEV4ZWNTdGF0
ZSogZXhlYykKK3sKKyAgICBjb25zdCBQcm9wZXJ0eVZhbHVlQXJyYXkmIHByb3BlcnR5VmFsdWVz
ID0gc3RhdGljX2Nhc3Q8UHJvcGVydHlOb2RlTGlzdCo+KGltcGwoKSktPmdldFZhbHVlcygpOwor
ICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGxpc3Q7CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHByb3BlcnR5VmFsdWVzLnNpemUoKTsgaSsrKQorICAgICAgICBsaXN0LmFwcGVuZCh0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBwcm9wZXJ0eVZhbHVlc1tpXS5nZXQoKSkpOworCisgICAg
cmV0dXJuIGNvbnN0cnVjdEFycmF5KGV4ZWMsIGdsb2JhbE9iamVjdCgpLCBsaXN0KTsKK30KKwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFByb3BlcnR5Tm9kZUxpc3RDdXN0b20uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFByb3BlcnR5Tm9kZUxpc3RD
dXN0b20uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4UHJvcGVydHlOb2RlTGlzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAq
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
IG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAq
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEg
TW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICog
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRB
KQorCisjaW5jbHVkZSAiVjhQcm9wZXJ0eU5vZGVMaXN0LmgiCisKKyNpbmNsdWRlICJQcm9wZXJ0
eU5vZGVMaXN0LmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhOb2RlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0
b1Y4KE1pY3JvRGF0YUl0ZW1WYWx1ZSogaXRlbVZhbHVlKQoreworICAgIGlmICghaXRlbVZhbHVl
KQorICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKKyAgICBpZiAoaXRlbVZhbHVlLT5pc05vZGUo
KSkKKyAgICAgICAgcmV0dXJuIHRvVjgoaXRlbVZhbHVlLT5nZXROb2RlKCkpOworICAgIHJldHVy
biB2OFN0cmluZyhpdGVtVmFsdWUtPmdldFN0cmluZygpKTsKK30KKwordjg6OkhhbmRsZTx2ODo6
VmFsdWU+IFY4UHJvcGVydHlOb2RlTGlzdDo6Z2V0VmFsdWVzQ2FsbGJhY2soY29uc3Qgdjg6OkFy
Z3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5Qcm9wZXJ0eU5vZGVMaXN0Lmdl
dFZhbHVlc0NhbGxiYWNrIik7CisgICAgUHJvcGVydHlOb2RlTGlzdCogaW1wID0gVjhQcm9wZXJ0
eU5vZGVMaXN0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICBjb25zdCBQcm9wZXJ0eVZh
bHVlQXJyYXkmIHByb3BlcnR5VmFsdWVzID0gaW1wLT5nZXRWYWx1ZXMoKTsKKyAgICB2ODo6SGFu
ZGxlPHY4OjpBcnJheT4gcmVzdWx0ID0gdjg6OkFycmF5OjpOZXcocHJvcGVydHlWYWx1ZXMuc2l6
ZSgpKTsKKyAgICBpbnQgaW5kZXggPSAwOworICAgIFByb3BlcnR5VmFsdWVBcnJheTo6Y29uc3Rf
aXRlcmF0b3IgZW5kID0gcHJvcGVydHlWYWx1ZXMuZW5kKCk7CisgICAgZm9yIChQcm9wZXJ0eVZh
bHVlQXJyYXk6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBwcm9wZXJ0eVZhbHVlcy5iZWdpbigpOyBp
dGVyICE9IGVuZDsgKytpdGVyKQorICAgICAgICByZXN1bHQtPlNldCh2ODo6SW50ZWdlcjo6TmV3
KGluZGV4KyspLCB0b1Y4KGl0ZXItPmdldCgpKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
UHJvcGVydHlOb2RlTGlzdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
UHJvcGVydHlOb2RlTGlzdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xE
RVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUg
IlByb3BlcnR5Tm9kZUxpc3QuaCIKKworI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKKyNpbmNs
dWRlICJIVE1MRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Byb3BlcnR5VmFs
dWVBcnJheSBQcm9wZXJ0eU5vZGVMaXN0OjpnZXRWYWx1ZXMoKQoreworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbV9ub2Rlcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoIW1fbm9kZXNb
aV0tPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIEhU
TUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudChtX25vZGVzW2ldLmdldCgpKTsKKyAg
ICAgICAgbV9wcm9wZXJ0eVZhbHVlLmFwcGVuZChlbGVtZW50LT5pdGVtVmFsdWUoKSk7CisgICAg
fQorCisgICAgcmV0dXJuIG1fcHJvcGVydHlWYWx1ZTsKK30KKwordW5zaWduZWQgUHJvcGVydHlO
b2RlTGlzdDo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ub2Rlcy5zaXplKCk7Cit9
CisKK05vZGUqIFByb3BlcnR5Tm9kZUxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7
CisgICAgaWYgKGluZGV4IDwgbV9ub2Rlcy5zaXplKCkpCisgICAgICAgIHJldHVybiBtX25vZGVz
W2luZGV4XS5nZXQoKTsKKyAgICByZXR1cm4gMDsKK30KKworTm9kZSogUHJvcGVydHlOb2RlTGlz
dDo6aXRlbVdpdGhOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpIGNvbnN0Cit7CisgICAgc2l6
ZV90IGxlbmd0aCA9IG1fbm9kZXMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG1fbm9kZXNbaV0uZ2V0KCk7Cisg
ICAgICAgIGlmIChub2RlLT5oYXNJRCgpICYmIHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKS0+
Z2V0SWRBdHRyaWJ1dGUoKSA9PSBpZCkKKyAgICAgICAgICAgIHJldHVybiBub2RlOworICAgIH0K
KworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9k
ZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlz
dC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3Qu
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAx
MiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAq
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVp
dGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUHJvcGVydHlO
b2RlTGlzdF9oCisjZGVmaW5lIFByb3BlcnR5Tm9kZUxpc3RfaAorCisjaWYgRU5BQkxFKE1JQ1JP
REFUQSkKKyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKyNpbmNsdWRlICJOb2RlTGlz
dC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1pY3JvRGF0YUl0
ZW1WYWx1ZT4gPiBQcm9wZXJ0eVZhbHVlQXJyYXk7CisKK2NsYXNzIFByb3BlcnR5Tm9kZUxpc3Qg
OiBwdWJsaWMgTm9kZUxpc3QgeworcHVibGljOgorICAgIC8vIEFkb3B0cyB0aGUgY29udGVudHMg
b2YgdGhlIG5vZGVzIHZlY3Rvci4KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVM
aXN0PiBhZG9wdChWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIG5vZGVzKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9wZXJ0eU5vZGVMaXN0KG5vZGVzKSk7CisgICAgfQorCisg
ICAgUHJvcGVydHlWYWx1ZUFycmF5IGdldFZhbHVlcygpOworCisgICAgdmlydHVhbCB1bnNpZ25l
ZCBsZW5ndGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIE5vZGUqIGl0ZW0odW5zaWduZWQgaW5kZXgp
IGNvbnN0OworICAgIHZpcnR1YWwgTm9kZSogaXRlbVdpdGhOYW1lKGNvbnN0IEF0b21pY1N0cmlu
ZyYpIGNvbnN0OworCitwcml2YXRlOgorICAgIFByb3BlcnR5Tm9kZUxpc3QoVmVjdG9yPFJlZlB0
cjxOb2RlPiA+JiBub2RlcykKKyAgICB7CisgICAgICAgIG1fbm9kZXMuc3dhcChub2Rlcyk7Cisg
ICAgfQorCisgICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IG1fbm9kZXM7CisgICAgUHJvcGVydHlW
YWx1ZUFycmF5IG1fcHJvcGVydHlWYWx1ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCisKKyNlbmRpZiAvLyBTdGF0aWNOb2RlTGlz
dF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRsCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRsCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIE1vdG9yb2xh
IE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBt
b2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcK
KyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworCisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUlDUk9EQVRBLAorICAgICAgICBJbmRleGVkR2V0
dGVyLAorICAgICAgICBKU0N1c3RvbVRvSlNPYmplY3QKKyAgICBdIFByb3BlcnR5Tm9kZUxpc3Qg
OiBOb2RlTGlzdCB7CisKKyAgICAgICAgW0N1c3RvbV0gQXJyYXkgZ2V0VmFsdWVzKCk7CisgICAg
ICAgIE5vZGUgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICB9OworfQpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAko
cmV2aXNpb24gMTA5NzM0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSAi
SFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb2RlLmgi
Ci0jaW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eU5vZGVMaXN0
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTczLDcgKzE3Myw3IEBAIFBhc3NSZWZQ
dHI8RE9NU3RyaW5nTGlzdD4gSFRNTFByb3BlcnRpZXMKICAgICByZXR1cm4gbV9wcm9wZXJ0eU5h
bWVzOwogfQogCi1QYXNzUmVmUHRyPE5vZGVMaXN0PiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246
Om5hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CitQYXNzUmVmUHRyPFByb3BlcnR5
Tm9kZUxpc3Q+IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6bmFtZWRJdGVtKGNvbnN0IFN0cmlu
ZyYgbmFtZSkgY29uc3QKIHsKICAgICBpZiAoIWJhc2UoKS0+aXNIVE1MRWxlbWVudCgpIHx8ICF0
b0hUTUxFbGVtZW50KGJhc2UoKSktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpCiAg
ICAgICByZXR1cm4gMDsKQEAgLTE5Miw4ICsxOTIsNyBAQCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBI
VE1MUHJvcGVydGllc0NvbGxlCiAgICAgICAgICAgICBuYW1lZEl0ZW1zLmFwcGVuZChtX3Byb3Bl
cnRpZXNbaV0pOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBIVE1MNSBzcGVjaWZpZXMgdGhhdCB0
aGlzIHNob3VsZCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdC4KLSAgICByZXR1cm4gbmFtZWRJdGVt
cy5pc0VtcHR5KCkgPyAwIDogU3RhdGljTm9kZUxpc3Q6OmFkb3B0KG5hbWVkSXRlbXMpOworICAg
IHJldHVybiBuYW1lZEl0ZW1zLmlzRW1wdHkoKSA/IDAgOiBQcm9wZXJ0eU5vZGVMaXN0OjphZG9w
dChuYW1lZEl0ZW1zKTsKIH0KIAogYm9vbCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Omhhc05h
bWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDEwOTcz
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRE9NU3RyaW5nTGlzdDsKK2NsYXNzIFByb3BlcnR5Tm9kZUxpc3Q7CiAKIGNsYXNzIEhUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbiA6IHB1YmxpYyBIVE1MQ29sbGVjdGlvbiB7CiBwdWJsaWM6CkBA
IC01MCw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4g
bmFtZXMoKSBjb25zdDsKIAotICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IG5hbWVkSXRlbShjb25z
dCBTdHJpbmcmKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+IG5hbWVk
SXRlbShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBib29sIGhhc05hbWVkSXRlbShjb25zdCBB
dG9taWNTdHJpbmcmKSBjb25zdDsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwJKHJldmlzaW9uIDEwOTczNCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzksOCArMzksNiBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIE5vZGUg
aXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nTGlzdCBuYW1lczsKLQotICAgICAgICAvLyBGSVhNRTogSFRNTDUgc3BlY2lm
aWVzIHRoYXQgdGhpcyBzaG91bGQgcmV0dXJuIFByb3BlcnR5Tm9kZUxpc3QuCi0gICAgICAgIE5v
ZGVMaXN0IG5hbWVkSXRlbShpbiBET01TdHJpbmcgbmFtZSk7CisgICAgICAgIFByb3BlcnR5Tm9k
ZUxpc3QgbmFtZWRJdGVtKGluIERPTVN0cmluZyBuYW1lKTsKICAgICB9OwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130364</attachid>
            <date>2012-03-06 05:48:05 -0800</date>
            <delta_ts>2012-03-21 09:21:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_80269.diff</filename>
            <type>text/plain</type>
            <size>36652</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTkxMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTAzLTA2ICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEltcGxlbWVudCBQ
cm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU3BlYzogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjcHJv
cGVydHlub2RlbGlzdAorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvZ2V0dmFs
dWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5z
LXByb3BlcnR5bm9kZWxpc3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAorCisgICAgICAgICogR05VbWFr
ZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBVc2VWOC5jbWFrZToKKyAgICAgICAgKiBXZWJDb3Jl
Lmd5cGk6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbToKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU1Byb3BlcnR5Tm9kZUxpc3RDdXN0b20uY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgIChXZWJD
b3JlOjpKU1Byb3BlcnR5Tm9kZUxpc3Q6OmdldFZhbHVlcyk6IFJldHVybnMgYSBuZXdseSBjb25z
dHJ1Y3RlZCBhcnJheSBmcm9tIFByb3BlcnR5VmFsdWVBcnJheS4KKyAgICAgICAgKiBiaW5kaW5n
cy92OC9jdXN0b20vVjhQcm9wZXJ0eU5vZGVMaXN0Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAoV2ViQ29yZTo6
VjhQcm9wZXJ0eU5vZGVMaXN0OjpnZXRWYWx1ZXNDYWxsYmFjayk6IERpdHRvLgorICAgICAgICAq
IGRvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6OmdldFZhbHVlcyk6IFJldHVybnMgUHJv
cGVydHlWYWx1ZUFycmF5IHdob3NlIHZhbHVlcyBhcmUgb2J0YWluZWQgZnJvbSB0aGUKKyAgICAg
ICAgaXRlbVZhbHVlIERPTSBwcm9wZXJ0eSBvZiBlYWNoIG9mIHRoZSBlbGVtZW50cyByZXByZXNl
bnRlZCBieSB0aGUgb2JqZWN0LCBpbiB0cmVlIG9yZGVyLgorICAgICAgICAoV2ViQ29yZTo6UHJv
cGVydHlOb2RlTGlzdDo6bGVuZ3RoKTogUmV0dXJucyB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIFBy
b3BlcnR5Tm9kZUxpc3QuCisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eU5vZGVMaXN0OjppdGVt
KTogUmV0dXJucyBhbiBpbmRleCBpdGVtIGluIHRoZSBQcm9wZXJ0eU5vZGVMaXN0LgorICAgICAg
ICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6aXRlbVdpdGhOYW1lKTogUmV0dXJucyB0aGUg
aXRlbSB3aXRoIGdpdmVuIGlkIGluIHRoZSBQcm9wZXJ0eU5vZGVMaXN0LgorICAgICAgICAqIGRv
bS9Qcm9wZXJ0eU5vZGVMaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChQcm9wZXJ0eU5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6
OmFkb3B0KToKKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6OlByb3BlcnR5Tm9k
ZUxpc3QpOgorICAgICAgICAqIGRvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbDogQWRkZWQuCisgICAg
ICAgICogaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpuYW1lZEl0ZW0pOiBSZXR1cm4gUHJvcGVydHlO
b2RlTGlzdCBvYmplY3QgaW5zdGVhZCBvZiBOb2RlTGlzdC4KKyAgICAgICAgKiBodG1sL0hUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24pOgorICAgICAgICAqIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uLmlkbDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTItMDMtMDYg
IEFsZXhhbmRlciBGw6Zyw7h5ICA8YWxleGFuZGVyLmZhZXJveUBub2tpYS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIFRpbGVUaW1lciB0eXBlZGVmIGZyb20gdGhlIHRpbGVkIGJhY2tpbmcgc3RvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTA5OTEyKQorKysg
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNDUy
LDYgKzQ1Miw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTUHJvZ3Jlc3NFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9n
cmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9wZXJ0eU5vZGVMaXN0
LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Byb3BlcnR5Tm9kZUxpc3QuaCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JhbmdlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1JhbmdlRXhjZXB0aW9uLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Jh
bmdlRXhjZXB0aW9uLmggXApAQCAtNzQ0LDYgKzc0Niw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0g
XAogCSQoV2ViQ29yZSkvZG9tL1BvcFN0YXRlRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9Qcm9ncmVzc0V2ZW50
LmlkbCBcCisJJChXZWJDb3JlKS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwgXAogCSQoV2ViQ29y
ZSkvZG9tL1JhbmdlLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsIFwK
IAkkKFdlYkNvcmUpL2RvbS9TaGFkb3dSb290LmlkbCBcCkBAIC0xMzQxLDYgKzEzNDQsNyBAQCB3
ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUGx1Z2lu
RWxlbWVudEZ1bmN0aW9ucy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1BvcFN0
YXRlRXZlbnRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Byb2Nl
c3NpbmdJbnN0cnVjdGlvbkN1c3RvbS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTUHJvcGVydHlOb2RlTGlzdEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTU1FMUmVzdWx0U2V0Um93TGlzdEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1NRTFRyYW5zYWN0aW9uU3luY0N1c3RvbS5jcHAgXApAQCAtMTgzMCw2ICsx
ODM0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vz
c2luZ0luc3RydWN0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9ncmVzc0V2ZW50LmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Byb2dyZXNzRXZlbnQuaCBcCisJU291cmNlL1dlYkNv
cmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVy
dHlOb2RlTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmggXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9SYW5nZUJvdW5kYXJ5UG9pbnQuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFr
ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Vc2VWOC5jbWFrZQkocmV2aXNpb24gMTA5
OTEyKQorKysgU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTE0
MSw2ICsxNDEsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy92
OC9jdXN0b20vVjhOb3RpZmljYXRpb25DZW50ZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4UGVyZm9ybWFuY2VDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4
UG9wU3RhdGVFdmVudEN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhQcm9wZXJ0
eU5vZGVMaXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFNRTFJlc3VsdFNl
dFJvd0xpc3RDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMVHJhbnNhY3Rp
b25DdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4U1FMVHJhbnNhY3Rpb25TeW5j
Q3VzdG9tLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTA5OTEyKQorKysgU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC04NTksNiArODU5LDcg
QEAKICAgICAgICAgICAgICdkb20vUG9wU3RhdGVFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2Rv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsJywKICAgICAgICAgICAgICdkb20vUHJvZ3Jlc3NF
dmVudC5pZGwnLAorICAgICAgICAgICAgJ2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbCcsCiAgICAg
ICAgICAgICAnZG9tL1JhbmdlLmlkbCcsCiAgICAgICAgICAgICAnZG9tL1JhbmdlRXhjZXB0aW9u
LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlk
bCcsCkBAIC0xNzU0LDYgKzE3NTUsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTUGx1
Z2luRWxlbWVudEZ1bmN0aW9ucy5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTUG9w
U3RhdGVFdmVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTUHJvY2Vz
c2luZ0luc3RydWN0aW9uQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNQ
cm9wZXJ0eU5vZGVMaXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNT
UUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMv
SlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pT
U1FMVHJhbnNhY3Rpb25TeW5jQ3VzdG9tLmNwcCcsCkBAIC0yMDYxLDYgKzIwNjMsNyBAQAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5vdGlmaWNhdGlvbkNlbnRlckN1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFBlcmZvcm1hbmNlQ3VzdG9t
LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4UG9wU3RhdGVFdmVudEN1
c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFByb3BlcnR5Tm9k
ZUxpc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhTUUxS
ZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4U1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhTUUxUcmFuc2FjdGlvblN5bmNDdXN0b20uY3BwJywKQEAgLTUxMzgsNiArNTE0
MSw4IEBACiAgICAgICAgICAgICAnZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oJywKICAgICAg
ICAgICAgICdkb20vUHJvZ3Jlc3NFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Qcm9ncmVz
c0V2ZW50LmgnLAorICAgICAgICAgICAgJ2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcCcsCisgICAg
ICAgICAgICAnZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaCcsCiAgICAgICAgICAgICAnZG9tL1F1YWxp
ZmllZE5hbWUuY3BwJywKICAgICAgICAgICAgICdkb20vUmFuZ2UuY3BwJywKICAgICAgICAgICAg
ICdkb20vUmFuZ2VFeGNlcHRpb24uY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2dvYmplY3QvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTA5OTEyKQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpA
QCAtNDI3LDEwICs0MjcsMTMgQEAgZW5kaWYKIAogaWYgRU5BQkxFX01JQ1JPREFUQQogd2Via2l0
Z3RrX2J1aWx0X2hfYXBpICs9IFwKLQkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCisJJCh0b3BfYnVpbGRkaXIp
L0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24u
aCBcCisJJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Qcm9w
ZXJ0eU5vZGVMaXN0LmgKIHdlYmtpdGd0a19nZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIFwK
LQlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
UHJpdmF0ZS5oCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvblByaXZhdGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVBy
b3BlcnR5Tm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NUHJv
cGVydHlOb2RlTGlzdFByaXZhdGUuaAogZW5kaWYKIAogZ2RvbV9jbGFzc19saXN0IDo9ICQoc3Vi
c3QgV2ViS2l0RE9NLCwgJChmaWx0ZXItb3V0ICVQcml2YXRlLCAkKGJhc2VuYW1lICQobm90ZGly
ICQod2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcykpKSkpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1Byb3BlcnR5Tm9kZUxpc3RDdXN0b20uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUHJvcGVydHlOb2RlTGlzdEN1c3RvbS5jcHAJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1Byb3BlcnR5Tm9k
ZUxpc3RDdXN0b20uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29w
eXJpZ2h0IChjKSAyMDEyIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vcgorICogb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQK
KyAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJKU1By
b3BlcnR5Tm9kZUxpc3QuaCIKKworI2luY2x1ZGUgIkpTTm9kZS5oIgorI2luY2x1ZGUgPHJ1bnRp
bWUvSlNBcnJheS5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBNaWNyb0RhdGFJdGVtVmFsdWUqIGl0ZW1WYWx1ZSkKK3sKKyAg
ICBpZiAoIWl0ZW1WYWx1ZSkKKyAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworICAgIGlmIChpdGVt
VmFsdWUtPmlzTm9kZSgpKQorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3Qs
IGl0ZW1WYWx1ZS0+Z2V0Tm9kZSgpKTsKKyAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgaXRlbVZh
bHVlLT5nZXRTdHJpbmcoKSk7Cit9CisKK0pTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOb2RlTGlzdCogcHJv
cGVydHlOb2RlTGlzdCkKK3sKKyAgICByZXR1cm4gQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGds
b2JhbE9iamVjdCwgUHJvcGVydHlOb2RlTGlzdCwgcHJvcGVydHlOb2RlTGlzdCk7Cit9CisKK0pT
VmFsdWUgSlNQcm9wZXJ0eU5vZGVMaXN0OjpnZXRWYWx1ZXMoRXhlY1N0YXRlKiBleGVjKQorewor
ICAgIGNvbnN0IFByb3BlcnR5VmFsdWVBcnJheSYgcHJvcGVydHlWYWx1ZXMgPSBzdGF0aWNfY2Fz
dDxQcm9wZXJ0eU5vZGVMaXN0Kj4oaW1wbCgpKS0+Z2V0VmFsdWVzKCk7CisgICAgTWFya2VkQXJn
dW1lbnRCdWZmZXIgbGlzdDsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcHJvcGVydHlW
YWx1ZXMuc2l6ZSgpOyBpKyspCisgICAgICAgIGxpc3QuYXBwZW5kKHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0KCksIHByb3BlcnR5VmFsdWVzW2ldLmdldCgpKSk7CisKKyAgICByZXR1cm4gY29uc3Ry
dWN0QXJyYXkoZXhlYywgZ2xvYmFsT2JqZWN0KCksIGxpc3QpOworfQorCit9CisKKyNlbmRpZiAv
LyBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4UHJvcGVydHlOb2RlTGlzdEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4UHJvcGVydHlOb2RlTGlzdEN1c3RvbS5jcHAJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhQcm9wZXJ0
eU5vZGVMaXN0Q3VzdG9tLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoYykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0CisgKiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisKKyNpbmNsdWRl
ICJWOFByb3BlcnR5Tm9kZUxpc3QuaCIKKworI2luY2x1ZGUgIlByb3BlcnR5Tm9kZUxpc3QuaCIK
KyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOE5vZGUuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoTWljcm9EYXRh
SXRlbVZhbHVlKiBpdGVtVmFsdWUpCit7CisgICAgaWYgKCFpdGVtVmFsdWUpCisgICAgICAgIHJl
dHVybiB2ODo6TnVsbCgpOworICAgIGlmIChpdGVtVmFsdWUtPmlzTm9kZSgpKQorICAgICAgICBy
ZXR1cm4gdG9WOChpdGVtVmFsdWUtPmdldE5vZGUoKSk7CisgICAgcmV0dXJuIHY4U3RyaW5nKGl0
ZW1WYWx1ZS0+Z2V0U3RyaW5nKCkpOworfQorCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhQcm9w
ZXJ0eU5vZGVMaXN0OjpnZXRWYWx1ZXNDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdz
KQoreworICAgIElOQ19TVEFUUygiRE9NLlByb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVzQ2FsbGJh
Y2siKTsKKyAgICBQcm9wZXJ0eU5vZGVMaXN0KiBpbXAgPSBWOFByb3BlcnR5Tm9kZUxpc3Q6OnRv
TmF0aXZlKGFyZ3MuSG9sZGVyKCkpOworICAgIGNvbnN0IFByb3BlcnR5VmFsdWVBcnJheSYgcHJv
cGVydHlWYWx1ZXMgPSBpbXAtPmdldFZhbHVlcygpOworICAgIHY4OjpIYW5kbGU8djg6OkFycmF5
PiByZXN1bHQgPSB2ODo6QXJyYXk6Ok5ldyhwcm9wZXJ0eVZhbHVlcy5zaXplKCkpOworICAgIGlu
dCBpbmRleCA9IDA7CisgICAgUHJvcGVydHlWYWx1ZUFycmF5Ojpjb25zdF9pdGVyYXRvciBlbmQg
PSBwcm9wZXJ0eVZhbHVlcy5lbmQoKTsKKyAgICBmb3IgKFByb3BlcnR5VmFsdWVBcnJheTo6Y29u
c3RfaXRlcmF0b3IgaXRlciA9IHByb3BlcnR5VmFsdWVzLmJlZ2luKCk7IGl0ZXIgIT0gZW5kOyAr
K2l0ZXIpCisgICAgICAgIHJlc3VsdC0+U2V0KHY4OjpJbnRlZ2VyOjpOZXcoaW5kZXgrKyksIHRv
VjgoaXRlci0+Z2V0KCkpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9CisKKyNlbmRpZiAv
LyBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9k
ZUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVM
aXN0LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVM
aXN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
YykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IK
KyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiUHJvcGVydHlOb2Rl
TGlzdC5oIgorCisjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgorI2luY2x1ZGUgIkhUTUxFbGVt
ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUHJvcGVydHlWYWx1ZUFycmF5IFByb3Bl
cnR5Tm9kZUxpc3Q6OmdldFZhbHVlcygpCit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBt
X25vZGVzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmICghbV9ub2Rlc1tpXS0+aXNIVE1MRWxl
bWVudCgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgSFRNTEVsZW1lbnQqIGVs
ZW1lbnQgPSB0b0hUTUxFbGVtZW50KG1fbm9kZXNbaV0uZ2V0KCkpOworICAgICAgICBtX3Byb3Bl
cnR5VmFsdWUuYXBwZW5kKGVsZW1lbnQtPml0ZW1WYWx1ZSgpKTsKKyAgICB9CisKKyAgICByZXR1
cm4gbV9wcm9wZXJ0eVZhbHVlOworfQorCit1bnNpZ25lZCBQcm9wZXJ0eU5vZGVMaXN0OjpsZW5n
dGgoKSBjb25zdAoreworICAgIHJldHVybiBtX25vZGVzLnNpemUoKTsKK30KKworTm9kZSogUHJv
cGVydHlOb2RlTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAoaW5k
ZXggPCBtX25vZGVzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fbm9kZXNbaW5kZXhdLmdldCgp
OworICAgIHJldHVybiAwOworfQorCitOb2RlKiBQcm9wZXJ0eU5vZGVMaXN0OjppdGVtV2l0aE5h
bWUoY29uc3QgQXRvbWljU3RyaW5nJiBpZCkgY29uc3QKK3sKKyAgICBzaXplX3QgbGVuZ3RoID0g
bV9ub2Rlcy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkg
eworICAgICAgICBOb2RlKiBub2RlID0gbV9ub2Rlc1tpXS5nZXQoKTsKKyAgICAgICAgaWYgKG5v
ZGUtPmhhc0lEKCkgJiYgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpLT5nZXRJZEF0dHJpYnV0
ZSgpID09IGlkKQorICAgICAgICAgICAgcmV0dXJuIG5vZGU7CisgICAgfQorCisgICAgcmV0dXJu
IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNS
T0RBVEEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIE1vdG9yb2xhIE1v
YmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2Rp
ZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAq
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQcm9wZXJ0eU5vZGVMaXN0X2gKKyNk
ZWZpbmUgUHJvcGVydHlOb2RlTGlzdF9oCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1
ZGUgIk1pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorI2luY2x1ZGUgIk5vZGVMaXN0LmgiCisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCit0eXBlZGVmIFZlY3RvcjxSZWZQdHI8TWljcm9EYXRhSXRlbVZhbHVlPiA+IFBy
b3BlcnR5VmFsdWVBcnJheTsKKworY2xhc3MgUHJvcGVydHlOb2RlTGlzdCA6IHB1YmxpYyBOb2Rl
TGlzdCB7CitwdWJsaWM6CisgICAgLy8gQWRvcHRzIHRoZSBjb250ZW50cyBvZiB0aGUgbm9kZXMg
dmVjdG9yLgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+IGFkb3B0KFZl
Y3RvcjxSZWZQdHI8Tm9kZT4gPiYgbm9kZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFByb3BlcnR5Tm9kZUxpc3Qobm9kZXMpKTsKKyAgICB9CisKKyAgICBQcm9wZXJ0eVZh
bHVlQXJyYXkgZ2V0VmFsdWVzKCk7CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNv
bnN0OworICAgIHZpcnR1YWwgTm9kZSogaXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CisgICAg
dmlydHVhbCBOb2RlKiBpdGVtV2l0aE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CisK
K3ByaXZhdGU6CisgICAgUHJvcGVydHlOb2RlTGlzdChWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIG5v
ZGVzKQorICAgIHsKKyAgICAgICAgbV9ub2Rlcy5zd2FwKG5vZGVzKTsKKyAgICB9CisKKyAgICBW
ZWN0b3I8UmVmUHRyPE5vZGU+ID4gbV9ub2RlczsKKyAgICBQcm9wZXJ0eVZhbHVlQXJyYXkgbV9w
cm9wZXJ0eVZhbHVlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKE1JQ1JPREFUQSkKKworI2VuZGlmIC8vIFN0YXRpY05vZGVMaXN0X2gKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwK
KyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwK
KyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3Jv
bGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQor
ICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAg
ICBDb25kaXRpb25hbD1NSUNST0RBVEEsCisgICAgICAgIEluZGV4ZWRHZXR0ZXIsCisgICAgICAg
IEpTQ3VzdG9tVG9KU09iamVjdAorICAgIF0gUHJvcGVydHlOb2RlTGlzdCA6IE5vZGVMaXN0IHsK
KworICAgICAgICBbQ3VzdG9tXSBBcnJheSBnZXRWYWx1ZXMoKTsKKyAgICAgICAgTm9kZSBpdGVt
KGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1
bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICB9OworfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMTA5OTEyKQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSAiU3RhdGlj
Tm9kZUxpc3QuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eU5vZGVMaXN0LmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMTczLDcgKzE3Myw3IEBAIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4g
SFRNTFByb3BlcnRpZXMKICAgICByZXR1cm4gbV9wcm9wZXJ0eU5hbWVzOwogfQogCi1QYXNzUmVm
UHRyPE5vZGVMaXN0PiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5hbWVkSXRlbShjb25zdCBT
dHJpbmcmIG5hbWUpIGNvbnN0CitQYXNzUmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+IEhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbjo6bmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKIHsK
ICAgICBpZiAoIWJhc2UoKS0+aXNIVE1MRWxlbWVudCgpIHx8ICF0b0hUTUxFbGVtZW50KGJhc2Uo
KSktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpCiAgICAgICByZXR1cm4gMDsKQEAg
LTE5Miw4ICsxOTIsNyBAQCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBIVE1MUHJvcGVydGllc0NvbGxl
CiAgICAgICAgICAgICBuYW1lZEl0ZW1zLmFwcGVuZChtX3Byb3BlcnRpZXNbaV0pOwogICAgIH0K
IAotICAgIC8vIEZJWE1FOiBIVE1MNSBzcGVjaWZpZXMgdGhhdCB0aGlzIHNob3VsZCByZXR1cm4g
UHJvcGVydHlOb2RlTGlzdC4KLSAgICByZXR1cm4gbmFtZWRJdGVtcy5pc0VtcHR5KCkgPyAwIDog
U3RhdGljTm9kZUxpc3Q6OmFkb3B0KG5hbWVkSXRlbXMpOworICAgIHJldHVybiBuYW1lZEl0ZW1z
LmlzRW1wdHkoKSA/IDAgOiBQcm9wZXJ0eU5vZGVMaXN0OjphZG9wdChuYW1lZEl0ZW1zKTsKIH0K
IAogYm9vbCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Omhhc05hbWVkSXRlbShjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDEwOTkxMikKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4
LDYgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRE9NU3RyaW5nTGlzdDsK
K2NsYXNzIFByb3BlcnR5Tm9kZUxpc3Q7CiAKIGNsYXNzIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
biA6IHB1YmxpYyBIVE1MQ29sbGVjdGlvbiB7CiBwdWJsaWM6CkBAIC01MCw3ICs1MSw3IEBAIHB1
YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gbmFtZXMoKSBjb25zdDsKIAot
ICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IG5hbWVkSXRlbShjb25zdCBTdHJpbmcmKSBjb25zdDsK
KyAgICBQYXNzUmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+IG5hbWVkSXRlbShjb25zdCBTdHJpbmcm
KSBjb25zdDsKICAgICBib29sIGhhc05hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmKSBjb25z
dDsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbi5pZGwJKHJldmlzaW9uIDEwOTkxMikKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzks
OCArMzksNiBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIE5vZGUgaXRlbShpbiB1bnNpZ25lZCBs
b25nIGluZGV4KTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCBu
YW1lczsKLQotICAgICAgICAvLyBGSVhNRTogSFRNTDUgc3BlY2lmaWVzIHRoYXQgdGhpcyBzaG91
bGQgcmV0dXJuIFByb3BlcnR5Tm9kZUxpc3QuCi0gICAgICAgIE5vZGVMaXN0IG5hbWVkSXRlbShp
biBET01TdHJpbmcgbmFtZSk7CisgICAgICAgIFByb3BlcnR5Tm9kZUxpc3QgbmFtZWRJdGVtKGlu
IERPTVN0cmluZyBuYW1lKTsKICAgICB9OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbAkocmV2aXNpb24gMTA5OTEyKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNzMsNiArMzczLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAg
ICAgICAgIGF0dHJpYnV0ZSBEb2N1bWVudENvbnN0cnVjdG9yIERvY3VtZW50OwogICAgICAgICBh
dHRyaWJ1dGUgTm9kZUNvbnN0cnVjdG9yIE5vZGU7CiAgICAgICAgIGF0dHJpYnV0ZSBOb2RlTGlz
dENvbnN0cnVjdG9yIE5vZGVMaXN0OworICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1J
Q1JPREFUQV0gUHJvcGVydHlOb2RlTGlzdENvbnN0cnVjdG9yIFByb3BlcnR5Tm9kZUxpc3Q7CiAg
ICAgICAgIGF0dHJpYnV0ZSBOYW1lZE5vZGVNYXBDb25zdHJ1Y3RvciBOYW1lZE5vZGVNYXA7CiAg
ICAgICAgIGF0dHJpYnV0ZSBDaGFyYWN0ZXJEYXRhQ29uc3RydWN0b3IgQ2hhcmFjdGVyRGF0YTsK
ICAgICAgICAgYXR0cmlidXRlIEF0dHJDb25zdHJ1Y3RvciBBdHRyOwpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTA5OTEyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTItMDMtMDYgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgor
CisgICAgICAgIE1pY3JvZGF0YTogSW1wbGVtZW50IFByb3BlcnR5Tm9kZUxpc3QgaW50ZXJmYWNl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAyNjkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0
ZXN0IGNhc2VzIGZvciBQcm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZSBhbmQgUHJvcGVydHlOb2Rl
TGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QuCisKKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEv
Z2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVs
ZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEv
Z2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVs
ZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRl
bS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlz
dC1nZXR2YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0Lmh0bWw6IEFkZGVkLgor
CiAyMDEyLTAzLTA2ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHByZXBhcmUgZm9yIGV4dHJhY3RpbmcgU2NyaXB0TWFw
cGluZyBpbXBsZW1lbnRhdGlvbiBmcm9tIERlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1v
YnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9nZXR2YWx1ZXMtYXJyYXkt
dmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvZ2V0dmFs
dWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg0IEBACitUaGlzIHRlc3QgZW5z
dXJlIHRoYXQgUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBhcnJheSByZXR1cm5zIGFuIGFy
cmF5IHdob3NlIHZhbHVzZSBhcmUgb2J0YWluZWQgZnJvbSB0aGUgaXRlbVZhbHVlIERPTSBwcm9w
ZXJ0eSBvZiBlYWNoIG9mIHRoZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSB0aGUgb2JqZWN0LCBp
biB0cmVlIG9yZGVyLgorCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitDcmVhdGVkIGVs
ZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVt
c2NvcGUKK1NldCBhdHRyaWJ1dGU6IGl0ZW1yZWYsIHZhbHVlOiBpZDEKK0NyZWF0ZWQgZWxlbWVu
dCBvZiB0eXBlOiBtZXRhCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0
IGF0dHJpYnV0ZTogY29udGVudCwgdmFsdWU6IHRlc3QKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBl
OiBhdWRpbworU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1
dGU6IHNyYywgdmFsdWU6IHRlc3QuY29tCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZW1iZWQK
K1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBzcmMs
IHZhbHVlOiB0ZXN0LmNvbQorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGlmcmFtZQorU2V0IGF0
dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6
IHRlc3QuY29tCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogaW1nCitTZXQgYXR0cmlidXRlOiBp
dGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdC5jb20K
K0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBzb3VyY2UKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9w
LCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBzcmMsIHZhbHVlOiB0ZXN0LmNvbQorQ3JlYXRl
ZCBlbGVtZW50IG9mIHR5cGU6IHRyYWNrCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6
IGZvbworU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdC5jb20KK0NyZWF0ZWQgZWxlbWVu
dCBvZiB0eXBlOiB2aWRlbworU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1Nl
dCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IHRlc3QuY29tCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlw
ZTogYQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6
IGhyZWYsIHZhbHVlOiB0ZXN0LmNvbQorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGFyZWEKK1Nl
dCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBocmVmLCB2
YWx1ZTogdGVzdC5jb20KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBsaW5rCitTZXQgYXR0cmli
dXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogaHJlZiwgdmFsdWU6IHRl
c3QuY29tCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogb2JqZWN0CitTZXQgYXR0cmlidXRlOiBp
dGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogZGF0YSwgdmFsdWU6IHRlc3QuY29t
CitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwg
dmFsdWU6IGZvbworQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHAKK1NldCBhdHRyaWJ1dGU6IGl0
ZW1wcm9wLCB2YWx1ZTogZm9vCisKK3Byb3BlcnR5IGluZGV4IDAsIHRhZyBESVYKK1BBU1MgdmFs
dWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGlu
ZGV4IDEsIHRhZyBTUEFOCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3Rb
aV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAyLCB0YWcgTUVUQQorUEFTUyB2YWx1ZXNBcnJh
eVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMywg
dGFnIEFVRElPCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRl
bVZhbHVlCitwcm9wZXJ0eSBpbmRleCA0LCB0YWcgRU1CRUQKK1BBU1MgdmFsdWVzQXJyYXlbaV0g
aXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDUsIHRhZyBJ
RlJBTUUKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFs
dWUKK3Byb3BlcnR5IGluZGV4IDYsIHRhZyBJTUcKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJv
cGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDcsIHRhZyBTT1VSQ0UK
K1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3By
b3BlcnR5IGluZGV4IDgsIHRhZyBUUkFDSworUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0
eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggOSwgdGFnIFZJREVPCitQQVNT
IHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0
eSBpbmRleCAxMCwgdGFnIEEKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlz
dFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDExLCB0YWcgQVJFQQorUEFTUyB2YWx1ZXNB
cnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXgg
MTIsIHRhZyBMSU5LCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0u
aXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxMywgdGFnIE9CSkVDVAorUEFTUyB2YWx1ZXNBcnJh
eVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMTQs
IHRhZyBQCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZh
bHVlCitwcm9wZXJ0eSBpbmRleCAxNSwgdGFnIFNQQU4KK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMg
cHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK1BBU1MgdmFsdWVzQXJyYXkubGVuZ3RoIGlz
IDE2CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2dldHZhbHVlcy1hcnJheS12YWx1
ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2dldHZhbHVlcy1hcnJheS12YWx1
ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50Lmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvZ2V0dmFsdWVzLWFycmF5LXZh
bHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgZW5zdXJlIHRoYXQgUHJvcGVydHlOb2RlTGlz
dC5nZXRWYWx1ZXMoKSBhcnJheSByZXR1cm5zIGFuIGFycmF5IHdob3NlIHZhbHVzZSBhcmUgb2J0
YWluZWQgZnJvbSB0aGUgaXRlbVZhbHVlIERPTSBwcm9wZXJ0eSBvZiBlYWNoIG9mIHRoZSBlbGVt
ZW50cyByZXByZXNlbnRlZCBieSB0aGUgb2JqZWN0LCBpbiB0cmVlIG9yZGVyLjwvcD4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBwYXJlbnRFbGVtZW50ID0gY3JlYXRl
RWxlbWVudCgnZGl2Jywge30sICc8ZGl2IGlkPSJpZDEiPjwvZGl2PicpOworZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChwYXJlbnRFbGVtZW50KTsKK3ZhciB0ZXN0RWxlbWVudCA9IGNyZWF0ZUVs
ZW1lbnQoJ2RpdicsIHtpdGVtc2NvcGU6ICdpdGVtc2NvcGUnLCBpdGVtcmVmOiAnaWQxJ30pOwor
cGFyZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0ZXN0RWxlbWVudCk7Cit0ZXN0RWxlbWVudC5hcHBl
bmRDaGlsZChjcmVhdGVFbGVtZW50KCdtZXRhJywge2l0ZW1wcm9wOiAnZm9vJywgY29udGVudDog
J3Rlc3QnfSkpOwordGVzdEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnYXVkaW8n
LCB7aXRlbXByb3A6ICdmb28nLCBzcmM6ICd0ZXN0LmNvbSd9LCAndGV4dCcpKTsKK3Rlc3RFbGVt
ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2VtYmVkJywge2l0ZW1wcm9wOidmb28nLCBz
cmM6ICd0ZXN0LmNvbSd9KSk7Cit0ZXN0RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50
KCdpZnJhbWUnLCB7aXRlbXByb3A6ICdmb28nLCBzcmM6ICd0ZXN0LmNvbSd9LCAndGV4dCcpKTsK
K3Rlc3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2ltZycsIHtpdGVtcHJvcDog
J2ZvbycsIHNyYzogJ3Rlc3QuY29tJ30pKTsKK3Rlc3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0
ZUVsZW1lbnQoJ3NvdXJjZScsIHtpdGVtcHJvcDogJ2ZvbycsIHNyYzogJ3Rlc3QuY29tJ30pKTsK
K3Rlc3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ3RyYWNrJywge2l0ZW1wcm9w
OiAnZm9vJywgc3JjOiAndGVzdC5jb20nfSkpOwordGVzdEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3Jl
YXRlRWxlbWVudCgndmlkZW8nLCB7aXRlbXByb3A6ICdmb28nLCBzcmM6ICd0ZXN0LmNvbSd9LCAn
dGV4dCcpKTsKK3Rlc3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2EnLCB7aXRl
bXByb3A6ICdmb28nLCBocmVmOiAndGVzdC5jb20nfSwgJ3RleHQnKSk7Cit0ZXN0RWxlbWVudC5h
cHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KCdhcmVhJywge2l0ZW1wcm9wOiAnZm9vJywgaHJlZjog
J3Rlc3QuY29tJ30pKTsKK3Rlc3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2xp
bmsnLCB7aXRlbXByb3A6ICdmb28nLCBocmVmOiAndGVzdC5jb20nfSkpOwordGVzdEVsZW1lbnQu
YXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnb2JqZWN0Jywge2l0ZW1wcm9wOiAnZm9vJywgZGF0
YTogJ3Rlc3QuY29tJ30sICd0ZXh0JykpOworcGFyZW50RWxlbWVudC5maXJzdENoaWxkLmFwcGVu
ZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtcHJvcDogJ2Zvbyd9LCAnPHNwYW4gaXRl
bXByb3A9ImZvbyIgaXRlbXNjb3BlPjwvc3Bhbj4nKSk7Cit0ZXN0RWxlbWVudC5hcHBlbmRDaGls
ZChjcmVhdGVFbGVtZW50KCdwJywge2l0ZW1wcm9wOiAnZm9vJ30sICc8c3BhbiBpdGVtcHJvcD0i
Zm9vIiBpdGVtc2NvcGU+PC9zcGFuPicpKTsKKwordmFyIHByb3BlcnR5Tm9kZUxpc3QgPSB0ZXN0
RWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJyk7Cit2YXIgdmFsdWVzQXJyYXkgPSBw
cm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpOworCitkZWJ1ZygnJyk7Citmb3IgKHZhciBpID0g
MDsgaSA8IHByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoOyBpKyspIHsKKyAgICBkZWJ1ZygncHJvcGVy
dHkgaW5kZXggJyArIGkgKyAnLCB0YWcgJyArIHByb3BlcnR5Tm9kZUxpc3RbaV0udGFnTmFtZSk7
CisgICAgc2hvdWxkQmUoInZhbHVlc0FycmF5W2ldIiwgInByb3BlcnR5Tm9kZUxpc3RbaV0uaXRl
bVZhbHVlIik7Cit9CisKK3Nob3VsZEJlKCJ2YWx1ZXNBcnJheS5sZW5ndGgiLCAnMTYnKTsKK2Rv
Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocGFyZW50RWxlbWVudCk7CisKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25h
bWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9w
ZXJ0eW5vZGVsaXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorUHJvcGVydGllc0NvbGxlY3Rp
b24ubmFtZWRJdGVtKG5hbWUpIG11c3QgcmV0dXJuIFByb3BlcnR5Tm9kZUxpc3QuCisKK0NyZWF0
ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6
IGl0ZW1zY29wZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKSBpbnN0
YW5jZW9mIFByb3BlcnR5Tm9kZUxpc3QgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNb
J2ZvbyddIGluc3RhbmNlb2YgUHJvcGVydHlOb2RlTGlzdCBpcyB0cnVlCisKK1Byb3BlcnR5Tm9k
ZUxpc3QgaW50ZXJmYWNlIGluaGVyaXRlZCBmcm9tIHRoZSBOb2RlTGlzdCBpbnRlcmZhY2UuCitQ
QVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpIGluc3RhbmNlb2YgTm9kZUxp
c3QgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3RhbmNlb2YgTm9k
ZUxpc3QgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0t
cmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0
ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+UHJvcGVydGllc0NvbGxlY3Rpb24ubmFtZWRJdGVtKG5hbWUpIG11c3QgcmV0dXJuIFByb3Bl
cnR5Tm9kZUxpc3QuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFy
IGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7aXRlbXNjb3BlOiAnaXRlbXNjb3BlJ30s
ICc8ZGl2IGl0ZW1wcm9wPSJmb28iPjwvZGl2PicpOworCitzaG91bGRCZVRydWUoImVsZW1lbnQu
cHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpIGluc3RhbmNlb2YgUHJvcGVydHlOb2RlTGlzdCIp
Oworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3RhbmNlb2YgUHJv
cGVydHlOb2RlTGlzdCIpOworCitkZWJ1ZygiPGJyPlByb3BlcnR5Tm9kZUxpc3QgaW50ZXJmYWNl
IGluaGVyaXRlZCBmcm9tIHRoZSBOb2RlTGlzdCBpbnRlcmZhY2UuIikKK3Nob3VsZEJlVHJ1ZSgi
ZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykgaW5zdGFuY2VvZiBOb2RlTGlzdCIp
Oworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3RhbmNlb2YgTm9k
ZUxpc3QiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0
dmFsdWVzLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACitQ
cm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCB0ZXN0LgorCitDcmVhdGVkIGVsZW1l
bnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtc2NvcGUsIHZhbHVlOiBpdGVtc2Nv
cGUKKworUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QgbXVzdCByZXR1cm4gYW4g
YXJyYXkuCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpLmdldFZhbHVl
cygpIGluc3RhbmNlb2YgQXJyYXkgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbJ2Zv
byddLmdldFZhbHVlcygpIGluc3RhbmNlb2YgQXJyYXkgaXMgdHJ1ZQorCitQcm9wZXJ0eU5vZGVM
aXN0LmdldFZhbHVlcygpIG11c3QgYWx3YXlzIHJldHVybiBhIG5ld2x5IGNvbnN0cnVjdGVkIGFy
cmF5CitQQVNTIHByb3BlcnRpZXMuZ2V0VmFsdWVzKCkgaXMgbm90IHByb3BlcnRpZXMuZ2V0VmFs
dWVzKCkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1n
ZXR2YWx1ZXMtdGVzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0Lmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2
YWx1ZXMtdGVzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRh
LWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlByb3BlcnR5Tm9kZUxp
c3QuZ2V0VmFsdWVzKCkgbWV0aG9kIHRlc3QuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgordmFyIGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7aXRlbXNjb3Bl
OiAnaXRlbXNjb3BlJ30sICc8ZGl2IGl0ZW1wcm9wPSJmb28iPjwvZGl2PicpOworCitkZWJ1Zygi
PGJyPlByb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVzKCkgbWV0aG9kIG11c3QgcmV0dXJuIGFuIGFy
cmF5LiIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFtZWRJdGVtKCdmb28n
KS5nZXRWYWx1ZXMoKSBpbnN0YW5jZW9mIEFycmF5Iik7CitzaG91bGRCZVRydWUoImVsZW1lbnQu
cHJvcGVydGllc1snZm9vJ10uZ2V0VmFsdWVzKCkgaW5zdGFuY2VvZiBBcnJheSIpOworCitkZWJ1
ZygiPGJyPlByb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVzKCkgbXVzdCBhbHdheXMgcmV0dXJuIGEg
bmV3bHkgY29uc3RydWN0ZWQgYXJyYXkiKTsKK3ZhciBwcm9wZXJ0aWVzID0gZWxlbWVudC5wcm9w
ZXJ0aWVzWydmb28nXTsKK3Nob3VsZE5vdEJlKCJwcm9wZXJ0aWVzLmdldFZhbHVlcygpIiwgInBy
b3BlcnRpZXMuZ2V0VmFsdWVzKCkiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>
<flag name="review"
          id="133346"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133059</attachid>
            <date>2012-03-21 09:21:32 -0700</date>
            <delta_ts>2012-04-18 14:29:09 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_80269_updated.diff</filename>
            <type>text/plain</type>
            <size>40248</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMTU0OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBACisyMDEyLTAzLTIxICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEltcGxlbWVudCBQ
cm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU3BlYzogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjcHJv
cGVydHlub2RlbGlzdAorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvZ2V0dmFs
dWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5z
LXByb3BlcnR5bm9kZWxpc3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAorCisgICAgICAgICogR05VbWFr
ZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogYmluZGlu
Z3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01pY3Jv
RGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjp0b0pTKTogQWRkZWQgdG9KUygpIGN1c3RvbSBtZXRob2QuIFJldHVybnMg
UHJvcGVydHlOb2RlTGlzdCBvciBOb2RlTGlzdCBiYXNlZCBvbiB0aGUKKyAgICAgICAgcmV0dXJu
IHZhbHVlIG9mIGlzUHJvcGVydHlOb2RlTGlzdCgpLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
Tm9kZUxpc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlTGlzdDo6bmFtZUdl
dHRlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBBZGRl
ZCB0b0pTKCkgY3VzdG9tIG1ldGhvZC4gUmV0dXJucyBOb2RlIGlmIGl0ZW1WYWx1ZSBpcyBub2Rl
IGVsc2UgcmV0dXJucyBTdHJpbmcuCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWlj
cm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVjgpOiBBZGRlZCB0b1Y4IGN1c3RvbSBjb2RlLgorICAgICAgICAq
IGRvbS9Ob2RlTGlzdC5oOgorICAgICAgICAoTm9kZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Tm9kZUxpc3Q6OmlzUHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgICogZG9tL05vZGVMaXN0Lmlk
bDoKKyAgICAgICAgKiBkb20vUHJvcGVydHlOb2RlTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eU5vZGVMaXN0OjpnZXRWYWx1ZXMp
OiBSZXR1cm5zIFByb3BlcnR5VmFsdWVBcnJheSB3aG9zZSB2YWx1ZXMgYXJlIG9idGFpbmVkIGZy
b20gdGhlCisgICAgICAgIGl0ZW1WYWx1ZSBET00gcHJvcGVydHkgb2YgZWFjaCBvZiB0aGUgZWxl
bWVudHMgcmVwcmVzZW50ZWQgYnkgdGhlIG9iamVjdCwgaW4gdHJlZSBvcmRlci4KKyAgICAgICAg
KFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6Omxlbmd0aCk6IFJldHVybnMgdGhlIG51bWJlciBv
ZiBub2RlcyBpbiBQcm9wZXJ0eU5vZGVMaXN0LgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlO
b2RlTGlzdDo6aXRlbSk6IFJldHVybnMgYW4gaW5kZXggaXRlbSBpbiB0aGUgUHJvcGVydHlOb2Rl
TGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6Oml0ZW1XaXRoTmFtZSk6
IFJldHVybnMgdGhlIGl0ZW0gd2l0aCBnaXZlbiBpZCBpbiB0aGUgUHJvcGVydHlOb2RlTGlzdC4K
KyAgICAgICAgKiBkb20vUHJvcGVydHlOb2RlTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoUHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9w
ZXJ0eU5vZGVMaXN0OjphZG9wdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eU5vZGVMaXN0
Ojppc1Byb3BlcnR5Tm9kZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlz
dDo6UHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5hbWVkSXRlbSk6IFJl
dHVybiBQcm9wZXJ0eU5vZGVMaXN0IG9iamVjdCBpbnN0ZWFkIG9mIE5vZGVMaXN0LgorICAgICAg
ICAqIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbik6CisgICAgICAgICogaHRtbC9IVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24uaWRsOgorICAgICAgICAqIGh0bWwvTWljcm9EYXRhSXRlbVZh
bHVlLmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDEyLTAz
LTIxICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGV2ZW50IGxpc3RlbmVyIHNlY3Rpb24gZG9lc24ndCBzaG93IGFsbCBldmVu
dCBsaXN0ZW5lcnMgb2YgdGhlIGVsZW1lbnQgYW5jZXN0b3JzCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDExMTU0OSkKKysrIFNvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTM5Miw2ICszOTIsOCBAQCB3ZWJjb3Jl
X2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZXNzYWdlRXZl
bnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3NhZ2VQb3J0LmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3NhZ2VQb3J0LmggXAorCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNaWNyb0RhdGFJdGVtVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTWljcm9EYXRhSXRlbVZhbHVlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb3Vz
ZUV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuaCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uQ2FsbGJhY2suY3BwIFwKQEAgLTQ1NCw2
ICs0NTYsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1Byb2dyZXNzRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJvZ3Jl
c3NFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJvcGVydHlOb2RlTGlzdC5j
cHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9wZXJ0eU5vZGVMaXN0LmggXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSYW5nZS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNSYW5nZUV4Y2VwdGlvbi5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSYW5n
ZUV4Y2VwdGlvbi5oIFwKQEAgLTc1NSw2ICs3NTksNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwK
IAkkKFdlYkNvcmUpL2RvbS9Qb3BTdGF0ZUV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vUHJvZ3Jlc3NFdmVudC5p
ZGwgXAorCSQoV2ViQ29yZSkvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRsIFwKIAkkKFdlYkNvcmUp
L2RvbS9SYW5nZS5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbCBcCiAJ
JChXZWJDb3JlKS9kb20vU2hhZG93Um9vdC5pZGwgXApAQCAtODU5LDYgKzg2NCw3IEBAIGRvbV9i
aW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvaHRtbC9JbWFnZURhdGEuaWRsIFwKIAkkKFdl
YkNvcmUpL2h0bWwvTWVkaWFDb250cm9sbGVyLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL01lZGlh
RXJyb3IuaWRsIFwKKwkkKFdlYkNvcmUpL2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmlkbCBcCiAJ
JChXZWJDb3JlKS9odG1sL1RleHRNZXRyaWNzLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL1RpbWVS
YW5nZXMuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvVmFsaWRpdHlTdGF0ZS5pZGwgXApAQCAtMTM5
Niw2ICsxNDAyLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmggXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVDdXN0b20uY3BwIFwKQEAgLTE4OTksNiArMTkwNiw4IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUHJvZ3Jlc3NFdmVudC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9Qcm9ncmVzc0V2ZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5v
ZGVMaXN0LmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vUXVhbGlmaWVkTmFtZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2VCb3VuZGFyeVBv
aW50LmggXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTExNTQ5KQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC05MzUsNiArOTM1LDcgQEAK
ICAgICAgICAgICAgICdkb20vUG9wU3RhdGVFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsJywKICAgICAgICAgICAgICdkb20vUHJvZ3Jlc3NFdmVu
dC5pZGwnLAorICAgICAgICAgICAgJ2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbCcsCiAgICAgICAg
ICAgICAnZG9tL1JhbmdlLmlkbCcsCiAgICAgICAgICAgICAnZG9tL1JhbmdlRXhjZXB0aW9uLmlk
bCcsCiAgICAgICAgICAgICAnZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbCcs
CkBAIC0xMDQxLDYgKzEwNDIsNyBAQAogICAgICAgICAgICAgJ2h0bWwvSW1hZ2VEYXRhLmlkbCcs
CiAgICAgICAgICAgICAnaHRtbC9NZWRpYUNvbnRyb2xsZXIuaWRsJywKICAgICAgICAgICAgICdo
dG1sL01lZGlhRXJyb3IuaWRsJywKKyAgICAgICAgICAgICdodG1sL01pY3JvRGF0YUl0ZW1WYWx1
ZS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvVGV4dE1ldHJpY3MuaWRsJywKICAgICAgICAgICAg
ICdodG1sL1RpbWVSYW5nZXMuaWRsJywKICAgICAgICAgICAgICdodG1sL1ZhbGlkaXR5U3RhdGUu
aWRsJywKQEAgLTE5MzUsNiArMTkzNyw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNQ
bHVnaW5FbGVtZW50RnVuY3Rpb25zLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNQ
b3BTdGF0ZUV2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNQcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb25DdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTU1FMUmVzdWx0U2V0Um93TGlzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTU1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9KU1NRTFRyYW5zYWN0aW9uU3luY0N1c3RvbS5jcHAnLApAQCAtMjI0MSw2ICsyMjQ0LDcgQEAK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOb3RpZmljYXRpb25DZW50ZXJDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhQZXJmb3JtYW5jZUN1
c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFBvcFN0YXRlRXZl
bnRDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNaWNyb0Rh
dGFJdGVtVmFsdWVDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhTUUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4U1FMVHJhbnNhY3Rpb25DdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9jdXN0b20vVjhTUUxUcmFuc2FjdGlvblN5bmNDdXN0b20uY3BwJywKQEAgLTUxOTcs
NiArNTIwMSw4IEBACiAgICAgICAgICAgICAnZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oJywK
ICAgICAgICAgICAgICdkb20vUHJvZ3Jlc3NFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Q
cm9ncmVzc0V2ZW50LmgnLAorICAgICAgICAgICAgJ2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcCcs
CisgICAgICAgICAgICAnZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaCcsCiAgICAgICAgICAgICAnZG9t
L1F1YWxpZmllZE5hbWUuY3BwJywKICAgICAgICAgICAgICdkb20vUmFuZ2UuY3BwJywKICAgICAg
ICAgICAgICdkb20vUmFuZ2VFeGNlcHRpb24uY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTExNTQ5KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBj
b3B5KQpAQCAtNDI3LDEwICs0MjcsMTMgQEAgZW5kaWYKIAogaWYgRU5BQkxFX01JQ1JPREFUQQog
d2Via2l0Z3RrX2J1aWx0X2hfYXBpICs9IFwKLQkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJj
ZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCisJJCh0b3BfYnVp
bGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24uaCBcCisJJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01Qcm9wZXJ0eU5vZGVMaXN0LmgKIHdlYmtpdGd0a19nZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24u
Y3BwIFwKLQlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uUHJpdmF0ZS5oCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvblByaXZhdGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktp
dERPTVByb3BlcnR5Tm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NUHJvcGVydHlOb2RlTGlzdFByaXZhdGUuaAogZW5kaWYKIAogZ2RvbV9jbGFzc19saXN0IDo9
ICQoc3Vic3QgV2ViS2l0RE9NLCwgJChmaWx0ZXItb3V0ICVQcml2YXRlLCAkKGJhc2VuYW1lICQo
bm90ZGlyICQod2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcykpKSkpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVD
dXN0b20uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNN
aWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBA
CisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6
CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmls
aXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNp
bmNsdWRlICJKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorCisjaW5jbHVkZSAiSlNOb2RlLmgiCisj
aW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTWljcm9EYXRhSXRlbVZhbHVlKiBpdGVtVmFsdWUp
Cit7CisgICAgaWYgKCFpdGVtVmFsdWUpCisgICAgICAgIHJldHVybiBqc051bGwoKTsKKyAgICBp
ZiAoaXRlbVZhbHVlLT5pc05vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBpdGVtVmFsdWUtPmdldE5vZGUoKSk7CisgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMs
IGl0ZW1WYWx1ZS0+Z2V0U3RyaW5nKCkpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUlD
Uk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3Rv
bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlz
dEN1c3RvbS5jcHAJKHJldmlzaW9uIDExMTU0OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTm9kZUxpc3RDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiwxMCBA
QAogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
Lmg+CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIkpTUHJvcGVydHlOb2RlTGlz
dC5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTU3LDQgKzYxLDE3IEBAIEpTVmFsdWUgSlNOb2RlTGlzdDo6bmFtZUdldHRlcihFeGVj
U3RhdGUKICAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgdGhp
c09iai0+aW1wbCgpLT5pdGVtV2l0aE5hbWUoaWRlbnRpZmllclRvQXRvbWljU3RyaW5nKHByb3Bl
cnR5TmFtZSkpKTsKIH0KIAorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9kZUxpc3QqIG5vZGVMaXN0KQoreworICAgIGlmICgh
bm9kZUxpc3QpCisgICAgICAgIHJldHVybiBqc051bGwoKTsKKworI2lmIEVOQUJMRShNSUNST0RB
VEEpCisgICAgaWYgKG5vZGVMaXN0LT5pc1Byb3BlcnR5Tm9kZUxpc3QoKSkKKyAgICAgICAgcmV0
dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFByb3BlcnR5Tm9kZUxp
c3QsIG5vZGVMaXN0KTsKKyNlbmRpZgorCisgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihl
eGVjLCBnbG9iYWxPYmplY3QsIE5vZGVMaXN0LCBub2RlTGlzdCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1p
Y3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0
ZW1WYWx1ZUN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIg
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorCisjaW5jbHVkZSAi
VjhNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKworI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1
ZGUgIlY4Tm9kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZh
bHVlPiB0b1Y4KE1pY3JvRGF0YUl0ZW1WYWx1ZSogaXRlbVZhbHVlKQoreworICAgIGlmICghaXRl
bVZhbHVlKQorICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKKyAgICBpZiAoaXRlbVZhbHVlLT5p
c05vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRvVjgoaXRlbVZhbHVlLT5nZXROb2RlKCkpOworICAg
IHJldHVybiB2OFN0cmluZyhpdGVtVmFsdWUtPmdldFN0cmluZygpKTsKK30KKworfQorCisjZW5k
aWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlTGlz
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlTGlzdC5oCShyZXZpc2lv
biAxMTE1NDkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNDIsNiArNDIsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAKICAgICAg
ICAgLy8gT3RoZXIgbWV0aG9kcyAobm90IHBhcnQgb2YgRE9NKQogICAgICAgICB2aXJ0dWFsIGJv
b2wgaXNEeW5hbWljTm9kZUxpc3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisjaWYgRU5B
QkxFKE1JQ1JPREFUQSkKKyAgICAgICAgdmlydHVhbCBib29sIGlzUHJvcGVydHlOb2RlTGlzdCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKICAgICB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlTGlzdC5pZGwJKHJldmlzaW9uIDExMTU0OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlTGlzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIz
LDcgKzIzLDggQEAgbW9kdWxlIGNvcmUgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIEpTQ3Vz
dG9tSXNSZWFjaGFibGUsCiAgICAgICAgIEluZGV4ZWRHZXR0ZXIsCi0gICAgICAgIE5hbWVkR2V0
dGVyCisgICAgICAgIE5hbWVkR2V0dGVyLAorICAgICAgICBKU0N1c3RvbVRvSlNPYmplY3QKICAg
ICBdIE5vZGVMaXN0IHsKIAogICAgICAgICBOb2RlIGl0ZW0oaW4gW0lzSW5kZXgsT3B0aW9uYWw9
RGVmYXVsdElzVW5kZWZpbmVkXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1l
dDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9i
aWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQor
I2luY2x1ZGUgIlByb3BlcnR5Tm9kZUxpc3QuaCIKKworI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3Qu
aCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1By
b3BlcnR5VmFsdWVBcnJheSBQcm9wZXJ0eU5vZGVMaXN0OjpnZXRWYWx1ZXMoKQoreworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ub2Rlcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAo
IW1fbm9kZXNbaV0tPmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudChtX25vZGVzW2ldLmdl
dCgpKTsKKyAgICAgICAgbV9wcm9wZXJ0eVZhbHVlLmFwcGVuZChlbGVtZW50LT5pdGVtVmFsdWUo
KSk7CisgICAgfQorCisgICAgcmV0dXJuIG1fcHJvcGVydHlWYWx1ZTsKK30KKwordW5zaWduZWQg
UHJvcGVydHlOb2RlTGlzdDo6bGVuZ3RoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9ub2Rlcy5z
aXplKCk7Cit9CisKK05vZGUqIFByb3BlcnR5Tm9kZUxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgp
IGNvbnN0Cit7CisgICAgaWYgKGluZGV4IDwgbV9ub2Rlcy5zaXplKCkpCisgICAgICAgIHJldHVy
biBtX25vZGVzW2luZGV4XS5nZXQoKTsKKyAgICByZXR1cm4gMDsKK30KKworTm9kZSogUHJvcGVy
dHlOb2RlTGlzdDo6aXRlbVdpdGhOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpIGNvbnN0Cit7
CisgICAgc2l6ZV90IGxlbmd0aCA9IG1fbm9kZXMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IG1fbm9kZXNbaV0u
Z2V0KCk7CisgICAgICAgIGlmIChub2RlLT5oYXNJRCgpICYmIHN0YXRpY19jYXN0PEVsZW1lbnQq
Pihub2RlKS0+Z2V0SWRBdHRyaWJ1dGUoKSA9PSBpZCkKKyAgICAgICAgICAgIHJldHVybiBub2Rl
OworICAgIH0KKworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1By
b3BlcnR5Tm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVy
dHlOb2RlTGlzdC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5
Tm9kZUxpc3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoYykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
UHJvcGVydHlOb2RlTGlzdF9oCisjZGVmaW5lIFByb3BlcnR5Tm9kZUxpc3RfaAorCisjaWYgRU5B
QkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKyNpbmNsdWRl
ICJOb2RlTGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1p
Y3JvRGF0YUl0ZW1WYWx1ZT4gPiBQcm9wZXJ0eVZhbHVlQXJyYXk7CisKK2NsYXNzIFByb3BlcnR5
Tm9kZUxpc3QgOiBwdWJsaWMgTm9kZUxpc3QgeworcHVibGljOgorICAgIC8vIEFkb3B0cyB0aGUg
Y29udGVudHMgb2YgdGhlIG5vZGVzIHZlY3Rvci4KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9w
ZXJ0eU5vZGVMaXN0PiBhZG9wdChWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIG5vZGVzKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9wZXJ0eU5vZGVMaXN0KG5vZGVzKSk7Cisg
ICAgfQorCisgICAgUHJvcGVydHlWYWx1ZUFycmF5IGdldFZhbHVlcygpOworCisgICAgdmlydHVh
bCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIE5vZGUqIGl0ZW0odW5zaWdu
ZWQgaW5kZXgpIGNvbnN0OworICAgIHZpcnR1YWwgTm9kZSogaXRlbVdpdGhOYW1lKGNvbnN0IEF0
b21pY1N0cmluZyYpIGNvbnN0OworCisgICAgdmlydHVhbCBib29sIGlzUHJvcGVydHlOb2RlTGlz
dCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworcHJpdmF0ZToKKyAgICBQcm9wZXJ0eU5vZGVM
aXN0KFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgbm9kZXMpCisgICAgeworICAgICAgICBtX25vZGVz
LnN3YXAobm9kZXMpOworICAgIH0KKworICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiBtX25vZGVz
OworICAgIFByb3BlcnR5VmFsdWVBcnJheSBtX3Byb3BlcnR5VmFsdWU7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQorCisjZW5kaWYg
Ly8gU3RhdGljTm9kZUxpc3RfaApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9k
ZUxpc3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVM
aXN0LmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVM
aXN0LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
YykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IK
KyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBjb3Jl
IHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1JQ1JPREFUQSwKKyAg
ICAgICAgSW5kZXhlZEdldHRlciwKKyAgICBdIFByb3BlcnR5Tm9kZUxpc3QgOiBOb2RlTGlzdCB7
CisKKyAgICAgICAgc2VxdWVuY2U8TWljcm9EYXRhSXRlbVZhbHVlPiBnZXRWYWx1ZXMoKTsKKyAg
ICAgICAgTm9kZSBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworCisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICB9OworfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAkocmV2
aXNpb24gMTExNTQ5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSAiSFRN
TEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb2RlLmgiCi0j
aW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eU5vZGVMaXN0Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTczLDcgKzE3Myw3IEBAIFBhc3NSZWZQdHI8
RE9NU3RyaW5nTGlzdD4gSFRNTFByb3BlcnRpZXMKICAgICByZXR1cm4gbV9wcm9wZXJ0eU5hbWVz
OwogfQogCi1QYXNzUmVmUHRyPE5vZGVMaXN0PiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5h
bWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CitQYXNzUmVmUHRyPFByb3BlcnR5Tm9k
ZUxpc3Q+IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6bmFtZWRJdGVtKGNvbnN0IFN0cmluZyYg
bmFtZSkgY29uc3QKIHsKICAgICBpZiAoIWJhc2UoKS0+aXNIVE1MRWxlbWVudCgpIHx8ICF0b0hU
TUxFbGVtZW50KGJhc2UoKSktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpCiAgICAg
ICByZXR1cm4gMDsKQEAgLTE5Miw4ICsxOTIsNyBAQCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBIVE1M
UHJvcGVydGllc0NvbGxlCiAgICAgICAgICAgICBuYW1lZEl0ZW1zLmFwcGVuZChtX3Byb3BlcnRp
ZXNbaV0pOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBIVE1MNSBzcGVjaWZpZXMgdGhhdCB0aGlz
IHNob3VsZCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdC4KLSAgICByZXR1cm4gbmFtZWRJdGVtcy5p
c0VtcHR5KCkgPyAwIDogU3RhdGljTm9kZUxpc3Q6OmFkb3B0KG5hbWVkSXRlbXMpOworICAgIHJl
dHVybiBuYW1lZEl0ZW1zLmlzRW1wdHkoKSA/IDAgOiBQcm9wZXJ0eU5vZGVMaXN0OjphZG9wdChu
YW1lZEl0ZW1zKTsKIH0KIAogYm9vbCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Omhhc05hbWVk
SXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDExMTU0OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHdvcmtp
bmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RE9NU3RyaW5nTGlzdDsKK2NsYXNzIFByb3BlcnR5Tm9kZUxpc3Q7CiAKIGNsYXNzIEhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbiA6IHB1YmxpYyBIVE1MQ29sbGVjdGlvbiB7CiBwdWJsaWM6CkBAIC01
MCw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gbmFt
ZXMoKSBjb25zdDsKIAotICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IG5hbWVkSXRlbShjb25zdCBT
dHJpbmcmKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+IG5hbWVkSXRl
bShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBib29sIGhhc05hbWVkSXRlbShjb25zdCBBdG9t
aWNTdHJpbmcmKSBjb25zdDsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwJKHJldmlzaW9uIDExMTU0OSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzksOCArMzksNiBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIE5vZGUgaXRl
bShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nTGlzdCBuYW1lczsKLQotICAgICAgICAvLyBGSVhNRTogSFRNTDUgc3BlY2lmaWVz
IHRoYXQgdGhpcyBzaG91bGQgcmV0dXJuIFByb3BlcnR5Tm9kZUxpc3QuCi0gICAgICAgIE5vZGVM
aXN0IG5hbWVkSXRlbShpbiBET01TdHJpbmcgbmFtZSk7CisgICAgICAgIFByb3BlcnR5Tm9kZUxp
c3QgbmFtZWRJdGVtKGluIERPTVN0cmluZyBuYW1lKTsKICAgICB9OwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmlkbAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmlkbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0
eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0
aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBN
b3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMg
bWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsKKworICAgIGludGVyZmFjZSBbCisg
ICAgICAgIENvbmRpdGlvbmFsPU1JQ1JPREFUQSwKKyAgICAgICAgQ3VzdG9tVG9KU09iamVjdAor
ICAgIF0gTWljcm9EYXRhSXRlbVZhbHVlIHsKKyAgICB9OworfQorCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAxMTE1NDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3Myw2ICszNzMsNyBAQCBtb2R1bGUg
d2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIERvY3VtZW50Q29uc3RydWN0b3IgRG9jdW1lbnQ7
CiAgICAgICAgIGF0dHJpYnV0ZSBOb2RlQ29uc3RydWN0b3IgTm9kZTsKICAgICAgICAgYXR0cmli
dXRlIE5vZGVMaXN0Q29uc3RydWN0b3IgTm9kZUxpc3Q7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9TUlDUk9EQVRBXSBQcm9wZXJ0eU5vZGVMaXN0Q29uc3RydWN0b3IgUHJvcGVydHlO
b2RlTGlzdDsKICAgICAgICAgYXR0cmlidXRlIE5hbWVkTm9kZU1hcENvbnN0cnVjdG9yIE5hbWVk
Tm9kZU1hcDsKICAgICAgICAgYXR0cmlidXRlIENoYXJhY3RlckRhdGFDb25zdHJ1Y3RvciBDaGFy
YWN0ZXJEYXRhOwogICAgICAgICBhdHRyaWJ1dGUgQXR0ckNvbnN0cnVjdG9yIEF0dHI7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxMTE1NDkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wMy0yMSAgQXJrbyBTYWhhICA8YXJrb0Btb3Rv
cm9sYS5jb20+CisKKyAgICAgICAgTWljcm9kYXRhOiBJbXBsZW1lbnQgUHJvcGVydHlOb2RlTGlz
dCBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MDI2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIHRlc3QgY2FzZXMgZm9yIFByb3BlcnR5Tm9kZUxpc3QgaW50ZXJmYWNlIGFuZCBQ
cm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZC4KKworICAgICAgICAqIGZhc3QvZG9t
L01pY3JvRGF0YS9nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVl
LW9mLWVhY2gtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L01pY3JvRGF0YS9nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVl
LW9mLWVhY2gtZWxlbWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0Rh
dGEvbmFtZWRpdGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0
eW5vZGVsaXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9w
ZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRt
bDogQWRkZWQuCisKIDIwMTItMDMtMjEgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZXZlbnQgbGlzdGVuZXIgc2VjdGlvbiBk
b2Vzbid0IHNob3cgYWxsIGV2ZW50IGxpc3RlbmVycyBvZiB0aGUgZWxlbWVudCBhbmNlc3RvcnMK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9nZXR2YWx1ZXMtYXJyYXktdmFs
dWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL2dldHZhbHVlcy1h
cnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9n
ZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxl
bWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODQgQEAKK1RoaXMgdGVz
dCBlbnN1cmUgdGhhdCBQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIGFycmF5IHJldHVybnMg
YW4gYXJyYXkgd2hvc2UgdmFsdXNlIGFyZSBvYnRhaW5lZCBmcm9tIHRoZSBpdGVtVmFsdWUgRE9N
IHByb3BlcnR5IG9mIGVhY2ggb2YgdGhlIGVsZW1lbnRzIHJlcHJlc2VudGVkIGJ5IHRoZSBvYmpl
Y3QsIGluIHRyZWUgb3JkZXIuCisKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK0NyZWF0
ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6
IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRlbXJlZiwgdmFsdWU6IGlkMQorQ3JlYXRlZCBl
bGVtZW50IG9mIHR5cGU6IG1ldGEKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9v
CitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1ZTogdGVzdAorQ3JlYXRlZCBlbGVtZW50IG9m
IHR5cGU6IGF1ZGlvCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0
dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdC5jb20KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBl
bWJlZAorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6
IHNyYywgdmFsdWU6IHRlc3QuY29tCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogaWZyYW1lCitT
ZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogc3JjLCB2
YWx1ZTogdGVzdC5jb20KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBpbWcKK1NldCBhdHRyaWJ1
dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBzcmMsIHZhbHVlOiB0ZXN0
LmNvbQorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHNvdXJjZQorU2V0IGF0dHJpYnV0ZTogaXRl
bXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IHRlc3QuY29tCitD
cmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogdHJhY2sKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2
YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBzcmMsIHZhbHVlOiB0ZXN0LmNvbQorQ3JlYXRlZCBl
bGVtZW50IG9mIHR5cGU6IHZpZGVvCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZv
bworU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdC5jb20KK0NyZWF0ZWQgZWxlbWVudCBv
ZiB0eXBlOiBhCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJp
YnV0ZTogaHJlZiwgdmFsdWU6IHRlc3QuY29tCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogYXJl
YQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGhy
ZWYsIHZhbHVlOiB0ZXN0LmNvbQorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGxpbmsKK1NldCBh
dHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBocmVmLCB2YWx1
ZTogdGVzdC5jb20KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBvYmplY3QKK1NldCBhdHRyaWJ1
dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBkYXRhLCB2YWx1ZTogdGVz
dC5jb20KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0ZW1w
cm9wLCB2YWx1ZTogZm9vCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogcAorU2V0IGF0dHJpYnV0
ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KKworcHJvcGVydHkgaW5kZXggMCwgdGFnIERJVgorUEFT
UyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVy
dHkgaW5kZXggMSwgdGFnIFNQQU4KK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2Rl
TGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDIsIHRhZyBNRVRBCitQQVNTIHZhbHVl
c0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRl
eCAzLCB0YWcgQVVESU8KK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtp
XS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDQsIHRhZyBFTUJFRAorUEFTUyB2YWx1ZXNBcnJh
eVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggNSwg
dGFnIElGUkFNRQorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0
ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggNiwgdGFnIElNRworUEFTUyB2YWx1ZXNBcnJheVtpXSBp
cyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggNywgdGFnIFNP
VVJDRQorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1
ZQorcHJvcGVydHkgaW5kZXggOCwgdGFnIFRSQUNLCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHBy
b3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCA5LCB0YWcgVklERU8K
K1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3By
b3BlcnR5IGluZGV4IDEwLCB0YWcgQQorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5v
ZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMTEsIHRhZyBBUkVBCitQQVNTIHZh
bHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBp
bmRleCAxMiwgdGFnIExJTksKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlz
dFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDEzLCB0YWcgT0JKRUNUCitQQVNTIHZhbHVl
c0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRl
eCAxNCwgdGFnIFAKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5p
dGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDE1LCB0YWcgU1BBTgorUEFTUyB2YWx1ZXNBcnJheVtp
XSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorUEFTUyB2YWx1ZXNBcnJheS5sZW5n
dGggaXMgMTYKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvZ2V0dmFsdWVzLWFycmF5
LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvZ2V0dmFsdWVzLWFycmF5
LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9nZXR2YWx1ZXMtYXJy
YXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmUgdGhhdCBQcm9wZXJ0eU5v
ZGVMaXN0LmdldFZhbHVlcygpIGFycmF5IHJldHVybnMgYW4gYXJyYXkgd2hvc2UgdmFsdXNlIGFy
ZSBvYnRhaW5lZCBmcm9tIHRoZSBpdGVtVmFsdWUgRE9NIHByb3BlcnR5IG9mIGVhY2ggb2YgdGhl
IGVsZW1lbnRzIHJlcHJlc2VudGVkIGJ5IHRoZSBvYmplY3QsIGluIHRyZWUgb3JkZXIuPC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIHBhcmVudEVsZW1lbnQgPSBj
cmVhdGVFbGVtZW50KCdkaXYnLCB7fSwgJzxkaXYgaWQ9ImlkMSI+PC9kaXY+Jyk7Citkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKHBhcmVudEVsZW1lbnQpOwordmFyIHRlc3RFbGVtZW50ID0gY3Jl
YXRlRWxlbWVudCgnZGl2Jywge2l0ZW1zY29wZTogJ2l0ZW1zY29wZScsIGl0ZW1yZWY6ICdpZDEn
fSk7CitwYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKHRlc3RFbGVtZW50KTsKK3Rlc3RFbGVtZW50
LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ21ldGEnLCB7aXRlbXByb3A6ICdmb28nLCBjb250
ZW50OiAndGVzdCd9KSk7Cit0ZXN0RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KCdh
dWRpbycsIHtpdGVtcHJvcDogJ2ZvbycsIHNyYzogJ3Rlc3QuY29tJ30sICd0ZXh0JykpOwordGVz
dEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnZW1iZWQnLCB7aXRlbXByb3A6J2Zv
bycsIHNyYzogJ3Rlc3QuY29tJ30pKTsKK3Rlc3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVs
ZW1lbnQoJ2lmcmFtZScsIHtpdGVtcHJvcDogJ2ZvbycsIHNyYzogJ3Rlc3QuY29tJ30sICd0ZXh0
JykpOwordGVzdEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnaW1nJywge2l0ZW1w
cm9wOiAnZm9vJywgc3JjOiAndGVzdC5jb20nfSkpOwordGVzdEVsZW1lbnQuYXBwZW5kQ2hpbGQo
Y3JlYXRlRWxlbWVudCgnc291cmNlJywge2l0ZW1wcm9wOiAnZm9vJywgc3JjOiAndGVzdC5jb20n
fSkpOwordGVzdEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgndHJhY2snLCB7aXRl
bXByb3A6ICdmb28nLCBzcmM6ICd0ZXN0LmNvbSd9KSk7Cit0ZXN0RWxlbWVudC5hcHBlbmRDaGls
ZChjcmVhdGVFbGVtZW50KCd2aWRlbycsIHtpdGVtcHJvcDogJ2ZvbycsIHNyYzogJ3Rlc3QuY29t
J30sICd0ZXh0JykpOwordGVzdEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnYScs
IHtpdGVtcHJvcDogJ2ZvbycsIGhyZWY6ICd0ZXN0LmNvbSd9LCAndGV4dCcpKTsKK3Rlc3RFbGVt
ZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2FyZWEnLCB7aXRlbXByb3A6ICdmb28nLCBo
cmVmOiAndGVzdC5jb20nfSkpOwordGVzdEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVu
dCgnbGluaycsIHtpdGVtcHJvcDogJ2ZvbycsIGhyZWY6ICd0ZXN0LmNvbSd9KSk7Cit0ZXN0RWxl
bWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KCdvYmplY3QnLCB7aXRlbXByb3A6ICdmb28n
LCBkYXRhOiAndGVzdC5jb20nfSwgJ3RleHQnKSk7CitwYXJlbnRFbGVtZW50LmZpcnN0Q2hpbGQu
YXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnZGl2Jywge2l0ZW1wcm9wOiAnZm9vJ30sICc8c3Bh
biBpdGVtcHJvcD0iZm9vIiBpdGVtc2NvcGU+PC9zcGFuPicpKTsKK3Rlc3RFbGVtZW50LmFwcGVu
ZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ3AnLCB7aXRlbXByb3A6ICdmb28nfSwgJzxzcGFuIGl0ZW1w
cm9wPSJmb28iIGl0ZW1zY29wZT48L3NwYW4+JykpOworCit2YXIgcHJvcGVydHlOb2RlTGlzdCA9
IHRlc3RFbGVtZW50LnByb3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKTsKK3ZhciB2YWx1ZXNBcnJh
eSA9IHByb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVzKCk7CisKK2RlYnVnKCcnKTsKK2ZvciAodmFy
IGkgPSAwOyBpIDwgcHJvcGVydHlOb2RlTGlzdC5sZW5ndGg7IGkrKykgeworICAgIGRlYnVnKCdw
cm9wZXJ0eSBpbmRleCAnICsgaSArICcsIHRhZyAnICsgcHJvcGVydHlOb2RlTGlzdFtpXS50YWdO
YW1lKTsKKyAgICBzaG91bGRCZSgidmFsdWVzQXJyYXlbaV0iLCAicHJvcGVydHlOb2RlTGlzdFtp
XS5pdGVtVmFsdWUiKTsKK30KKworc2hvdWxkQmUoInZhbHVlc0FycmF5Lmxlbmd0aCIsICcxNicp
OworZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChwYXJlbnRFbGVtZW50KTsKKworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvbmFtZWRpdGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5z
LXByb3BlcnR5bm9kZWxpc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3Qt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACitQcm9wZXJ0aWVzQ29s
bGVjdGlvbi5uYW1lZEl0ZW0obmFtZSkgbXVzdCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdC4KKwor
Q3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2
YWx1ZTogaXRlbXNjb3BlCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2Zvbycp
IGluc3RhbmNlb2YgUHJvcGVydHlOb2RlTGlzdCBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVy
dGllc1snZm9vJ10gaW5zdGFuY2VvZiBQcm9wZXJ0eU5vZGVMaXN0IGlzIHRydWUKKworUHJvcGVy
dHlOb2RlTGlzdCBpbnRlcmZhY2UgaW5oZXJpdGVkIGZyb20gdGhlIE5vZGVMaXN0IGludGVyZmFj
ZS4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykgaW5zdGFuY2VvZiBO
b2RlTGlzdCBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllc1snZm9vJ10gaW5zdGFuY2Vv
ZiBOb2RlTGlzdCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVk
aXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlz
dC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25h
bWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5Qcm9wZXJ0aWVzQ29sbGVjdGlvbi5uYW1lZEl0ZW0obmFtZSkgbXVzdCByZXR1cm4g
UHJvcGVydHlOb2RlTGlzdC48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+
Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtc2NvcGU6ICdpdGVtc2Nv
cGUnfSwgJzxkaXYgaXRlbXByb3A9ImZvbyI+PC9kaXY+Jyk7CisKK3Nob3VsZEJlVHJ1ZSgiZWxl
bWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykgaW5zdGFuY2VvZiBQcm9wZXJ0eU5vZGVM
aXN0Iik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllc1snZm9vJ10gaW5zdGFuY2Vv
ZiBQcm9wZXJ0eU5vZGVMaXN0Iik7CisKK2RlYnVnKCI8YnI+UHJvcGVydHlOb2RlTGlzdCBpbnRl
cmZhY2UgaW5oZXJpdGVkIGZyb20gdGhlIE5vZGVMaXN0IGludGVyZmFjZS4iKQorc2hvdWxkQmVU
cnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKSBpbnN0YW5jZW9mIE5vZGVM
aXN0Iik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllc1snZm9vJ10gaW5zdGFuY2Vv
ZiBOb2RlTGlzdCIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10
ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlz
dC1nZXR2YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUg
QEAKK1Byb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVzKCkgbWV0aG9kIHRlc3QuCisKK0NyZWF0ZWQg
ZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0
ZW1zY29wZQorCitQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCBtdXN0IHJldHVy
biBhbiBhcnJheS4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykuZ2V0
VmFsdWVzKCkgaW5zdGFuY2VvZiBBcnJheSBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGll
c1snZm9vJ10uZ2V0VmFsdWVzKCkgaW5zdGFuY2VvZiBBcnJheSBpcyB0cnVlCisKK1Byb3BlcnR5
Tm9kZUxpc3QuZ2V0VmFsdWVzKCkgbXVzdCBhbHdheXMgcmV0dXJuIGEgbmV3bHkgY29uc3RydWN0
ZWQgYXJyYXkKK1BBU1MgcHJvcGVydGllcy5nZXRWYWx1ZXMoKSBpcyBub3QgcHJvcGVydGllcy5n
ZXRWYWx1ZXMoKQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVs
aXN0LWdldHZhbHVlcy10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0
LWdldHZhbHVlcy10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNy
b2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+UHJvcGVydHlO
b2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QgdGVzdC48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVt
c2NvcGU6ICdpdGVtc2NvcGUnfSwgJzxkaXYgaXRlbXByb3A9ImZvbyI+PC9kaXY+Jyk7CisKK2Rl
YnVnKCI8YnI+UHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QgbXVzdCByZXR1cm4g
YW4gYXJyYXkuIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0o
J2ZvbycpLmdldFZhbHVlcygpIGluc3RhbmNlb2YgQXJyYXkiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxl
bWVudC5wcm9wZXJ0aWVzWydmb28nXS5nZXRWYWx1ZXMoKSBpbnN0YW5jZW9mIEFycmF5Iik7CisK
K2RlYnVnKCI8YnI+UHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtdXN0IGFsd2F5cyByZXR1
cm4gYSBuZXdseSBjb25zdHJ1Y3RlZCBhcnJheSIpOwordmFyIHByb3BlcnRpZXMgPSBlbGVtZW50
LnByb3BlcnRpZXNbJ2ZvbyddOworc2hvdWxkTm90QmUoInByb3BlcnRpZXMuZ2V0VmFsdWVzKCki
LCAicHJvcGVydGllcy5nZXRWYWx1ZXMoKSIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>
<flag name="review"
          id="136917"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137769</attachid>
            <date>2012-04-18 14:29:09 -0700</date>
            <delta_ts>2012-05-30 07:15:23 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_80269_modified.diff</filename>
            <type>text/plain</type>
            <size>40819</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDU1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA0LTE4ICAgQXJrbyBT
YWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgTWljcm9kYXRhOiBJbXBsZW1lbnQg
UHJvcGVydHlOb2RlTGlzdCBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MDI2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFNwZWM6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWIt
YXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL2NvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI3By
b3BlcnR5bm9kZWxpc3QKKworICAgICAgICBUZXN0czogZmFzdC9kb20vTWljcm9EYXRhL25hbWVk
aXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9k
b20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRh
aW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAor
CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogZGRlZCB0b0pTKCkgY3VzdG9t
IG1ldGhvZC4gUmV0dXJucyBQcm9wZXJ0eU5vZGVMaXN0IG9yIE5vZGVMaXN0IGJhc2VkIG9uIHRo
ZQorICAgICAgICByZXR1cm4gdmFsdWUgb2YgaXNQcm9wZXJ0eU5vZGVMaXN0KCkuCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpK
U05vZGVMaXN0OjpuYW1lR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6dG9KUyk6IEFkZGVkIHRvSlMoKSBjdXN0b20gbWV0aG9kLiBSZXR1cm5zIE5vZGUgaWYg
aXRlbVZhbHVlIGlzIG5vZGUgZWxzZSByZXR1cm5zIFN0cmluZy4KKyAgICAgICAgKiBiaW5kaW5n
cy92OC9jdXN0b20vVjhNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6IEFkZGVkIHRvVjggY3VzdG9t
IGNvZGUuCisgICAgICAgICogZG9tL05vZGVMaXN0Lmg6CisgICAgICAgIChOb2RlTGlzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdDo6aXNQcm9wZXJ0eU5vZGVMaXN0KToKKyAgICAgICAg
KiBkb20vTm9kZUxpc3QuaWRsOgorICAgICAgICAqIGRvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9k
ZUxpc3Q6OmludmFsaWRhdGVDYWNoZUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlByb3Bl
cnR5Tm9kZUxpc3Q6OmdldFZhbHVlcyk6IFJldHVybnMgUHJvcGVydHlWYWx1ZUFycmF5IHdob3Nl
IHZhbHVlcyBhcmUgb2J0YWluZWQgZnJvbSB0aGUKKyAgICAgICAgaXRlbVZhbHVlIERPTSBwcm9w
ZXJ0eSBvZiBlYWNoIG9mIHRoZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSB0aGUgb2JqZWN0LCBp
biB0cmVlIG9yZGVyLgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6bGVuZ3Ro
KTogUmV0dXJucyB0aGUgbnVtYmVyIG9mIG5vZGVzIGluIFByb3BlcnR5Tm9kZUxpc3QuCisgICAg
ICAgIChXZWJDb3JlOjpQcm9wZXJ0eU5vZGVMaXN0OjppdGVtKTogUmV0dXJucyBhbiBpbmRleCB0
aCBpdGVtIGluIHRoZSBQcm9wZXJ0eU5vZGVMaXN0LgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVy
dHlOb2RlTGlzdDo6aXRlbVdpdGhOYW1lKTogUmV0dXJucyB0aGUgaXRlbSB3aXRoIGdpdmVuIGlk
IGluIHRoZSBQcm9wZXJ0eU5vZGVMaXN0LgorICAgICAgICAqIGRvbS9Qcm9wZXJ0eU5vZGVMaXN0
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChQcm9wZXJ0eU5vZGVMaXN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6OmFkb3B0KToKKyAgICAgICAg
KFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6OmlzUHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAg
IChXZWJDb3JlOjpQcm9wZXJ0eU5vZGVMaXN0OjpQcm9wZXJ0eU5vZGVMaXN0KToKKyAgICAgICAg
KiBkb20vUHJvcGVydHlOb2RlTGlzdC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbjo6bmFtZWRJdGVtKTogUmV0dXJuIFByb3BlcnR5Tm9kZUxpc3Qgb2JqZWN0IGlu
c3RlYWQgb2YgTm9kZUxpc3QuCisgICAgICAgICogaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rp
b24uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGw6CisgICAg
ICAgICogaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdl
L0RPTVdpbmRvdy5pZGw6CisKIDIwMTItMDQtMTggIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIENTU1ZhbHVlUG9vbDogTWFrZSBudW1lcmljIHZhbHVlIGNhY2hl
cyBmaXhlZC1zaXplIGFycmF5cy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQko
cmV2aXNpb24gMTE0NTU5KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQko
d29ya2luZyBjb3B5KQpAQCAtMzk0LDYgKzM5NCw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyAr
PSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3NhZ2VFdmVudC5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVzc2FnZVBvcnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTWVzc2FnZVBvcnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01pY3JvRGF0
YUl0ZW1WYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNaWNyb0RhdGFJdGVt
VmFsdWUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuY3BwIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTXV0YXRpb25DYWxsYmFjay5jcHAgXApAQCAtNDYwLDYgKzQ2Miw4IEBAIHdlYmNv
cmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Byb2Nlc3Np
bmdJbnN0cnVjdGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJvZ3Jlc3NFdmVu
dC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9ncmVzc0V2ZW50LmggXAorCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9wZXJ0eU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1Byb3BlcnR5Tm9kZUxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1JhbmdlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JhbmdlRXhjZXB0
aW9uLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JhbmdlRXhjZXB0aW9uLmggXApA
QCAtNzY3LDYgKzc3MSw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvZG9t
L1BvcFN0YXRlRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24uaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCisJJChXZWJDb3Jl
KS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1JhbmdlLmlkbCBc
CiAJJChXZWJDb3JlKS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9T
aGFkb3dSb290LmlkbCBcCkBAIC04NzMsNiArODc4LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBc
CiAJJChXZWJDb3JlKS9odG1sL01lZGlhRXJyb3IuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvTWVk
aWFLZXlFcnJvci5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9NZWRpYUtleUV2ZW50LmlkbCBcCisJ
JChXZWJDb3JlKS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwgXAogCSQoV2ViQ29yZSkvaHRt
bC9UZXh0TWV0cmljcy5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9UaW1lUmFuZ2VzLmlkbCBcCiAJ
JChXZWJDb3JlKS9odG1sL1ZhbGlkaXR5U3RhdGUuaWRsIFwKQEAgLTE0MTUsNiArMTQyMSw3IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNz
YWdlRXZlbnRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3Nh
Z2VQb3J0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdl
UG9ydEN1c3RvbS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0
ZW1WYWx1ZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRp
b25DYWxsYmFja0N1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFt
ZWROb2RlTWFwQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
Q3VzdG9tLmNwcCBcCkBAIC0xOTIzLDYgKzE5MzAsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL1Byb2dyZXNzRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUHJvZ3Jl
c3NFdmVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9RdWFsaWZpZWROYW1lLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5h
bWUuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oIFwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDExNDU1OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtOTYxLDYgKzk2MSw3IEBACiAgICAgICAgICAgICAn
ZG9tL1BvcFN0YXRlRXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmlkbCcsCiAgICAgICAgICAgICAnZG9tL1Byb2dyZXNzRXZlbnQuaWRsJywKKyAgICAg
ICAgICAgICdkb20vUHJvcGVydHlOb2RlTGlzdC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9SYW5n
ZS5pZGwnLAogICAgICAgICAgICAgJ2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwnLAogICAgICAgICAg
ICAgJ2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwnLApAQCAtMTA2Nyw2ICsx
MDY4LDcgQEAKICAgICAgICAgICAgICdodG1sL0ltYWdlRGF0YS5pZGwnLAogICAgICAgICAgICAg
J2h0bWwvTWVkaWFDb250cm9sbGVyLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9NZWRpYUVycm9y
LmlkbCcsCisgICAgICAgICAgICAnaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsJywKICAgICAg
ICAgICAgICdodG1sL01lZGlhS2V5RXJyb3IuaWRsJywKICAgICAgICAgICAgICdodG1sL01lZGlh
S2V5RXZlbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL1RleHRNZXRyaWNzLmlkbCcsCkBAIC0x
OTcyLDYgKzE5NzQsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaCcs
CisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAnLApAQCAtMjI4Myw2ICsy
Mjg2LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5l
bENvbnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TWVzc2FnZVBvcnRDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwJywKQEAgLTUyODUs
NiArNTI4OSw4IEBACiAgICAgICAgICAgICAnZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oJywK
ICAgICAgICAgICAgICdkb20vUHJvZ3Jlc3NFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Q
cm9ncmVzc0V2ZW50LmgnLAorICAgICAgICAgICAgJ2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcCcs
CisgICAgICAgICAgICAnZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaCcsCiAgICAgICAgICAgICAnZG9t
L1F1YWxpZmllZE5hbWUuY3BwJywKICAgICAgICAgICAgICdkb20vUmFuZ2UuY3BwJywKICAgICAg
ICAgICAgICdkb20vUmFuZ2VFeGNlcHRpb24uY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTE0NTU5KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBj
b3B5KQpAQCAtNDIyLDEwICs0MjIsMTMgQEAgZW5kaWYKIAogaWYgRU5BQkxFX01JQ1JPREFUQQog
d2Via2l0Z3RrX2J1aWx0X2hfYXBpICs9IFwKLQkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJj
ZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCisJJCh0b3BfYnVp
bGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24uaCBcCisJJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01Qcm9wZXJ0eU5vZGVMaXN0LmgKIHdlYmtpdGd0a19nZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAog
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24u
Y3BwIFwKLQlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uUHJpdmF0ZS5oCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvblByaXZhdGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktp
dERPTVByb3BlcnR5Tm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NUHJvcGVydHlOb2RlTGlzdFByaXZhdGUuaAogZW5kaWYKIAogZ2RvbV9jbGFzc19saXN0IDo9
ICQoc3Vic3QgV2ViS2l0RE9NLCwgJChmaWx0ZXItb3V0ICVQcml2YXRlLCAkKGJhc2VuYW1lICQo
bm90ZGlyICQod2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcykpKSkpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVD
dXN0b20uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNN
aWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBA
CisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6
CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmls
aXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNp
bmNsdWRlICJKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorCisjaW5jbHVkZSAiSlNOb2RlLmgiCisj
aW5jbHVkZSA8cnVudGltZS9KU0FycmF5Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTWljcm9EYXRhSXRlbVZhbHVlKiBpdGVtVmFsdWUp
Cit7CisgICAgaWYgKCFpdGVtVmFsdWUpCisgICAgICAgIHJldHVybiBqc051bGwoKTsKKyAgICBp
ZiAoaXRlbVZhbHVlLT5pc05vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFs
T2JqZWN0LCBpdGVtVmFsdWUtPmdldE5vZGUoKSk7CisgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMs
IGl0ZW1WYWx1ZS0+Z2V0U3RyaW5nKCkpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUlD
Uk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlzdEN1c3Rv
bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlTGlz
dEN1c3RvbS5jcHAJKHJldmlzaW9uIDExNDU1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTm9kZUxpc3RDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiwxMCBA
QAogI2luY2x1ZGUgIk5vZGVMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
Lmg+CiAKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIkpTUHJvcGVydHlOb2RlTGlz
dC5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTU3LDQgKzYxLDE3IEBAIEpTVmFsdWUgSlNOb2RlTGlzdDo6bmFtZUdldHRlcihFeGVj
U3RhdGUKICAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLT5nbG9iYWxPYmplY3QoKSwgdGhp
c09iai0+aW1wbCgpLT5pdGVtV2l0aE5hbWUoaWRlbnRpZmllclRvQXRvbWljU3RyaW5nKHByb3Bl
cnR5TmFtZSkpKTsKIH0KIAorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgTm9kZUxpc3QqIG5vZGVMaXN0KQoreworICAgIGlmICgh
bm9kZUxpc3QpCisgICAgICAgIHJldHVybiBqc051bGwoKTsKKworI2lmIEVOQUJMRShNSUNST0RB
VEEpCisgICAgaWYgKG5vZGVMaXN0LT5pc1Byb3BlcnR5Tm9kZUxpc3QoKSkKKyAgICAgICAgcmV0
dXJuIENSRUFURV9ET01fV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFByb3BlcnR5Tm9kZUxp
c3QsIG5vZGVMaXN0KTsKKyNlbmRpZgorCisgICAgcmV0dXJuIENSRUFURV9ET01fV1JBUFBFUihl
eGVjLCBnbG9iYWxPYmplY3QsIE5vZGVMaXN0LCBub2RlTGlzdCk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1p
Y3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0
ZW1WYWx1ZUN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIg
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorCisjaW5jbHVkZSAi
VjhNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKworI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1
ZGUgIlY4Tm9kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZh
bHVlPiB0b1Y4KE1pY3JvRGF0YUl0ZW1WYWx1ZSogaXRlbVZhbHVlLCB2ODo6SXNvbGF0ZSogaXNv
bGF0ZSkKK3sKKyAgICBpZiAoIWl0ZW1WYWx1ZSkKKyAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7
CisgICAgaWYgKGl0ZW1WYWx1ZS0+aXNOb2RlKCkpCisgICAgICAgIHJldHVybiB0b1Y4KGl0ZW1W
YWx1ZS0+Z2V0Tm9kZSgpKTsKKyAgICByZXR1cm4gdjhTdHJpbmcoaXRlbVZhbHVlLT5nZXRTdHJp
bmcoKSk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vTm9kZUxpc3QuaAkocmV2aXNpb24gMTE0NTU5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDEwIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgCiAgICAgICAgIC8vIE90aGVyIG1ldGhvZHMgKG5vdCBwYXJ0IG9mIERP
TSkKICAgICAgICAgdmlydHVhbCBib29sIGlzRHluYW1pY05vZGVMaXN0KCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgICAgIHZpcnR1YWwgYm9v
bCBpc1Byb3BlcnR5Tm9kZUxpc3QoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L05vZGVMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3Qu
aWRsCShyZXZpc2lvbiAxMTQ1NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3ICsyMyw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICBpbnRl
cmZhY2UgWwogICAgICAgICBKU0N1c3RvbUlzUmVhY2hhYmxlLAogICAgICAgICBJbmRleGVkR2V0
dGVyLAotICAgICAgICBOYW1lZEdldHRlcgorICAgICAgICBOYW1lZEdldHRlciwKKyAgICAgICAg
SlNDdXN0b21Ub0pTT2JqZWN0CiAgICAgXSBOb2RlTGlzdCB7CiAKICAgICAgICAgTm9kZSBpdGVt
KGluIFtJc0luZGV4LE9wdGlvbmFsPURlZmF1bHRJc1VuZGVmaW5lZF0gdW5zaWduZWQgbG9uZyBp
bmRleCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIE1vdG9y
b2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJQcm9wZXJ0eU5vZGVMaXN0LmgiCisKKyNp
bmNsdWRlICJET01TdHJpbmdMaXN0LmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFByb3BlcnR5Tm9kZUxpc3Q6OmludmFsaWRhdGVDYWNo
ZUlmTmVlZGVkKCkgY29uc3QKK3sKKyAgICB1aW50NjRfdCBkb2N2ZXJzaW9uID0gbV9ub2Rlc1sw
XS0+ZG9jdW1lbnQoKS0+ZG9tVHJlZVZlcnNpb24oKTsKKworICAgIGlmIChtX2NhY2hlLnZlcnNp
b24gPT0gZG9jdmVyc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jYWNoZS5jbGVhcigp
OworICAgIG1fY2FjaGUudmVyc2lvbiA9IGRvY3ZlcnNpb247Cit9CisKK1Byb3BlcnR5VmFsdWVB
cnJheSBQcm9wZXJ0eU5vZGVMaXN0OjpnZXRWYWx1ZXMoKSBjb25zdAoreworICAgIGludmFsaWRh
dGVDYWNoZUlmTmVlZGVkKCk7CisgICAgaWYgKG1fY2FjaGUuaGFzUHJvcGVydHlDYWNoZSkKKyAg
ICAgICAgcmV0dXJuIG1fY2FjaGUucHJvcGVydHlWYWx1ZTsKKworICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbV9ub2Rlcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAoIW1fbm9kZXNbaV0t
PmlzSFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIEhUTUxF
bGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudChtX25vZGVzW2ldLmdldCgpKTsKKyAgICAg
ICAgbV9jYWNoZS5wcm9wZXJ0eVZhbHVlLmFwcGVuZChlbGVtZW50LT5pdGVtVmFsdWUoKSk7Cisg
ICAgfQorCisgICAgbV9jYWNoZS5oYXNQcm9wZXJ0eUNhY2hlID0gdHJ1ZTsKKyAgICByZXR1cm4g
bV9jYWNoZS5wcm9wZXJ0eVZhbHVlOworfQorCit1bnNpZ25lZCBQcm9wZXJ0eU5vZGVMaXN0Ojps
ZW5ndGgoKSBjb25zdAoreworICAgIHJldHVybiBtX25vZGVzLnNpemUoKTsKK30KKworTm9kZSog
UHJvcGVydHlOb2RlTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAo
aW5kZXggPCBtX25vZGVzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIG1fbm9kZXNbaW5kZXhdLmdl
dCgpOworICAgIHJldHVybiAwOworfQorCitOb2RlKiBQcm9wZXJ0eU5vZGVMaXN0OjppdGVtV2l0
aE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBpZCkgY29uc3QKK3sKKyAgICBzaXplX3QgbGVuZ3Ro
ID0gbV9ub2Rlcy5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsZW5ndGg7ICsr
aSkgeworICAgICAgICBOb2RlKiBub2RlID0gbV9ub2Rlc1tpXS5nZXQoKTsKKyAgICAgICAgaWYg
KG5vZGUtPmhhc0lEKCkgJiYgc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUpLT5nZXRJZEF0dHJp
YnV0ZSgpID09IGlkKQorICAgICAgICAgICAgcmV0dXJuIG5vZGU7CisgICAgfQorCisgICAgcmV0
dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShN
SUNST0RBVEEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmgJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIE1vdG9yb2xh
IE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBt
b2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcK
KyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQcm9wZXJ0eU5vZGVMaXN0X2gK
KyNkZWZpbmUgUHJvcGVydHlOb2RlTGlzdF9oCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2lu
Y2x1ZGUgIk1pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorI2luY2x1ZGUgIk5vZGVMaXN0LmgiCisjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit0eXBlZGVmIFZlY3RvcjxSZWZQdHI8TWljcm9EYXRhSXRlbVZhbHVlPiA+
IFByb3BlcnR5VmFsdWVBcnJheTsKKworY2xhc3MgUHJvcGVydHlOb2RlTGlzdCA6IHB1YmxpYyBO
b2RlTGlzdCB7CitwdWJsaWM6CisgICAgLy8gQWRvcHRzIHRoZSBjb250ZW50cyBvZiB0aGUgbm9k
ZXMgdmVjdG9yLgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+IGFkb3B0
KFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgbm9kZXMpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFByb3BlcnR5Tm9kZUxpc3Qobm9kZXMpKTsKKyAgICB9CisKKyAgICBQcm9wZXJ0
eVZhbHVlQXJyYXkgZ2V0VmFsdWVzKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxl
bmd0aCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgTm9kZSogaXRlbSh1bnNpZ25lZCBp
bmRleCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBOb2RlKiBpdGVtV2l0aE5hbWUoY29u
c3QgQXRvbWljU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNQ
cm9wZXJ0eU5vZGVMaXN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IFByb3BlcnR5Tm9kZUxpc3QoVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBub2RlcykK
KyAgICB7CisgICAgICAgIG1fbm9kZXMuc3dhcChub2Rlcyk7CisgICAgfQorCisgICAgdm9pZCBp
bnZhbGlkYXRlQ2FjaGVJZk5lZWRlZCgpIGNvbnN0OworCisgICAgbXV0YWJsZSBzdHJ1Y3Qgewor
ICAgICAgICBQcm9wZXJ0eVZhbHVlQXJyYXkgcHJvcGVydHlWYWx1ZTsKKyAgICAgICAgdWludDY0
X3QgdmVyc2lvbjsKKyAgICAgICAgYm9vbCBoYXNQcm9wZXJ0eUNhY2hlOworCisgICAgICAgIHZv
aWQgY2xlYXIoKQorICAgICAgICB7CisgICAgICAgICAgICBwcm9wZXJ0eVZhbHVlLmNsZWFyKCk7
CisgICAgICAgICAgICB2ZXJzaW9uID0gMDsKKyAgICAgICAgICAgIGhhc1Byb3BlcnR5Q2FjaGUg
PSBmYWxzZTsKKyAgICAgICAgfQorICAgIH0gbV9jYWNoZTsKKworICAgIFZlY3RvcjxSZWZQdHI8
Tm9kZT4gPiBtX25vZGVzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKE1JQ1JPREFUQSkKKworI2VuZGlmIC8vIFN0YXRpY05vZGVMaXN0X2gKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwJKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHks
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlv
biwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90
b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1h
eQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAg
ICAgICBDb25kaXRpb25hbD1NSUNST0RBVEEsCisgICAgICAgIEluZGV4ZWRHZXR0ZXIsCisgICAg
XSBQcm9wZXJ0eU5vZGVMaXN0IDogTm9kZUxpc3QgeworCisgICAgICAgIHNlcXVlbmNlPE1pY3Jv
RGF0YUl0ZW1WYWx1ZT4gZ2V0VmFsdWVzKCk7CisgICAgICAgIE5vZGUgaXRlbShpbiB1bnNpZ25l
ZCBsb25nIGluZGV4KTsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsZW5ndGg7CisgICAgfTsKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAJKHJldmlzaW9uIDExNDU1OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzksNyArMzksNyBAQAogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgotI2luY2x1ZGUgIlN0YXRpY05vZGVMaXN0Lmgi
CisjaW5jbHVkZSAiUHJvcGVydHlOb2RlTGlzdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTI1OCw3ICsyNTgsNyBAQCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IEhUTUxQcm9wZXJ0
aWVzCiAgICAgcmV0dXJuIG1fY2FjaGUucHJvcGVydHlOYW1lczsKIH0KIAotUGFzc1JlZlB0cjxO
b2RlTGlzdD4gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpuYW1lZEl0ZW0oY29uc3QgU3RyaW5n
JiBuYW1lKSBjb25zdAorUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PiBIVE1MUHJvcGVydGll
c0NvbGxlY3Rpb246Om5hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CiB7CiAgICAg
aWYgKCF0b0hUTUxFbGVtZW50KGJhc2UoKSktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0
cikpCiAgICAgICByZXR1cm4gMDsKQEAgLTI3MSw4ICsyNzEsNyBAQCBQYXNzUmVmUHRyPE5vZGVM
aXN0PiBIVE1MUHJvcGVydGllc0NvbGxlCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgcHJvcGVy
dHlSZXN1bHRzICYmIGkgPCBwcm9wZXJ0eVJlc3VsdHMtPnNpemUoKTsgKytpKQogICAgICAgICBu
YW1lZEl0ZW1zLmFwcGVuZChwcm9wZXJ0eVJlc3VsdHMtPmF0KGkpKTsKIAotICAgIC8vIEZJWE1F
OiBIVE1MNSBzcGVjaWZpZXMgdGhhdCB0aGlzIHNob3VsZCByZXR1cm4gUHJvcGVydHlOb2RlTGlz
dC4KLSAgICByZXR1cm4gbmFtZWRJdGVtcy5pc0VtcHR5KCkgPyAwIDogU3RhdGljTm9kZUxpc3Q6
OmFkb3B0KG5hbWVkSXRlbXMpOworICAgIHJldHVybiBuYW1lZEl0ZW1zLmlzRW1wdHkoKSA/IDAg
OiBQcm9wZXJ0eU5vZGVMaXN0OjphZG9wdChuYW1lZEl0ZW1zKTsKIH0KIAogYm9vbCBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb246Omhhc05hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUp
IGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uLmgJKHJldmlzaW9uIDExNDU1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRE9NU3RyaW5nTGlzdDsKK2NsYXNzIFByb3BlcnR5
Tm9kZUxpc3Q7CiAKIGNsYXNzIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiA6IHB1YmxpYyBIVE1M
Q29sbGVjdGlvbiB7CiBwdWJsaWM6CkBAIC01MSw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIFBh
c3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gbmFtZXMoKSBjb25zdDsKIAotICAgIFBhc3NSZWZQdHI8
Tm9kZUxpc3Q+IG5hbWVkSXRlbShjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICBQYXNzUmVmUHRy
PFByb3BlcnR5Tm9kZUxpc3Q+IG5hbWVkSXRlbShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBi
b29sIGhhc05hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdDsKIAogcHJpdmF0ZToK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5pZGwJKHJldmlzaW9uIDExNDU1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzksOCArMzksNiBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgICAgIE5vZGUgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKIAog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCBuYW1lczsKLQotICAgICAg
ICAvLyBGSVhNRTogSFRNTDUgc3BlY2lmaWVzIHRoYXQgdGhpcyBzaG91bGQgcmV0dXJuIFByb3Bl
cnR5Tm9kZUxpc3QuCi0gICAgICAgIE5vZGVMaXN0IG5hbWVkSXRlbShpbiBET01TdHJpbmcgbmFt
ZSk7CisgICAgICAgIFByb3BlcnR5Tm9kZUxpc3QgbmFtZWRJdGVtKGluIERPTVN0cmluZyBuYW1l
KTsKICAgICB9OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFs
dWUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRlbVZh
bHVlLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRl
bVZhbHVlLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoYykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBo
dG1sIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1JQ1JPREFUQSwK
KyAgICAgICAgQ3VzdG9tVG9KU09iamVjdAorICAgIF0gTWljcm9EYXRhSXRlbVZhbHVlIHsKKyAg
ICB9OworfQorCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAxMTQ1
NTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTM2OSw2ICszNjksNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIERv
Y3VtZW50Q29uc3RydWN0b3IgRG9jdW1lbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBOb2RlQ29uc3Ry
dWN0b3IgTm9kZTsKICAgICAgICAgYXR0cmlidXRlIE5vZGVMaXN0Q29uc3RydWN0b3IgTm9kZUxp
c3Q7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9TUlDUk9EQVRBXSBQcm9wZXJ0eU5v
ZGVMaXN0Q29uc3RydWN0b3IgUHJvcGVydHlOb2RlTGlzdDsKICAgICAgICAgYXR0cmlidXRlIE5h
bWVkTm9kZU1hcENvbnN0cnVjdG9yIE5hbWVkTm9kZU1hcDsKICAgICAgICAgYXR0cmlidXRlIENo
YXJhY3RlckRhdGFDb25zdHJ1Y3RvciBDaGFyYWN0ZXJEYXRhOwogICAgICAgICBhdHRyaWJ1dGUg
QXR0ckNvbnN0cnVjdG9yIEF0dHI7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMTQ1NTkpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0w
NC0xOCAgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0
YTogSW1wbGVtZW50IFByb3BlcnR5Tm9kZUxpc3QgaW50ZXJmYWNlLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAyNjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0IGNhc2VzIGZvciBQcm9w
ZXJ0eU5vZGVMaXN0IGludGVyZmFjZSBhbmQgUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBt
ZXRob2QuCisKKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJldHVybnMt
cHJvcGVydHlub2RlbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVl
cy1hcnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5
bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1v
Zi1lYWNoLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVz
dC5odG1sOiBBZGRlZC4KKwogMjAxMi0wNC0xOCAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxs
YW4uamVuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBDbGVhbi11cCBXaGVlbEV2ZW50IENvbnZl
cnNpb24uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJl
dHVybnMtcHJvcGVydHlub2RlbGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxp
c3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE0IEBACitQcm9wZXJ0aWVzQ29sbGVjdGlvbi5uYW1lZEl0
ZW0obmFtZSkgbXVzdCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdC4KKworQ3JlYXRlZCBlbGVtZW50
IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXNjb3BlLCB2YWx1ZTogaXRlbXNjb3Bl
CitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpIGluc3RhbmNlb2YgUHJv
cGVydHlOb2RlTGlzdCBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllc1snZm9vJ10gaW5z
dGFuY2VvZiBQcm9wZXJ0eU5vZGVMaXN0IGlzIHRydWUKKworUHJvcGVydHlOb2RlTGlzdCBpbnRl
cmZhY2UgaW5oZXJpdGVkIGZyb20gdGhlIE5vZGVMaXN0IGludGVyZmFjZS4KK1BBU1MgZWxlbWVu
dC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykgaW5zdGFuY2VvZiBOb2RlTGlzdCBpcyB0cnVl
CitQQVNTIGVsZW1lbnQucHJvcGVydGllc1snZm9vJ10gaW5zdGFuY2VvZiBOb2RlTGlzdCBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXBy
b3BlcnR5bm9kZWxpc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvbmFtZWRpdGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5z
LXByb3BlcnR5bm9kZWxpc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21p
Y3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5Qcm9wZXJ0
aWVzQ29sbGVjdGlvbi5uYW1lZEl0ZW0obmFtZSkgbXVzdCByZXR1cm4gUHJvcGVydHlOb2RlTGlz
dC48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9
IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtc2NvcGU6ICdpdGVtc2NvcGUnfSwgJzxkaXYgaXRl
bXByb3A9ImZvbyI+PC9kaXY+Jyk7CisKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVz
Lm5hbWVkSXRlbSgnZm9vJykgaW5zdGFuY2VvZiBQcm9wZXJ0eU5vZGVMaXN0Iik7CitzaG91bGRC
ZVRydWUoImVsZW1lbnQucHJvcGVydGllc1snZm9vJ10gaW5zdGFuY2VvZiBQcm9wZXJ0eU5vZGVM
aXN0Iik7CisKK2RlYnVnKCI8YnI+UHJvcGVydHlOb2RlTGlzdCBpbnRlcmZhY2UgaW5oZXJpdGVk
IGZyb20gdGhlIE5vZGVMaXN0IGludGVyZmFjZS4iKQorc2hvdWxkQmVUcnVlKCJlbGVtZW50LnBy
b3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKSBpbnN0YW5jZW9mIE5vZGVMaXN0Iik7CitzaG91bGRC
ZVRydWUoImVsZW1lbnQucHJvcGVydGllc1snZm9vJ10gaW5zdGFuY2VvZiBOb2RlTGlzdCIpOwor
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy1hcnJheS12YWx1ZXMtb2J0
YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1n
ZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxl
bWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVk
LWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsODQgQEAKK1RoaXMgdGVzdCBlbnN1cmUgdGhhdCBQcm9wZXJ0eU5vZGVMaXN0
LmdldFZhbHVlcygpIGFycmF5IHJldHVybnMgYW4gYXJyYXkgd2hvc2UgdmFsdXNlIGFyZSBvYnRh
aW5lZCBmcm9tIHRoZSBpdGVtVmFsdWUgRE9NIHByb3BlcnR5IG9mIGVhY2ggb2YgdGhlIGVsZW1l
bnRzIHJlcHJlc2VudGVkIGJ5IHRoZSBvYmplY3QsIGluIHRyZWUgb3JkZXIuCisKK0NyZWF0ZWQg
ZWxlbWVudCBvZiB0eXBlOiBkaXYKK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBh
dHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1zY29wZQorU2V0IGF0dHJpYnV0ZTogaXRl
bXJlZiwgdmFsdWU6IGlkMQorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IG1ldGEKK1NldCBhdHRy
aWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBjb250ZW50LCB2YWx1
ZTogdGVzdAorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGF1ZGlvCitTZXQgYXR0cmlidXRlOiBp
dGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdC5jb20K
K0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBlbWJlZAorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3As
IHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IHNyYywgdmFsdWU6IHRlc3QuY29tCitDcmVhdGVk
IGVsZW1lbnQgb2YgdHlwZTogaWZyYW1lCitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6
IGZvbworU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTogdGVzdC5jb20KK0NyZWF0ZWQgZWxlbWVu
dCBvZiB0eXBlOiBpbWcKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQg
YXR0cmlidXRlOiBzcmMsIHZhbHVlOiB0ZXN0LmNvbQorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6
IHNvdXJjZQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1NldCBhdHRyaWJ1
dGU6IHNyYywgdmFsdWU6IHRlc3QuY29tCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogdHJhY2sK
K1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQgYXR0cmlidXRlOiBzcmMs
IHZhbHVlOiB0ZXN0LmNvbQorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IHZpZGVvCitTZXQgYXR0
cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogc3JjLCB2YWx1ZTog
dGVzdC5jb20KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBlOiBhCitTZXQgYXR0cmlidXRlOiBpdGVt
cHJvcCwgdmFsdWU6IGZvbworU2V0IGF0dHJpYnV0ZTogaHJlZiwgdmFsdWU6IHRlc3QuY29tCitD
cmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogYXJlYQorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZh
bHVlOiBmb28KK1NldCBhdHRyaWJ1dGU6IGhyZWYsIHZhbHVlOiB0ZXN0LmNvbQorQ3JlYXRlZCBl
bGVtZW50IG9mIHR5cGU6IGxpbmsKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9v
CitTZXQgYXR0cmlidXRlOiBocmVmLCB2YWx1ZTogdGVzdC5jb20KK0NyZWF0ZWQgZWxlbWVudCBv
ZiB0eXBlOiBvYmplY3QKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitTZXQg
YXR0cmlidXRlOiBkYXRhLCB2YWx1ZTogdGVzdC5jb20KK0NyZWF0ZWQgZWxlbWVudCBvZiB0eXBl
OiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTogZm9vCitDcmVhdGVkIGVsZW1l
bnQgb2YgdHlwZTogcAorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KKworcHJv
cGVydHkgaW5kZXggMCwgdGFnIERJVgorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5v
ZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMSwgdGFnIFNQQU4KK1BBU1MgdmFs
dWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGlu
ZGV4IDIsIHRhZyBNRVRBCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3Rb
aV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAzLCB0YWcgQVVESU8KK1BBU1MgdmFsdWVzQXJy
YXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDQs
IHRhZyBFTUJFRAorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0
ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggNSwgdGFnIElGUkFNRQorUEFTUyB2YWx1ZXNBcnJheVtp
XSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggNiwgdGFn
IElNRworUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1
ZQorcHJvcGVydHkgaW5kZXggNywgdGFnIFNPVVJDRQorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBw
cm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggOCwgdGFnIFRSQUNL
CitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitw
cm9wZXJ0eSBpbmRleCA5LCB0YWcgVklERU8KK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVy
dHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDEwLCB0YWcgQQorUEFTUyB2
YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkg
aW5kZXggMTEsIHRhZyBBUkVBCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxp
c3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxMiwgdGFnIExJTksKK1BBU1MgdmFsdWVz
QXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4
IDEzLCB0YWcgT0JKRUNUCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3Rb
aV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxNCwgdGFnIFAKK1BBU1MgdmFsdWVzQXJyYXlb
aV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDE1LCB0
YWcgU1BBTgorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1W
YWx1ZQorUEFTUyB2YWx1ZXNBcnJheS5sZW5ndGggaXMgMTYKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFp
bmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy1h
cnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50Lmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlu
b2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9m
LWVhY2gtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9k
YXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBl
bnN1cmUgdGhhdCBQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIGFycmF5IHJldHVybnMgYW4g
YXJyYXkgd2hvc2UgdmFsdXNlIGFyZSBvYnRhaW5lZCBmcm9tIHRoZSBpdGVtVmFsdWUgRE9NIHBy
b3BlcnR5IG9mIGVhY2ggb2YgdGhlIGVsZW1lbnRzIHJlcHJlc2VudGVkIGJ5IHRoZSBvYmplY3Qs
IGluIHRyZWUgb3JkZXIuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+
Cit2YXIgcGFyZW50RWxlbWVudCA9IGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHt9LCAnPGRpdiBpZD0i
aWQxIj48L2Rpdj4nKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFyZW50RWxlbWVudCk7
Cit2YXIgdGVzdEVsZW1lbnQgPSBjcmVhdGVFbGVtZW50KCdkaXYnLCB7aXRlbXNjb3BlOiAnaXRl
bXNjb3BlJywgaXRlbXJlZjogJ2lkMSd9KTsKK3BhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGVz
dEVsZW1lbnQpOwordGVzdEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnbWV0YScs
IHtpdGVtcHJvcDogJ2ZvbycsIGNvbnRlbnQ6ICd0ZXN0J30pKTsKK3Rlc3RFbGVtZW50LmFwcGVu
ZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2F1ZGlvJywge2l0ZW1wcm9wOiAnZm9vJywgc3JjOiAndGVz
dC5jb20nfSwgJ3RleHQnKSk7Cit0ZXN0RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50
KCdlbWJlZCcsIHtpdGVtcHJvcDonZm9vJywgc3JjOiAndGVzdC5jb20nfSkpOwordGVzdEVsZW1l
bnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnaWZyYW1lJywge2l0ZW1wcm9wOiAnZm9vJywg
c3JjOiAndGVzdC5jb20nfSwgJ3RleHQnKSk7Cit0ZXN0RWxlbWVudC5hcHBlbmRDaGlsZChjcmVh
dGVFbGVtZW50KCdpbWcnLCB7aXRlbXByb3A6ICdmb28nLCBzcmM6ICd0ZXN0LmNvbSd9KSk7Cit0
ZXN0RWxlbWVudC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KCdzb3VyY2UnLCB7aXRlbXByb3A6
ICdmb28nLCBzcmM6ICd0ZXN0LmNvbSd9KSk7Cit0ZXN0RWxlbWVudC5hcHBlbmRDaGlsZChjcmVh
dGVFbGVtZW50KCd0cmFjaycsIHtpdGVtcHJvcDogJ2ZvbycsIHNyYzogJ3Rlc3QuY29tJ30pKTsK
K3Rlc3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJywge2l0ZW1wcm9w
OiAnZm9vJywgc3JjOiAndGVzdC5jb20nfSwgJ3RleHQnKSk7Cit0ZXN0RWxlbWVudC5hcHBlbmRD
aGlsZChjcmVhdGVFbGVtZW50KCdhJywge2l0ZW1wcm9wOiAnZm9vJywgaHJlZjogJ3Rlc3QuY29t
J30sICd0ZXh0JykpOwordGVzdEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnYXJl
YScsIHtpdGVtcHJvcDogJ2ZvbycsIGhyZWY6ICd0ZXN0LmNvbSd9KSk7Cit0ZXN0RWxlbWVudC5h
cHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KCdsaW5rJywge2l0ZW1wcm9wOiAnZm9vJywgaHJlZjog
J3Rlc3QuY29tJ30pKTsKK3Rlc3RFbGVtZW50LmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ29i
amVjdCcsIHtpdGVtcHJvcDogJ2ZvbycsIGRhdGE6ICd0ZXN0LmNvbSd9LCAndGV4dCcpKTsKK3Bh
cmVudEVsZW1lbnQuZmlyc3RDaGlsZC5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KCdkaXYnLCB7
aXRlbXByb3A6ICdmb28nfSwgJzxzcGFuIGl0ZW1wcm9wPSJmb28iIGl0ZW1zY29wZT48L3NwYW4+
JykpOwordGVzdEVsZW1lbnQuYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgncCcsIHtpdGVtcHJv
cDogJ2Zvbyd9LCAnPHNwYW4gaXRlbXByb3A9ImZvbyIgaXRlbXNjb3BlPjwvc3Bhbj4nKSk7CisK
K3ZhciBwcm9wZXJ0eU5vZGVMaXN0ID0gdGVzdEVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0o
J2ZvbycpOwordmFyIHZhbHVlc0FycmF5ID0gcHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKTsK
KworZGVidWcoJycpOworZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0
aDsgaSsrKSB7CisgICAgZGVidWcoJ3Byb3BlcnR5IGluZGV4ICcgKyBpICsgJywgdGFnICcgKyBw
cm9wZXJ0eU5vZGVMaXN0W2ldLnRhZ05hbWUpOworICAgIHNob3VsZEJlKCJ2YWx1ZXNBcnJheVtp
XSIsICJwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZSIpOworfQorCitzaG91bGRCZSgidmFs
dWVzQXJyYXkubGVuZ3RoIiwgJzE2Jyk7Citkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHBhcmVu
dEVsZW1lbnQpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1n
ZXR2YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAK
K1Byb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVzKCkgbWV0aG9kIHRlc3QuCisKK0NyZWF0ZWQgZWxl
bWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0ZW1zY29wZSwgdmFsdWU6IGl0ZW1z
Y29wZQorCitQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCBtdXN0IHJldHVybiBh
biBhcnJheS4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykuZ2V0VmFs
dWVzKCkgaW5zdGFuY2VvZiBBcnJheSBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllc1sn
Zm9vJ10uZ2V0VmFsdWVzKCkgaW5zdGFuY2VvZiBBcnJheSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2Rl
bGlzdC1nZXR2YWx1ZXMtdGVzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5Qcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhv
ZCB0ZXN0LjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVt
ZW50ID0gY3JlYXRlRWxlbWVudCgnZGl2Jywge2l0ZW1zY29wZTogJ2l0ZW1zY29wZSd9LCAnPGRp
diBpdGVtcHJvcD0iZm9vIj48L2Rpdj4nKTsKKworZGVidWcoIjxicj5Qcm9wZXJ0eU5vZGVMaXN0
LmdldFZhbHVlcygpIG1ldGhvZCBtdXN0IHJldHVybiBhbiBhcnJheS4iKTsKK3Nob3VsZEJlVHJ1
ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykuZ2V0VmFsdWVzKCkgaW5zdGFu
Y2VvZiBBcnJheSIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddLmdl
dFZhbHVlcygpIGluc3RhbmNlb2YgQXJyYXkiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>
<flag name="review"
          id="142937"
          type_id="1"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144807</attachid>
            <date>2012-05-30 07:15:23 -0700</date>
            <delta_ts>2012-06-20 07:17:52 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_80269_modified.diff</filename>
            <type>text/plain</type>
            <size>42454</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExODkxNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA1LTMwICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEltcGxlbWVudCBQ
cm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU3BlYzogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjcHJv
cGVydHlub2RlbGlzdAorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRp
dGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFp
bmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC5odG1sCisK
KyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToK
KyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBBZGRlZCB0b0pTKCkgY3VzdG9t
IG1ldGhvZC4gUmV0dXJucyBOb2RlIGlmIGl0ZW1WYWx1ZSBpcyBub2RlIGVsc2UgcmV0dXJucyBT
dHJpbmcuCisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVl
Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OnRvVjgpOiBBZGRlZCB0b1Y4IGN1c3RvbSBjb2RlLgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpwcm9wZXJ0eU5vZGVMaXN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6OnJlbW92ZUNhY2hlZFByb3BlcnR5Tm9kZUxpc3QpOgorICAgICAgICAqIGRv
bS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAq
IGRvbS9Ob2RlUmFyZURhdGEuaDoKKyAgICAgICAgKE5vZGVMaXN0c05vZGVEYXRhKToKKyAgICAg
ICAgKiBkb20vUHJvcGVydHlOb2RlTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eU5vZGVMaXN0OjpQcm9wZXJ0eU5vZGVMaXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6On5Qcm9wZXJ0eU5vZGVMaXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6OmlzVmFsaWRBbmNlc3Rvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eU5vZGVMaXN0Ojpub2RlTWF0Y2hlcyk6IFJldHVybnMg
dHJ1ZSBpZiB0ZXN0RWxlbWVudCBpcyBhIHByb3BlcnR5IG5hbWVkICduYW1lJyBvZgorICAgICAg
ICBhIE1pY3JvZGF0YSB0b3AgbGV2ZWwgaXRlbS4KKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5
Tm9kZUxpc3Q6OmdldFZhbHVlcyk6IFJldHVybnMgUHJvcGVydHlWYWx1ZUFycmF5IHdob3NlIHZh
bHVlcyBhcmUgb2J0YWluZWQgZnJvbSB0aGUKKyAgICAgICAgaXRlbVZhbHVlIERPTSBwcm9wZXJ0
eSBvZiBlYWNoIG9mIHRoZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSB0aGUgb2JqZWN0LCBpbiB0
cmVlIG9yZGVyLgorICAgICAgICAqIGRvbS9Qcm9wZXJ0eU5vZGVMaXN0Lmg6IEFkZGVkLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChQcm9wZXJ0eU5vZGVMaXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL1Byb3BlcnR5
Tm9kZUxpc3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5h
bWVkSXRlbSk6IFJldHVybiBQcm9wZXJ0eU5vZGVMaXN0IG9iamVjdCBpbnN0ZWFkIG9mIE5vZGVM
aXN0LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpoYXNOYW1l
ZEl0ZW0pOgorICAgICAgICAqIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbik6CisgICAg
ICAgICogaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsOgorICAgICAgICAqIGh0bWwv
TWljcm9EYXRhSXRlbVZhbHVlLmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cu
aWRsOgorCiAyMDEyLTA1LTMwICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIE1hdGNoIEZpcmVmb3ggcmVzdHJpY3Rpb25zIHRvIHdpbmRvdy5ibHVyIGFu
ZCB3aW5kb3cuZm9jdXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNp
b24gMTE4OTE3KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMzk2LDYgKzM5Niw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3NhZ2VFdmVudC5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWVzc2FnZVBvcnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TWVzc2FnZVBvcnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01pY3JvRGF0YUl0ZW1W
YWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNaWNyb0RhdGFJdGVtVmFsdWUu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuY3BwIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTTXV0YXRpb25DYWxsYmFjay5jcHAgXApAQCAtNDY4LDYgKzQ3MCw4IEBAIHdlYmNvcmVfYnVp
bHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Byb2Nlc3NpbmdJbnN0
cnVjdGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJvZ3Jlc3NFdmVudC5jcHAg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNQcm9wZXJ0eU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1Byb3BlcnR5Tm9kZUxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1JhZGlvTm9kZUxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmFkaW9Ob2Rl
TGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmFuZ2UuY3BwIFwKQEAgLTc3OCw2
ICs3ODIsNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2RvbS9Qb3BTdGF0
ZUV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlkbCBc
CiAJJChXZWJDb3JlKS9kb20vUHJvZ3Jlc3NFdmVudC5pZGwgXAorCSQoV2ViQ29yZSkvZG9tL1By
b3BlcnR5Tm9kZUxpc3QuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9SYW5nZS5pZGwgXAogCSQoV2Vi
Q29yZSkvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vU2hhZG93Um9v
dC5pZGwgXApAQCAtODg0LDYgKzg4OSw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2Vi
Q29yZSkvaHRtbC9NZWRpYUVycm9yLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL01lZGlhS2V5RXJy
b3IuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvTWVkaWFLZXlFdmVudC5pZGwgXAorCSQoV2ViQ29y
ZSkvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvUmFkaW9O
b2RlTGlzdC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9UZXh0TWV0cmljcy5pZGwgXAogCSQoV2Vi
Q29yZSkvaHRtbC9UaW1lUmFuZ2VzLmlkbCBcCkBAIC0xNDQ2LDYgKzE0NTIsNyBAQCB3ZWJjb3Jl
X3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1
c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0
b20uaCBcCisJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVD
dXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJh
Y2tDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1h
cEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5j
cHAgXApAQCAtMTk2MSw2ICsxOTY4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Qcm9ncmVzc0V2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Byb2dyZXNzRXZlbnQu
aCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUXVh
bGlmaWVkTmFtZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmggXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaCBcCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCShyZXZpc2lvbiAxMTg5MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJ
KHdvcmtpbmcgY29weSkKQEAgLTk2OCw2ICs5NjgsNyBAQAogICAgICAgICAgICAgJ2RvbS9Qb3BT
dGF0ZUV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5p
ZGwnLAogICAgICAgICAgICAgJ2RvbS9Qcm9ncmVzc0V2ZW50LmlkbCcsCisgICAgICAgICAgICAn
ZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRsJywKICAgICAgICAgICAgICdkb20vUmFuZ2UuaWRsJywK
ICAgICAgICAgICAgICdkb20vUmFuZ2VFeGNlcHRpb24uaWRsJywKICAgICAgICAgICAgICdkb20v
UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsJywKQEAgLTEwNzUsNiArMTA3Niw3IEBA
CiAgICAgICAgICAgICAnaHRtbC9JbWFnZURhdGEuaWRsJywKICAgICAgICAgICAgICdodG1sL01l
ZGlhQ29udHJvbGxlci5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvTWVkaWFFcnJvci5pZGwnLAor
ICAgICAgICAgICAgJ2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmlkbCcsCiAgICAgICAgICAgICAn
aHRtbC9NZWRpYUtleUVycm9yLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9NZWRpYUtleUV2ZW50
LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9SYWRpb05vZGVMaXN0LmlkbCcsCkBAIC0yMDAxLDYg
KzIwMDMsNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9t
LmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaCcsCisgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAnLApAQCAtMjMxNCw2ICsyMzE3LDcg
QEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0
cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2
ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2Fn
ZVBvcnRDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNaWNy
b0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0
b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwJywKQEAgLTUzNTksNiArNTM2
Myw4IEBACiAgICAgICAgICAgICAnZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oJywKICAgICAg
ICAgICAgICdkb20vUHJvZ3Jlc3NFdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Qcm9ncmVz
c0V2ZW50LmgnLAorICAgICAgICAgICAgJ2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcCcsCisgICAg
ICAgICAgICAnZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaCcsCiAgICAgICAgICAgICAnZG9tL1F1YWxp
ZmllZE5hbWUuY3BwJywKICAgICAgICAgICAgICdkb20vUmFuZ2UuY3BwJywKICAgICAgICAgICAg
ICdkb20vUmFuZ2VFeGNlcHRpb24uY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2dvYmplY3QvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTE4OTE3KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpA
QCAtNDIyLDEwICs0MjIsMTMgQEAgZW5kaWYKIAogaWYgRU5BQkxFX01JQ1JPREFUQQogd2Via2l0
Z3RrX2J1aWx0X2hfYXBpICs9IFwKLQkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvd2Vi
a2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCisJJCh0b3BfYnVpbGRkaXIp
L0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24u
aCBcCisJJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Qcm9w
ZXJ0eU5vZGVMaXN0LmgKIHdlYmtpdGd0a19nZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIFwK
LQlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
UHJpdmF0ZS5oCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvblByaXZhdGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVBy
b3BlcnR5Tm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NUHJv
cGVydHlOb2RlTGlzdFByaXZhdGUuaAogZW5kaWYKIAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3Bw
CShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJ
dGVtVmFsdWVDdXN0b20uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACisvKgorICog
Q29weXJpZ2h0IChjKSAyMDEyIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vcgorICogb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQKKyAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJK
U01pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorCisjaW5jbHVkZSAiSlNOb2RlLmgiCisjaW5jbHVkZSA8
cnVudGltZS9KU0FycmF5Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgTWljcm9EYXRhSXRlbVZhbHVlKiBpdGVtVmFsdWUpCit7CisgICAg
aWYgKCFpdGVtVmFsdWUpCisgICAgICAgIHJldHVybiBqc051bGwoKTsKKyAgICBpZiAoaXRlbVZh
bHVlLT5pc05vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBp
dGVtVmFsdWUtPmdldE5vZGUoKSk7CisgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGl0ZW1WYWx1
ZS0+Z2V0U3RyaW5nKCkpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZh
bHVlQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwCShyZXZpc2lvbiAwKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9t
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykg
MjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwK
KyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAq
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
TmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisKKyNpbmNsdWRlICJWOE1pY3JvRGF0YUl0
ZW1WYWx1ZS5oIgorCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhOb2RlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoTWlj
cm9EYXRhSXRlbVZhbHVlKiBpdGVtVmFsdWUsIHY4OjpJc29sYXRlKiBpc29sYXRlKQoreworICAg
IGlmICghaXRlbVZhbHVlKQorICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKKyAgICBpZiAoaXRl
bVZhbHVlLT5pc05vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRvVjgoaXRlbVZhbHVlLT5nZXROb2Rl
KCkpOworICAgIHJldHVybiB2OFN0cmluZyhpdGVtVmFsdWUtPmdldFN0cmluZygpKTsKK30KKwor
fQorCisjZW5kaWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJl
dmlzaW9uIDExODkxNykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTE4LDYgKzExOCw3IEBACiAKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogI2luY2x1
ZGUgIkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIlByb3BlcnR5Tm9kZUxp
c3QuaCIKICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtMjkxNSw2ICsyOTE2LDI5
IEBAIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiogTm9kZTo6cHJvcGVydGkKIHsKICAgICByZXR1
cm4gZW5zdXJlUmFyZURhdGEoKS0+cHJvcGVydGllcyh0aGlzKTsKIH0KKworUGFzc1JlZlB0cjxQ
cm9wZXJ0eU5vZGVMaXN0PiBOb2RlOjpwcm9wZXJ0eU5vZGVMaXN0KGNvbnN0IFZlY3RvcjxFbGVt
ZW50Kj4mIGl0ZW1SZWZFbGVtZW50cywgY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIE5vZGVM
aXN0c05vZGVEYXRhKiBub2RlTGlzdHMgPSBlbnN1cmVSYXJlRGF0YSgpLT5lbnN1cmVOb2RlTGlz
dHModGhpcyk7CisKKyAgICBOb2RlTGlzdHNOb2RlRGF0YTo6UHJvcGVydHlOb2RlTGlzdENhY2hl
OjpBZGRSZXN1bHQgcmVzdWx0ID0gbm9kZUxpc3RzLT5tX3Byb3BlcnR5Tm9kZUxpc3RDYWNoZS5h
ZGQobmFtZSwgMCk7CisgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAgICAgcmV0dXJu
IFBhc3NSZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4ocmVzdWx0Lml0ZXJhdG9yLT5zZWNvbmQpOwor
CisgICAgUmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+IGxpc3QgPSBQcm9wZXJ0eU5vZGVMaXN0Ojpj
cmVhdGUodG9FbGVtZW50KHRoaXMpLCBpdGVtUmVmRWxlbWVudHMsIG5hbWUpOworICAgIHJlc3Vs
dC5pdGVyYXRvci0+c2Vjb25kID0gbGlzdC5nZXQoKTsKKyAgICByZXR1cm4gbGlzdC5yZWxlYXNl
KCk7Cit9CisKK3ZvaWQgTm9kZTo6cmVtb3ZlQ2FjaGVkUHJvcGVydHlOb2RlTGlzdChQcm9wZXJ0
eU5vZGVMaXN0KiBsaXN0LCBjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgQVNTRVJUKHJhcmVE
YXRhKCkpOworICAgIEFTU0VSVChyYXJlRGF0YSgpLT5ub2RlTGlzdHMoKSk7CisKKyAgICBOb2Rl
TGlzdHNOb2RlRGF0YSogZGF0YSA9IHJhcmVEYXRhKCktPm5vZGVMaXN0cygpOworICAgIEFTU0VS
VF9VTlVTRUQobGlzdCwgbGlzdCA9PSBkYXRhLT5tX3Byb3BlcnR5Tm9kZUxpc3RDYWNoZS5nZXQo
bmFtZSkpOworICAgIGRhdGEtPm1fcHJvcGVydHlOb2RlTGlzdENhY2hlLnJlbW92ZShuYW1lKTsK
K30KICNlbmRpZgogCiB2b2lkIE5vZGVSYXJlRGF0YTo6Y3JlYXRlTm9kZUxpc3RzKE5vZGUqIG5v
ZGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9uIDExODkxNykKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYgKzg4LDcgQEAgY2xhc3MgVHJlZVNj
b3BlOwogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKIGNsYXNzIEhUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbjsKK2NsYXNzIFByb3BlcnR5Tm9kZUxpc3Q7CiAjZW5kaWYKIAogdHlwZWRlZiBpbnQgRXhj
ZXB0aW9uQ29kZTsKQEAgLTYzOSw2ICs2NDAsOCBAQCBwdWJsaWM6CiAgICAgRE9NU2V0dGFibGVU
b2tlbkxpc3QqIGl0ZW1SZWYoKTsKICAgICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVR5cGUo
KTsKICAgICBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24qIHByb3BlcnRpZXMoKTsKKyAgICBQYXNz
UmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+IHByb3BlcnR5Tm9kZUxpc3QoY29uc3QgVmVjdG9yPEVs
ZW1lbnQqPiYsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgcmVtb3ZlQ2FjaGVkUHJvcGVydHlO
b2RlTGlzdChQcm9wZXJ0eU5vZGVMaXN0KiwgY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShNVVRBVElPTl9PQlNFUlZFUlMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJhcmVEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0
YS5oCShyZXZpc2lvbiAxMTg5MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRh
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAKICNpZiBFTkFCTEUoTUlDUk9EQVRB
KQogI2luY2x1ZGUgIkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIk1pY3Jv
RGF0YUl0ZW1MaXN0LmgiCisjaW5jbHVkZSAiUHJvcGVydHlOb2RlTGlzdC5oIgogI2VuZGlmCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY5LDYgKzcwLDkgQEAgcHVibGljOgogI2lmIEVOQUJM
RShNSUNST0RBVEEpCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgTWljcm9EYXRhSXRlbUxp
c3QqPiBNaWNyb0RhdGFJdGVtTGlzdENhY2hlOwogICAgIE1pY3JvRGF0YUl0ZW1MaXN0Q2FjaGUg
bV9taWNyb0RhdGFJdGVtTGlzdENhY2hlOworCisgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywg
UHJvcGVydHlOb2RlTGlzdCo+IFByb3BlcnR5Tm9kZUxpc3RDYWNoZTsKKyAgICBQcm9wZXJ0eU5v
ZGVMaXN0Q2FjaGUgbV9wcm9wZXJ0eU5vZGVMaXN0Q2FjaGU7CiAjZW5kaWYKIAogICAgIExhYmVs
c05vZGVMaXN0KiBtX2xhYmVsc05vZGVMaXN0Q2FjaGU7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vUHJvcGVydHlOb2RlTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L1Byb3BlcnR5Tm9kZUxpc3QuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9t
L1Byb3BlcnR5Tm9kZUxpc3QuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoYykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoK
KyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0CisgKiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhP
TERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVk
ZSAiUHJvcGVydHlOb2RlTGlzdC5oIgorCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3Qu
aCIKKyNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOworCitQcm9wZXJ0eU5vZGVMaXN0OjpQcm9wZXJ0eU5vZGVMaXN0
KEVsZW1lbnQqIGl0ZW1FbGVtZW50LCBWZWN0b3I8RWxlbWVudCo+IGl0ZW1SZWZFbGVtZW50cywg
Y29uc3QgU3RyaW5nJiBuYW1lKQorICAgIDogRHluYW1pY1N1YnRyZWVOb2RlTGlzdChpdGVtRWxl
bWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtcmVmQXR0cikgPyBzdGF0aWNfY2FzdDxOb2RlKj4o
aXRlbUVsZW1lbnQtPmRvY3VtZW50KCkpIDogaXRlbUVsZW1lbnQpCisgICAgLCBtX25hbWUobmFt
ZSkKKyAgICAsIG1faXRlbUVsZW1lbnQoaXRlbUVsZW1lbnQpCisgICAgLCBtX2l0ZW1SZWZFbGVt
ZW50cyhpdGVtUmVmRWxlbWVudHMpCit7CisgICAgbV9pdGVtRWxlbWVudC0+ZG9jdW1lbnQoKS0+
cmVnaXN0ZXJEeW5hbWljU3VidHJlZU5vZGVMaXN0KHRoaXMpOworfQorCitQcm9wZXJ0eU5vZGVM
aXN0Ojp+UHJvcGVydHlOb2RlTGlzdCgpCit7CisgICAgbV9pdGVtRWxlbWVudC0+cmVtb3ZlQ2Fj
aGVkUHJvcGVydHlOb2RlTGlzdCh0aGlzLCBtX25hbWUpOworICAgIG1faXRlbUVsZW1lbnQtPmRv
Y3VtZW50KCktPnVucmVnaXN0ZXJEeW5hbWljU3VidHJlZU5vZGVMaXN0KHRoaXMpOworfQorCiti
b29sIFByb3BlcnR5Tm9kZUxpc3Q6OmlzVmFsaWRBbmNlc3Rvcihjb25zdCBOb2RlKiB0ZXN0RWxl
bWVudCwgY29uc3QgTm9kZSAqb3RoZXIpIGNvbnN0Cit7CisgICAgLy8gUmV0dXJuIHRydWUgaWYg
b3RoZXIgaXMgYW4gYW5jZXN0b3Igb2YgdGVzdEVsZW1lbnQgYW5kIGFueSBhbmNlc3RvciBvZiB0
ZXN0RWxlbWVudAorICAgIC8vIGRvZXNuJ3QgaGF2ZSBhbiBpdGVtc2NvcGUgYXR0cmlidXRlLCBv
dGhlcndpc2UgZmFsc2UKKyAgICBmb3IgKGNvbnN0IENvbnRhaW5lck5vZGUqIG5vZGUgPSB0ZXN0
RWxlbWVudC0+cGFyZW50Tm9kZSgpOyBub2RlOyBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpKSB7
CisgICAgICAgIGlmIChub2RlLT5pc0VsZW1lbnROb2RlKCkpIHsKKyAgICAgICAgICAgIGNvbnN0
IEVsZW1lbnQqIGVsZW1lbnQgPSB0b0VsZW1lbnQobm9kZSk7CisgICAgICAgICAgICAvLyBEb24n
dCByZXR1cm4gZmFsc2UgaWYgbm9kZSBpcyB0aGUgbWljcm9kYXRhIHRvcCBsZXZlbCBpdGVtLiBN
aWNyb2RhdGEgdG9wIGxldmVsIGl0ZW0KKyAgICAgICAgICAgIC8vIGFsd2F5cyBoYXZlIGl0ZW1z
Y29wZSBhdHRyaWJ1dGUgc3BlY2lmaWVkLgorICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmZhc3RI
YXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikgJiYgbm9kZSAhPSBtX2l0ZW1FbGVtZW50KQorICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChub2Rl
ID09IG90aGVyKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBQcm9wZXJ0eU5vZGVMaXN0Ojpub2RlTWF0Y2hlcyhFbGVtZW50KiB0
ZXN0RWxlbWVudCkgY29uc3QKK3sKKyAgICBpZiAoIXRlc3RFbGVtZW50LT5pc0hUTUxFbGVtZW50
KCkgfHwgIXRlc3RFbGVtZW50LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1wcm9wQXR0cikpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGJvb2wgdmFsaWRBbmNlc3RvciA9IGZhbHNlOworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2l0ZW1SZWZFbGVtZW50cy5zaXplKCk7ICsraSkg
eworICAgICAgICBpZiAodGVzdEVsZW1lbnQgPT0gbV9pdGVtUmVmRWxlbWVudHNbaV0gfHwgaXNW
YWxpZEFuY2VzdG9yKHRlc3RFbGVtZW50LCBtX2l0ZW1SZWZFbGVtZW50c1tpXSkpIHsKKyAgICAg
ICAgICAgIHZhbGlkQW5jZXN0b3IgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICByZXR1cm4gdmFsaWRBbmNlc3RvciAmJiB0ZXN0RWxlbWVudC0+aXRl
bVByb3AoKS0+dG9rZW5zKCkuY29udGFpbnMobV9uYW1lKTsKK30KKworUHJvcGVydHlWYWx1ZUFy
cmF5IFByb3BlcnR5Tm9kZUxpc3Q6OmdldFZhbHVlcygpIGNvbnN0Cit7CisgICAgUHJvcGVydHlW
YWx1ZUFycmF5IHByb3BlcnR5VmFsdWU7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxl
bmd0aCgpOyArK2kpIHsKKyAgICAgICAgTm9kZSogbm9kZSA9IGl0ZW0oaSk7CisgICAgICAgIEhU
TUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudChub2RlKTsKKyAgICAgICAgcHJvcGVy
dHlWYWx1ZS5hcHBlbmQoZWxlbWVudC0+aXRlbVZhbHVlKCkpOworICAgIH0KKworICAgIHJldHVy
biBwcm9wZXJ0eVZhbHVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9k
ZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlz
dC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3Qu
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAx
MiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAq
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVp
dGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUHJvcGVydHlO
b2RlTGlzdF9oCisjZGVmaW5lIFByb3BlcnR5Tm9kZUxpc3RfaAorCisjaWYgRU5BQkxFKE1JQ1JP
REFUQSkKKyNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJNaWNyb0RhdGFJ
dGVtVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gPiBQcm9wZXJ0eVZh
bHVlQXJyYXk7CisKK2NsYXNzIFByb3BlcnR5Tm9kZUxpc3QgOiBwdWJsaWMgRHluYW1pY1N1YnRy
ZWVOb2RlTGlzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvcGVydHlOb2Rl
TGlzdD4gY3JlYXRlKEVsZW1lbnQqIGl0ZW1FbGVtZW50LCBWZWN0b3I8RWxlbWVudCo+IGl0ZW1S
ZWZFbGVtZW50cywgY29uc3QgU3RyaW5nJiBuYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBQcm9wZXJ0eU5vZGVMaXN0KGl0ZW1FbGVtZW50LCBpdGVtUmVmRWxlbWVudHMs
IG5hbWUpKTsKKyAgICB9CisKKyAgICB+UHJvcGVydHlOb2RlTGlzdCgpOworCisgICAgUHJvcGVy
dHlWYWx1ZUFycmF5IGdldFZhbHVlcygpIGNvbnN0OworCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IFByb3BlcnR5Tm9kZUxpc3QoRWxlbWVudCogaXRlbUVsZW1lbnQsIFZlY3RvcjxFbGVtZW50Kj4g
aXRlbVJlZkVsZW1lbnRzLCBjb25zdCBTdHJpbmcmIG5hbWUpOworCisgICAgdmlydHVhbCBib29s
IG5vZGVNYXRjaGVzKEVsZW1lbnQqKSBjb25zdDsKKworICAgIGJvb2wgaXNWYWxpZEFuY2VzdG9y
KGNvbnN0IE5vZGUqIHRlc3RFbGVtZW50LCBjb25zdCBOb2RlICpvdGhlcikgY29uc3Q7CisKKyAg
ICBTdHJpbmcgbV9uYW1lOworICAgIFJlZlB0cjxFbGVtZW50PiBtX2l0ZW1FbGVtZW50OworICAg
IFZlY3RvcjxFbGVtZW50Kj4gbV9pdGVtUmVmRWxlbWVudHM7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQorCisjZW5kaWYgLy8gU3Rh
dGljTm9kZUxpc3RfaApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3Qu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0Lmlk
bAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0Lmlk
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAx
MiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAq
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVp
dGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBjb3JlIHsKKwor
ICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1JQ1JPREFUQSwKKyAgICAgICAg
SW5kZXhlZEdldHRlciwKKyAgICAgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QKKyAgICBdIFByb3Bl
cnR5Tm9kZUxpc3QgOiBOb2RlTGlzdCB7CisKKyAgICAgICAgc2VxdWVuY2U8TWljcm9EYXRhSXRl
bVZhbHVlPiBnZXRWYWx1ZXMoKTsKKyAgICAgICAgTm9kZSBpdGVtKGluIHVuc2lnbmVkIGxvbmcg
aW5kZXgpOworCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0
aDsKKyAgICB9OworfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMTE4OTE3KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3
ICszOSw3IEBACiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKICNpbmNsdWRlICJOb2RlLmgiCi0jaW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKKyNpbmNs
dWRlICJQcm9wZXJ0eU5vZGVMaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjU4
LDIxICsyNTgsMTUgQEAgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBIVE1MUHJvcGVydGllcwog
ICAgIHJldHVybiBtX2NhY2hlLnByb3BlcnR5TmFtZXM7CiB9CiAKLVBhc3NSZWZQdHI8Tm9kZUxp
c3Q+IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6bmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFt
ZSkgY29uc3QKK1Bhc3NSZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4gSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uOjpuYW1lZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAogewogICAgIGlmICgh
dG9IVE1MRWxlbWVudChiYXNlKCkpLT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1zY29wZUF0dHIpKQog
ICAgICAgcmV0dXJuIDA7CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbmFtZWRJdGVtczsK
LQotICAgIHVwZGF0ZU5hbWVDYWNoZSgpOwotCi0gICAgVmVjdG9yPEVsZW1lbnQqPiogcHJvcGVy
dHlSZXN1bHRzID0gbV9jYWNoZS5wcm9wZXJ0eUNhY2hlLmdldChBdG9taWNTdHJpbmcobmFtZSku
aW1wbCgpKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBwcm9wZXJ0eVJlc3VsdHMgJiYgaSA8
IHByb3BlcnR5UmVzdWx0cy0+c2l6ZSgpOyArK2kpCi0gICAgICAgIG5hbWVkSXRlbXMuYXBwZW5k
KHByb3BlcnR5UmVzdWx0cy0+YXQoaSkpOworICAgIGludmFsaWRhdGVDYWNoZUlmTmVlZGVkKCk7
CisgICAgdXBkYXRlUmVmRWxlbWVudHMoKTsKIAotICAgIC8vIEZJWE1FOiBIVE1MNSBzcGVjaWZp
ZXMgdGhhdCB0aGlzIHNob3VsZCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdC4KLSAgICByZXR1cm4g
bmFtZWRJdGVtcy5pc0VtcHR5KCkgPyAwIDogU3RhdGljTm9kZUxpc3Q6OmFkb3B0KG5hbWVkSXRl
bXMpOworICAgIHJldHVybiBiYXNlKCktPnByb3BlcnR5Tm9kZUxpc3QobV9jYWNoZS5nZXRJdGVt
UmVmRWxlbWVudHMoKSwgbmFtZSk7CiB9CiAKIGJvb2wgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
OjpoYXNOYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdApAQCAtMjgwLDEx
ICsyNzQsMjEgQEAgYm9vbCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Omhhc05hbWVkSQogICAg
IGlmICghdG9IVE1MRWxlbWVudChiYXNlKCkpLT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1zY29wZUF0
dHIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICB1cGRhdGVOYW1lQ2FjaGUoKTsKKyAg
ICBpbnZhbGlkYXRlQ2FjaGVJZk5lZWRlZCgpOwogCi0gICAgaWYgKFZlY3RvcjxFbGVtZW50Kj4q
IHByb3BlcnR5Q2FjaGUgPSBtX2NhY2hlLnByb3BlcnR5Q2FjaGUuZ2V0KG5hbWUuaW1wbCgpKSkg
ewotICAgICAgICBpZiAoIXByb3BlcnR5Q2FjaGUtPmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgIGlmIChtX2NhY2hlLmhhc05hbWVkSXRlbSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICB1cGRhdGVSZWZFbGVtZW50cygpOworCisgICAgY29uc3QgVmVjdG9yPEVs
ZW1lbnQqPiYgaXRlbVJlZkVsZW1lbnRzID0gbV9jYWNoZS5nZXRJdGVtUmVmRWxlbWVudHMoKTsK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaXRlbVJlZkVsZW1lbnRzLnNpemUoKTsgKytp
KSB7CisgICAgICAgIGZvciAoRWxlbWVudCogZWxlbWVudCA9IGl0ZW1BZnRlcihpdGVtUmVmRWxl
bWVudHNbaV0sIDApOyBlbGVtZW50OyBlbGVtZW50ID0gaXRlbUFmdGVyKGl0ZW1SZWZFbGVtZW50
c1tpXSwgZWxlbWVudCkpIHsKKyAgICAgICAgICAgIGlmIChlbGVtZW50LT5pdGVtUHJvcCgpLT50
b2tlbnMoKS5jb250YWlucyhuYW1lKSkgeworICAgICAgICAgICAgICAgIG1fY2FjaGUuaGFzTmFt
ZWRJdGVtID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaAkocmV2aXNpb24gMTE4
OTE3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaAko
d29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBET01TdHJpbmdMaXN0OworY2xhc3MgUHJvcGVydHlOb2RlTGlzdDsKIAogY2xhc3MgSFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uIDogcHVibGljIEhUTUxDb2xsZWN0aW9uIHsKIHB1YmxpYzoK
QEAgLTUxLDcgKzUyLDcgQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0
PiBuYW1lcygpIGNvbnN0OwogCi0gICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gbmFtZWRJdGVtKGNv
bnN0IFN0cmluZyYpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4gbmFt
ZWRJdGVtKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIGJvb2wgaGFzTmFtZWRJdGVtKGNvbnN0
IEF0b21pY1N0cmluZyYpIGNvbnN0OwogCiBwcml2YXRlOgpAQCAtNzcsMTEgKzc4LDExIEBAIHBy
aXZhdGU6CiAgICAgICAgIHVuc2lnbmVkIGxlbmd0aDsKICAgICAgICAgYm9vbCBoYXNMZW5ndGg7
CiAgICAgICAgIGJvb2wgaGFzTmFtZUNhY2hlOwotICAgICAgICBOb2RlQ2FjaGVNYXAgcHJvcGVy
dHlDYWNoZTsKICAgICAgICAgVmVjdG9yPEVsZW1lbnQqPiBpdGVtUmVmRWxlbWVudHM7CiAgICAg
ICAgIFJlZlB0cjxET01TdHJpbmdMaXN0PiBwcm9wZXJ0eU5hbWVzOwogICAgICAgICB1bnNpZ25l
ZCBpdGVtUmVmRWxlbWVudFBvc2l0aW9uOwogICAgICAgICBib29sIGhhc0l0ZW1SZWZFbGVtZW50
czsKKyAgICAgICAgYm9vbCBoYXNOYW1lZEl0ZW07CiAKICAgICAgICAgdm9pZCBjbGVhcigpCiAg
ICAgICAgIHsKQEAgLTkxLDExICs5MiwxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAgbGVuZ3Ro
ID0gMDsKICAgICAgICAgICAgIGhhc0xlbmd0aCA9IGZhbHNlOwogICAgICAgICAgICAgaGFzTmFt
ZUNhY2hlID0gZmFsc2U7Ci0gICAgICAgICAgICBwcm9wZXJ0eUNhY2hlLmNsZWFyKCk7CiAgICAg
ICAgICAgICBpdGVtUmVmRWxlbWVudHMuY2xlYXIoKTsKICAgICAgICAgICAgIHByb3BlcnR5TmFt
ZXMuY2xlYXIoKTsKICAgICAgICAgICAgIGl0ZW1SZWZFbGVtZW50UG9zaXRpb24gPSAwOwogICAg
ICAgICAgICAgaGFzSXRlbVJlZkVsZW1lbnRzID0gZmFsc2U7CisgICAgICAgICAgICBoYXNOYW1l
ZEl0ZW0gPSBmYWxzZTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgc2V0SXRlbVJlZkVsZW1l
bnRzKGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4mIGVsZW1lbnRzKQpAQCAtMTIyLDEwICsxMjMsNiBA
QCBwcml2YXRlOgogCiAgICAgICAgICAgICBpZiAoIXByb3BlcnR5TmFtZXMtPmNvbnRhaW5zKHBy
b3BlcnR5TmFtZSkpCiAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lcy0+YXBwZW5kKHByb3Bl
cnR5TmFtZSk7Ci0KLSAgICAgICAgICAgIFZlY3RvcjxFbGVtZW50Kj4qIHByb3BlcnR5UmVzdWx0
cyA9IHByb3BlcnR5Q2FjaGUuZ2V0KHByb3BlcnR5TmFtZS5pbXBsKCkpOwotICAgICAgICAgICAg
aWYgKCFwcm9wZXJ0eVJlc3VsdHMgfHwgIXByb3BlcnR5UmVzdWx0cy0+Y29udGFpbnMoZWxlbWVu
dCkpCi0gICAgICAgICAgICAgICAgYXBwZW5kKHByb3BlcnR5Q2FjaGUsIHByb3BlcnR5TmFtZSwg
ZWxlbWVudCk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIHVwZGF0ZUN1cnJlbnRJdGVtKEVs
ZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkIHBvcywgdW5zaWduZWQgaXRlbVJlZkVsZW1lbnRQb3Mp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rp
b24uaWRsCShyZXZpc2lvbiAxMTg5MTcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQwLDYgQEAgbW9k
dWxlIGh0bWwgewogICAgICAgICBOb2RlIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ0xpc3QgbmFtZXM7Ci0KLSAgICAg
ICAgLy8gRklYTUU6IEhUTUw1IHNwZWNpZmllcyB0aGF0IHRoaXMgc2hvdWxkIHJldHVybiBQcm9w
ZXJ0eU5vZGVMaXN0LgotICAgICAgICBOb2RlTGlzdCBuYW1lZEl0ZW0oaW4gRE9NU3RyaW5nIG5h
bWUpOworICAgICAgICBQcm9wZXJ0eU5vZGVMaXN0IG5hbWVkSXRlbShpbiBET01TdHJpbmcgbmFt
ZSk7CiAgICAgfTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRlbVZh
bHVlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1W
YWx1ZS5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0
ZW1WYWx1ZS5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmln
aHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICog
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUg
aHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUlDUk9EQVRBLAor
ICAgICAgICBDdXN0b21Ub0pTT2JqZWN0CisgICAgXSBNaWNyb0RhdGFJdGVtVmFsdWUgeworICAg
IH07Cit9CisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDExODkx
NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMzY5LDYgKzM2OSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgRG9j
dW1lbnRDb25zdHJ1Y3RvciBEb2N1bWVudDsKICAgICAgICAgYXR0cmlidXRlIE5vZGVDb25zdHJ1
Y3RvciBOb2RlOwogICAgICAgICBhdHRyaWJ1dGUgTm9kZUxpc3RDb25zdHJ1Y3RvciBOb2RlTGlz
dDsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEFdIFByb3BlcnR5Tm9k
ZUxpc3RDb25zdHJ1Y3RvciBQcm9wZXJ0eU5vZGVMaXN0OwogICAgICAgICBhdHRyaWJ1dGUgTmFt
ZWROb2RlTWFwQ29uc3RydWN0b3IgTmFtZWROb2RlTWFwOwogICAgICAgICBhdHRyaWJ1dGUgQ2hh
cmFjdGVyRGF0YUNvbnN0cnVjdG9yIENoYXJhY3RlckRhdGE7CiAgICAgICAgIGF0dHJpYnV0ZSBB
dHRyQ29uc3RydWN0b3IgQXR0cjsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDExODkxNykKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA1
LTMwICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6
IEltcGxlbWVudCBQcm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMjY5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3BlYzogaHR0cDovL3d3dy53aGF0d2cub3Jn
L3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLWRvbS1pbnRlcmZh
Y2VzLmh0bWwjcHJvcGVydHlub2RlbGlzdAorICAgICAgICBBZGRlZCB0ZXN0IGNhc2VzIGZvciBQ
cm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZSBhbmQgUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMo
KSBtZXRob2QuCisKKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJldHVy
bnMtcHJvcGVydHlub2RlbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZh
bHVlcy1hcnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3Bl
cnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1
ZS1vZi1lYWNoLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9E
YXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMt
dGVzdC5odG1sOiBBZGRlZC4KKwogMjAxMi0wNS0zMCAgU3RlcGhlbiBDaGVubmV5ICA8c2NoZW5u
ZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gTGF5b3V0IFRlc3QgaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2Uvd2VibS92aWRlby1tZWRpYS1zb3VyY2UtKi5odG1sIGlz
IGZsYWt5CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJl
dHVybnMtcHJvcGVydHlub2RlbGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxp
c3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitQcm9wZXJ0aWVzQ29sbGVjdGlvbi5uYW1lZEl0
ZW0obmFtZSkgbXVzdCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdC4KKworUEFTUyBlbGVtZW50LnBy
b3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKSBpbnN0YW5jZW9mIFByb3BlcnR5Tm9kZUxpc3QgaXMg
dHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3RhbmNlb2YgUHJvcGVydHlO
b2RlTGlzdCBpcyB0cnVlCisKK1Byb3BlcnR5Tm9kZUxpc3QgaW50ZXJmYWNlIGluaGVyaXRlZCBm
cm9tIHRoZSBOb2RlTGlzdCBpbnRlcmZhY2UuCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1l
ZEl0ZW0oJ2ZvbycpIGluc3RhbmNlb2YgTm9kZUxpc3QgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnBy
b3BlcnRpZXNbJ2ZvbyddIGluc3RhbmNlb2YgTm9kZUxpc3QgaXMgdHJ1ZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRl
bS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+UHJvcGVydGllc0NvbGxlY3Rpb24ubmFt
ZWRJdGVtKG5hbWUpIG11c3QgcmV0dXJuIFByb3BlcnR5Tm9kZUxpc3QuPC9wPgorPGRpdiBpdGVt
c2NvcGUgaWQ9Im1pY3JvZGF0YWl0ZW0iPgorPGRpdiBpdGVtcHJvcD0iZm9vIj48L2Rpdj4KKzwv
ZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWljcm9kYXRhaXRlbSIpOworCitzaG91bGRCZVRydWUo
ImVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpIGluc3RhbmNlb2YgUHJvcGVydHlO
b2RlTGlzdCIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3Rh
bmNlb2YgUHJvcGVydHlOb2RlTGlzdCIpOworCitkZWJ1ZygiPGJyPlByb3BlcnR5Tm9kZUxpc3Qg
aW50ZXJmYWNlIGluaGVyaXRlZCBmcm9tIHRoZSBOb2RlTGlzdCBpbnRlcmZhY2UuIikKK3Nob3Vs
ZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykgaW5zdGFuY2VvZiBO
b2RlTGlzdCIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3Rh
bmNlb2YgTm9kZUxpc3QiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1
ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0
ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFy
cmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQxIEBACitUaGlzIHRlc3QgZW5zdXJlIHRo
YXQgUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBhcnJheSByZXR1cm5zIGFuIGFycmF5IHdo
b3NlIHZhbHVzZSBhcmUgb2J0YWluZWQgZnJvbSB0aGUgaXRlbVZhbHVlIERPTSBwcm9wZXJ0eSBv
ZiBlYWNoIG9mIHRoZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSB0aGUgb2JqZWN0LCBpbiB0cmVl
IG9yZGVyLgorCisKK3Byb3BlcnR5IGluZGV4IDAsIHRhZyBESVYKK1BBU1MgdmFsdWVzQXJyYXlb
aV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDEsIHRh
ZyBTUEFOCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZh
bHVlCitwcm9wZXJ0eSBpbmRleCAyLCB0YWcgTUVUQQorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBw
cm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMywgdGFnIEFVRElP
CitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitw
cm9wZXJ0eSBpbmRleCA0LCB0YWcgRU1CRUQKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVy
dHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDUsIHRhZyBJRlJBTUUKK1BB
U1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3Bl
cnR5IGluZGV4IDYsIHRhZyBJTUcKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2Rl
TGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDcsIHRhZyBTT1VSQ0UKK1BBU1MgdmFs
dWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGlu
ZGV4IDgsIHRhZyBWSURFTworUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0
W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggOSwgdGFnIFRSQUNLCitQQVNTIHZhbHVlc0Fy
cmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAx
MCwgdGFnIEEKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVt
VmFsdWUKK3Byb3BlcnR5IGluZGV4IDExLCB0YWcgQVJFQQorUEFTUyB2YWx1ZXNBcnJheVtpXSBp
cyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMTIsIHRhZyBM
SU5LCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVl
Citwcm9wZXJ0eSBpbmRleCAxMywgdGFnIE9CSkVDVAorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBw
cm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMTQsIHRhZyBQCitQ
QVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9w
ZXJ0eSBpbmRleCAxNSwgdGFnIFNQQU4KK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlO
b2RlTGlzdFtpXS5pdGVtVmFsdWUKK1BBU1MgdmFsdWVzQXJyYXkubGVuZ3RoIGlzIDE2CitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgICAgICAgCisK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdl
dHZhbHVlcy1hcnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVt
ZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3By
b3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12
YWx1ZS1vZi1lYWNoLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy1hcnJheS12YWx1ZXMt
b2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZSB0aGF0IFByb3BlcnR5Tm9kZUxpc3QuZ2V0
VmFsdWVzKCkgYXJyYXkgcmV0dXJucyBhbiBhcnJheSB3aG9zZSB2YWx1c2UgYXJlIG9idGFpbmVk
IGZyb20gdGhlIGl0ZW1WYWx1ZSBET00gcHJvcGVydHkgb2YgZWFjaCBvZiB0aGUgZWxlbWVudHMg
cmVwcmVzZW50ZWQgYnkgdGhlIG9iamVjdCwgaW4gdHJlZSBvcmRlci48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKworPGRpdj4KKzxkaXYgaWQ9ImlkMSI+Cis8ZGl2IGl0ZW1wcm9wPSJm
b28iPgorPHNwYW4gaXRlbXByb3A9ImZvbyIgaXRlbXNjb3BlPjwvc3Bhbj4KKzwvZGl2PgorPGRp
diBpdGVtc2NvcGUgaXRlbXJlZj0iaWQxIj4KKzxtZXRhIGl0ZW1wcm9wPSJmb28iIGNvbnRlbnQ9
InRlc3QiIC8+Cis8YXVkaW8gaXRlbXByb3A9ImZvbyIgc3JjPSJhdWRpby5tcDMiPjwvYXVkaW8+
Cis8ZW1iZWQgaXRlbXByb3A9ImZvbyIgc3JjPSJ0ZXN0LnN3ZiIgLz4KKzxpZnJhbWUgaXRlbXBy
b3A9ImZvbyIgc3JjPSJ0ZXN0Lmh0bWwiPjwvaWZyYW1lPgorPGltZyBpdGVtcHJvcD0iZm9vIiBz
cmM9InRlc3QuanBnIiAvPgorPGF1ZGlvIGNvbnRyb2xzPSJjb250cm9scyI+Cis8c291cmNlIGl0
ZW1wcm9wPSJmb28iIHNyYz0ic29uZy5tcDMiIHR5cGU9ImF1ZGlvL21wMyIgLz4KKzwvYXVkaW8+
Cis8dmlkZW8gaXRlbXByb3A9ImZvbyIgc3JjPSJ2aWRlby5tcDQiPjwvdmlkZW8+Cis8dmlkZW8g
c3JjPSJ2aWRlby5tcDQiPgorPHRyYWNrIGl0ZW1wcm9wPSJmb28iIHNyYz0ic3VidGl0bGVzX2Vu
LnZ0dCI+Cis8L3ZpZGVvPgorPGEgaXRlbXByb3A9ImZvbyIgc3JjPSJsaW5rLmh0bWwiPjwvYT4K
KzxtYXA+Cis8YXJlYSBpdGVtcHJvcD0iZm9vIiBocmVmPSJ0ZXN0Lmh0bWwiIC8+Cis8L21hcD4K
KzxsaW5rIGl0ZW1wcm9wPSJmb28iIGhyZWY9InRlc3QuY3NzIiAvPgorPG9iamVjdCBpdGVtcHJv
cD0iZm9vIiBkYXRhPSJ0ZXN0LnN3ZiI+PC9vYmplY3Q+Cis8cCBpdGVtcHJvcD0iZm9vIj4KKzxz
cGFuIGl0ZW1wcm9wPSJmb28iIGl0ZW1zY29wZT4KKzxhIGl0ZW1wcm9wPSJmb28iIHNyYz0idGVz
dF9hbmNob3IuaHRtbCI+PC9hPgorPC9zcGFuPgorPC9wPgorPC9kaXY+Cis8L2Rpdj4KKworPHNj
cmlwdD4KK3ZhciBpdGVtID0gZG9jdW1lbnQuZ2V0SXRlbXMoKVswXTsKK3ZhciBwcm9wZXJ0eU5v
ZGVMaXN0ID0gaXRlbS5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJyk7Cit2YXIgdmFsdWVzQXJy
YXkgPSBwcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpOworCitkZWJ1ZygnJyk7Citmb3IgKHZh
ciBpID0gMDsgaSA8IHByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoOyBpKyspIHsKKyAgICBkZWJ1Zygn
cHJvcGVydHkgaW5kZXggJyArIGkgKyAnLCB0YWcgJyArIHByb3BlcnR5Tm9kZUxpc3RbaV0udGFn
TmFtZSk7CisgICAgc2hvdWxkQmUoInZhbHVlc0FycmF5W2ldIiwgInByb3BlcnR5Tm9kZUxpc3Rb
aV0uaXRlbVZhbHVlIik7Cit9CisKK3Nob3VsZEJlKCJ2YWx1ZXNBcnJheS5sZW5ndGgiLCAnMTYn
KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0
eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10
ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitQcm9wZXJ0eU5v
ZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCB0ZXN0LgorCitQcm9wZXJ0eU5vZGVMaXN0LmdldFZh
bHVlcygpIG1ldGhvZCBtdXN0IHJldHVybiBhbiBhcnJheS4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0
aWVzLm5hbWVkSXRlbSgnZm9vJykuZ2V0VmFsdWVzKCkgaW5zdGFuY2VvZiBBcnJheSBpcyB0cnVl
CitQQVNTIGVsZW1lbnQucHJvcGVydGllc1snZm9vJ10uZ2V0VmFsdWVzKCkgaW5zdGFuY2VvZiBB
cnJheSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9k
ZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxp
c3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21p
Y3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5Qcm9wZXJ0
eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCB0ZXN0LjwvcD4KKzxkaXYgaXRlbXNjb3BlIGlk
PSJpdGVtIj4KKzxkaXYgaXRlbXByb3A9ImZvbyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2l0ZW0nKTsKK2RlYnVnKCJQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhv
ZCBtdXN0IHJldHVybiBhbiBhcnJheS4iKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0
aWVzLm5hbWVkSXRlbSgnZm9vJykuZ2V0VmFsdWVzKCkgaW5zdGFuY2VvZiBBcnJheSIpOworc2hv
dWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddLmdldFZhbHVlcygpIGluc3RhbmNl
b2YgQXJyYXkiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="151756"
          type_id="1"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148559</attachid>
            <date>2012-06-20 07:17:52 -0700</date>
            <delta_ts>2012-06-25 06:21:32 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_20120620.diff</filename>
            <type>text/plain</type>
            <size>74591</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMDgyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc1IEBACisyMDEyLTA2LTIwICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEltcGxlbWVudCBQ
cm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU3BlYzogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjcHJv
cGVydHlub2RlbGlzdAorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRp
dGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFp
bmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC10ZXN0LWFk
ZC1yZW1vdmUtZWxlbWVudC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvZ29iamVjdC9H
TlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1
ZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0pTKTogQWRkZWQgdG9KUygpIGN1c3RvbSBtZXRob2QuIFJldHVybnMgTm9kZSBpZiBpdGVt
VmFsdWUgaXMgbm9kZSBlbHNlIHJldHVybnMgU3RyaW5nLgorICAgICAgICAqIGJpbmRpbmdzL3Y4
L2N1c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KTogQWRkZWQgdG9WOCBjdXN0b20gY29k
ZS4KKyAgICAgICAgKiBkb20vTWljcm9EYXRhSXRlbUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWljcm9EYXRhSXRlbUxpc3Q6On5NaWNyb0RhdGFJdGVtTGlzdCk6CisgICAgICAgICogZG9t
L05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aW52YWxpZGF0ZU5vZGVMaXN0c0Nh
Y2hlQWZ0ZXJBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVMaXN0c05v
ZGVEYXRhOjppbnZhbGlkYXRlQ2FjaGVzVGhhdERlcGVuZE9uQXR0cmlidXRlcyk6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlTGlzdHNOb2RlRGF0YTo6aXNFbXB0eSk6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpwcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6cHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZW1v
dmVDYWNoZWRQcm9wZXJ0eU5vZGVMaXN0KToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChOb2RlKToKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRh
Lmg6CisgICAgICAgIChOb2RlTGlzdHNOb2RlRGF0YSk6CisgICAgICAgICogZG9tL1Byb3BlcnR5
Tm9kZUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6UHJvcGVydHlOb2RlTGlzdDo6UHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9wZXJ0eU5vZGVMaXN0Ojp+UHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9wZXJ0eU5vZGVMaXN0OjplbGVtZW50RGVmaW5lc0RpZmZlcmVudEl0ZW0pOgorICAgICAg
ICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6ZWxlbWVudElzUHJvcGVydHlPZlJlZkVsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6bm9kZU1hdGNoZXMpOiBS
ZXR1cm5zIHRydWUgaWYgdGVzdEVsZW1lbnQgaXMgYSBwcm9wZXJ0eSBuYW1lZCAnbmFtZScgb2YK
KyAgICAgICAgYSBNaWNyb2RhdGEgdG9wIGxldmVsIGl0ZW0uCisgICAgICAgIChXZWJDb3JlOjpQ
cm9wZXJ0eU5vZGVMaXN0OjpnZXRWYWx1ZXMpOiBSZXR1cm5zIFByb3BlcnR5VmFsdWVBcnJheSB3
aG9zZSB2YWx1ZXMgYXJlIG9idGFpbmVkIGZyb20gdGhlCisgICAgICAgIGl0ZW1WYWx1ZSBET00g
cHJvcGVydHkgb2YgZWFjaCBvZiB0aGUgZWxlbWVudHMgcmVwcmVzZW50ZWQgYnkgdGhlIG9iamVj
dCwgaW4gdHJlZSBvcmRlci4KKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6Omlu
dmFsaWRhdGVDYWNoZSk6CisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFByb3BlcnR5Tm9kZUxpc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20vUHJv
cGVydHlOb2RlTGlzdC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bjo6ZmluZFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uOjpuYW1lZEl0ZW0pOiBSZXR1cm4gUHJvcGVydHlOb2RlTGlzdCBvYmplY3QgaW5zdGVh
ZCBvZiBOb2RlTGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bjo6aGFzTmFtZWRJdGVtKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b24pOgorICAgICAgICAqIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbDoKKyAgICAg
ICAgKiBodG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGw6IEFkZGVkLgorICAgICAgICAqIHBhZ2Uv
RE9NV2luZG93LmlkbDoKKwogMjAxMi0wNi0yMCAgWmVldiBMaWViZXIgIDx6bGllYmVyQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFJlbW92ZSByZWR1bmRhbnQgI2luY2x1ZGVz
IGluIGNvbXBvc2l0b3IKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMjA4MjAp
CisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjM0
LDYgKzIzNCw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGRvbS9Qb3BTdGF0ZUV2ZW50
LmlkbAogICAgIGRvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsCiAgICAgZG9tL1Byb2dyZXNz
RXZlbnQuaWRsCisgICAgZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRsCiAgICAgZG9tL1JhbmdlRXhj
ZXB0aW9uLmlkbAogICAgIGRvbS9SYW5nZS5pZGwKICAgICBkb20vU2hhZG93Um9vdC5pZGwKQEAg
LTM0MCw2ICszNDEsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBodG1sL0ltYWdlRGF0
YS5pZGwKICAgICBodG1sL01lZGlhQ29udHJvbGxlci5pZGwKICAgICBodG1sL01lZGlhRXJyb3Iu
aWRsCisgICAgaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsCiAgICAgaHRtbC9SYWRpb05vZGVM
aXN0LmlkbAogICAgIGh0bWwvVGV4dE1ldHJpY3MuaWRsCiAgICAgaHRtbC9UaW1lUmFuZ2VzLmlk
bApAQCAtNjI5LDYgKzYzMSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vUG9zaXRp
b25JdGVyYXRvci5jcHAKICAgICBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAogICAgIGRv
bS9Qcm9ncmVzc0V2ZW50LmNwcAorICAgIGRvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcAogICAgIGRv
bS9RdWFsaWZpZWROYW1lLmNwcAogICAgIGRvbS9SYW5nZS5jcHAKICAgICBkb20vUmFuZ2VFeGNl
cHRpb24uY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCShyZXZpc2lvbiAxMjA4
MjApCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2NSw2ICsyNjUsNyBAQAogI2luY2x1ZGUgIkpTUG9zaXRpb25FcnJvckNhbGxiYWNrLmNw
cCIKICNpbmNsdWRlICJKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNQ
cm9ncmVzc0V2ZW50LmNwcCIKKyNpbmNsdWRlICJKU1Byb3BlcnR5Tm9kZUxpc3QuY3BwIgogI2lu
Y2x1ZGUgIkpTUmFkaW9Ob2RlTGlzdC5jcHAiCiAjaW5jbHVkZSAiSlNSYW5nZS5jcHAiCiAjaW5j
bHVkZSAiSlNSYW5nZUV4Y2VwdGlvbi5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UJKHJldmlzaW9uIDEyMDgyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTIzNiw2ICsyMzYsOCBAQCBCSU5ESU5HX0lETFMgPSBc
CiAgICAgJChXZWJDb3JlKS9kb20vUG9wU3RhdGVFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkv
ZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1Byb2dy
ZXNzRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCisg
ICAgJChXZWJDb3JlKS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkv
ZG9tL1JhbmdlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwgXApA
QCAtMzQyLDYgKzM0NCw3IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
SW1hZ2VEYXRhLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL01lZGlhQ29udHJvbGxlci5pZGwg
XAogICAgICQoV2ViQ29yZSkvaHRtbC9NZWRpYUVycm9yLmlkbCBcCisgICAgJChXZWJDb3JlKS9o
dG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9SYWRpb05v
ZGVMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL1RleHRNZXRyaWNzLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9odG1sL1RpbWVSYW5nZXMuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5wcmkJKHJldmlzaW9uIDEyMDgyMCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjQ5LDYgKzI0OSw3IEBAIElETF9CSU5ESU5HUyAr
PSBcCiAgICAgJCRQV0QvZG9tL1BvcFN0YXRlRXZlbnQuaWRsIFwKICAgICAkJFBXRC9kb20vUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmlkbCBcCiAgICAgJCRQV0QvZG9tL1Byb2dyZXNzRXZlbnQuaWRs
IFwKKyAgICAkJFBXRC9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwgXAogICAgICQkUFdEL2RvbS9S
YW5nZUV4Y2VwdGlvbi5pZGwgXAogICAgICQkUFdEL2RvbS9SYW5nZS5pZGwgXAogICAgICQkUFdE
L2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwgXApAQCAtMzkyLDYgKzM5Myw3
IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0QvaHRtbC9JbWFnZURhdGEuaWRsIFwKICAg
ICAkJFBXRC9odG1sL01lZGlhQ29udHJvbGxlci5pZGwgXAogICAgICQkUFdEL2h0bWwvTWVkaWFF
cnJvci5pZGwgXAorICAgICQkUFdEL2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmlkbCBcCiAgICAg
JCRQV0QvaHRtbC9SYWRpb05vZGVMaXN0LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9UZXh0TWV0cmlj
cy5pZGwgXAogICAgICQkUFdEL2h0bWwvVGltZVJhbmdlcy5pZGwgXApJbmRleDogU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMjA4MjApCisrKyBTb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0zOTksNiArMzk5LDggQEAgd2Vi
Y29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVzc2Fn
ZUV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZXNzYWdlUG9ydC5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZXNzYWdlUG9ydC5oIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTWljcm9EYXRhSXRlbVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU01pY3JvRGF0YUl0ZW1WYWx1ZS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TW91c2VFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb3VzZUV2ZW50Lmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBcCkBAIC00
NjksNiArNDcxLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNQcm9ncmVzc0V2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1By
b2dyZXNzRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Byb3BlcnR5Tm9kZUxp
c3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJvcGVydHlOb2RlTGlzdC5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmFkaW9Ob2RlTGlzdC5jcHAgXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNSYWRpb05vZGVMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNSYW5nZS5jcHAgXApAQCAtNzgwLDYgKzc4NCw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0g
XAogCSQoV2ViQ29yZSkvZG9tL1BvcFN0YXRlRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9Qcm9ncmVzc0V2ZW50
LmlkbCBcCisJJChXZWJDb3JlKS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwgXAogCSQoV2ViQ29y
ZSkvZG9tL1JhbmdlLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsIFwK
IAkkKFdlYkNvcmUpL2RvbS9TaGFkb3dSb290LmlkbCBcCkBAIC04ODYsNiArODkxLDcgQEAgZG9t
X2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9odG1sL01lZGlhRXJyb3IuaWRsIFwKIAkk
KFdlYkNvcmUpL2h0bWwvTWVkaWFLZXlFcnJvci5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9NZWRp
YUtleUV2ZW50LmlkbCBcCisJJChXZWJDb3JlKS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwg
XAogCSQoV2ViQ29yZSkvaHRtbC9SYWRpb05vZGVMaXN0LmlkbCBcCiAJJChXZWJDb3JlKS9odG1s
L1RleHRNZXRyaWNzLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL1RpbWVSYW5nZXMuaWRsIFwKQEAg
LTE0NDcsNiArMTQ1Myw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBcCkBAIC0xOTY1LDYgKzE5NzIsOCBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24uaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Byb2dyZXNzRXZlbnQuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vUHJvZ3Jlc3NFdmVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVy
dHlOb2RlTGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvZG9tL1F1YWxpZmllZE5hbWUuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRh
cnlQb2ludC5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTIwODIwKQorKysgU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtNTk2LDYgKzU5Niw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmNwcCBcCiAgICAgZG9tL1Byb2Nl
c3NpbmdJbnN0cnVjdGlvbi5jcHAgXAogICAgIGRvbS9Qcm9ncmVzc0V2ZW50LmNwcCBcCisgICAg
ZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwIFwKICAgICBkb20vUXVhbGlmaWVkTmFtZS5jcHAgXAog
ICAgIGRvbS9SYW5nZS5jcHAgXAogICAgIGRvbS9SYW5nZUV4Y2VwdGlvbi5jcHAgXApAQCAtMTc2
OSw2ICsxNzcwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaCBc
CiAgICAgZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKICAgICBkb20vUHJvZ3Jlc3NFdmVu
dC5oIFwKKyAgICBkb20vUHJvcGVydHlOb2RlTGlzdC5oIFwKICAgICBkb20vUXVhbGlmaWVkTmFt
ZS5oIFwKICAgICBkb20vUmFuZ2UuaCBcCiAgICAgZG9tL1JlZ2lzdGVyZWRFdmVudExpc3RlbmVy
LmggXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTIwODIwKQorKysgU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC05NzgsNiArOTc4LDcgQEAKICAg
ICAgICAgICAgICdkb20vUG9wU3RhdGVFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsJywKICAgICAgICAgICAgICdkb20vUHJvZ3Jlc3NFdmVudC5p
ZGwnLAorICAgICAgICAgICAgJ2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbCcsCiAgICAgICAgICAg
ICAnZG9tL1JhbmdlLmlkbCcsCiAgICAgICAgICAgICAnZG9tL1JhbmdlRXhjZXB0aW9uLmlkbCcs
CiAgICAgICAgICAgICAnZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbCcsCkBA
IC0xMDg1LDYgKzEwODYsNyBAQAogICAgICAgICAgICAgJ2h0bWwvSW1hZ2VEYXRhLmlkbCcsCiAg
ICAgICAgICAgICAnaHRtbC9NZWRpYUNvbnRyb2xsZXIuaWRsJywKICAgICAgICAgICAgICdodG1s
L01lZGlhRXJyb3IuaWRsJywKKyAgICAgICAgICAgICdodG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvTWVkaWFLZXlFcnJvci5pZGwnLAogICAgICAgICAgICAg
J2h0bWwvTWVkaWFLZXlFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvUmFkaW9Ob2RlTGlz
dC5pZGwnLApAQCAtMjAxMiw2ICsyMDE0LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U01lc3NhZ2VFdmVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVz
c2FnZVBvcnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VQ
b3J0Q3VzdG9tLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZh
bHVlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxi
YWNrQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBD
dXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwJywK
QEAgLTIzMjYsNiArMjMyOSw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4
L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZXNDb2xsZWN0aW9uLmNw
cCcsCkBAIC01Mzg1LDYgKzUzODksOCBAQAogICAgICAgICAgICAgJ2RvbS9Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaCcsCiAgICAgICAgICAgICAnZG9tL1Byb2dyZXNzRXZlbnQuY3BwJywKICAgICAg
ICAgICAgICdkb20vUHJvZ3Jlc3NFdmVudC5oJywKKyAgICAgICAgICAgICdkb20vUHJvcGVydHlO
b2RlTGlzdC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmgnLAogICAg
ICAgICAgICAgJ2RvbS9RdWFsaWZpZWROYW1lLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1Jhbmdl
LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1JhbmdlRXhjZXB0aW9uLmNwcCcsCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gMTIw
ODIwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdv
cmtpbmcgY29weSkKQEAgLTExMzEwLDYgKzExMzEwLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgog
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNaWNyb0RhdGFJdGVtVmFsdWUuY3BwIgor
CQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19D
RkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVj
dGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJ
PFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XEpTTWljcm9EYXRhSXRlbVZhbHVlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJ
CQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFt
ZSlcRGVyaXZlZFNvdXJjZXNcSlNNZXRhZGF0YS5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgpAQCAtMTI5MzQsNiArMTI5OTAsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1Byb3BlcnR5Tm9kZUxpc3QuY3BwIgorCQkJCT4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTUHJv
cGVydHlOb2RlTGlzdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRp
dmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2
ZWRTb3VyY2VzXEpTUmFkaW9Ob2RlTGlzdC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgpAQCAtNTI1OTksNiArNTI3MTEsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFByb3BlcnR5Tm9kZUxpc3QuY3BwIgorCQkJCT4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21c
UHJvcGVydHlOb2RlTGlzdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxkb21cUXVhbGlmaWVkTmFtZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpA
QCAtNjgxMzgsNiArNjgzMDYsNjIgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTWljcm9EYXRhSXRlbVZhbHVlQ3Vz
dG9tLmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJ
CQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9
IlJlbGVhc2V8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4K
KwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJ
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJ
TmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIK
KwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJQcm9kdWN0aW9u
fFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8
VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGJpbmRpbmdzXGpzXEpTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmgiCisJCQkJCT4K
KwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMTIwODIwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNzc5LDEyICsx
Nzc5LDEyIEBACiAJCTZFMjFDNkMwMTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQz
RC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTIx
QzZCRjExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwICovOyB9OwogCQk2
RTIxQzZDMjExMjYzMzk5MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTIxQzZDMTExMjYzMzk5
MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgKi87IH07CiAJCTZFM0ZBRDM4MTQ3
MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRDM2MTQ3MzNGNDAw
MEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCAqLzsgfTsKLQkJNkUz
RkFEMzkxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRDM3MTQ3
MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggKi87IH07Ci0J
CTZFM0ZBRThFMTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4
QzE0NzMzRkRCMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwICovOyB9
OwotCQk2RTNGQUU4RjE0NzMzRkRCMDBFNDIzMDYgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMz
VEMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZB
RThEMTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oICovOyB9
OwogCQk2RTNGQUQzODE0NzMzRjQwMDBFNDIzMDcgLyogSlNXZWJHTERlcHRoVGV4dHVyZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUQzNjE0
NzMzRjQwMDBFNDIzMDcgLyogSlNXZWJHTERlcHRoVGV4dHVyZS5jcHAgKi87IH07CisJCTZFM0ZB
RDM5MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUQzNzE0NzMz
RjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oICovOyB9OwogCQk2
RTNGQUQzOTE0NzMzRjQwMDBFNDIzMDcgLyogSlNXZWJHTERlcHRoVGV4dHVyZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUzRkFEMzcxNDczM0Y0MDAw
RTQyMzA3IC8qIEpTV2ViR0xEZXB0aFRleHR1cmUuaCAqLzsgfTsKKwkJNkUzRkFFOEUxNDczM0ZE
QjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThDMTQ3MzNGREIwMEU0MjMw
NiAvKiBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi87IH07CiAJCTZFM0ZBRThFMTQ3
MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVyZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUU4QzE0NzMzRkRCMDBFNDIzMDcgLyog
V2ViR0xEZXB0aFRleHR1cmUuY3BwICovOyB9OworCQk2RTNGQUU4RjE0NzMzRkRCMDBFNDIzMDYg
LyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRThEMTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENv
bXByZXNzZWRUZXh0dXJlUzNUQy5oICovOyB9OwogCQk2RTNGQUU4RjE0NzMzRkRCMDBFNDIzMDcg
LyogV2ViR0xEZXB0aFRleHR1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDZFM0ZBRThEMTQ3MzNGREIwMEU0MjMwNyAvKiBXZWJHTERlcHRoVGV4dHVy
ZS5oICovOyB9OwogCQk2RTQ3RTY2MDEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFNDdFNjVF
MTBCNzk0NEIwMEIxODZDOCAvKiBXZWJHTEdldEluZm8uY3BwICovOyB9OwogCQk2RTQ3RTY2MTEw
Qjc5NDRCMDBCMTg2QzggLyogV2ViR0xHZXRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTQ3RTY1RjEwQjc5NDRCMDBCMTg2QzggLyogV2ViR0xH
ZXRJbmZvLmggKi87IH07CkBAIC0zMDY3LDYgKzMwNjcsMTIgQEAKIAkJOTAwMTc4ODExMkUwMzcw
NzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTAwMTc4N0YxMkUwMzcwNzAwNjQ4NDYyIC8q
IEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovOyB9OwogCQk5MTA4OUQzMjE0QzMzNjAwMDA1
QUZDNDkgLyogSlNVaW50OENsYW1wZWRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTEwODlEMzAxNEMzMzVDRDAwNUFGQzQ5IC8qIEpTVWludDhD
bGFtcGVkQXJyYXkuaCAqLzsgfTsKIAkJOTEwODlEMzMxNEMzMzYwNTAwNUFGQzQ5IC8qIEpTVWlu
dDhDbGFtcGVkQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTEwODlEMkYxNEMzMzVDRDAwNUFGQzQ5IC8qIEpTVWludDhDbGFtcGVkQXJyYXku
Y3BwICovOyB9OworCQk5MTE2RjAxNTE1OTIyMkY4MDAwMEVDMTUgLyogUHJvcGVydHlOb2RlTGlz
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTE2
RjAxNDE1OTIyMkY4MDAwMEVDMTUgLyogUHJvcGVydHlOb2RlTGlzdC5jcHAgKi87IH07CisJCTkx
MTZGMDE3MTU5MjIzMTUwMDAwRUMxNSAvKiBQcm9wZXJ0eU5vZGVMaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MTE2RjAxNjE1OTIyMzE1MDAwMEVD
MTUgLyogUHJvcGVydHlOb2RlTGlzdC5oICovOyB9OworCQk5MTE2RjAxQTE1OTIyM0NEMDAwMEVD
MTUgLyogSlNQcm9wcnR5Tm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTExNkYwMTkxNTkyMjNDRDAwMDBFQzE1IC8qIEpTUHJvcHJ0eU5v
ZGVMaXN0LmNwcCAqLzsgfTsKKwkJOTExNkYwMUMxNTkyMjNFQzAwMDBFQzE1IC8qIEpTUHJvcHJ0
eU5vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MTE2RjAxQjE1OTIyM0VDMDAwMEVDMTUgLyogSlNQcm9wcnR5Tm9kZUxpc3QuaCAqLzsgfTsK
KwkJOTExNkYwMUYxNTkyMjREMjAwMDBFQzE1IC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxMTZGMDFFMTU5
MjI0RDIwMDAwRUMxNSAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAgKi87IH07CisJCTkxMTZG
MDIxMTU5MjI0RTgwMDAwRUMxNSAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTExNkYwMjAxNTkyMjRFODAwMDBF
QzE1IC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlLmggKi87IH07CiAJCTkxQTM5MDVCMTRDMEY2MTEw
MEY2NzkwMSAvKiBKU1VpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkxQTM5MDVBMTRDMEY2MTEwMEY2NzkwMSAv
KiBKU1VpbnQ4Q2xhbXBlZEFycmF5Q3VzdG9tLmNwcCAqLzsgfTsKIAkJOTMwMkIwQkQwRDc5Rjgy
OTAwQzdFRTgzIC8qIFBhZ2VHcm91cC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzAyQjBCQzBENzlGODI5MDBDN0VFODMgLyogUGFnZUdyb3VwLmNw
cCAqLzsgfTsKIAkJOTMwMkIwQkYwRDc5RjgyQzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwMkIwQkUwRDc5Rjgy
QzAwQzdFRTgzIC8qIFBhZ2VHcm91cC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC04ODYyLDE0ICs4ODY4LDE0IEBACiAJCTZFMjFDNkJGMTEyNjMz
ODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzRC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZFMjFDNkMxMTEyNjMzOTkwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQz
RENHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29u
dGV4dDNEQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUQzNjE0NzMz
RjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RD
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUzRkFEMzcxNDczM0Y0MDAwRTQy
MzA2IC8qIEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk2RTNGQUU4QzE0NzMzRkRCMDBFNDIzMDYgLyogV2ViR0xDb21w
cmVzc2VkVGV4dHVyZVMzVEMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwOyBwYXRoID0gY2FudmFzL1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUz
RkFFOEQxNDczM0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVTM1RD
Lmg7IHBhdGggPSBjYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkUzRkFFOTAxNDczM0ZFQTAwRTQyMzA2IC8qIFdlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlUzNUQy5pZGw7IHBhdGggPSBjYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVy
ZVMzVEMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUQzNjE0NzMzRjQw
MDBFNDIzMDcgLyogSlNXZWJHTERlcHRoVGV4dHVyZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMRGVwdGhUZXh0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNkUzRkFEMzcxNDczM0Y0MDAwRTQyMzA2IC8qIEpTV2ViR0xDb21wcmVz
c2VkVGV4dHVyZVMzVEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RTNGQUQzNzE0NzMzRjQwMDBFNDIzMDcgLyogSlNXZWJHTERlcHRoVGV4dHVyZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMRGVwdGhUZXh0dXJlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFM0ZBRThDMTQ3MzNGREIwMEU0MjMwNiAvKiBXZWJHTENv
bXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHA7IHBhdGggPSBjYW52YXMvV2ViR0xD
b21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RTNGQUU4QzE0NzMzRkRCMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xEZXB0aFRleHR1cmUuY3BwOyBwYXRo
ID0gY2FudmFzL1dlYkdMRGVwdGhUZXh0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNkUzRkFFOEQxNDczM0ZEQjAwRTQyMzA2IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVT
M1RDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVTM1RDLmg7IHBhdGggPSBjYW52YXMvV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUzRkFFOEQxNDczM0ZEQjAwRTQyMzA3IC8q
IFdlYkdMRGVwdGhUZXh0dXJlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdl
YkdMRGVwdGhUZXh0dXJlLmg7IHBhdGggPSBjYW52YXMvV2ViR0xEZXB0aFRleHR1cmUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkUzRkFFOTAxNDczM0ZFQTAwRTQyMzA2IC8qIFdl
YkdMQ29tcHJlc3NlZFRleHR1cmVTM1RDLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJH
TENvbXByZXNzZWRUZXh0dXJlUzNUQy5pZGw7IHBhdGggPSBjYW52YXMvV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZVMzVEMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTNGQUU5MDE0
NzMzRkVBMDBFNDIzMDcgLyogV2ViR0xEZXB0aFRleHR1cmUuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bmFtZSA9IFdlYkdMRGVwdGhUZXh0dXJlLmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJHTERlcHRoVGV4
dHVyZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFNDdFNjVFMTBCNzk0NEIw
MEIxODZDOCAvKiBXZWJHTEdldEluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gV2ViR0xHZXRJbmZvLmNwcDsgcGF0aCA9IGNhbnZhcy9XZWJHTEdldEluZm8uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTQ3RTY1RjEwQjc5NDRCMDBCMTg2Qzgg
LyogV2ViR0xHZXRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdM
R2V0SW5mby5oOyBwYXRoID0gY2FudmFzL1dlYkdMR2V0SW5mby5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTAxMzMsNiArMTAxMzksMTQgQEAKIAkJOTAwMTc4N0YxMkUwMzcwNzAw
NjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTEwODlEMkYxNEMzMzVDRDAwNUFGQzQ5IC8qIEpTVWludDhDbGFtcGVk
QXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNVaW50OENs
YW1wZWRBcnJheS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkxMDg5RDMwMTRD
MzM1Q0QwMDVBRkM0OSAvKiBKU1VpbnQ4Q2xhbXBlZEFycmF5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTVWludDhDbGFtcGVkQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTExNkYwMTQxNTkyMjJGODAwMDBFQzE1IC8qIFByb3BlcnR5Tm9kZUxpc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvcGVydHlOb2RlTGlz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkxMTZGMDE2MTU5MjIzMTUwMDAw
RUMxNSAvKiBQcm9wZXJ0eU5vZGVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFByb3BlcnR5Tm9kZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTEx
NkYwMTgxNTkyMjMzNDAwMDBFQzE1IC8qIFByb3BlcnR5Tm9kZUxpc3QuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFByb3BlcnR5Tm9kZUxpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5MTE2RjAxOTE1OTIyM0NEMDAwMEVDMTUgLyogSlNQcm9wcnR5Tm9kZUxpc3QuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQcm9wcnR5Tm9kZUxpc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MTE2RjAxQjE1OTIyM0VDMDAwMEVD
MTUgLyogSlNQcm9wcnR5Tm9kZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNQcm9wcnR5Tm9kZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTEx
NkYwMUQxNTkyMjQ0RjAwMDBFQzE1IC8qIE1pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gTWljcm9EYXRhSXRlbVZhbHVlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTExNkYwMUUxNTkyMjREMjAwMDBFQzE1IC8qIEpTTWljcm9EYXRhSXRlbVZh
bHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWljcm9EYXRh
SXRlbVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTExNkYwMjAxNTky
MjRFODAwMDBFQzE1IC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTTWljcm9EYXRhSXRlbVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkxQTM5MDU4MTRDMEY0QjkwMEY2NzkwMSAvKiBVaW50OENsYW1wZWRBcnJh
eS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBuYW1lID0gVWludDhDbGFtcGVkQXJyYXkuaWRsOyBwYXRoID0gY2FudmFzL1VpbnQ4Q2xh
bXBlZEFycmF5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTFBMzkwNUExNEMw
RjYxMTAwRjY3OTAxIC8qIEpTVWludDhDbGFtcGVkQXJyYXlDdXN0b20uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNVaW50OENsYW1wZWRBcnJheUN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDJCMEJDMEQ3OUY4MjkwMEM3RUU4MyAv
KiBQYWdlR3JvdXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGFn
ZUdyb3VwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MzkxLDYgKzE3NDA1
LDcgQEAKIAkJCQkwN0E2RDFFQTE0OTExMzc3MDAwNTFEMEMgLyogTWVkaWFGcmFnbWVudFVSSVBh
cnNlci5oICovLAogCQkJCTlCMkY3Q0Y3MTQ1NjIxMjAwMDdGOEI1MCAvKiBNaWNyb0RhdGFJdGVt
VmFsdWUuY3BwICovLAogCQkJCTlCMkY3Q0Y4MTQ1NjIxMjAwMDdGOEI1MCAvKiBNaWNyb0RhdGFJ
dGVtVmFsdWUuaCAqLywKKwkJCQk5MTE2RjAxRDE1OTIyNDRGMDAwMEVDMTUgLyogTWljcm9EYXRh
SXRlbVZhbHVlLmlkbCAqLywKIAkJCQlGNTVCM0Q5MTEyNTFGMTJEMDAzRUYyNjkgLyogTW9udGhJ
bnB1dFR5cGUuY3BwICovLAogCQkJCUY1NUIzRDkyMTI1MUYxMkQwMDNFRjI2OSAvKiBNb250aElu
cHV0VHlwZS5oICovLAogCQkJCUY1NUIzRDkzMTI1MUYxMkQwMDNFRjI2OSAvKiBOdW1iZXJJbnB1
dFR5cGUuY3BwICovLApAQCAtMTgxNTgsNiArMTgxNzMsOCBAQAogCQkJCUNEMjdGNkUzMTQ1NzY3
NTgwMDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5oICovLAogCQkJCUU0NDYxNDEwMENENjgy
NjkwMEZBREE3NSAvKiBKU01lZGlhRXJyb3IuY3BwICovLAogCQkJCUU0NDYxNDExMENENjgyNjkw
MEZBREE3NSAvKiBKU01lZGlhRXJyb3IuaCAqLywKKwkJCQk5MTE2RjAxRTE1OTIyNEQyMDAwMEVD
MTUgLyogSlNNaWNyb0RhdGFJdGVtVmFsdWUuY3BwICovLAorCQkJCTkxMTZGMDIwMTU5MjI0RTgw
MDAwRUMxNSAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oICovLAogCQkJCTkwMDE3ODdFMTJFMDM3
MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwICovLAogCQkJCTkwMDE3
ODdGMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuaCAqLywKIAkJ
CQk2RUJGMEU3NDEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuY3BwICovLApA
QCAtMTg2NzAsNiArMTg2ODcsOCBAQAogCQkJCTY1REYzMUVDMDlEMUNDNjAwMDBCRTMyNSAvKiBK
U1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oICovLAogCQkJCUU0QjQyMzg1MENCRkI3M0MwMEFGMkVD
RSAvKiBKU1Byb2dyZXNzRXZlbnQuY3BwICovLAogCQkJCUU0QjQyMzg2MENCRkI3M0MwMEFGMkVD
RSAvKiBKU1Byb2dyZXNzRXZlbnQuaCAqLywKKwkJCQk5MTE2RjAxOTE1OTIyM0NEMDAwMEVDMTUg
LyogSlNQcm9wcnR5Tm9kZUxpc3QuY3BwICovLAorCQkJCTkxMTZGMDFCMTU5MjIzRUMwMDAwRUMx
NSAvKiBKU1Byb3BydHlOb2RlTGlzdC5oICovLAogCQkJCTQ5OThBRUNCMTNGOUQ2QzkwMDkwQjFB
QSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcCAqLywKIAkJCQk0OTk4QUVD
QzEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oICov
LAogCQkJCTRBMUU3MUEzMTRFMTA2QUMwMDYyNkY5RCAvKiBKU1NoYWRvd1Jvb3QuY3BwICovLApA
QCAtMjE0NjcsNiArMjE0ODYsOSBAQAogCQkJCUU0QjQxRTAxMENCRjhFQUEwMEFGMkVDRSAvKiBQ
cm9ncmVzc0V2ZW50LmNwcCAqLywKIAkJCQlFNEI0MUUwMjBDQkY4RUFBMDBBRjJFQ0UgLyogUHJv
Z3Jlc3NFdmVudC5oICovLAogCQkJCUU0QjQxRTAzMENCRjhFQUEwMEFGMkVDRSAvKiBQcm9ncmVz
c0V2ZW50LmlkbCAqLywKKwkJCQk5MTE2RjAxNDE1OTIyMkY4MDAwMEVDMTUgLyogUHJvcGVydHlO
b2RlTGlzdC5jcHAgKi8sCisJCQkJOTExNkYwMTYxNTkyMjMxNTAwMDBFQzE1IC8qIFByb3BlcnR5
Tm9kZUxpc3QuaCAqLywKKwkJCQk5MTE2RjAxODE1OTIyMzM0MDAwMEVDMTUgLyogUHJvcGVydHlO
b2RlTGlzdC5pZGwgKi8sCiAJCQkJNTUwQTBCQzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmll
ZE5hbWUuY3BwICovLAogCQkJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWRO
YW1lLmggKi8sCiAJCQkJRjUyM0QzMDMwMkRFNDQ3NjAxODYzNUNBIC8qIFJhbmdlLmNwcCAqLywK
QEAgLTI1MTEyLDYgKzI1MTM0LDkgQEAKIAkJCQlDRTdCMkRCMzE1ODZBQkFEMDA5OEIzRkEgLyog
QWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTdCMkRC
NTE1ODZBQkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MDk4N0MyNzE1N0Q2NzZEMDBCREE4MzUgLyogQ3VzdG9tRmlsdGVyR2xvYmFs
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTExNkYwMTcxNTkyMjMxNTAwMDBFQzE1IC8q
IFByb3BlcnR5Tm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTkxMTZGMDFDMTU5MjIzRUMw
MDAwRUMxNSAvKiBKU1Byb3BydHlOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTExNkYw
MjExNTkyMjRFODAwMDBFQzE1IC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKQEAgLTI4MTYwLDYgKzI4MTg1LDkgQEAKIAkJCQlDRTdCMkRCNDE1ODZBQkFEMDA5OEIzRkEg
LyogQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0U3
QjJEQjYxNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTUwOTg3QzI2MTU3RDY3NkQwMEJEQTgzNSAvKiBDdXN0b21GaWx0ZXJH
bG9iYWxDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkxMTZGMDE1MTU5MjIyRjgwMDAw
RUMxNSAvKiBQcm9wZXJ0eU5vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkxMTZGMDFB
MTU5MjIzQ0QwMDAwRUMxNSAvKiBKU1Byb3BydHlOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk5MTE2RjAxRjE1OTIyNEQyMDAwMEVDMTUgLyogSlNNaWNyb0RhdGFJdGVtVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dO
VW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmpl
Y3QvR05VbWFrZWZpbGUuYW0JKHJldmlzaW9uIDEyMDgyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQyMiwxMCAr
NDIyLDEzIEBAIGVuZGlmCiAKIGlmIEVOQUJMRV9NSUNST0RBVEEKIHdlYmtpdGd0a19idWlsdF9o
X2FwaSArPSBcCi0JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRE
T01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaAorCSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291
cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmggXAorCSQodG9w
X2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NUHJvcGVydHlOb2RlTGlz
dC5oCiB3ZWJraXRndGtfZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCBcCi0JRGVyaXZlZFNv
dXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvblByaXZhdGUuaAor
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb25Q
cml2YXRlLmggXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Qcm9wZXJ0eU5vZGVM
aXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVByb3BlcnR5Tm9kZUxp
c3RQcml2YXRlLmgKIGVuZGlmCiAKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3Vz
dG9tLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
YykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IK
KyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiSlNNaWNyb0RhdGFJ
dGVtVmFsdWUuaCIKKworI2luY2x1ZGUgIkpTTm9kZS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNB
cnJheS5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIE1pY3JvRGF0YUl0ZW1WYWx1ZSogaXRlbVZhbHVlKQoreworICAgIGlmICghaXRlbVZh
bHVlKQorICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgaWYgKGl0ZW1WYWx1ZS0+aXNOb2Rl
KCkpCisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaXRlbVZhbHVlLT5n
ZXROb2RlKCkpOworICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBpdGVtVmFsdWUtPmdldFN0cmlu
ZygpKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWlj
cm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3Jv
bGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29u
dHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoTUlDUk9EQVRBKQorCisjaW5jbHVkZSAiVjhNaWNyb0RhdGFJdGVtVmFsdWUuaCIK
KworI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4Tm9kZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KE1pY3JvRGF0YUl0ZW1W
YWx1ZSogaXRlbVZhbHVlLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKK3sKKyAgICBpZiAoIWl0ZW1W
YWx1ZSkKKyAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7CisgICAgaWYgKGl0ZW1WYWx1ZS0+aXNO
b2RlKCkpCisgICAgICAgIHJldHVybiB0b1Y4KGl0ZW1WYWx1ZS0+Z2V0Tm9kZSgpKTsKKyAgICBy
ZXR1cm4gdjhTdHJpbmcoaXRlbVZhbHVlLT5nZXRTdHJpbmcoKSk7Cit9CisKK30KKworI2VuZGlm
IC8vIEVOQUJMRShNSUNST0RBVEEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTWljcm9EYXRh
SXRlbUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNyb0RhdGFJ
dGVtTGlzdC5jcHAJKHJldmlzaW9uIDEyMDgyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9NaWNy
b0RhdGFJdGVtTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDcgKzQ2LDcgQEAgTWljcm9E
YXRhSXRlbUxpc3Q6Ok1pY3JvRGF0YUl0ZW1MaXN0KFBhcwogCiBNaWNyb0RhdGFJdGVtTGlzdDo6
fk1pY3JvRGF0YUl0ZW1MaXN0KCkKIHsKLSAgICByb290Tm9kZSgpLT5kb2N1bWVudCgpLT5yZW1v
dmVDYWNoZWRNaWNyb0RhdGFJdGVtTGlzdCh0aGlzLCBtX29yaWdpbmFsVHlwZU5hbWVzKTsKKyAg
ICBub2RlKCktPmRvY3VtZW50KCktPnJlbW92ZUNhY2hlZE1pY3JvRGF0YUl0ZW1MaXN0KHRoaXMs
IG1fb3JpZ2luYWxUeXBlTmFtZXMpOwogfQogCiBib29sIE1pY3JvRGF0YUl0ZW1MaXN0Ojpub2Rl
TWF0Y2hlcyhFbGVtZW50KiB0ZXN0Tm9kZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJl
dmlzaW9uIDEyMDgyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTE4LDYgKzExOCw3IEBACiAKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogI2luY2x1
ZGUgIkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIlByb3BlcnR5Tm9kZUxp
c3QuaCIKICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtOTYxLDYgKzk2Miw3IEBA
IHZvaWQgTm9kZTo6aW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXIKICAgICAgICAgJiYgYXR0
ck5hbWUgIT0gaXRlbXNjb3BlQXR0cgogICAgICAgICAmJiBhdHRyTmFtZSAhPSBpdGVtcHJvcEF0
dHIKICAgICAgICAgJiYgYXR0ck5hbWUgIT0gaXRlbXR5cGVBdHRyCisgICAgICAgICYmIGF0dHJO
YW1lICE9IGl0ZW1yZWZBdHRyCiAjZW5kaWYKICAgICAgICAgJiYgYXR0ck5hbWUgIT0gbmFtZUF0
dHIKICAgICAgICAgJiYgYXR0ck5hbWUgIT0gZm9yQXR0cgpAQCAtMjM0OCw2ICsyMzUwLDEwIEBA
IHZvaWQgTm9kZUxpc3RzTm9kZURhdGE6OmludmFsaWRhdGVDYWNoZXMKICAgICBNaWNyb0RhdGFJ
dGVtTGlzdENhY2hlOjppdGVyYXRvciBpdGVtTGlzdENhY2hlRW5kID0gbV9taWNyb0RhdGFJdGVt
TGlzdENhY2hlLmVuZCgpOwogICAgIGZvciAoTWljcm9EYXRhSXRlbUxpc3RDYWNoZTo6aXRlcmF0
b3IgaXQgPSBtX21pY3JvRGF0YUl0ZW1MaXN0Q2FjaGUuYmVnaW4oKTsgaXQgIT0gaXRlbUxpc3RD
YWNoZUVuZDsgKytpdCkKICAgICAgICAgaXQtPnNlY29uZC0+aW52YWxpZGF0ZUNhY2hlKCk7CisK
KyAgICBQcm9wZXJ0eU5vZGVMaXN0Q2FjaGU6Oml0ZXJhdG9yIHByb3BlcnR5Tm9kZUxpc3RDYWNo
ZUVuZCA9IG1fcHJvcGVydHlOb2RlTGlzdENhY2hlLmVuZCgpOworICAgIGZvciAoUHJvcGVydHlO
b2RlTGlzdENhY2hlOjppdGVyYXRvciBpdCA9IG1fcHJvcGVydHlOb2RlTGlzdENhY2hlLmJlZ2lu
KCk7IGl0ICE9IHByb3BlcnR5Tm9kZUxpc3RDYWNoZUVuZDsgKytpdCkKKyAgICAgICAgaXQtPnNl
Y29uZC0+aW52YWxpZGF0ZUNhY2hlKCk7CiAjZW5kaWYKIAogICAgIFJhZGlvTm9kZUxpc3RDYWNo
ZTo6aXRlcmF0b3IgcmFkaW9Ob2RlTGlzdENhY2hlRW5kID0gbV9yYWRpb05vZGVMaXN0Q2FjaGUu
ZW5kKCk7CkBAIC0yMzcxLDYgKzIzNzcsOCBAQCBib29sIE5vZGVMaXN0c05vZGVEYXRhOjppc0Vt
cHR5KCkgY29uc3QKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogICAgIGlmICghbV9taWNyb0RhdGFJ
dGVtTGlzdENhY2hlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgh
bV9wcm9wZXJ0eU5vZGVMaXN0Q2FjaGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAjZW5kaWYKIAogICAgIGlmIChtX2xhYmVsc05vZGVMaXN0Q2FjaGUpCkBAIC0yODc0LDYgKzI4
ODIsMjkgQEAgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKiBOb2RlOjpwcm9wZXJ0aQogewogICAg
IHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLT5wcm9wZXJ0aWVzKHRoaXMpOwogfQorCitQYXNzUmVm
UHRyPFByb3BlcnR5Tm9kZUxpc3Q+IE5vZGU6OnByb3BlcnR5Tm9kZUxpc3QoY29uc3QgVmVjdG9y
PEVsZW1lbnQqPiYgaXRlbVJlZkVsZW1lbnRzLCBjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAg
Tm9kZUxpc3RzTm9kZURhdGEqIG5vZGVMaXN0cyA9IGVuc3VyZVJhcmVEYXRhKCktPmVuc3VyZU5v
ZGVMaXN0cyh0aGlzKTsKKworICAgIE5vZGVMaXN0c05vZGVEYXRhOjpQcm9wZXJ0eU5vZGVMaXN0
Q2FjaGU6OkFkZFJlc3VsdCByZXN1bHQgPSBub2RlTGlzdHMtPm1fcHJvcGVydHlOb2RlTGlzdENh
Y2hlLmFkZChuYW1lLCAwKTsKKyAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KQorICAgICAgICBy
ZXR1cm4gUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PihyZXN1bHQuaXRlcmF0b3ItPnNlY29u
ZCk7CisKKyAgICBSZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4gbGlzdCA9IFByb3BlcnR5Tm9kZUxp
c3Q6OmNyZWF0ZSh0b0VsZW1lbnQodGhpcyksIGl0ZW1SZWZFbGVtZW50cywgbmFtZSk7CisgICAg
cmVzdWx0Lml0ZXJhdG9yLT5zZWNvbmQgPSBsaXN0LmdldCgpOworICAgIHJldHVybiBsaXN0LnJl
bGVhc2UoKTsKK30KKwordm9pZCBOb2RlOjpyZW1vdmVDYWNoZWRQcm9wZXJ0eU5vZGVMaXN0KFBy
b3BlcnR5Tm9kZUxpc3QqIGxpc3QsIGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBBU1NFUlQo
cmFyZURhdGEoKSk7CisgICAgQVNTRVJUKHJhcmVEYXRhKCktPm5vZGVMaXN0cygpKTsKKworICAg
IE5vZGVMaXN0c05vZGVEYXRhKiBkYXRhID0gcmFyZURhdGEoKS0+bm9kZUxpc3RzKCk7CisgICAg
QVNTRVJUX1VOVVNFRChsaXN0LCBsaXN0ID09IGRhdGEtPm1fcHJvcGVydHlOb2RlTGlzdENhY2hl
LmdldChuYW1lKSk7CisgICAgZGF0YS0+bV9wcm9wZXJ0eU5vZGVMaXN0Q2FjaGUucmVtb3ZlKG5h
bWUpOworfQogI2VuZGlmCiAKIHZvaWQgTm9kZVJhcmVEYXRhOjpjcmVhdGVOb2RlTGlzdHMoTm9k
ZSogbm9kZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAkocmV2aXNpb24gMTIwODIwKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtODgsNiArODgsNyBAQCBjbGFzcyBU
cmVlU2NvcGU7CiAKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogY2xhc3MgSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uOworY2xhc3MgUHJvcGVydHlOb2RlTGlzdDsKICNlbmRpZgogCiB0eXBlZGVmIGlu
dCBFeGNlcHRpb25Db2RlOwpAQCAtNjM4LDYgKzYzOSw4IEBAIHB1YmxpYzoKICAgICBET01TZXR0
YWJsZVRva2VuTGlzdCogaXRlbVJlZigpOwogICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KiBpdGVt
VHlwZSgpOwogICAgIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiogcHJvcGVydGllcygpOworICAg
IFBhc3NSZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4gcHJvcGVydHlOb2RlTGlzdChjb25zdCBWZWN0
b3I8RWxlbWVudCo+JiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCByZW1vdmVDYWNoZWRQcm9w
ZXJ0eU5vZGVMaXN0KFByb3BlcnR5Tm9kZUxpc3QqLCBjb25zdCBTdHJpbmcmKTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlUmFyZURhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJh
cmVEYXRhLmgJKHJldmlzaW9uIDEyMDgyMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmFy
ZURhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2lmIEVOQUJMRShNSUNS
T0RBVEEpCiAjaW5jbHVkZSAiSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAi
TWljcm9EYXRhSXRlbUxpc3QuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eU5vZGVMaXN0LmgiCiAjZW5k
aWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjksNiArNzAsOSBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKE1JQ1JPREFUQSkKICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBNaWNyb0RhdGFJ
dGVtTGlzdCo+IE1pY3JvRGF0YUl0ZW1MaXN0Q2FjaGU7CiAgICAgTWljcm9EYXRhSXRlbUxpc3RD
YWNoZSBtX21pY3JvRGF0YUl0ZW1MaXN0Q2FjaGU7CisKKyAgICB0eXBlZGVmIEhhc2hNYXA8U3Ry
aW5nLCBQcm9wZXJ0eU5vZGVMaXN0Kj4gUHJvcGVydHlOb2RlTGlzdENhY2hlOworICAgIFByb3Bl
cnR5Tm9kZUxpc3RDYWNoZSBtX3Byb3BlcnR5Tm9kZUxpc3RDYWNoZTsKICNlbmRpZgogCiAgICAg
TGFiZWxzTm9kZUxpc3QqIG1fbGFiZWxzTm9kZUxpc3RDYWNoZTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vUHJvcGVydHlOb2RlTGlzdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vUHJvcGVydHlOb2RlTGlzdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTEyIEBA
CisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6
CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmls
aXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNp
bmNsdWRlICJQcm9wZXJ0eU5vZGVMaXN0LmgiCisKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2Vu
TGlzdC5oIgorI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Vz
aW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK1Byb3BlcnR5Tm9kZUxpc3Q6OlByb3BlcnR5Tm9k
ZUxpc3QoRWxlbWVudCogaXRlbUVsZW1lbnQsIFZlY3RvcjxFbGVtZW50Kj4gaXRlbVJlZkVsZW1l
bnRzLCBjb25zdCBTdHJpbmcmIG5hbWUpCisgICAgOiBEeW5hbWljU3VidHJlZU5vZGVMaXN0KGl0
ZW1FbGVtZW50LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1yZWZBdHRyKSA/IHN0YXRpY19jYXN0PE5v
ZGUqPihpdGVtRWxlbWVudC0+ZG9jdW1lbnQoKSkgOiBpdGVtRWxlbWVudCkKKyAgICAsIG1fbmFt
ZShuYW1lKQorICAgICwgbV9pdGVtRWxlbWVudChpdGVtRWxlbWVudCkKKyAgICAsIG1faXRlbVJl
ZkVsZW1lbnRzKGl0ZW1SZWZFbGVtZW50cykKK3sKKyAgICBtX2l0ZW1FbGVtZW50LT5kb2N1bWVu
dCgpLT5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QodGhpcyk7Cit9CisKK1Byb3BlcnR5
Tm9kZUxpc3Q6On5Qcm9wZXJ0eU5vZGVMaXN0KCkKK3sKKyAgICBtX2l0ZW1FbGVtZW50LT5yZW1v
dmVDYWNoZWRQcm9wZXJ0eU5vZGVMaXN0KHRoaXMsIG1fbmFtZSk7CisgICAgbV9pdGVtRWxlbWVu
dC0+ZG9jdW1lbnQoKS0+dW5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QodGhpcyk7Cit9
CisKK2Jvb2wgQUxXQVlTX0lOTElORSBQcm9wZXJ0eU5vZGVMaXN0OjplbGVtZW50RGVmaW5lc0Rp
ZmZlcmVudEl0ZW0oY29uc3QgRWxlbWVudCogZWxlbWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSAmJiBlbGVtZW50ICE9IG1f
aXRlbUVsZW1lbnQ7Cit9CisKK2Jvb2wgUHJvcGVydHlOb2RlTGlzdDo6ZWxlbWVudElzUHJvcGVy
dHlPZlJlZkVsZW1lbnQoY29uc3QgTm9kZSogdGVzdEVsZW1lbnQsIGNvbnN0IE5vZGUgKnJlZkVs
ZW1lbnQpIGNvbnN0Cit7CisgICAgZm9yIChjb25zdCBDb250YWluZXJOb2RlKiBub2RlID0gdGVz
dEVsZW1lbnQtPnBhcmVudE5vZGUoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKSkg
eworICAgICAgICBpZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgICAgICBjb25z
dCBFbGVtZW50KiBlbGVtZW50ID0gdG9FbGVtZW50KG5vZGUpOworICAgICAgICAgICAgaWYgKGVs
ZW1lbnREZWZpbmVzRGlmZmVyZW50SXRlbShlbGVtZW50KSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAobm9kZSA9PSByZWZFbGVtZW50KQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBQcm9wZXJ0eU5vZGVMaXN0Ojpub2RlTWF0Y2hlcyhFbGVtZW50KiB0ZXN0RWxlbWVudCkg
Y29uc3QKK3sKKyAgICBpZiAoIXRlc3RFbGVtZW50LT5pc0hUTUxFbGVtZW50KCkgfHwgIXRlc3RF
bGVtZW50LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1wcm9wQXR0cikgfHwgIW1faXRlbUVsZW1lbnQt
PmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2l0ZW1SZWZFbGVtZW50cy5zaXplKCk7
ICsraSkgeworICAgICAgICBpZiAodGVzdEVsZW1lbnQgPT0gbV9pdGVtUmVmRWxlbWVudHNbaV0g
fHwgZWxlbWVudElzUHJvcGVydHlPZlJlZkVsZW1lbnQodGVzdEVsZW1lbnQsIG1faXRlbVJlZkVs
ZW1lbnRzW2ldKSkgeworICAgICAgICAgICAgaWYgKHRlc3RFbGVtZW50LT5pdGVtUHJvcCgpLT50
b2tlbnMoKS5jb250YWlucyhtX25hbWUpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitQcm9wZXJ0eVZhbHVl
QXJyYXkgUHJvcGVydHlOb2RlTGlzdDo6Z2V0VmFsdWVzKCkgY29uc3QKK3sKKyAgICBQcm9wZXJ0
eVZhbHVlQXJyYXkgcHJvcGVydHlWYWx1ZTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bGVuZ3RoKCk7ICsraSkKKyAgICAgICAgcHJvcGVydHlWYWx1ZS5hcHBlbmQodG9IVE1MRWxlbWVu
dChpdGVtKGkpKS0+aXRlbVZhbHVlKCkpOworCisgICAgcmV0dXJuIHByb3BlcnR5VmFsdWU7Cit9
CisKK3ZvaWQgUHJvcGVydHlOb2RlTGlzdDo6aW52YWxpZGF0ZUNhY2hlKCkKK3sKKyAgICBtX25v
ZGUgPSBtX2l0ZW1FbGVtZW50LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1yZWZBdHRyKSA/IHN0YXRp
Y19jYXN0PE5vZGUqPihtX2l0ZW1FbGVtZW50LT5kb2N1bWVudCgpKSA6IG1faXRlbUVsZW1lbnQt
PnRvTm9kZSgpOworICAgIG1fY2FjaGVzLnJlc2V0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vUHJvcGVydHlOb2RlTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Qcm9wZXJ0eU5vZGVMaXN0LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
UHJvcGVydHlOb2RlTGlzdC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc1IEBACisvKgorICog
Q29weXJpZ2h0IChjKSAyMDEyIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vcgorICogb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQKKyAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVS
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBQcm9wZXJ0eU5vZGVMaXN0X2gKKyNkZWZpbmUgUHJvcGVydHlOb2RlTGlzdF9oCisK
KyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5oIgorI2lu
Y2x1ZGUgIk1pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit0eXBlZGVmIFZlY3RvcjxSZWZQdHI8TWljcm9EYXRhSXRlbVZh
bHVlPiA+IFByb3BlcnR5VmFsdWVBcnJheTsKKworY2xhc3MgUHJvcGVydHlOb2RlTGlzdCA6IHB1
YmxpYyBEeW5hbWljU3VidHJlZU5vZGVMaXN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PiBjcmVhdGUoRWxlbWVudCogaXRlbUVsZW1lbnQsIFZlY3Rv
cjxFbGVtZW50Kj4gaXRlbVJlZkVsZW1lbnRzLCBjb25zdCBTdHJpbmcmIG5hbWUpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb3BlcnR5Tm9kZUxpc3QoaXRlbUVsZW1lbnQs
IGl0ZW1SZWZFbGVtZW50cywgbmFtZSkpOworICAgIH0KKworICAgIH5Qcm9wZXJ0eU5vZGVMaXN0
KCk7CisKKyAgICBQcm9wZXJ0eVZhbHVlQXJyYXkgZ2V0VmFsdWVzKCkgY29uc3Q7CisKKyAgICB2
b2lkIGludmFsaWRhdGVDYWNoZSgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFByb3BlcnR5
Tm9kZUxpc3QoRWxlbWVudCogaXRlbUVsZW1lbnQsIFZlY3RvcjxFbGVtZW50Kj4gaXRlbVJlZkVs
ZW1lbnRzLCBjb25zdCBTdHJpbmcmIG5hbWUpOworCisgICAgdmlydHVhbCBib29sIG5vZGVNYXRj
aGVzKEVsZW1lbnQqKSBjb25zdCBPVkVSUklERTsKKworICAgIGJvb2wgQUxXQVlTX0lOTElORSBl
bGVtZW50RGVmaW5lc0RpZmZlcmVudEl0ZW0oY29uc3QgRWxlbWVudCopIGNvbnN0OworICAgIGJv
b2wgZWxlbWVudElzUHJvcGVydHlPZlJlZkVsZW1lbnQoY29uc3QgTm9kZSosIGNvbnN0IE5vZGUq
KSBjb25zdDsKKworICAgIFN0cmluZyBtX25hbWU7CisgICAgUmVmUHRyPEVsZW1lbnQ+IG1faXRl
bUVsZW1lbnQ7CisgICAgVmVjdG9yPEVsZW1lbnQqPiBtX2l0ZW1SZWZFbGVtZW50czsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCisK
KyNlbmRpZiAvLyBTdGF0aWNOb2RlTGlzdF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUHJv
cGVydHlOb2RlTGlzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Byb3Bl
cnR5Tm9kZUxpc3QuaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Byb3Bl
cnR5Tm9kZUxpc3QuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29w
eXJpZ2h0IChjKSAyMDEyIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vcgorICogb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQK
KyAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9k
dWxlIGNvcmUgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUlDUk9E
QVRBLAorICAgICAgICBJbmRleGVkR2V0dGVyLAorICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVj
dAorICAgIF0gUHJvcGVydHlOb2RlTGlzdCA6IE5vZGVMaXN0IHsKKworICAgICAgICBzZXF1ZW5j
ZTxNaWNyb0RhdGFJdGVtVmFsdWU+IGdldFZhbHVlcygpOworICAgICAgICBOb2RlIGl0ZW0oaW4g
dW5zaWduZWQgbG9uZyBpbmRleCk7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoOworICAgIH07Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAxMjA4MjApCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk5vZGUuaCIKLSNpbmNsdWRlICJTdGF0aWNOb2Rl
TGlzdC5oIgorI2luY2x1ZGUgIlByb3BlcnR5Tm9kZUxpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC0yMjksNyArMjI5LDcgQEAgdm9pZCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246
OmZpbmRQcm9wZQogICAgIGZvciAoRWxlbWVudCogZWxlbWVudCA9IGl0ZW1BZnRlcihiYXNlLCAw
KTsgZWxlbWVudDsgZWxlbWVudCA9IGl0ZW1BZnRlcihiYXNlLCBlbGVtZW50KSkgewogICAgICAg
ICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVByb3BlcnR5ID0gZWxlbWVudC0+aXRlbVByb3Ao
KTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW1Qcm9wZXJ0eS0+bGVuZ3Ro
KCk7ICsraSkKLSAgICAgICAgICAgIG1fY2FjaGUudXBkYXRlUHJvcGVydHlDYWNoZShlbGVtZW50
LCBpdGVtUHJvcGVydHktPml0ZW0oaSkpOworICAgICAgICAgICAgbV9jYWNoZS51cGRhdGVQcm9w
ZXJ0eUNhY2hlKGl0ZW1Qcm9wZXJ0eS0+aXRlbShpKSk7CiAgICAgfQogfQogCkBAIC0yNTgsMjEg
KzI1OCwxNSBAQCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IEhUTUxQcm9wZXJ0aWVzCiAgICAg
cmV0dXJuIG1fY2FjaGUucHJvcGVydHlOYW1lczsKIH0KIAotUGFzc1JlZlB0cjxOb2RlTGlzdD4g
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpuYW1lZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBj
b25zdAorUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PiBIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b246Om5hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CiB7CiAgICAgaWYgKCF0b0hU
TUxFbGVtZW50KGJhc2UoKSktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikpCiAgICAg
ICByZXR1cm4gMDsKIAotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiBuYW1lZEl0ZW1zOwotCi0g
ICAgdXBkYXRlTmFtZUNhY2hlKCk7Ci0KLSAgICBWZWN0b3I8RWxlbWVudCo+KiBwcm9wZXJ0eVJl
c3VsdHMgPSBtX2NhY2hlLnByb3BlcnR5Q2FjaGUuZ2V0KEF0b21pY1N0cmluZyhuYW1lKS5pbXBs
KCkpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IHByb3BlcnR5UmVzdWx0cyAmJiBpIDwgcHJv
cGVydHlSZXN1bHRzLT5zaXplKCk7ICsraSkKLSAgICAgICAgbmFtZWRJdGVtcy5hcHBlbmQocHJv
cGVydHlSZXN1bHRzLT5hdChpKSk7CisgICAgaW52YWxpZGF0ZUNhY2hlSWZOZWVkZWQoKTsKKyAg
ICB1cGRhdGVSZWZFbGVtZW50cygpOwogCi0gICAgLy8gRklYTUU6IEhUTUw1IHNwZWNpZmllcyB0
aGF0IHRoaXMgc2hvdWxkIHJldHVybiBQcm9wZXJ0eU5vZGVMaXN0LgotICAgIHJldHVybiBuYW1l
ZEl0ZW1zLmlzRW1wdHkoKSA/IDAgOiBTdGF0aWNOb2RlTGlzdDo6YWRvcHQobmFtZWRJdGVtcyk7
CisgICAgcmV0dXJuIGJhc2UoKS0+cHJvcGVydHlOb2RlTGlzdChtX2NhY2hlLmdldEl0ZW1SZWZF
bGVtZW50cygpLCBuYW1lKTsKIH0KIAogYm9vbCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Omhh
c05hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0CkBAIC0yODAsMTEgKzI3
NCwyMSBAQCBib29sIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6aGFzTmFtZWRJCiAgICAgaWYg
KCF0b0hUTUxFbGVtZW50KGJhc2UoKSktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHVwZGF0ZU5hbWVDYWNoZSgpOworICAgIGlu
dmFsaWRhdGVDYWNoZUlmTmVlZGVkKCk7CiAKLSAgICBpZiAoVmVjdG9yPEVsZW1lbnQqPiogcHJv
cGVydHlDYWNoZSA9IG1fY2FjaGUucHJvcGVydHlDYWNoZS5nZXQobmFtZS5pbXBsKCkpKSB7Ci0g
ICAgICAgIGlmICghcHJvcGVydHlDYWNoZS0+aXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgaWYgKG1fY2FjaGUuaGFzTmFtZWRJdGVtKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIHVwZGF0ZVJlZkVsZW1lbnRzKCk7CisKKyAgICBjb25zdCBWZWN0b3I8RWxlbWVu
dCo+JiBpdGVtUmVmRWxlbWVudHMgPSBtX2NhY2hlLmdldEl0ZW1SZWZFbGVtZW50cygpOworICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtUmVmRWxlbWVudHMuc2l6ZSgpOyArK2kpIHsK
KyAgICAgICAgZm9yIChFbGVtZW50KiBlbGVtZW50ID0gaXRlbUFmdGVyKGl0ZW1SZWZFbGVtZW50
c1tpXSwgMCk7IGVsZW1lbnQ7IGVsZW1lbnQgPSBpdGVtQWZ0ZXIoaXRlbVJlZkVsZW1lbnRzW2ld
LCBlbGVtZW50KSkgeworICAgICAgICAgICAgaWYgKGVsZW1lbnQtPml0ZW1Qcm9wKCktPnRva2Vu
cygpLmNvbnRhaW5zKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgbV9jYWNoZS5oYXNOYW1lZEl0
ZW0gPSB0cnVlOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCShyZXZpc2lvbiAxMjA4MjAp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IERPTVN0cmluZ0xpc3Q7CitjbGFzcyBQcm9wZXJ0eU5vZGVMaXN0OwogCiBjbGFzcyBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb24gOiBwdWJsaWMgSFRNTENvbGxlY3Rpb24gewogcHVibGljOgpAQCAt
NTEsNyArNTIsNyBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IG5h
bWVzKCkgY29uc3Q7CiAKLSAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBuYW1lZEl0ZW0oY29uc3Qg
U3RyaW5nJikgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PiBuYW1lZEl0
ZW0oY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgYm9vbCBoYXNOYW1lZEl0ZW0oY29uc3QgQXRv
bWljU3RyaW5nJikgY29uc3Q7CiAKIHByaXZhdGU6CkBAIC03NywxMSArNzgsMTEgQEAgcHJpdmF0
ZToKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoOwogICAgICAgICBib29sIGhhc0xlbmd0aDsKICAg
ICAgICAgYm9vbCBoYXNOYW1lQ2FjaGU7Ci0gICAgICAgIE5vZGVDYWNoZU1hcCBwcm9wZXJ0eUNh
Y2hlOwogICAgICAgICBWZWN0b3I8RWxlbWVudCo+IGl0ZW1SZWZFbGVtZW50czsKICAgICAgICAg
UmVmUHRyPERPTVN0cmluZ0xpc3Q+IHByb3BlcnR5TmFtZXM7CiAgICAgICAgIHVuc2lnbmVkIGl0
ZW1SZWZFbGVtZW50UG9zaXRpb247CiAgICAgICAgIGJvb2wgaGFzSXRlbVJlZkVsZW1lbnRzOwor
ICAgICAgICBib29sIGhhc05hbWVkSXRlbTsKIAogICAgICAgICB2b2lkIGNsZWFyKCkKICAgICAg
ICAgewpAQCAtOTEsMTEgKzkyLDExIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBsZW5ndGggPSAw
OwogICAgICAgICAgICAgaGFzTGVuZ3RoID0gZmFsc2U7CiAgICAgICAgICAgICBoYXNOYW1lQ2Fj
aGUgPSBmYWxzZTsKLSAgICAgICAgICAgIHByb3BlcnR5Q2FjaGUuY2xlYXIoKTsKICAgICAgICAg
ICAgIGl0ZW1SZWZFbGVtZW50cy5jbGVhcigpOwogICAgICAgICAgICAgcHJvcGVydHlOYW1lcy5j
bGVhcigpOwogICAgICAgICAgICAgaXRlbVJlZkVsZW1lbnRQb3NpdGlvbiA9IDA7CiAgICAgICAg
ICAgICBoYXNJdGVtUmVmRWxlbWVudHMgPSBmYWxzZTsKKyAgICAgICAgICAgIGhhc05hbWVkSXRl
bSA9IGZhbHNlOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBzZXRJdGVtUmVmRWxlbWVudHMo
Y29uc3QgVmVjdG9yPEVsZW1lbnQqPiYgZWxlbWVudHMpCkBAIC0xMTUsMTcgKzExNiwxMyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgaGFzTGVuZ3RoID0gdHJ1ZTsKICAgICAgICAgfQogCi0gICAg
ICAgIHZvaWQgdXBkYXRlUHJvcGVydHlDYWNoZShFbGVtZW50KiBlbGVtZW50LCBjb25zdCBBdG9t
aWNTdHJpbmcmIHByb3BlcnR5TmFtZSkKKyAgICAgICAgdm9pZCB1cGRhdGVQcm9wZXJ0eUNhY2hl
KGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlOYW1lKQogICAgICAgICB7CiAgICAgICAgICAg
ICBpZiAoIXByb3BlcnR5TmFtZXMpCiAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lcyA9IERP
TVN0cmluZ0xpc3Q6OmNyZWF0ZSgpOwogCiAgICAgICAgICAgICBpZiAoIXByb3BlcnR5TmFtZXMt
PmNvbnRhaW5zKHByb3BlcnR5TmFtZSkpCiAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lcy0+
YXBwZW5kKHByb3BlcnR5TmFtZSk7Ci0KLSAgICAgICAgICAgIFZlY3RvcjxFbGVtZW50Kj4qIHBy
b3BlcnR5UmVzdWx0cyA9IHByb3BlcnR5Q2FjaGUuZ2V0KHByb3BlcnR5TmFtZS5pbXBsKCkpOwot
ICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eVJlc3VsdHMgfHwgIXByb3BlcnR5UmVzdWx0cy0+Y29u
dGFpbnMoZWxlbWVudCkpCi0gICAgICAgICAgICAgICAgYXBwZW5kKHByb3BlcnR5Q2FjaGUsIHBy
b3BlcnR5TmFtZSwgZWxlbWVudCk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIHVwZGF0ZUN1
cnJlbnRJdGVtKEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkIHBvcywgdW5zaWduZWQgaXRlbVJl
ZkVsZW1lbnRQb3MpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24uaWRsCShyZXZpc2lvbiAxMjA4MjApCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQwLDgg
KzQwLDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBOb2RlIGl0ZW0oaW4gdW5zaWduZWQgbG9u
ZyBpbmRleCk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ0xpc3QgbmFt
ZXM7Ci0KLSAgICAgICAgLy8gRklYTUU6IEhUTUw1IHNwZWNpZmllcyB0aGF0IHRoaXMgc2hvdWxk
IHJldHVybiBQcm9wZXJ0eU5vZGVMaXN0LgotICAgICAgICBOb2RlTGlzdCBuYW1lZEl0ZW0oaW4g
RE9NU3RyaW5nIG5hbWUpOworICAgICAgICBQcm9wZXJ0eU5vZGVMaXN0IG5hbWVkSXRlbShpbiBE
T01TdHJpbmcgbmFtZSk7CiAgICAgfTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvTWlj
cm9EYXRhSXRlbVZhbHVlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL01p
Y3JvRGF0YUl0ZW1WYWx1ZS5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHks
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9
TUlDUk9EQVRBLAorICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAorICAgICAgICBPbWl0Q29uc3Ry
dWN0b3IKKyAgICBdIE1pY3JvRGF0YUl0ZW1WYWx1ZSB7CisgICAgfTsKK30KKwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMTIwODIwKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNjksNiArMzY5LDcgQEAg
bW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBEb2N1bWVudENvbnN0cnVjdG9yIERv
Y3VtZW50OwogICAgICAgICBhdHRyaWJ1dGUgTm9kZUNvbnN0cnVjdG9yIE5vZGU7CiAgICAgICAg
IGF0dHJpYnV0ZSBOb2RlTGlzdENvbnN0cnVjdG9yIE5vZGVMaXN0OworICAgICAgICBhdHRyaWJ1
dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gUHJvcGVydHlOb2RlTGlzdENvbnN0cnVjdG9yIFBy
b3BlcnR5Tm9kZUxpc3Q7CiAgICAgICAgIGF0dHJpYnV0ZSBOYW1lZE5vZGVNYXBDb25zdHJ1Y3Rv
ciBOYW1lZE5vZGVNYXA7CiAgICAgICAgIGF0dHJpYnV0ZSBDaGFyYWN0ZXJEYXRhQ29uc3RydWN0
b3IgQ2hhcmFjdGVyRGF0YTsKICAgICAgICAgYXR0cmlidXRlIEF0dHJDb25zdHJ1Y3RvciBBdHRy
OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMTIwODIwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDYtMjAgIEFya28gU2FoYSAgPGFy
a29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogSW1wbGVtZW50IFByb3BlcnR5
Tm9kZUxpc3QgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODAyNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTcGVjOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3Vy
cmVudC13b3JrL211bHRpcGFnZS9jb21tb24tZG9tLWludGVyZmFjZXMuaHRtbCNwcm9wZXJ0eW5v
ZGVsaXN0CisgICAgICAgIEFkZGVkIHRlc3QgY2FzZXMgZm9yIFByb3BlcnR5Tm9kZUxpc3QgaW50
ZXJmYWNlIGFuZCBQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZC4KKworICAgICAg
ICAqIGZhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL25hbWVk
aXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1v
YnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1
ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlz
dC1nZXR2YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LXRlc3QtYWRkLXJl
bW92ZS1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWlj
cm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQuaHRtbDogQWRk
ZWQuCisKIDIwMTItMDYtMjAgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBTcGVlY2ggSmF2YVNjcmlwdCBBUEk6IGFkZCBTcGVlY2hSZWNvZ25pdGlvbi5tYXhB
bHRlcm5hdGl2ZXMgYXR0cmlidXRlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvbmFtZWRpdGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5z
LXByb3BlcnR5bm9kZWxpc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3Qt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitQcm9wZXJ0aWVzQ29s
bGVjdGlvbi5uYW1lZEl0ZW0obmFtZSkgbXVzdCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdC4KKwor
UEFTUyBlbGVtZW50LnByb3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKSBpbnN0YW5jZW9mIFByb3Bl
cnR5Tm9kZUxpc3QgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3Rh
bmNlb2YgUHJvcGVydHlOb2RlTGlzdCBpcyB0cnVlCisKK1Byb3BlcnR5Tm9kZUxpc3QgaW50ZXJm
YWNlIGluaGVyaXRlZCBmcm9tIHRoZSBOb2RlTGlzdCBpbnRlcmZhY2UuCitQQVNTIGVsZW1lbnQu
cHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpIGluc3RhbmNlb2YgTm9kZUxpc3QgaXMgdHJ1ZQor
UEFTUyBlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3RhbmNlb2YgTm9kZUxpc3QgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9w
ZXJ0eW5vZGVsaXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1w
cm9wZXJ0eW5vZGVsaXN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNy
b2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+UHJvcGVydGll
c0NvbGxlY3Rpb24ubmFtZWRJdGVtKG5hbWUpIG11c3QgcmV0dXJuIFByb3BlcnR5Tm9kZUxpc3Qu
PC9wPgorPGRpdiBpdGVtc2NvcGUgaWQ9Im1pY3JvZGF0YWl0ZW0iPgorPGRpdiBpdGVtcHJvcD0i
Zm9vIj48L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
dmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWljcm9kYXRhaXRlbSIpOwor
CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpIGluc3Rh
bmNlb2YgUHJvcGVydHlOb2RlTGlzdCIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRp
ZXNbJ2ZvbyddIGluc3RhbmNlb2YgUHJvcGVydHlOb2RlTGlzdCIpOworCitkZWJ1ZygiPGJyPlBy
b3BlcnR5Tm9kZUxpc3QgaW50ZXJmYWNlIGluaGVyaXRlZCBmcm9tIHRoZSBOb2RlTGlzdCBpbnRl
cmZhY2UuIikKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9v
JykgaW5zdGFuY2VvZiBOb2RlTGlzdCIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRp
ZXNbJ2ZvbyddIGluc3RhbmNlb2YgTm9kZUxpc3QiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlu
b2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9m
LWVhY2gtZWxlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1v
YnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxp
c3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNo
LWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACitUaGlz
IHRlc3QgZW5zdXJlIHRoYXQgUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBhcnJheSByZXR1
cm5zIGFuIGFycmF5IHdob3NlIHZhbHVzZSBhcmUgb2J0YWluZWQgZnJvbSB0aGUgaXRlbVZhbHVl
IERPTSBwcm9wZXJ0eSBvZiBlYWNoIG9mIHRoZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSB0aGUg
b2JqZWN0LCBpbiB0cmVlIG9yZGVyLgorCitwcm9wZXJ0eSBpbmRleCAwLCB0YWcgRElWCitQQVNT
IHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0
eSBpbmRleCAxLCB0YWcgU1BBTgorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVM
aXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMiwgdGFnIE1FVEEKK1BBU1MgdmFsdWVz
QXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4
IDMsIHRhZyBBVURJTworUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ld
Lml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggNCwgdGFnIEVNQkVECitQQVNTIHZhbHVlc0FycmF5
W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCA1LCB0
YWcgSUZSQU1FCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRl
bVZhbHVlCitwcm9wZXJ0eSBpbmRleCA2LCB0YWcgSU1HCitQQVNTIHZhbHVlc0FycmF5W2ldIGlz
IHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCA3LCB0YWcgU09V
UkNFCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVl
Citwcm9wZXJ0eSBpbmRleCA4LCB0YWcgVklERU8KK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJv
cGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDksIHRhZyBUUkFDSwor
UEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJv
cGVydHkgaW5kZXggMTAsIHRhZyBBCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9k
ZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxMSwgdGFnIEFSRUEKK1BBU1MgdmFs
dWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGlu
ZGV4IDEyLCB0YWcgTElOSworUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0
W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMTMsIHRhZyBQCitQQVNTIHZhbHVlc0FycmF5
W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxNCwg
dGFnIFNQQU4KK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVt
VmFsdWUKK1BBU1MgdmFsdWVzQXJyYXkubGVuZ3RoIGlzIDE1CitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgICAgIAorCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFs
dWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdl
dHZhbHVlcy1hcnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVt
ZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
cHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRl
bXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRo
aXMgdGVzdCBlbnN1cmUgdGhhdCBQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIGFycmF5IHJl
dHVybnMgYW4gYXJyYXkgd2hvc2UgdmFsdXNlIGFyZSBvYnRhaW5lZCBmcm9tIHRoZSBpdGVtVmFs
dWUgRE9NIHByb3BlcnR5IG9mIGVhY2ggb2YgdGhlIGVsZW1lbnRzIHJlcHJlc2VudGVkIGJ5IHRo
ZSBvYmplY3QsIGluIHRyZWUgb3JkZXIuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
ZGl2PgorPGRpdiBpZD0iaWQxIj4KKzxkaXYgaXRlbXByb3A9ImZvbyI+Cis8c3BhbiBpdGVtcHJv
cD0iZm9vIiBpdGVtc2NvcGU+PC9zcGFuPgorPC9kaXY+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtcmVm
PSJpZDEiPgorPG1ldGEgaXRlbXByb3A9ImZvbyIgY29udGVudD0idGVzdCIgLz4KKzxhdWRpbyBp
dGVtcHJvcD0iZm9vIiBzcmM9ImF1ZGlvLm1wMyI+PC9hdWRpbz4KKzxlbWJlZCBpdGVtcHJvcD0i
Zm9vIiBzcmM9InRlc3Quc3dmIiAvPgorPGlmcmFtZSBpdGVtcHJvcD0iZm9vIiBzcmM9InRlc3Qu
aHRtbCI+PC9pZnJhbWU+Cis8aW1nIGl0ZW1wcm9wPSJmb28iIHNyYz0idGVzdC5qcGciIC8+Cis8
YXVkaW8gY29udHJvbHM9ImNvbnRyb2xzIj4KKzxzb3VyY2UgaXRlbXByb3A9ImZvbyIgc3JjPSJz
b25nLm1wMyIgdHlwZT0iYXVkaW8vbXAzIiAvPgorPC9hdWRpbz4KKzx2aWRlbyBpdGVtcHJvcD0i
Zm9vIiBzcmM9InZpZGVvLm1wNCI+PC92aWRlbz4KKzx2aWRlbyBzcmM9InZpZGVvLm1wNCI+Cis8
dHJhY2sgaXRlbXByb3A9ImZvbyIgc3JjPSJzdWJ0aXRsZXNfZW4udnR0Ij4KKzwvdmlkZW8+Cis8
YSBpdGVtcHJvcD0iZm9vIiBzcmM9ImxpbmsuaHRtbCI+PC9hPgorPG1hcD4KKzxhcmVhIGl0ZW1w
cm9wPSJmb28iIGhyZWY9InRlc3QuaHRtbCIgLz4KKzwvbWFwPgorPGxpbmsgaXRlbXByb3A9ImZv
byIgaHJlZj0idGVzdC5jc3MiIC8+Cis8cCBpdGVtcHJvcD0iZm9vIj4KKzxzcGFuIGl0ZW1wcm9w
PSJmb28iIGl0ZW1zY29wZT4KKzxhIGl0ZW1wcm9wPSJmb28iIHNyYz0idGVzdF9hbmNob3IuaHRt
bCI+PC9hPgorPC9zcGFuPgorPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgaXRl
bSA9IGRvY3VtZW50LmdldEl0ZW1zKClbMF07Cit2YXIgcHJvcGVydHlOb2RlTGlzdCA9IGl0ZW0u
cHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpOwordmFyIHZhbHVlc0FycmF5ID0gcHJvcGVydHlO
b2RlTGlzdC5nZXRWYWx1ZXMoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydHlOb2RlTGlz
dC5sZW5ndGg7IGkrKykgeworICAgIGRlYnVnKCdwcm9wZXJ0eSBpbmRleCAnICsgaSArICcsIHRh
ZyAnICsgcHJvcGVydHlOb2RlTGlzdFtpXS50YWdOYW1lKTsKKyAgICBzaG91bGRCZSgidmFsdWVz
QXJyYXlbaV0iLCAicHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUiKTsKK30KK3Nob3VsZEJl
KCJ2YWx1ZXNBcnJheS5sZW5ndGgiLCAnMTUnKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxp
c3QtZ2V0dmFsdWVzLXRlc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9w
cm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw5IEBACitQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCB0ZXN0
LgorCitQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCBtdXN0IHJldHVybiBhbiBh
cnJheS4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykuZ2V0VmFsdWVz
KCkgaW5zdGFuY2VvZiBBcnJheSBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllc1snZm9v
J10uZ2V0VmFsdWVzKCkgaW5zdGFuY2VvZiBBcnJheSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlz
dC1nZXR2YWx1ZXMtdGVzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cD5Qcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCB0
ZXN0LjwvcD4KKzxkaXYgaXRlbXNjb3BlIGlkPSJpdGVtIj4KKzxkaXYgaXRlbXByb3A9ImZvbyI+
PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBl
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2l0ZW0nKTsKK2RlYnVnKCJQcm9wZXJ0
eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCBtdXN0IHJldHVybiBhbiBhcnJheS4iKTsKK3No
b3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykuZ2V0VmFsdWVz
KCkgaW5zdGFuY2VvZiBBcnJheSIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNb
J2ZvbyddLmdldFZhbHVlcygpIGluc3RhbmNlb2YgQXJyYXkiKTsKKworPC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJv
cGVydHlub2RlbGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxlbWVudC1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3Qt
dGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVt
b3ZlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM0IEBACitN
aWNyb2RhdGEgcHJvcGVydGllcyBjb2xsZWN0aW9uIG11c3QgdXBkYXRlIG9uIGFkZGluZyBvciBy
ZW1vdmluZyBwcm9wZXJ0eS4KKworUEFTUyBwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAnMicg
aXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzBdID09IHRlc3RFbGVtZW50IGlzIHRydWUK
K1BBU1MgcHJvcGVydHlOb2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVuWzBdIGlzIHRydWUKK0Fk
ZCBhIHByb3BlcnR5IHRvIHRoZSBpdGVtLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgor
U2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1BBU1MgcHJvcGVydHlOb2RlTGlz
dC5sZW5ndGggPT0gMyBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gdGVzdEVs
ZW1lbnQgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRyZW5b
MF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzJdID09IGl0ZW0uY2hpbGRyZW5bMV0g
aXMgdHJ1ZQorUmVtb3ZlIGl0ZW1wcm9wIGF0dHJpYnV0ZSBvZiB0aGUgZmlyc3QgY2hpbGQuCitQ
QVNTIHByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5v
ZGVMaXN0WzBdID09IHRlc3RFbGVtZW50IGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFsx
XSA9PSBpdGVtLmNoaWxkcmVuWzFdIGlzIHRydWUKK0FkZCBpdGVtcHJvcCBhdHRyaWJ1dGUgdG8g
dGhlIGZpcnN0IGNoaWxkLgorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAzIGlzIHRy
dWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFswXSA9PSB0ZXN0RWxlbWVudCBpcyB0cnVlCitQQVNT
IHByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblswXSBpcyB0cnVlCitQQVNTIHBy
b3BlcnR5Tm9kZUxpc3RbMl0gPT0gaXRlbS5jaGlsZHJlblsxXSBpcyB0cnVlCitSZW1vdmUgaXRl
bXJlZiBhdHRyaWJ1dGUuCitQQVNTIHByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDIgaXMgdHJ1
ZQorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzBdID09IGl0ZW0uY2hpbGRyZW5bMF0gaXMgdHJ1ZQor
UEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRyZW5bMV0gaXMgdHJ1ZQorQWRk
IGl0ZW1yZWYgYXR0cmlidXRlLgorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAzIGlz
IHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFswXSA9PSB0ZXN0RWxlbWVudCBpcyB0cnVlCitQ
QVNTIHByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblswXSBpcyB0cnVlCitQQVNT
IHByb3BlcnR5Tm9kZUxpc3RbMl0gPT0gaXRlbS5jaGlsZHJlblsxXSBpcyB0cnVlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3Zl
LWVsZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvcHJvcGVydHlub2RlbGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxlbWVudC5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3Qt
dGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5N
aWNyb2RhdGEgcHJvcGVydGllcyBjb2xsZWN0aW9uIG11c3QgdXBkYXRlIG9uIGFkZGluZyBvciBy
ZW1vdmluZyBwcm9wZXJ0eS48L3A+Cis8ZGl2IGl0ZW1wcm9wPSJmb28iIGlkPSJ0ZXN0Ij4KKzwv
ZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXJlZj0idGVzdCIgaWQ9Im1pY3JvZGF0YS1pdGVtIj4K
KzxwIGl0ZW1wcm9wPSJmb28iPjwvcD4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgordmFyIGl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWljcm9kYXRh
LWl0ZW0nKTsKK3ZhciBwcm9wZXJ0eU5vZGVMaXN0ID0gaXRlbS5wcm9wZXJ0aWVzLm5hbWVkSXRl
bSgnZm9vJyk7Cit2YXIgdGVzdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dCcpOworCitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09ICcyJyIpOwor
c2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzBdID09IHRlc3RFbGVtZW50Iik7CitzaG91
bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblswXSIpOworCitk
ZWJ1ZygnQWRkIGEgcHJvcGVydHkgdG8gdGhlIGl0ZW0uJyk7CitpdGVtLmFwcGVuZENoaWxkKGNy
ZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtcHJvcDogJ2Zvbyd9KSk7CitzaG91bGRCZVRydWUoInBy
b3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDMiKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2Rl
TGlzdFswXSA9PSB0ZXN0RWxlbWVudCIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0
WzFdID09IGl0ZW0uY2hpbGRyZW5bMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlz
dFsyXSA9PSBpdGVtLmNoaWxkcmVuWzFdIik7CisKK2RlYnVnKCdSZW1vdmUgaXRlbXByb3AgYXR0
cmlidXRlIG9mIHRoZSBmaXJzdCBjaGlsZC4nKTsKK2l0ZW0uY2hpbGRyZW5bMF0ucmVtb3ZlQXR0
cmlidXRlKCdpdGVtcHJvcCcpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0
aCA9PSAyIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gdGVzdEVsZW1l
bnQiKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVu
WzFdIik7CisKK2RlYnVnKCdBZGQgaXRlbXByb3AgYXR0cmlidXRlIHRvIHRoZSBmaXJzdCBjaGls
ZC4nKTsKK2l0ZW0uY2hpbGRyZW5bMF0uc2V0QXR0cmlidXRlKCdpdGVtcHJvcCcsICdmb28nKTsK
K3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMyIpOworc2hvdWxkQmVU
cnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzBdID09IHRlc3RFbGVtZW50Iik7CitzaG91bGRCZVRydWUo
InByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblswXSIpOworc2hvdWxkQmVUcnVl
KCJwcm9wZXJ0eU5vZGVMaXN0WzJdID09IGl0ZW0uY2hpbGRyZW5bMV0iKTsKKworZGVidWcoJ1Jl
bW92ZSBpdGVtcmVmIGF0dHJpYnV0ZS4nKTsKK2l0ZW0ucmVtb3ZlQXR0cmlidXRlKCdpdGVtcmVm
Jyk7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDIiKTsKK3Nob3Vs
ZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVuWzBdIik7CitzaG91
bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblsxXSIpOworCitk
ZWJ1ZygnQWRkIGl0ZW1yZWYgYXR0cmlidXRlLicpOworaXRlbS5zZXRBdHRyaWJ1dGUoJ2l0ZW1y
ZWYnLCAnZm9vJyk7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDMi
KTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFswXSA9PSB0ZXN0RWxlbWVudCIpOwor
c2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRyZW5bMF0iKTsK
K3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFsyXSA9PSBpdGVtLmNoaWxkcmVuWzFdIik7
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>
<flag name="commit-queue"
          id="156348"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149279</attachid>
            <date>2012-06-25 06:21:32 -0700</date>
            <delta_ts>2012-07-02 06:32:07 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch_80269_20120625.diff</filename>
            <type>text/plain</type>
            <size>61167</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTE1MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY5IEBACisyMDEyLTA2LTI1ICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEltcGxlbWVudCBQ
cm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU3BlYzogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjcHJv
cGVydHlub2RlbGlzdAorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRp
dGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFp
bmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC10ZXN0LWFk
ZC1yZW1vdmUtZWxlbWVudC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBiaW5kaW5n
cy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWljcm9E
YXRhSXRlbVZhbHVlQ3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b0pTKTog
QWRkZWQgdG9KUygpIGN1c3RvbSBtZXRob2QuIFJldHVybnMgTm9kZSBpZiBpdGVtVmFsdWUgaXMg
bm9kZSBlbHNlIHJldHVybnMgU3RyaW5nLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
dG9WOCk6IEFkZGVkIHRvVjggY3VzdG9tIGNvZGUuCisgICAgICAgICogZG9tL0R5bmFtaWNOb2Rl
TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6RHluYW1pY05vZGVMaXN0OjppbnZhbGlkYXRlQ2Fj
aGUpOiBNYWRlIHRoaXMgZnVuY3Rpb24gdmlydHVhbCBzbyB0aGF0IHNwZWNpZmljCisgICAgICAg
IGltcGxlbWVudGF0aW9uIGdldHMgY2FsbGVkIGFwcHJvcHJpYXRseS4KKyAgICAgICAgKiBkb20v
Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppbnZhbGlkYXRlTm9kZUxpc3RzQ2Fj
aGVBZnRlckF0dHJpYnV0ZUNoYW5nZWQpOiBJbnZhbGlkYXRlIE5vZGVMaXN0Q2FjaGUgb24gaXRl
bXJlZgorICAgICAgICBhdHRyaWJ1dGUgY2hhbmdlLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
cHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpwcm9wZXJ0eU5vZGVMaXN0KTog
UmV0dXJucyBuYW1lZCBwcm9wZXJ0aWVzIG9mIGEgTWljcm9kYXRhIGl0ZW0uCisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpnZXRJdGVtUmVmRWxlbWVudHMpOiBSZXR1cm5zIHRoZSBJdGVtUmVmRWxl
bWVudHMgbGlzdCBvZiBnaXZlbiBlbGVtZW50LiBBZGRlZCB0aGlzCisgICAgICAgIG1ldGhvZCB0
byBzaGFyZSB0aGUgY29kZSBiZXR3ZWVuIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiBhbmQgUHJv
cGVydHlOb2RlTGlzdCB0byB1cGRhdGUgaXRlbVJlZkVsZW1lbnRzLgorICAgICAgICAqIGRvbS9O
b2RlLmg6IEFkZGVkIGRlY2xhcmF0aW9uIG9mIGdldEl0ZW1SZWZFbGVtZW50cygpIG1ldGhvZC4K
KyAgICAgICAgKiBkb20vUHJvcGVydHlOb2RlTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UHJvcGVydHlOb2RlTGlzdDo6UHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgIChXZWJD
b3JlOjpQcm9wZXJ0eU5vZGVMaXN0Ojp+UHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgIChXZWJD
b3JlOjpQcm9wZXJ0eU5vZGVMaXN0OjplbGVtZW50RGVmaW5lc0RpZmZlcmVudEl0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6ZWxlbWVudElzUHJvcGVydHlPZlJlZkVs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6dXBkYXRlSXRlbVJl
ZkVsZW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6Om5vZGVNYXRj
aGVzKTogUmV0dXJucyB0cnVlIGlmIHRlc3RFbGVtZW50IGlzIGEgcHJvcGVydHkgbmFtZWQgJ25h
bWUnIG9mCisgICAgICAgIGEgTWljcm9kYXRhIHRvcCBsZXZlbCBpdGVtLgorICAgICAgICAoV2Vi
Q29yZTo6UHJvcGVydHlOb2RlTGlzdDo6Z2V0VmFsdWVzKTogUmV0dXJucyBQcm9wZXJ0eVZhbHVl
QXJyYXkgd2hvc2UgdmFsdWVzIGFyZSBvYnRhaW5lZCBmcm9tIHRoZQorICAgICAgICBpdGVtVmFs
dWUgRE9NIHByb3BlcnR5IG9mIGVhY2ggb2YgdGhlIGVsZW1lbnRzIHJlcHJlc2VudGVkIGJ5IHRo
ZSBvYmplY3QsIGluIHRyZWUgb3JkZXIuCisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eU5vZGVM
aXN0OjppbnZhbGlkYXRlQ2FjaGUpOiBJbnZhbGlkYXRlcyBpdGVtUmVmRWxlbWVudHMgY2FjaGUg
YW5kIHNldHMgcm9vdGVkQXREb2N1bWVudAorICAgICAgICBpZiBpdGVtIGhhcyBhbiBpdGVtcmVm
IGF0dHJpYnV0ZSBzcGVjaWZpZWQuCisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaDog
QWRkZWQuCisgICAgICAgIChQcm9wZXJ0eU5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b3BlcnR5Tm9kZUxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9kZUxpc3Qu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OnVwZGF0ZVJlZkVs
ZW1lbnRzKTogQ2FsbCBnZXRJdGVtUmVmRWxlbWVudHMoKSB0byB1cGRhdGUgdGhlCisgICAgICAg
IGl0ZW1SZWZFbGVtZW50cyBjYWNoZSBpZiB0aGUgY2FjaGUgaXMgaW52YWxpZC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6ZmluZFByb3BlcnRpZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpuYW1lZEl0ZW0pOiBSZXR1
cm4gUHJvcGVydHlOb2RlTGlzdCBvYmplY3QgaW5zdGVhZCBvZiBOb2RlTGlzdC4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6aGFzTmFtZWRJdGVtKToKKyAgICAg
ICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oOgorICAgICAgICAoSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5pZGw6CisgICAgICAgICogaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTItMDYtMjUgIEFsZXhhbmRlciBQYXZs
b3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbU3R5
bGVzXSBDYW5ub3QgdmlzdWFsbHkgc2V0IGNhcmV0IGJlZm9yZSB0aGUgZmlyc3QgQ1NTIHByb3Bl
cnR5IG5hbWUgY2hhcmFjdGVyCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTIx
MTUwKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTIzNCw2ICsyMzQsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBkb20vUG9wU3RhdGVF
dmVudC5pZGwKICAgICBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlkbAogICAgIGRvbS9Qcm9n
cmVzc0V2ZW50LmlkbAorICAgIGRvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbAogICAgIGRvbS9SYW5n
ZUV4Y2VwdGlvbi5pZGwKICAgICBkb20vUmFuZ2UuaWRsCiAgICAgZG9tL1NoYWRvd1Jvb3QuaWRs
CkBAIC0zNDAsNiArMzQxLDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9JbWFn
ZURhdGEuaWRsCiAgICAgaHRtbC9NZWRpYUNvbnRyb2xsZXIuaWRsCiAgICAgaHRtbC9NZWRpYUVy
cm9yLmlkbAorICAgIGh0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmlkbAogICAgIGh0bWwvUmFkaW9O
b2RlTGlzdC5pZGwKICAgICBodG1sL1RleHRNZXRyaWNzLmlkbAogICAgIGh0bWwvVGltZVJhbmdl
cy5pZGwKQEAgLTYzMCw2ICs2MzIsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL1Bv
c2l0aW9uSXRlcmF0b3IuY3BwCiAgICAgZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAKICAg
ICBkb20vUHJvZ3Jlc3NFdmVudC5jcHAKKyAgICBkb20vUHJvcGVydHlOb2RlTGlzdC5jcHAKICAg
ICBkb20vUXVhbGlmaWVkTmFtZS5jcHAKICAgICBkb20vUmFuZ2UuY3BwCiAgICAgZG9tL1Jhbmdl
RXhjZXB0aW9uLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkocmV2aXNpb24g
MTIxMTUwKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNjUsNiArMjY1LDcgQEAKICNpbmNsdWRlICJKU1Bvc2l0aW9uRXJyb3JDYWxsYmFj
ay5jcHAiCiAjaW5jbHVkZSAiSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIgogI2luY2x1ZGUg
IkpTUHJvZ3Jlc3NFdmVudC5jcHAiCisjaW5jbHVkZSAiSlNQcm9wZXJ0eU5vZGVMaXN0LmNwcCIK
ICNpbmNsdWRlICJKU1JhZGlvTm9kZUxpc3QuY3BwIgogI2luY2x1ZGUgIkpTUmFuZ2UuY3BwIgog
I2luY2x1ZGUgIkpTUmFuZ2VFeGNlcHRpb24uY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCShyZXZpc2lvbiAxMjExNTApCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yMzYsNiArMjM2LDggQEAgQklORElOR19JRExT
ID0gXAogICAgICQoV2ViQ29yZSkvZG9tL1BvcFN0YXRlRXZlbnQuaWRsIFwKICAgICAkKFdlYkNv
cmUpL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Q
cm9ncmVzc0V2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vUHJvZ3Jlc3NFdmVudC5pZGwg
XAorICAgICQoV2ViQ29yZSkvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRsIFwKICAgICAkKFdlYkNv
cmUpL2RvbS9SYW5nZS5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1JhbmdlRXhjZXB0aW9uLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRs
IFwKQEAgLTM0Miw2ICszNDQsNyBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9o
dG1sL0ltYWdlRGF0YS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9NZWRpYUNvbnRyb2xsZXIu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvTWVkaWFFcnJvci5pZGwgXAorICAgICQoV2ViQ29y
ZSkvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvUmFk
aW9Ob2RlTGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9UZXh0TWV0cmljcy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvaHRtbC9UaW1lUmFuZ2VzLmlkbCBcCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMucHJpCShyZXZpc2lvbiAxMjExNTApCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTI0OSw2ICsyNDksNyBAQCBJRExfQklORElO
R1MgKz0gXAogICAgICQkUFdEL2RvbS9Qb3BTdGF0ZUV2ZW50LmlkbCBcCiAgICAgJCRQV0QvZG9t
L1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwgXAogICAgICQkUFdEL2RvbS9Qcm9ncmVzc0V2ZW50
LmlkbCBcCisgICAgJCRQV0QvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRsIFwKICAgICAkJFBXRC9k
b20vUmFuZ2VFeGNlcHRpb24uaWRsIFwKICAgICAkJFBXRC9kb20vUmFuZ2UuaWRsIFwKICAgICAk
JFBXRC9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsIFwKQEAgLTM5Miw2ICsz
OTMsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2h0bWwvSW1hZ2VEYXRhLmlkbCBc
CiAgICAgJCRQV0QvaHRtbC9NZWRpYUNvbnRyb2xsZXIuaWRsIFwKICAgICAkJFBXRC9odG1sL01l
ZGlhRXJyb3IuaWRsIFwKKyAgICAkJFBXRC9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwgXAog
ICAgICQkUFdEL2h0bWwvUmFkaW9Ob2RlTGlzdC5pZGwgXAogICAgICQkUFdEL2h0bWwvVGV4dE1l
dHJpY3MuaWRsIFwKICAgICAkJFBXRC9odG1sL1RpbWVSYW5nZXMuaWRsIFwKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTIxMTUwKQorKysgU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMzk5LDYgKzM5OSw4IEBA
IHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01l
c3NhZ2VFdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVzc2FnZVBvcnQuY3Bw
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVzc2FnZVBvcnQuaCBcCisJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAgXAorCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNNaWNyb0RhdGFJdGVtVmFsdWUuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU01vdXNlRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVu
dC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0YXRpb25DYWxsYmFjay5jcHAgXApA
QCAtNDY5LDYgKzQ3MSw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwKIAlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTUHJvZ3Jlc3NFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNQcm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9wZXJ0eU5v
ZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Byb3BlcnR5Tm9kZUxpc3Qu
aCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JhZGlvTm9kZUxpc3QuY3BwIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTUmFkaW9Ob2RlTGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTUmFuZ2UuY3BwIFwKQEAgLTc4MCw2ICs3ODQsNyBAQCBkb21fYmluZGluZ19pZGxz
ICs9IFwKIAkkKFdlYkNvcmUpL2RvbS9Qb3BTdGF0ZUV2ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9k
b20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vUHJvZ3Jlc3NF
dmVudC5pZGwgXAorCSQoV2ViQ29yZSkvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRsIFwKIAkkKFdl
YkNvcmUpL2RvbS9SYW5nZS5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1JhbmdlRXhjZXB0aW9uLmlk
bCBcCiAJJChXZWJDb3JlKS9kb20vU2hhZG93Um9vdC5pZGwgXApAQCAtODg2LDYgKzg5MSw3IEBA
IGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvaHRtbC9NZWRpYUVycm9yLmlkbCBc
CiAJJChXZWJDb3JlKS9odG1sL01lZGlhS2V5RXJyb3IuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwv
TWVkaWFLZXlFdmVudC5pZGwgXAorCSQoV2ViQ29yZSkvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUu
aWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvUmFkaW9Ob2RlTGlzdC5pZGwgXAogCSQoV2ViQ29yZSkv
aHRtbC9UZXh0TWV0cmljcy5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9UaW1lUmFuZ2VzLmlkbCBc
CkBAIC0xNDQ5LDYgKzE0NTUsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaCBcCisJU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAgXApAQCAtMTk2OCw2ICsxOTc1LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9ncmVzc0V2ZW50LmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL1Byb2dyZXNzRXZlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1By
b3BlcnR5Tm9kZUxpc3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlz
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJv
dW5kYXJ5UG9pbnQuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHJldmlzaW9uIDEyMTE1MCkKKysrIFNv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTU5NCw2ICs1OTQsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBkb20vUG9zaXRpb25JdGVyYXRvci5jcHAgXAogICAgIGRvbS9Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIFwKICAgICBkb20vUHJvZ3Jlc3NFdmVudC5jcHAgXAor
ICAgIGRvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcCBcCiAgICAgZG9tL1F1YWxpZmllZE5hbWUuY3Bw
IFwKICAgICBkb20vUmFuZ2UuY3BwIFwKICAgICBkb20vUmFuZ2VFeGNlcHRpb24uY3BwIFwKQEAg
LTE3NzIsNiArMTc3Myw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9Qb3NpdGlvbkl0ZXJhdG9y
LmggXAogICAgIGRvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCiAgICAgZG9tL1Byb2dyZXNz
RXZlbnQuaCBcCisgICAgZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaCBcCiAgICAgZG9tL1F1YWxpZmll
ZE5hbWUuaCBcCiAgICAgZG9tL1JhbmdlLmggXAogICAgIGRvbS9SZWdpc3RlcmVkRXZlbnRMaXN0
ZW5lci5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDEyMTE1MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtOTc4LDYgKzk3OCw3IEBA
CiAgICAgICAgICAgICAnZG9tL1BvcFN0YXRlRXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20v
UHJvY2Vzc2luZ0luc3RydWN0aW9uLmlkbCcsCiAgICAgICAgICAgICAnZG9tL1Byb2dyZXNzRXZl
bnQuaWRsJywKKyAgICAgICAgICAgICdkb20vUHJvcGVydHlOb2RlTGlzdC5pZGwnLAogICAgICAg
ICAgICAgJ2RvbS9SYW5nZS5pZGwnLAogICAgICAgICAgICAgJ2RvbS9SYW5nZUV4Y2VwdGlvbi5p
ZGwnLAogICAgICAgICAgICAgJ2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwn
LApAQCAtMTA4NSw2ICsxMDg2LDcgQEAKICAgICAgICAgICAgICdodG1sL0ltYWdlRGF0YS5pZGwn
LAogICAgICAgICAgICAgJ2h0bWwvTWVkaWFDb250cm9sbGVyLmlkbCcsCiAgICAgICAgICAgICAn
aHRtbC9NZWRpYUVycm9yLmlkbCcsCisgICAgICAgICAgICAnaHRtbC9NaWNyb0RhdGFJdGVtVmFs
dWUuaWRsJywKICAgICAgICAgICAgICdodG1sL01lZGlhS2V5RXJyb3IuaWRsJywKICAgICAgICAg
ICAgICdodG1sL01lZGlhS2V5RXZlbnQuaWRsJywKICAgICAgICAgICAgICdodG1sL1JhZGlvTm9k
ZUxpc3QuaWRsJywKQEAgLTIwMTQsNiArMjAxNiw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9K
U01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZXNz
YWdlUG9ydEN1c3RvbS5oJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0
ZW1WYWx1ZUN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTXV0YXRpb25D
YWxsYmFja0N1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rl
TWFwQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNw
cCcsCkBAIC0yMzI2LDYgKzIzMjksNyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwJywKICAgICAgICAgICAgICdiaW5kaW5n
cy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy92OC9jdXN0b20vVjhNZXNzYWdlUG9ydEN1c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVzQ29sbGVjdGlv
bi5jcHAnLApAQCAtNTM5NCw2ICs1Mzk4LDggQEAKICAgICAgICAgICAgICdkb20vUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmgnLAogICAgICAgICAgICAgJ2RvbS9Qcm9ncmVzc0V2ZW50LmNwcCcsCiAg
ICAgICAgICAgICAnZG9tL1Byb2dyZXNzRXZlbnQuaCcsCisgICAgICAgICAgICAnZG9tL1Byb3Bl
cnR5Tm9kZUxpc3QuY3BwJywKKyAgICAgICAgICAgICdkb20vUHJvcGVydHlOb2RlTGlzdC5oJywK
ICAgICAgICAgICAgICdkb20vUXVhbGlmaWVkTmFtZS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9S
YW5nZS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9SYW5nZUV4Y2VwdGlvbi5jcHAnLApJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9u
IDEyMTE1MCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTMxMCw2ICsxMTMxMCw2MiBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
b2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWljcm9EYXRhSXRlbVZhbHVlLmNw
cCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8
V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29s
CisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fp
cm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJE
ZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlBy
b2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0
aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWV0YWRhdGEuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KQEAgLTEyOTM0LDYgKzEyOTkwLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgog
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNQcm9wZXJ0eU5vZGVMaXN0LmNwcCIKKwkJ
CQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rp
b258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U1Byb3BlcnR5Tm9kZUxpc3QuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU1JhZGlvTm9kZUxpc3QuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KQEAgLTUyNjE5LDYgKzUyNzMxLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxQcm9wZXJ0eU5vZGVMaXN0LmNwcCIKKwkJ
CQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZM
aXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8
VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19B
bGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rp
b258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXFByb3BlcnR5Tm9kZUxpc3QuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXFF1YWxpZmllZE5hbWUuY3BwIgogCQkJCT4KIAkJCTwvRmls
ZT4KQEAgLTY4MTU4LDYgKzY4MzI2LDYyIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZp
bGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU01pY3JvRGF0YUl0ZW1WYWx1
ZUN1c3RvbS5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgor
CQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlO
YW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkv
PgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2lu
MzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29s
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUHJvZHVj
dGlvbnxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJ
CQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5oIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcanNcSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFr
ZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9H
TlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTIxMTUwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNDIyLDEwICs0MjIs
MTMgQEAgZW5kaWYKIAogaWYgRU5BQkxFX01JQ1JPREFUQQogd2Via2l0Z3RrX2J1aWx0X2hfYXBp
ICs9IFwKLQkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCisJJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2Vz
L3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCBcCisJJCh0b3BfYnVp
bGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Qcm9wZXJ0eU5vZGVMaXN0LmgK
IHdlYmtpdGd0a19nZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIFwKLQlEZXJpdmVkU291cmNl
cy93ZWJraXQvV2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uUHJpdmF0ZS5oCisJRGVy
aXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvblByaXZh
dGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVByb3BlcnR5Tm9kZUxpc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NUHJvcGVydHlOb2RlTGlzdFBy
aXZhdGUuaAogZW5kaWYKIAogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01p
Y3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwCShyZXZpc2lvbiAwKQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20u
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChjKSAy
MDEyIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAor
ICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICog
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJKU01pY3JvRGF0YUl0ZW1W
YWx1ZS5oIgorCisjaW5jbHVkZSAiSlNOb2RlLmgiCisjaW5jbHVkZSA8cnVudGltZS9KU0FycmF5
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSlNW
YWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgTWljcm9EYXRhSXRlbVZhbHVlKiBpdGVtVmFsdWUpCit7CisgICAgaWYgKCFpdGVtVmFsdWUp
CisgICAgICAgIHJldHVybiBqc051bGwoKTsKKyAgICBpZiAoaXRlbVZhbHVlLT5pc05vZGUoKSkK
KyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpdGVtVmFsdWUtPmdldE5v
ZGUoKSk7CisgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGl0ZW1WYWx1ZS0+Z2V0U3RyaW5nKCkp
OworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNaWNyb0Rh
dGFJdGVtVmFsdWVDdXN0b20uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiBNb3Rvcm9sYSBN
b2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9k
aWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmli
dXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisg
KiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVO
QUJMRShNSUNST0RBVEEpCisKKyNpbmNsdWRlICJWOE1pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorCisj
aW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhOb2RlLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoTWljcm9EYXRhSXRlbVZhbHVl
KiBpdGVtVmFsdWUsIHY4OjpJc29sYXRlKiBpc29sYXRlKQoreworICAgIGlmICghaXRlbVZhbHVl
KQorICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKKyAgICBpZiAoaXRlbVZhbHVlLT5pc05vZGUo
KSkKKyAgICAgICAgcmV0dXJuIHRvVjgoaXRlbVZhbHVlLT5nZXROb2RlKCkpOworICAgIHJldHVy
biB2OFN0cmluZyhpdGVtVmFsdWUtPmdldFN0cmluZygpKTsKK30KKworfQorCisjZW5kaWYgLy8g
RU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWljTm9kZUxp
c3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgJ
KHJldmlzaW9uIDEyMTE1MCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWljTm9kZUxpc3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFJhZGlv
Tm9kZUxpc3RUeXBlLAogICAgICAgICBMYWJlbHNOb2RlTGlzdFR5cGUsCiAgICAgICAgIE1pY3Jv
RGF0YUl0ZW1MaXN0VHlwZSwKKyAgICAgICAgUHJvcGVydHlOb2RlTGlzdFR5cGUsCiAgICAgfTsK
ICAgICBlbnVtIFJvb3RUeXBlIHsKICAgICAgICAgUm9vdGVkQXROb2RlLApAQCAtNjgsNyArNjks
NyBAQCBwdWJsaWM6CiAgICAgTm9kZSogb3duZXJOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vd25l
ck5vZGUuZ2V0KCk7IH0KICAgICBib29sIGlzUm9vdGVkQXREb2N1bWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fY2FjaGVzLnJvb3RlZEF0RG9jdW1lbnQ7IH0KICAgICBib29sIHNob3VsZEludmFsaWRh
dGVPbkF0dHJpYnV0ZUNoYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVzLnNob3VsZEludmFs
aWRhdGVPbkF0dHJpYnV0ZUNoYW5nZTsgfQotICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlKCkgeyBt
X2NhY2hlcy5yZXNldCgpOyB9CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDYWNoZSgpIHsg
bV9jYWNoZXMucmVzZXQoKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgTm9kZSogcm9vdE5vZGUoKSBj
b25zdApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTIxMTUwKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDcgQEAKIAog
I2lmIEVOQUJMRShNSUNST0RBVEEpCiAjaW5jbHVkZSAiSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
LmgiCisjaW5jbHVkZSAiUHJvcGVydHlOb2RlTGlzdC5oIgogI2VuZGlmCiAKIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CkBAIC05NjEsNiArOTYyLDcgQEAgdm9pZCBOb2RlOjppbnZhbGlkYXRlTm9kZUxp
c3RzQ2FjaGVBZnRlcgogICAgICAgICAmJiBhdHRyTmFtZSAhPSBpdGVtc2NvcGVBdHRyCiAgICAg
ICAgICYmIGF0dHJOYW1lICE9IGl0ZW1wcm9wQXR0cgogICAgICAgICAmJiBhdHRyTmFtZSAhPSBp
dGVtdHlwZUF0dHIKKyAgICAgICAgJiYgYXR0ck5hbWUgIT0gaXRlbXJlZkF0dHIKICNlbmRpZgog
ICAgICAgICAmJiBhdHRyTmFtZSAhPSBuYW1lQXR0cgogICAgICAgICAmJiBhdHRyTmFtZSAhPSBm
b3JBdHRyCkBAIC0yNzUyLDYgKzI3NTQsNDYgQEAgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKiBO
b2RlOjpwcm9wZXJ0aQogewogICAgIHJldHVybiBlbnN1cmVSYXJlRGF0YSgpLT5wcm9wZXJ0aWVz
KHRoaXMpOwogfQorCitQYXNzUmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+IE5vZGU6OnByb3BlcnR5
Tm9kZUxpc3QoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIHJldHVybiBlbnN1cmVSYXJlRGF0
YSgpLT5lbnN1cmVOb2RlTGlzdHModGhpcyktPmFkZENhY2hlV2l0aE5hbWU8UHJvcGVydHlOb2Rl
TGlzdD4odGhpcywgRHluYW1pY05vZGVMaXN0OjpQcm9wZXJ0eU5vZGVMaXN0VHlwZSwgbmFtZSk7
Cit9CisKK1ZlY3RvcjxFbGVtZW50Kj4gTm9kZTo6Z2V0SXRlbVJlZkVsZW1lbnRzKCkKK3sKKyAg
ICBBU1NFUlQoaXNFbGVtZW50Tm9kZSgpKTsKKyAgICBFbGVtZW50KiB0aGlzRWxlbWVudCA9IHRv
RWxlbWVudCh0aGlzKTsKKyAgICBWZWN0b3I8RWxlbWVudCo+IGl0ZW1SZWZFbGVtZW50czsKKwor
ICAgIGlmICghdGhpc0VsZW1lbnQtPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXJlZkF0dHIpKSB7Cisg
ICAgICAgIGl0ZW1SZWZFbGVtZW50cy5hcHBlbmQodGhpc0VsZW1lbnQpOworICAgICAgICByZXR1
cm4gaXRlbVJlZkVsZW1lbnRzOworICAgIH0KKworICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KiBp
dGVtUmVmID0gdGhpc0VsZW1lbnQtPml0ZW1SZWYoKTsKKyAgICBSZWZQdHI8RE9NU2V0dGFibGVU
b2tlbkxpc3Q+IHByb2Nlc3NlZEl0ZW1SZWYgPSBET01TZXR0YWJsZVRva2VuTGlzdDo6Y3JlYXRl
KCk7CisgICAgTm9kZSogcm9vdE5vZGUgPSB0aGlzRWxlbWVudC0+dHJlZVNjb3BlKCktPnJvb3RO
b2RlKCk7CisKKyAgICBmb3IgKE5vZGUqIGN1cnJlbnQgPSByb290Tm9kZS0+Zmlyc3RDaGlsZCgp
OyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+dHJhdmVyc2VOZXh0Tm9kZShyb290Tm9kZSkp
IHsKKyAgICAgICAgaWYgKCFjdXJyZW50LT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChjdXJyZW50KTsK
KworICAgICAgICBpZiAoZWxlbWVudCA9PSB0aGlzRWxlbWVudCkgeworICAgICAgICAgICAgaXRl
bVJlZkVsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICB9CisKKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBpZCA9IGVsZW1lbnQtPmdldElk
QXR0cmlidXRlKCk7CisgICAgICAgIGlmICghcHJvY2Vzc2VkSXRlbVJlZi0+dG9rZW5zKCkuY29u
dGFpbnMoaWQpICYmIGl0ZW1SZWYtPnRva2VucygpLmNvbnRhaW5zKGlkKSkgeworICAgICAgICAg
ICAgcHJvY2Vzc2VkSXRlbVJlZi0+c2V0VmFsdWUoaWQpOworICAgICAgICAgICAgaWYgKCFlbGVt
ZW50LT5pc0Rlc2NlbmRhbnRPZih0aGlzRWxlbWVudCkpCisgICAgICAgICAgICAgICAgaXRlbVJl
ZkVsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4g
aXRlbVJlZkVsZW1lbnRzOworfQogI2VuZGlmCiAKIHZvaWQgTm9kZVJhcmVEYXRhOjpjcmVhdGVO
b2RlTGlzdHMoTm9kZSogbm9kZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAkocmV2aXNpb24gMTIxMTUwKQor
KysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAs
NyBAQCBjbGFzcyBUcmVlU2NvcGU7CiAKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogY2xhc3MgSFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uOworY2xhc3MgUHJvcGVydHlOb2RlTGlzdDsKICNlbmRpZgog
CiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwpAQCAtNjMxLDYgKzYzMiw4IEBAIHB1YmxpYzoK
ICAgICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVJlZigpOwogICAgIERPTVNldHRhYmxlVG9r
ZW5MaXN0KiBpdGVtVHlwZSgpOwogICAgIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiogcHJvcGVy
dGllcygpOworICAgIFBhc3NSZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4gcHJvcGVydHlOb2RlTGlz
dChjb25zdCBTdHJpbmcmKTsKKyAgICBWZWN0b3I8RWxlbWVudCo+IGdldEl0ZW1SZWZFbGVtZW50
cygpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQpJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwK
KyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwK
KyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3Jv
bGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQor
ICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9E
QVRBKQorI2luY2x1ZGUgIlByb3BlcnR5Tm9kZUxpc3QuaCIKKworI2luY2x1ZGUgIkRPTVNldHRh
YmxlVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgorI2luY2x1ZGUgIkhU
TUxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTm9kZVJhcmVE
YXRhLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1l
czsKKworUHJvcGVydHlOb2RlTGlzdDo6UHJvcGVydHlOb2RlTGlzdChOb2RlKiByb290Tm9kZSwg
Y29uc3QgU3RyaW5nJiBuYW1lKQorICAgIDogRHluYW1pY1N1YnRyZWVOb2RlTGlzdChyb290Tm9k
ZSwgdG9FbGVtZW50KHJvb3ROb2RlKS0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtcmVmQXR0cikgPyBS
b290ZWRBdERvY3VtZW50IDogUm9vdGVkQXROb2RlKQorICAgICwgbV9uYW1lKG5hbWUpCisgICAg
LCBtX2lzSXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZChmYWxzZSkKK3sKKyAgICBkb2N1bWVudCgp
LT5kb2N1bWVudCgpLT5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QodGhpcyk7Cit9CisK
K1Byb3BlcnR5Tm9kZUxpc3Q6On5Qcm9wZXJ0eU5vZGVMaXN0KCkKK3sKKyAgICBvd25lck5vZGUo
KS0+bm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlV2l0aE5hbWUodGhpcywgRHluYW1pY05vZGVMaXN0
OjpQcm9wZXJ0eU5vZGVMaXN0VHlwZSwgbV9uYW1lKTsKKyAgICBkb2N1bWVudCgpLT5kb2N1bWVu
dCgpLT51bnJlZ2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdCh0aGlzKTsKK30KKworYm9vbCBB
TFdBWVNfSU5MSU5FIFByb3BlcnR5Tm9kZUxpc3Q6OmVsZW1lbnREZWZpbmVzRGlmZmVyZW50SXRl
bShjb25zdCBFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIHJldHVybiBlbGVtZW50LT5m
YXN0SGFzQXR0cmlidXRlKGl0ZW1zY29wZUF0dHIpICYmIGVsZW1lbnQgIT0gb3duZXJOb2RlKCk7
Cit9CisKK2Jvb2wgUHJvcGVydHlOb2RlTGlzdDo6ZWxlbWVudElzUHJvcGVydHlPZlJlZkVsZW1l
bnQoY29uc3QgTm9kZSogdGVzdEVsZW1lbnQsIGNvbnN0IE5vZGUgKnJlZkVsZW1lbnQpIGNvbnN0
Cit7CisgICAgZm9yIChjb25zdCBDb250YWluZXJOb2RlKiBub2RlID0gdGVzdEVsZW1lbnQtPnBh
cmVudE5vZGUoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKSkgeworICAgICAgICBp
ZiAobm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7CisgICAgICAgICAgICBjb25zdCBFbGVtZW50KiBl
bGVtZW50ID0gdG9FbGVtZW50KG5vZGUpOworICAgICAgICAgICAgaWYgKGVsZW1lbnREZWZpbmVz
RGlmZmVyZW50SXRlbShlbGVtZW50KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAobm9kZSA9PSByZWZFbGVtZW50KQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQcm9wZXJ0
eU5vZGVMaXN0Ojp1cGRhdGVJdGVtUmVmRWxlbWVudHMoKSBjb25zdAoreworICAgIGlmIChtX2lz
SXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pdGVt
UmVmRWxlbWVudHNDYWNoZSA9IG93bmVyTm9kZSgpLT5nZXRJdGVtUmVmRWxlbWVudHMoKTsKKyAg
ICBtX2lzSXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCA9IHRydWU7Cit9CisKK2Jvb2wgUHJvcGVy
dHlOb2RlTGlzdDo6bm9kZU1hdGNoZXMoRWxlbWVudCogdGVzdEVsZW1lbnQpIGNvbnN0Cit7Cisg
ICAgaWYgKCF0b0VsZW1lbnQob3duZXJOb2RlKCkpLT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1zY29w
ZUF0dHIpIHx8ICF0ZXN0RWxlbWVudC0+aXNIVE1MRWxlbWVudCgpIHx8ICF0ZXN0RWxlbWVudC0+
ZmFzdEhhc0F0dHJpYnV0ZShpdGVtcHJvcEF0dHIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICB1cGRhdGVJdGVtUmVmRWxlbWVudHMoKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX2l0ZW1SZWZFbGVtZW50c0NhY2hlLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmICh0
ZXN0RWxlbWVudCA9PSBtX2l0ZW1SZWZFbGVtZW50c0NhY2hlW2ldIHx8IGVsZW1lbnRJc1Byb3Bl
cnR5T2ZSZWZFbGVtZW50KHRlc3RFbGVtZW50LCBtX2l0ZW1SZWZFbGVtZW50c0NhY2hlW2ldKSkg
eworICAgICAgICAgICAgaWYgKHRlc3RFbGVtZW50LT5pdGVtUHJvcCgpLT50b2tlbnMoKS5jb250
YWlucyhtX25hbWUpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitQcm9wZXJ0eVZhbHVlQXJyYXkgUHJvcGVy
dHlOb2RlTGlzdDo6Z2V0VmFsdWVzKCkgY29uc3QKK3sKKyAgICBQcm9wZXJ0eVZhbHVlQXJyYXkg
cHJvcGVydHlWYWx1ZTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoKCk7ICsr
aSkKKyAgICAgICAgcHJvcGVydHlWYWx1ZS5hcHBlbmQodG9IVE1MRWxlbWVudChpdGVtKGkpKS0+
aXRlbVZhbHVlKCkpOworCisgICAgcmV0dXJuIHByb3BlcnR5VmFsdWU7Cit9CisKK3ZvaWQgUHJv
cGVydHlOb2RlTGlzdDo6aW52YWxpZGF0ZUNhY2hlKCkKK3sKKyAgICBtX2NhY2hlcy5yb290ZWRB
dERvY3VtZW50ID0gdG9FbGVtZW50KG93bmVyTm9kZSgpKS0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVt
cmVmQXR0cik7CisgICAgbV9pc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQgPSBmYWxzZTsKKyAg
ICBtX2NhY2hlcy5yZXNldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5
Tm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2Rl
TGlzdC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxp
c3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykg
MjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwK
KyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAq
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
TmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUHJvcGVy
dHlOb2RlTGlzdF9oCisjZGVmaW5lIFByb3BlcnR5Tm9kZUxpc3RfaAorCisjaWYgRU5BQkxFKE1J
Q1JPREFUQSkKKyNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJNaWNyb0Rh
dGFJdGVtVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gPiBQcm9wZXJ0
eVZhbHVlQXJyYXk7CisKK2NsYXNzIFByb3BlcnR5Tm9kZUxpc3QgOiBwdWJsaWMgRHluYW1pY1N1
YnRyZWVOb2RlTGlzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvcGVydHlO
b2RlTGlzdD4gY3JlYXRlKE5vZGUqIHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIG5hbWUpCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb3BlcnR5Tm9kZUxpc3Qocm9vdE5vZGUs
IG5hbWUpKTsKKyAgICB9CisKKyAgICB+UHJvcGVydHlOb2RlTGlzdCgpOworCisgICAgUHJvcGVy
dHlWYWx1ZUFycmF5IGdldFZhbHVlcygpIGNvbnN0OworCisgICAgdm9pZCBpbnZhbGlkYXRlQ2Fj
aGUoKSBPVkVSUklERTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBQcm9wZXJ0eU5vZGVMaXN0
KE5vZGUqIHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIG5hbWUpOworCisgICAgdmlydHVhbCBib29s
IG5vZGVNYXRjaGVzKEVsZW1lbnQqKSBjb25zdCBPVkVSUklERTsKKworICAgIGJvb2wgQUxXQVlT
X0lOTElORSBlbGVtZW50RGVmaW5lc0RpZmZlcmVudEl0ZW0oY29uc3QgRWxlbWVudCopIGNvbnN0
OworICAgIGJvb2wgZWxlbWVudElzUHJvcGVydHlPZlJlZkVsZW1lbnQoY29uc3QgTm9kZSosIGNv
bnN0IE5vZGUqKSBjb25zdDsKKyAgICB2b2lkIHVwZGF0ZUl0ZW1SZWZFbGVtZW50cygpIGNvbnN0
OworCisgICAgU3RyaW5nIG1fbmFtZTsKKyAgICBtdXRhYmxlIFZlY3RvcjxFbGVtZW50Kj4gbV9p
dGVtUmVmRWxlbWVudHNDYWNoZTsKKyAgICBtdXRhYmxlIGJvb2wgbV9pc0l0ZW1SZWZFbGVtZW50
c0NhY2hlVmFsaWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoTUlDUk9EQVRBKQorCisjZW5kaWYgLy8gU3RhdGljTm9kZUxpc3RfaApJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAor
ICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAor
ICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9s
YSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5Cisg
KiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAg
IENvbmRpdGlvbmFsPU1JQ1JPREFUQSwKKyAgICAgICAgSW5kZXhlZEdldHRlciwKKyAgICAgICAg
SlNHZW5lcmF0ZVRvSlNPYmplY3QKKyAgICBdIFByb3BlcnR5Tm9kZUxpc3QgOiBOb2RlTGlzdCB7
CisKKyAgICAgICAgc2VxdWVuY2U8TWljcm9EYXRhSXRlbVZhbHVlPiBnZXRWYWx1ZXMoKTsKKyAg
ICAgICAgTm9kZSBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworCisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKKyAgICB9OworfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAkocmV2
aXNpb24gMTIxMTUwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSAiSFRN
TEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb2RlLmgiCi0j
aW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eU5vZGVMaXN0Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzUsMzggKzc1LDcgQEAgdm9pZCBIVE1MUHJv
cGVydGllc0NvbGxlY3Rpb246OnVwZGF0ZVJlZgogICAgIGlmIChtX2NhY2hlLmhhc0l0ZW1SZWZF
bGVtZW50cykKICAgICAgICAgcmV0dXJuOwogCi0gICAgVmVjdG9yPEVsZW1lbnQqPiBpdGVtUmVm
RWxlbWVudHM7Ci0gICAgSFRNTEVsZW1lbnQqIGJhc2VFbGVtZW50ID0gdG9IVE1MRWxlbWVudChi
YXNlKCkpOwotCi0gICAgaWYgKCFiYXNlRWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtcmVm
QXR0cikpIHsKLSAgICAgICAgaXRlbVJlZkVsZW1lbnRzLmFwcGVuZChiYXNlRWxlbWVudCk7Ci0g
ICAgICAgIG1fY2FjaGUuc2V0SXRlbVJlZkVsZW1lbnRzKGl0ZW1SZWZFbGVtZW50cyk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVJlZiA9
IGJhc2VFbGVtZW50LT5pdGVtUmVmKCk7Ci0gICAgUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0
PiBwcm9jZXNzZWRJdGVtUmVmID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOwotICAg
IE5vZGUqIHJvb3ROb2RlID0gYmFzZUVsZW1lbnQtPnRyZWVTY29wZSgpLT5yb290Tm9kZSgpOwot
Ci0gICAgZm9yIChOb2RlKiBjdXJyZW50ID0gcm9vdE5vZGUtPmZpcnN0Q2hpbGQoKTsgY3VycmVu
dDsgY3VycmVudCA9IGN1cnJlbnQtPnRyYXZlcnNlTmV4dE5vZGUocm9vdE5vZGUpKSB7Ci0gICAg
ICAgIGlmICghY3VycmVudC0+aXNIVE1MRWxlbWVudCgpKQotICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudChjdXJyZW50KTsK
LQotICAgICAgICBpZiAoZWxlbWVudCA9PSBiYXNlRWxlbWVudCkgewotICAgICAgICAgICAgaXRl
bVJlZkVsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICB9Ci0KLSAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBpZCA9IGVsZW1lbnQtPmdldElk
QXR0cmlidXRlKCk7Ci0gICAgICAgIGlmICghcHJvY2Vzc2VkSXRlbVJlZi0+dG9rZW5zKCkuY29u
dGFpbnMoaWQpICYmIGl0ZW1SZWYtPnRva2VucygpLmNvbnRhaW5zKGlkKSkgewotICAgICAgICAg
ICAgcHJvY2Vzc2VkSXRlbVJlZi0+c2V0VmFsdWUoaWQpOwotICAgICAgICAgICAgaWYgKCFlbGVt
ZW50LT5pc0Rlc2NlbmRhbnRPZihiYXNlRWxlbWVudCkpCi0gICAgICAgICAgICAgICAgaXRlbVJl
ZkVsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIG1fY2Fj
aGUuc2V0SXRlbVJlZkVsZW1lbnRzKGl0ZW1SZWZFbGVtZW50cyk7CisgICAgbV9jYWNoZS5zZXRJ
dGVtUmVmRWxlbWVudHMoYmFzZSgpLT5nZXRJdGVtUmVmRWxlbWVudHMoKSk7CiB9CiAKIHN0YXRp
YyBOb2RlKiBuZXh0Tm9kZVdpdGhQcm9wZXJ0eShOb2RlKiBiYXNlLCBOb2RlKiBub2RlKQpAQCAt
MjI5LDcgKzE5OCw3IEBAIHZvaWQgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpmaW5kUHJvcGUK
ICAgICBmb3IgKEVsZW1lbnQqIGVsZW1lbnQgPSBpdGVtQWZ0ZXIoYmFzZSwgMCk7IGVsZW1lbnQ7
IGVsZW1lbnQgPSBpdGVtQWZ0ZXIoYmFzZSwgZWxlbWVudCkpIHsKICAgICAgICAgRE9NU2V0dGFi
bGVUb2tlbkxpc3QqIGl0ZW1Qcm9wZXJ0eSA9IGVsZW1lbnQtPml0ZW1Qcm9wKCk7CiAgICAgICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtUHJvcGVydHktPmxlbmd0aCgpOyArK2kpCi0g
ICAgICAgICAgICBtX2NhY2hlLnVwZGF0ZVByb3BlcnR5Q2FjaGUoZWxlbWVudCwgaXRlbVByb3Bl
cnR5LT5pdGVtKGkpKTsKKyAgICAgICAgICAgIG1fY2FjaGUudXBkYXRlUHJvcGVydHlDYWNoZShp
dGVtUHJvcGVydHktPml0ZW0oaSkpOwogICAgIH0KIH0KIApAQCAtMjU4LDIxICsyMjcsMTIgQEAg
UGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBIVE1MUHJvcGVydGllcwogICAgIHJldHVybiBtX2Nh
Y2hlLnByb3BlcnR5TmFtZXM7CiB9CiAKLVBhc3NSZWZQdHI8Tm9kZUxpc3Q+IEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbjo6bmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKK1Bhc3NS
ZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpuYW1lZEl0
ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAogewogICAgIGlmICghdG9IVE1MRWxlbWVudChi
YXNlKCkpLT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1zY29wZUF0dHIpKQogICAgICAgcmV0dXJuIDA7
CiAKLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbmFtZWRJdGVtczsKLQotICAgIHVwZGF0ZU5h
bWVDYWNoZSgpOwotCi0gICAgVmVjdG9yPEVsZW1lbnQqPiogcHJvcGVydHlSZXN1bHRzID0gbV9j
YWNoZS5wcm9wZXJ0eUNhY2hlLmdldChBdG9taWNTdHJpbmcobmFtZSkuaW1wbCgpKTsKLSAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBwcm9wZXJ0eVJlc3VsdHMgJiYgaSA8IHByb3BlcnR5UmVzdWx0
cy0+c2l6ZSgpOyArK2kpCi0gICAgICAgIG5hbWVkSXRlbXMuYXBwZW5kKHByb3BlcnR5UmVzdWx0
cy0+YXQoaSkpOwotCi0gICAgLy8gRklYTUU6IEhUTUw1IHNwZWNpZmllcyB0aGF0IHRoaXMgc2hv
dWxkIHJldHVybiBQcm9wZXJ0eU5vZGVMaXN0LgotICAgIHJldHVybiBuYW1lZEl0ZW1zLmlzRW1w
dHkoKSA/IDAgOiBTdGF0aWNOb2RlTGlzdDo6YWRvcHQobmFtZWRJdGVtcyk7CisgICAgcmV0dXJu
IGJhc2UoKS0+cHJvcGVydHlOb2RlTGlzdChuYW1lKTsKIH0KIAogYm9vbCBIVE1MUHJvcGVydGll
c0NvbGxlY3Rpb246Omhhc05hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0
CkBAIC0yODAsMTEgKzI0MCwyMSBAQCBib29sIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6aGFz
TmFtZWRJCiAgICAgaWYgKCF0b0hUTUxFbGVtZW50KGJhc2UoKSktPmZhc3RIYXNBdHRyaWJ1dGUo
aXRlbXNjb3BlQXR0cikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHVwZGF0ZU5hbWVD
YWNoZSgpOworICAgIGludmFsaWRhdGVDYWNoZUlmTmVlZGVkKCk7CiAKLSAgICBpZiAoVmVjdG9y
PEVsZW1lbnQqPiogcHJvcGVydHlDYWNoZSA9IG1fY2FjaGUucHJvcGVydHlDYWNoZS5nZXQobmFt
ZS5pbXBsKCkpKSB7Ci0gICAgICAgIGlmICghcHJvcGVydHlDYWNoZS0+aXNFbXB0eSgpKQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKG1fY2FjaGUuaGFzTmFtZWRJdGVtKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHVwZGF0ZVJlZkVsZW1lbnRzKCk7CisKKyAgICBjb25z
dCBWZWN0b3I8RWxlbWVudCo+JiBpdGVtUmVmRWxlbWVudHMgPSBtX2NhY2hlLmdldEl0ZW1SZWZF
bGVtZW50cygpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtUmVmRWxlbWVudHMu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgZm9yIChFbGVtZW50KiBlbGVtZW50ID0gaXRlbUFmdGVy
KGl0ZW1SZWZFbGVtZW50c1tpXSwgMCk7IGVsZW1lbnQ7IGVsZW1lbnQgPSBpdGVtQWZ0ZXIoaXRl
bVJlZkVsZW1lbnRzW2ldLCBlbGVtZW50KSkgeworICAgICAgICAgICAgaWYgKGVsZW1lbnQtPml0
ZW1Qcm9wKCktPnRva2VucygpLmNvbnRhaW5zKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgbV9j
YWNoZS5oYXNOYW1lZEl0ZW0gPSB0cnVlOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIGZhbHNlOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCShy
ZXZpc2lvbiAxMjExNTApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIERPTVN0cmluZ0xpc3Q7CitjbGFzcyBQcm9wZXJ0eU5vZGVMaXN0Owog
CiBjbGFzcyBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24gOiBwdWJsaWMgSFRNTENvbGxlY3Rpb24g
ewogcHVibGljOgpAQCAtNTEsNyArNTIsNyBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPERP
TVN0cmluZ0xpc3Q+IG5hbWVzKCkgY29uc3Q7CiAKLSAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBu
YW1lZEl0ZW0oY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxQcm9wZXJ0eU5v
ZGVMaXN0PiBuYW1lZEl0ZW0oY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgYm9vbCBoYXNOYW1l
ZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3Q7CiAKIHByaXZhdGU6CkBAIC03NywxMSAr
NzgsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgdW5zaWduZWQgbGVuZ3RoOwogICAgICAgICBib29s
IGhhc0xlbmd0aDsKICAgICAgICAgYm9vbCBoYXNOYW1lQ2FjaGU7Ci0gICAgICAgIE5vZGVDYWNo
ZU1hcCBwcm9wZXJ0eUNhY2hlOwogICAgICAgICBWZWN0b3I8RWxlbWVudCo+IGl0ZW1SZWZFbGVt
ZW50czsKICAgICAgICAgUmVmUHRyPERPTVN0cmluZ0xpc3Q+IHByb3BlcnR5TmFtZXM7CiAgICAg
ICAgIHVuc2lnbmVkIGl0ZW1SZWZFbGVtZW50UG9zaXRpb247CiAgICAgICAgIGJvb2wgaGFzSXRl
bVJlZkVsZW1lbnRzOworICAgICAgICBib29sIGhhc05hbWVkSXRlbTsKIAogICAgICAgICB2b2lk
IGNsZWFyKCkKICAgICAgICAgewpAQCAtOTEsMTEgKzkyLDExIEBAIHByaXZhdGU6CiAgICAgICAg
ICAgICBsZW5ndGggPSAwOwogICAgICAgICAgICAgaGFzTGVuZ3RoID0gZmFsc2U7CiAgICAgICAg
ICAgICBoYXNOYW1lQ2FjaGUgPSBmYWxzZTsKLSAgICAgICAgICAgIHByb3BlcnR5Q2FjaGUuY2xl
YXIoKTsKICAgICAgICAgICAgIGl0ZW1SZWZFbGVtZW50cy5jbGVhcigpOwogICAgICAgICAgICAg
cHJvcGVydHlOYW1lcy5jbGVhcigpOwogICAgICAgICAgICAgaXRlbVJlZkVsZW1lbnRQb3NpdGlv
biA9IDA7CiAgICAgICAgICAgICBoYXNJdGVtUmVmRWxlbWVudHMgPSBmYWxzZTsKKyAgICAgICAg
ICAgIGhhc05hbWVkSXRlbSA9IGZhbHNlOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBzZXRJ
dGVtUmVmRWxlbWVudHMoY29uc3QgVmVjdG9yPEVsZW1lbnQqPiYgZWxlbWVudHMpCkBAIC0xMTUs
MTcgKzExNiwxMyBAQCBwcml2YXRlOgogICAgICAgICAgICAgaGFzTGVuZ3RoID0gdHJ1ZTsKICAg
ICAgICAgfQogCi0gICAgICAgIHZvaWQgdXBkYXRlUHJvcGVydHlDYWNoZShFbGVtZW50KiBlbGVt
ZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIHByb3BlcnR5TmFtZSkKKyAgICAgICAgdm9pZCB1cGRh
dGVQcm9wZXJ0eUNhY2hlKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvcGVydHlOYW1lKQogICAgICAg
ICB7CiAgICAgICAgICAgICBpZiAoIXByb3BlcnR5TmFtZXMpCiAgICAgICAgICAgICAgICAgcHJv
cGVydHlOYW1lcyA9IERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpOwogCiAgICAgICAgICAgICBpZiAo
IXByb3BlcnR5TmFtZXMtPmNvbnRhaW5zKHByb3BlcnR5TmFtZSkpCiAgICAgICAgICAgICAgICAg
cHJvcGVydHlOYW1lcy0+YXBwZW5kKHByb3BlcnR5TmFtZSk7Ci0KLSAgICAgICAgICAgIFZlY3Rv
cjxFbGVtZW50Kj4qIHByb3BlcnR5UmVzdWx0cyA9IHByb3BlcnR5Q2FjaGUuZ2V0KHByb3BlcnR5
TmFtZS5pbXBsKCkpOwotICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eVJlc3VsdHMgfHwgIXByb3Bl
cnR5UmVzdWx0cy0+Y29udGFpbnMoZWxlbWVudCkpCi0gICAgICAgICAgICAgICAgYXBwZW5kKHBy
b3BlcnR5Q2FjaGUsIHByb3BlcnR5TmFtZSwgZWxlbWVudCk7CiAgICAgICAgIH0KIAogICAgICAg
ICB2b2lkIHVwZGF0ZUN1cnJlbnRJdGVtKEVsZW1lbnQqIGVsZW1lbnQsIHVuc2lnbmVkIHBvcywg
dW5zaWduZWQgaXRlbVJlZkVsZW1lbnRQb3MpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsCShyZXZpc2lvbiAxMjExNTApCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTQwLDggKzQwLDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBOb2RlIGl0ZW0o
aW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZ0xpc3QgbmFtZXM7Ci0KLSAgICAgICAgLy8gRklYTUU6IEhUTUw1IHNwZWNpZmllcyB0
aGF0IHRoaXMgc2hvdWxkIHJldHVybiBQcm9wZXJ0eU5vZGVMaXN0LgotICAgICAgICBOb2RlTGlz
dCBuYW1lZEl0ZW0oaW4gRE9NU3RyaW5nIG5hbWUpOworICAgICAgICBQcm9wZXJ0eU5vZGVMaXN0
IG5hbWVkSXRlbShpbiBET01TdHJpbmcgbmFtZSk7CiAgICAgfTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHks
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlv
biwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGlj
ZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90
b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1h
eQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAg
ICAgQ29uZGl0aW9uYWw9TUlDUk9EQVRBLAorICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAorICAg
ICAgICBPbWl0Q29uc3RydWN0b3IKKyAgICBdIE1pY3JvRGF0YUl0ZW1WYWx1ZSB7CisgICAgfTsK
K30KKwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMTIxMTUwKQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0z
NjksNiArMzY5LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBEb2N1bWVu
dENvbnN0cnVjdG9yIERvY3VtZW50OwogICAgICAgICBhdHRyaWJ1dGUgTm9kZUNvbnN0cnVjdG9y
IE5vZGU7CiAgICAgICAgIGF0dHJpYnV0ZSBOb2RlTGlzdENvbnN0cnVjdG9yIE5vZGVMaXN0Owor
ICAgICAgICBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gUHJvcGVydHlOb2RlTGlz
dENvbnN0cnVjdG9yIFByb3BlcnR5Tm9kZUxpc3Q7CiAgICAgICAgIGF0dHJpYnV0ZSBOYW1lZE5v
ZGVNYXBDb25zdHJ1Y3RvciBOYW1lZE5vZGVNYXA7CiAgICAgICAgIGF0dHJpYnV0ZSBDaGFyYWN0
ZXJEYXRhQ29uc3RydWN0b3IgQ2hhcmFjdGVyRGF0YTsKICAgICAgICAgYXR0cmlidXRlIEF0dHJD
b25zdHJ1Y3RvciBBdHRyOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTIxMTUwKQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDYtMjUg
IEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogSW1w
bGVtZW50IFByb3BlcnR5Tm9kZUxpc3QgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODAyNjkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGVjOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9jb21tb24tZG9tLWludGVyZmFjZXMu
aHRtbCNwcm9wZXJ0eW5vZGVsaXN0CisgICAgICAgIEFkZGVkIHRlc3QgY2FzZXMgZm9yIFByb3Bl
cnR5Tm9kZUxpc3QgaW50ZXJmYWNlIGFuZCBQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1l
dGhvZC4KKworICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1w
cm9wZXJ0eW5vZGVsaXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
TWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVz
LWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlu
b2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9m
LWVhY2gtZWxlbWVudC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEv
cHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVs
aXN0LXRlc3QtYWRkLXJlbW92ZS1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVs
ZW1lbnQuaHRtbDogQWRkZWQuCisKIDIwMTItMDYtMjUgIFBoaWxpcCBSb2dlcnMgIDxwZHJAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBGaXggcmV3aW5kaW5nIG9mIFNWRyBhbmltYXRpb25zCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJldHVybnMtcHJvcGVy
dHlub2RlbGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVk
aXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEyIEBACitQcm9wZXJ0aWVzQ29sbGVjdGlvbi5uYW1lZEl0ZW0obmFtZSkgbXVz
dCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdC4KKworUEFTUyBlbGVtZW50LnByb3BlcnRpZXMubmFt
ZWRJdGVtKCdmb28nKSBpbnN0YW5jZW9mIFByb3BlcnR5Tm9kZUxpc3QgaXMgdHJ1ZQorUEFTUyBl
bGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3RhbmNlb2YgUHJvcGVydHlOb2RlTGlzdCBpcyB0
cnVlCisKK1Byb3BlcnR5Tm9kZUxpc3QgaW50ZXJmYWNlIGluaGVyaXRlZCBmcm9tIHRoZSBOb2Rl
TGlzdCBpbnRlcmZhY2UuCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2Zvbycp
IGluc3RhbmNlb2YgTm9kZUxpc3QgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbJ2Zv
byddIGluc3RhbmNlb2YgTm9kZUxpc3QgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXBy
b3BlcnR5bm9kZWxpc3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0Lmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+UHJvcGVydGllc0NvbGxlY3Rpb24ubmFtZWRJdGVtKG5hbWUp
IG11c3QgcmV0dXJuIFByb3BlcnR5Tm9kZUxpc3QuPC9wPgorPGRpdiBpdGVtc2NvcGUgaWQ9Im1p
Y3JvZGF0YWl0ZW0iPgorPGRpdiBpdGVtcHJvcD0iZm9vIj48L2Rpdj4KKzwvZGl2PgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgibWljcm9kYXRhaXRlbSIpOworCitzaG91bGRCZVRydWUoImVsZW1lbnQucHJv
cGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpIGluc3RhbmNlb2YgUHJvcGVydHlOb2RlTGlzdCIpOwor
c2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3RhbmNlb2YgUHJvcGVy
dHlOb2RlTGlzdCIpOworCitkZWJ1ZygiPGJyPlByb3BlcnR5Tm9kZUxpc3QgaW50ZXJmYWNlIGlu
aGVyaXRlZCBmcm9tIHRoZSBOb2RlTGlzdCBpbnRlcmZhY2UuIikKK3Nob3VsZEJlVHJ1ZSgiZWxl
bWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykgaW5zdGFuY2VvZiBOb2RlTGlzdCIpOwor
c2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3RhbmNlb2YgTm9kZUxp
c3QiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFs
dWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9k
ZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1l
YWNoLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1v
YnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACitUaGlzIHRlc3QgZW5zdXJlIHRoYXQgUHJvcGVydHlO
b2RlTGlzdC5nZXRWYWx1ZXMoKSBhcnJheSByZXR1cm5zIGFuIGFycmF5IHdob3NlIHZhbHVzZSBh
cmUgb2J0YWluZWQgZnJvbSB0aGUgaXRlbVZhbHVlIERPTSBwcm9wZXJ0eSBvZiBlYWNoIG9mIHRo
ZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSB0aGUgb2JqZWN0LCBpbiB0cmVlIG9yZGVyLgorCitw
cm9wZXJ0eSBpbmRleCAwLCB0YWcgRElWCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5
Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxLCB0YWcgU1BBTgorUEFTUyB2
YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkg
aW5kZXggMiwgdGFnIE1FVEEKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlz
dFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDMsIHRhZyBBVURJTworUEFTUyB2YWx1ZXNB
cnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXgg
NCwgdGFnIEVNQkVECitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0u
aXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCA1LCB0YWcgSUZSQU1FCitQQVNTIHZhbHVlc0FycmF5
W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCA2LCB0
YWcgSU1HCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZh
bHVlCitwcm9wZXJ0eSBpbmRleCA3LCB0YWcgU09VUkNFCitQQVNTIHZhbHVlc0FycmF5W2ldIGlz
IHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCA4LCB0YWcgVklE
RU8KK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUK
K3Byb3BlcnR5IGluZGV4IDksIHRhZyBUUkFDSworUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9w
ZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMTAsIHRhZyBBCitQQVNT
IHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0
eSBpbmRleCAxMSwgdGFnIEFSRUEKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2Rl
TGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDEyLCB0YWcgTElOSworUEFTUyB2YWx1
ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5k
ZXggMTMsIHRhZyBQCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0u
aXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxNCwgdGFnIFNQQU4KK1BBU1MgdmFsdWVzQXJyYXlb
aV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK1BBU1MgdmFsdWVzQXJyYXkubGVu
Z3RoIGlzIDE1CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKyAgICAgIAorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVy
dHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVl
LW9mLWVhY2gtZWxlbWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy1hcnJheS12YWx1ZXMtb2J0YWlu
ZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMt
YXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBlbnN1cmUgdGhhdCBQcm9wZXJ0
eU5vZGVMaXN0LmdldFZhbHVlcygpIGFycmF5IHJldHVybnMgYW4gYXJyYXkgd2hvc2UgdmFsdXNl
IGFyZSBvYnRhaW5lZCBmcm9tIHRoZSBpdGVtVmFsdWUgRE9NIHByb3BlcnR5IG9mIGVhY2ggb2Yg
dGhlIGVsZW1lbnRzIHJlcHJlc2VudGVkIGJ5IHRoZSBvYmplY3QsIGluIHRyZWUgb3JkZXIuPC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8ZGl2PgorPGRpdiBpZD0iaWQxIj4KKzxkaXYg
aXRlbXByb3A9ImZvbyI+Cis8c3BhbiBpdGVtcHJvcD0iZm9vIiBpdGVtc2NvcGU+PC9zcGFuPgor
PC9kaXY+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtcmVmPSJpZDEiIGlkPSJpdGVtIj4KKzxtZXRhIGl0
ZW1wcm9wPSJmb28iIGNvbnRlbnQ9InRlc3QiIC8+Cis8YXVkaW8gaXRlbXByb3A9ImZvbyIgc3Jj
PSJhdWRpby5tcDMiPjwvYXVkaW8+Cis8ZW1iZWQgaXRlbXByb3A9ImZvbyIgc3JjPSJ0ZXN0LnN3
ZiIgLz4KKzxpZnJhbWUgaXRlbXByb3A9ImZvbyIgc3JjPSJ0ZXN0Lmh0bWwiPjwvaWZyYW1lPgor
PGltZyBpdGVtcHJvcD0iZm9vIiBzcmM9InRlc3QuanBnIiAvPgorPGF1ZGlvIGNvbnRyb2xzPSJj
b250cm9scyI+Cis8c291cmNlIGl0ZW1wcm9wPSJmb28iIHNyYz0ic29uZy5tcDMiIHR5cGU9ImF1
ZGlvL21wMyIgLz4KKzwvYXVkaW8+Cis8dmlkZW8gaXRlbXByb3A9ImZvbyIgc3JjPSJ2aWRlby5t
cDQiPjwvdmlkZW8+Cis8dmlkZW8gc3JjPSJ2aWRlby5tcDQiPgorPHRyYWNrIGl0ZW1wcm9wPSJm
b28iIHNyYz0ic3VidGl0bGVzX2VuLnZ0dCI+Cis8L3ZpZGVvPgorPGEgaXRlbXByb3A9ImZvbyIg
c3JjPSJsaW5rLmh0bWwiPjwvYT4KKzxtYXA+Cis8YXJlYSBpdGVtcHJvcD0iZm9vIiBocmVmPSJ0
ZXN0Lmh0bWwiIC8+Cis8L21hcD4KKzxsaW5rIGl0ZW1wcm9wPSJmb28iIGhyZWY9InRlc3QuY3Nz
IiAvPgorPHAgaXRlbXByb3A9ImZvbyI+Cis8c3BhbiBpdGVtcHJvcD0iZm9vIiBpdGVtc2NvcGU+
Cis8YSBpdGVtcHJvcD0iZm9vIiBzcmM9InRlc3RfYW5jaG9yLmh0bWwiPjwvYT4KKzwvc3Bhbj4K
KzwvcD4KKzwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgordmFyIGl0ZW0gPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiaXRlbSIpOwordmFyIHByb3BlcnR5Tm9kZUxpc3QgPSBpdGVtLnByb3BlcnRp
ZXMubmFtZWRJdGVtKCdmb28nKTsKK3ZhciB2YWx1ZXNBcnJheSA9IHByb3BlcnR5Tm9kZUxpc3Qu
Z2V0VmFsdWVzKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnR5Tm9kZUxpc3QubGVuZ3Ro
OyBpKyspIHsKKyAgICBkZWJ1ZygncHJvcGVydHkgaW5kZXggJyArIGkgKyAnLCB0YWcgJyArIHBy
b3BlcnR5Tm9kZUxpc3RbaV0udGFnTmFtZSk7CisgICAgc2hvdWxkQmUoInZhbHVlc0FycmF5W2ld
IiwgInByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlIik7Cit9CitzaG91bGRCZSgidmFsdWVz
QXJyYXkubGVuZ3RoIiwgJzE1Jyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZh
bHVlcy10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlu
b2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsOSBAQAorUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QgdGVzdC4KKworUHJv
cGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QgbXVzdCByZXR1cm4gYW4gYXJyYXkuCitQ
QVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpLmdldFZhbHVlcygpIGluc3Rh
bmNlb2YgQXJyYXkgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddLmdldFZh
bHVlcygpIGluc3RhbmNlb2YgQXJyYXkgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01p
Y3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFs
dWVzLXRlc3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+UHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QgdGVzdC48L3A+
Cis8ZGl2IGl0ZW1zY29wZSBpZD0iaXRlbSI+Cis8ZGl2IGl0ZW1wcm9wPSJmb28iPjwvZGl2Pgor
PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpdGVtJyk7CitkZWJ1ZygiUHJvcGVydHlOb2RlTGlz
dC5nZXRWYWx1ZXMoKSBtZXRob2QgbXVzdCByZXR1cm4gYW4gYXJyYXkuIik7CitzaG91bGRCZVRy
dWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpLmdldFZhbHVlcygpIGluc3Rh
bmNlb2YgQXJyYXkiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzWydmb28nXS5n
ZXRWYWx1ZXMoKSBpbnN0YW5jZW9mIEFycmF5Iik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9k
ZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LXRlc3QtYWRk
LXJlbW92ZS1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LXRlc3QtYWRkLXJlbW92ZS1lbGVt
ZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBAQAorTWljcm9kYXRh
IHByb3BlcnRpZXMgY29sbGVjdGlvbiBtdXN0IHVwZGF0ZSBvbiBhZGRpbmcgb3IgcmVtb3Zpbmcg
cHJvcGVydHkuCisKK1BBU1MgcHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gJzEnIGlzIHRydWUK
K1BBU1MgcHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVuWzBdIGlzIHRydWUKK0Fk
ZCBhIHByb3BlcnR5IHRvIHRoZSBpdGVtLgorQ3JlYXRlZCBlbGVtZW50IG9mIHR5cGU6IGRpdgor
U2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1BBU1MgcHJvcGVydHlOb2RlTGlz
dC5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gaXRlbS5j
aGlsZHJlblswXSBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGls
ZHJlblsxXSBpcyB0cnVlCitSZW1vdmUgaXRlbXByb3AgYXR0cmlidXRlIG9mIHRoZSBmaXJzdCBj
aGlsZC4KK1BBU1MgcHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMSBpcyB0cnVlCitQQVNTIHBy
b3BlcnR5Tm9kZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJlblsxXSBpcyB0cnVlCitBZGQgaXRlbXBy
b3AgYXR0cmlidXRlIHRvIHRoZSBmaXJzdCBjaGlsZC4KK1BBU1MgcHJvcGVydHlOb2RlTGlzdC5s
ZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gaXRlbS5jaGls
ZHJlblswXSBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJl
blsxXSBpcyB0cnVlCitBZGQgaXRlbXJlZiBhdHRyaWJ1dGUuCitQQVNTIHByb3BlcnR5Tm9kZUxp
c3QubGVuZ3RoID09IDMgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzBdID09IHRlc3RF
bGVtZW50IGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVu
WzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFsyXSA9PSBpdGVtLmNoaWxkcmVuWzFd
IGlzIHRydWUKK1JlbW92ZSBpdGVtcmVmIGF0dHJpYnV0ZS4KK1BBU1MgcHJvcGVydHlOb2RlTGlz
dC5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gaXRlbS5j
aGlsZHJlblswXSBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGls
ZHJlblsxXSBpcyB0cnVlCitBZGQgaXRlbXJlZiBhdHRyaWJ1dGUuCitQQVNTIHByb3BlcnR5Tm9k
ZUxpc3QubGVuZ3RoID09IDMgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzBdID09IHRl
c3RFbGVtZW50IGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxk
cmVuWzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFsyXSA9PSBpdGVtLmNoaWxkcmVu
WzFdIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2Rl
bGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxlbWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LXRlc3QtYWRkLXJlbW92ZS1l
bGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvcHJvcGVydHlub2RlbGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxlbWVudC5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPk1pY3JvZGF0YSBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24gbXVzdCB1
cGRhdGUgb24gYWRkaW5nIG9yIHJlbW92aW5nIHByb3BlcnR5LjwvcD4KKzxkaXYgaXRlbXByb3A9
ImZvbyIgaWQ9InRlc3QiPgorPC9kaXY+Cis8ZGl2IGl0ZW1zY29wZSBpZD0ibWljcm9kYXRhLWl0
ZW0iPgorPHAgaXRlbXByb3A9ImZvbyI+PC9wPgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgaXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtaWNy
b2RhdGEtaXRlbScpOwordmFyIHByb3BlcnR5Tm9kZUxpc3QgPSBpdGVtLnByb3BlcnRpZXMubmFt
ZWRJdGVtKCdmb28nKTsKK3ZhciB0ZXN0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0Jyk7CisKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gJzEn
Iik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJlblsw
XSIpOworCitkZWJ1ZygnQWRkIGEgcHJvcGVydHkgdG8gdGhlIGl0ZW0uJyk7CitpdGVtLmFwcGVu
ZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtcHJvcDogJ2Zvbyd9KSk7CitzaG91bGRC
ZVRydWUoInByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDIiKTsKK3Nob3VsZEJlVHJ1ZSgicHJv
cGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVuWzBdIik7CitzaG91bGRCZVRydWUoInBy
b3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblsxXSIpOworCitkZWJ1ZygnUmVtb3Zl
IGl0ZW1wcm9wIGF0dHJpYnV0ZSBvZiB0aGUgZmlyc3QgY2hpbGQuJyk7CitpdGVtLmNoaWxkcmVu
WzBdLnJlbW92ZUF0dHJpYnV0ZSgnaXRlbXByb3AnKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlO
b2RlTGlzdC5sZW5ndGggPT0gMSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzBd
ID09IGl0ZW0uY2hpbGRyZW5bMV0iKTsKKworZGVidWcoJ0FkZCBpdGVtcHJvcCBhdHRyaWJ1dGUg
dG8gdGhlIGZpcnN0IGNoaWxkLicpOworaXRlbS5jaGlsZHJlblswXS5zZXRBdHRyaWJ1dGUoJ2l0
ZW1wcm9wJywgJ2ZvbycpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9
PSAyIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJl
blswXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRy
ZW5bMV0iKTsKKworZGVidWcoJ0FkZCBpdGVtcmVmIGF0dHJpYnV0ZS4nKTsKK2l0ZW0uc2V0QXR0
cmlidXRlKCdpdGVtcmVmJywgJ3Rlc3QnKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlz
dC5sZW5ndGggPT0gMyIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzBdID09IHRl
c3RFbGVtZW50Iik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5j
aGlsZHJlblswXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzJdID09IGl0ZW0u
Y2hpbGRyZW5bMV0iKTsKKworZGVidWcoJ1JlbW92ZSBpdGVtcmVmIGF0dHJpYnV0ZS4nKTsKK2l0
ZW0ucmVtb3ZlQXR0cmlidXRlKCdpdGVtcmVmJyk7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9k
ZUxpc3QubGVuZ3RoID09IDIiKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFswXSA9
PSBpdGVtLmNoaWxkcmVuWzBdIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMV0g
PT0gaXRlbS5jaGlsZHJlblsxXSIpOworCitkZWJ1ZygnQWRkIGl0ZW1yZWYgYXR0cmlidXRlLicp
OworaXRlbS5zZXRBdHRyaWJ1dGUoJ2l0ZW1yZWYnLCAndGVzdCcpOworc2hvdWxkQmVUcnVlKCJw
cm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAzIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9k
ZUxpc3RbMF0gPT0gdGVzdEVsZW1lbnQiKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlz
dFsxXSA9PSBpdGVtLmNoaWxkcmVuWzBdIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxp
c3RbMl0gPT0gaXRlbS5jaGlsZHJlblsxXSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CisK
</data>
<flag name="review"
          id="157255"
          type_id="1"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150414</attachid>
            <date>2012-07-02 06:32:07 -0700</date>
            <delta_ts>2012-07-12 06:30:25 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-80269-20120702.diff</filename>
            <type>text/plain</type>
            <size>65567</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMTY3NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgyIEBACisyMDEyLTA3LTAyICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEltcGxlbWVudCBQ
cm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU3BlYzogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjcHJv
cGVydHlub2RlbGlzdAorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRp
dGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Rv
bS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFp
bmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBm
YXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC10ZXN0LWFk
ZC1yZW1vdmUtZWxlbWVudC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBiaW5kaW5n
cy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWljcm9E
YXRhSXRlbVZhbHVlQ3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b0pTKTog
QWRkZWQgdG9KUygpIGN1c3RvbSBtZXRob2QuIFJldHVybnMgTm9kZSBpZiBpdGVtVmFsdWUgaXMg
bm9kZSBlbHNlIHJldHVybnMgU3RyaW5nLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
dG9WOCk6IEFkZGVkIHRvVjggY3VzdG9tIGNvZGUuCisgICAgICAgICogZG9tL0R5bmFtaWNOb2Rl
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3Q6OnJvb3ROb2RlKTog
UmV0dXJuIGRvY3VtZW50IGlmIG93bmVyIG5vZGUgaGFzIGl0ZW1yZWYgYXR0cmlidXRlIHNwZWNp
ZmllZC4KKyAgICAgICAgKFdlYkNvcmU6OkR5bmFtaWNOb2RlTGlzdDo6aXRlbVdpdGhOYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkR5bmFtaWNOb2RlTGlzdDo6b3duZXJOb2RlSGFzSXRlbVJlZkF0
dHJpYnV0ZSk6IFJldHVybnMgdHJ1ZSBpZiBvd25lciBub2RlIGhhcyBpdGVtcmVmIGF0dHJpYnV0
ZQorICAgICAgICBzcGVjaWZpZWQgd2l0aCByb290IHR5cGUgUm9vdGVkQXREb2N1bWVudElmT3du
ZXJIYXNJdGVtcmVmQXR0ci4KKyAgICAgICAgKiBkb20vRHluYW1pY05vZGVMaXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OkR5bmFtaWNOb2RlTGlzdENh
Y2hlQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6Omlz
Um9vdGVkQXREb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3RDYWNo
ZUJhc2U6OmNhY2hlZFJvb3RUeXBlKTogUmV0dXJucyBjYWNoZWQgcm9vdCB0eXBlLgorICAgICAg
ICAoV2ViQ29yZTo6RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjppc0l0ZW1SZWZFbGVtZW50c0Nh
Y2hlVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpz
ZXRJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkKToKKyAgICAgICAgKER5bmFtaWNOb2RlTGlzdENh
Y2hlQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OmNs
ZWFyQ2FjaGUpOiBJbnZhbGlkYXRlIGlzSXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZC4KKyAgICAg
ICAgKER5bmFtaWNOb2RlTGlzdCk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZTo6aW52YWxpZGF0ZU5vZGVMaXN0c0NhY2hlQWZ0ZXJBdHRyaWJ1dGVDaGFu
Z2VkKTogSW52YWxpZGF0ZSBOb2RlTGlzdENhY2hlIG9uIGl0ZW1yZWYKKyAgICAgICAgYXR0cmli
dXRlIGNoYW5nZS4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnByb3BlcnR5Tm9kZUxpc3QpOiBS
ZXR1cm5zIG5hbWVkIHByb3BlcnRpZXMgb2YgYSBNaWNyb2RhdGEgaXRlbS4KKyAgICAgICAgKiBk
b20vTm9kZS5oOgorICAgICAgICAoTm9kZSk6CisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9kZUxp
c3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UHJv
cGVydHlOb2RlTGlzdDo6UHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9w
ZXJ0eU5vZGVMaXN0Ojp+UHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9w
ZXJ0eU5vZGVMaXN0OjplbGVtZW50RGVmaW5lc0RpZmZlcmVudEl0ZW0pOgorICAgICAgICAoV2Vi
Q29yZTo6UHJvcGVydHlOb2RlTGlzdDo6ZWxlbWVudElzUHJvcGVydHlPZlJlZkVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6dXBkYXRlSXRlbVJlZkVsZW1lbnRz
KTogVXBkYXRlcyBJdGVtUmVmRWxlbWVudHNDYWNoZSBpZiB0aGUgY2FjaGUgaXMKKyAgICAgICAg
aW52YWxpZCBhbmQgc2V0cyBpdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkLgorICAgICAgICAoV2Vi
Q29yZTo6UHJvcGVydHlOb2RlTGlzdDo6bm9kZU1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6
UHJvcGVydHlOb2RlTGlzdDo6Z2V0VmFsdWVzKTogUmV0dXJucyBQcm9wZXJ0eVZhbHVlQXJyYXkg
d2hvc2UgdmFsdWVzIGFyZSBvYnRhaW5lZCBmcm9tIHRoZQorICAgICAgICBpdGVtVmFsdWUgRE9N
IHByb3BlcnR5IG9mIGVhY2ggb2YgdGhlIGVsZW1lbnRzIHJlcHJlc2VudGVkIGJ5IHRoZSBvYmpl
Y3QsIGluIHRyZWUgb3JkZXIuCisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaDogQWRk
ZWQuCisgICAgICAgIChQcm9wZXJ0eU5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByb3Bl
cnR5Tm9kZUxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxFbGVtZW50Ojpwcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVt
ZW50OjpnZXRJdGVtUmVmRWxlbWVudHMpOiBSZXR1cm5zIHRoZSBJdGVtUmVmRWxlbWVudHMgbGlz
dCBvZiBnaXZlbiBlbGVtZW50LiBBZGRlZCB0aGlzCisgICAgICAgIG1ldGhvZCB0byBzaGFyZSB0
aGUgY29kZSBiZXR3ZWVuIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiBhbmQgUHJvcGVydHlOb2Rl
TGlzdCB0byB1cGRhdGUgaXRlbVJlZkVsZW1lbnRzLgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1l
bnQuaDogQWRkZWQgZGVjbGFyYXRpb24gb2YgZ2V0SXRlbVJlZkVsZW1lbnRzKCkgbWV0aG9kLgor
ICAgICAgICAqIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6dXBkYXRlUmVmRWxlbWVudHMpOiBDYWxs
IGdldEl0ZW1SZWZFbGVtZW50cygpIG1ldGhvZCB0byBnZXQgdGhlIHVwZGF0ZWQKKyAgICAgICAg
aXRlbVJlZkVsZW1lbnRzIGNhY2hlIGlmIHRoZSBjYWNoZSBpcyBpbnZhbGlkLgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpmaW5kUHJvcGVydGllcyk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5hbWVkSXRlbSk6IFJldHVy
biBQcm9wZXJ0eU5vZGVMaXN0IG9iamVjdCBpbnN0ZWFkIG9mIE5vZGVMaXN0LgorICAgICAgICAo
V2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpoYXNOYW1lZEl0ZW0pOgorICAgICAg
ICAqIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmg6CisgICAgICAgIChIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24pOgorICAgICAgICAqIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
LmlkbDoKKyAgICAgICAgKiBodG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGw6IEFkZGVkLgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMi0wNy0wMiAgVGFpanUgVHN1aWtpICA8
dHppa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHJlZnJlc2gg
YnV0dG9uIHRvIEZpbGVTeXN0ZW1WaWV3IHN0YXR1cyBiYXIKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CShyZXZpc2lvbiAxMjE2NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMjM1LDYgKzIzNSw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwog
ICAgIGRvbS9Qb3BTdGF0ZUV2ZW50LmlkbAogICAgIGRvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24u
aWRsCiAgICAgZG9tL1Byb2dyZXNzRXZlbnQuaWRsCisgICAgZG9tL1Byb3BlcnR5Tm9kZUxpc3Qu
aWRsCiAgICAgZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAogICAgIGRvbS9SYW5nZS5pZGwKICAgICBk
b20vU2hhZG93Um9vdC5pZGwKQEAgLTM0MSw2ICszNDIsNyBAQCBTRVQoV2ViQ29yZV9JRExfRklM
RVMKICAgICBodG1sL0ltYWdlRGF0YS5pZGwKICAgICBodG1sL01lZGlhQ29udHJvbGxlci5pZGwK
ICAgICBodG1sL01lZGlhRXJyb3IuaWRsCisgICAgaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRs
CiAgICAgaHRtbC9SYWRpb05vZGVMaXN0LmlkbAogICAgIGh0bWwvVGV4dE1ldHJpY3MuaWRsCiAg
ICAgaHRtbC9UaW1lUmFuZ2VzLmlkbApAQCAtNjMzLDYgKzYzNSw3IEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKICAgICBkb20vUG9zaXRpb25JdGVyYXRvci5jcHAKICAgICBkb20vUHJvY2Vzc2luZ0lu
c3RydWN0aW9uLmNwcAogICAgIGRvbS9Qcm9ncmVzc0V2ZW50LmNwcAorICAgIGRvbS9Qcm9wZXJ0
eU5vZGVMaXN0LmNwcAogICAgIGRvbS9RdWFsaWZpZWROYW1lLmNwcAogICAgIGRvbS9SYW5nZS5j
cHAKICAgICBkb20vUmFuZ2VFeGNlcHRpb24uY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwCShyZXZpc2lvbiAxMjE2NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2NSw2ICsyNjUsNyBAQAogI2luY2x1ZGUgIkpTUG9z
aXRpb25FcnJvckNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU1Byb2Nlc3NpbmdJbnN0cnVjdGlv
bi5jcHAiCiAjaW5jbHVkZSAiSlNQcm9ncmVzc0V2ZW50LmNwcCIKKyNpbmNsdWRlICJKU1Byb3Bl
cnR5Tm9kZUxpc3QuY3BwIgogI2luY2x1ZGUgIkpTUmFkaW9Ob2RlTGlzdC5jcHAiCiAjaW5jbHVk
ZSAiSlNSYW5nZS5jcHAiCiAjaW5jbHVkZSAiSlNSYW5nZUV4Y2VwdGlvbi5jcHAiCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDEyMTY3MikKKysrIFNvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTIzNiw2ICsyMzYs
OCBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vUG9wU3RhdGVFdmVudC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwgXAogICAg
ICQoV2ViQ29yZSkvZG9tL1Byb2dyZXNzRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9Q
cm9ncmVzc0V2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vUHJvcGVydHlOb2RlTGlzdC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1JhbmdlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20v
UmFuZ2VFeGNlcHRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9SZXF1ZXN0QW5pbWF0aW9u
RnJhbWVDYWxsYmFjay5pZGwgXApAQCAtMzQyLDYgKzM0NCw3IEBAIEJJTkRJTkdfSURMUyA9IFwK
ICAgICAkKFdlYkNvcmUpL2h0bWwvSW1hZ2VEYXRhLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1s
L01lZGlhQ29udHJvbGxlci5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9NZWRpYUVycm9yLmlk
bCBcCisgICAgJChXZWJDb3JlKS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwgXAogICAgICQo
V2ViQ29yZSkvaHRtbC9SYWRpb05vZGVMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL1Rl
eHRNZXRyaWNzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL1RpbWVSYW5nZXMuaWRsIFwKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHJldmlzaW9uIDEyMTY3MikKKysrIFNvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjQ5LDYgKzI0
OSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0QvZG9tL1BvcFN0YXRlRXZlbnQuaWRs
IFwKICAgICAkJFBXRC9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlkbCBcCiAgICAgJCRQV0Qv
ZG9tL1Byb2dyZXNzRXZlbnQuaWRsIFwKKyAgICAkJFBXRC9kb20vUHJvcGVydHlOb2RlTGlzdC5p
ZGwgXAogICAgICQkUFdEL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgXAogICAgICQkUFdEL2RvbS9S
YW5nZS5pZGwgXAogICAgICQkUFdEL2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5p
ZGwgXApAQCAtMzkyLDYgKzM5Myw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0QvaHRt
bC9JbWFnZURhdGEuaWRsIFwKICAgICAkJFBXRC9odG1sL01lZGlhQ29udHJvbGxlci5pZGwgXAog
ICAgICQkUFdEL2h0bWwvTWVkaWFFcnJvci5pZGwgXAorICAgICQkUFdEL2h0bWwvTWljcm9EYXRh
SXRlbVZhbHVlLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9SYWRpb05vZGVMaXN0LmlkbCBcCiAgICAg
JCRQV0QvaHRtbC9UZXh0TWV0cmljcy5pZGwgXAogICAgICQkUFdEL2h0bWwvVGltZVJhbmdlcy5p
ZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMjE2NzIp
CisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBA
IC00MDMsNiArNDAzLDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTTWVzc2FnZUV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNNZXNzYWdlUG9ydC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZXNzYWdlUG9y
dC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWljcm9EYXRhSXRlbVZhbHVlLmNwcCBc
CisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01pY3JvRGF0YUl0ZW1WYWx1ZS5oIFwKIAlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNb3VzZUV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlv
bkNhbGxiYWNrLmNwcCBcCkBAIC00NzMsNiArNDc1LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2Vz
ICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9ncmVzc0V2ZW50LmNwcCBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1Byb2dyZXNzRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1Byb3BlcnR5Tm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
UHJvcGVydHlOb2RlTGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmFkaW9Ob2Rl
TGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSYWRpb05vZGVMaXN0LmggXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSYW5nZS5jcHAgXApAQCAtNzg3LDYgKzc5MSw3IEBA
IGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvZG9tL1BvcFN0YXRlRXZlbnQuaWRs
IFwKIAkkKFdlYkNvcmUpL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsIFwKIAkkKFdlYkNv
cmUpL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCisJJChXZWJDb3JlKS9kb20vUHJvcGVydHlOb2Rl
TGlzdC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1JhbmdlLmlkbCBcCiAJJChXZWJDb3JlKS9kb20v
UmFuZ2VFeGNlcHRpb24uaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9TaGFkb3dSb290LmlkbCBcCkBA
IC04OTMsNiArODk4LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9odG1s
L01lZGlhRXJyb3IuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvTWVkaWFLZXlFcnJvci5pZGwgXAog
CSQoV2ViQ29yZSkvaHRtbC9NZWRpYUtleUV2ZW50LmlkbCBcCisJJChXZWJDb3JlKS9odG1sL01p
Y3JvRGF0YUl0ZW1WYWx1ZS5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9SYWRpb05vZGVMaXN0Lmlk
bCBcCiAJJChXZWJDb3JlKS9odG1sL1RleHRNZXRyaWNzLmlkbCBcCiAJJChXZWJDb3JlKS9odG1s
L1RpbWVSYW5nZXMuaWRsIFwKQEAgLTE0NjIsNiArMTQ2OCw3IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBcCkBAIC0x
OTg1LDYgKzE5OTIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Byb2dyZXNz
RXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUHJvZ3Jlc3NFdmVudC5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Qcm9wZXJ0eU5vZGVMaXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1l
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuaCBcCiAJU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNp
b24gMTIxNjcyKQorKysgU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpA
QCAtNTk2LDYgKzU5Niw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Qb3NpdGlvbkl0ZXJhdG9y
LmNwcCBcCiAgICAgZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgXAogICAgIGRvbS9Qcm9n
cmVzc0V2ZW50LmNwcCBcCisgICAgZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwIFwKICAgICBkb20v
UXVhbGlmaWVkTmFtZS5jcHAgXAogICAgIGRvbS9SYW5nZS5jcHAgXAogICAgIGRvbS9SYW5nZUV4
Y2VwdGlvbi5jcHAgXApAQCAtMTc3Nyw2ICsxNzc4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9t
L1Bvc2l0aW9uSXRlcmF0b3IuaCBcCiAgICAgZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIFwK
ICAgICBkb20vUHJvZ3Jlc3NFdmVudC5oIFwKKyAgICBkb20vUHJvcGVydHlOb2RlTGlzdC5oIFwK
ICAgICBkb20vUXVhbGlmaWVkTmFtZS5oIFwKICAgICBkb20vUmFuZ2UuaCBcCiAgICAgZG9tL1Jl
Z2lzdGVyZWRFdmVudExpc3RlbmVyLmggXApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24g
MTIxNjcyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBA
IC05ODAsNiArOTgwLDcgQEAKICAgICAgICAgICAgICdkb20vUG9wU3RhdGVFdmVudC5pZGwnLAog
ICAgICAgICAgICAgJ2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsJywKICAgICAgICAgICAg
ICdkb20vUHJvZ3Jlc3NFdmVudC5pZGwnLAorICAgICAgICAgICAgJ2RvbS9Qcm9wZXJ0eU5vZGVM
aXN0LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1JhbmdlLmlkbCcsCiAgICAgICAgICAgICAnZG9t
L1JhbmdlRXhjZXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnZG9tL1JlcXVlc3RBbmltYXRpb25G
cmFtZUNhbGxiYWNrLmlkbCcsCkBAIC0xMDg3LDYgKzEwODgsNyBAQAogICAgICAgICAgICAgJ2h0
bWwvSW1hZ2VEYXRhLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9NZWRpYUNvbnRyb2xsZXIuaWRs
JywKICAgICAgICAgICAgICdodG1sL01lZGlhRXJyb3IuaWRsJywKKyAgICAgICAgICAgICdodG1s
L01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvTWVkaWFLZXlFcnJv
ci5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvTWVkaWFLZXlFdmVudC5pZGwnLAogICAgICAgICAg
ICAgJ2h0bWwvUmFkaW9Ob2RlTGlzdC5pZGwnLApAQCAtMjAxNiw2ICsyMDE4LDcgQEAKICAgICAg
ICAgICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdz
L2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9KU05vZGVDdXN0b20uY3BwJywKQEAgLTIzMjYsNiArMjMyOSw3IEBACiAgICAgICAgICAgICAn
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAnLAog
ICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcCcs
CisgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3Vz
dG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxs
YmFja0N1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVk
Tm9kZU1hcEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5h
bWVkTm9kZXNDb2xsZWN0aW9uLmNwcCcsCkBAIC01MjIzLDYgKzUyMjcsOCBAQAogICAgICAgICAg
ICAgJ2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCcsCiAgICAgICAgICAgICAnZG9tL1Byb2dy
ZXNzRXZlbnQuY3BwJywKICAgICAgICAgICAgICdkb20vUHJvZ3Jlc3NFdmVudC5oJywKKyAgICAg
ICAgICAgICdkb20vUHJvcGVydHlOb2RlTGlzdC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Qcm9w
ZXJ0eU5vZGVMaXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9RdWFsaWZpZWROYW1lLmNwcCcsCiAg
ICAgICAgICAgICAnZG9tL1JhbmdlLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1JhbmdlRXhjZXB0
aW9uLmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagkocmV2aXNpb24gMTIxNjcyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTExMzEwLDYgKzExMzEwLDYyIEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNaWNy
b0RhdGFJdGVtVmFsdWUuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWljcm9EYXRhSXRlbVZhbHVlLmgiCisJCQkJPgorCQkJ
PC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZXRhZGF0YS5jcHAiCiAJ
CQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtMTI5MzQsNiArMTI5OTAsNjIgQEAKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1Byb3BlcnR5
Tm9kZUxpc3QuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
RGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUp
XERlcml2ZWRTb3VyY2VzXEpTUHJvcGVydHlOb2RlTGlzdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTUmFkaW9Ob2RlTGlzdC5jcHAiCiAJCQkJ
PgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNTI2NDMsNiArNTI3NTUsNjIgQEAKIAkJCQk+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFByb3BlcnR5
Tm9kZUxpc3QuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
RGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJ
CTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4K
KwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0i
UmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxkb21cUHJvcGVydHlOb2RlTGlzdC5oIgorCQkJCT4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cUXVhbGlmaWVkTmFtZS5jcHAi
CiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtNjgxODIsNiArNjgzNTAsNjIgQEAKIAkJCQkJPgogCQkJ
CTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCIKKwkJCQkJPgorCQkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9f
Q0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJ
CQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5h
bWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJ
Lz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJCQk8
RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTWljcm9EYXRhSXRlbVZh
bHVlQ3VzdG9tLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIgogCQkJ
CQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAxMjE2NzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkp
CkBAIC00MjgsMTAgKzQyOCwxMyBAQCBlbmRpZgogCiBpZiBFTkFCTEVfTUlDUk9EQVRBCiB3ZWJr
aXRndGtfYnVpbHRfaF9hcGkgKz0gXAotCSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy93
ZWJraXQvV2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgKKwkkKHRvcF9idWlsZGRp
cikvRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5oIFwKKwkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVBy
b3BlcnR5Tm9kZUxpc3QuaAogd2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcyArPSBcCiAJRGVy
aXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAg
XAotCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rp
b25Qcml2YXRlLmgKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRNTFByb3BlcnRp
ZXNDb2xsZWN0aW9uUHJpdmF0ZS5oIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9N
UHJvcGVydHlOb2RlTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Q
cm9wZXJ0eU5vZGVMaXN0UHJpdmF0ZS5oCiBlbmRpZgogCiBpZiBFTkFCTEVfV0VCX1RJTUlORwpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0
b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWljcm9E
YXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0
eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0
aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBN
b3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMg
bWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShN
SUNST0RBVEEpCisjaW5jbHVkZSAiSlNNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKworI2luY2x1ZGUg
IkpTTm9kZS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgorCit1c2luZyBuYW1lc3Bh
Y2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE1pY3JvRGF0YUl0ZW1WYWx1
ZSogaXRlbVZhbHVlKQoreworICAgIGlmICghaXRlbVZhbHVlKQorICAgICAgICByZXR1cm4ganNO
dWxsKCk7CisgICAgaWYgKGl0ZW1WYWx1ZS0+aXNOb2RlKCkpCisgICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgaXRlbVZhbHVlLT5nZXROb2RlKCkpOworICAgIHJldHVybiBq
c1N0cmluZyhleGVjLCBpdGVtVmFsdWUtPmdldFN0cmluZygpKTsKK30KKworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1p
Y3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxp
dHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorCisj
aW5jbHVkZSAiVjhNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKworI2luY2x1ZGUgIlY4QmluZGluZy5o
IgorI2luY2x1ZGUgIlY4Tm9kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Y4OjpIYW5k
bGU8djg6OlZhbHVlPiB0b1Y4KE1pY3JvRGF0YUl0ZW1WYWx1ZSogaXRlbVZhbHVlLCB2ODo6SXNv
bGF0ZSogaXNvbGF0ZSkKK3sKKyAgICBpZiAoIWl0ZW1WYWx1ZSkKKyAgICAgICAgcmV0dXJuIHY4
OjpOdWxsKCk7CisgICAgaWYgKGl0ZW1WYWx1ZS0+aXNOb2RlKCkpCisgICAgICAgIHJldHVybiB0
b1Y4KGl0ZW1WYWx1ZS0+Z2V0Tm9kZSgpKTsKKyAgICByZXR1cm4gdjhTdHJpbmcoaXRlbVZhbHVl
LT5nZXRTdHJpbmcoKSk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAkocmV2aXNpb24gMTIxNjcy
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDYgKzMyLDEzIEBAIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Q6On5EeW5hbWljU3Vi
dHJlZU4KIHsKIH0KIAorTm9kZSogRHluYW1pY05vZGVMaXN0Ojpyb290Tm9kZSgpIGNvbnN0Cit7
CisgICAgaWYgKChpc1Jvb3RlZEF0RG9jdW1lbnQoKSB8fCBvd25lck5vZGVIYXNJdGVtUmVmQXR0
cmlidXRlKCkpICYmIG1fb3duZXJOb2RlLT5pbkRvY3VtZW50KCkpCisgICAgICAgIHJldHVybiBt
X293bmVyTm9kZS0+ZG9jdW1lbnQoKTsKKyAgICByZXR1cm4gbV9vd25lck5vZGUuZ2V0KCk7Cit9
CisKIHVuc2lnbmVkIER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Q6Omxlbmd0aCgpIGNvbnN0CiB7CiAg
ICAgaWYgKGlzTGVuZ3RoQ2FjaGVWYWxpZCgpKQpAQCAtMTI0LDQgKzEzMSwxNCBAQCBOb2RlKiBE
eW5hbWljTm9kZUxpc3Q6Oml0ZW1XaXRoTmFtZShjb25zCiAgICAgcmV0dXJuIDA7CiB9CiAKK2Jv
b2wgRHluYW1pY05vZGVMaXN0Ojpvd25lck5vZGVIYXNJdGVtUmVmQXR0cmlidXRlKCkgY29uc3QK
K3sKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIGlmIChjYWNoZWRSb290VHlwZSgpID09IFJv
b3RlZEF0RG9jdW1lbnRJZk93bmVySGFzSXRlbXJlZkF0dHIpCisgICAgICAgIHJldHVybiB0b0Vs
ZW1lbnQob3duZXJOb2RlKCkpLT5mYXN0SGFzQXR0cmlidXRlKEhUTUxOYW1lczo6aXRlbXJlZkF0
dHIpOworI2VuZGlmCisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWljTm9kZUxpc3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgJKHJldmlzaW9uIDEy
MTY3MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWljTm9kZUxpc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtMzksNiArMzksNyBAQCBwdWJsaWM6CiAgICAgZW51bSBSb290VHlwZSB7CiAgICAg
ICAgIFJvb3RlZEF0Tm9kZSwKICAgICAgICAgUm9vdGVkQXREb2N1bWVudCwKKyAgICAgICAgUm9v
dGVkQXREb2N1bWVudElmT3duZXJIYXNJdGVtcmVmQXR0ciwKICAgICB9OwogCiAgICAgZW51bSBJ
bnZhbGlkYXRpb25UeXBlIHsKQEAgLTQ3LDE0ICs0OCwxNiBAQCBwdWJsaWM6CiAgICAgfTsKIAog
ICAgIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZShSb290VHlwZSByb290VHlwZSwgSW52YWxpZGF0
aW9uVHlwZSBpbnZhbGlkYXRpb25UeXBlKQotICAgICAgICA6IG1fcm9vdGVkQXREb2N1bWVudChy
b290VHlwZSA9PSBSb290ZWRBdERvY3VtZW50KQorICAgICAgICA6IG1fY2FjaGVkUm9vdFR5cGUo
cm9vdFR5cGUpCisgICAgICAgICwgbV9pc1Jvb3RlZEF0RG9jdW1lbnQocm9vdFR5cGUgPT0gUm9v
dGVkQXREb2N1bWVudCkKICAgICAgICAgLCBtX3Nob3VsZEludmFsaWRhdGVPbkF0dHJpYnV0ZUNo
YW5nZShpbnZhbGlkYXRpb25UeXBlID09IEFsd2F5c0ludmFsaWRhdGUpCiAgICAgewogICAgICAg
ICBjbGVhckNhY2hlKCk7CiAgICAgfQogCiBwdWJsaWM6Ci0gICAgQUxXQVlTX0lOTElORSBib29s
IGlzUm9vdGVkQXREb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdGVkQXREb2N1bWVudDsg
fQorICAgIEFMV0FZU19JTkxJTkUgYm9vbCBpc1Jvb3RlZEF0RG9jdW1lbnQoKSBjb25zdCB7IHJl
dHVybiBtX2lzUm9vdGVkQXREb2N1bWVudDsgfQorICAgIEFMV0FZU19JTkxJTkUgUm9vdFR5cGUg
Y2FjaGVkUm9vdFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlZFJvb3RUeXBlOyB9CiAgICAg
QUxXQVlTX0lOTElORSBib29sIHNob3VsZEludmFsaWRhdGVPbkF0dHJpYnV0ZUNoYW5nZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkSW52YWxpZGF0ZU9uQXR0cmlidXRlQ2hhbmdlOyB9CiAKIHBy
b3RlY3RlZDoKQEAgLTc2LDExICs3OSwxNSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1faXNJdGVt
Q2FjaGVWYWxpZCA9IHRydWU7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSBib29sIGlzSXRl
bVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJdGVtUmVmRWxlbWVu
dHNDYWNoZVZhbGlkOyB9CisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldEl0ZW1SZWZFbGVtZW50
c0NhY2hlVmFsaWQoKSBjb25zdCB7bV9pc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQgPSB0cnVl
OyB9CisKICAgICB2b2lkIGNsZWFyQ2FjaGUoKSBjb25zdAogICAgIHsKICAgICAgICAgbV9jYWNo
ZWRJdGVtID0gMDsKICAgICAgICAgbV9pc0xlbmd0aENhY2hlVmFsaWQgPSBmYWxzZTsKICAgICAg
ICAgbV9pc0l0ZW1DYWNoZVZhbGlkID0gZmFsc2U7CisgICAgICAgIG1faXNJdGVtUmVmRWxlbWVu
dHNDYWNoZVZhbGlkID0gZmFsc2U7CiAgICAgfQogCiBwcml2YXRlOgpAQCAtODksOSArOTYsMTEg
QEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fY2FjaGVkSXRlbU9mZnNldDsKICAg
ICBtdXRhYmxlIHVuc2lnbmVkIG1faXNMZW5ndGhDYWNoZVZhbGlkIDogMTsKICAgICBtdXRhYmxl
IHVuc2lnbmVkIG1faXNJdGVtQ2FjaGVWYWxpZCA6IDE7CisgICAgbXV0YWJsZSB1bnNpZ25lZCBt
X2lzSXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCA6IDE7CiAKICAgICAvLyBGcm9tIER5bmFtaWNO
b2RlTGlzdAotICAgIGNvbnN0IHVuc2lnbmVkIG1fcm9vdGVkQXREb2N1bWVudCA6IDE7CisgICAg
Y29uc3QgUm9vdFR5cGUgbV9jYWNoZWRSb290VHlwZTsKKyAgICBjb25zdCB1bnNpZ25lZCBtX2lz
Um9vdGVkQXREb2N1bWVudCA6IDE7CiAgICAgY29uc3QgdW5zaWduZWQgbV9zaG91bGRJbnZhbGlk
YXRlT25BdHRyaWJ1dGVDaGFuZ2UgOiAxOwogfTsKIApAQCAtMTA1LDYgKzExNCw3IEBAIHB1Ymxp
YzoKICAgICAgICAgUmFkaW9Ob2RlTGlzdFR5cGUsCiAgICAgICAgIExhYmVsc05vZGVMaXN0VHlw
ZSwKICAgICAgICAgTWljcm9EYXRhSXRlbUxpc3RUeXBlLAorICAgICAgICBQcm9wZXJ0eU5vZGVM
aXN0VHlwZSwKICAgICB9OwogICAgIER5bmFtaWNOb2RlTGlzdChQYXNzUmVmUHRyPE5vZGU+IG93
bmVyTm9kZSwgUm9vdFR5cGUgcm9vdFR5cGUsIEludmFsaWRhdGlvblR5cGUgaW52YWxpZGF0aW9u
VHlwZSkKICAgICAgICAgOiBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2Uocm9vdFR5cGUsIGludmFs
aWRhdGlvblR5cGUpCkBAIC0xMjIsMTcgKzEzMiwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnZh
bGlkYXRlQ2FjaGUoKSB7IGNsZWFyQ2FjaGUoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgTm9kZSog
cm9vdE5vZGUoKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKGlzUm9vdGVkQXREb2N1bWVudCgp
ICYmIG1fb3duZXJOb2RlLT5pbkRvY3VtZW50KCkpCi0gICAgICAgICAgICByZXR1cm4gbV9vd25l
ck5vZGUtPmRvY3VtZW50KCk7Ci0gICAgICAgIHJldHVybiBtX293bmVyTm9kZS5nZXQoKTsKLSAg
ICB9CisgICAgTm9kZSogcm9vdE5vZGUoKSBjb25zdDsKICAgICBEb2N1bWVudCogZG9jdW1lbnQo
KSBjb25zdCB7IHJldHVybiBtX293bmVyTm9kZS0+ZG9jdW1lbnQoKTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBub2RlTWF0Y2hlcyhFbGVtZW50KikgY29uc3QgPSAwOwogCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBpc0R5bmFtaWNOb2RlTGlzdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRy
dWU7IH0KKyAgICBib29sIG93bmVyTm9kZUhhc0l0ZW1SZWZBdHRyaWJ1dGUoKSBjb25zdDsKICAg
ICBSZWZQdHI8Tm9kZT4gbV9vd25lck5vZGU7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCShy
ZXZpc2lvbiAxMjE2NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTExOCw2ICsxMTgsNyBAQAogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKICNpbmNs
dWRlICJIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJQcm9wZXJ0eU5vZGVM
aXN0LmgiCiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTk3Niw2ICs5NzcsNyBA
QCB2b2lkIE5vZGU6OmludmFsaWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyCiAgICAgICAgICYmIGF0
dHJOYW1lICE9IGl0ZW1zY29wZUF0dHIKICAgICAgICAgJiYgYXR0ck5hbWUgIT0gaXRlbXByb3BB
dHRyCiAgICAgICAgICYmIGF0dHJOYW1lICE9IGl0ZW10eXBlQXR0cgorICAgICAgICAmJiBhdHRy
TmFtZSAhPSBpdGVtcmVmQXR0cgogI2VuZGlmCiAgICAgICAgICYmIGF0dHJOYW1lICE9IG5hbWVB
dHRyCiAgICAgICAgICYmIGF0dHJOYW1lICE9IGZvckF0dHIKQEAgLTI3NzgsNiArMjc4MCwxMSBA
QCB2b2lkIE5vZGU6OnNldEl0ZW1UeXBlKGNvbnN0IFN0cmluZyYgdmFsCiAgICAgZW5zdXJlUmFy
ZURhdGEoKS0+c2V0SXRlbVR5cGUodmFsdWUpOwogfQogCisKK1Bhc3NSZWZQdHI8UHJvcGVydHlO
b2RlTGlzdD4gTm9kZTo6cHJvcGVydHlOb2RlTGlzdChjb25zdCBTdHJpbmcmIG5hbWUpCit7Cisg
ICAgcmV0dXJuIGVuc3VyZVJhcmVEYXRhKCktPmVuc3VyZU5vZGVMaXN0cyh0aGlzKS0+YWRkQ2Fj
aGVXaXRoTmFtZTxQcm9wZXJ0eU5vZGVMaXN0Pih0aGlzLCBEeW5hbWljTm9kZUxpc3Q6OlByb3Bl
cnR5Tm9kZUxpc3RUeXBlLCBuYW1lKTsKK30KICNlbmRpZgogCiB2b2lkIE5vZGVSYXJlRGF0YTo6
Y3JlYXRlTm9kZUxpc3RzKE5vZGUqIG5vZGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHJldmlzaW9uIDEy
MTY3MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTkw
LDYgKzkwLDcgQEAgY2xhc3MgVHJlZVNjb3BlOwogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKIGNs
YXNzIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjsKK2NsYXNzIFByb3BlcnR5Tm9kZUxpc3Q7CiAj
ZW5kaWYKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKQEAgLTYzMCw2ICs2MzEsNyBAQCBw
dWJsaWM6CiAgICAgRE9NU2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1Qcm9wKCk7CiAgICAgRE9NU2V0
dGFibGVUb2tlbkxpc3QqIGl0ZW1SZWYoKTsKICAgICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRl
bVR5cGUoKTsKKyAgICBQYXNzUmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+IHByb3BlcnR5Tm9kZUxp
c3QoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNVVRBVElPTl9PQlNFUlZF
UlMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwCShyZXZpc2lv
biAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiBNb3Rvcm9s
YSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQg
bW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVpdGhlciB0aGUg
bmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250
cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
CisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lm
IEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiUHJvcGVydHlOb2RlTGlzdC5oIgorCisjaW5j
bHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKKyNpbmNsdWRlICJET01TdHJpbmdMaXN0Lmgi
CisjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNs
dWRlICJOb2RlUmFyZURhdGEuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1l
c3BhY2UgSFRNTE5hbWVzOworCitQcm9wZXJ0eU5vZGVMaXN0OjpQcm9wZXJ0eU5vZGVMaXN0KE5v
ZGUqIHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIG5hbWUpCisgICAgOiBEeW5hbWljU3VidHJlZU5v
ZGVMaXN0KHJvb3ROb2RlLCBSb290ZWRBdERvY3VtZW50SWZPd25lckhhc0l0ZW1yZWZBdHRyKQor
ICAgICwgbV9uYW1lKG5hbWUpCit7CisgICAgZG9jdW1lbnQoKS0+ZG9jdW1lbnQoKS0+cmVnaXN0
ZXJEeW5hbWljU3VidHJlZU5vZGVMaXN0KHRoaXMpOworfQorCitQcm9wZXJ0eU5vZGVMaXN0Ojp+
UHJvcGVydHlOb2RlTGlzdCgpCit7CisgICAgb3duZXJOb2RlKCktPm5vZGVMaXN0cygpLT5yZW1v
dmVDYWNoZVdpdGhOYW1lKHRoaXMsIER5bmFtaWNOb2RlTGlzdDo6UHJvcGVydHlOb2RlTGlzdFR5
cGUsIG1fbmFtZSk7CisgICAgZG9jdW1lbnQoKS0+ZG9jdW1lbnQoKS0+dW5yZWdpc3RlckR5bmFt
aWNTdWJ0cmVlTm9kZUxpc3QodGhpcyk7Cit9CisKK2Jvb2wgQUxXQVlTX0lOTElORSBQcm9wZXJ0
eU5vZGVMaXN0OjplbGVtZW50RGVmaW5lc0RpZmZlcmVudEl0ZW0oY29uc3QgRWxlbWVudCogZWxl
bWVudCkgY29uc3QKK3sKKyAgICByZXR1cm4gZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVt
c2NvcGVBdHRyKSAmJiBlbGVtZW50ICE9IG93bmVyTm9kZSgpOworfQorCitib29sIFByb3BlcnR5
Tm9kZUxpc3Q6OmVsZW1lbnRJc1Byb3BlcnR5T2ZSZWZFbGVtZW50KGNvbnN0IE5vZGUqIHRlc3RF
bGVtZW50LCBjb25zdCBOb2RlICpyZWZFbGVtZW50KSBjb25zdAoreworICAgIGZvciAoY29uc3Qg
Q29udGFpbmVyTm9kZSogbm9kZSA9IHRlc3RFbGVtZW50LT5wYXJlbnROb2RlKCk7IG5vZGU7IG5v
ZGUgPSBub2RlLT5wYXJlbnROb2RlKCkpIHsKKyAgICAgICAgaWYgKG5vZGUtPmlzRWxlbWVudE5v
ZGUoKSkgeworICAgICAgICAgICAgY29uc3QgRWxlbWVudCogZWxlbWVudCA9IHRvRWxlbWVudChu
b2RlKTsKKyAgICAgICAgICAgIGlmIChlbGVtZW50RGVmaW5lc0RpZmZlcmVudEl0ZW0oZWxlbWVu
dCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKG5vZGUgPT0gcmVmRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUHJvcGVydHlOb2RlTGlzdDo6dXBkYXRlSXRl
bVJlZkVsZW1lbnRzKCkgY29uc3QKK3sKKyAgICBpZiAoaXNJdGVtUmVmRWxlbWVudHNDYWNoZVZh
bGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHRvSFRNTEVsZW1lbnQob3duZXJOb2RlKCkp
LT5nZXRJdGVtUmVmRWxlbWVudHMobV9pdGVtUmVmRWxlbWVudHNDYWNoZSk7CisgICAgc2V0SXRl
bVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCgpOworfQorCitib29sIFByb3BlcnR5Tm9kZUxpc3Q6Om5v
ZGVNYXRjaGVzKEVsZW1lbnQqIHRlc3RFbGVtZW50KSBjb25zdAoreworICAgIGlmICghdG9FbGVt
ZW50KG93bmVyTm9kZSgpKS0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSB8fCAhdGVz
dEVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSB8fCAhdGVzdEVsZW1lbnQtPmZhc3RIYXNBdHRyaWJ1
dGUoaXRlbXByb3BBdHRyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdXBkYXRlSXRl
bVJlZkVsZW1lbnRzKCk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9pdGVtUmVm
RWxlbWVudHNDYWNoZS5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAodGVzdEVsZW1lbnQgPT0g
bV9pdGVtUmVmRWxlbWVudHNDYWNoZVtpXSB8fCBlbGVtZW50SXNQcm9wZXJ0eU9mUmVmRWxlbWVu
dCh0ZXN0RWxlbWVudCwgbV9pdGVtUmVmRWxlbWVudHNDYWNoZVtpXSkpIHsKKyAgICAgICAgICAg
IGlmICh0ZXN0RWxlbWVudC0+aXRlbVByb3AoKS0+dG9rZW5zKCkuY29udGFpbnMobV9uYW1lKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJl
dHVybiBmYWxzZTsKK30KKworUHJvcGVydHlWYWx1ZUFycmF5IFByb3BlcnR5Tm9kZUxpc3Q6Omdl
dFZhbHVlcygpIGNvbnN0Cit7CisgICAgUHJvcGVydHlWYWx1ZUFycmF5IHByb3BlcnR5VmFsdWU7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aCgpOyArK2kpCisgICAgICAgIHBy
b3BlcnR5VmFsdWUuYXBwZW5kKHRvSFRNTEVsZW1lbnQoaXRlbShpKSktPml0ZW1WYWx1ZSgpKTsK
KworICAgIHJldHVybiBwcm9wZXJ0eVZhbHVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L1Byb3BlcnR5Tm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vUHJv
cGVydHlOb2RlTGlzdC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Byb3Bl
cnR5Tm9kZUxpc3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHly
aWdodCAoYykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0Cisg
KiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgUHJvcGVydHlOb2RlTGlzdF9oCisjZGVmaW5lIFByb3BlcnR5Tm9kZUxpc3RfaAorCisjaWYg
RU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNpbmNsdWRl
ICJNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4g
PiBQcm9wZXJ0eVZhbHVlQXJyYXk7CisKK2NsYXNzIFByb3BlcnR5Tm9kZUxpc3QgOiBwdWJsaWMg
RHluYW1pY1N1YnRyZWVOb2RlTGlzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
UHJvcGVydHlOb2RlTGlzdD4gY3JlYXRlKE5vZGUqIHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIG5h
bWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb3BlcnR5Tm9kZUxpc3Qo
cm9vdE5vZGUsIG5hbWUpKTsKKyAgICB9CisKKyAgICB+UHJvcGVydHlOb2RlTGlzdCgpOworCisg
ICAgUHJvcGVydHlWYWx1ZUFycmF5IGdldFZhbHVlcygpIGNvbnN0OworCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IFByb3BlcnR5Tm9kZUxpc3QoTm9kZSogcm9vdE5vZGUsIGNvbnN0IFN0cmluZyYg
bmFtZSk7CisKKyAgICB2aXJ0dWFsIGJvb2wgbm9kZU1hdGNoZXMoRWxlbWVudCopIGNvbnN0IE9W
RVJSSURFOworCisgICAgYm9vbCBBTFdBWVNfSU5MSU5FIGVsZW1lbnREZWZpbmVzRGlmZmVyZW50
SXRlbShjb25zdCBFbGVtZW50KikgY29uc3Q7CisgICAgYm9vbCBlbGVtZW50SXNQcm9wZXJ0eU9m
UmVmRWxlbWVudChjb25zdCBOb2RlKiwgY29uc3QgTm9kZSopIGNvbnN0OworICAgIHZvaWQgdXBk
YXRlSXRlbVJlZkVsZW1lbnRzKCkgY29uc3Q7CisKKyAgICBTdHJpbmcgbV9uYW1lOworICAgIG11
dGFibGUgVmVjdG9yPEVsZW1lbnQqPiBtX2l0ZW1SZWZFbGVtZW50c0NhY2hlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKKworI2Vu
ZGlmIC8vIFN0YXRpY05vZGVMaXN0X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0
eU5vZGVMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlO
b2RlTGlzdC5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlO
b2RlTGlzdC5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBu
b3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICog
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUg
Y29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1NSUNST0RBVEEs
CisgICAgICAgIEluZGV4ZWRHZXR0ZXIsCisgICAgICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0Cisg
ICAgXSBQcm9wZXJ0eU5vZGVMaXN0IDogTm9kZUxpc3QgeworCisgICAgICAgIHNlcXVlbmNlPE1p
Y3JvRGF0YUl0ZW1WYWx1ZT4gZ2V0VmFsdWVzKCk7CisgICAgICAgIE5vZGUgaXRlbShpbiB1bnNp
Z25lZCBsb25nIGluZGV4KTsKKworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBsZW5ndGg7CisgICAgfTsKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiAxMjE2NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNTU1ZhbHVl
S2V5d29yZHMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJDaGlsZExp
c3RNdXRhdGlvblNjb3BlLmgiCisjaW5jbHVkZSAiRE9NU2V0dGFibGVUb2tlbkxpc3QuaCIKICNp
bmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRl
ICJFdmVudExpc3RlbmVyLmgiCkBAIC05OTIsNiArOTkzLDM2IEBAIEhUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbiogSFRNTEVsZW1lbnQ6OnAKIHsKICAgICByZXR1cm4gZW5zdXJlQ2FjaGVkSFRNTENv
bGxlY3Rpb24oSXRlbVByb3BlcnRpZXMpOwogfQorCit2b2lkIEhUTUxFbGVtZW50OjpnZXRJdGVt
UmVmRWxlbWVudHMoVmVjdG9yPEVsZW1lbnQqPiYgaXRlbVJlZkVsZW1lbnRzKQoreworICAgIGlm
ICghZmFzdEhhc0F0dHJpYnV0ZShpdGVtcmVmQXR0cikpIHsKKyAgICAgICAgaXRlbVJlZkVsZW1l
bnRzLmFwcGVuZCh0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIERPTVNldHRh
YmxlVG9rZW5MaXN0KiBpdGVtUmVmcyA9IGl0ZW1SZWYoKTsKKyAgICBSZWZQdHI8RE9NU2V0dGFi
bGVUb2tlbkxpc3Q+IHByb2Nlc3NlZEl0ZW1SZWZzID0gRE9NU2V0dGFibGVUb2tlbkxpc3Q6OmNy
ZWF0ZSgpOworICAgIE5vZGUqIHJvb3ROb2RlID0gdHJlZVNjb3BlKCktPnJvb3ROb2RlKCk7CisK
KyAgICBmb3IgKE5vZGUqIGN1cnJlbnQgPSByb290Tm9kZS0+Zmlyc3RDaGlsZCgpOyBjdXJyZW50
OyBjdXJyZW50ID0gY3VycmVudC0+dHJhdmVyc2VOZXh0Tm9kZShyb290Tm9kZSkpIHsKKyAgICAg
ICAgaWYgKCFjdXJyZW50LT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KGN1cnJlbnQpOwor
CisgICAgICAgIGlmIChlbGVtZW50ID09IHRoaXMpIHsKKyAgICAgICAgICAgIGl0ZW1SZWZFbGVt
ZW50cy5hcHBlbmQoZWxlbWVudCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQor
CisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaWQgPSBlbGVtZW50LT5nZXRJZEF0dHJpYnV0
ZSgpOworICAgICAgICBpZiAoIXByb2Nlc3NlZEl0ZW1SZWZzLT50b2tlbnMoKS5jb250YWlucyhp
ZCkgJiYgaXRlbVJlZnMtPnRva2VucygpLmNvbnRhaW5zKGlkKSkgeworICAgICAgICAgICAgcHJv
Y2Vzc2VkSXRlbVJlZnMtPnNldFZhbHVlKGlkKTsKKyAgICAgICAgICAgIGlmICghZWxlbWVudC0+
aXNEZXNjZW5kYW50T2YodGhpcykpCisgICAgICAgICAgICAgICAgaXRlbVJlZkVsZW1lbnRzLmFw
cGVuZChlbGVtZW50KTsKKyAgICAgICAgfQorICAgIH0KK30KICNlbmRpZgogCiB2b2lkIEhUTUxF
bGVtZW50OjphZGRIVE1MTGVuZ3RoVG9TdHlsZShTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eUlELCBjb25zdCBTdHJpbmcmIHZhbHVlKQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuaAkocmV2aXNpb24gMTIxNjcyKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05Nyw2ICs5Nyw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEl0ZW1WYWx1ZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgUGFzc1JlZlB0cjxNaWNyb0RhdGFJdGVtVmFsdWU+IGl0ZW1WYWx1ZSgpIGNvbnN0Owog
ICAgIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiogcHJvcGVydGllcygpOworICAgIHZvaWQgZ2V0
SXRlbVJlZkVsZW1lbnRzKFZlY3RvcjxFbGVtZW50Kj4mKTsKICNlbmRpZgogCiAjaWZuZGVmIE5E
RUJVRwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uLmNwcAkocmV2aXNpb24gMTIxNjcyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBA
CiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNs
dWRlICJOb2RlLmgiCi0jaW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJQcm9w
ZXJ0eU5vZGVMaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNzYsMzYgKzc2LDcg
QEAgdm9pZCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OnVwZGF0ZVJlZgogICAgICAgICByZXR1
cm47CiAKICAgICBWZWN0b3I8RWxlbWVudCo+IGl0ZW1SZWZFbGVtZW50czsKLSAgICBIVE1MRWxl
bWVudCogYmFzZUVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KGJhc2UoKSk7Ci0KLSAgICBpZiAoIWJh
c2VFbGVtZW50LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1yZWZBdHRyKSkgewotICAgICAgICBpdGVt
UmVmRWxlbWVudHMuYXBwZW5kKGJhc2VFbGVtZW50KTsKLSAgICAgICAgbV9jYWNoZS5zZXRJdGVt
UmVmRWxlbWVudHMoaXRlbVJlZkVsZW1lbnRzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KiBpdGVtUmVmID0gYmFzZUVsZW1lbnQtPml0ZW1SZWYo
KTsKLSAgICBSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IHByb2Nlc3NlZEl0ZW1SZWYgPSBE
T01TZXR0YWJsZVRva2VuTGlzdDo6Y3JlYXRlKCk7Ci0gICAgTm9kZSogcm9vdE5vZGUgPSBiYXNl
RWxlbWVudC0+dHJlZVNjb3BlKCktPnJvb3ROb2RlKCk7Ci0KLSAgICBmb3IgKE5vZGUqIGN1cnJl
bnQgPSByb290Tm9kZS0+Zmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+
dHJhdmVyc2VOZXh0Tm9kZShyb290Tm9kZSkpIHsKLSAgICAgICAgaWYgKCFjdXJyZW50LT5pc0hU
TUxFbGVtZW50KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgSFRNTEVsZW1lbnQq
IGVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KGN1cnJlbnQpOwotCi0gICAgICAgIGlmIChlbGVtZW50
ID09IGJhc2VFbGVtZW50KSB7Ci0gICAgICAgICAgICBpdGVtUmVmRWxlbWVudHMuYXBwZW5kKGVs
ZW1lbnQpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGlkID0gZWxlbWVudC0+Z2V0SWRBdHRyaWJ1dGUoKTsKLSAgICAgICAg
aWYgKCFwcm9jZXNzZWRJdGVtUmVmLT50b2tlbnMoKS5jb250YWlucyhpZCkgJiYgaXRlbVJlZi0+
dG9rZW5zKCkuY29udGFpbnMoaWQpKSB7Ci0gICAgICAgICAgICBwcm9jZXNzZWRJdGVtUmVmLT5z
ZXRWYWx1ZShpZCk7Ci0gICAgICAgICAgICBpZiAoIWVsZW1lbnQtPmlzRGVzY2VuZGFudE9mKGJh
c2VFbGVtZW50KSkKLSAgICAgICAgICAgICAgICBpdGVtUmVmRWxlbWVudHMuYXBwZW5kKGVsZW1l
bnQpOwotICAgICAgICB9Ci0gICAgfQotCisgICAgdG9IVE1MRWxlbWVudChiYXNlKCkpLT5nZXRJ
dGVtUmVmRWxlbWVudHMoaXRlbVJlZkVsZW1lbnRzKTsKICAgICBtX2NhY2hlLnNldEl0ZW1SZWZF
bGVtZW50cyhpdGVtUmVmRWxlbWVudHMpOwogfQogCkBAIC0yMjksNyArMjAwLDcgQEAgdm9pZCBI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb246OmZpbmRQcm9wZQogICAgIGZvciAoRWxlbWVudCogZWxl
bWVudCA9IGl0ZW1BZnRlcihiYXNlLCAwKTsgZWxlbWVudDsgZWxlbWVudCA9IGl0ZW1BZnRlcihi
YXNlLCBlbGVtZW50KSkgewogICAgICAgICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVByb3Bl
cnR5ID0gZWxlbWVudC0+aXRlbVByb3AoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGl0ZW1Qcm9wZXJ0eS0+bGVuZ3RoKCk7ICsraSkKLSAgICAgICAgICAgIG1fY2FjaGUudXBk
YXRlUHJvcGVydHlDYWNoZShlbGVtZW50LCBpdGVtUHJvcGVydHktPml0ZW0oaSkpOworICAgICAg
ICAgICAgbV9jYWNoZS51cGRhdGVQcm9wZXJ0eUNhY2hlKGl0ZW1Qcm9wZXJ0eS0+aXRlbShpKSk7
CiAgICAgfQogfQogCkBAIC0yNTgsMjEgKzIyOSwxMiBAQCBQYXNzUmVmUHRyPERPTVN0cmluZ0xp
c3Q+IEhUTUxQcm9wZXJ0aWVzCiAgICAgcmV0dXJuIG1fY2FjaGUucHJvcGVydHlOYW1lczsKIH0K
IAotUGFzc1JlZlB0cjxOb2RlTGlzdD4gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpuYW1lZEl0
ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAorUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVMaXN0
PiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUp
IGNvbnN0CiB7CiAgICAgaWYgKCF0b0hUTUxFbGVtZW50KGJhc2UoKSktPmZhc3RIYXNBdHRyaWJ1
dGUoaXRlbXNjb3BlQXR0cikpCiAgICAgICByZXR1cm4gMDsKIAotICAgIFZlY3RvcjxSZWZQdHI8
Tm9kZT4gPiBuYW1lZEl0ZW1zOwotCi0gICAgdXBkYXRlTmFtZUNhY2hlKCk7Ci0KLSAgICBWZWN0
b3I8RWxlbWVudCo+KiBwcm9wZXJ0eVJlc3VsdHMgPSBtX2NhY2hlLnByb3BlcnR5Q2FjaGUuZ2V0
KEF0b21pY1N0cmluZyhuYW1lKS5pbXBsKCkpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IHBy
b3BlcnR5UmVzdWx0cyAmJiBpIDwgcHJvcGVydHlSZXN1bHRzLT5zaXplKCk7ICsraSkKLSAgICAg
ICAgbmFtZWRJdGVtcy5hcHBlbmQocHJvcGVydHlSZXN1bHRzLT5hdChpKSk7Ci0KLSAgICAvLyBG
SVhNRTogSFRNTDUgc3BlY2lmaWVzIHRoYXQgdGhpcyBzaG91bGQgcmV0dXJuIFByb3BlcnR5Tm9k
ZUxpc3QuCi0gICAgcmV0dXJuIG5hbWVkSXRlbXMuaXNFbXB0eSgpID8gMCA6IFN0YXRpY05vZGVM
aXN0OjphZG9wdChuYW1lZEl0ZW1zKTsKKyAgICByZXR1cm4gYmFzZSgpLT5wcm9wZXJ0eU5vZGVM
aXN0KG5hbWUpOwogfQogCiBib29sIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6aGFzTmFtZWRJ
dGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QKQEAgLTI4MCwxMSArMjQyLDIxIEBA
IGJvb2wgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpoYXNOYW1lZEkKICAgICBpZiAoIXRvSFRN
TEVsZW1lbnQoYmFzZSgpKS0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgdXBkYXRlTmFtZUNhY2hlKCk7CisgICAgaW52YWxpZGF0
ZUNhY2hlSWZOZWVkZWQoKTsKIAotICAgIGlmIChWZWN0b3I8RWxlbWVudCo+KiBwcm9wZXJ0eUNh
Y2hlID0gbV9jYWNoZS5wcm9wZXJ0eUNhY2hlLmdldChuYW1lLmltcGwoKSkpIHsKLSAgICAgICAg
aWYgKCFwcm9wZXJ0eUNhY2hlLT5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBpZiAobV9jYWNoZS5oYXNOYW1lZEl0ZW0pCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgdXBkYXRlUmVmRWxlbWVudHMoKTsKKworICAgIGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4mIGl0
ZW1SZWZFbGVtZW50cyA9IG1fY2FjaGUuZ2V0SXRlbVJlZkVsZW1lbnRzKCk7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW1SZWZFbGVtZW50cy5zaXplKCk7ICsraSkgeworICAgICAg
ICBmb3IgKEVsZW1lbnQqIGVsZW1lbnQgPSBpdGVtQWZ0ZXIoaXRlbVJlZkVsZW1lbnRzW2ldLCAw
KTsgZWxlbWVudDsgZWxlbWVudCA9IGl0ZW1BZnRlcihpdGVtUmVmRWxlbWVudHNbaV0sIGVsZW1l
bnQpKSB7CisgICAgICAgICAgICBpZiAoZWxlbWVudC0+aXRlbVByb3AoKS0+dG9rZW5zKCkuY29u
dGFpbnMobmFtZSkpIHsKKyAgICAgICAgICAgICAgICBtX2NhY2hlLmhhc05hbWVkSXRlbSA9IHRy
dWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KICAgICB9CiAKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDEyMTY3MikKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM5LDYgKzM5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRE9NU3Ry
aW5nTGlzdDsKK2NsYXNzIFByb3BlcnR5Tm9kZUxpc3Q7CiAKIGNsYXNzIEhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbiA6IHB1YmxpYyBIVE1MQ29sbGVjdGlvbiB7CiBwdWJsaWM6CkBAIC01MSw3ICs1
Miw3IEBAIHB1YmxpYzoKIAogICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gbmFtZXMoKSBj
b25zdDsKIAotICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IG5hbWVkSXRlbShjb25zdCBTdHJpbmcm
KSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+IG5hbWVkSXRlbShjb25z
dCBTdHJpbmcmKSBjb25zdDsKICAgICBib29sIGhhc05hbWVkSXRlbShjb25zdCBBdG9taWNTdHJp
bmcmKSBjb25zdDsKIAogcHJpdmF0ZToKQEAgLTc3LDExICs3OCwxMSBAQCBwcml2YXRlOgogICAg
ICAgICB1bnNpZ25lZCBsZW5ndGg7CiAgICAgICAgIGJvb2wgaGFzTGVuZ3RoOwogICAgICAgICBi
b29sIGhhc05hbWVDYWNoZTsKLSAgICAgICAgTm9kZUNhY2hlTWFwIHByb3BlcnR5Q2FjaGU7CiAg
ICAgICAgIFZlY3RvcjxFbGVtZW50Kj4gaXRlbVJlZkVsZW1lbnRzOwogICAgICAgICBSZWZQdHI8
RE9NU3RyaW5nTGlzdD4gcHJvcGVydHlOYW1lczsKICAgICAgICAgdW5zaWduZWQgaXRlbVJlZkVs
ZW1lbnRQb3NpdGlvbjsKICAgICAgICAgYm9vbCBoYXNJdGVtUmVmRWxlbWVudHM7CisgICAgICAg
IGJvb2wgaGFzTmFtZWRJdGVtOwogCiAgICAgICAgIHZvaWQgY2xlYXIoKQogICAgICAgICB7CkBA
IC05MSwxMSArOTIsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGxlbmd0aCA9IDA7CiAgICAg
ICAgICAgICBoYXNMZW5ndGggPSBmYWxzZTsKICAgICAgICAgICAgIGhhc05hbWVDYWNoZSA9IGZh
bHNlOwotICAgICAgICAgICAgcHJvcGVydHlDYWNoZS5jbGVhcigpOwogICAgICAgICAgICAgaXRl
bVJlZkVsZW1lbnRzLmNsZWFyKCk7CiAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmNsZWFyKCk7
CiAgICAgICAgICAgICBpdGVtUmVmRWxlbWVudFBvc2l0aW9uID0gMDsKICAgICAgICAgICAgIGhh
c0l0ZW1SZWZFbGVtZW50cyA9IGZhbHNlOworICAgICAgICAgICAgaGFzTmFtZWRJdGVtID0gZmFs
c2U7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIHNldEl0ZW1SZWZFbGVtZW50cyhjb25zdCBW
ZWN0b3I8RWxlbWVudCo+JiBlbGVtZW50cykKQEAgLTExNSwxNyArMTE2LDEzIEBAIHByaXZhdGU6
CiAgICAgICAgICAgICBoYXNMZW5ndGggPSB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgdm9p
ZCB1cGRhdGVQcm9wZXJ0eUNhY2hlKEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgcHJvcGVydHlOYW1lKQorICAgICAgICB2b2lkIHVwZGF0ZVByb3BlcnR5Q2FjaGUoY29uc3Qg
QXRvbWljU3RyaW5nJiBwcm9wZXJ0eU5hbWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICgh
cHJvcGVydHlOYW1lcykKICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzID0gRE9NU3RyaW5n
TGlzdDo6Y3JlYXRlKCk7CiAKICAgICAgICAgICAgIGlmICghcHJvcGVydHlOYW1lcy0+Y29udGFp
bnMocHJvcGVydHlOYW1lKSkKICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLT5hcHBlbmQo
cHJvcGVydHlOYW1lKTsKLQotICAgICAgICAgICAgVmVjdG9yPEVsZW1lbnQqPiogcHJvcGVydHlS
ZXN1bHRzID0gcHJvcGVydHlDYWNoZS5nZXQocHJvcGVydHlOYW1lLmltcGwoKSk7Ci0gICAgICAg
ICAgICBpZiAoIXByb3BlcnR5UmVzdWx0cyB8fCAhcHJvcGVydHlSZXN1bHRzLT5jb250YWlucyhl
bGVtZW50KSkKLSAgICAgICAgICAgICAgICBhcHBlbmQocHJvcGVydHlDYWNoZSwgcHJvcGVydHlO
YW1lLCBlbGVtZW50KTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgdXBkYXRlQ3VycmVudEl0
ZW0oRWxlbWVudCogZWxlbWVudCwgdW5zaWduZWQgcG9zLCB1bnNpZ25lZCBpdGVtUmVmRWxlbWVu
dFBvcykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbi5pZGwJKHJldmlzaW9uIDEyMTY3MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDAsOCArNDAsNiBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIE5vZGUgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4
KTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCBuYW1lczsKLQot
ICAgICAgICAvLyBGSVhNRTogSFRNTDUgc3BlY2lmaWVzIHRoYXQgdGhpcyBzaG91bGQgcmV0dXJu
IFByb3BlcnR5Tm9kZUxpc3QuCi0gICAgICAgIE5vZGVMaXN0IG5hbWVkSXRlbShpbiBET01TdHJp
bmcgbmFtZSk7CisgICAgICAgIFByb3BlcnR5Tm9kZUxpc3QgbmFtZWRJdGVtKGluIERPTVN0cmlu
ZyBuYW1lKTsKICAgICB9OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJ
dGVtVmFsdWUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRh
SXRlbVZhbHVlLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9E
YXRhSXRlbVZhbHVlLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENv
cHlyaWdodCAoYykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
CisgKiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21v
ZHVsZSBodG1sIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1NSUNST0RB
VEEsCisgICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCisgICAgICAgIE9taXRDb25zdHJ1Y3Rvcgor
ICAgIF0gTWljcm9EYXRhSXRlbVZhbHVlIHsKKyAgICB9OworfQorCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAxMjE2NzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2OSw2ICszNjksNyBAQCBtb2R1bGUg
d2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIERvY3VtZW50Q29uc3RydWN0b3IgRG9jdW1lbnQ7
CiAgICAgICAgIGF0dHJpYnV0ZSBOb2RlQ29uc3RydWN0b3IgTm9kZTsKICAgICAgICAgYXR0cmli
dXRlIE5vZGVMaXN0Q29uc3RydWN0b3IgTm9kZUxpc3Q7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9TUlDUk9EQVRBXSBQcm9wZXJ0eU5vZGVMaXN0Q29uc3RydWN0b3IgUHJvcGVydHlO
b2RlTGlzdDsKICAgICAgICAgYXR0cmlidXRlIE5hbWVkTm9kZU1hcENvbnN0cnVjdG9yIE5hbWVk
Tm9kZU1hcDsKICAgICAgICAgYXR0cmlidXRlIENoYXJhY3RlckRhdGFDb25zdHJ1Y3RvciBDaGFy
YWN0ZXJEYXRhOwogICAgICAgICBhdHRyaWJ1dGUgQXR0ckNvbnN0cnVjdG9yIEF0dHI7CkluZGV4
OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxMjE2NzUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wNy0wMiAgQXJrbyBTYWhhICA8YXJrb0Btb3Rv
cm9sYS5jb20+CisKKyAgICAgICAgTWljcm9kYXRhOiBJbXBsZW1lbnQgUHJvcGVydHlOb2RlTGlz
dCBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MDI2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFNwZWM6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdv
cmsvbXVsdGlwYWdlL2NvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI3Byb3BlcnR5bm9kZWxpc3QK
KyAgICAgICAgQWRkZWQgdGVzdCBjYXNlcyBmb3IgUHJvcGVydHlOb2RlTGlzdCBpbnRlcmZhY2Ug
YW5kIFByb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVzKCkgbWV0aG9kLgorCisgICAgICAgICogZmFz
dC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJl
dHVybnMtcHJvcGVydHlub2RlbGlzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9N
aWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVk
LWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy1hcnJh
eS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZh
bHVlcy10ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9E
YXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVs
ZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEv
cHJvcGVydHlub2RlbGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxlbWVudC5odG1sOiBBZGRlZC4KKwog
MjAxMi0wNy0wMiAgVGFpanUgVHN1aWtpICA8dHppa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogQWRkIHJlZnJlc2ggYnV0dG9uIHRvIEZpbGVTeXN0ZW1WaWV3IHN0YXR1
cyBiYXIKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0
dXJucy1wcm9wZXJ0eW5vZGVsaXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlz
dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvbmFtZWRpdGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKK1Byb3BlcnRpZXNDb2xsZWN0aW9uLm5hbWVkSXRl
bShuYW1lKSBtdXN0IHJldHVybiBQcm9wZXJ0eU5vZGVMaXN0LgorCitQQVNTIGVsZW1lbnQucHJv
cGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpIGluc3RhbmNlb2YgUHJvcGVydHlOb2RlTGlzdCBpcyB0
cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllc1snZm9vJ10gaW5zdGFuY2VvZiBQcm9wZXJ0eU5v
ZGVMaXN0IGlzIHRydWUKKworUHJvcGVydHlOb2RlTGlzdCBpbnRlcmZhY2UgaW5oZXJpdGVkIGZy
b20gdGhlIE5vZGVMaXN0IGludGVyZmFjZS4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVk
SXRlbSgnZm9vJykgaW5zdGFuY2VvZiBOb2RlTGlzdCBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJv
cGVydGllc1snZm9vJ10gaW5zdGFuY2VvZiBOb2RlTGlzdCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVt
LXJldHVybnMtcHJvcGVydHlub2RlbGlzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3Qu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5Qcm9wZXJ0aWVzQ29sbGVjdGlvbi5uYW1l
ZEl0ZW0obmFtZSkgbXVzdCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdC48L3A+Cis8ZGl2IGl0ZW1z
Y29wZSBpZD0ibWljcm9kYXRhaXRlbSI+Cis8ZGl2IGl0ZW1wcm9wPSJmb28iPjwvZGl2PgorPC9k
aXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJtaWNyb2RhdGFpdGVtIik7CisKK3Nob3VsZEJlVHJ1ZSgi
ZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykgaW5zdGFuY2VvZiBQcm9wZXJ0eU5v
ZGVMaXN0Iik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllc1snZm9vJ10gaW5zdGFu
Y2VvZiBQcm9wZXJ0eU5vZGVMaXN0Iik7CisKK2RlYnVnKCI8YnI+UHJvcGVydHlOb2RlTGlzdCBp
bnRlcmZhY2UgaW5oZXJpdGVkIGZyb20gdGhlIE5vZGVMaXN0IGludGVyZmFjZS4iKQorc2hvdWxk
QmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKSBpbnN0YW5jZW9mIE5v
ZGVMaXN0Iik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllc1snZm9vJ10gaW5zdGFu
Y2VvZiBOb2RlTGlzdCIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVl
cy1hcnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
cHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRl
bXZhbHVlLW9mLWVhY2gtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJy
YXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzggQEAKK1RoaXMgdGVzdCBlbnN1cmUgdGhh
dCBQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIGFycmF5IHJldHVybnMgYW4gYXJyYXkgd2hv
c2UgdmFsdXNlIGFyZSBvYnRhaW5lZCBmcm9tIHRoZSBpdGVtVmFsdWUgRE9NIHByb3BlcnR5IG9m
IGVhY2ggb2YgdGhlIGVsZW1lbnRzIHJlcHJlc2VudGVkIGJ5IHRoZSBvYmplY3QsIGluIHRyZWUg
b3JkZXIuCisKK3Byb3BlcnR5IGluZGV4IDAsIHRhZyBESVYKK1BBU1MgdmFsdWVzQXJyYXlbaV0g
aXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDEsIHRhZyBT
UEFOCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVl
Citwcm9wZXJ0eSBpbmRleCAyLCB0YWcgTUVUQQorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9w
ZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMywgdGFnIEFVRElPCitQ
QVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9w
ZXJ0eSBpbmRleCA0LCB0YWcgRU1CRUQKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlO
b2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDUsIHRhZyBJRlJBTUUKK1BBU1Mg
dmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5
IGluZGV4IDYsIHRhZyBJTUcKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlz
dFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDcsIHRhZyBTT1VSQ0UKK1BBU1MgdmFsdWVz
QXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4
IDgsIHRhZyBWSURFTworUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ld
Lml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggOSwgdGFnIFRSQUNLCitQQVNTIHZhbHVlc0FycmF5
W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxMCwg
dGFnIEEKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFs
dWUKK3Byb3BlcnR5IGluZGV4IDExLCB0YWcgQVJFQQorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBw
cm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMTIsIHRhZyBMSU5L
CitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitw
cm9wZXJ0eSBpbmRleCAxMywgdGFnIFAKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlO
b2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDE0LCB0YWcgU1BBTgorUEFTUyB2
YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorUEFTUyB2YWx1
ZXNBcnJheS5sZW5ndGggaXMgMTUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorICAgICAgCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy1hcnJheS12YWx1ZXMtb2J0YWluZWQtZnJv
bS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZh
bHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0
LWdldHZhbHVlcy1hcnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1l
bGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29t
bW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZSB0
aGF0IFByb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVzKCkgYXJyYXkgcmV0dXJucyBhbiBhcnJheSB3
aG9zZSB2YWx1c2UgYXJlIG9idGFpbmVkIGZyb20gdGhlIGl0ZW1WYWx1ZSBET00gcHJvcGVydHkg
b2YgZWFjaCBvZiB0aGUgZWxlbWVudHMgcmVwcmVzZW50ZWQgYnkgdGhlIG9iamVjdCwgaW4gdHJl
ZSBvcmRlci48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXY+Cis8ZGl2IGlkPSJp
ZDEiPgorPGRpdiBpdGVtcHJvcD0iZm9vIj4KKzxzcGFuIGl0ZW1wcm9wPSJmb28iIGl0ZW1zY29w
ZT48L3NwYW4+Cis8L2Rpdj4KKzxkaXYgaXRlbXNjb3BlIGl0ZW1yZWY9ImlkMSIgaWQ9Iml0ZW0i
PgorPG1ldGEgaXRlbXByb3A9ImZvbyIgY29udGVudD0idGVzdCIgLz4KKzxhdWRpbyBpdGVtcHJv
cD0iZm9vIiBzcmM9ImF1ZGlvLm1wMyI+PC9hdWRpbz4KKzxlbWJlZCBpdGVtcHJvcD0iZm9vIiBz
cmM9InRlc3Quc3dmIiAvPgorPGlmcmFtZSBpdGVtcHJvcD0iZm9vIiBzcmM9InRlc3QuaHRtbCI+
PC9pZnJhbWU+Cis8aW1nIGl0ZW1wcm9wPSJmb28iIHNyYz0idGVzdC5qcGciIC8+Cis8YXVkaW8g
Y29udHJvbHM9ImNvbnRyb2xzIj4KKzxzb3VyY2UgaXRlbXByb3A9ImZvbyIgc3JjPSJzb25nLm1w
MyIgdHlwZT0iYXVkaW8vbXAzIiAvPgorPC9hdWRpbz4KKzx2aWRlbyBpdGVtcHJvcD0iZm9vIiBz
cmM9InZpZGVvLm1wNCI+PC92aWRlbz4KKzx2aWRlbyBzcmM9InZpZGVvLm1wNCI+Cis8dHJhY2sg
aXRlbXByb3A9ImZvbyIgc3JjPSJzdWJ0aXRsZXNfZW4udnR0Ij4KKzwvdmlkZW8+Cis8YSBpdGVt
cHJvcD0iZm9vIiBzcmM9ImxpbmsuaHRtbCI+PC9hPgorPG1hcD4KKzxhcmVhIGl0ZW1wcm9wPSJm
b28iIGhyZWY9InRlc3QuaHRtbCIgLz4KKzwvbWFwPgorPGxpbmsgaXRlbXByb3A9ImZvbyIgaHJl
Zj0idGVzdC5jc3MiIC8+Cis8cCBpdGVtcHJvcD0iZm9vIj4KKzxzcGFuIGl0ZW1wcm9wPSJmb28i
IGl0ZW1zY29wZT4KKzxhIGl0ZW1wcm9wPSJmb28iIHNyYz0idGVzdF9hbmNob3IuaHRtbCI+PC9h
PgorPC9zcGFuPgorPC9wPgorPC9kaXY+Cis8L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgaXRlbSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJpdGVtIik7Cit2YXIgcHJvcGVydHlOb2RlTGlzdCA9IGl0
ZW0ucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpOwordmFyIHZhbHVlc0FycmF5ID0gcHJvcGVy
dHlOb2RlTGlzdC5nZXRWYWx1ZXMoKTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgcHJvcGVydHlOb2Rl
TGlzdC5sZW5ndGg7IGkrKykgeworICAgIGRlYnVnKCdwcm9wZXJ0eSBpbmRleCAnICsgaSArICcs
IHRhZyAnICsgcHJvcGVydHlOb2RlTGlzdFtpXS50YWdOYW1lKTsKKyAgICBzaG91bGRCZSgidmFs
dWVzQXJyYXlbaV0iLCAicHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUiKTsKK30KK3Nob3Vs
ZEJlKCJ2YWx1ZXNBcnJheS5sZW5ndGgiLCAnMTUnKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9k
ZWxpc3QtZ2V0dmFsdWVzLXRlc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw5IEBACitQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCB0
ZXN0LgorCitQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCBtdXN0IHJldHVybiBh
biBhcnJheS4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykuZ2V0VmFs
dWVzKCkgaW5zdGFuY2VvZiBBcnJheSBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllc1sn
Zm9vJ10uZ2V0VmFsdWVzKCkgaW5zdGFuY2VvZiBBcnJheSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2Rl
bGlzdC1nZXR2YWx1ZXMtdGVzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cD5Qcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhv
ZCB0ZXN0LjwvcD4KKzxkaXYgaXRlbXNjb3BlIGlkPSJpdGVtIj4KKzxkaXYgaXRlbXByb3A9ImZv
byI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3Zh
ciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2l0ZW0nKTsKK2RlYnVnKCJQcm9w
ZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCBtdXN0IHJldHVybiBhbiBhcnJheS4iKTsK
K3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykuZ2V0VmFs
dWVzKCkgaW5zdGFuY2VvZiBBcnJheSIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRp
ZXNbJ2ZvbyddLmdldFZhbHVlcygpIGluc3RhbmNlb2YgQXJyYXkiKTsKKworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
cHJvcGVydHlub2RlbGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxlbWVudC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxp
c3QtdGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQt
cmVtb3ZlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBA
CitNaWNyb2RhdGEgcHJvcGVydGllcyBjb2xsZWN0aW9uIG11c3QgdXBkYXRlIG9uIGFkZGluZyBv
ciByZW1vdmluZyBwcm9wZXJ0eS4KKworUEFTUyBwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAn
MScgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzBdID09IGl0ZW0uY2hpbGRyZW5bMF0g
aXMgdHJ1ZQorQWRkIGEgcHJvcGVydHkgdG8gdGhlIGl0ZW0uCitDcmVhdGVkIGVsZW1lbnQgb2Yg
dHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVtcHJvcCwgdmFsdWU6IGZvbworUEFTUyBwcm9w
ZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAyIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFsw
XSA9PSBpdGVtLmNoaWxkcmVuWzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFsxXSA9
PSBpdGVtLmNoaWxkcmVuWzFdIGlzIHRydWUKK1JlbW92ZSBpdGVtcHJvcCBhdHRyaWJ1dGUgb2Yg
dGhlIGZpcnN0IGNoaWxkLgorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAxIGlzIHRy
dWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVuWzFdIGlzIHRydWUK
K0FkZCBpdGVtcHJvcCBhdHRyaWJ1dGUgdG8gdGhlIGZpcnN0IGNoaWxkLgorUEFTUyBwcm9wZXJ0
eU5vZGVMaXN0Lmxlbmd0aCA9PSAyIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFswXSA9
PSBpdGVtLmNoaWxkcmVuWzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFsxXSA9PSBp
dGVtLmNoaWxkcmVuWzFdIGlzIHRydWUKK0FkZCBpdGVtcmVmIGF0dHJpYnV0ZS4KK1BBU1MgcHJv
cGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMyBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3Rb
MF0gPT0gdGVzdEVsZW1lbnQgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzFdID09IGl0
ZW0uY2hpbGRyZW5bMF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzJdID09IGl0ZW0u
Y2hpbGRyZW5bMV0gaXMgdHJ1ZQorUmVtb3ZlIGl0ZW1yZWYgYXR0cmlidXRlLgorUEFTUyBwcm9w
ZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAyIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFsw
XSA9PSBpdGVtLmNoaWxkcmVuWzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFsxXSA9
PSBpdGVtLmNoaWxkcmVuWzFdIGlzIHRydWUKK0FkZCBpdGVtcmVmIGF0dHJpYnV0ZS4KK1BBU1Mg
cHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMyBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxp
c3RbMF0gPT0gdGVzdEVsZW1lbnQgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzFdID09
IGl0ZW0uY2hpbGRyZW5bMF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzJdID09IGl0
ZW0uY2hpbGRyZW5bMV0gaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9w
cm9wZXJ0eW5vZGVsaXN0LXRlc3QtYWRkLXJlbW92ZS1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1h
ZGQtcmVtb3ZlLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LXRlc3QtYWRkLXJlbW92ZS1lbGVtZW50Lmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+TWljcm9kYXRhIHByb3BlcnRpZXMgY29sbGVj
dGlvbiBtdXN0IHVwZGF0ZSBvbiBhZGRpbmcgb3IgcmVtb3ZpbmcgcHJvcGVydHkuPC9wPgorPGRp
diBpdGVtcHJvcD0iZm9vIiBpZD0idGVzdCI+Cis8L2Rpdj4KKzxkaXYgaXRlbXNjb3BlIGlkPSJt
aWNyb2RhdGEtaXRlbSI+Cis8cCBpdGVtcHJvcD0iZm9vIj48L3A+Cis8L2Rpdj4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBpdGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ21pY3JvZGF0YS1pdGVtJyk7Cit2YXIgcHJvcGVydHlOb2RlTGlzdCA9IGl0ZW0ucHJv
cGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpOwordmFyIHRlc3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0Lmxl
bmd0aCA9PSAnMSciKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVt
LmNoaWxkcmVuWzBdIik7CisKK2RlYnVnKCdBZGQgYSBwcm9wZXJ0eSB0byB0aGUgaXRlbS4nKTsK
K2l0ZW0uYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVudCgnZGl2Jywge2l0ZW1wcm9wOiAnZm9vJ30p
KTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMiIpOworc2hvdWxk
QmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzBdID09IGl0ZW0uY2hpbGRyZW5bMF0iKTsKK3Nob3Vs
ZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVuWzFdIik7CisKK2Rl
YnVnKCdSZW1vdmUgaXRlbXByb3AgYXR0cmlidXRlIG9mIHRoZSBmaXJzdCBjaGlsZC4nKTsKK2l0
ZW0uY2hpbGRyZW5bMF0ucmVtb3ZlQXR0cmlidXRlKCdpdGVtcHJvcCcpOworc2hvdWxkQmVUcnVl
KCJwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAxIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5
Tm9kZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJlblsxXSIpOworCitkZWJ1ZygnQWRkIGl0ZW1wcm9w
IGF0dHJpYnV0ZSB0byB0aGUgZmlyc3QgY2hpbGQuJyk7CitpdGVtLmNoaWxkcmVuWzBdLnNldEF0
dHJpYnV0ZSgnaXRlbXByb3AnLCAnZm9vJyk7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxp
c3QubGVuZ3RoID09IDIiKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFswXSA9PSBp
dGVtLmNoaWxkcmVuWzBdIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMV0gPT0g
aXRlbS5jaGlsZHJlblsxXSIpOworCitkZWJ1ZygnQWRkIGl0ZW1yZWYgYXR0cmlidXRlLicpOwor
aXRlbS5zZXRBdHRyaWJ1dGUoJ2l0ZW1yZWYnLCAndGVzdCcpOworc2hvdWxkQmVUcnVlKCJwcm9w
ZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAzIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxp
c3RbMF0gPT0gdGVzdEVsZW1lbnQiKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFsx
XSA9PSBpdGVtLmNoaWxkcmVuWzBdIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3Rb
Ml0gPT0gaXRlbS5jaGlsZHJlblsxXSIpOworCitkZWJ1ZygnUmVtb3ZlIGl0ZW1yZWYgYXR0cmli
dXRlLicpOworaXRlbS5yZW1vdmVBdHRyaWJ1dGUoJ2l0ZW1yZWYnKTsKK3Nob3VsZEJlVHJ1ZSgi
cHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMiIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5v
ZGVMaXN0WzBdID09IGl0ZW0uY2hpbGRyZW5bMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlO
b2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVuWzFdIik7CisKK2RlYnVnKCdBZGQgaXRlbXJlZiBh
dHRyaWJ1dGUuJyk7CitpdGVtLnNldEF0dHJpYnV0ZSgnaXRlbXJlZicsICd0ZXN0Jyk7CitzaG91
bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDMiKTsKK3Nob3VsZEJlVHJ1ZSgi
cHJvcGVydHlOb2RlTGlzdFswXSA9PSB0ZXN0RWxlbWVudCIpOworc2hvdWxkQmVUcnVlKCJwcm9w
ZXJ0eU5vZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRyZW5bMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJv
cGVydHlOb2RlTGlzdFsyXSA9PSBpdGVtLmNoaWxkcmVuWzFdIik7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151939</attachid>
            <date>2012-07-12 06:30:25 -0700</date>
            <delta_ts>2012-07-13 08:22:11 -0700</delta_ts>
            <desc>Updated TOT patch</desc>
            <filename>bug-80269-20120712.diff</filename>
            <type>text/plain</type>
            <size>65175</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMjQ1MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg3IEBACisyMDEyLTA3LTEyICBBcmtvIFNh
aGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBNaWNyb2RhdGE6IEltcGxlbWVudCBQ
cm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgwMjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgUHJvcGVydHlOb2RlTGlzdCBpbnRl
cmZhY2UuIEN1cnJlbnRseSBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24ubmFtZWRJdGVtKG5hbWUp
CisgICAgICAgIHJldHVybnMgTm9kZUxpc3Qgb2JqZWN0LiBNYWRlIGNoYW5nZXMgc28gdGhhdCBp
dCB3aWxsIHJldHVybiBQcm9wZXJ0eU5vZGVMaXN0IG9iamVjdC4KKworICAgICAgICBJbXBsZW1l
bnRlZCBwcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZC4gSXQgcmV0dXJucyBhbiBh
cnJheSBvZiB2YXJpb3VzIHZhbHVlcy4gSXRzCisgICAgICAgIHZhbHVlcyBhcmUgb2J0YWluZWQg
ZnJvbSB0aGUgIml0ZW1WYWx1ZSIgRE9NIHByb3BlcnR5IG9mIGVhY2ggb2YgdGhlIGVsZW1lbnRz
IHJlcHJlc2VudGVkIGJ5CisgICAgICAgIHRoZSBvYmplY3QsIGluIHRyZWUgb3JkZXIuCisKKyAg
ICAgICAgU3BlYzogaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQt
d29yay9tdWx0aXBhZ2UvY29tbW9uLWRvbS1pbnRlcmZhY2VzLmh0bWwjcHJvcGVydHlub2RlbGlz
dAorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJldHVybnMt
cHJvcGVydHlub2RlbGlzdC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNyb0RhdGEv
cHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRl
bXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9NaWNy
b0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC5odG1sCisgICAgICAgICAgICAg
ICBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxl
bWVudC5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAg
ICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dO
VW1ha2VmaWxlLmFtOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVl
Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogQWRkZWQgdG9KUygp
IGN1c3RvbSBtZXRob2QuIFJldHVybnMgTm9kZSBpZiBpdGVtVmFsdWUgaXMgbm9kZSBlbHNlIHJl
dHVybnMgU3RyaW5nLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0
ZW1WYWx1ZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6IEFkZGVk
IHRvVjggY3VzdG9tIGNvZGUuCisgICAgICAgICogZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3Q6OnJvb3ROb2RlKTogUmV0dXJuIGRvY3Vt
ZW50IGlmIG93bmVyIG5vZGUgaGFzIGl0ZW1yZWYgYXR0cmlidXRlIHNwZWNpZmllZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkR5bmFtaWNOb2RlTGlzdDo6aXRlbVdpdGhOYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OkR5bmFtaWNOb2RlTGlzdDo6b3duZXJOb2RlSGFzSXRlbVJlZkF0dHJpYnV0ZSk6IFJl
dHVybnMgdHJ1ZSBpZiBvd25lciBub2RlIGhhcyBpdGVtcmVmIGF0dHJpYnV0ZQorICAgICAgICBz
cGVjaWZpZWQgd2l0aCByb290IHR5cGUgUm9vdGVkQXREb2N1bWVudElmT3duZXJIYXNJdGVtcmVm
QXR0ci4KKyAgICAgICAgKiBkb20vRHluYW1pY05vZGVMaXN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OkR5bmFtaWNOb2RlTGlzdENhY2hlQmFzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OmlzUm9vdGVkQXREb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OmNhY2hl
ZFJvb3RUeXBlKTogUmV0dXJucyBjYWNoZWQgcm9vdCB0eXBlLgorICAgICAgICAoV2ViQ29yZTo6
RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjppc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpzZXRJdGVtUmVmRWxl
bWVudHNDYWNoZVZhbGlkKToKKyAgICAgICAgKFdlYkNvcmU6OkR5bmFtaWNOb2RlTGlzdENhY2hl
QmFzZTo6Y2xlYXJDYWNoZSk6IEludmFsaWRhdGUgaXNJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlk
LgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmludmFs
aWRhdGVOb2RlTGlzdHNDYWNoZUFmdGVyQXR0cmlidXRlQ2hhbmdlZCk6IEludmFsaWRhdGUgTm9k
ZUxpc3RDYWNoZSBvbiBpdGVtcmVmCisgICAgICAgIGF0dHJpYnV0ZSBjaGFuZ2UuCisgICAgICAg
IChXZWJDb3JlOjpOb2RlOjpwcm9wZXJ0eU5vZGVMaXN0KTogUmV0dXJucyBuYW1lZCBwcm9wZXJ0
aWVzIG9mIGEgTWljcm9kYXRhIGl0ZW0uCisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAg
KiBkb20vUHJvcGVydHlOb2RlTGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJv
cGVydHlOb2RlTGlzdDo6UHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9w
ZXJ0eU5vZGVMaXN0Ojp+UHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9w
ZXJ0eU5vZGVMaXN0OjplbGVtZW50RGVmaW5lc0RpZmZlcmVudEl0ZW0pOgorICAgICAgICAoV2Vi
Q29yZTo6UHJvcGVydHlOb2RlTGlzdDo6ZWxlbWVudElzUHJvcGVydHlPZlJlZkVsZW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6dXBkYXRlSXRlbVJlZkVsZW1lbnRz
KTogVXBkYXRlcyBJdGVtUmVmRWxlbWVudHNDYWNoZSBpZiB0aGUgY2FjaGUgaXMKKyAgICAgICAg
aW52YWxpZCBhbmQgc2V0cyBpdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkLgorICAgICAgICAoV2Vi
Q29yZTo6UHJvcGVydHlOb2RlTGlzdDo6bm9kZU1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6
UHJvcGVydHlOb2RlTGlzdDo6Z2V0VmFsdWVzKTogUmV0dXJucyBQcm9wZXJ0eVZhbHVlQXJyYXkg
d2hvc2UgdmFsdWVzIGFyZSBvYnRhaW5lZCBmcm9tIHRoZQorICAgICAgICBpdGVtVmFsdWUgRE9N
IHByb3BlcnR5IG9mIGVhY2ggb2YgdGhlIGVsZW1lbnRzIHJlcHJlc2VudGVkIGJ5IHRoZSBvYmpl
Y3QsIGluIHRyZWUgb3JkZXIuCisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaDogQWRk
ZWQuCisgICAgICAgIChQcm9wZXJ0eU5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByb3Bl
cnR5Tm9kZUxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxFbGVtZW50Ojpwcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVt
ZW50OjpnZXRJdGVtUmVmRWxlbWVudHMpOiBSZXR1cm5zIHRoZSBJdGVtUmVmRWxlbWVudHMgbGlz
dCBvZiBnaXZlbiBlbGVtZW50LiBBZGRlZCB0aGlzCisgICAgICAgIG1ldGhvZCB0byBzaGFyZSB0
aGUgY29kZSBiZXR3ZWVuIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiBhbmQgUHJvcGVydHlOb2Rl
TGlzdCB0byB1cGRhdGUgaXRlbVJlZkVsZW1lbnRzLgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1l
bnQuaDogQWRkZWQgZGVjbGFyYXRpb24gb2YgZ2V0SXRlbVJlZkVsZW1lbnRzKCkgbWV0aG9kLgor
ICAgICAgICAoSFRNTEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbjo6dXBkYXRlUmVmRWxlbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uOjpuYW1lZEl0ZW0pOiBSZXR1cm4gUHJvcGVydHlOb2RlTGlz
dCBvYmplY3QgaW5zdGVhZCBvZiBOb2RlTGlzdC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbjo6aGFzTmFtZWRJdGVtKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbi5oOgorICAgICAgICAoSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6Y2xlYXJDYWNoZSk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OnVwZGF0ZVByb3Bl
cnR5Q2FjaGUpOgorICAgICAgICAqIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbDoK
KyAgICAgICAgKiBodG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGw6IEFkZGVkLgorICAgICAgICAq
IHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMi0wNy0xMiAgQW5kcmVhcyBLbGluZyAgPGtsaW5n
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBFbGVtZW50QXR0cmlidXRlRGF0YSBhIHZhcmlh
YmxlLXNpemVkIG9iamVjdCB0byByZWR1Y2UgbWVtb3J5IHVzZS4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CShyZXZpc2lvbiAxMjI0NTApCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMjM5LDYgKzIzOSw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxF
UwogICAgIGRvbS9Qb3BTdGF0ZUV2ZW50LmlkbAogICAgIGRvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24uaWRsCiAgICAgZG9tL1Byb2dyZXNzRXZlbnQuaWRsCisgICAgZG9tL1Byb3BlcnR5Tm9kZUxp
c3QuaWRsCiAgICAgZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAogICAgIGRvbS9SYW5nZS5pZGwKICAg
ICBkb20vU2hhZG93Um9vdC5pZGwKQEAgLTM0NSw2ICszNDYsNyBAQCBTRVQoV2ViQ29yZV9JRExf
RklMRVMKICAgICBodG1sL0ltYWdlRGF0YS5pZGwKICAgICBodG1sL01lZGlhQ29udHJvbGxlci5p
ZGwKICAgICBodG1sL01lZGlhRXJyb3IuaWRsCisgICAgaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUu
aWRsCiAgICAgaHRtbC9SYWRpb05vZGVMaXN0LmlkbAogICAgIGh0bWwvVGV4dE1ldHJpY3MuaWRs
CiAgICAgaHRtbC9UaW1lUmFuZ2VzLmlkbApAQCAtNjM5LDYgKzY0MSw3IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBkb20vUG9zaXRpb25JdGVyYXRvci5jcHAKICAgICBkb20vUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmNwcAogICAgIGRvbS9Qcm9ncmVzc0V2ZW50LmNwcAorICAgIGRvbS9Qcm9w
ZXJ0eU5vZGVMaXN0LmNwcAogICAgIGRvbS9RdWFsaWZpZWROYW1lLmNwcAogICAgIGRvbS9SYW5n
ZS5jcHAKICAgICBkb20vUmFuZ2VFeGNlcHRpb24uY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCShyZXZpc2lvbiAxMjI0NTApCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2Nyw2ICsyNjcsNyBAQAogI2luY2x1ZGUgIkpT
UG9zaXRpb25FcnJvckNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU1Byb2Nlc3NpbmdJbnN0cnVj
dGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNQcm9ncmVzc0V2ZW50LmNwcCIKKyNpbmNsdWRlICJKU1By
b3BlcnR5Tm9kZUxpc3QuY3BwIgogI2luY2x1ZGUgIkpTUmFkaW9Ob2RlTGlzdC5jcHAiCiAjaW5j
bHVkZSAiSlNSYW5nZS5jcHAiCiAjaW5jbHVkZSAiSlNSYW5nZUV4Y2VwdGlvbi5jcHAiCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDEyMjQ1MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTI0Miw2ICsy
NDIsOCBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vUG9wU3RhdGVFdmVu
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL1Byb2dyZXNzRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2Rv
bS9Qcm9ncmVzc0V2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vUHJvcGVydHlOb2RlTGlz
dC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1JhbmdlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9k
b20vUmFuZ2VFeGNlcHRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9SZXF1ZXN0QW5pbWF0
aW9uRnJhbWVDYWxsYmFjay5pZGwgXApAQCAtMzQ4LDYgKzM1MCw3IEBAIEJJTkRJTkdfSURMUyA9
IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSW1hZ2VEYXRhLmlkbCBcCiAgICAgJChXZWJDb3JlKS9o
dG1sL01lZGlhQ29udHJvbGxlci5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9NZWRpYUVycm9y
LmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwgXAogICAg
ICQoV2ViQ29yZSkvaHRtbC9SYWRpb05vZGVMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1s
L1RleHRNZXRyaWNzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL1RpbWVSYW5nZXMuaWRsIFwK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHJldmlzaW9uIDEyMjQ1MCkKKysrIFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjUyLDYg
KzI1Miw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0QvZG9tL1BvcFN0YXRlRXZlbnQu
aWRsIFwKICAgICAkJFBXRC9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlkbCBcCiAgICAgJCRQ
V0QvZG9tL1Byb2dyZXNzRXZlbnQuaWRsIFwKKyAgICAkJFBXRC9kb20vUHJvcGVydHlOb2RlTGlz
dC5pZGwgXAogICAgICQkUFdEL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgXAogICAgICQkUFdEL2Rv
bS9SYW5nZS5pZGwgXAogICAgICQkUFdEL2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFj
ay5pZGwgXApAQCAtMzk2LDYgKzM5Nyw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0Qv
aHRtbC9JbWFnZURhdGEuaWRsIFwKICAgICAkJFBXRC9odG1sL01lZGlhQ29udHJvbGxlci5pZGwg
XAogICAgICQkUFdEL2h0bWwvTWVkaWFFcnJvci5pZGwgXAorICAgICQkUFdEL2h0bWwvTWljcm9E
YXRhSXRlbVZhbHVlLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9SYWRpb05vZGVMaXN0LmlkbCBcCiAg
ICAgJCRQV0QvaHRtbC9UZXh0TWV0cmljcy5pZGwgXAogICAgICQkUFdEL2h0bWwvVGltZVJhbmdl
cy5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxMjI0
NTApCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkp
CkBAIC00MDUsNiArNDA1LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTTWVzc2FnZUV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNNZXNzYWdlUG9ydC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZXNzYWdl
UG9ydC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWljcm9EYXRhSXRlbVZhbHVlLmNw
cCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01pY3JvRGF0YUl0ZW1WYWx1ZS5oIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNNb3VzZUV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRh
dGlvbkNhbGxiYWNrLmNwcCBcCkBAIC00NzcsNiArNDc5LDggQEAgd2ViY29yZV9idWlsdF9zb3Vy
Y2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9ncmVzc0V2ZW50LmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Byb2dyZXNzRXZlbnQuaCBcCisJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1Byb3BlcnR5Tm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTUHJvcGVydHlOb2RlTGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmFkaW9O
b2RlTGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSYWRpb05vZGVMaXN0Lmgg
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSYW5nZS5jcHAgXApAQCAtNzk1LDYgKzc5OSw3
IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvZG9tL1BvcFN0YXRlRXZlbnQu
aWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsIFwKIAkkKFdl
YkNvcmUpL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCisJJChXZWJDb3JlKS9kb20vUHJvcGVydHlO
b2RlTGlzdC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1JhbmdlLmlkbCBcCiAJJChXZWJDb3JlKS9k
b20vUmFuZ2VFeGNlcHRpb24uaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9TaGFkb3dSb290LmlkbCBc
CkBAIC05MDAsNiArOTA1LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9o
dG1sL01lZGlhRXJyb3IuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvTWVkaWFLZXlFcnJvci5pZGwg
XAogCSQoV2ViQ29yZSkvaHRtbC9NZWRpYUtleUV2ZW50LmlkbCBcCisJJChXZWJDb3JlKS9odG1s
L01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9SYWRpb05vZGVMaXN0
LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL1RleHRNZXRyaWNzLmlkbCBcCiAJJChXZWJDb3JlKS9o
dG1sL1RpbWVSYW5nZXMuaWRsIFwKQEAgLTE0ODIsNiArMTQ4OCw3IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3Rv
bS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25PYnNlcnZlckN1
c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3Vz
dG9tLmNwcCBcCkBAIC0yMDA3LDYgKzIwMTQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCiAJU291cmNlL1dlYkNv
cmUvZG9tL1Byb2dyZXNzRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUHJvZ3Jlc3NF
dmVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9RdWFsaWZpZWROYW1lLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUu
aCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oIFwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVGFy
Z2V0LnByaQkocmV2aXNpb24gMTIyNDUwKQorKysgU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQko
d29ya2luZyBjb3B5KQpAQCAtNjAzLDYgKzYwMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Q
b3NpdGlvbkl0ZXJhdG9yLmNwcCBcCiAgICAgZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAg
XAogICAgIGRvbS9Qcm9ncmVzc0V2ZW50LmNwcCBcCisgICAgZG9tL1Byb3BlcnR5Tm9kZUxpc3Qu
Y3BwIFwKICAgICBkb20vUXVhbGlmaWVkTmFtZS5jcHAgXAogICAgIGRvbS9SYW5nZS5jcHAgXAog
ICAgIGRvbS9SYW5nZUV4Y2VwdGlvbi5jcHAgXApAQCAtMTc4Niw2ICsxNzg3LDcgQEAgSEVBREVS
UyArPSBcCiAgICAgZG9tL1Bvc2l0aW9uSXRlcmF0b3IuaCBcCiAgICAgZG9tL1Byb2Nlc3NpbmdJ
bnN0cnVjdGlvbi5oIFwKICAgICBkb20vUHJvZ3Jlc3NFdmVudC5oIFwKKyAgICBkb20vUHJvcGVy
dHlOb2RlTGlzdC5oIFwKICAgICBkb20vUXVhbGlmaWVkTmFtZS5oIFwKICAgICBkb20vUmFuZ2Uu
aCBcCiAgICAgZG9tL1JlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmggXApJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQkocmV2aXNpb24gMTIyNDUwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3
b3JraW5nIGNvcHkpCkBAIC05ODgsNiArOTg4LDcgQEAKICAgICAgICAgICAgICdkb20vUG9wU3Rh
dGVFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRs
JywKICAgICAgICAgICAgICdkb20vUHJvZ3Jlc3NFdmVudC5pZGwnLAorICAgICAgICAgICAgJ2Rv
bS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1JhbmdlLmlkbCcsCiAg
ICAgICAgICAgICAnZG9tL1JhbmdlRXhjZXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnZG9tL1Jl
cXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbCcsCkBAIC0xMDk1LDYgKzEwOTYsNyBAQAog
ICAgICAgICAgICAgJ2h0bWwvSW1hZ2VEYXRhLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9NZWRp
YUNvbnRyb2xsZXIuaWRsJywKICAgICAgICAgICAgICdodG1sL01lZGlhRXJyb3IuaWRsJywKKyAg
ICAgICAgICAgICdodG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwnLAogICAgICAgICAgICAgJ2h0
bWwvTWVkaWFLZXlFcnJvci5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvTWVkaWFLZXlFdmVudC5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvUmFkaW9Ob2RlTGlzdC5pZGwnLApAQCAtMjAzMyw2ICsy
MDM1LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5j
cHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwJywK
ICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmgnLAorICAgICAg
ICAgICAgJ2JpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwJywKQEAgLTIzNDMs
NiArMjM0Niw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUNo
YW5uZWxDb25zdHJ1Y3Rvci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAnLAogICAgICAgICAgICAg
J2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwJywKICAgICAg
ICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwJywKQEAg
LTUyMzMsNiArNTIzNyw4IEBACiAgICAgICAgICAgICAnZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlv
bi5oJywKICAgICAgICAgICAgICdkb20vUHJvZ3Jlc3NFdmVudC5jcHAnLAogICAgICAgICAgICAg
J2RvbS9Qcm9ncmVzc0V2ZW50LmgnLAorICAgICAgICAgICAgJ2RvbS9Qcm9wZXJ0eU5vZGVMaXN0
LmNwcCcsCisgICAgICAgICAgICAnZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaCcsCiAgICAgICAgICAg
ICAnZG9tL1F1YWxpZmllZE5hbWUuY3BwJywKICAgICAgICAgICAgICdkb20vUmFuZ2UuY3BwJywK
ICAgICAgICAgICAgICdkb20vUmFuZ2VFeGNlcHRpb24uY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxMjI0NTApCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBj
b3B5KQpAQCAtMTEzMTAsNiArMTEzMTAsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8Rmls
ZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAiCisJCQkJPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdp
bjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAor
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNaWNy
b0RhdGFJdGVtVmFsdWUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU01ldGFkYXRhLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9u
CkBAIC0xMjk5MCw2ICsxMzA0Niw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTUHJvcGVydHlOb2RlTGlzdC5jcHAiCisJCQkJPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNQcm9wZXJ0eU5v
ZGVMaXN0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJj
ZXNcSlNSYWRpb05vZGVMaXN0LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBA
IC01Mjc0Myw2ICs1Mjg1NSw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxkb21cUHJvcGVydHlOb2RlTGlzdC5jcHAiCisJCQkJPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxQcm9wZXJ0
eU5vZGVMaXN0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGRvbVxRdWFsaWZpZWROYW1lLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC02ODE4
Niw2ICs2ODM1NCw2MiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3Bw
IgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8V2lu
MzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29s
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFz
ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJ
PFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIi
CisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YmluZGluZ3NcanNcSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uaCIKKwkJCQkJPgorCQkJCTwv
RmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpTTXV0
YXRpb25DYWxsYmFja0N1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9u
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUu
YW0JKHJldmlzaW9uIDEyMjQ1MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3Qv
R05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQyOCwxMCArNDI4LDEzIEBAIGVuZGlm
CiAKIGlmIEVOQUJMRV9NSUNST0RBVEEKIHdlYmtpdGd0a19idWlsdF9oX2FwaSArPSBcCi0JJCh0
b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGll
c0NvbGxlY3Rpb24uaAorCSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy93ZWJraXQvV2Vi
S2l0RE9NSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmggXAorCSQodG9wX2J1aWxkZGlyKS9EZXJp
dmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NUHJvcGVydHlOb2RlTGlzdC5oCiB3ZWJraXRndGtf
Z2RvbV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9N
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dl
YktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvblByaXZhdGUuaAorCURlcml2ZWRTb3VyY2Vz
L3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb25Qcml2YXRlLmggXAorCURl
cml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Qcm9wZXJ0eU5vZGVMaXN0LmNwcCBcCisJRGVy
aXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVByb3BlcnR5Tm9kZUxpc3RQcml2YXRlLmgKIGVu
ZGlmCiAKIGlmIEVOQUJMRV9XRUJfVElNSU5HCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFs
dWVDdXN0b20uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJp
Z2h0IChjKSAyMDEyIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQg
bm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vcgorICogb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAq
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJKU01pY3Jv
RGF0YUl0ZW1WYWx1ZS5oIgorCisjaW5jbHVkZSAiSlNOb2RlLmgiCisjaW5jbHVkZSA8cnVudGlt
ZS9KU0FycmF5Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgTWljcm9EYXRhSXRlbVZhbHVlKiBpdGVtVmFsdWUpCit7CisgICAgaWYgKCFp
dGVtVmFsdWUpCisgICAgICAgIHJldHVybiBqc051bGwoKTsKKyAgICBpZiAoaXRlbVZhbHVlLT5p
c05vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpdGVtVmFs
dWUtPmdldE5vZGUoKSk7CisgICAgcmV0dXJuIGpzU3RyaW5nKGV4ZWMsIGl0ZW1WYWx1ZS0+Z2V0
U3RyaW5nKCkpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3Vz
dG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiBN
b3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgor
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIEVOQUJMRShNSUNST0RBVEEpCisKKyNpbmNsdWRlICJWOE1pY3JvRGF0YUl0ZW1WYWx1
ZS5oIgorCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhOb2RlLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoTWljcm9EYXRh
SXRlbVZhbHVlKiBpdGVtVmFsdWUsIHY4OjpJc29sYXRlKiBpc29sYXRlKQoreworICAgIGlmICgh
aXRlbVZhbHVlKQorICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKKyAgICBpZiAoaXRlbVZhbHVl
LT5pc05vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRvVjgoaXRlbVZhbHVlLT5nZXROb2RlKCkpOwor
ICAgIHJldHVybiB2OFN0cmluZyhpdGVtVmFsdWUtPmdldFN0cmluZygpKTsKK30KKworfQorCisj
ZW5kaWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5h
bWljTm9kZUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWlj
Tm9kZUxpc3QuY3BwCShyZXZpc2lvbiAxMjI0NTApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRHlu
YW1pY05vZGVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsMTMgQEAgRHluYW1p
Y1N1YnRyZWVOb2RlTGlzdDo6fkR5bmFtaWNTdWJ0cmVlTgogewogfQogCitOb2RlKiBEeW5hbWlj
Tm9kZUxpc3Q6OnJvb3ROb2RlKCkgY29uc3QKK3sKKyAgICBpZiAoKGlzUm9vdGVkQXREb2N1bWVu
dCgpIHx8IG93bmVyTm9kZUhhc0l0ZW1SZWZBdHRyaWJ1dGUoKSkgJiYgbV9vd25lck5vZGUtPmlu
RG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIG1fb3duZXJOb2RlLT5kb2N1bWVudCgpOworICAg
IHJldHVybiBtX293bmVyTm9kZS5nZXQoKTsKK30KKwogdW5zaWduZWQgRHluYW1pY1N1YnRyZWVO
b2RlTGlzdDo6bGVuZ3RoKCkgY29uc3QKIHsKICAgICBpZiAoaXNMZW5ndGhDYWNoZVZhbGlkKCkp
CkBAIC0xMjQsNCArMTMxLDE0IEBAIE5vZGUqIER5bmFtaWNOb2RlTGlzdDo6aXRlbVdpdGhOYW1l
KGNvbnMKICAgICByZXR1cm4gMDsKIH0KIAorYm9vbCBEeW5hbWljTm9kZUxpc3Q6Om93bmVyTm9k
ZUhhc0l0ZW1SZWZBdHRyaWJ1dGUoKSBjb25zdAoreworI2lmIEVOQUJMRShNSUNST0RBVEEpCisg
ICAgaWYgKGNhY2hlZFJvb3RUeXBlKCkgPT0gUm9vdGVkQXREb2N1bWVudElmT3duZXJIYXNJdGVt
cmVmQXR0cikKKyAgICAgICAgcmV0dXJuIHRvRWxlbWVudChvd25lck5vZGUoKSktPmZhc3RIYXNB
dHRyaWJ1dGUoSFRNTE5hbWVzOjppdGVtcmVmQXR0cik7CisjZW5kaWYKKworICAgIHJldHVybiBm
YWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0R5bmFtaWNOb2RlTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9E
eW5hbWljTm9kZUxpc3QuaAkocmV2aXNpb24gMTIyNDUwKQorKysgU291cmNlL1dlYkNvcmUvZG9t
L0R5bmFtaWNOb2RlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBAIHB1Ymxp
YzoKICAgICBlbnVtIFJvb3RUeXBlIHsKICAgICAgICAgUm9vdGVkQXROb2RlLAogICAgICAgICBS
b290ZWRBdERvY3VtZW50LAorICAgICAgICBSb290ZWRBdERvY3VtZW50SWZPd25lckhhc0l0ZW1y
ZWZBdHRyLAogICAgIH07CiAKICAgICBlbnVtIEludmFsaWRhdGlvblR5cGUgewpAQCAtNDcsMTQg
KzQ4LDE2IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNl
KFJvb3RUeXBlIHJvb3RUeXBlLCBJbnZhbGlkYXRpb25UeXBlIGludmFsaWRhdGlvblR5cGUpCi0g
ICAgICAgIDogbV9yb290ZWRBdERvY3VtZW50KHJvb3RUeXBlID09IFJvb3RlZEF0RG9jdW1lbnQp
CisgICAgICAgIDogbV9jYWNoZWRSb290VHlwZShyb290VHlwZSkKKyAgICAgICAgLCBtX2lzUm9v
dGVkQXREb2N1bWVudChyb290VHlwZSA9PSBSb290ZWRBdERvY3VtZW50KQogICAgICAgICAsIG1f
c2hvdWxkSW52YWxpZGF0ZU9uQXR0cmlidXRlQ2hhbmdlKGludmFsaWRhdGlvblR5cGUgPT0gQWx3
YXlzSW52YWxpZGF0ZSkKICAgICB7CiAgICAgICAgIGNsZWFyQ2FjaGUoKTsKICAgICB9CiAKIHB1
YmxpYzoKLSAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNSb290ZWRBdERvY3VtZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9yb290ZWRBdERvY3VtZW50OyB9CisgICAgQUxXQVlTX0lOTElORSBib29sIGlz
Um9vdGVkQXREb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faXNSb290ZWRBdERvY3VtZW50OyB9
CisgICAgQUxXQVlTX0lOTElORSBSb290VHlwZSBjYWNoZWRSb290VHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fY2FjaGVkUm9vdFR5cGU7IH0KICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgc2hvdWxkSW52
YWxpZGF0ZU9uQXR0cmlidXRlQ2hhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRJbnZhbGlk
YXRlT25BdHRyaWJ1dGVDaGFuZ2U7IH0KIAogcHJvdGVjdGVkOgpAQCAtNzYsMTEgKzc5LDE1IEBA
IHByb3RlY3RlZDoKICAgICAgICAgbV9pc0l0ZW1DYWNoZVZhbGlkID0gdHJ1ZTsKICAgICB9CiAK
KyAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkKCkgY29u
c3QgeyByZXR1cm4gbV9pc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQ7IH0KKyAgICBBTFdBWVNf
SU5MSU5FIHZvaWQgc2V0SXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCgpIGNvbnN0IHttX2lzSXRl
bVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCA9IHRydWU7IH0KKwogICAgIHZvaWQgY2xlYXJDYWNoZSgp
IGNvbnN0CiAgICAgewogICAgICAgICBtX2NhY2hlZEl0ZW0gPSAwOwogICAgICAgICBtX2lzTGVu
Z3RoQ2FjaGVWYWxpZCA9IGZhbHNlOwogICAgICAgICBtX2lzSXRlbUNhY2hlVmFsaWQgPSBmYWxz
ZTsKKyAgICAgICAgbV9pc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQgPSBmYWxzZTsKICAgICB9
CiAKIHByaXZhdGU6CkBAIC04OSw5ICs5NiwxMSBAQCBwcml2YXRlOgogICAgIG11dGFibGUgdW5z
aWduZWQgbV9jYWNoZWRJdGVtT2Zmc2V0OwogICAgIG11dGFibGUgdW5zaWduZWQgbV9pc0xlbmd0
aENhY2hlVmFsaWQgOiAxOwogICAgIG11dGFibGUgdW5zaWduZWQgbV9pc0l0ZW1DYWNoZVZhbGlk
IDogMTsKKyAgICBtdXRhYmxlIHVuc2lnbmVkIG1faXNJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlk
IDogMTsKIAogICAgIC8vIEZyb20gRHluYW1pY05vZGVMaXN0Ci0gICAgY29uc3QgdW5zaWduZWQg
bV9yb290ZWRBdERvY3VtZW50IDogMTsKKyAgICBjb25zdCBSb290VHlwZSBtX2NhY2hlZFJvb3RU
eXBlOworICAgIGNvbnN0IHVuc2lnbmVkIG1faXNSb290ZWRBdERvY3VtZW50IDogMTsKICAgICBj
b25zdCB1bnNpZ25lZCBtX3Nob3VsZEludmFsaWRhdGVPbkF0dHJpYnV0ZUNoYW5nZSA6IDE7CiB9
OwogCkBAIC0xMDUsNiArMTE0LDcgQEAgcHVibGljOgogICAgICAgICBSYWRpb05vZGVMaXN0VHlw
ZSwKICAgICAgICAgTGFiZWxzTm9kZUxpc3RUeXBlLAogICAgICAgICBNaWNyb0RhdGFJdGVtTGlz
dFR5cGUsCisgICAgICAgIFByb3BlcnR5Tm9kZUxpc3RUeXBlLAogICAgIH07CiAgICAgRHluYW1p
Y05vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4gb3duZXJOb2RlLCBSb290VHlwZSByb290VHlwZSwg
SW52YWxpZGF0aW9uVHlwZSBpbnZhbGlkYXRpb25UeXBlKQogICAgICAgICA6IER5bmFtaWNOb2Rl
TGlzdENhY2hlQmFzZShyb290VHlwZSwgaW52YWxpZGF0aW9uVHlwZSkKQEAgLTEyMiwxNyArMTMy
LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGVDYWNoZSgpIHsgY2xlYXJDYWNoZSgp
OyB9CiAKIHByb3RlY3RlZDoKLSAgICBOb2RlKiByb290Tm9kZSgpIGNvbnN0Ci0gICAgewotICAg
ICAgICBpZiAoaXNSb290ZWRBdERvY3VtZW50KCkgJiYgbV9vd25lck5vZGUtPmluRG9jdW1lbnQo
KSkKLSAgICAgICAgICAgIHJldHVybiBtX293bmVyTm9kZS0+ZG9jdW1lbnQoKTsKLSAgICAgICAg
cmV0dXJuIG1fb3duZXJOb2RlLmdldCgpOwotICAgIH0KKyAgICBOb2RlKiByb290Tm9kZSgpIGNv
bnN0OwogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fb3duZXJOb2Rl
LT5kb2N1bWVudCgpOyB9CiAgICAgdmlydHVhbCBib29sIG5vZGVNYXRjaGVzKEVsZW1lbnQqKSBj
b25zdCA9IDA7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzRHluYW1pY05vZGVMaXN0
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgb3duZXJOb2RlSGFz
SXRlbVJlZkF0dHJpYnV0ZSgpIGNvbnN0OwogICAgIFJlZlB0cjxOb2RlPiBtX293bmVyTm9kZTsK
IH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHJldmlzaW9uIDEyMjQ1MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYgKzExOCw3IEBACiAK
ICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogI2luY2x1ZGUgIkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5oIgorI2luY2x1ZGUgIlByb3BlcnR5Tm9kZUxpc3QuaCIKICNlbmRpZgogCiB1c2luZyBuYW1l
c3BhY2Ugc3RkOwpAQCAtOTc2LDYgKzk3Nyw3IEBAIHZvaWQgTm9kZTo6aW52YWxpZGF0ZU5vZGVM
aXN0c0NhY2hlQWZ0ZXIKICAgICAgICAgJiYgYXR0ck5hbWUgIT0gaXRlbXNjb3BlQXR0cgogICAg
ICAgICAmJiBhdHRyTmFtZSAhPSBpdGVtcHJvcEF0dHIKICAgICAgICAgJiYgYXR0ck5hbWUgIT0g
aXRlbXR5cGVBdHRyCisgICAgICAgICYmIGF0dHJOYW1lICE9IGl0ZW1yZWZBdHRyCiAjZW5kaWYK
ICAgICAgICAgJiYgYXR0ck5hbWUgIT0gbmFtZUF0dHIKICAgICAgICAgJiYgYXR0ck5hbWUgIT0g
Zm9yQXR0cgpAQCAtMjc3OCw2ICsyNzgwLDExIEBAIHZvaWQgTm9kZTo6c2V0SXRlbVR5cGUoY29u
c3QgU3RyaW5nJiB2YWwKICAgICBlbnN1cmVSYXJlRGF0YSgpLT5zZXRJdGVtVHlwZSh2YWx1ZSk7
CiB9CiAKKworUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PiBOb2RlOjpwcm9wZXJ0eU5vZGVM
aXN0KGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS0+
ZW5zdXJlTm9kZUxpc3RzKHRoaXMpLT5hZGRDYWNoZVdpdGhOYW1lPFByb3BlcnR5Tm9kZUxpc3Q+
KHRoaXMsIER5bmFtaWNOb2RlTGlzdDo6UHJvcGVydHlOb2RlTGlzdFR5cGUsIG5hbWUpOworfQog
I2VuZGlmCiAKIHZvaWQgTm9kZVJhcmVEYXRhOjpjcmVhdGVOb2RlTGlzdHMoTm9kZSogbm9kZSkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaAkocmV2aXNpb24gMTIyNDUwKQorKysgU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsNyBAQCBjbGFzcyBUcmVlU2NvcGU7
CiAKICNpZiBFTkFCTEUoTUlDUk9EQVRBKQogY2xhc3MgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
OworY2xhc3MgUHJvcGVydHlOb2RlTGlzdDsKICNlbmRpZgogCiB0eXBlZGVmIGludCBFeGNlcHRp
b25Db2RlOwpAQCAtNjMwLDYgKzYzMSw3IEBAIHB1YmxpYzoKICAgICBET01TZXR0YWJsZVRva2Vu
TGlzdCogaXRlbVByb3AoKTsKICAgICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVJlZigpOwog
ICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KiBpdGVtVHlwZSgpOworICAgIFBhc3NSZWZQdHI8UHJv
cGVydHlOb2RlTGlzdD4gcHJvcGVydHlOb2RlTGlzdChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
UHJvcGVydHlOb2RlTGlzdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
UHJvcGVydHlOb2RlTGlzdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTE1IEBACisvKgor
ICogQ29weXJpZ2h0IChjKSAyMDEyIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgor
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9M
REVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRl
ICJQcm9wZXJ0eU5vZGVMaXN0LmgiCisKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5o
IgorI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgor
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK1Byb3BlcnR5
Tm9kZUxpc3Q6OlByb3BlcnR5Tm9kZUxpc3QoTm9kZSogcm9vdE5vZGUsIGNvbnN0IFN0cmluZyYg
bmFtZSkKKyAgICA6IER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qocm9vdE5vZGUsIFJvb3RlZEF0RG9j
dW1lbnRJZk93bmVySGFzSXRlbXJlZkF0dHIpCisgICAgLCBtX25hbWUobmFtZSkKK3sKKyAgICBk
b2N1bWVudCgpLT5kb2N1bWVudCgpLT5yZWdpc3RlckR5bmFtaWNTdWJ0cmVlTm9kZUxpc3QodGhp
cyk7Cit9CisKK1Byb3BlcnR5Tm9kZUxpc3Q6On5Qcm9wZXJ0eU5vZGVMaXN0KCkKK3sKKyAgICBv
d25lck5vZGUoKS0+bm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlV2l0aE5hbWUodGhpcywgRHluYW1p
Y05vZGVMaXN0OjpQcm9wZXJ0eU5vZGVMaXN0VHlwZSwgbV9uYW1lKTsKKyAgICBkb2N1bWVudCgp
LT5kb2N1bWVudCgpLT51bnJlZ2lzdGVyRHluYW1pY1N1YnRyZWVOb2RlTGlzdCh0aGlzKTsKK30K
KworYm9vbCBBTFdBWVNfSU5MSU5FIFByb3BlcnR5Tm9kZUxpc3Q6OmVsZW1lbnREZWZpbmVzRGlm
ZmVyZW50SXRlbShjb25zdCBIVE1MRWxlbWVudCogZWxlbWVudCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSAmJiBlbGVtZW50ICE9
IG93bmVyTm9kZSgpOworfQorCitib29sIFByb3BlcnR5Tm9kZUxpc3Q6OmVsZW1lbnRJc1Byb3Bl
cnR5T2ZSZWZFbGVtZW50KGNvbnN0IE5vZGUqIHRlc3RFbGVtZW50LCBjb25zdCBOb2RlICpyZWZF
bGVtZW50KSBjb25zdAoreworICAgIGZvciAoY29uc3QgQ29udGFpbmVyTm9kZSogbm9kZSA9IHRl
c3RFbGVtZW50LT5wYXJlbnROb2RlKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCkp
IHsKKyAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkgeworICAgICAgICAgICAgaWYg
KGVsZW1lbnREZWZpbmVzRGlmZmVyZW50SXRlbSh0b0hUTUxFbGVtZW50KG5vZGUpKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBpZiAobm9kZSA9
PSByZWZFbGVtZW50KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVy
biBmYWxzZTsKK30KKwordm9pZCBQcm9wZXJ0eU5vZGVMaXN0Ojp1cGRhdGVJdGVtUmVmRWxlbWVu
dHMoKSBjb25zdAoreworICAgIGlmIChpc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgdG9IVE1MRWxlbWVudChvd25lck5vZGUoKSktPmdldEl0ZW1S
ZWZFbGVtZW50cyhtX2l0ZW1SZWZFbGVtZW50c0NhY2hlKTsKKyAgICBzZXRJdGVtUmVmRWxlbWVu
dHNDYWNoZVZhbGlkKCk7Cit9CisKK2Jvb2wgUHJvcGVydHlOb2RlTGlzdDo6bm9kZU1hdGNoZXMo
RWxlbWVudCogdGVzdEVsZW1lbnQpIGNvbnN0Cit7CisgICAgaWYgKCF0ZXN0RWxlbWVudC0+aXNI
VE1MRWxlbWVudCgpIHx8ICF0ZXN0RWxlbWVudC0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtcHJvcEF0
dHIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB1cGRhdGVJdGVtUmVmRWxlbWVudHMo
KTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2l0ZW1SZWZFbGVtZW50c0NhY2hl
LnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmICh0ZXN0RWxlbWVudCA9PSBtX2l0ZW1SZWZFbGVt
ZW50c0NhY2hlW2ldIHx8IGVsZW1lbnRJc1Byb3BlcnR5T2ZSZWZFbGVtZW50KHRlc3RFbGVtZW50
LCBtX2l0ZW1SZWZFbGVtZW50c0NhY2hlW2ldKSkgeworICAgICAgICAgICAgaWYgKHRlc3RFbGVt
ZW50LT5pdGVtUHJvcCgpLT50b2tlbnMoKS5jb250YWlucyhtX25hbWUpKQorICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitQcm9wZXJ0eVZhbHVlQXJyYXkgUHJvcGVydHlOb2RlTGlzdDo6Z2V0VmFsdWVzKCkgY29u
c3QKK3sKKyAgICBQcm9wZXJ0eVZhbHVlQXJyYXkgcHJvcGVydHlWYWx1ZTsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoKCk7ICsraSkKKyAgICAgICAgcHJvcGVydHlWYWx1ZS5h
cHBlbmQodG9IVE1MRWxlbWVudChpdGVtKGkpKS0+aXRlbVZhbHVlKCkpOworCisgICAgcmV0dXJu
IHByb3BlcnR5VmFsdWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShNSUNST0RBVEEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2Rl
TGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0
LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5o
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEy
IE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICog
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQcm9wZXJ0eU5v
ZGVMaXN0X2gKKyNkZWZpbmUgUHJvcGVydHlOb2RlTGlzdF9oCisKKyNpZiBFTkFCTEUoTUlDUk9E
QVRBKQorI2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5oIgorI2luY2x1ZGUgIk1pY3JvRGF0YUl0
ZW1WYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Cit0eXBlZGVmIFZlY3RvcjxSZWZQdHI8TWljcm9EYXRhSXRlbVZhbHVlPiA+IFByb3BlcnR5VmFs
dWVBcnJheTsKKworY2xhc3MgUHJvcGVydHlOb2RlTGlzdCA6IHB1YmxpYyBEeW5hbWljU3VidHJl
ZU5vZGVMaXN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVM
aXN0PiBjcmVhdGUoTm9kZSogcm9vdE5vZGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJvcGVydHlOb2RlTGlzdChyb290Tm9kZSwgbmFt
ZSkpOworICAgIH0KKworICAgIH5Qcm9wZXJ0eU5vZGVMaXN0KCk7CisKKyAgICBQcm9wZXJ0eVZh
bHVlQXJyYXkgZ2V0VmFsdWVzKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgUHJv
cGVydHlOb2RlTGlzdChOb2RlKiByb290Tm9kZSwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKworICAg
IHZpcnR1YWwgYm9vbCBub2RlTWF0Y2hlcyhFbGVtZW50KikgY29uc3QgT1ZFUlJJREU7CisKKyAg
ICBib29sIEFMV0FZU19JTkxJTkUgZWxlbWVudERlZmluZXNEaWZmZXJlbnRJdGVtKGNvbnN0IEhU
TUxFbGVtZW50KikgY29uc3Q7CisgICAgYm9vbCBlbGVtZW50SXNQcm9wZXJ0eU9mUmVmRWxlbWVu
dChjb25zdCBOb2RlKiwgY29uc3QgTm9kZSopIGNvbnN0OworICAgIHZvaWQgdXBkYXRlSXRlbVJl
ZkVsZW1lbnRzKCkgY29uc3Q7CisKKyAgICBTdHJpbmcgbV9uYW1lOworICAgIG11dGFibGUgVmVj
dG9yPEhUTUxFbGVtZW50Kj4gbV9pdGVtUmVmRWxlbWVudHNDYWNoZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCisKKyNlbmRpZiAv
LyBTdGF0aWNOb2RlTGlzdF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2Rl
TGlzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxp
c3QuaWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxp
c3QuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChj
KSAyMDEyIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
LAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgor
ICogb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUg
eworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUlDUk9EQVRBLAorICAg
ICAgICBJbmRleGVkR2V0dGVyLAorICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAorICAgIF0g
UHJvcGVydHlOb2RlTGlzdCA6IE5vZGVMaXN0IHsKKworICAgICAgICBzZXF1ZW5jZTxNaWNyb0Rh
dGFJdGVtVmFsdWU+IGdldFZhbHVlcygpOworICAgICAgICBOb2RlIGl0ZW0oaW4gdW5zaWduZWQg
bG9uZyBpbmRleCk7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bGVuZ3RoOworICAgIH07Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAko
cmV2aXNpb24gMTIyNDUwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVQb29sLmgiCiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0
YXRpb25TY29wZS5oIgorI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZl
bnRMaXN0ZW5lci5oIgpAQCAtOTkzLDYgKzk5NCwzOSBAQCBQYXNzUmVmUHRyPEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbj4gSFRNCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbio+KGVuc3VyZUNhY2hlZEhUTUxDb2xsZWN0aW9uKEl0ZW1Qcm9wZXJ0aWVz
KS5nZXQoKSk7CiB9CisKK3ZvaWQgSFRNTEVsZW1lbnQ6OmdldEl0ZW1SZWZFbGVtZW50cyhWZWN0
b3I8SFRNTEVsZW1lbnQqPiYgaXRlbVJlZkVsZW1lbnRzKQoreworICAgIGlmICghZmFzdEhhc0F0
dHJpYnV0ZShpdGVtc2NvcGVBdHRyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFmYXN0
SGFzQXR0cmlidXRlKGl0ZW1yZWZBdHRyKSkgeworICAgICAgICBpdGVtUmVmRWxlbWVudHMuYXBw
ZW5kKHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgRE9NU2V0dGFibGVUb2tl
bkxpc3QqIGl0ZW1SZWZzID0gaXRlbVJlZigpOworICAgIFJlZlB0cjxET01TZXR0YWJsZVRva2Vu
TGlzdD4gcHJvY2Vzc2VkSXRlbVJlZiA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsK
KyAgICBOb2RlKiByb290Tm9kZSA9IHRyZWVTY29wZSgpLT5yb290Tm9kZSgpOworCisgICAgZm9y
IChOb2RlKiBjdXJyZW50ID0gcm9vdE5vZGUtPmZpcnN0Q2hpbGQoKTsgY3VycmVudDsgY3VycmVu
dCA9IGN1cnJlbnQtPnRyYXZlcnNlTmV4dE5vZGUocm9vdE5vZGUpKSB7CisgICAgICAgIGlmICgh
Y3VycmVudC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IEhUTUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudChjdXJyZW50KTsKKworICAgICAg
ICBpZiAoZWxlbWVudCA9PSB0aGlzKSB7CisgICAgICAgICAgICBpdGVtUmVmRWxlbWVudHMuYXBw
ZW5kKGVsZW1lbnQpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAg
ICBjb25zdCBBdG9taWNTdHJpbmcmIGlkID0gZWxlbWVudC0+Z2V0SWRBdHRyaWJ1dGUoKTsKKyAg
ICAgICAgaWYgKCFwcm9jZXNzZWRJdGVtUmVmLT50b2tlbnMoKS5jb250YWlucyhpZCkgJiYgaXRl
bVJlZnMtPnRva2VucygpLmNvbnRhaW5zKGlkKSkgeworICAgICAgICAgICAgcHJvY2Vzc2VkSXRl
bVJlZi0+c2V0VmFsdWUoaWQpOworICAgICAgICAgICAgaWYgKCFlbGVtZW50LT5pc0Rlc2NlbmRh
bnRPZih0aGlzKSkKKyAgICAgICAgICAgICAgICBpdGVtUmVmRWxlbWVudHMuYXBwZW5kKGVsZW1l
bnQpOworICAgICAgICB9CisgICAgfQorfQogI2VuZGlmCiAKIHZvaWQgSFRNTEVsZW1lbnQ6OmFk
ZEhUTUxMZW5ndGhUb1N0eWxlKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RWxlbWVudC5oCShyZXZpc2lvbiAxMjI0NTApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0SXRlbVZhbHVlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNz
UmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gaXRlbVZhbHVlKCkgY29uc3Q7CiAgICAgUGFzc1Jl
ZlB0cjxIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24+IHByb3BlcnRpZXMoKTsKKyAgICB2b2lkIGdl
dEl0ZW1SZWZFbGVtZW50cyhWZWN0b3I8SFRNTEVsZW1lbnQqPiYpOwogI2VuZGlmCiAKICNpZm5k
ZWYgTkRFQlVHCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGll
c0NvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAxMjI0NTApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5
LDcgQEAKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIk5vZGUuaCIKLSNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5oIgorI2luY2x1ZGUg
IlByb3BlcnR5Tm9kZUxpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NCw2ICs1
NCw3IEBAIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6SFRNTFByb3BlcnRpZXMKICAgICA6IEhU
TUxDb2xsZWN0aW9uV2l0aEFycmF5U3RvcmFnZShpdGVtTm9kZSwgSXRlbVByb3BlcnRpZXMpCiAg
ICAgLCBtX2hhc1Byb3BlcnR5TmFtZUNhY2hlKGZhbHNlKQogICAgICwgbV9oYXNJdGVtUmVmRWxl
bWVudHMoZmFsc2UpCisgICAgLCBtX2hhc05hbWVkSXRlbShmYWxzZSkKIHsKIH0KIApAQCAtNjYs
NDAgKzY3LDkgQEAgdm9pZCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OnVwZGF0ZVJlZgogICAg
IGlmIChtX2hhc0l0ZW1SZWZFbGVtZW50cykKICAgICAgICAgcmV0dXJuOwogCi0gICAgSFRNTEVs
ZW1lbnQqIGJhc2VFbGVtZW50ID0gdG9IVE1MRWxlbWVudChiYXNlKCkpOwotCiAgICAgbV9pdGVt
UmVmRWxlbWVudHMuY2xlYXIoKTsKICAgICBtX2hhc0l0ZW1SZWZFbGVtZW50cyA9IHRydWU7Ci0K
LSAgICBpZiAoIWJhc2VFbGVtZW50LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1zY29wZUF0dHIpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWJhc2VFbGVtZW50LT5mYXN0SGFzQXR0cmlidXRl
KGl0ZW1yZWZBdHRyKSkgewotICAgICAgICBtX2l0ZW1SZWZFbGVtZW50cy5hcHBlbmQoYmFzZUVs
ZW1lbnQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgRE9NU2V0dGFibGVUb2tlbkxp
c3QqIGl0ZW1SZWYgPSBiYXNlRWxlbWVudC0+aXRlbVJlZigpOwotICAgIFJlZlB0cjxET01TZXR0
YWJsZVRva2VuTGlzdD4gcHJvY2Vzc2VkSXRlbVJlZiA9IERPTVNldHRhYmxlVG9rZW5MaXN0Ojpj
cmVhdGUoKTsKLSAgICBOb2RlKiByb290Tm9kZSA9IGJhc2VFbGVtZW50LT50cmVlU2NvcGUoKS0+
cm9vdE5vZGUoKTsKLQotICAgIGZvciAoTm9kZSogY3VycmVudCA9IHJvb3ROb2RlLT5maXJzdENo
aWxkKCk7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT50cmF2ZXJzZU5leHROb2RlKHJvb3RO
b2RlKSkgewotICAgICAgICBpZiAoIWN1cnJlbnQtPmlzSFRNTEVsZW1lbnQoKSkKLSAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1l
bnQoY3VycmVudCk7Ci0KLSAgICAgICAgaWYgKGVsZW1lbnQgPT0gYmFzZUVsZW1lbnQpIHsKLSAg
ICAgICAgICAgIG1faXRlbVJlZkVsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKLSAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBpZCA9
IGVsZW1lbnQtPmdldElkQXR0cmlidXRlKCk7Ci0gICAgICAgIGlmICghcHJvY2Vzc2VkSXRlbVJl
Zi0+dG9rZW5zKCkuY29udGFpbnMoaWQpICYmIGl0ZW1SZWYtPnRva2VucygpLmNvbnRhaW5zKGlk
KSkgewotICAgICAgICAgICAgcHJvY2Vzc2VkSXRlbVJlZi0+c2V0VmFsdWUoaWQpOwotICAgICAg
ICAgICAgaWYgKCFlbGVtZW50LT5pc0Rlc2NlbmRhbnRPZihiYXNlRWxlbWVudCkpCi0gICAgICAg
ICAgICAgICAgbV9pdGVtUmVmRWxlbWVudHMuYXBwZW5kKGVsZW1lbnQpOwotICAgICAgICB9Ci0g
ICAgfQorICAgIHRvSFRNTEVsZW1lbnQoYmFzZSgpKS0+Z2V0SXRlbVJlZkVsZW1lbnRzKG1faXRl
bVJlZkVsZW1lbnRzKTsKIH0KIAogc3RhdGljIE5vZGUqIG5leHROb2RlV2l0aFByb3BlcnR5KE5v
ZGUqIGJhc2UsIE5vZGUqIG5vZGUpCkBAIC0xOTAsMjYgKzE2MCwyNyBAQCBQYXNzUmVmUHRyPERP
TVN0cmluZ0xpc3Q+IEhUTUxQcm9wZXJ0aWVzCiAgICAgcmV0dXJuIG1fcHJvcGVydHlOYW1lczsK
IH0KIAotUGFzc1JlZlB0cjxOb2RlTGlzdD4gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpuYW1l
ZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAorUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVM
aXN0PiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5h
bWUpIGNvbnN0CiB7Ci0gICAgdXBkYXRlTmFtZUNhY2hlKCk7Ci0KLSAgICBWZWN0b3I8UmVmUHRy
PE5vZGU+ID4gbmFtZWRJdGVtczsKLSAgICBWZWN0b3I8RWxlbWVudCo+KiBwcm9wZXJ0eVJlc3Vs
dHMgPSBtX3Byb3BlcnR5Q2FjaGUuZ2V0KEF0b21pY1N0cmluZyhuYW1lKS5pbXBsKCkpOwotICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IHByb3BlcnR5UmVzdWx0cyAmJiBpIDwgcHJvcGVydHlSZXN1
bHRzLT5zaXplKCk7ICsraSkKLSAgICAgICAgbmFtZWRJdGVtcy5hcHBlbmQocHJvcGVydHlSZXN1
bHRzLT5hdChpKSk7Ci0KLSAgICAvLyBGSVhNRTogSFRNTDUgc3BlY2lmaWVzIHRoYXQgdGhpcyBz
aG91bGQgcmV0dXJuIFByb3BlcnR5Tm9kZUxpc3QuCi0gICAgcmV0dXJuIG5hbWVkSXRlbXMuaXNF
bXB0eSgpID8gMCA6IFN0YXRpY05vZGVMaXN0OjphZG9wdChuYW1lZEl0ZW1zKTsKKyAgICByZXR1
cm4gYmFzZSgpLT5wcm9wZXJ0eU5vZGVMaXN0KG5hbWUpOwogfQogCiBib29sIEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbjo6aGFzTmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29u
c3QKIHsKLSAgICB1cGRhdGVOYW1lQ2FjaGUoKTsKKyAgICBpbnZhbGlkYXRlQ2FjaGVJZk5lZWRl
ZCgpOworICAgIGlmIChtX2hhc05hbWVkSXRlbSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAg
ICB1cGRhdGVSZWZFbGVtZW50cygpOwogCi0gICAgaWYgKFZlY3RvcjxFbGVtZW50Kj4qIHByb3Bl
cnR5Q2FjaGUgPSBtX3Byb3BlcnR5Q2FjaGUuZ2V0KG5hbWUuaW1wbCgpKSkgewotICAgICAgICBp
ZiAoIXByb3BlcnR5Q2FjaGUtPmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2l0ZW1SZWZFbGVtZW50cy5zaXplKCk7ICsr
aSkgeworICAgICAgICBIVE1MRWxlbWVudCogcmVmRWxlbWVudCA9IG1faXRlbVJlZkVsZW1lbnRz
W2ldOworICAgICAgICBmb3IgKEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaXRlbUFmdGVyKHJlZkVs
ZW1lbnQsIDApOyBlbGVtZW50OyBlbGVtZW50ID0gaXRlbUFmdGVyKHJlZkVsZW1lbnQsIGVsZW1l
bnQpKSB7CisgICAgICAgICAgICBpZiAoZWxlbWVudC0+aXRlbVByb3AoKS0+dG9rZW5zKCkuY29u
dGFpbnMobmFtZSkpIHsKKyAgICAgICAgICAgICAgICBtX2hhc05hbWVkSXRlbSA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAg
ICB9CiAKICAgICByZXR1cm4gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDEyMjQ1MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM5LDYgKzM5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRE9NU3RyaW5nTGlz
dDsKK2NsYXNzIFByb3BlcnR5Tm9kZUxpc3Q7CiAKIGNsYXNzIEhUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbiA6IHB1YmxpYyBIVE1MQ29sbGVjdGlvbldpdGhBcnJheVN0b3JhZ2UgewogcHVibGljOgpA
QCAtNDgsMTYgKzQ5LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVJlZkVsZW1lbnRzKCkg
Y29uc3Q7CiAKICAgICBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IG5hbWVzKCkgY29uc3Q7Ci0g
ICAgdmlydHVhbCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBuYW1lZEl0ZW0oY29uc3QgU3RyaW5nJikg
Y29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+
IG5hbWVkSXRlbShjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgaGFzTmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogCiAg
ICAgdm9pZCBjbGVhckNhY2hlKCkgY29uc3QKICAgICB7CiAgICAgICAgIG1faXRlbVJlZkVsZW1l
bnRzLmNsZWFyKCk7CiAgICAgICAgIG1fcHJvcGVydHlOYW1lcy5jbGVhcigpOwotICAgICAgICBt
X3Byb3BlcnR5Q2FjaGUuY2xlYXIoKTsKICAgICAgICAgbV9oYXNQcm9wZXJ0eU5hbWVDYWNoZSA9
IGZhbHNlOwogICAgICAgICBtX2hhc0l0ZW1SZWZFbGVtZW50cyA9IGZhbHNlOworICAgICAgICBt
X2hhc05hbWVkSXRlbSA9IGZhbHNlOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTgwLDE5ICs4MSwx
NSBAQCBwcml2YXRlOgogCiAgICAgICAgIGlmICghbV9wcm9wZXJ0eU5hbWVzLT5jb250YWlucyhw
cm9wZXJ0eU5hbWUpKQogICAgICAgICAgICAgbV9wcm9wZXJ0eU5hbWVzLT5hcHBlbmQocHJvcGVy
dHlOYW1lKTsKLQotICAgICAgICBWZWN0b3I8RWxlbWVudCo+KiBwcm9wZXJ0eVJlc3VsdHMgPSBt
X3Byb3BlcnR5Q2FjaGUuZ2V0KHByb3BlcnR5TmFtZS5pbXBsKCkpOwotICAgICAgICBpZiAoIXBy
b3BlcnR5UmVzdWx0cyB8fCAhcHJvcGVydHlSZXN1bHRzLT5jb250YWlucyhlbGVtZW50KSkKLSAg
ICAgICAgICAgIGFwcGVuZChtX3Byb3BlcnR5Q2FjaGUsIHByb3BlcnR5TmFtZSwgZWxlbWVudCk7
CiAgICAgfQogCiAgICAgbXV0YWJsZSBWZWN0b3I8SFRNTEVsZW1lbnQqPiBtX2l0ZW1SZWZFbGVt
ZW50czsKICAgICBtdXRhYmxlIFJlZlB0cjxET01TdHJpbmdMaXN0PiBtX3Byb3BlcnR5TmFtZXM7
Ci0gICAgbXV0YWJsZSBOb2RlQ2FjaGVNYXAgbV9wcm9wZXJ0eUNhY2hlOwogCiAgICAgLy8gRklY
TUU6IE1vdmUgdGhlc2UgdmFyaWFibGVzIHRvIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZSBmb3Ig
YmV0dGVyIGJpdCBwYWNraW5nLgogICAgIG11dGFibGUgYm9vbCBtX2hhc1Byb3BlcnR5TmFtZUNh
Y2hlIDogMTsKICAgICBtdXRhYmxlIGJvb2wgbV9oYXNJdGVtUmVmRWxlbWVudHMgOiAxOworICAg
IG11dGFibGUgYm9vbCBtX2hhc05hbWVkSXRlbSA6IDE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24uaWRsCShyZXZpc2lvbiAxMjI0NTApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQwLDYg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICBOb2RlIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRl
eCk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ0xpc3QgbmFtZXM7Ci0K
LSAgICAgICAgLy8gRklYTUU6IEhUTUw1IHNwZWNpZmllcyB0aGF0IHRoaXMgc2hvdWxkIHJldHVy
biBQcm9wZXJ0eU5vZGVMaXN0LgotICAgICAgICBOb2RlTGlzdCBuYW1lZEl0ZW0oaW4gRE9NU3Ry
aW5nIG5hbWUpOworICAgICAgICBQcm9wZXJ0eU5vZGVMaXN0IG5hbWVkSXRlbShpbiBET01TdHJp
bmcgbmFtZSk7CiAgICAgfTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRh
SXRlbVZhbHVlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0
YUl0ZW1WYWx1ZS5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3Jv
RGF0YUl0ZW1WYWx1ZS5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91
dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIg
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitt
b2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUlDUk9E
QVRBLAorICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAorICAgICAgICBPbWl0Q29uc3RydWN0b3IK
KyAgICBdIE1pY3JvRGF0YUl0ZW1WYWx1ZSB7CisgICAgfTsKK30KKwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMTIyNDUwKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNjksNiArMzY5LDcgQEAgbW9kdWxl
IHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBEb2N1bWVudENvbnN0cnVjdG9yIERvY3VtZW50
OwogICAgICAgICBhdHRyaWJ1dGUgTm9kZUNvbnN0cnVjdG9yIE5vZGU7CiAgICAgICAgIGF0dHJp
YnV0ZSBOb2RlTGlzdENvbnN0cnVjdG9yIE5vZGVMaXN0OworICAgICAgICBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPU1JQ1JPREFUQV0gUHJvcGVydHlOb2RlTGlzdENvbnN0cnVjdG9yIFByb3BlcnR5
Tm9kZUxpc3Q7CiAgICAgICAgIGF0dHJpYnV0ZSBOYW1lZE5vZGVNYXBDb25zdHJ1Y3RvciBOYW1l
ZE5vZGVNYXA7CiAgICAgICAgIGF0dHJpYnV0ZSBDaGFyYWN0ZXJEYXRhQ29uc3RydWN0b3IgQ2hh
cmFjdGVyRGF0YTsKICAgICAgICAgYXR0cmlidXRlIEF0dHJDb25zdHJ1Y3RvciBBdHRyOwpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTIyNDUwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDctMTIgIEFya28gU2FoYSAgPGFya29AbW90
b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogSW1wbGVtZW50IFByb3BlcnR5Tm9kZUxp
c3QgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODAyNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRlZCB0ZXN0IGNhc2VzIGZvciBQcm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZSBhbmQg
UHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QuCisgICAgICAgIFNwZWM6IGh0dHA6
Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL2Nv
bW1vbi1kb20taW50ZXJmYWNlcy5odG1sI3Byb3BlcnR5bm9kZWxpc3QKKworICAgICAgICAqIGZh
c3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1y
ZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
TWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5l
ZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJy
YXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2
YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3Jv
RGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LXRlc3QtYWRkLXJlbW92ZS1l
bGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQuaHRtbDogQWRkZWQuCisK
IDIwMTItMDctMTIgIEZsb3JpbiBNYWxpdGEgIDxmbWFsaXRhQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBJbmNvcnJlY3QgaGFuZGxpbmcgb2YgY2hhaW5lZCBwZW5kaW5nIHJlc291cmNlcyBpbiBT
VkdVc2VFbGVtZW50CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRp
dGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5
bm9kZWxpc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitQcm9wZXJ0aWVzQ29sbGVjdGlvbi5u
YW1lZEl0ZW0obmFtZSkgbXVzdCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdC4KKworUEFTUyBlbGVt
ZW50LnByb3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKSBpbnN0YW5jZW9mIFByb3BlcnR5Tm9kZUxp
c3QgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3RhbmNlb2YgUHJv
cGVydHlOb2RlTGlzdCBpcyB0cnVlCisKK1Byb3BlcnR5Tm9kZUxpc3QgaW50ZXJmYWNlIGluaGVy
aXRlZCBmcm9tIHRoZSBOb2RlTGlzdCBpbnRlcmZhY2UuCitQQVNTIGVsZW1lbnQucHJvcGVydGll
cy5uYW1lZEl0ZW0oJ2ZvbycpIGluc3RhbmNlb2YgTm9kZUxpc3QgaXMgdHJ1ZQorUEFTUyBlbGVt
ZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3RhbmNlb2YgTm9kZUxpc3QgaXMgdHJ1ZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVs
aXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25h
bWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5v
ZGVsaXN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29t
bW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+UHJvcGVydGllc0NvbGxlY3Rp
b24ubmFtZWRJdGVtKG5hbWUpIG11c3QgcmV0dXJuIFByb3BlcnR5Tm9kZUxpc3QuPC9wPgorPGRp
diBpdGVtc2NvcGUgaWQ9Im1pY3JvZGF0YWl0ZW0iPgorPGRpdiBpdGVtcHJvcD0iZm9vIj48L2Rp
dj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGVsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWljcm9kYXRhaXRlbSIpOworCitzaG91bGRC
ZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpIGluc3RhbmNlb2YgUHJv
cGVydHlOb2RlTGlzdCIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbJ2Zvbydd
IGluc3RhbmNlb2YgUHJvcGVydHlOb2RlTGlzdCIpOworCitkZWJ1ZygiPGJyPlByb3BlcnR5Tm9k
ZUxpc3QgaW50ZXJmYWNlIGluaGVyaXRlZCBmcm9tIHRoZSBOb2RlTGlzdCBpbnRlcmZhY2UuIikK
K3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykgaW5zdGFu
Y2VvZiBOb2RlTGlzdCIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbJ2Zvbydd
IGluc3RhbmNlb2YgTm9kZUxpc3QiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1n
ZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxl
bWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1m
cm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFs
dWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACitUaGlzIHRlc3QgZW5z
dXJlIHRoYXQgUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBhcnJheSByZXR1cm5zIGFuIGFy
cmF5IHdob3NlIHZhbHVzZSBhcmUgb2J0YWluZWQgZnJvbSB0aGUgaXRlbVZhbHVlIERPTSBwcm9w
ZXJ0eSBvZiBlYWNoIG9mIHRoZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSB0aGUgb2JqZWN0LCBp
biB0cmVlIG9yZGVyLgorCitwcm9wZXJ0eSBpbmRleCAwLCB0YWcgRElWCitQQVNTIHZhbHVlc0Fy
cmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAx
LCB0YWcgU1BBTgorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0
ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMiwgdGFnIE1FVEEKK1BBU1MgdmFsdWVzQXJyYXlbaV0g
aXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDMsIHRhZyBB
VURJTworUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1
ZQorcHJvcGVydHkgaW5kZXggNCwgdGFnIEVNQkVECitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHBy
b3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCA1LCB0YWcgSUZSQU1F
CitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitw
cm9wZXJ0eSBpbmRleCA2LCB0YWcgSU1HCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5
Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCA3LCB0YWcgU09VUkNFCitQQVNT
IHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0
eSBpbmRleCA4LCB0YWcgVklERU8KK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2Rl
TGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDksIHRhZyBUUkFDSworUEFTUyB2YWx1
ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5k
ZXggMTAsIHRhZyBBCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0u
aXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxMSwgdGFnIEFSRUEKK1BBU1MgdmFsdWVzQXJyYXlb
aV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDEyLCB0
YWcgTElOSworUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1W
YWx1ZQorcHJvcGVydHkgaW5kZXggMTMsIHRhZyBQCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHBy
b3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxNCwgdGFnIFNQQU4K
K1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK1BB
U1MgdmFsdWVzQXJyYXkubGVuZ3RoIGlzIDE1CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgICAgIAorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFp
bmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy1h
cnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50Lmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlu
b2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9m
LWVhY2gtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9k
YXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdCBl
bnN1cmUgdGhhdCBQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIGFycmF5IHJldHVybnMgYW4g
YXJyYXkgd2hvc2UgdmFsdXNlIGFyZSBvYnRhaW5lZCBmcm9tIHRoZSBpdGVtVmFsdWUgRE9NIHBy
b3BlcnR5IG9mIGVhY2ggb2YgdGhlIGVsZW1lbnRzIHJlcHJlc2VudGVkIGJ5IHRoZSBvYmplY3Qs
IGluIHRyZWUgb3JkZXIuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8ZGl2PgorPGRp
diBpZD0iaWQxIj4KKzxkaXYgaXRlbXByb3A9ImZvbyI+Cis8c3BhbiBpdGVtcHJvcD0iZm9vIiBp
dGVtc2NvcGU+PC9zcGFuPgorPC9kaXY+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtcmVmPSJpZDEiIGlk
PSJpdGVtIj4KKzxtZXRhIGl0ZW1wcm9wPSJmb28iIGNvbnRlbnQ9InRlc3QiIC8+Cis8YXVkaW8g
aXRlbXByb3A9ImZvbyIgc3JjPSJhdWRpby5tcDMiPjwvYXVkaW8+Cis8ZW1iZWQgaXRlbXByb3A9
ImZvbyIgc3JjPSJ0ZXN0LnN3ZiIgLz4KKzxpZnJhbWUgaXRlbXByb3A9ImZvbyIgc3JjPSJ0ZXN0
Lmh0bWwiPjwvaWZyYW1lPgorPGltZyBpdGVtcHJvcD0iZm9vIiBzcmM9InRlc3QuanBnIiAvPgor
PGF1ZGlvIGNvbnRyb2xzPSJjb250cm9scyI+Cis8c291cmNlIGl0ZW1wcm9wPSJmb28iIHNyYz0i
c29uZy5tcDMiIHR5cGU9ImF1ZGlvL21wMyIgLz4KKzwvYXVkaW8+Cis8dmlkZW8gaXRlbXByb3A9
ImZvbyIgc3JjPSJ2aWRlby5tcDQiPjwvdmlkZW8+Cis8dmlkZW8gc3JjPSJ2aWRlby5tcDQiPgor
PHRyYWNrIGl0ZW1wcm9wPSJmb28iIHNyYz0ic3VidGl0bGVzX2VuLnZ0dCI+Cis8L3ZpZGVvPgor
PGEgaXRlbXByb3A9ImZvbyIgc3JjPSJsaW5rLmh0bWwiPjwvYT4KKzxtYXA+Cis8YXJlYSBpdGVt
cHJvcD0iZm9vIiBocmVmPSJ0ZXN0Lmh0bWwiIC8+Cis8L21hcD4KKzxsaW5rIGl0ZW1wcm9wPSJm
b28iIGhyZWY9InRlc3QuY3NzIiAvPgorPHAgaXRlbXByb3A9ImZvbyI+Cis8c3BhbiBpdGVtcHJv
cD0iZm9vIiBpdGVtc2NvcGU+Cis8YSBpdGVtcHJvcD0iZm9vIiBzcmM9InRlc3RfYW5jaG9yLmh0
bWwiPjwvYT4KKzwvc3Bhbj4KKzwvcD4KKzwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgordmFyIGl0
ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaXRlbSIpOwordmFyIHByb3BlcnR5Tm9kZUxp
c3QgPSBpdGVtLnByb3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKTsKK3ZhciB2YWx1ZXNBcnJheSA9
IHByb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVzKCk7Citmb3IgKHZhciBpID0gMDsgaSA8IHByb3Bl
cnR5Tm9kZUxpc3QubGVuZ3RoOyBpKyspIHsKKyAgICBkZWJ1ZygncHJvcGVydHkgaW5kZXggJyAr
IGkgKyAnLCB0YWcgJyArIHByb3BlcnR5Tm9kZUxpc3RbaV0udGFnTmFtZSk7CisgICAgc2hvdWxk
QmUoInZhbHVlc0FycmF5W2ldIiwgInByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlIik7Cit9
CitzaG91bGRCZSgidmFsdWVzQXJyYXkubGVuZ3RoIiwgJzE1Jyk7Cis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9w
ZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMt
dGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9N
aWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAorUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBt
ZXRob2QgdGVzdC4KKworUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QgbXVzdCBy
ZXR1cm4gYW4gYXJyYXkuCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2Zvbycp
LmdldFZhbHVlcygpIGluc3RhbmNlb2YgQXJyYXkgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3Bl
cnRpZXNbJ2ZvbyddLmdldFZhbHVlcygpIGluc3RhbmNlb2YgQXJyYXkgaXMgdHJ1ZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3Bl
cnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0Lmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+UHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMo
KSBtZXRob2QgdGVzdC48L3A+Cis8ZGl2IGl0ZW1zY29wZSBpZD0iaXRlbSI+Cis8ZGl2IGl0ZW1w
cm9wPSJmb28iPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3Jp
cHQ+Cit2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpdGVtJyk7CitkZWJ1
ZygiUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QgbXVzdCByZXR1cm4gYW4gYXJy
YXkuIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2Zvbycp
LmdldFZhbHVlcygpIGluc3RhbmNlb2YgQXJyYXkiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5w
cm9wZXJ0aWVzWydmb28nXS5nZXRWYWx1ZXMoKSBpbnN0YW5jZW9mIEFycmF5Iik7CisKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWlj
cm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0
eW5vZGVsaXN0LXRlc3QtYWRkLXJlbW92ZS1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LXRl
c3QtYWRkLXJlbW92ZS1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwzNSBAQAorTWljcm9kYXRhIHByb3BlcnRpZXMgY29sbGVjdGlvbiBtdXN0IHVwZGF0ZSBvbiBh
ZGRpbmcgb3IgcmVtb3ZpbmcgcHJvcGVydHkuCisKK1BBU1MgcHJvcGVydHlOb2RlTGlzdC5sZW5n
dGggPT0gJzEnIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxk
cmVuWzBdIGlzIHRydWUKK0FkZCBhIHByb3BlcnR5IHRvIHRoZSBpdGVtLgorQ3JlYXRlZCBlbGVt
ZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBmb28KK1BB
U1MgcHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9k
ZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJlblswXSBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxp
c3RbMV0gPT0gaXRlbS5jaGlsZHJlblsxXSBpcyB0cnVlCitSZW1vdmUgaXRlbXByb3AgYXR0cmli
dXRlIG9mIHRoZSBmaXJzdCBjaGlsZC4KK1BBU1MgcHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0g
MSBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJlblsxXSBp
cyB0cnVlCitBZGQgaXRlbXByb3AgYXR0cmlidXRlIHRvIHRoZSBmaXJzdCBjaGlsZC4KK1BBU1Mg
cHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxp
c3RbMF0gPT0gaXRlbS5jaGlsZHJlblswXSBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3Rb
MV0gPT0gaXRlbS5jaGlsZHJlblsxXSBpcyB0cnVlCitBZGQgaXRlbXJlZiBhdHRyaWJ1dGUuCitQ
QVNTIHByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDMgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5v
ZGVMaXN0WzBdID09IHRlc3RFbGVtZW50IGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFsx
XSA9PSBpdGVtLmNoaWxkcmVuWzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFsyXSA9
PSBpdGVtLmNoaWxkcmVuWzFdIGlzIHRydWUKK1JlbW92ZSBpdGVtcmVmIGF0dHJpYnV0ZS4KK1BB
U1MgcHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9k
ZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJlblswXSBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxp
c3RbMV0gPT0gaXRlbS5jaGlsZHJlblsxXSBpcyB0cnVlCitBZGQgaXRlbXJlZiBhdHRyaWJ1dGUu
CitQQVNTIHByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDMgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0
eU5vZGVMaXN0WzBdID09IHRlc3RFbGVtZW50IGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlz
dFsxXSA9PSBpdGVtLmNoaWxkcmVuWzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFsy
XSA9PSBpdGVtLmNoaWxkcmVuWzFdIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNy
b0RhdGEvcHJvcGVydHlub2RlbGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxlbWVudC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0
LXRlc3QtYWRkLXJlbW92ZS1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxl
bWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1v
bi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPk1pY3JvZGF0YSBwcm9wZXJ0aWVz
IGNvbGxlY3Rpb24gbXVzdCB1cGRhdGUgb24gYWRkaW5nIG9yIHJlbW92aW5nIHByb3BlcnR5Ljwv
cD4KKzxkaXYgaXRlbXByb3A9ImZvbyIgaWQ9InRlc3QiPgorPC9kaXY+Cis8ZGl2IGl0ZW1zY29w
ZSBpZD0ibWljcm9kYXRhLWl0ZW0iPgorPHAgaXRlbXByb3A9ImZvbyI+PC9wPgorPC9kaXY+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgaXRlbSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdtaWNyb2RhdGEtaXRlbScpOwordmFyIHByb3BlcnR5Tm9kZUxpc3QgPSBp
dGVtLnByb3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKTsKK3ZhciB0ZXN0RWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2Rl
TGlzdC5sZW5ndGggPT0gJzEnIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMF0g
PT0gaXRlbS5jaGlsZHJlblswXSIpOworCitkZWJ1ZygnQWRkIGEgcHJvcGVydHkgdG8gdGhlIGl0
ZW0uJyk7CitpdGVtLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVtcHJvcDog
J2Zvbyd9KSk7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDIiKTsK
K3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVuWzBdIik7
CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblsxXSIp
OworCitkZWJ1ZygnUmVtb3ZlIGl0ZW1wcm9wIGF0dHJpYnV0ZSBvZiB0aGUgZmlyc3QgY2hpbGQu
Jyk7CitpdGVtLmNoaWxkcmVuWzBdLnJlbW92ZUF0dHJpYnV0ZSgnaXRlbXByb3AnKTsKK3Nob3Vs
ZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMSIpOworc2hvdWxkQmVUcnVlKCJw
cm9wZXJ0eU5vZGVMaXN0WzBdID09IGl0ZW0uY2hpbGRyZW5bMV0iKTsKKworZGVidWcoJ0FkZCBp
dGVtcHJvcCBhdHRyaWJ1dGUgdG8gdGhlIGZpcnN0IGNoaWxkLicpOworaXRlbS5jaGlsZHJlblsw
XS5zZXRBdHRyaWJ1dGUoJ2l0ZW1wcm9wJywgJ2ZvbycpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0
eU5vZGVMaXN0Lmxlbmd0aCA9PSAyIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3Rb
MF0gPT0gaXRlbS5jaGlsZHJlblswXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0
WzFdID09IGl0ZW0uY2hpbGRyZW5bMV0iKTsKKworZGVidWcoJ0FkZCBpdGVtcmVmIGF0dHJpYnV0
ZS4nKTsKK2l0ZW0uc2V0QXR0cmlidXRlKCdpdGVtcmVmJywgJ3Rlc3QnKTsKK3Nob3VsZEJlVHJ1
ZSgicHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMyIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0
eU5vZGVMaXN0WzBdID09IHRlc3RFbGVtZW50Iik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9k
ZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblswXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5v
ZGVMaXN0WzJdID09IGl0ZW0uY2hpbGRyZW5bMV0iKTsKKworZGVidWcoJ1JlbW92ZSBpdGVtcmVm
IGF0dHJpYnV0ZS4nKTsKK2l0ZW0ucmVtb3ZlQXR0cmlidXRlKCdpdGVtcmVmJyk7CitzaG91bGRC
ZVRydWUoInByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDIiKTsKK3Nob3VsZEJlVHJ1ZSgicHJv
cGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVuWzBdIik7CitzaG91bGRCZVRydWUoInBy
b3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblsxXSIpOworCitkZWJ1ZygnQWRkIGl0
ZW1yZWYgYXR0cmlidXRlLicpOworaXRlbS5zZXRBdHRyaWJ1dGUoJ2l0ZW1yZWYnLCAndGVzdCcp
Oworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAzIik7CitzaG91bGRC
ZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gdGVzdEVsZW1lbnQiKTsKK3Nob3VsZEJlVHJ1
ZSgicHJvcGVydHlOb2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVuWzBdIik7CitzaG91bGRCZVRy
dWUoInByb3BlcnR5Tm9kZUxpc3RbMl0gPT0gaXRlbS5jaGlsZHJlblsxXSIpOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>
<flag name="commit-queue"
          id="160526"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152265</attachid>
            <date>2012-07-13 08:22:11 -0700</date>
            <delta_ts>2012-07-16 13:33:20 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-80269-20120713.diff</filename>
            <type>text/plain</type>
            <size>69570</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMjU3OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNCBAQAorMjAxMi0wNy0xMyAgQXJrbyBT
YWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgTWljcm9kYXRhOiBJbXBsZW1lbnQg
UHJvcGVydHlOb2RlTGlzdCBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MDI2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIFByb3BlcnR5Tm9kZUxpc3QgaW50
ZXJmYWNlLiBDdXJyZW50bHkgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLm5hbWVkSXRlbShuYW1l
KQorICAgICAgICByZXR1cm5zIE5vZGVMaXN0IG9iamVjdC4gTWFkZSBjaGFuZ2VzIHNvIHRoYXQg
aXQgd2lsbCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdCBvYmplY3QuCisKKyAgICAgICAgSW1wbGVt
ZW50ZWQgcHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QuIEl0IHJldHVybnMgYW4g
YXJyYXkgb2YgdmFyaW91cyB2YWx1ZXMuIEl0cworICAgICAgICB2YWx1ZXMgYXJlIG9idGFpbmVk
IGZyb20gdGhlICJpdGVtVmFsdWUiIERPTSBwcm9wZXJ0eSBvZiBlYWNoIG9mIHRoZSBlbGVtZW50
cyByZXByZXNlbnRlZCBieQorICAgICAgICB0aGUgb2JqZWN0LCBpbiB0cmVlIG9yZGVyLgorCisg
ICAgICAgIFNwZWM6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50
LXdvcmsvbXVsdGlwYWdlL2NvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI3Byb3BlcnR5bm9kZWxp
c3QKKworICAgICAgICBUZXN0czogZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5z
LXByb3BlcnR5bm9kZWxpc3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0
ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWlj
cm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVs
ZW1lbnQuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVc2VKU0MuY21ha2U6CisgICAgICAgICogVXNl
VjguY21ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZp
bGUuYW06CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKTogQWRkZWQgdG9K
UygpIGN1c3RvbSBtZXRob2QuIFJldHVybnMgTm9kZSBpZiBpdGVtVmFsdWUgaXMgbm9kZSBlbHNl
IHJldHVybnMgU3RyaW5nLgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1pY3JvRGF0
YUl0ZW1WYWx1ZUN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjp0b1Y4KTogQWRkZWQgdG9WOCBjdXN0b20gY29kZS4KKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkSW52YWxpZGF0ZU5vZGVMaXN0
Rm9yVHlwZSk6IEludmFsaWRhdGUgTm9kZUxpc3RDYWNoZSBvbiBpdGVtcmVmIGF0dHJpYnV0ZSBj
aGFuZ2UuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0R5bmFtaWNO
b2RlTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3Q6OnJvb3ROb2Rl
KTogUmV0dXJuIGRvY3VtZW50IGlmIG93bmVyIG5vZGUgaGFzIGl0ZW1yZWYgYXR0cmlidXRlIHNw
ZWNpZmllZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RHluYW1pY05v
ZGVMaXN0Ojpvd25lck5vZGVIYXNJdGVtUmVmQXR0cmlidXRlKTogUmV0dXJucyB0cnVlIGlmIG93
bmVyIG5vZGUgaGFzIGl0ZW1yZWYgYXR0cmlidXRlCisgICAgICAgIHNwZWNpZmllZCB3aXRoIHJv
b3QgdHlwZSBOb2RlTGlzdFJvb3RlZEF0RG9jdW1lbnRJZk93bmVySGFzSXRlbXJlZkF0dHIuCisg
ICAgICAgICogZG9tL0R5bmFtaWNOb2RlTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6RHluYW1p
Y05vZGVMaXN0Q2FjaGVCYXNlOjpEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UpOgorICAgICAgICAo
V2ViQ29yZTo6RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjppc1Jvb3RlZEF0RG9jdW1lbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpyb290VHlwZSk6IFJl
dHVybnMgY2FjaGVkIHJvb3QgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkR5bmFtaWNOb2RlTGlz
dENhY2hlQmFzZTo6aXNJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkKToKKyAgICAgICAgKFdlYkNv
cmU6OkR5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6c2V0SXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxp
ZCk6CisgICAgICAgIChEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpjbGVhckNhY2hlKTogSW52YWxpZGF0ZSBpc0l0
ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQuCisgICAgICAgIChEeW5hbWljTm9kZUxpc3QpOgorICAg
ICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnByb3BlcnR5Tm9k
ZUxpc3QpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKE5vZGUpOgorICAgICAgICAqIGRvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6OlBy
b3BlcnR5Tm9kZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6flBy
b3BlcnR5Tm9kZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6ZWxl
bWVudElzUHJvcGVydHlPZlJlZkVsZW1lbnQpOiBDaGVja3MgaWYgdGhlIHRlc3RFbGVtZW50IGlz
IGEgcHJvcGVydHkgb2YKKyAgICAgICAgTWljcm9kYXRhIGl0ZW0uCisgICAgICAgIChXZWJDb3Jl
OjpQcm9wZXJ0eU5vZGVMaXN0Ojp1cGRhdGVJdGVtUmVmRWxlbWVudHMpOiBVcGRhdGVzIEl0ZW1S
ZWZFbGVtZW50c0NhY2hlIGlmIHRoZSBjYWNoZSBpcworICAgICAgICBpbnZhbGlkIGFuZCBzZXRz
IGl0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQuCisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eU5v
ZGVMaXN0Ojpub2RlTWF0Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eU5vZGVMaXN0
OjpnZXRWYWx1ZXMpOiBSZXR1cm5zIFByb3BlcnR5VmFsdWVBcnJheSB3aG9zZSB2YWx1ZXMgYXJl
IG9idGFpbmVkIGZyb20gdGhlCisgICAgICAgIGl0ZW1WYWx1ZSBET00gcHJvcGVydHkgb2YgZWFj
aCBvZiB0aGUgZWxlbWVudHMgcmVwcmVzZW50ZWQgYnkgdGhlIG9iamVjdCwgaW4gdHJlZSBvcmRl
ci4KKyAgICAgICAgKiBkb20vUHJvcGVydHlOb2RlTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoUHJvcGVydHlOb2RlTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9wZXJ0eU5vZGVMaXN0OjpjcmVhdGUpOgorICAgICAgICAqIGRvbS9Qcm9wZXJ0eU5vZGVMaXN0
LmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRWxlbWVudDo6cHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50OjpnZXRJdGVtUmVmRWxlbWVudHMpOiBSZXR1cm5z
IHRoZSBJdGVtUmVmRWxlbWVudHMgbGlzdCBvZiBnaXZlbiBlbGVtZW50LiBBZGRlZCB0aGlzCisg
ICAgICAgIG1ldGhvZCB0byBzaGFyZSB0aGUgY29kZSBiZXR3ZWVuIEhUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbiBhbmQgUHJvcGVydHlOb2RlTGlzdCB0byB1cGRhdGUgaXRlbVJlZkVsZW1lbnRzLgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxFbGVtZW50KToKKyAg
ICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OnVwZGF0ZVJlZkVs
ZW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6bmFt
ZWRJdGVtKTogUmV0dXJuIFByb3BlcnR5Tm9kZUxpc3Qgb2JqZWN0IGluc3RlYWQgb2YgTm9kZUxp
c3QuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Omhhc05hbWVk
SXRlbSk6IFJldHVybiB0cnVlIGFzIHNvb24gYXMgaXQgZmluZHMgYW4gaXRlbSB3aXRoIGdpdmVu
CisgICAgICAgIG5hbWUgaW4gdGhlIHByb3BlcnRpZXMgY29sbGVjdGlvbi4KKyAgICAgICAgKiBo
dG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uOjpjbGVhckNhY2hlKTogUmVtb3ZlZCBtX2hhc0l0ZW1SZWZFbGVt
ZW50cyBtZW1iZXIgdmFyaWFibGUsIG5vdworICAgICAgICBEeW5hbWljTm9kZUxpc3RDYWNoZUJh
c2UgaGFzIGlzSXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZC4gQWxzbyBhZGRlZCBtX2hhc05hbWVk
SXRlbSBtZW1iZXIgdmFyaWFibGUKKyAgICAgICAgdG8gY2hlY2sgaWYgbmFtZWRJdGVtIGNhY2hl
IHZhbGlkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjp1cGRh
dGVQcm9wZXJ0eUNhY2hlKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5pZGw6CisgICAgICAgICogaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTItMDctMTMgIFBhdmVsIEZlbGRtYW4g
IDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWxpZ24g
c2NvcGUgZmlsdGVycwpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDEyMjU3NCkK
KysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMzks
NiArMjM5LDcgQEAgU0VUKFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgZG9tL1BvcFN0YXRlRXZlbnQu
aWRsCiAgICAgZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwKICAgICBkb20vUHJvZ3Jlc3NF
dmVudC5pZGwKKyAgICBkb20vUHJvcGVydHlOb2RlTGlzdC5pZGwKICAgICBkb20vUmFuZ2VFeGNl
cHRpb24uaWRsCiAgICAgZG9tL1JhbmdlLmlkbAogICAgIGRvbS9TaGFkb3dSb290LmlkbApAQCAt
MzQ1LDYgKzM0Niw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGh0bWwvSW1hZ2VEYXRh
LmlkbAogICAgIGh0bWwvTWVkaWFDb250cm9sbGVyLmlkbAogICAgIGh0bWwvTWVkaWFFcnJvci5p
ZGwKKyAgICBodG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwKICAgICBodG1sL1JhZGlvTm9kZUxp
c3QuaWRsCiAgICAgaHRtbC9UZXh0TWV0cmljcy5pZGwKICAgICBodG1sL1RpbWVSYW5nZXMuaWRs
CkBAIC02MzksNiArNjQxLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9Qb3NpdGlv
bkl0ZXJhdG9yLmNwcAogICAgIGRvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCiAgICAgZG9t
L1Byb2dyZXNzRXZlbnQuY3BwCisgICAgZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwCiAgICAgZG9t
L1F1YWxpZmllZE5hbWUuY3BwCiAgICAgZG9tL1JhbmdlLmNwcAogICAgIGRvbS9SYW5nZUV4Y2Vw
dGlvbi5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHJldmlzaW9uIDEyMjU3
NCkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjY3LDYgKzI2Nyw3IEBACiAjaW5jbHVkZSAiSlNQb3NpdGlvbkVycm9yQ2FsbGJhY2suY3Bw
IgogI2luY2x1ZGUgIkpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCIKICNpbmNsdWRlICJKU1By
b2dyZXNzRXZlbnQuY3BwIgorI2luY2x1ZGUgIkpTUHJvcGVydHlOb2RlTGlzdC5jcHAiCiAjaW5j
bHVkZSAiSlNSYWRpb05vZGVMaXN0LmNwcCIKICNpbmNsdWRlICJKU1JhbmdlLmNwcCIKICNpbmNs
dWRlICJKU1JhbmdlRXhjZXB0aW9uLmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQkocmV2aXNpb24gMTIyNTc0KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQkod29ya2luZyBjb3B5KQpAQCAtMjQyLDYgKzI0Miw4IEBAIEJJTkRJTkdfSURMUyA9IFwK
ICAgICAkKFdlYkNvcmUpL2RvbS9Qb3BTdGF0ZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9k
b20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vUHJvZ3Jl
c3NFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL1Byb2dyZXNzRXZlbnQuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9k
b20vUmFuZ2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbCBcCkBA
IC0zNDgsNiArMzUwLDcgQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvaHRtbC9J
bWFnZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvTWVkaWFDb250cm9sbGVyLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9odG1sL01lZGlhRXJyb3IuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0
bWwvTWljcm9EYXRhSXRlbVZhbHVlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL1JhZGlvTm9k
ZUxpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvVGV4dE1ldHJpY3MuaWRsIFwKICAgICAk
KFdlYkNvcmUpL2h0bWwvVGltZVJhbmdlcy5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLnByaQkocmV2aXNpb24gMTIyNTc0KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0yNTIsNiArMjUyLDcgQEAgSURMX0JJTkRJTkdTICs9
IFwKICAgICAkJFBXRC9kb20vUG9wU3RhdGVFdmVudC5pZGwgXAogICAgICQkUFdEL2RvbS9Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsIFwKICAgICAkJFBXRC9kb20vUHJvZ3Jlc3NFdmVudC5pZGwg
XAorICAgICQkUFdEL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbCBcCiAgICAgJCRQV0QvZG9tL1Jh
bmdlRXhjZXB0aW9uLmlkbCBcCiAgICAgJCRQV0QvZG9tL1JhbmdlLmlkbCBcCiAgICAgJCRQV0Qv
ZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbCBcCkBAIC0zOTYsNiArMzk3LDcg
QEAgSURMX0JJTkRJTkdTICs9IFwKICAgICAkJFBXRC9odG1sL0ltYWdlRGF0YS5pZGwgXAogICAg
ICQkUFdEL2h0bWwvTWVkaWFDb250cm9sbGVyLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9NZWRpYUVy
cm9yLmlkbCBcCisgICAgJCRQV0QvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsIFwKICAgICAk
JFBXRC9odG1sL1JhZGlvTm9kZUxpc3QuaWRsIFwKICAgICAkJFBXRC9odG1sL1RleHRNZXRyaWNz
LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9UaW1lUmFuZ2VzLmlkbCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0JKHJldmlzaW9uIDEyMjU3NCkKKysrIFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQwNSw2ICs0MDUsOCBAQCB3ZWJj
b3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNZXNzYWdl
RXZlbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3NhZ2VQb3J0LmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3NhZ2VQb3J0LmggXAorCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNNaWNyb0RhdGFJdGVtVmFsdWUuY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTWljcm9EYXRhSXRlbVZhbHVlLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNN
b3VzZUV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uQ2FsbGJhY2suY3BwIFwKQEAgLTQ3
Nyw2ICs0NzksOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1Byb2dyZXNzRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJv
Z3Jlc3NFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJvcGVydHlOb2RlTGlz
dC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9wZXJ0eU5vZGVMaXN0LmggXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSYWRpb05vZGVMaXN0LmNwcCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1JhZGlvTm9kZUxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU1JhbmdlLmNwcCBcCkBAIC03OTUsNiArNzk5LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBc
CiAJJChXZWJDb3JlKS9kb20vUG9wU3RhdGVFdmVudC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1By
b2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1Byb2dyZXNzRXZlbnQu
aWRsIFwKKwkkKFdlYkNvcmUpL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbCBcCiAJJChXZWJDb3Jl
KS9kb20vUmFuZ2UuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgXAog
CSQoV2ViQ29yZSkvZG9tL1NoYWRvd1Jvb3QuaWRsIFwKQEAgLTkwMCw2ICs5MDUsNyBAQCBkb21f
YmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2h0bWwvTWVkaWFFcnJvci5pZGwgXAogCSQo
V2ViQ29yZSkvaHRtbC9NZWRpYUtleUVycm9yLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL01lZGlh
S2V5RXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmlkbCBc
CiAJJChXZWJDb3JlKS9odG1sL1JhZGlvTm9kZUxpc3QuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwv
VGV4dE1ldHJpY3MuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvVGltZVJhbmdlcy5pZGwgXApAQCAt
MTQ4Miw2ICsxNDg4LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmggXAorCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIFwKQEAgLTIwMDcsNiArMjAx
NCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Byb2Nlc3Np
bmdJbnN0cnVjdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vUHJvZ3Jlc3NFdmVudC5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9ncmVzc0V2ZW50LmggXAorCVNvdXJjZS9XZWJDb3Jl
L2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5
Tm9kZUxpc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2VCb3VuZGFyeVBvaW50LmggXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxMjI1NzQp
CisrKyBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0yMDAsNiAr
MjAwLDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5l
bENvbnN0cnVjdG9yLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VQ
b3J0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VFdmVu
dEN1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNaWNyb0RhdGFJdGVt
VmFsdWVDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25D
YWxsYmFja0N1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVk
Tm9kZU1hcEN1c3RvbS5jcHAgXApAQCAtMzMyLDYgKzMzMyw3IEBAIHY4IHsKICAgICAgICAgYmlu
ZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMv
SlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQ
b3J0Q3VzdG9tLmggXAorICAgICAgICBiaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1
c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20u
Y3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBc
CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBcCkBAIC02MDMs
NiArNjA1LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwIFwK
ICAgICBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcCBcCiAgICAgZG9tL1Byb2dyZXNzRXZl
bnQuY3BwIFwKKyAgICBkb20vUHJvcGVydHlOb2RlTGlzdC5jcHAgXAogICAgIGRvbS9RdWFsaWZp
ZWROYW1lLmNwcCBcCiAgICAgZG9tL1JhbmdlLmNwcCBcCiAgICAgZG9tL1JhbmdlRXhjZXB0aW9u
LmNwcCBcCkBAIC0xNzg5LDYgKzE3OTIsNyBAQCBIRUFERVJTICs9IFwKICAgICBkb20vUG9zaXRp
b25JdGVyYXRvci5oIFwKICAgICBkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggXAogICAgIGRv
bS9Qcm9ncmVzc0V2ZW50LmggXAorICAgIGRvbS9Qcm9wZXJ0eU5vZGVMaXN0LmggXAogICAgIGRv
bS9RdWFsaWZpZWROYW1lLmggXAogICAgIGRvbS9SYW5nZS5oIFwKICAgICBkb20vUmVnaXN0ZXJl
ZEV2ZW50TGlzdGVuZXIuaCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCShyZXZpc2lvbiAxMjI1NzQp
CisrKyBTb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTExNSw2
ICsxMTUsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9K
U01lc3NhZ2VDaGFubmVsQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50
Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCisgICAg
YmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3Rv
bS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCShyZXZpc2lvbiAxMjI1NzQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Vc2VWOC5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTMwLDYgKzEzMCw3IEBAIExJU1Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VD
aGFubmVsQ29uc3RydWN0b3IuY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2
ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9t
LmNwcAorICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5j
cHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQkocmV2aXNpb24gMTIyNTc0KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CSh3b3JraW5nIGNvcHkpCkBAIC05ODksNiArOTg5LDcgQEAKICAgICAgICAgICAgICdkb20vUG9w
U3RhdGVFdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24u
aWRsJywKICAgICAgICAgICAgICdkb20vUHJvZ3Jlc3NFdmVudC5pZGwnLAorICAgICAgICAgICAg
J2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1JhbmdlLmlkbCcs
CiAgICAgICAgICAgICAnZG9tL1JhbmdlRXhjZXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnZG9t
L1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbCcsCkBAIC0xMDk2LDYgKzEwOTcsNyBA
QAogICAgICAgICAgICAgJ2h0bWwvSW1hZ2VEYXRhLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9N
ZWRpYUNvbnRyb2xsZXIuaWRsJywKICAgICAgICAgICAgICdodG1sL01lZGlhRXJyb3IuaWRsJywK
KyAgICAgICAgICAgICdodG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwnLAogICAgICAgICAgICAg
J2h0bWwvTWVkaWFLZXlFcnJvci5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvTWVkaWFLZXlFdmVu
dC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvUmFkaW9Ob2RlTGlzdC5pZGwnLApAQCAtMjAzNCw2
ICsyMDM2LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmgnLAorICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwJywKQEAgLTIz
NDQsNiArMjM0Nyw3IEBACiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2Fn
ZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE1lc3NhZ2VFdmVudEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOE1lc3NhZ2VQb3J0Q3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwJywKICAg
ICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwJywK
QEAgLTUyMzQsNiArNTIzOCw4IEBACiAgICAgICAgICAgICAnZG9tL1Byb2Nlc3NpbmdJbnN0cnVj
dGlvbi5oJywKICAgICAgICAgICAgICdkb20vUHJvZ3Jlc3NFdmVudC5jcHAnLAogICAgICAgICAg
ICAgJ2RvbS9Qcm9ncmVzc0V2ZW50LmgnLAorICAgICAgICAgICAgJ2RvbS9Qcm9wZXJ0eU5vZGVM
aXN0LmNwcCcsCisgICAgICAgICAgICAnZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaCcsCiAgICAgICAg
ICAgICAnZG9tL1F1YWxpZmllZE5hbWUuY3BwJywKICAgICAgICAgICAgICdkb20vUmFuZ2UuY3Bw
JywKICAgICAgICAgICAgICdkb20vUmFuZ2VFeGNlcHRpb24uY3BwJywKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxMjI1NzQp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMTEzMTAsNiArMTEzMTAsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAiCisJCQkJ
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxs
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9u
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29u
ZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNN
aWNyb0RhdGFJdGVtVmFsdWUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJl
bGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU01ldGFkYXRhLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0
aW9uCkBAIC0xMjk5MCw2ICsxMzA0Niw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVj
dE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTUHJvcGVydHlOb2RlTGlzdC5jcHAiCisJCQkJPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNQcm9wZXJ0
eU5vZGVMaXN0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBh
dGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNSYWRpb05vZGVMaXN0LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9u
CkBAIC01Mjc0Myw2ICs1Mjg1NSw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cUHJvcGVydHlOb2RlTGlzdC5jcHAiCisJCQkJPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4z
MiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxQcm9w
ZXJ0eU5vZGVMaXN0LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGRvbVxRdWFsaWZpZWROYW1lLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CkBAIC02
ODI0Miw2ICs2ODQxMCw2MiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20u
Y3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWd8
V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxU
b29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVs
ZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJ
CQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1l
PSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2lu
MzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29s
CisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cYmluZGluZ3NcanNcSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uaCIKKwkJCQkJPgorCQkJ
CTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGpzXEpT
TXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0
aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZp
bGUuYW0JKHJldmlzaW9uIDEyMjU3NCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmpl
Y3QvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTQyOCwxMCArNDI4LDEzIEBAIGVu
ZGlmCiAKIGlmIEVOQUJMRV9NSUNST0RBVEEKIHdlYmtpdGd0a19idWlsdF9oX2FwaSArPSBcCi0J
JCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24uaAorCSQodG9wX2J1aWxkZGlyKS9EZXJpdmVkU291cmNlcy93ZWJraXQv
V2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmggXAorCSQodG9wX2J1aWxkZGlyKS9E
ZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NUHJvcGVydHlOb2RlTGlzdC5oCiB3ZWJraXRn
dGtfZ2RvbV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0
RE9NSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvd2Via2l0
L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvblByaXZhdGUuaAorCURlcml2ZWRTb3Vy
Y2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb25Qcml2YXRlLmggXAor
CURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Qcm9wZXJ0eU5vZGVMaXN0LmNwcCBcCisJ
RGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVByb3BlcnR5Tm9kZUxpc3RQcml2YXRlLmgK
IGVuZGlmCiAKIGlmIEVOQUJMRV9XRUJfVElNSU5HCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDEyMjU3NCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTExOSw2ICsxMTksNyBAQAogI2luY2x1ZGUgIkpTTWVzc2FnZUNoYW5u
ZWxDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCIKICNpbmNs
dWRlICJKU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU01pY3JvRGF0YUl0ZW1W
YWx1ZUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCIK
ICNpbmNsdWRlICJKU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTmFt
ZWROb2RlTWFwQ3VzdG9tLmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3Rv
bS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMp
IDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Us
CisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisg
KiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIkpTTWljcm9EYXRhSXRl
bVZhbHVlLmgiCisKKyNpbmNsdWRlICJKU05vZGUuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTQXJy
YXkuaD4KKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitK
U1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBNaWNyb0RhdGFJdGVtVmFsdWUqIGl0ZW1WYWx1ZSkKK3sKKyAgICBpZiAoIWl0ZW1WYWx1
ZSkKKyAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworICAgIGlmIChpdGVtVmFsdWUtPmlzTm9kZSgp
KQorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGl0ZW1WYWx1ZS0+Z2V0
Tm9kZSgpKTsKKyAgICByZXR1cm4ganNTdHJpbmcoZXhlYywgaXRlbVZhbHVlLT5nZXRTdHJpbmco
KSk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1pY3Jv
RGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIE1vdG9yb2xh
IE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dCBt
b2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcK
KyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
RU5BQkxFKE1JQ1JPREFUQSkKKworI2luY2x1ZGUgIlY4TWljcm9EYXRhSXRlbVZhbHVlLmgiCisK
KyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOE5vZGUuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChNaWNyb0RhdGFJdGVtVmFs
dWUqIGl0ZW1WYWx1ZSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCit7CisgICAgaWYgKCFpdGVtVmFs
dWUpCisgICAgICAgIHJldHVybiB2ODo6TnVsbCgpOworICAgIGlmIChpdGVtVmFsdWUtPmlzTm9k
ZSgpKQorICAgICAgICByZXR1cm4gdG9WOChpdGVtVmFsdWUtPmdldE5vZGUoKSk7CisgICAgcmV0
dXJuIHY4U3RyaW5nKGl0ZW1WYWx1ZS0+Z2V0U3RyaW5nKCkpOworfQorCit9CisKKyNlbmRpZiAv
LyBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lv
biAxMjI1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zODkwLDcgKzM4OTAsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIHNob3Vs
ZEludmFsaWRhCiAgICAgICAgIHJldHVybiBhdHRyTmFtZSA9PSBuYW1lQXR0ciB8fCBhdHRyTmFt
ZSA9PSBpZEF0dHIgfHwgYXR0ck5hbWUgPT0gZm9yQXR0ciB8fCBhdHRyTmFtZSA9PSB0eXBlQXR0
cjsKICAgICBjYXNlIEludmFsaWRhdGVPbkl0ZW1BdHRyQ2hhbmdlOgogI2lmIEVOQUJMRShNSUNS
T0RBVEEpCi0gICAgICAgIHJldHVybiBhdHRyTmFtZSA9PSBpdGVtc2NvcGVBdHRyIHx8IGF0dHJO
YW1lID09IGl0ZW1wcm9wQXR0ciB8fCBhdHRyTmFtZSA9PSBpdGVtdHlwZUF0dHI7CisgICAgICAg
IHJldHVybiBhdHRyTmFtZSA9PSBpdGVtc2NvcGVBdHRyIHx8IGF0dHJOYW1lID09IGl0ZW1wcm9w
QXR0ciB8fCBhdHRyTmFtZSA9PSBpdGVtdHlwZUF0dHIgfHwgYXR0ck5hbWUgPT0gaXRlbXJlZkF0
dHI7CiAjZW5kaWYgLy8gSW50ZW50aW9uYWxseSBmYWxsIHRocm91Z2gKICAgICBjYXNlIERvTm90
SW52YWxpZGF0ZU9uQXR0cmlidXRlQ2hhbmdlczoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMTIyNTc0KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5MCw2ICsxOTAsNyBA
QCBlbnVtIFN0eWxlUmVzb2x2ZXJVcGRhdGVGbGFnIHsgUmVjYWxjU3R5CiBlbnVtIE5vZGVMaXN0
Um9vdFR5cGUgewogICAgIE5vZGVMaXN0SXNSb290ZWRBdE5vZGUsCiAgICAgTm9kZUxpc3RJc1Jv
b3RlZEF0RG9jdW1lbnQsCisgICAgTm9kZUxpc3RJc1Jvb3RlZEF0RG9jdW1lbnRJZk93bmVySGFz
SXRlbXJlZkF0dHIsCiB9OwogCiBlbnVtIE5vZGVMaXN0SW52YWxpZGF0aW9uVHlwZSB7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAkocmV2aXNpb24gMTIyNTc0KQor
KysgU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDIzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorTm9kZSogRHluYW1p
Y05vZGVMaXN0Ojpyb290Tm9kZSgpIGNvbnN0Cit7CisgICAgaWYgKChpc1Jvb3RlZEF0RG9jdW1l
bnQoKSB8fCBvd25lck5vZGVIYXNJdGVtUmVmQXR0cmlidXRlKCkpICYmIG1fb3duZXJOb2RlLT5p
bkRvY3VtZW50KCkpCisgICAgICAgIHJldHVybiBtX293bmVyTm9kZS0+ZG9jdW1lbnQoKTsKKyAg
ICByZXR1cm4gbV9vd25lck5vZGUuZ2V0KCk7Cit9CisKK0FMV0FZU19JTkxJTkUgYm9vbCBEeW5h
bWljTm9kZUxpc3Q6Om93bmVyTm9kZUhhc0l0ZW1SZWZBdHRyaWJ1dGUoKSBjb25zdAoreworI2lm
IEVOQUJMRShNSUNST0RBVEEpCisgICAgaWYgKHJvb3RUeXBlKCkgPT0gTm9kZUxpc3RJc1Jvb3Rl
ZEF0RG9jdW1lbnRJZk93bmVySGFzSXRlbXJlZkF0dHIpCisgICAgICAgIHJldHVybiB0b0VsZW1l
bnQob3duZXJOb2RlKCkpLT5mYXN0SGFzQXR0cmlidXRlKEhUTUxOYW1lczo6aXRlbXJlZkF0dHIp
OworI2VuZGlmCisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHVuc2lnbmVkIER5bmFtaWNTdWJ0
cmVlTm9kZUxpc3Q6Omxlbmd0aCgpIGNvbnN0CiB7CiAgICAgaWYgKGlzTGVuZ3RoQ2FjaGVWYWxp
ZCgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EeW5hbWljTm9kZUxpc3QuaAkocmV2aXNpb24gMTIy
NTc0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIE5vZGU7CiBjbGFzcyBEeW5hbWljTm9kZUxpc3RD
YWNoZUJhc2UgewogcHVibGljOgogICAgIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZShOb2RlTGlz
dFJvb3RUeXBlIHJvb3RUeXBlLCBOb2RlTGlzdEludmFsaWRhdGlvblR5cGUgaW52YWxpZGF0aW9u
VHlwZSkKLSAgICAgICAgOiBtX3Jvb3RlZEF0RG9jdW1lbnQocm9vdFR5cGUgPT0gTm9kZUxpc3RJ
c1Jvb3RlZEF0RG9jdW1lbnQpCisgICAgICAgIDogbV9yb290VHlwZShyb290VHlwZSkKICAgICAg
ICAgLCBtX2ludmFsaWRhdGlvblR5cGUoaW52YWxpZGF0aW9uVHlwZSkKICAgICAgICAgLCBtX2Nv
bGxlY3Rpb25UeXBlKEludmFsaWRDb2xsZWN0aW9uVHlwZSkKICAgICB7CkBAIC00Nyw3ICs0Nyw3
IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UoQ29sbGVj
dGlvblR5cGUgY29sbGVjdGlvblR5cGUpCi0gICAgICAgIDogbV9yb290ZWRBdERvY3VtZW50KGZh
bHNlKSAvLyBJZ25vcmVkCisgICAgICAgIDogbV9yb290VHlwZShOb2RlTGlzdElzUm9vdGVkQXRO
b2RlKSAvLyBJZ25vcmVkCiAgICAgICAgICwgbV9pbnZhbGlkYXRpb25UeXBlKERvTm90SW52YWxp
ZGF0ZU9uQXR0cmlidXRlQ2hhbmdlcykgLy8gSWdub3JlZAogICAgICAgICAsIG1fY29sbGVjdGlv
blR5cGUoY29sbGVjdGlvblR5cGUpCiAgICAgewpAQCAtNTYsOSArNTYsOSBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwdWJsaWM6Ci0gICAgQUxXQVlTX0lOTElORSBib29sIGlzUm9vdGVkQXREb2N1bWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdGVkQXREb2N1bWVudDsgfQorICAgIEFMV0FZU19JTkxJ
TkUgYm9vbCBpc1Jvb3RlZEF0RG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RUeXBlID09
IE5vZGVMaXN0SXNSb290ZWRBdERvY3VtZW50OyB9CiAgICAgQUxXQVlTX0lOTElORSBib29sIHNo
b3VsZEludmFsaWRhdGVPbkF0dHJpYnV0ZUNoYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1faW52YWxp
ZGF0aW9uVHlwZSAhPSBEb05vdEludmFsaWRhdGVPbkF0dHJpYnV0ZUNoYW5nZXM7IH0KLSAgICBB
TFdBWVNfSU5MSU5FIE5vZGVMaXN0Um9vdFR5cGUgcm9vdFR5cGUoKSB7IHJldHVybiBtX3Jvb3Rl
ZEF0RG9jdW1lbnQgPyBOb2RlTGlzdElzUm9vdGVkQXREb2N1bWVudCA6IE5vZGVMaXN0SXNSb290
ZWRBdE5vZGU7IH0KKyAgICBBTFdBWVNfSU5MSU5FIE5vZGVMaXN0Um9vdFR5cGUgcm9vdFR5cGUo
KSBjb25zdCB7IHJldHVybiBtX3Jvb3RUeXBlOyB9CiAgICAgQUxXQVlTX0lOTElORSBOb2RlTGlz
dEludmFsaWRhdGlvblR5cGUgaW52YWxpZGF0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRp
Y19jYXN0PE5vZGVMaXN0SW52YWxpZGF0aW9uVHlwZT4obV9pbnZhbGlkYXRpb25UeXBlKTsgfQog
ICAgIEFMV0FZU19JTkxJTkUgQ29sbGVjdGlvblR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PENvbGxlY3Rpb25UeXBlPihtX2NvbGxlY3Rpb25UeXBlKTsgfQogCkBAIC04Miw2
ICs4Miw5IEBAIHByb3RlY3RlZDoKICAgICAgICAgbV9pc0l0ZW1DYWNoZVZhbGlkID0gdHJ1ZTsK
ICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNJdGVtUmVmRWxlbWVudHNDYWNoZVZh
bGlkKCkgY29uc3QgeyByZXR1cm4gbV9pc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQ7IH0KKyAg
ICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0SXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCgpIGNvbnN0
IHttX2lzSXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCA9IHRydWU7IH0KKwogICAgIGJvb2wgaGFz
TmFtZUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV9pc05hbWVDYWNoZVZhbGlkOyB9CiAgICAgdm9p
ZCBzZXRIYXNOYW1lQ2FjaGUoKSBjb25zdCB7IG1faXNOYW1lQ2FjaGVWYWxpZCA9IHRydWU7IH0K
IApAQCAtOTEsNiArOTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1faXNMZW5ndGhDYWNoZVZh
bGlkID0gZmFsc2U7CiAgICAgICAgIG1faXNJdGVtQ2FjaGVWYWxpZCA9IGZhbHNlOwogICAgICAg
ICBtX2lzTmFtZUNhY2hlVmFsaWQgPSBmYWxzZTsKKyAgICAgICAgbV9pc0l0ZW1SZWZFbGVtZW50
c0NhY2hlVmFsaWQgPSBmYWxzZTsKICAgICB9CiAKIHByaXZhdGU6CkBAIC05OSw5ICsxMDMsMTAg
QEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIHVuc2lnbmVkIG1fY2FjaGVkSXRlbU9mZnNldDsKICAg
ICBtdXRhYmxlIHVuc2lnbmVkIG1faXNMZW5ndGhDYWNoZVZhbGlkIDogMTsKICAgICBtdXRhYmxl
IHVuc2lnbmVkIG1faXNJdGVtQ2FjaGVWYWxpZCA6IDE7CisgICAgbXV0YWJsZSB1bnNpZ25lZCBt
X2lzSXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCA6IDE7CiAKICAgICAvLyBGcm9tIER5bmFtaWNO
b2RlTGlzdAotICAgIGNvbnN0IHVuc2lnbmVkIG1fcm9vdGVkQXREb2N1bWVudCA6IDE7CisgICAg
Y29uc3QgTm9kZUxpc3RSb290VHlwZSBtX3Jvb3RUeXBlOwogICAgIGNvbnN0IHVuc2lnbmVkIG1f
aW52YWxpZGF0aW9uVHlwZSA6IDM7CiAKICAgICAvLyBGcm9tIEhUTUxDb2xsZWN0aW9uCkBAIC0x
MTksNiArMTI0LDcgQEAgcHVibGljOgogICAgICAgICBSYWRpb05vZGVMaXN0VHlwZSwKICAgICAg
ICAgTGFiZWxzTm9kZUxpc3RUeXBlLAogICAgICAgICBNaWNyb0RhdGFJdGVtTGlzdFR5cGUsCisg
ICAgICAgIFByb3BlcnR5Tm9kZUxpc3RUeXBlLAogICAgIH07CiAgICAgRHluYW1pY05vZGVMaXN0
KFBhc3NSZWZQdHI8Tm9kZT4gb3duZXJOb2RlLCBOb2RlTGlzdFJvb3RUeXBlIHJvb3RUeXBlLCBO
b2RlTGlzdEludmFsaWRhdGlvblR5cGUgaW52YWxpZGF0aW9uVHlwZSkKICAgICAgICAgOiBEeW5h
bWljTm9kZUxpc3RDYWNoZUJhc2Uocm9vdFR5cGUsIGludmFsaWRhdGlvblR5cGUpCkBAIC0xMzYs
MTcgKzE0MiwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnZhbGlkYXRlQ2FjaGUoKSB7IGNsZWFy
Q2FjaGUoKTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgTm9kZSogcm9vdE5vZGUoKSBjb25zdAotICAg
IHsKLSAgICAgICAgaWYgKGlzUm9vdGVkQXREb2N1bWVudCgpICYmIG1fb3duZXJOb2RlLT5pbkRv
Y3VtZW50KCkpCi0gICAgICAgICAgICByZXR1cm4gbV9vd25lck5vZGUtPmRvY3VtZW50KCk7Ci0g
ICAgICAgIHJldHVybiBtX293bmVyTm9kZS5nZXQoKTsKLSAgICB9CisgICAgTm9kZSogcm9vdE5v
ZGUoKSBjb25zdDsKICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX293
bmVyTm9kZS0+ZG9jdW1lbnQoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBub2RlTWF0Y2hlcyhFbGVt
ZW50KikgY29uc3QgPSAwOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0R5bmFtaWNO
b2RlTGlzdCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIG93bmVy
Tm9kZUhhc0l0ZW1SZWZBdHRyaWJ1dGUoKSBjb25zdDsKICAgICBSZWZQdHI8Tm9kZT4gbV9vd25l
ck5vZGU7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCShyZXZpc2lvbiAxMjI1NzQpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOCw2ICsxMTgs
NyBAQAogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKICNpbmNsdWRlICJIVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24uaCIKKyNpbmNsdWRlICJQcm9wZXJ0eU5vZGVMaXN0LmgiCiAjZW5kaWYKIAogdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTI3NjksNiArMjc3MCwxMCBAQCB2b2lkIE5vZGU6OnNldEl0
ZW1UeXBlKGNvbnN0IFN0cmluZyYgdmFsCiAgICAgZW5zdXJlUmFyZURhdGEoKS0+c2V0SXRlbVR5
cGUodmFsdWUpOwogfQogCitQYXNzUmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+IE5vZGU6OnByb3Bl
cnR5Tm9kZUxpc3QoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIHJldHVybiBlbnN1cmVSYXJl
RGF0YSgpLT5lbnN1cmVOb2RlTGlzdHMoKS0+YWRkQ2FjaGVXaXRoTmFtZTxQcm9wZXJ0eU5vZGVM
aXN0Pih0aGlzLCBEeW5hbWljTm9kZUxpc3Q6OlByb3BlcnR5Tm9kZUxpc3RUeXBlLCBuYW1lKTsK
K30KICNlbmRpZgogCiB2b2lkIE5vZGVSYXJlRGF0YTo6Y3JlYXRlTm9kZUxpc3RzKCkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaAkocmV2aXNpb24gMTIyNTc0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aAkod29ya2luZyBjb3B5KQpAQCAtOTAsNiArOTAsNyBAQCBjbGFzcyBUcmVlU2NvcGU7CiAKICNp
ZiBFTkFCTEUoTUlDUk9EQVRBKQogY2xhc3MgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOworY2xh
c3MgUHJvcGVydHlOb2RlTGlzdDsKICNlbmRpZgogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2Rl
OwpAQCAtNjMwLDYgKzYzMSw3IEBAIHB1YmxpYzoKICAgICBET01TZXR0YWJsZVRva2VuTGlzdCog
aXRlbVByb3AoKTsKICAgICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVJlZigpOwogICAgIERP
TVNldHRhYmxlVG9rZW5MaXN0KiBpdGVtVHlwZSgpOworICAgIFBhc3NSZWZQdHI8UHJvcGVydHlO
b2RlTGlzdD4gcHJvcGVydHlOb2RlTGlzdChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9w
ZXJ0eU5vZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVy
dHlOb2RlTGlzdC5jcHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVy
dHlOb2RlTGlzdC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29w
eXJpZ2h0IChjKSAyMDEyIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vcgorICogb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQK
KyAqIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJQcm9w
ZXJ0eU5vZGVMaXN0LmgiCisKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5oIgorI2lu
Y2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKKyNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk5vZGVSYXJlRGF0YS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKK1Byb3BlcnR5Tm9kZUxp
c3Q6OlByb3BlcnR5Tm9kZUxpc3QoTm9kZSogcm9vdE5vZGUsIGNvbnN0IFN0cmluZyYgbmFtZSkK
KyAgICA6IER5bmFtaWNTdWJ0cmVlTm9kZUxpc3Qocm9vdE5vZGUsIEludmFsaWRhdGVPbkl0ZW1B
dHRyQ2hhbmdlLCBOb2RlTGlzdElzUm9vdGVkQXREb2N1bWVudElmT3duZXJIYXNJdGVtcmVmQXR0
cikKKyAgICAsIG1fbmFtZShuYW1lKQoreworfQorCitQcm9wZXJ0eU5vZGVMaXN0Ojp+UHJvcGVy
dHlOb2RlTGlzdCgpCit7CisgICAgb3duZXJOb2RlKCktPm5vZGVMaXN0cygpLT5yZW1vdmVDYWNo
ZVdpdGhOYW1lKHRoaXMsIER5bmFtaWNOb2RlTGlzdDo6UHJvcGVydHlOb2RlTGlzdFR5cGUsIG1f
bmFtZSk7Cit9CisKK2Jvb2wgUHJvcGVydHlOb2RlTGlzdDo6ZWxlbWVudElzUHJvcGVydHlPZlJl
ZkVsZW1lbnQoY29uc3QgTm9kZSogdGVzdEVsZW1lbnQsIGNvbnN0IE5vZGUgKnJlZkVsZW1lbnQp
IGNvbnN0Cit7CisgICAgZm9yIChjb25zdCBDb250YWluZXJOb2RlKiBub2RlID0gdGVzdEVsZW1l
bnQtPnBhcmVudE5vZGUoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKSkgeworICAg
ICAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIHRvSFRNTEVsZW1lbnQobm9kZSktPmZh
c3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikgJiYgbm9kZSAhPSBvd25lck5vZGUoKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG5vZGUgPT0gcmVmRWxl
bWVudCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK3ZvaWQgUHJvcGVydHlOb2RlTGlzdDo6dXBkYXRlSXRlbVJlZkVsZW1lbnRzKCkgY29u
c3QKK3sKKyAgICBpZiAoaXNJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1faXRlbVJlZkVsZW1lbnRzQ2FjaGUuY2xlYXIoKTsKKyAgICBzZXRJdGVt
UmVmRWxlbWVudHNDYWNoZVZhbGlkKCk7CisgICAgdG9IVE1MRWxlbWVudChvd25lck5vZGUoKSkt
PmdldEl0ZW1SZWZFbGVtZW50cyhtX2l0ZW1SZWZFbGVtZW50c0NhY2hlKTsKK30KKworYm9vbCBQ
cm9wZXJ0eU5vZGVMaXN0Ojpub2RlTWF0Y2hlcyhFbGVtZW50KiB0ZXN0RWxlbWVudCkgY29uc3QK
K3sKKyAgICBpZiAoIXRlc3RFbGVtZW50LT5pc0hUTUxFbGVtZW50KCkgfHwgIXRlc3RFbGVtZW50
LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1wcm9wQXR0cikpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIHVwZGF0ZUl0ZW1SZWZFbGVtZW50cygpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1faXRlbVJlZkVsZW1lbnRzQ2FjaGUuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYg
KHRlc3RFbGVtZW50ID09IG1faXRlbVJlZkVsZW1lbnRzQ2FjaGVbaV0gfHwgZWxlbWVudElzUHJv
cGVydHlPZlJlZkVsZW1lbnQodGVzdEVsZW1lbnQsIG1faXRlbVJlZkVsZW1lbnRzQ2FjaGVbaV0p
KSB7CisgICAgICAgICAgICBpZiAodGVzdEVsZW1lbnQtPml0ZW1Qcm9wKCktPnRva2VucygpLmNv
bnRhaW5zKG1fbmFtZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1Byb3BlcnR5VmFsdWVBcnJheSBQcm9w
ZXJ0eU5vZGVMaXN0OjpnZXRWYWx1ZXMoKSBjb25zdAoreworICAgIFByb3BlcnR5VmFsdWVBcnJh
eSBwcm9wZXJ0eVZhbHVlOworICAgIHVuc2lnbmVkIG9mZnNldCA9IDA7CisKKyAgICB3aGlsZSAo
Tm9kZSogbm9kZSA9IGl0ZW0ob2Zmc2V0KSkgeworICAgICAgICBvZmZzZXQrKzsKKyAgICAgICAg
cHJvcGVydHlWYWx1ZS5hcHBlbmQodG9IVE1MRWxlbWVudChub2RlKS0+aXRlbVZhbHVlKCkpOwor
ICAgIH0KKworICAgIHJldHVybiBwcm9wZXJ0eVZhbHVlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vUHJvcGVydHlOb2RlTGlzdC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9t
L1Byb3BlcnR5Tm9kZUxpc3QuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoYykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0CisgKiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgUHJvcGVydHlOb2RlTGlzdF9oCisjZGVmaW5lIFByb3BlcnR5Tm9kZUxpc3RfaAor
CisjaWYgRU5BQkxFKE1JQ1JPREFUQSkKKyNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNp
bmNsdWRlICJNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1pY3JvRGF0YUl0ZW1W
YWx1ZT4gPiBQcm9wZXJ0eVZhbHVlQXJyYXk7CisKK2NsYXNzIFByb3BlcnR5Tm9kZUxpc3QgOiBw
dWJsaWMgRHluYW1pY1N1YnRyZWVOb2RlTGlzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4gY3JlYXRlKE5vZGUqIHJvb3ROb2RlLCBjb25zdCBTdHJp
bmcmIG5hbWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb3BlcnR5Tm9k
ZUxpc3Qocm9vdE5vZGUsIG5hbWUpKTsKKyAgICB9CisKKyAgICB+UHJvcGVydHlOb2RlTGlzdCgp
OworCisgICAgUHJvcGVydHlWYWx1ZUFycmF5IGdldFZhbHVlcygpIGNvbnN0OworCitwcml2YXRl
OgorICAgIGV4cGxpY2l0IFByb3BlcnR5Tm9kZUxpc3QoTm9kZSogcm9vdE5vZGUsIGNvbnN0IFN0
cmluZyYgbmFtZSk7CisKKyAgICB2aXJ0dWFsIGJvb2wgbm9kZU1hdGNoZXMoRWxlbWVudCopIGNv
bnN0IE9WRVJSSURFOworCisgICAgYm9vbCBlbGVtZW50SXNQcm9wZXJ0eU9mUmVmRWxlbWVudChj
b25zdCBOb2RlKiwgY29uc3QgTm9kZSopIGNvbnN0OworICAgIHZvaWQgdXBkYXRlSXRlbVJlZkVs
ZW1lbnRzKCkgY29uc3Q7CisKKyAgICBTdHJpbmcgbV9uYW1lOworICAgIG11dGFibGUgVmVjdG9y
PEhUTUxFbGVtZW50Kj4gbV9pdGVtUmVmRWxlbWVudHNDYWNoZTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCisKKyNlbmRpZiAvLyBT
dGF0aWNOb2RlTGlzdF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlz
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3Qu
aWRsCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3Qu
aWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChjKSAy
MDEyIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAor
ICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICog
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzIGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgewor
CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUlDUk9EQVRBLAorICAgICAg
ICBJbmRleGVkR2V0dGVyLAorICAgICAgICBKU0dlbmVyYXRlVG9KU09iamVjdAorICAgIF0gUHJv
cGVydHlOb2RlTGlzdCA6IE5vZGVMaXN0IHsKKworICAgICAgICBzZXF1ZW5jZTxNaWNyb0RhdGFJ
dGVtVmFsdWU+IGdldFZhbHVlcygpOworICAgICAgICBOb2RlIGl0ZW0oaW4gdW5zaWduZWQgbG9u
ZyBpbmRleCk7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoOworICAgIH07Cit9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2
aXNpb24gMTIyNTc0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRz
LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVQb29sLmgiCiAjaW5jbHVkZSAiQ2hpbGRMaXN0TXV0YXRp
b25TY29wZS5oIgorI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRM
aXN0ZW5lci5oIgpAQCAtOTkzLDYgKzk5NCwzOSBAQCBQYXNzUmVmUHRyPEhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbj4gSFRNCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbio+KGVuc3VyZUNhY2hlZEhUTUxDb2xsZWN0aW9uKEl0ZW1Qcm9wZXJ0aWVzKS5n
ZXQoKSk7CiB9CisKK3ZvaWQgSFRNTEVsZW1lbnQ6OmdldEl0ZW1SZWZFbGVtZW50cyhWZWN0b3I8
SFRNTEVsZW1lbnQqPiYgaXRlbVJlZkVsZW1lbnRzKQoreworICAgIGlmICghZmFzdEhhc0F0dHJp
YnV0ZShpdGVtc2NvcGVBdHRyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFmYXN0SGFz
QXR0cmlidXRlKGl0ZW1yZWZBdHRyKSkgeworICAgICAgICBpdGVtUmVmRWxlbWVudHMuYXBwZW5k
KHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgRE9NU2V0dGFibGVUb2tlbkxp
c3QqIGl0ZW1SZWZzID0gaXRlbVJlZigpOworICAgIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlz
dD4gcHJvY2Vzc2VkSXRlbVJlZiA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKKyAg
ICBOb2RlKiByb290Tm9kZSA9IHRyZWVTY29wZSgpLT5yb290Tm9kZSgpOworCisgICAgZm9yIChO
b2RlKiBjdXJyZW50ID0gcm9vdE5vZGUtPmZpcnN0Q2hpbGQoKTsgY3VycmVudDsgY3VycmVudCA9
IGN1cnJlbnQtPnRyYXZlcnNlTmV4dE5vZGUocm9vdE5vZGUpKSB7CisgICAgICAgIGlmICghY3Vy
cmVudC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIEhU
TUxFbGVtZW50KiBlbGVtZW50ID0gdG9IVE1MRWxlbWVudChjdXJyZW50KTsKKworICAgICAgICBp
ZiAoZWxlbWVudCA9PSB0aGlzKSB7CisgICAgICAgICAgICBpdGVtUmVmRWxlbWVudHMuYXBwZW5k
KGVsZW1lbnQpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIGlkID0gZWxlbWVudC0+Z2V0SWRBdHRyaWJ1dGUoKTsKKyAgICAg
ICAgaWYgKCFwcm9jZXNzZWRJdGVtUmVmLT50b2tlbnMoKS5jb250YWlucyhpZCkgJiYgaXRlbVJl
ZnMtPnRva2VucygpLmNvbnRhaW5zKGlkKSkgeworICAgICAgICAgICAgcHJvY2Vzc2VkSXRlbVJl
Zi0+c2V0VmFsdWUoaWQpOworICAgICAgICAgICAgaWYgKCFlbGVtZW50LT5pc0Rlc2NlbmRhbnRP
Zih0aGlzKSkKKyAgICAgICAgICAgICAgICBpdGVtUmVmRWxlbWVudHMuYXBwZW5kKGVsZW1lbnQp
OworICAgICAgICB9CisgICAgfQorfQogI2VuZGlmCiAKIHZvaWQgSFRNTEVsZW1lbnQ6OmFkZEhU
TUxMZW5ndGhUb1N0eWxlKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBDU1NQcm9wZXJ0eUlEIHBy
b3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5oCShyZXZpc2lvbiAxMjI1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0SXRlbVZhbHVlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVm
UHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gaXRlbVZhbHVlKCkgY29uc3Q7CiAgICAgUGFzc1JlZlB0
cjxIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24+IHByb3BlcnRpZXMoKTsKKyAgICB2b2lkIGdldEl0
ZW1SZWZFbGVtZW50cyhWZWN0b3I8SFRNTEVsZW1lbnQqPiYpOwogI2VuZGlmCiAKICNpZm5kZWYg
TkRFQlVHCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0Nv
bGxlY3Rpb24uY3BwCShyZXZpc2lvbiAxMjI1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcg
QEAKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgIk5vZGUuaCIKLSNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5oIgorI2luY2x1ZGUgIlBy
b3BlcnR5Tm9kZUxpc3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01Myw3ICs1Myw3
IEBAIFBhc3NSZWZQdHI8SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uPiBIVE0KIEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbjo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKE5vZGUqIGl0ZW1Ob2RlKQog
ICAgIDogSFRNTENvbGxlY3Rpb24oaXRlbU5vZGUsIEl0ZW1Qcm9wZXJ0aWVzKQogICAgICwgbV9o
YXNQcm9wZXJ0eU5hbWVDYWNoZShmYWxzZSkKLSAgICAsIG1faGFzSXRlbVJlZkVsZW1lbnRzKGZh
bHNlKQorICAgICwgbV9oYXNOYW1lZEl0ZW0oZmFsc2UpCiB7CiB9CiAKQEAgLTYzLDQzICs2Mywx
MiBAQCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246On5IVE1MUHJvcGVydGllCiAKIHZvaWQgSFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uOjp1cGRhdGVSZWZFbGVtZW50cygpIGNvbnN0CiB7Ci0gICAg
aWYgKG1faGFzSXRlbVJlZkVsZW1lbnRzKQorICAgIGlmIChpc0l0ZW1SZWZFbGVtZW50c0NhY2hl
VmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSFRNTEVsZW1lbnQqIGJhc2VFbGVtZW50
ID0gdG9IVE1MRWxlbWVudChiYXNlKCkpOwotCiAgICAgbV9pdGVtUmVmRWxlbWVudHMuY2xlYXIo
KTsKLSAgICBtX2hhc0l0ZW1SZWZFbGVtZW50cyA9IHRydWU7Ci0KLSAgICBpZiAoIWJhc2VFbGVt
ZW50LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1zY29wZUF0dHIpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBpZiAoIWJhc2VFbGVtZW50LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1yZWZBdHRyKSkgewot
ICAgICAgICBtX2l0ZW1SZWZFbGVtZW50cy5hcHBlbmQoYmFzZUVsZW1lbnQpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgRE9NU2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1SZWYgPSBiYXNl
RWxlbWVudC0+aXRlbVJlZigpOwotICAgIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gcHJv
Y2Vzc2VkSXRlbVJlZiA9IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKLSAgICBOb2Rl
KiByb290Tm9kZSA9IGJhc2VFbGVtZW50LT50cmVlU2NvcGUoKS0+cm9vdE5vZGUoKTsKLQotICAg
IGZvciAoTm9kZSogY3VycmVudCA9IHJvb3ROb2RlLT5maXJzdENoaWxkKCk7IGN1cnJlbnQ7IGN1
cnJlbnQgPSBjdXJyZW50LT50cmF2ZXJzZU5leHROb2RlKHJvb3ROb2RlKSkgewotICAgICAgICBp
ZiAoIWN1cnJlbnQtPmlzSFRNTEVsZW1lbnQoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQoY3VycmVudCk7Ci0KLSAg
ICAgICAgaWYgKGVsZW1lbnQgPT0gYmFzZUVsZW1lbnQpIHsKLSAgICAgICAgICAgIG1faXRlbVJl
ZkVsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICB9Ci0KLSAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBpZCA9IGVsZW1lbnQtPmdldElkQXR0
cmlidXRlKCk7Ci0gICAgICAgIGlmICghcHJvY2Vzc2VkSXRlbVJlZi0+dG9rZW5zKCkuY29udGFp
bnMoaWQpICYmIGl0ZW1SZWYtPnRva2VucygpLmNvbnRhaW5zKGlkKSkgewotICAgICAgICAgICAg
cHJvY2Vzc2VkSXRlbVJlZi0+c2V0VmFsdWUoaWQpOwotICAgICAgICAgICAgaWYgKCFlbGVtZW50
LT5pc0Rlc2NlbmRhbnRPZihiYXNlRWxlbWVudCkpCi0gICAgICAgICAgICAgICAgbV9pdGVtUmVm
RWxlbWVudHMuYXBwZW5kKGVsZW1lbnQpOwotICAgICAgICB9Ci0gICAgfQorICAgIHNldEl0ZW1S
ZWZFbGVtZW50c0NhY2hlVmFsaWQoKTsKKyAgICB0b0hUTUxFbGVtZW50KGJhc2UoKSktPmdldEl0
ZW1SZWZFbGVtZW50cyhtX2l0ZW1SZWZFbGVtZW50cyk7CiB9CiAKIHN0YXRpYyBOb2RlKiBuZXh0
Tm9kZVdpdGhQcm9wZXJ0eShOb2RlKiBiYXNlLCBOb2RlKiBub2RlKQpAQCAtMTY4LDI2ICsxMzcs
MjcgQEAgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBIVE1MUHJvcGVydGllcwogICAgIHJldHVy
biBtX3Byb3BlcnR5TmFtZXM7CiB9CiAKLVBhc3NSZWZQdHI8Tm9kZUxpc3Q+IEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbjo6bmFtZWRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKK1Bhc3NS
ZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpuYW1lZEl0
ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAogewotICAgIHVwZGF0ZU5hbWVDYWNoZSgpOwot
Ci0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IG5hbWVkSXRlbXM7Ci0gICAgVmVjdG9yPEVsZW1l
bnQqPiogcHJvcGVydHlSZXN1bHRzID0gbV9wcm9wZXJ0eUNhY2hlLmdldChBdG9taWNTdHJpbmco
bmFtZSkuaW1wbCgpKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBwcm9wZXJ0eVJlc3VsdHMg
JiYgaSA8IHByb3BlcnR5UmVzdWx0cy0+c2l6ZSgpOyArK2kpCi0gICAgICAgIG5hbWVkSXRlbXMu
YXBwZW5kKHByb3BlcnR5UmVzdWx0cy0+YXQoaSkpOwotCi0gICAgLy8gRklYTUU6IEhUTUw1IHNw
ZWNpZmllcyB0aGF0IHRoaXMgc2hvdWxkIHJldHVybiBQcm9wZXJ0eU5vZGVMaXN0LgotICAgIHJl
dHVybiBuYW1lZEl0ZW1zLmlzRW1wdHkoKSA/IDAgOiBTdGF0aWNOb2RlTGlzdDo6YWRvcHQobmFt
ZWRJdGVtcyk7CisgICAgcmV0dXJuIGJhc2UoKS0+cHJvcGVydHlOb2RlTGlzdChuYW1lKTsKIH0K
IAogYm9vbCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Omhhc05hbWVkSXRlbShjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUpIGNvbnN0CiB7Ci0gICAgdXBkYXRlTmFtZUNhY2hlKCk7CisgICAgaW52
YWxpZGF0ZUNhY2hlSWZOZWVkZWQoKTsKKyAgICBpZiAobV9oYXNOYW1lZEl0ZW0pCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgdXBkYXRlUmVmRWxlbWVudHMoKTsKIAotICAgIGlmIChWZWN0
b3I8RWxlbWVudCo+KiBwcm9wZXJ0eUNhY2hlID0gbV9wcm9wZXJ0eUNhY2hlLmdldChuYW1lLmlt
cGwoKSkpIHsKLSAgICAgICAgaWYgKCFwcm9wZXJ0eUNhY2hlLT5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9pdGVtUmVm
RWxlbWVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgSFRNTEVsZW1lbnQqIHJlZkVsZW1lbnQg
PSBtX2l0ZW1SZWZFbGVtZW50c1tpXTsKKyAgICAgICAgZm9yIChIVE1MRWxlbWVudCogZWxlbWVu
dCA9IGl0ZW1BZnRlcihyZWZFbGVtZW50LCAwKTsgZWxlbWVudDsgZWxlbWVudCA9IGl0ZW1BZnRl
cihyZWZFbGVtZW50LCBlbGVtZW50KSkgeworICAgICAgICAgICAgaWYgKGVsZW1lbnQtPml0ZW1Q
cm9wKCktPnRva2VucygpLmNvbnRhaW5zKG5hbWUpKSB7CisgICAgICAgICAgICAgICAgbV9oYXNO
YW1lZEl0ZW0gPSB0cnVlOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg
ICAgfQorICAgICAgICB9CiAgICAgfQogCiAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCShyZXZpc2lvbiAx
MjI1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIERPTVN0cmluZ0xpc3Q7CitjbGFzcyBQcm9wZXJ0eU5vZGVMaXN0OwogCiBjbGFzcyBI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb24gOiBwdWJsaWMgSFRNTENvbGxlY3Rpb24gewogcHVibGlj
OgpAQCAtNDgsMTYgKzQ5LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVJlZkVsZW1lbnRz
KCkgY29uc3Q7CiAKICAgICBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IG5hbWVzKCkgY29uc3Q7
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPE5vZGVMaXN0PiBuYW1lZEl0ZW0oY29uc3QgU3RyaW5n
JikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFByb3BlcnR5Tm9kZUxp
c3Q+IG5hbWVkSXRlbShjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgaGFzTmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0IE9WRVJSSURFOwog
CiAgICAgdm9pZCBjbGVhckNhY2hlKCkgY29uc3QKICAgICB7CiAgICAgICAgIG1faXRlbVJlZkVs
ZW1lbnRzLmNsZWFyKCk7CiAgICAgICAgIG1fcHJvcGVydHlOYW1lcy5jbGVhcigpOwotICAgICAg
ICBtX3Byb3BlcnR5Q2FjaGUuY2xlYXIoKTsKICAgICAgICAgbV9oYXNQcm9wZXJ0eU5hbWVDYWNo
ZSA9IGZhbHNlOwotICAgICAgICBtX2hhc0l0ZW1SZWZFbGVtZW50cyA9IGZhbHNlOworICAgICAg
ICBtX2hhc05hbWVkSXRlbSA9IGZhbHNlOwogICAgIH0KIAogcHJpdmF0ZToKQEAgLTc3LDE5ICs3
NywxNCBAQCBwcml2YXRlOgogCiAgICAgICAgIGlmICghbV9wcm9wZXJ0eU5hbWVzLT5jb250YWlu
cyhwcm9wZXJ0eU5hbWUpKQogICAgICAgICAgICAgbV9wcm9wZXJ0eU5hbWVzLT5hcHBlbmQocHJv
cGVydHlOYW1lKTsKLQotICAgICAgICBWZWN0b3I8RWxlbWVudCo+KiBwcm9wZXJ0eVJlc3VsdHMg
PSBtX3Byb3BlcnR5Q2FjaGUuZ2V0KHByb3BlcnR5TmFtZS5pbXBsKCkpOwotICAgICAgICBpZiAo
IXByb3BlcnR5UmVzdWx0cyB8fCAhcHJvcGVydHlSZXN1bHRzLT5jb250YWlucyhlbGVtZW50KSkK
LSAgICAgICAgICAgIGFwcGVuZChtX3Byb3BlcnR5Q2FjaGUsIHByb3BlcnR5TmFtZSwgZWxlbWVu
dCk7CiAgICAgfQogCiAgICAgbXV0YWJsZSBWZWN0b3I8SFRNTEVsZW1lbnQqPiBtX2l0ZW1SZWZF
bGVtZW50czsKICAgICBtdXRhYmxlIFJlZlB0cjxET01TdHJpbmdMaXN0PiBtX3Byb3BlcnR5TmFt
ZXM7Ci0gICAgbXV0YWJsZSBOb2RlQ2FjaGVNYXAgbV9wcm9wZXJ0eUNhY2hlOwogCiAgICAgLy8g
RklYTUU6IE1vdmUgdGhlc2UgdmFyaWFibGVzIHRvIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZSBm
b3IgYmV0dGVyIGJpdCBwYWNraW5nLgogICAgIG11dGFibGUgYm9vbCBtX2hhc1Byb3BlcnR5TmFt
ZUNhY2hlIDogMTsKLSAgICBtdXRhYmxlIGJvb2wgbV9oYXNJdGVtUmVmRWxlbWVudHMgOiAxOwor
ICAgIG11dGFibGUgYm9vbCBtX2hhc05hbWVkSXRlbSA6IDE7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGll
c0NvbGxlY3Rpb24uaWRsCShyZXZpc2lvbiAxMjI1NzQpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQw
LDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBOb2RlIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBp
bmRleCk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ0xpc3QgbmFtZXM7
Ci0KLSAgICAgICAgLy8gRklYTUU6IEhUTUw1IHNwZWNpZmllcyB0aGF0IHRoaXMgc2hvdWxkIHJl
dHVybiBQcm9wZXJ0eU5vZGVMaXN0LgotICAgICAgICBOb2RlTGlzdCBuYW1lZEl0ZW0oaW4gRE9N
U3RyaW5nIG5hbWUpOworICAgICAgICBQcm9wZXJ0eU5vZGVMaXN0IG5hbWVkSXRlbShpbiBET01T
dHJpbmcgbmFtZSk7CiAgICAgfTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9E
YXRhSXRlbVZhbHVlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3Jv
RGF0YUl0ZW1WYWx1ZS5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL01p
Y3JvRGF0YUl0ZW1WYWx1ZS5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xE
RVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
Cittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9TUlD
Uk9EQVRBLAorICAgICAgICBDdXN0b21Ub0pTT2JqZWN0LAorICAgICAgICBPbWl0Q29uc3RydWN0
b3IKKyAgICBdIE1pY3JvRGF0YUl0ZW1WYWx1ZSB7CisgICAgfTsKK30KKwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMTIyNTc0KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNjksNiArMzY5LDcgQEAgbW9k
dWxlIHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBEb2N1bWVudENvbnN0cnVjdG9yIERvY3Vt
ZW50OwogICAgICAgICBhdHRyaWJ1dGUgTm9kZUNvbnN0cnVjdG9yIE5vZGU7CiAgICAgICAgIGF0
dHJpYnV0ZSBOb2RlTGlzdENvbnN0cnVjdG9yIE5vZGVMaXN0OworICAgICAgICBhdHRyaWJ1dGUg
W0NvbmRpdGlvbmFsPU1JQ1JPREFUQV0gUHJvcGVydHlOb2RlTGlzdENvbnN0cnVjdG9yIFByb3Bl
cnR5Tm9kZUxpc3Q7CiAgICAgICAgIGF0dHJpYnV0ZSBOYW1lZE5vZGVNYXBDb25zdHJ1Y3RvciBO
YW1lZE5vZGVNYXA7CiAgICAgICAgIGF0dHJpYnV0ZSBDaGFyYWN0ZXJEYXRhQ29uc3RydWN0b3Ig
Q2hhcmFjdGVyRGF0YTsKICAgICAgICAgYXR0cmlidXRlIEF0dHJDb25zdHJ1Y3RvciBBdHRyOwpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gMTIyNTc5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTItMDctMTMgIEFya28gU2FoYSAgPGFya29A
bW90b3JvbGEuY29tPgorCisgICAgICAgIE1pY3JvZGF0YTogSW1wbGVtZW50IFByb3BlcnR5Tm9k
ZUxpc3QgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODAyNjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRlZCB0ZXN0IGNhc2VzIGZvciBQcm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZSBh
bmQgUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QuCisgICAgICAgIFNwZWM6IGh0
dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvbXVsdGlwYWdl
L2NvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI3Byb3BlcnR5bm9kZWxpc3QKKworICAgICAgICAq
IGZhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRl
bS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRh
aW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMt
YXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1n
ZXR2YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01p
Y3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LXRlc3QtYWRkLXJlbW92
ZS1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9E
YXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQuaHRtbDogQWRkZWQu
CisKIDIwMTItMDctMTMgIFN6aWxhcmQgTGVkYW4gIDxzemxlZGFuQGluZi51LXN6ZWdlZC5odT4K
IAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nIGFmdGVyIHIxMjI1MjguIFNraXBw
ZWQgc29tZSBuZXcgdGVzdHMuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
bmFtZWRpdGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXBy
b3BlcnR5bm9kZWxpc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitQcm9wZXJ0aWVzQ29sbGVj
dGlvbi5uYW1lZEl0ZW0obmFtZSkgbXVzdCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdC4KKworUEFT
UyBlbGVtZW50LnByb3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKSBpbnN0YW5jZW9mIFByb3BlcnR5
Tm9kZUxpc3QgaXMgdHJ1ZQorUEFTUyBlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3RhbmNl
b2YgUHJvcGVydHlOb2RlTGlzdCBpcyB0cnVlCisKK1Byb3BlcnR5Tm9kZUxpc3QgaW50ZXJmYWNl
IGluaGVyaXRlZCBmcm9tIHRoZSBOb2RlTGlzdCBpbnRlcmZhY2UuCitQQVNTIGVsZW1lbnQucHJv
cGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpIGluc3RhbmNlb2YgTm9kZUxpc3QgaXMgdHJ1ZQorUEFT
UyBlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddIGluc3RhbmNlb2YgTm9kZUxpc3QgaXMgdHJ1ZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0
eW5vZGVsaXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRtbAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9w
ZXJ0eW5vZGVsaXN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2Rh
dGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+UHJvcGVydGllc0Nv
bGxlY3Rpb24ubmFtZWRJdGVtKG5hbWUpIG11c3QgcmV0dXJuIFByb3BlcnR5Tm9kZUxpc3QuPC9w
PgorPGRpdiBpdGVtc2NvcGUgaWQ9Im1pY3JvZGF0YWl0ZW0iPgorPGRpdiBpdGVtcHJvcD0iZm9v
Ij48L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFy
IGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWljcm9kYXRhaXRlbSIpOworCitz
aG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpIGluc3RhbmNl
b2YgUHJvcGVydHlOb2RlTGlzdCIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNb
J2ZvbyddIGluc3RhbmNlb2YgUHJvcGVydHlOb2RlTGlzdCIpOworCitkZWJ1ZygiPGJyPlByb3Bl
cnR5Tm9kZUxpc3QgaW50ZXJmYWNlIGluaGVyaXRlZCBmcm9tIHRoZSBOb2RlTGlzdCBpbnRlcmZh
Y2UuIikKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykg
aW5zdGFuY2VvZiBOb2RlTGlzdCIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNb
J2ZvbyddIGluc3RhbmNlb2YgTm9kZUxpc3QiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2Rl
bGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVh
Y2gtZWxlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRh
aW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3Qt
Z2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVs
ZW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM4IEBACitUaGlzIHRl
c3QgZW5zdXJlIHRoYXQgUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBhcnJheSByZXR1cm5z
IGFuIGFycmF5IHdob3NlIHZhbHVzZSBhcmUgb2J0YWluZWQgZnJvbSB0aGUgaXRlbVZhbHVlIERP
TSBwcm9wZXJ0eSBvZiBlYWNoIG9mIHRoZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSB0aGUgb2Jq
ZWN0LCBpbiB0cmVlIG9yZGVyLgorCitwcm9wZXJ0eSBpbmRleCAwLCB0YWcgRElWCitQQVNTIHZh
bHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBp
bmRleCAxLCB0YWcgU1BBTgorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0
W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMiwgdGFnIE1FVEEKK1BBU1MgdmFsdWVzQXJy
YXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDMs
IHRhZyBBVURJTworUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0
ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggNCwgdGFnIEVNQkVECitQQVNTIHZhbHVlc0FycmF5W2ld
IGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCA1LCB0YWcg
SUZSQU1FCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZh
bHVlCitwcm9wZXJ0eSBpbmRleCA2LCB0YWcgSU1HCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHBy
b3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCA3LCB0YWcgU09VUkNF
CitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitw
cm9wZXJ0eSBpbmRleCA4LCB0YWcgVklERU8KK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVy
dHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDksIHRhZyBUUkFDSworUEFT
UyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVy
dHkgaW5kZXggMTAsIHRhZyBBCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxp
c3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxMSwgdGFnIEFSRUEKK1BBU1MgdmFsdWVz
QXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4
IDEyLCB0YWcgTElOSworUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ld
Lml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMTMsIHRhZyBQCitQQVNTIHZhbHVlc0FycmF5W2ld
IGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxNCwgdGFn
IFNQQU4KK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFs
dWUKK1BBU1MgdmFsdWVzQXJyYXkubGVuZ3RoIGlzIDE1CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAgICAgIAorCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVz
LW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZh
bHVlcy1hcnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJv
cGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZh
bHVlLW9mLWVhY2gtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUyIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
bWljcm9kYXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMg
dGVzdCBlbnN1cmUgdGhhdCBQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIGFycmF5IHJldHVy
bnMgYW4gYXJyYXkgd2hvc2UgdmFsdXNlIGFyZSBvYnRhaW5lZCBmcm9tIHRoZSBpdGVtVmFsdWUg
RE9NIHByb3BlcnR5IG9mIGVhY2ggb2YgdGhlIGVsZW1lbnRzIHJlcHJlc2VudGVkIGJ5IHRoZSBv
YmplY3QsIGluIHRyZWUgb3JkZXIuPC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8ZGl2
PgorPGRpdiBpZD0iaWQxIj4KKzxkaXYgaXRlbXByb3A9ImZvbyI+Cis8c3BhbiBpdGVtcHJvcD0i
Zm9vIiBpdGVtc2NvcGU+PC9zcGFuPgorPC9kaXY+Cis8ZGl2IGl0ZW1zY29wZSBpdGVtcmVmPSJp
ZDEiIGlkPSJpdGVtIj4KKzxtZXRhIGl0ZW1wcm9wPSJmb28iIGNvbnRlbnQ9InRlc3QiIC8+Cis8
YXVkaW8gaXRlbXByb3A9ImZvbyIgc3JjPSJhdWRpby5tcDMiPjwvYXVkaW8+Cis8ZW1iZWQgaXRl
bXByb3A9ImZvbyIgc3JjPSJ0ZXN0LnN3ZiIgLz4KKzxpZnJhbWUgaXRlbXByb3A9ImZvbyIgc3Jj
PSJ0ZXN0Lmh0bWwiPjwvaWZyYW1lPgorPGltZyBpdGVtcHJvcD0iZm9vIiBzcmM9InRlc3QuanBn
IiAvPgorPGF1ZGlvIGNvbnRyb2xzPSJjb250cm9scyI+Cis8c291cmNlIGl0ZW1wcm9wPSJmb28i
IHNyYz0ic29uZy5tcDMiIHR5cGU9ImF1ZGlvL21wMyIgLz4KKzwvYXVkaW8+Cis8dmlkZW8gaXRl
bXByb3A9ImZvbyIgc3JjPSJ2aWRlby5tcDQiPjwvdmlkZW8+Cis8dmlkZW8gc3JjPSJ2aWRlby5t
cDQiPgorPHRyYWNrIGl0ZW1wcm9wPSJmb28iIHNyYz0ic3VidGl0bGVzX2VuLnZ0dCI+Cis8L3Zp
ZGVvPgorPGEgaXRlbXByb3A9ImZvbyIgc3JjPSJsaW5rLmh0bWwiPjwvYT4KKzxtYXA+Cis8YXJl
YSBpdGVtcHJvcD0iZm9vIiBocmVmPSJ0ZXN0Lmh0bWwiIC8+Cis8L21hcD4KKzxsaW5rIGl0ZW1w
cm9wPSJmb28iIGhyZWY9InRlc3QuY3NzIiAvPgorPHAgaXRlbXByb3A9ImZvbyI+Cis8c3BhbiBp
dGVtcHJvcD0iZm9vIiBpdGVtc2NvcGU+Cis8YSBpdGVtcHJvcD0iZm9vIiBzcmM9InRlc3RfYW5j
aG9yLmh0bWwiPjwvYT4KKzwvc3Bhbj4KKzwvcD4KKzwvZGl2PgorPC9kaXY+Cis8c2NyaXB0Pgor
dmFyIGl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaXRlbSIpOwordmFyIHByb3BlcnR5
Tm9kZUxpc3QgPSBpdGVtLnByb3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKTsKK3ZhciB2YWx1ZXNB
cnJheSA9IHByb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVzKCk7Citmb3IgKHZhciBpID0gMDsgaSA8
IHByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoOyBpKyspIHsKKyAgICBkZWJ1ZygncHJvcGVydHkgaW5k
ZXggJyArIGkgKyAnLCB0YWcgJyArIHByb3BlcnR5Tm9kZUxpc3RbaV0udGFnTmFtZSk7CisgICAg
c2hvdWxkQmUoInZhbHVlc0FycmF5W2ldIiwgInByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVl
Iik7Cit9CitzaG91bGRCZSgidmFsdWVzQXJyYXkubGVuZ3RoIiwgJzE1Jyk7Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2
YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAorUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1
ZXMoKSBtZXRob2QgdGVzdC4KKworUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2Qg
bXVzdCByZXR1cm4gYW4gYXJyYXkuCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0o
J2ZvbycpLmdldFZhbHVlcygpIGluc3RhbmNlb2YgQXJyYXkgaXMgdHJ1ZQorUEFTUyBlbGVtZW50
LnByb3BlcnRpZXNbJ2ZvbyddLmdldFZhbHVlcygpIGluc3RhbmNlb2YgQXJyYXkgaXMgdHJ1ZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVl
cy10ZXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10
ZXN0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9u
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+UHJvcGVydHlOb2RlTGlzdC5nZXRW
YWx1ZXMoKSBtZXRob2QgdGVzdC48L3A+Cis8ZGl2IGl0ZW1zY29wZSBpZD0iaXRlbSI+Cis8ZGl2
IGl0ZW1wcm9wPSJmb28iPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpdGVtJyk7
CitkZWJ1ZygiUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QgbXVzdCByZXR1cm4g
YW4gYXJyYXkuIik7CitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0o
J2ZvbycpLmdldFZhbHVlcygpIGluc3RhbmNlb2YgQXJyYXkiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxl
bWVudC5wcm9wZXJ0aWVzWydmb28nXS5nZXRWYWx1ZXMoKSBpbnN0YW5jZW9mIEFycmF5Iik7CisK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9w
cm9wZXJ0eW5vZGVsaXN0LXRlc3QtYWRkLXJlbW92ZS1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVs
aXN0LXRlc3QtYWRkLXJlbW92ZS1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzNSBAQAorTWljcm9kYXRhIHByb3BlcnRpZXMgY29sbGVjdGlvbiBtdXN0IHVwZGF0
ZSBvbiBhZGRpbmcgb3IgcmVtb3ZpbmcgcHJvcGVydHkuCisKK1BBU1MgcHJvcGVydHlOb2RlTGlz
dC5sZW5ndGggPT0gJzEnIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVt
LmNoaWxkcmVuWzBdIGlzIHRydWUKK0FkZCBhIHByb3BlcnR5IHRvIHRoZSBpdGVtLgorQ3JlYXRl
ZCBlbGVtZW50IG9mIHR5cGU6IGRpdgorU2V0IGF0dHJpYnV0ZTogaXRlbXByb3AsIHZhbHVlOiBm
b28KK1BBU1MgcHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIHByb3Bl
cnR5Tm9kZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJlblswXSBpcyB0cnVlCitQQVNTIHByb3BlcnR5
Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblsxXSBpcyB0cnVlCitSZW1vdmUgaXRlbXByb3Ag
YXR0cmlidXRlIG9mIHRoZSBmaXJzdCBjaGlsZC4KK1BBU1MgcHJvcGVydHlOb2RlTGlzdC5sZW5n
dGggPT0gMSBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJl
blsxXSBpcyB0cnVlCitBZGQgaXRlbXByb3AgYXR0cmlidXRlIHRvIHRoZSBmaXJzdCBjaGlsZC4K
K1BBU1MgcHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIHByb3BlcnR5
Tm9kZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJlblswXSBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9k
ZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblsxXSBpcyB0cnVlCitBZGQgaXRlbXJlZiBhdHRyaWJ1
dGUuCitQQVNTIHByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDMgaXMgdHJ1ZQorUEFTUyBwcm9w
ZXJ0eU5vZGVMaXN0WzBdID09IHRlc3RFbGVtZW50IGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2Rl
TGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVuWzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlz
dFsyXSA9PSBpdGVtLmNoaWxkcmVuWzFdIGlzIHRydWUKK1JlbW92ZSBpdGVtcmVmIGF0dHJpYnV0
ZS4KK1BBU1MgcHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMiBpcyB0cnVlCitQQVNTIHByb3Bl
cnR5Tm9kZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJlblswXSBpcyB0cnVlCitQQVNTIHByb3BlcnR5
Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblsxXSBpcyB0cnVlCitBZGQgaXRlbXJlZiBhdHRy
aWJ1dGUuCitQQVNTIHByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDMgaXMgdHJ1ZQorUEFTUyBw
cm9wZXJ0eU5vZGVMaXN0WzBdID09IHRlc3RFbGVtZW50IGlzIHRydWUKK1BBU1MgcHJvcGVydHlO
b2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVuWzBdIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2Rl
TGlzdFsyXSA9PSBpdGVtLmNoaWxkcmVuWzFdIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxlbWVudC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5v
ZGVsaXN0LXRlc3QtYWRkLXJlbW92ZS1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC10ZXN0LWFkZC1yZW1v
dmUtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRh
LWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPk1pY3JvZGF0YSBwcm9w
ZXJ0aWVzIGNvbGxlY3Rpb24gbXVzdCB1cGRhdGUgb24gYWRkaW5nIG9yIHJlbW92aW5nIHByb3Bl
cnR5LjwvcD4KKzxkaXYgaXRlbXByb3A9ImZvbyIgaWQ9InRlc3QiPgorPC9kaXY+Cis8ZGl2IGl0
ZW1zY29wZSBpZD0ibWljcm9kYXRhLWl0ZW0iPgorPHAgaXRlbXByb3A9ImZvbyI+PC9wPgorPC9k
aXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgaXRlbSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdtaWNyb2RhdGEtaXRlbScpOwordmFyIHByb3BlcnR5Tm9kZUxp
c3QgPSBpdGVtLnByb3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKTsKK3ZhciB0ZXN0RWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7CisKK3Nob3VsZEJlVHJ1ZSgicHJvcGVy
dHlOb2RlTGlzdC5sZW5ndGggPT0gJzEnIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxp
c3RbMF0gPT0gaXRlbS5jaGlsZHJlblswXSIpOworCitkZWJ1ZygnQWRkIGEgcHJvcGVydHkgdG8g
dGhlIGl0ZW0uJyk7CitpdGVtLmFwcGVuZENoaWxkKGNyZWF0ZUVsZW1lbnQoJ2RpdicsIHtpdGVt
cHJvcDogJ2Zvbyd9KSk7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09
IDIiKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVu
WzBdIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJl
blsxXSIpOworCitkZWJ1ZygnUmVtb3ZlIGl0ZW1wcm9wIGF0dHJpYnV0ZSBvZiB0aGUgZmlyc3Qg
Y2hpbGQuJyk7CitpdGVtLmNoaWxkcmVuWzBdLnJlbW92ZUF0dHJpYnV0ZSgnaXRlbXByb3AnKTsK
K3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMSIpOworc2hvdWxkQmVU
cnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzBdID09IGl0ZW0uY2hpbGRyZW5bMV0iKTsKKworZGVidWco
J0FkZCBpdGVtcHJvcCBhdHRyaWJ1dGUgdG8gdGhlIGZpcnN0IGNoaWxkLicpOworaXRlbS5jaGls
ZHJlblswXS5zZXRBdHRyaWJ1dGUoJ2l0ZW1wcm9wJywgJ2ZvbycpOworc2hvdWxkQmVUcnVlKCJw
cm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAyIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9k
ZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJlblswXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5v
ZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRyZW5bMV0iKTsKKworZGVidWcoJ0FkZCBpdGVtcmVmIGF0
dHJpYnV0ZS4nKTsKK2l0ZW0uc2V0QXR0cmlidXRlKCdpdGVtcmVmJywgJ3Rlc3QnKTsKK3Nob3Vs
ZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMyIpOworc2hvdWxkQmVUcnVlKCJw
cm9wZXJ0eU5vZGVMaXN0WzBdID09IHRlc3RFbGVtZW50Iik7CitzaG91bGRCZVRydWUoInByb3Bl
cnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblswXSIpOworc2hvdWxkQmVUcnVlKCJwcm9w
ZXJ0eU5vZGVMaXN0WzJdID09IGl0ZW0uY2hpbGRyZW5bMV0iKTsKKworZGVidWcoJ1JlbW92ZSBp
dGVtcmVmIGF0dHJpYnV0ZS4nKTsKK2l0ZW0ucmVtb3ZlQXR0cmlidXRlKCdpdGVtcmVmJyk7Citz
aG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDIiKTsKK3Nob3VsZEJlVHJ1
ZSgicHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVuWzBdIik7CitzaG91bGRCZVRy
dWUoInByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblsxXSIpOworCitkZWJ1Zygn
QWRkIGl0ZW1yZWYgYXR0cmlidXRlLicpOworaXRlbS5zZXRBdHRyaWJ1dGUoJ2l0ZW1yZWYnLCAn
dGVzdCcpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAzIik7Citz
aG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gdGVzdEVsZW1lbnQiKTsKK3Nob3Vs
ZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVuWzBdIik7CitzaG91
bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMl0gPT0gaXRlbS5jaGlsZHJlblsxXSIpOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152603</attachid>
            <date>2012-07-16 13:33:20 -0700</date>
            <delta_ts>2012-07-23 05:18:59 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-80269-20120717.diff</filename>
            <type>text/plain</type>
            <size>77893</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMjc1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNiBAQAorMjAxMi0wNy0xNiAgQXJrbyBT
YWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgTWljcm9kYXRhOiBJbXBsZW1lbnQg
UHJvcGVydHlOb2RlTGlzdCBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MDI2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIFByb3BlcnR5Tm9kZUxpc3QgaW50
ZXJmYWNlLiBDdXJyZW50bHkgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLm5hbWVkSXRlbShuYW1l
KQorICAgICAgICByZXR1cm5zIE5vZGVMaXN0IG9iamVjdC4gTWFkZSBjaGFuZ2VzIHNvIHRoYXQg
aXQgd2lsbCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdCBvYmplY3QuCisKKyAgICAgICAgSW1wbGVt
ZW50ZWQgcHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QuIEl0IHJldHVybnMgYW4g
YXJyYXkgb2YgdmFyaW91cyB2YWx1ZXMuIEl0cworICAgICAgICB2YWx1ZXMgYXJlIG9idGFpbmVk
IGZyb20gdGhlICJpdGVtVmFsdWUiIERPTSBwcm9wZXJ0eSBvZiBlYWNoIG9mIHRoZSBlbGVtZW50
cyByZXByZXNlbnRlZCBieQorICAgICAgICB0aGUgb2JqZWN0LCBpbiB0cmVlIG9yZGVyLgorCisg
ICAgICAgIFNwZWM6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50
LXdvcmsvbXVsdGlwYWdlL2NvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI3Byb3BlcnR5bm9kZWxp
c3QKKworICAgICAgICBUZXN0czogZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5z
LXByb3BlcnR5bm9kZWxpc3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0
ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWlj
cm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVs
ZW1lbnQuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVc2VKU0MuY21ha2U6CisgICAgICAgICogVXNl
VjguY21ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IEFkZGVkIHRvSlMoKSBjdXN0b20g
bWV0aG9kLiBSZXR1cm5zIE5vZGUgaWYgaXRlbVZhbHVlIGlzIG5vZGUgZWxzZSByZXR1cm5zIFN0
cmluZy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNaWNyb0RhdGFJdGVtVmFsdWVD
dXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
dG9WOCk6IEFkZGVkIHRvVjggY3VzdG9tIGNvZGUuCisgICAgICAgICogZG9tL0R5bmFtaWNOb2Rl
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3Q6OnJvb3ROb2RlKTog
UmV0dXJuIGRvY3VtZW50IGlmIG93bmVyIG5vZGUgaGFzIGl0ZW1yZWYgYXR0cmlidXRlIHNwZWNp
ZmllZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RHluYW1pY05vZGVM
aXN0Ojpvd25lck5vZGVIYXNJdGVtUmVmQXR0cmlidXRlKTogUmV0dXJucyB0cnVlIGlmIG93bmVy
IG5vZGUgaGFzIGl0ZW1yZWYgYXR0cmlidXRlCisgICAgICAgIHNwZWNpZmllZCB3aXRoIHJvb3Qg
dHlwZSBOb2RlTGlzdFJvb3RlZEF0RG9jdW1lbnRJZk93bmVySGFzSXRlbXJlZkF0dHIuCisgICAg
ICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OmludmFsaWRhdGVDYWNoZSk6
CisgICAgICAgICogZG9tL0R5bmFtaWNOb2RlTGlzdC5oOiBBZGRlZCBtX2hhc0l0ZW1SZWZFbGVt
ZW50cyBpbiBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UgdG8gY2hlY2sgaWYKKyAgICAgICAgaXRl
bVJlZkVsbWVuZXRzIGNhY2hlIGlzIHZhbGlkLgorICAgICAgICAoV2ViQ29yZTo6RHluYW1pY05v
ZGVMaXN0Q2FjaGVCYXNlOjpEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjppc1Jvb3RlZEF0RG9jdW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpyb290VHlwZSk6IFJldHVy
bnMgY2FjaGVkIHJvb3QgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OkR5bmFtaWNOb2RlTGlzdENh
Y2hlQmFzZTo6aXNJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkKToKKyAgICAgICAgKFdlYkNvcmU6
OkR5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6c2V0SXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCk6
CisgICAgICAgIChEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpzaG91bGRJbnZhbGlkYXRlVHlwZU9uQXR0cmlidXRl
Q2hhbmdlKTogSW52YWxpZGF0ZSBOb2RlTGlzdENhY2hlCisgICAgICAgIG9uIGl0ZW1yZWYgYXR0
cmlidXRlIGNoYW5nZS4KKyAgICAgICAgKER5bmFtaWNOb2RlTGlzdCk6CisgICAgICAgICogZG9t
L05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cHJvcGVydHlOb2RlTGlzdCk6Cisg
ICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTm9kZSk6
CisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6UHJvcGVydHlOb2Rl
TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eU5vZGVMaXN0Ojp+UHJvcGVydHlOb2Rl
TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eU5vZGVMaXN0OjplbGVtZW50SXNQcm9w
ZXJ0eU9mUmVmRWxlbWVudCk6IENoZWNrcyBpZiB0aGUgdGVzdEVsZW1lbnQgaXMgYSBwcm9wZXJ0
eSBvZgorICAgICAgICBNaWNyb2RhdGEgaXRlbS4KKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5
Tm9kZUxpc3Q6OnVwZGF0ZUl0ZW1SZWZFbGVtZW50cyk6IFVwZGF0ZXMgSXRlbVJlZkVsZW1lbnRz
Q2FjaGUgaWYgdGhlIGNhY2hlIGlzCisgICAgICAgIGludmFsaWQgYW5kIHNldHMgaXRlbVJlZkVs
ZW1lbnRzQ2FjaGVWYWxpZC4KKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6Om5v
ZGVNYXRjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9kZUxpc3Q6OmdldFZhbHVl
cyk6IFJldHVybnMgUHJvcGVydHlWYWx1ZUFycmF5IHdob3NlIHZhbHVlcyBhcmUgb2J0YWluZWQg
ZnJvbSB0aGUKKyAgICAgICAgaXRlbVZhbHVlIERPTSBwcm9wZXJ0eSBvZiBlYWNoIG9mIHRoZSBl
bGVtZW50cyByZXByZXNlbnRlZCBieSB0aGUgb2JqZWN0LCBpbiB0cmVlIG9yZGVyLgorICAgICAg
ICAqIGRvbS9Qcm9wZXJ0eU5vZGVMaXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChQcm9wZXJ0eU5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5Tm9k
ZUxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRsOiBBZGRl
ZC4KKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxFbGVtZW50Ojpwcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEVsZW1lbnQ6OmdldEl0ZW1SZWZFbGVtZW50cyk6IFJldHVybnMgdGhlIEl0ZW1S
ZWZFbGVtZW50cyBsaXN0IG9mIGdpdmVuIGVsZW1lbnQuIEFkZGVkIHRoaXMKKyAgICAgICAgbWV0
aG9kIHRvIHNoYXJlIHRoZSBjb2RlIGJldHdlZW4gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uIGFu
ZCBQcm9wZXJ0eU5vZGVMaXN0IHRvIHVwZGF0ZSBpdGVtUmVmRWxlbWVudHMuCisgICAgICAgICog
aHRtbC9IVE1MRWxlbWVudC5oOgorICAgICAgICAoSFRNTEVsZW1lbnQpOgorICAgICAgICAqIGh0
bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcDogUmVtb3ZlZCBtX2hhc0l0ZW1SZWZFbGVt
ZW50cyBtZW1iZXIgdmFyaWFibGUsIG5vdyBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UKKyAgICAg
ICAgaGFzIGlzSXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZC4gQWxzbyByZW1vdmVkIG1faGFzUHJv
cGVydHlOYW1lQ2FjaGUsIGFzIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZSBhbHJlYWR5IGhhcwor
ICAgICAgICBoYXNOYW1lQ2FjaGUoKSBhbmQgc2V0SGFzTmFtZUNhY2hlKCkuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OnVwZGF0ZVJl
ZkVsZW1lbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6
dXBkYXRlTmFtZUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbjo6bmFtZWRJdGVtKTogUmV0dXJuIFByb3BlcnR5Tm9kZUxpc3Qgb2JqZWN0IGluc3RlYWQg
b2YgTm9kZUxpc3QuCisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246
Omhhc05hbWVkSXRlbSk6IFJldHVybiB0cnVlIGlmIGl0IGZpbmRzIGFuIGl0ZW0gd2l0aCBnaXZl
bgorICAgICAgICBuYW1lIGluIHRoZSBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24uCisgICAgICAgICog
aHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQ
cm9wZXJ0aWVzQ29sbGVjdGlvbjo6aW52YWxpZGF0ZUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6dXBkYXRlUHJvcGVydHlDYWNoZSk6CisgICAgICAg
ICogaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsOgorICAgICAgICAqIGh0bWwvTWlj
cm9EYXRhSXRlbVZhbHVlLmlkbDogQWRkZWQuCisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRs
OgorCiAyMDEyLTA3LTE2ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUG9zaXRpb24gZ3JpZCBpdGVtcyBieSByb3cvY29sdW1uIGluZGV4CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAkocmV2aXNpb24gMTIyNzUyKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIzOSw2ICsyMzksNyBAQCBTRVQoV2ViQ29yZV9JRExf
RklMRVMKICAgICBkb20vUG9wU3RhdGVFdmVudC5pZGwKICAgICBkb20vUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uLmlkbAogICAgIGRvbS9Qcm9ncmVzc0V2ZW50LmlkbAorICAgIGRvbS9Qcm9wZXJ0eU5v
ZGVMaXN0LmlkbAogICAgIGRvbS9SYW5nZUV4Y2VwdGlvbi5pZGwKICAgICBkb20vUmFuZ2UuaWRs
CiAgICAgZG9tL1NoYWRvd1Jvb3QuaWRsCkBAIC0zNDUsNiArMzQ2LDcgQEAgU0VUKFdlYkNvcmVf
SURMX0ZJTEVTCiAgICAgaHRtbC9JbWFnZURhdGEuaWRsCiAgICAgaHRtbC9NZWRpYUNvbnRyb2xs
ZXIuaWRsCiAgICAgaHRtbC9NZWRpYUVycm9yLmlkbAorICAgIGh0bWwvTWljcm9EYXRhSXRlbVZh
bHVlLmlkbAogICAgIGh0bWwvUmFkaW9Ob2RlTGlzdC5pZGwKICAgICBodG1sL1RleHRNZXRyaWNz
LmlkbAogICAgIGh0bWwvVGltZVJhbmdlcy5pZGwKQEAgLTY0MSw2ICs2NDMsNyBAQCBTRVQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgZG9tL1Bvc2l0aW9uSXRlcmF0b3IuY3BwCiAgICAgZG9tL1Byb2Nl
c3NpbmdJbnN0cnVjdGlvbi5jcHAKICAgICBkb20vUHJvZ3Jlc3NFdmVudC5jcHAKKyAgICBkb20v
UHJvcGVydHlOb2RlTGlzdC5jcHAKICAgICBkb20vUXVhbGlmaWVkTmFtZS5jcHAKICAgICBkb20v
UmFuZ2UuY3BwCiAgICAgZG9tL1JhbmdlRXhjZXB0aW9uLmNwcApJbmRleDogU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLmNwcAkocmV2aXNpb24gMTIyNzUyKQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjcsNiArMjY3LDcgQEAKICNpbmNsdWRl
ICJKU1Bvc2l0aW9uRXJyb3JDYWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNQcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uY3BwIgogI2luY2x1ZGUgIkpTUHJvZ3Jlc3NFdmVudC5jcHAiCisjaW5jbHVkZSAi
SlNQcm9wZXJ0eU5vZGVMaXN0LmNwcCIKICNpbmNsdWRlICJKU1JhZGlvTm9kZUxpc3QuY3BwIgog
I2luY2x1ZGUgIkpTUmFuZ2UuY3BwIgogI2luY2x1ZGUgIkpTUmFuZ2VFeGNlcHRpb24uY3BwIgpJ
bmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxMjI3NTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0yNDIs
NiArMjQyLDggQEAgQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvZG9tL1BvcFN0YXRl
RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRs
IFwKICAgICAkKFdlYkNvcmUpL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCisgICAgJChXZWJDb3Jl
KS9kb20vUHJvZ3Jlc3NFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL1Byb3BlcnR5Tm9k
ZUxpc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9SYW5nZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vUmVxdWVzdEFu
aW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsIFwKQEAgLTM0OCw2ICszNTAsNyBAQCBCSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS9odG1sL0ltYWdlRGF0YS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvaHRtbC9NZWRpYUNvbnRyb2xsZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvTWVkaWFF
cnJvci5pZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL2h0bWwvUmFkaW9Ob2RlTGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkv
aHRtbC9UZXh0TWV0cmljcy5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9UaW1lUmFuZ2VzLmlk
bCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMucHJpCShyZXZpc2lvbiAxMjI3NTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTI1
Miw2ICsyNTIsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQkUFdEL2RvbS9Qb3BTdGF0ZUV2
ZW50LmlkbCBcCiAgICAgJCRQV0QvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwgXAogICAg
ICQkUFdEL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCisgICAgJCRQV0QvZG9tL1Byb3BlcnR5Tm9k
ZUxpc3QuaWRsIFwKICAgICAkJFBXRC9kb20vUmFuZ2VFeGNlcHRpb24uaWRsIFwKICAgICAkJFBX
RC9kb20vUmFuZ2UuaWRsIFwKICAgICAkJFBXRC9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2Fs
bGJhY2suaWRsIFwKQEAgLTM5Niw2ICszOTcsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgICQk
UFdEL2h0bWwvSW1hZ2VEYXRhLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9NZWRpYUNvbnRyb2xsZXIu
aWRsIFwKICAgICAkJFBXRC9odG1sL01lZGlhRXJyb3IuaWRsIFwKKyAgICAkJFBXRC9odG1sL01p
Y3JvRGF0YUl0ZW1WYWx1ZS5pZGwgXAogICAgICQkUFdEL2h0bWwvUmFkaW9Ob2RlTGlzdC5pZGwg
XAogICAgICQkUFdEL2h0bWwvVGV4dE1ldHJpY3MuaWRsIFwKICAgICAkJFBXRC9odG1sL1RpbWVS
YW5nZXMuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24g
MTIyNzUyKQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBj
b3B5KQpAQCAtNDA1LDYgKzQwNSw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU01lc3NhZ2VFdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTWVzc2FnZVBvcnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVz
c2FnZVBvcnQuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01pY3JvRGF0YUl0ZW1WYWx1
ZS5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNaWNyb0RhdGFJdGVtVmFsdWUuaCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01vdXNlRXZlbnQuY3BwIFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TXV0YXRpb25DYWxsYmFjay5jcHAgXApAQCAtNDc3LDYgKzQ3OSw4IEBAIHdlYmNvcmVfYnVpbHRf
c291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Byb2Nlc3NpbmdJbnN0cnVj
dGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJvZ3Jlc3NFdmVudC5jcHAgXAog
CURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9ncmVzc0V2ZW50LmggXAorCURlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNQcm9wZXJ0eU5vZGVMaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1Byb3BlcnR5Tm9kZUxpc3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Jh
ZGlvTm9kZUxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmFkaW9Ob2RlTGlz
dC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmFuZ2UuY3BwIFwKQEAgLTc5NSw2ICs3
OTksNyBAQCBkb21fYmluZGluZ19pZGxzICs9IFwKIAkkKFdlYkNvcmUpL2RvbS9Qb3BTdGF0ZUV2
ZW50LmlkbCBcCiAJJChXZWJDb3JlKS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlkbCBcCiAJ
JChXZWJDb3JlKS9kb20vUHJvZ3Jlc3NFdmVudC5pZGwgXAorCSQoV2ViQ29yZSkvZG9tL1Byb3Bl
cnR5Tm9kZUxpc3QuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9SYW5nZS5pZGwgXAogCSQoV2ViQ29y
ZSkvZG9tL1JhbmdlRXhjZXB0aW9uLmlkbCBcCiAJJChXZWJDb3JlKS9kb20vU2hhZG93Um9vdC5p
ZGwgXApAQCAtOTAwLDYgKzkwNSw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29y
ZSkvaHRtbC9NZWRpYUVycm9yLmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL01lZGlhS2V5RXJyb3Iu
aWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvTWVkaWFLZXlFdmVudC5pZGwgXAorCSQoV2ViQ29yZSkv
aHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvUmFkaW9Ob2Rl
TGlzdC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9UZXh0TWV0cmljcy5pZGwgXAogCSQoV2ViQ29y
ZSkvaHRtbC9UaW1lUmFuZ2VzLmlkbCBcCkBAIC0xNDgyLDYgKzE0ODgsNyBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3Vz
dG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3Rv
bS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20u
aCBcCisJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0
b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tD
dXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2
ZXJDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1h
cEN1c3RvbS5jcHAgXApAQCAtMjAxMSw2ICsyMDE4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9Qcm9ncmVzc0V2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Byb2dy
ZXNzRXZlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vUXVhbGlmaWVkTmFtZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWRO
YW1lLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZUJvdW5kYXJ5UG9pbnQuaCBcCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkJKHJldmlzaW9uIDEyMjc1MikKKysrIFNvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkJKHdvcmtpbmcgY29weSkKQEAgLTIwMCw2ICsyMDAsNyBAQCB2OCB7CiAgICAgICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOE1lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwIFwKICAgICAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3BwIFwKICAgICAgICAgYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCBcCisgICAgICAgIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAgXAogICAgICAgICBi
aW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCBcCiAgICAgICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKICAgICAg
ICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2RlTWFwQ3VzdG9tLmNwcCBcCkBAIC0zMzIs
NiArMzMzLDcgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3Rv
bS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBcCiAg
ICAgICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaCBcCisgICAgICAgIGJpbmRp
bmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdz
L2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9K
U011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNOYW1l
ZE5vZGVNYXBDdXN0b20uY3BwIFwKQEAgLTYwNSw2ICs2MDcsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBkb20vUG9zaXRpb25JdGVyYXRvci5jcHAgXAogICAgIGRvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24uY3BwIFwKICAgICBkb20vUHJvZ3Jlc3NFdmVudC5jcHAgXAorICAgIGRvbS9Qcm9wZXJ0eU5v
ZGVMaXN0LmNwcCBcCiAgICAgZG9tL1F1YWxpZmllZE5hbWUuY3BwIFwKICAgICBkb20vUmFuZ2Uu
Y3BwIFwKICAgICBkb20vUmFuZ2VFeGNlcHRpb24uY3BwIFwKQEAgLTE3OTIsNiArMTc5NSw3IEBA
IEhFQURFUlMgKz0gXAogICAgIGRvbS9Qb3NpdGlvbkl0ZXJhdG9yLmggXAogICAgIGRvbS9Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCiAgICAgZG9tL1Byb2dyZXNzRXZlbnQuaCBcCisgICAgZG9t
L1Byb3BlcnR5Tm9kZUxpc3QuaCBcCiAgICAgZG9tL1F1YWxpZmllZE5hbWUuaCBcCiAgICAgZG9t
L1JhbmdlLmggXAogICAgIGRvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oIFwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9V
c2VKU0MuY21ha2UJKHJldmlzaW9uIDEyMjc1MikKKysrIFNvdXJjZS9XZWJDb3JlL1VzZUpTQy5j
bWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSw3IEBAIExJU1QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMv
SlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1W
YWx1ZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUv
VXNlVjguY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UJKHJl
dmlzaW9uIDEyMjc1MikKKysrIFNvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCSh3b3JraW5nIGNv
cHkpCkBAIC0xMzAsNiArMTMwLDcgQEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAg
YmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAKICAgICBi
aW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
djgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3BwCisgICAgYmluZGluZ3MvdjgvY3VzdG9t
L1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL3Y4L2N1c3RvbS9W
OE11dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhOYW1lZE5v
ZGVNYXBDdXN0b20uY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMjI3NTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTk4OCw2ICs5
ODgsNyBAQAogICAgICAgICAgICAgJ2RvbS9Qb3BTdGF0ZUV2ZW50LmlkbCcsCiAgICAgICAgICAg
ICAnZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Qcm9n
cmVzc0V2ZW50LmlkbCcsCisgICAgICAgICAgICAnZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRsJywK
ICAgICAgICAgICAgICdkb20vUmFuZ2UuaWRsJywKICAgICAgICAgICAgICdkb20vUmFuZ2VFeGNl
cHRpb24uaWRsJywKICAgICAgICAgICAgICdkb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2suaWRsJywKQEAgLTEwOTUsNiArMTA5Niw3IEBACiAgICAgICAgICAgICAnaHRtbC9JbWFnZURh
dGEuaWRsJywKICAgICAgICAgICAgICdodG1sL01lZGlhQ29udHJvbGxlci5pZGwnLAogICAgICAg
ICAgICAgJ2h0bWwvTWVkaWFFcnJvci5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvTWljcm9EYXRh
SXRlbVZhbHVlLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9NZWRpYUtleUVycm9yLmlkbCcsCiAg
ICAgICAgICAgICAnaHRtbC9NZWRpYUtleUV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9S
YWRpb05vZGVMaXN0LmlkbCcsCkBAIC0yMDMzLDYgKzIwMzUsNyBAQAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pz
L0pTTWVzc2FnZVBvcnRDdXN0b20uaCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNaWNy
b0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU011
dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU011
dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU05h
bWVkTm9kZU1hcEN1c3RvbS5jcHAnLApAQCAtMjM0Myw2ICsyMzQ2LDcgQEAKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3Bw
JywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNaWNyb0RhdGFJdGVtVmFsdWVD
dXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNdXRhdGlvbkNh
bGxiYWNrQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAnLApAQCAtNTIzNyw2ICs1MjQxLDggQEAKICAgICAg
ICAgICAgICdkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgnLAogICAgICAgICAgICAgJ2RvbS9Q
cm9ncmVzc0V2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1Byb2dyZXNzRXZlbnQuaCcsCisg
ICAgICAgICAgICAnZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwJywKKyAgICAgICAgICAgICdkb20v
UHJvcGVydHlOb2RlTGlzdC5oJywKICAgICAgICAgICAgICdkb20vUXVhbGlmaWVkTmFtZS5jcHAn
LAogICAgICAgICAgICAgJ2RvbS9SYW5nZS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9SYW5nZUV4
Y2VwdGlvbi5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oJKHJldmlzaW9uIDEyMjc1MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMxMCw2ICsxMTMxMCw2
MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
TWljcm9EYXRhSXRlbVZhbHVlLmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJ
CQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4K
KwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlO
YW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJ
PgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1l
PSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25C
dWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTTWV0YWRhdGEuY3Bw
IgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTEyOTkwLDYgKzEzMDQ2LDYyIEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNQcm9w
ZXJ0eU5vZGVMaXN0LmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJS
ZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU1Byb3BlcnR5Tm9kZUxpc3QuaCIKKwkJCQk+CisJCQk8L0Zp
bGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1JhZGlvTm9kZUxpc3QuY3BwIgog
CQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTUyODQ3LDYgKzUyOTU5LDYyIEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxQcm9w
ZXJ0eU5vZGVMaXN0LmNwcCIKKwkJCQk+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgor
CQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJS
ZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJ
CQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1
Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIK
KwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFByb3BlcnR5Tm9kZUxpc3QuaCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFF1YWxpZmllZE5hbWUu
Y3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTY4MzQ2LDYgKzY4NTE0LDYyIEBACiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xq
c1xKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAiCisJCQkJCT4KKwkJCQkJPEZpbGVDb25m
aWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlX0Nh
aXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJ
PgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIK
KwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgorCQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8L0ZpbGU+CisJ
CQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU01pY3JvRGF0YUl0
ZW1WYWx1ZUN1c3RvbS5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCIK
IAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEyMjc1MikK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtMjgwLDYgKzI4MCwxMyBAQAogCQkwRkY1MDI2QTEwMkJBOTQzMDA2NkYz
OUEgLyogSlNTdHlsZU1lZGlhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRkY1MDI2ODEwMkJBOTQzMDA2NkYzOUEgLyogSlNTdHlsZU1lZGlhLmggKi87
IH07CiAJCTBGRjUwMjcxMTAyQkE5NkEwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjUwMjZFMTAyQkE5NjYw
MDY2RjM5QSAvKiBTdHlsZU1lZGlhLmNwcCAqLzsgfTsKIAkJMEZGNTAyNzIxMDJCQTk2QTAwNjZG
MzlBIC8qIFN0eWxlTWVkaWEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGRjUwMjZGMTAyQkE5NkEwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmggKi87IH07
CisJCTEwNTk0NTczMTVCNDI5NTMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMDU5
NDU3MjE1QjQyOTUzMDA0RDM3RkQgLyogSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwICov
OyB9OworCQkxMDU5NDU3NzE1QjQyQTBEMDA0RDM3RkQgLyogSlNNaWNyb0RhdGFJdGVtVmFsdWUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTA1OTQ1
NzUxNUI0MkEwRDAwNEQzN0ZEIC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlLmNwcCAqLzsgfTsKKwkJ
MTA1OTQ1N0ExNUI0MkE0MzAwNEQzN0ZEIC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMDU5NDU3OTE1QjQyQTQz
MDA0RDM3RkQgLyogSlNNaWNyb0RhdGFJdGVtVmFsdWUuaCAqLzsgfTsKKwkJMTA1OTQ1OTcxNUI0
MkE4RTAwNEQzN0ZEIC8qIFByb3BlcnR5Tm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTA1OTQ1OTYxNUI0MkE4RTAwNEQzN0ZEIC8qIFBy
b3BlcnR5Tm9kZUxpc3QuY3BwICovOyB9OworCQkxMDU5NDU5OTE1QjQyQUEwMDA0RDM3RkQgLyog
UHJvcGVydHlOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTA1OTQ1OTgxNUI0MkFBMDAwNEQzN0ZEIC8qIFByb3BlcnR5Tm9kZUxpc3QuaCAq
LzsgfTsKKwkJMTA1OTQ1OUQxNUI0MkIwQzAwNEQzN0ZEIC8qIEpTUHJvcGVydHlOb2RlTGlzdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMDU5NDU5
QzE1QjQyQjBDMDA0RDM3RkQgLyogSlNQcm9wZXJ0eU5vZGVMaXN0LmNwcCAqLzsgfTsKKwkJMTA1
OTQ1OUYxNUI0MkIxQTAwNEQzN0ZEIC8qIEpTUHJvcGVydHlOb2RlTGlzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTA1OTQ1OUUxNUI0MkIxQTAwNEQz
N0ZEIC8qIEpTUHJvcGVydHlOb2RlTGlzdC5oICovOyB9OwogCQkxMEZCMDg0QjE0RTE1QzdFMDBB
M0RCOTggLyogUHVibGljVVJMTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTBGQjA4NEExNEUxNUM3RTAwQTNEQjk4IC8qIFB1YmxpY1VSTE1h
bmFnZXIuaCAqLzsgfTsKIAkJMTJGMzVFQjYxNTg3NDVBNDAwMzVDQjYzIC8qIFdlYktpdE5hbWVk
Rmxvd0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDEyRjM1RUI0MTU4NzQ1QTQwMDM1Q0I2MyAvKiBXZWJLaXROYW1lZEZsb3dDb2xsZWN0
aW9uLmggKi87IH07CiAJCTEyRjM1RUI3MTU4NzQ1QTQwMDM1Q0I2MyAvKiBXZWJLaXROYW1lZEZs
b3dDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDEyRjM1RUI1MTU4NzQ1QTQwMDM1Q0I2MyAvKiBXZWJLaXROYW1lZEZsb3dDb2xsZWN0
aW9uLmNwcCAqLzsgfTsKQEAgLTcyNDEsNiArNzI0OCwxNSBAQAogCQkwRkY1MDI2RTEwMkJBOTY2
MDA2NkYzOUEgLyogU3R5bGVNZWRpYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBTdHlsZU1lZGlhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZG
NTAyNkYxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU3R5bGVNZWRpYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkwRkY1MDI3MDEwMkJBOTZBMDA2NkYzOUEgLyogU3R5bGVNZWRpYS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gU3R5bGVNZWRpYS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTEwNTk0NTcxMTVCNDI4QzMwMDREMzdGRCAvKiBNaWNyb0RhdGFJdGVtVmFsdWUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IE1pY3JvRGF0YUl0ZW1WYWx1ZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTEwNTk0NTcyMTVCNDI5NTMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0
ZW1WYWx1ZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTEwNTk0NTc1MTVCNDJBMEQwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01pY3JvRGF0YUl0ZW1WYWx1
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTEwNTk0NTc5MTVCNDJBNDMwMDRE
MzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxMDU5NDU5NjE1QjQyQThFMDA0RDM3RkQgLyogUHJvcGVydHlOb2RlTGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9wZXJ0eU5vZGVMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTA1OTQ1OTgxNUI0MkFBMDAwNEQzN0ZEIC8q
IFByb3BlcnR5Tm9kZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJv
cGVydHlOb2RlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxMDU5NDU5QTE1
QjQyQUMwMDA0RDM3RkQgLyogUHJvcGVydHlOb2RlTGlzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUHJvcGVydHlOb2RlTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTEwNTk0NTlDMTVCNDJCMEMwMDREMzdGRCAvKiBKU1Byb3BlcnR5Tm9kZUxpc3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQcm9wZXJ0eU5vZGVMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTA1OTQ1OUUxNUI0MkIxQTAwNEQzN0ZEIC8q
IEpTUHJvcGVydHlOb2RlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1Byb3BlcnR5Tm9kZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTBGQjA4
NEExNEUxNUM3RTAwQTNEQjk4IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUHVibGljVVJMTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxMkYzNUVCNDE1ODc0NUE0MDAzNUNCNjMgLyogV2ViS2l0TmFtZWRGbG93Q29s
bGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXROYW1lZEZs
b3dDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTEyRjM1RUI1MTU4
NzQ1QTQwMDM1Q0I2MyAvKiBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc0NjksNiArMTc0ODUsNyBAQAogCQkJ
CTA3QTZEMUVBMTQ5MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmggKi8s
CiAJCQkJOUIyRjdDRjcxNDU2MjEyMDAwN0Y4QjUwIC8qIE1pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAg
Ki8sCiAJCQkJOUIyRjdDRjgxNDU2MjEyMDAwN0Y4QjUwIC8qIE1pY3JvRGF0YUl0ZW1WYWx1ZS5o
ICovLAorCQkJCTEwNTk0NTcxMTVCNDI4QzMwMDREMzdGRCAvKiBNaWNyb0RhdGFJdGVtVmFsdWUu
aWRsICovLAogCQkJCUY1NUIzRDkxMTI1MUYxMkQwMDNFRjI2OSAvKiBNb250aElucHV0VHlwZS5j
cHAgKi8sCiAJCQkJRjU1QjNEOTIxMjUxRjEyRDAwM0VGMjY5IC8qIE1vbnRoSW5wdXRUeXBlLmgg
Ki8sCiAJCQkJRjU1QjNEOTMxMjUxRjEyRDAwM0VGMjY5IC8qIE51bWJlcklucHV0VHlwZS5jcHAg
Ki8sCkBAIC0xODI0MCw2ICsxODI1Nyw4IEBACiAJCQkJQ0QyN0Y2RTMxNDU3Njc1ODAwNzgyMDdE
IC8qIEpTTWVkaWFDb250cm9sbGVyLmggKi8sCiAJCQkJRTQ0NjE0MTAwQ0Q2ODI2OTAwRkFEQTc1
IC8qIEpTTWVkaWFFcnJvci5jcHAgKi8sCiAJCQkJRTQ0NjE0MTEwQ0Q2ODI2OTAwRkFEQTc1IC8q
IEpTTWVkaWFFcnJvci5oICovLAorCQkJCTEwNTk0NTc1MTVCNDJBMEQwMDREMzdGRCAvKiBKU01p
Y3JvRGF0YUl0ZW1WYWx1ZS5jcHAgKi8sCisJCQkJMTA1OTQ1NzkxNUI0MkE0MzAwNEQzN0ZEIC8q
IEpTTWljcm9EYXRhSXRlbVZhbHVlLmggKi8sCiAJCQkJOTAwMTc4N0UxMkUwMzcwNzAwNjQ4NDYy
IC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgKi8sCiAJCQkJOTAwMTc4N0YxMkUwMzcw
NzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oICovLAogCQkJCTZFQkYwRTc0
MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVGbG9hdC5jcHAgKi8sCkBAIC0xODc1NCw2
ICsxODc3Myw4IEBACiAJCQkJNjVERjMxRUMwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmggKi8sCiAJCQkJRTRCNDIzODUwQ0JGQjczQzAwQUYyRUNFIC8qIEpTUHJv
Z3Jlc3NFdmVudC5jcHAgKi8sCiAJCQkJRTRCNDIzODYwQ0JGQjczQzAwQUYyRUNFIC8qIEpTUHJv
Z3Jlc3NFdmVudC5oICovLAorCQkJCTEwNTk0NTlDMTVCNDJCMEMwMDREMzdGRCAvKiBKU1Byb3Bl
cnR5Tm9kZUxpc3QuY3BwICovLAorCQkJCTEwNTk0NTlFMTVCNDJCMUEwMDREMzdGRCAvKiBKU1By
b3BlcnR5Tm9kZUxpc3QuaCAqLywKIAkJCQk0OTk4QUVDQjEzRjlENkM5MDA5MEIxQUEgLyogSlNS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHAgKi8sCiAJCQkJNDk5OEFFQ0MxM0Y5RDZD
OTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCAqLywKIAkJCQk0
QTFFNzFBMzE0RTEwNkFDMDA2MjZGOUQgLyogSlNTaGFkb3dSb290LmNwcCAqLywKQEAgLTIwMTYz
LDYgKzIwMTg0LDcgQEAKIAkJCQk0MTBCN0U3MTEwNDVGQUIwMDBEODIyNEYgLyogSlNNZXNzYWdl
RXZlbnRDdXN0b20uY3BwICovLAogCQkJCUUxQURFRDQ2MEU3NkI4REQwMDRBMUE1RSAvKiBKU01l
c3NhZ2VQb3J0Q3VzdG9tLmNwcCAqLywKIAkJCQk0MUY1ODRDNjEwNDY1MkNCMDA5Q0FBNjQgLyog
SlNNZXNzYWdlUG9ydEN1c3RvbS5oICovLAorCQkJCTEwNTk0NTcyMTVCNDI5NTMwMDREMzdGRCAv
KiBKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAgKi8sCiAJCQkJQzZGMDkxODQxNDNBNkMz
QjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5jcHAgKi8sCiAJCQkJQzZGMDkx
N0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8sCiAJ
CQkJQkNEOUMyNUYwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcCAq
LywKQEAgLTIxNTY0LDYgKzIxNTg2LDkgQEAKIAkJCQlFNEI0MUUwMTBDQkY4RUFBMDBBRjJFQ0Ug
LyogUHJvZ3Jlc3NFdmVudC5jcHAgKi8sCiAJCQkJRTRCNDFFMDIwQ0JGOEVBQTAwQUYyRUNFIC8q
IFByb2dyZXNzRXZlbnQuaCAqLywKIAkJCQlFNEI0MUUwMzBDQkY4RUFBMDBBRjJFQ0UgLyogUHJv
Z3Jlc3NFdmVudC5pZGwgKi8sCisJCQkJMTA1OTQ1OTYxNUI0MkE4RTAwNEQzN0ZEIC8qIFByb3Bl
cnR5Tm9kZUxpc3QuY3BwICovLAorCQkJCTEwNTk0NTk4MTVCNDJBQTAwMDREMzdGRCAvKiBQcm9w
ZXJ0eU5vZGVMaXN0LmggKi8sCisJCQkJMTA1OTQ1OUExNUI0MkFDMDAwNEQzN0ZEIC8qIFByb3Bl
cnR5Tm9kZUxpc3QuaWRsICovLAogCQkJCTU1MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBRdWFs
aWZpZWROYW1lLmNwcCAqLywKIAkJCQk1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlm
aWVkTmFtZS5oICovLAogCQkJCUY1MjNEMzAzMDJERTQ0NzYwMTg2MzVDQSAvKiBSYW5nZS5jcHAg
Ki8sCkBAIC0yNTIyOCw2ICsyNTI1Myw5IEBACiAJCQkJRkQ1MzczNTMxMzdCNjUxODAwMDA4RENF
IC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDM0NGMTdBNTE1QjAwNjNGMDAyNzZE
MzkgLyogSWRUYXJnZXRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzNDRjE3QTcxNUIw
MDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMTA1OTQ1N0ExNUI0MkE0MzAwNEQzN0ZEIC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxMDU5NDU5OTE1QjQyQUEwMDA0RDM3RkQgLyogUHJvcGVydHlO
b2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTA1OTQ1OUYxNUI0MkIxQTAwNEQzN0ZEIC8q
IEpTUHJvcGVydHlOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yODI4OCw2ICsyODMxNiwx
MCBAQAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDM0NGMTdBNDE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDM0NGMTdBNjE1QjAwNjNGMDAyNzZEMzkgLyogSWRU
YXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTEwNTk0NTczMTVC
NDI5NTMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkxMDU5NDU3NzE1QjQyQTBEMDA0RDM3RkQgLyogSlNNaWNyb0RhdGFJdGVtVmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMTA1OTQ1OTcxNUI0MkE4RTAwNEQzN0ZEIC8qIFBy
b3BlcnR5Tm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMTA1OTQ1OUQxNUI0MkIwQzAw
NEQzN0ZEIC8qIEpTUHJvcGVydHlOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkocmV2aXNp
b24gMTIyNzUyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9HTlVtYWtlZmls
ZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNDI4LDEwICs0MjgsMTMgQEAgZW5kaWYKIAogaWYgRU5B
QkxFX01JQ1JPREFUQQogd2Via2l0Z3RrX2J1aWx0X2hfYXBpICs9IFwKLQkkKHRvcF9idWlsZGRp
cikvRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5oCisJJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24uaCBcCisJJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2Vz
L3dlYmtpdC9XZWJLaXRET01Qcm9wZXJ0eU5vZGVMaXN0LmgKIHdlYmtpdGd0a19nZG9tX2J1aWx0
X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24uY3BwIFwKLQlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NSFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uUHJpdmF0ZS5oCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dl
YktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvblByaXZhdGUuaCBcCisJRGVyaXZlZFNvdXJj
ZXMvd2Via2l0L1dlYktpdERPTVByb3BlcnR5Tm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy93ZWJraXQvV2ViS2l0RE9NUHJvcGVydHlOb2RlTGlzdFByaXZhdGUuaAogZW5kaWYKIAogaWYg
RU5BQkxFX1dFQl9USU1JTkcKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkocmV2aXNpb24gMTIyNzUyKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTE5LDYgKzExOSw3IEBACiAjaW5jbHVkZSAiSlNNZXNzYWdlQ2hhbm5lbEN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTTWVzc2Fn
ZVBvcnRDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpT
TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNOYW1lZE5vZGVNYXBDdXN0
b20uY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVt
VmFsdWVDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiBNb3Rvcm9s
YSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQg
bW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVpdGhlciB0aGUg
bmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250
cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
CisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lm
IEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiSlNNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKwor
I2luY2x1ZGUgIkpTTm9kZS5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNBcnJheS5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTVmFsdWUgdG9KUyhF
eGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE1pY3JvRGF0
YUl0ZW1WYWx1ZSogaXRlbVZhbHVlKQoreworICAgIGlmICghaXRlbVZhbHVlKQorICAgICAgICBy
ZXR1cm4ganNOdWxsKCk7CisgICAgaWYgKGl0ZW1WYWx1ZS0+aXNOb2RlKCkpCisgICAgICAgIHJl
dHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaXRlbVZhbHVlLT5nZXROb2RlKCkpOworICAg
IHJldHVybiBqc1N0cmluZyhleGVjLCBpdGVtVmFsdWUtPmdldFN0cmluZygpKTsKK30KKworfQor
CisjZW5kaWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVl
Q3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwK
KyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwK
KyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3Jv
bGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQor
ICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9E
QVRBKQorCisjaW5jbHVkZSAiVjhNaWNyb0RhdGFJdGVtVmFsdWUuaCIKKworI2luY2x1ZGUgIlY4
QmluZGluZy5oIgorI2luY2x1ZGUgIlY4Tm9kZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3Y4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KE1pY3JvRGF0YUl0ZW1WYWx1ZSogaXRlbVZhbHVl
LCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKK3sKKyAgICBpZiAoIWl0ZW1WYWx1ZSkKKyAgICAgICAg
cmV0dXJuIHY4OjpOdWxsKCk7CisgICAgaWYgKGl0ZW1WYWx1ZS0+aXNOb2RlKCkpCisgICAgICAg
IHJldHVybiB0b1Y4KGl0ZW1WYWx1ZS0+Z2V0Tm9kZSgpKTsKKyAgICByZXR1cm4gdjhTdHJpbmco
aXRlbVZhbHVlLT5nZXRTdHJpbmcoKSk7Cit9CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShNSUNS
T0RBVEEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmNwcAkocmV2aXNp
b24gMTIyNzUyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDEyICszMCwzMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K05vZGUqIER5bmFtaWNOb2RlTGlzdDo6cm9vdE5vZGUoKSBjb25zdAoreworICAgIGlmICgoaXNS
b290ZWRBdERvY3VtZW50KCkgfHwgb3duZXJOb2RlSGFzSXRlbVJlZkF0dHJpYnV0ZSgpKSAmJiBt
X293bmVyTm9kZS0+aW5Eb2N1bWVudCgpKQorICAgICAgICByZXR1cm4gbV9vd25lck5vZGUtPmRv
Y3VtZW50KCk7CisgICAgcmV0dXJuIG1fb3duZXJOb2RlLmdldCgpOworfQorCitBTFdBWVNfSU5M
SU5FIGJvb2wgRHluYW1pY05vZGVMaXN0Ojpvd25lck5vZGVIYXNJdGVtUmVmQXR0cmlidXRlKCkg
Y29uc3QKK3sKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorICAgIGlmIChyb290VHlwZSgpID09IE5v
ZGVMaXN0SXNSb290ZWRBdERvY3VtZW50SWZPd25lckhhc0l0ZW1yZWZBdHRyKQorICAgICAgICBy
ZXR1cm4gdG9FbGVtZW50KG93bmVyTm9kZSgpKS0+ZmFzdEhhc0F0dHJpYnV0ZShIVE1MTmFtZXM6
Oml0ZW1yZWZBdHRyKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIER5
bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6aW52YWxpZGF0ZUNhY2hlKCkgY29uc3QKIHsKICAgICBt
X2NhY2hlZEl0ZW0gPSAwOwogICAgIG1faXNMZW5ndGhDYWNoZVZhbGlkID0gZmFsc2U7CiAgICAg
bV9pc0l0ZW1DYWNoZVZhbGlkID0gZmFsc2U7CiAgICAgbV9pc05hbWVDYWNoZVZhbGlkID0gZmFs
c2U7CisgICAgbV9pc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQgPSBmYWxzZTsKICAgICBpZiAo
dHlwZSgpID09IEludmFsaWRDb2xsZWN0aW9uVHlwZSkKICAgICAgICAgcmV0dXJuOwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5oCShyZXZpc2lvbiAxMjI3NTIpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5
LDYgKzM5LDcgQEAgY2xhc3MgTm9kZTsKIGVudW0gTm9kZUxpc3RSb290VHlwZSB7CiAgICAgTm9k
ZUxpc3RJc1Jvb3RlZEF0Tm9kZSwKICAgICBOb2RlTGlzdElzUm9vdGVkQXREb2N1bWVudCwKKyAg
ICBOb2RlTGlzdElzUm9vdGVkQXREb2N1bWVudElmT3duZXJIYXNJdGVtcmVmQXR0ciwKIH07CiAK
IGNsYXNzIER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZSB7CkBAIC01MywyMCArNTQsMjMgQEAgcHVi
bGljOgogICAgICAgICA6IG1fY2FjaGVkSXRlbSgwKQogICAgICAgICAsIG1faXNMZW5ndGhDYWNo
ZVZhbGlkKGZhbHNlKQogICAgICAgICAsIG1faXNJdGVtQ2FjaGVWYWxpZChmYWxzZSkKLSAgICAg
ICAgLCBtX3Jvb3RlZEF0RG9jdW1lbnQocm9vdFR5cGUgPT0gTm9kZUxpc3RJc1Jvb3RlZEF0RG9j
dW1lbnQpCisgICAgICAgICwgbV9yb290VHlwZShyb290VHlwZSkKICAgICAgICAgLCBtX2ludmFs
aWRhdGlvblR5cGUoaW52YWxpZGF0aW9uVHlwZSkKKyAgICAgICAgLCBtX2lzSXRlbVJlZkVsZW1l
bnRzQ2FjaGVWYWxpZChmYWxzZSkKICAgICAgICAgLCBtX2lzTmFtZUNhY2hlVmFsaWQoZmFsc2Up
CiAgICAgICAgICwgbV9jb2xsZWN0aW9uVHlwZShjb2xsZWN0aW9uVHlwZSkKICAgICAgICAgLCBt
X3N1cHBvcnRzSXRlbUJlZm9yZShpdGVtQmVmb3JlU3VwcG9ydFR5cGUgPT0gU3VwcG9ydEl0ZW1C
ZWZvcmUpCiAgICAgeworICAgICAgICBBU1NFUlQobV9yb290VHlwZSA9PSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4ocm9vdFR5cGUpKTsKICAgICAgICAgQVNTRVJUKG1faW52YWxpZGF0aW9uVHlwZSA9
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oaW52YWxpZGF0aW9uVHlwZSkpOwogICAgICAgICBBU1NF
UlQobV9jb2xsZWN0aW9uVHlwZSA9PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY29sbGVjdGlvblR5
cGUpKTsKICAgICB9CiAKIHB1YmxpYzoKLSAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNSb290ZWRB
dERvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9yb290ZWRBdERvY3VtZW50OyB9CisgICAgQUxX
QVlTX0lOTElORSBib29sIGlzUm9vdGVkQXREb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9v
dFR5cGUgPT0gTm9kZUxpc3RJc1Jvb3RlZEF0RG9jdW1lbnQ7IH0KICAgICBBTFdBWVNfSU5MSU5F
IE5vZGVMaXN0SW52YWxpZGF0aW9uVHlwZSBpbnZhbGlkYXRpb25UeXBlKCkgY29uc3QgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8Tm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlPihtX2ludmFsaWRhdGlvblR5
cGUpOyB9CiAgICAgQUxXQVlTX0lOTElORSBDb2xsZWN0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Q29sbGVjdGlvblR5cGU+KG1fY29sbGVjdGlvblR5cGUpOyB9Cisg
ICAgQUxXQVlTX0lOTElORSBOb2RlTGlzdFJvb3RUeXBlIHJvb3RUeXBlKCkgY29uc3QgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8Tm9kZUxpc3RSb290VHlwZT4obV9yb290VHlwZSk7IH0KIAogICAgIHZv
aWQgaW52YWxpZGF0ZUNhY2hlKCkgY29uc3Q7CiAKQEAgLTk0LDYgKzk4LDkgQEAgcHJvdGVjdGVk
OgogICAgICAgICBtX2lzSXRlbUNhY2hlVmFsaWQgPSB0cnVlOwogICAgIH0KIAorICAgIEFMV0FZ
U19JTkxJTkUgYm9vbCBpc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQoKSBjb25zdCB7IHJldHVy
biBtX2lzSXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZDsgfQorICAgIEFMV0FZU19JTkxJTkUgdm9p
ZCBzZXRJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkKCkgY29uc3QgeyBtX2lzSXRlbVJlZkVsZW1l
bnRzQ2FjaGVWYWxpZCA9IHRydWU7IH0KKwogICAgIGJvb2wgaGFzTmFtZUNhY2hlKCkgY29uc3Qg
eyByZXR1cm4gbV9pc05hbWVDYWNoZVZhbGlkOyB9CiAgICAgdm9pZCBzZXRIYXNOYW1lQ2FjaGUo
KSBjb25zdCB7IG1faXNOYW1lQ2FjaGVWYWxpZCA9IHRydWU7IH0KIApAQCAtMTAzLDggKzExMCw5
IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2NhY2hlZEl0ZW1PZmZzZXQ7CiAg
ICAgbXV0YWJsZSB1bnNpZ25lZCBtX2lzTGVuZ3RoQ2FjaGVWYWxpZCA6IDE7CiAgICAgbXV0YWJs
ZSB1bnNpZ25lZCBtX2lzSXRlbUNhY2hlVmFsaWQgOiAxOwotICAgIGNvbnN0IHVuc2lnbmVkIG1f
cm9vdGVkQXREb2N1bWVudCA6IDE7CisgICAgY29uc3QgdW5zaWduZWQgbV9yb290VHlwZSA6IDI7
CiAgICAgY29uc3QgdW5zaWduZWQgbV9pbnZhbGlkYXRpb25UeXBlIDogNDsKKyAgICBtdXRhYmxl
IHVuc2lnbmVkIG1faXNJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkIDogMTsKIAogICAgIC8vIEZy
b20gSFRNTENvbGxlY3Rpb24KICAgICBtdXRhYmxlIHVuc2lnbmVkIG1faXNOYW1lQ2FjaGVWYWxp
ZCA6IDE7CkBAIC0xMjksNyArMTM3LDcgQEAgQUxXQVlTX0lOTElORSBib29sIER5bmFtaWNOb2Rl
TGlzdENhY2hlQgogICAgICAgICByZXR1cm4gYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjpocmVmQXR0
cjsKICAgICBjYXNlIEludmFsaWRhdGVPbkl0ZW1BdHRyQ2hhbmdlOgogI2lmIEVOQUJMRShNSUNS
T0RBVEEpCi0gICAgICAgIHJldHVybiBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6Oml0ZW1zY29wZUF0
dHIgfHwgYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjppdGVtcHJvcEF0dHIgfHwgYXR0ck5hbWUgPT0g
SFRNTE5hbWVzOjppdGVtdHlwZUF0dHI7CisgICAgICAgIHJldHVybiBhdHRyTmFtZSA9PSBIVE1M
TmFtZXM6Oml0ZW1zY29wZUF0dHIgfHwgYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjppdGVtcHJvcEF0
dHIgfHwgYXR0ck5hbWUgPT0gSFRNTE5hbWVzOjppdGVtdHlwZUF0dHIgfHwgYXR0ck5hbWUgPT0g
SFRNTE5hbWVzOjppdGVtcmVmQXR0cjsKICNlbmRpZiAvLyBJbnRlbnRpb25hbGx5IGZhbGwgdGhy
b3VnaAogICAgIGNhc2UgRG9Ob3RJbnZhbGlkYXRlT25BdHRyaWJ1dGVDaGFuZ2VzOgogICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0xNDksNiArMTU3LDcgQEAgcHVibGljOgogICAgICAgICBSYWRp
b05vZGVMaXN0VHlwZSwKICAgICAgICAgTGFiZWxzTm9kZUxpc3RUeXBlLAogICAgICAgICBNaWNy
b0RhdGFJdGVtTGlzdFR5cGUsCisgICAgICAgIFByb3BlcnR5Tm9kZUxpc3RUeXBlLAogICAgIH07
CiAgICAgRHluYW1pY05vZGVMaXN0KFBhc3NSZWZQdHI8Tm9kZT4gb3duZXJOb2RlLCBOb2RlTGlz
dFJvb3RUeXBlIHJvb3RUeXBlLCBOb2RlTGlzdEludmFsaWRhdGlvblR5cGUgaW52YWxpZGF0aW9u
VHlwZSkKICAgICAgICAgOiBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2Uocm9vdFR5cGUsIGludmFs
aWRhdGlvblR5cGUpCkBAIC0xNjUsMTcgKzE3NCwxMyBAQCBwdWJsaWM6CiAgICAgTm9kZSogb3du
ZXJOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9vd25lck5vZGUuZ2V0KCk7IH0KIAogcHJvdGVjdGVk
OgotICAgIE5vZGUqIHJvb3ROb2RlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChpc1Jvb3Rl
ZEF0RG9jdW1lbnQoKSAmJiBtX293bmVyTm9kZS0+aW5Eb2N1bWVudCgpKQotICAgICAgICAgICAg
cmV0dXJuIG1fb3duZXJOb2RlLT5kb2N1bWVudCgpOwotICAgICAgICByZXR1cm4gbV9vd25lck5v
ZGUuZ2V0KCk7Ci0gICAgfQorICAgIE5vZGUqIHJvb3ROb2RlKCkgY29uc3Q7CiAgICAgRG9jdW1l
bnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9vd25lck5vZGUtPmRvY3VtZW50KCk7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgbm9kZU1hdGNoZXMoRWxlbWVudCopIGNvbnN0ID0gMDsKIAogcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNEeW5hbWljTm9kZUxpc3QoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBvd25lck5vZGVIYXNJdGVtUmVmQXR0cmlidXRl
KCkgY29uc3Q7CiAgICAgUmVmUHRyPE5vZGU+IG1fb3duZXJOb2RlOwogfTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcAkocmV2aXNpb24gMTIyNzUyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNiArMTE5LDcgQEAKIAogI2lmIEVOQUJMRShNSUNS
T0RBVEEpCiAjaW5jbHVkZSAiSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAi
UHJvcGVydHlOb2RlTGlzdC5oIgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC0y
NzQ3LDYgKzI3NDgsMTAgQEAgdm9pZCBOb2RlOjpzZXRJdGVtVHlwZShjb25zdCBTdHJpbmcmIHZh
bAogICAgIGVuc3VyZVJhcmVEYXRhKCktPnNldEl0ZW1UeXBlKHZhbHVlKTsKIH0KIAorUGFzc1Jl
ZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PiBOb2RlOjpwcm9wZXJ0eU5vZGVMaXN0KGNvbnN0IFN0cmlu
ZyYgbmFtZSkKK3sKKyAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS0+ZW5zdXJlTm9kZUxpc3Rz
KCktPmFkZENhY2hlV2l0aE5hbWU8UHJvcGVydHlOb2RlTGlzdD4odGhpcywgRHluYW1pY05vZGVM
aXN0OjpQcm9wZXJ0eU5vZGVMaXN0VHlwZSwgbmFtZSk7Cit9CiAjZW5kaWYKIAogLy8gSXQncyBp
bXBvcnRhbnQgbm90IHRvIGlubGluZSByZW1vdmVkTGFzdFJlZiwgYmVjYXVzZSB3ZSBkb24ndCB3
YW50IHRvIGlubGluZSB0aGUgY29kZSB0bwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCShyZXZpc2lvbiAxMjI3
NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MCw2
ICs5MCw3IEBAIGNsYXNzIFRyZWVTY29wZTsKIAogI2lmIEVOQUJMRShNSUNST0RBVEEpCiBjbGFz
cyBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb247CitjbGFzcyBQcm9wZXJ0eU5vZGVMaXN0OwogI2Vu
ZGlmCiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CkBAIC02MjksNiArNjMwLDcgQEAgcHVi
bGljOgogICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KiBpdGVtUHJvcCgpOwogICAgIERPTVNldHRh
YmxlVG9rZW5MaXN0KiBpdGVtUmVmKCk7CiAgICAgRE9NU2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1U
eXBlKCk7CisgICAgUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PiBwcm9wZXJ0eU5vZGVMaXN0
KGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJT
KQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcAkocmV2aXNpb24g
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEg
TW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1v
ZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJp
YnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORwor
ICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBF
TkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIlByb3BlcnR5Tm9kZUxpc3QuaCIKKworI2luY2x1
ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgor
I2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVk
ZSAiTm9kZVJhcmVEYXRhLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKKworUHJvcGVydHlOb2RlTGlzdDo6UHJvcGVydHlOb2RlTGlzdChOb2Rl
KiByb290Tm9kZSwgY29uc3QgU3RyaW5nJiBuYW1lKQorICAgIDogRHluYW1pY1N1YnRyZWVOb2Rl
TGlzdChyb290Tm9kZSwgSW52YWxpZGF0ZU9uSXRlbUF0dHJDaGFuZ2UsIE5vZGVMaXN0SXNSb290
ZWRBdERvY3VtZW50SWZPd25lckhhc0l0ZW1yZWZBdHRyKQorICAgICwgbV9uYW1lKG5hbWUpCit7
Cit9CisKK1Byb3BlcnR5Tm9kZUxpc3Q6On5Qcm9wZXJ0eU5vZGVMaXN0KCkKK3sKKyAgICBvd25l
ck5vZGUoKS0+bm9kZUxpc3RzKCktPnJlbW92ZUNhY2hlV2l0aE5hbWUodGhpcywgRHluYW1pY05v
ZGVMaXN0OjpQcm9wZXJ0eU5vZGVMaXN0VHlwZSwgbV9uYW1lKTsKK30KKworYm9vbCBQcm9wZXJ0
eU5vZGVMaXN0OjplbGVtZW50SXNQcm9wZXJ0eU9mUmVmRWxlbWVudChjb25zdCBOb2RlKiB0ZXN0
RWxlbWVudCwgY29uc3QgTm9kZSAqcmVmRWxlbWVudCkgY29uc3QKK3sKKyAgICBmb3IgKGNvbnN0
IENvbnRhaW5lck5vZGUqIG5vZGUgPSB0ZXN0RWxlbWVudC0+cGFyZW50Tm9kZSgpOyBub2RlOyBu
b2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpKSB7CisgICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVt
ZW50KCkgJiYgdG9IVE1MRWxlbWVudChub2RlKS0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtc2NvcGVB
dHRyKSAmJiBub2RlICE9IG93bmVyTm9kZSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgICAgICBpZiAobm9kZSA9PSByZWZFbGVtZW50KQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQcm9wZXJ0eU5vZGVM
aXN0Ojp1cGRhdGVJdGVtUmVmRWxlbWVudHMoKSBjb25zdAoreworICAgIGlmIChpc0l0ZW1SZWZF
bGVtZW50c0NhY2hlVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pdGVtUmVmRWxl
bWVudHNDYWNoZS5jbGVhcigpOworICAgIHNldEl0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQoKTsK
KyAgICB0b0hUTUxFbGVtZW50KG93bmVyTm9kZSgpKS0+Z2V0SXRlbVJlZkVsZW1lbnRzKG1faXRl
bVJlZkVsZW1lbnRzQ2FjaGUpOworfQorCitib29sIFByb3BlcnR5Tm9kZUxpc3Q6Om5vZGVNYXRj
aGVzKEVsZW1lbnQqIHRlc3RFbGVtZW50KSBjb25zdAoreworICAgIGlmICghdGVzdEVsZW1lbnQt
PmlzSFRNTEVsZW1lbnQoKSB8fCAhdGVzdEVsZW1lbnQtPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXBy
b3BBdHRyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgdXBkYXRlSXRlbVJlZkVsZW1l
bnRzKCk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9pdGVtUmVmRWxlbWVudHND
YWNoZS5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAodGVzdEVsZW1lbnQgPT0gbV9pdGVtUmVm
RWxlbWVudHNDYWNoZVtpXSB8fCBlbGVtZW50SXNQcm9wZXJ0eU9mUmVmRWxlbWVudCh0ZXN0RWxl
bWVudCwgbV9pdGVtUmVmRWxlbWVudHNDYWNoZVtpXSkpIHsKKyAgICAgICAgICAgIGlmICh0ZXN0
RWxlbWVudC0+aXRlbVByb3AoKS0+dG9rZW5zKCkuY29udGFpbnMobV9uYW1lKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmYWxz
ZTsKK30KKworUHJvcGVydHlWYWx1ZUFycmF5IFByb3BlcnR5Tm9kZUxpc3Q6OmdldFZhbHVlcygp
IGNvbnN0Cit7CisgICAgUHJvcGVydHlWYWx1ZUFycmF5IHByb3BlcnR5VmFsdWU7CisgICAgdW5z
aWduZWQgb2Zmc2V0ID0gMDsKKworICAgIHdoaWxlIChOb2RlKiBub2RlID0gaXRlbShvZmZzZXQp
KSB7CisgICAgICAgIG9mZnNldCsrOworICAgICAgICBwcm9wZXJ0eVZhbHVlLmFwcGVuZCh0b0hU
TUxFbGVtZW50KG5vZGUpLT5pdGVtVmFsdWUoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHByb3Bl
cnR5VmFsdWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShNSUNST0RBVEEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5oCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIE1vdG9y
b2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNv
bnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQcm9wZXJ0eU5vZGVMaXN0
X2gKKyNkZWZpbmUgUHJvcGVydHlOb2RlTGlzdF9oCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQor
I2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5oIgorI2luY2x1ZGUgIk1pY3JvRGF0YUl0ZW1WYWx1
ZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0eXBl
ZGVmIFZlY3RvcjxSZWZQdHI8TWljcm9EYXRhSXRlbVZhbHVlPiA+IFByb3BlcnR5VmFsdWVBcnJh
eTsKKworY2xhc3MgUHJvcGVydHlOb2RlTGlzdCA6IHB1YmxpYyBEeW5hbWljU3VidHJlZU5vZGVM
aXN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PiBj
cmVhdGUoTm9kZSogcm9vdE5vZGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUHJvcGVydHlOb2RlTGlzdChyb290Tm9kZSwgbmFtZSkpOwor
ICAgIH0KKworICAgIH5Qcm9wZXJ0eU5vZGVMaXN0KCk7CisKKyAgICBQcm9wZXJ0eVZhbHVlQXJy
YXkgZ2V0VmFsdWVzKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgUHJvcGVydHlO
b2RlTGlzdChOb2RlKiByb290Tm9kZSwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKworICAgIHZpcnR1
YWwgYm9vbCBub2RlTWF0Y2hlcyhFbGVtZW50KikgY29uc3QgT1ZFUlJJREU7CisKKyAgICBib29s
IGVsZW1lbnRJc1Byb3BlcnR5T2ZSZWZFbGVtZW50KGNvbnN0IE5vZGUqLCBjb25zdCBOb2RlKikg
Y29uc3Q7CisgICAgdm9pZCB1cGRhdGVJdGVtUmVmRWxlbWVudHMoKSBjb25zdDsKKworICAgIFN0
cmluZyBtX25hbWU7CisgICAgbXV0YWJsZSBWZWN0b3I8SFRNTEVsZW1lbnQqPiBtX2l0ZW1SZWZF
bGVtZW50c0NhY2hlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKE1JQ1JPREFUQSkKKworI2VuZGlmIC8vIFN0YXRpY05vZGVMaXN0X2gKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwJKHJldmlzaW9uIDApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwK
KyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwK
KyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3Jv
bGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQor
ICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAg
ICBDb25kaXRpb25hbD1NSUNST0RBVEEsCisgICAgICAgIEluZGV4ZWRHZXR0ZXIsCisgICAgICAg
IEpTR2VuZXJhdGVUb0pTT2JqZWN0CisgICAgXSBQcm9wZXJ0eU5vZGVMaXN0IDogTm9kZUxpc3Qg
eworCisgICAgICAgIHNlcXVlbmNlPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gZ2V0VmFsdWVzKCk7Cisg
ICAgICAgIE5vZGUgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKworICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgfTsKK30KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCShyZXZpc2lvbiAxMjI3NTIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZVBv
b2wuaCIKICNpbmNsdWRlICJDaGlsZExpc3RNdXRhdGlvblNjb3BlLmgiCisjaW5jbHVkZSAiRE9N
U2V0dGFibGVUb2tlbkxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5j
bHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCkBAIC05OTMsNiArOTk0
LDM5IEBAIFBhc3NSZWZQdHI8SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uPiBIVE0KIHsKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKj4oZW5zdXJlQ2FjaGVk
SFRNTENvbGxlY3Rpb24oSXRlbVByb3BlcnRpZXMpLmdldCgpKTsKIH0KKwordm9pZCBIVE1MRWxl
bWVudDo6Z2V0SXRlbVJlZkVsZW1lbnRzKFZlY3RvcjxIVE1MRWxlbWVudCo+JiBpdGVtUmVmRWxl
bWVudHMpCit7CisgICAgaWYgKCFmYXN0SGFzQXR0cmlidXRlKGl0ZW1zY29wZUF0dHIpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAoIWZhc3RIYXNBdHRyaWJ1dGUoaXRlbXJlZkF0dHIpKSB7
CisgICAgICAgIGl0ZW1SZWZFbGVtZW50cy5hcHBlbmQodGhpcyk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBET01TZXR0YWJsZVRva2VuTGlzdCogaXRlbVJlZnMgPSBpdGVtUmVmKCk7
CisgICAgUmVmUHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBwcm9jZXNzZWRJdGVtUmVmID0gRE9N
U2V0dGFibGVUb2tlbkxpc3Q6OmNyZWF0ZSgpOworICAgIE5vZGUqIHJvb3ROb2RlID0gdHJlZVNj
b3BlKCktPnJvb3ROb2RlKCk7CisKKyAgICBmb3IgKE5vZGUqIGN1cnJlbnQgPSByb290Tm9kZS0+
Zmlyc3RDaGlsZCgpOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+dHJhdmVyc2VOZXh0Tm9k
ZShyb290Tm9kZSkpIHsKKyAgICAgICAgaWYgKCFjdXJyZW50LT5pc0hUTUxFbGVtZW50KCkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSB0b0hU
TUxFbGVtZW50KGN1cnJlbnQpOworCisgICAgICAgIGlmIChlbGVtZW50ID09IHRoaXMpIHsKKyAg
ICAgICAgICAgIGl0ZW1SZWZFbGVtZW50cy5hcHBlbmQoZWxlbWVudCk7CisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgaWQgPSBl
bGVtZW50LT5nZXRJZEF0dHJpYnV0ZSgpOworICAgICAgICBpZiAoIXByb2Nlc3NlZEl0ZW1SZWYt
PnRva2VucygpLmNvbnRhaW5zKGlkKSAmJiBpdGVtUmVmcy0+dG9rZW5zKCkuY29udGFpbnMoaWQp
KSB7CisgICAgICAgICAgICBwcm9jZXNzZWRJdGVtUmVmLT5zZXRWYWx1ZShpZCk7CisgICAgICAg
ICAgICBpZiAoIWVsZW1lbnQtPmlzRGVzY2VuZGFudE9mKHRoaXMpKQorICAgICAgICAgICAgICAg
IGl0ZW1SZWZFbGVtZW50cy5hcHBlbmQoZWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9Cit9CiAj
ZW5kaWYKIAogdm9pZCBIVE1MRWxlbWVudDo6YWRkSFRNTExlbmd0aFRvU3R5bGUoU3R5bGVQcm9w
ZXJ0eVNldCogc3R5bGUsIENTU1Byb3BlcnR5SUQgcHJvcGVydHlJRCwgY29uc3QgU3RyaW5nJiB2
YWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgJKHJldmlzaW9uIDEyMjc1MikK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
OTgsNiArOTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJdGVtVmFsdWUoY29uc3QgU3RyaW5n
JiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8TWljcm9EYXRhSXRlbVZhbHVlPiBp
dGVtVmFsdWUoKSBjb25zdDsKICAgICBQYXNzUmVmUHRyPEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bj4gcHJvcGVydGllcygpOworICAgIHZvaWQgZ2V0SXRlbVJlZkVsZW1lbnRzKFZlY3RvcjxIVE1M
RWxlbWVudCo+Jik7CiAjZW5kaWYKIAogI2lmbmRlZiBOREVCVUcKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAJKHJldmlzaW9uIDEy
Mjc1MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQAogI2luY2x1ZGUgIkhUTUxFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgotI2luY2x1ZGUg
IlN0YXRpY05vZGVMaXN0LmgiCisjaW5jbHVkZSAiUHJvcGVydHlOb2RlTGlzdC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUyLDggKzUyLDYgQEAgUGFzc1JlZlB0cjxIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24+IEhUTQogCiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OkhUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbihOb2RlKiBpdGVtTm9kZSkKICAgICA6IEhUTUxDb2xsZWN0aW9uKGl0
ZW1Ob2RlLCBJdGVtUHJvcGVydGllcywgRG9Ob3RTdXBwb3J0SXRlbUJlZm9yZSkKLSAgICAsIG1f
aGFzUHJvcGVydHlOYW1lQ2FjaGUoZmFsc2UpCi0gICAgLCBtX2hhc0l0ZW1SZWZFbGVtZW50cyhm
YWxzZSkKIHsKIH0KIApAQCAtNjMsNDMgKzYxLDEyIEBAIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bjo6fkhUTUxQcm9wZXJ0aWUKIAogdm9pZCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OnVwZGF0
ZVJlZkVsZW1lbnRzKCkgY29uc3QKIHsKLSAgICBpZiAobV9oYXNJdGVtUmVmRWxlbWVudHMpCisg
ICAgaWYgKGlzSXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBIVE1MRWxlbWVudCogYmFzZUVsZW1lbnQgPSB0b0hUTUxFbGVtZW50KGJhc2UoKSk7Ci0K
ICAgICBtX2l0ZW1SZWZFbGVtZW50cy5jbGVhcigpOwotICAgIG1faGFzSXRlbVJlZkVsZW1lbnRz
ID0gdHJ1ZTsKLQotICAgIGlmICghYmFzZUVsZW1lbnQtPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNj
b3BlQXR0cikpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICghYmFzZUVsZW1lbnQtPmZhc3RI
YXNBdHRyaWJ1dGUoaXRlbXJlZkF0dHIpKSB7Ci0gICAgICAgIG1faXRlbVJlZkVsZW1lbnRzLmFw
cGVuZChiYXNlRWxlbWVudCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBET01TZXR0
YWJsZVRva2VuTGlzdCogaXRlbVJlZiA9IGJhc2VFbGVtZW50LT5pdGVtUmVmKCk7Ci0gICAgUmVm
UHRyPERPTVNldHRhYmxlVG9rZW5MaXN0PiBwcm9jZXNzZWRJdGVtUmVmID0gRE9NU2V0dGFibGVU
b2tlbkxpc3Q6OmNyZWF0ZSgpOwotICAgIE5vZGUqIHJvb3ROb2RlID0gYmFzZUVsZW1lbnQtPnRy
ZWVTY29wZSgpLT5yb290Tm9kZSgpOwotCi0gICAgZm9yIChOb2RlKiBjdXJyZW50ID0gcm9vdE5v
ZGUtPmZpcnN0Q2hpbGQoKTsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPnRyYXZlcnNlTmV4
dE5vZGUocm9vdE5vZGUpKSB7Ci0gICAgICAgIGlmICghY3VycmVudC0+aXNIVE1MRWxlbWVudCgp
KQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0g
dG9IVE1MRWxlbWVudChjdXJyZW50KTsKLQotICAgICAgICBpZiAoZWxlbWVudCA9PSBiYXNlRWxl
bWVudCkgewotICAgICAgICAgICAgbV9pdGVtUmVmRWxlbWVudHMuYXBwZW5kKGVsZW1lbnQpOwot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIGlkID0gZWxlbWVudC0+Z2V0SWRBdHRyaWJ1dGUoKTsKLSAgICAgICAgaWYgKCFwcm9j
ZXNzZWRJdGVtUmVmLT50b2tlbnMoKS5jb250YWlucyhpZCkgJiYgaXRlbVJlZi0+dG9rZW5zKCku
Y29udGFpbnMoaWQpKSB7Ci0gICAgICAgICAgICBwcm9jZXNzZWRJdGVtUmVmLT5zZXRWYWx1ZShp
ZCk7Ci0gICAgICAgICAgICBpZiAoIWVsZW1lbnQtPmlzRGVzY2VuZGFudE9mKGJhc2VFbGVtZW50
KSkKLSAgICAgICAgICAgICAgICBtX2l0ZW1SZWZFbGVtZW50cy5hcHBlbmQoZWxlbWVudCk7Ci0g
ICAgICAgIH0KLSAgICB9CisgICAgc2V0SXRlbVJlZkVsZW1lbnRzQ2FjaGVWYWxpZCgpOworICAg
IHRvSFRNTEVsZW1lbnQoYmFzZSgpKS0+Z2V0SXRlbVJlZkVsZW1lbnRzKG1faXRlbVJlZkVsZW1l
bnRzKTsKIH0KIAogc3RhdGljIE5vZGUqIG5leHROb2RlV2l0aFByb3BlcnR5KE5vZGUqIGJhc2Us
IE5vZGUqIG5vZGUpCkBAIC0xNDIsNyArMTA5LDcgQEAgSFRNTEVsZW1lbnQqIEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbjo6aQogCiB2b2lkIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6dXBkYXRl
TmFtZUNhY2hlKCkgY29uc3QKIHsKLSAgICBpZiAobV9oYXNQcm9wZXJ0eU5hbWVDYWNoZSkKKyAg
ICBpZiAoaGFzTmFtZUNhY2hlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIHVwZGF0ZVJlZkVs
ZW1lbnRzKCk7CkBAIC0xNTYsNyArMTIzLDcgQEAgdm9pZCBIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b246OnVwZGF0ZU5hbQogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9oYXNQcm9wZXJ0eU5hbWVD
YWNoZSA9IHRydWU7CisgICAgc2V0SGFzTmFtZUNhY2hlKCk7CiB9CiAKIFBhc3NSZWZQdHI8RE9N
U3RyaW5nTGlzdD4gSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpuYW1lcygpIGNvbnN0CkBAIC0x
NjcsMjggKzEzNCwxNiBAQCBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IEhUTUxQcm9wZXJ0aWVz
CiAgICAgcmV0dXJuIG1fcHJvcGVydHlOYW1lczsKIH0KIAotUGFzc1JlZlB0cjxOb2RlTGlzdD4g
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpuYW1lZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBj
b25zdAorUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PiBIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b246Om5hbWVkSXRlbShjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CiB7Ci0gICAgdXBkYXRlTmFt
ZUNhY2hlKCk7Ci0KLSAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbmFtZWRJdGVtczsKLSAgICBW
ZWN0b3I8RWxlbWVudCo+KiBwcm9wZXJ0eVJlc3VsdHMgPSBtX3Byb3BlcnR5Q2FjaGUuZ2V0KEF0
b21pY1N0cmluZyhuYW1lKS5pbXBsKCkpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IHByb3Bl
cnR5UmVzdWx0cyAmJiBpIDwgcHJvcGVydHlSZXN1bHRzLT5zaXplKCk7ICsraSkKLSAgICAgICAg
bmFtZWRJdGVtcy5hcHBlbmQocHJvcGVydHlSZXN1bHRzLT5hdChpKSk7Ci0KLSAgICAvLyBGSVhN
RTogSFRNTDUgc3BlY2lmaWVzIHRoYXQgdGhpcyBzaG91bGQgcmV0dXJuIFByb3BlcnR5Tm9kZUxp
c3QuCi0gICAgcmV0dXJuIG5hbWVkSXRlbXMuaXNFbXB0eSgpID8gMCA6IFN0YXRpY05vZGVMaXN0
OjphZG9wdChuYW1lZEl0ZW1zKTsKKyAgICByZXR1cm4gYmFzZSgpLT5wcm9wZXJ0eU5vZGVMaXN0
KG5hbWUpOwogfQogCiBib29sIEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6aGFzTmFtZWRJdGVt
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QKIHsKICAgICB1cGRhdGVOYW1lQ2FjaGUo
KTsKLQotICAgIGlmIChWZWN0b3I8RWxlbWVudCo+KiBwcm9wZXJ0eUNhY2hlID0gbV9wcm9wZXJ0
eUNhY2hlLmdldChuYW1lLmltcGwoKSkpIHsKLSAgICAgICAgaWYgKCFwcm9wZXJ0eUNhY2hlLT5p
c0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KKyAgICBpZiAobV9w
cm9wZXJ0eU5hbWVzKQorICAgICAgICByZXR1cm4gbV9wcm9wZXJ0eU5hbWVzLT5jb250YWlucyhu
YW1lKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaAkocmV2aXNpb24gMTIyNzUyKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtMzksNiArMzksNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBET01TdHJp
bmdMaXN0OworY2xhc3MgUHJvcGVydHlOb2RlTGlzdDsKIAogY2xhc3MgSFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uIDogcHVibGljIEhUTUxDb2xsZWN0aW9uIHsKIHB1YmxpYzoKQEAgLTQ4LDE2ICs0
OSwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVSZWZFbGVtZW50cygpIGNvbnN0OwogCiAg
ICAgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBuYW1lcygpIGNvbnN0OwotICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxOb2RlTGlzdD4gbmFtZWRJdGVtKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJS
SURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PiBuYW1lZEl0ZW0o
Y29uc3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGhhc05hbWVk
SXRlbShjb25zdCBBdG9taWNTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKIAogICAgIHZvaWQgaW52
YWxpZGF0ZUNhY2hlKCkgY29uc3QKICAgICB7CiAgICAgICAgIG1faXRlbVJlZkVsZW1lbnRzLmNs
ZWFyKCk7CiAgICAgICAgIG1fcHJvcGVydHlOYW1lcy5jbGVhcigpOwotICAgICAgICBtX3Byb3Bl
cnR5Q2FjaGUuY2xlYXIoKTsKLSAgICAgICAgbV9oYXNQcm9wZXJ0eU5hbWVDYWNoZSA9IGZhbHNl
OwotICAgICAgICBtX2hhc0l0ZW1SZWZFbGVtZW50cyA9IGZhbHNlOwogICAgIH0KIAogcHJpdmF0
ZToKQEAgLTc3LDE5ICs3NSwxMCBAQCBwcml2YXRlOgogCiAgICAgICAgIGlmICghbV9wcm9wZXJ0
eU5hbWVzLT5jb250YWlucyhwcm9wZXJ0eU5hbWUpKQogICAgICAgICAgICAgbV9wcm9wZXJ0eU5h
bWVzLT5hcHBlbmQocHJvcGVydHlOYW1lKTsKLQotICAgICAgICBWZWN0b3I8RWxlbWVudCo+KiBw
cm9wZXJ0eVJlc3VsdHMgPSBtX3Byb3BlcnR5Q2FjaGUuZ2V0KHByb3BlcnR5TmFtZS5pbXBsKCkp
OwotICAgICAgICBpZiAoIXByb3BlcnR5UmVzdWx0cyB8fCAhcHJvcGVydHlSZXN1bHRzLT5jb250
YWlucyhlbGVtZW50KSkKLSAgICAgICAgICAgIGFwcGVuZChtX3Byb3BlcnR5Q2FjaGUsIHByb3Bl
cnR5TmFtZSwgZWxlbWVudCk7CiAgICAgfQogCiAgICAgbXV0YWJsZSBWZWN0b3I8SFRNTEVsZW1l
bnQqPiBtX2l0ZW1SZWZFbGVtZW50czsKICAgICBtdXRhYmxlIFJlZlB0cjxET01TdHJpbmdMaXN0
PiBtX3Byb3BlcnR5TmFtZXM7Ci0gICAgbXV0YWJsZSBOb2RlQ2FjaGVNYXAgbV9wcm9wZXJ0eUNh
Y2hlOwotCi0gICAgLy8gRklYTUU6IE1vdmUgdGhlc2UgdmFyaWFibGVzIHRvIER5bmFtaWNOb2Rl
TGlzdENhY2hlQmFzZSBmb3IgYmV0dGVyIGJpdCBwYWNraW5nLgotICAgIG11dGFibGUgYm9vbCBt
X2hhc1Byb3BlcnR5TmFtZUNhY2hlIDogMTsKLSAgICBtdXRhYmxlIGJvb2wgbV9oYXNJdGVtUmVm
RWxlbWVudHMgOiAxOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbAkocmV2aXNp
b24gMTIyNzUyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rp
b24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00MCw4ICs0MCw2IEBAIG1vZHVsZSBodG1sIHsKICAg
ICAgICAgTm9kZSBpdGVtKGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogCiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmdMaXN0IG5hbWVzOwotCi0gICAgICAgIC8vIEZJWE1FOiBI
VE1MNSBzcGVjaWZpZXMgdGhhdCB0aGlzIHNob3VsZCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdC4K
LSAgICAgICAgTm9kZUxpc3QgbmFtZWRJdGVtKGluIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAg
UHJvcGVydHlOb2RlTGlzdCBuYW1lZEl0ZW0oaW4gRE9NU3RyaW5nIG5hbWUpOwogICAgIH07CiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUuaWRsCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDEyIE1v
dG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dCBtb2RpZmljYXRpb24sCisgKiBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vcgorICogb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
IGNvbnRyaWJ1dG9ycyBtYXkKKyAqIGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQKKyAqIHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworICAgIGlu
dGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPU1JQ1JPREFUQSwKKyAgICAgICAgQ3VzdG9t
VG9KU09iamVjdCwKKyAgICAgICAgT21pdENvbnN0cnVjdG9yCisgICAgXSBNaWNyb0RhdGFJdGVt
VmFsdWUgeworICAgIH07Cit9CisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHJl
dmlzaW9uIDEyMjc1MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzY5LDYgKzM2OSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBh
dHRyaWJ1dGUgRG9jdW1lbnRDb25zdHJ1Y3RvciBEb2N1bWVudDsKICAgICAgICAgYXR0cmlidXRl
IE5vZGVDb25zdHJ1Y3RvciBOb2RlOwogICAgICAgICBhdHRyaWJ1dGUgTm9kZUxpc3RDb25zdHJ1
Y3RvciBOb2RlTGlzdDsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1NSUNST0RBVEFd
IFByb3BlcnR5Tm9kZUxpc3RDb25zdHJ1Y3RvciBQcm9wZXJ0eU5vZGVMaXN0OwogICAgICAgICBh
dHRyaWJ1dGUgTmFtZWROb2RlTWFwQ29uc3RydWN0b3IgTmFtZWROb2RlTWFwOwogICAgICAgICBh
dHRyaWJ1dGUgQ2hhcmFjdGVyRGF0YUNvbnN0cnVjdG9yIENoYXJhY3RlckRhdGE7CiAgICAgICAg
IGF0dHJpYnV0ZSBBdHRyQ29uc3RydWN0b3IgQXR0cjsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMjc1
MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIy
IEBACisyMDEyLTA3LTE2ICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KKworICAgICAg
ICBNaWNyb2RhdGE6IEltcGxlbWVudCBQcm9wZXJ0eU5vZGVMaXN0IGludGVyZmFjZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwMjY5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCBjYXNl
cyBmb3IgUHJvcGVydHlOb2RlTGlzdCBpbnRlcmZhY2UgYW5kIFByb3BlcnR5Tm9kZUxpc3QuZ2V0
VmFsdWVzKCkgbWV0aG9kLgorICAgICAgICBTcGVjOiBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrL211bHRpcGFnZS9jb21tb24tZG9tLWludGVyZmFjZXMu
aHRtbCNwcm9wZXJ0eW5vZGVsaXN0CisKKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFt
ZWRpdGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVs
aXN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5v
ZGVsaXN0LWdldHZhbHVlcy1hcnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2Yt
ZWFjaC1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWlj
cm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1m
cm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlz
dC1nZXR2YWx1ZXMtdGVzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0Rh
dGEvcHJvcGVydHlub2RlbGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxlbWVudC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LXRl
c3QtYWRkLXJlbW92ZS1lbGVtZW50Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTA3LTE2ICBXLiBKYW1l
cyBNYWNMZWFuICA8d2ptYWNsZWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1d
IFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBMYXlvdXQgVGVzdCBmYXN0L2ZyYW1lcy9jYWxjdWxhdGUt
Zml4ZWQuaHRtbCBpcyBmbGFreQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1w
cm9wZXJ0eW5vZGVsaXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorUHJvcGVydGllc0NvbGxl
Y3Rpb24ubmFtZWRJdGVtKG5hbWUpIG11c3QgcmV0dXJuIFByb3BlcnR5Tm9kZUxpc3QuCisKK1BB
U1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykgaW5zdGFuY2VvZiBQcm9wZXJ0
eU5vZGVMaXN0IGlzIHRydWUKK1BBU1MgZWxlbWVudC5wcm9wZXJ0aWVzWydmb28nXSBpbnN0YW5j
ZW9mIFByb3BlcnR5Tm9kZUxpc3QgaXMgdHJ1ZQorCitQcm9wZXJ0eU5vZGVMaXN0IGludGVyZmFj
ZSBpbmhlcml0ZWQgZnJvbSB0aGUgTm9kZUxpc3QgaW50ZXJmYWNlLgorUEFTUyBlbGVtZW50LnBy
b3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKSBpbnN0YW5jZW9mIE5vZGVMaXN0IGlzIHRydWUKK1BB
U1MgZWxlbWVudC5wcm9wZXJ0aWVzWydmb28nXSBpbnN0YW5jZW9mIE5vZGVMaXN0IGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJldHVybnMtcHJvcGVy
dHlub2RlbGlzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3Jv
RGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0Lmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJldHVybnMtcHJv
cGVydHlub2RlbGlzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9k
YXRhLWNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlByb3BlcnRpZXND
b2xsZWN0aW9uLm5hbWVkSXRlbShuYW1lKSBtdXN0IHJldHVybiBQcm9wZXJ0eU5vZGVMaXN0Ljwv
cD4KKzxkaXYgaXRlbXNjb3BlIGlkPSJtaWNyb2RhdGFpdGVtIj4KKzxkaXYgaXRlbXByb3A9ImZv
byI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3Zh
ciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1pY3JvZGF0YWl0ZW0iKTsKKwor
c2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFtZWRJdGVtKCdmb28nKSBpbnN0YW5j
ZW9mIFByb3BlcnR5Tm9kZUxpc3QiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVz
Wydmb28nXSBpbnN0YW5jZW9mIFByb3BlcnR5Tm9kZUxpc3QiKTsKKworZGVidWcoIjxicj5Qcm9w
ZXJ0eU5vZGVMaXN0IGludGVyZmFjZSBpbmhlcml0ZWQgZnJvbSB0aGUgTm9kZUxpc3QgaW50ZXJm
YWNlLiIpCitzaG91bGRCZVRydWUoImVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2Zvbycp
IGluc3RhbmNlb2YgTm9kZUxpc3QiKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVz
Wydmb28nXSBpbnN0YW5jZW9mIE5vZGVMaXN0Iik7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9k
ZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1l
YWNoLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy1hcnJheS12YWx1ZXMtb2J0
YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0
LWdldHZhbHVlcy1hcnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1l
bGVtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAorVGhpcyB0
ZXN0IGVuc3VyZSB0aGF0IFByb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVzKCkgYXJyYXkgcmV0dXJu
cyBhbiBhcnJheSB3aG9zZSB2YWx1c2UgYXJlIG9idGFpbmVkIGZyb20gdGhlIGl0ZW1WYWx1ZSBE
T00gcHJvcGVydHkgb2YgZWFjaCBvZiB0aGUgZWxlbWVudHMgcmVwcmVzZW50ZWQgYnkgdGhlIG9i
amVjdCwgaW4gdHJlZSBvcmRlci4KKworcHJvcGVydHkgaW5kZXggMCwgdGFnIERJVgorUEFTUyB2
YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkg
aW5kZXggMSwgdGFnIFNQQU4KK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlz
dFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDIsIHRhZyBNRVRBCitQQVNTIHZhbHVlc0Fy
cmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAz
LCB0YWcgQVVESU8KK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5p
dGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDQsIHRhZyBFTUJFRAorUEFTUyB2YWx1ZXNBcnJheVtp
XSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggNSwgdGFn
IElGUkFNRQorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1W
YWx1ZQorcHJvcGVydHkgaW5kZXggNiwgdGFnIElNRworUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBw
cm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggNywgdGFnIFNPVVJD
RQorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQor
cHJvcGVydHkgaW5kZXggOCwgdGFnIFZJREVPCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3Bl
cnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCA5LCB0YWcgVFJBQ0sKK1BB
U1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3Bl
cnR5IGluZGV4IDEwLCB0YWcgQQorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVM
aXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMTEsIHRhZyBBUkVBCitQQVNTIHZhbHVl
c0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRl
eCAxMiwgdGFnIExJTksKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtp
XS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDEzLCB0YWcgUAorUEFTUyB2YWx1ZXNBcnJheVtp
XSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggMTQsIHRh
ZyBTUEFOCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZh
bHVlCitQQVNTIHZhbHVlc0FycmF5Lmxlbmd0aCBpcyAxNQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisgICAgICAKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVl
cy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2
YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVu
dC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3By
b3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12
YWx1ZS1vZi1lYWNoLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlz
IHRlc3QgZW5zdXJlIHRoYXQgUHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBhcnJheSByZXR1
cm5zIGFuIGFycmF5IHdob3NlIHZhbHVzZSBhcmUgb2J0YWluZWQgZnJvbSB0aGUgaXRlbVZhbHVl
IERPTSBwcm9wZXJ0eSBvZiBlYWNoIG9mIHRoZSBlbGVtZW50cyByZXByZXNlbnRlZCBieSB0aGUg
b2JqZWN0LCBpbiB0cmVlIG9yZGVyLjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGRp
dj4KKzxkaXYgaWQ9ImlkMSI+Cis8ZGl2IGl0ZW1wcm9wPSJmb28iPgorPHNwYW4gaXRlbXByb3A9
ImZvbyIgaXRlbXNjb3BlPjwvc3Bhbj4KKzwvZGl2PgorPGRpdiBpdGVtc2NvcGUgaXRlbXJlZj0i
aWQxIiBpZD0iaXRlbSI+Cis8bWV0YSBpdGVtcHJvcD0iZm9vIiBjb250ZW50PSJ0ZXN0IiAvPgor
PGF1ZGlvIGl0ZW1wcm9wPSJmb28iIHNyYz0iYXVkaW8ubXAzIj48L2F1ZGlvPgorPGVtYmVkIGl0
ZW1wcm9wPSJmb28iIHNyYz0idGVzdC5zd2YiIC8+Cis8aWZyYW1lIGl0ZW1wcm9wPSJmb28iIHNy
Yz0idGVzdC5odG1sIj48L2lmcmFtZT4KKzxpbWcgaXRlbXByb3A9ImZvbyIgc3JjPSJ0ZXN0Lmpw
ZyIgLz4KKzxhdWRpbyBjb250cm9scz0iY29udHJvbHMiPgorPHNvdXJjZSBpdGVtcHJvcD0iZm9v
IiBzcmM9InNvbmcubXAzIiB0eXBlPSJhdWRpby9tcDMiIC8+Cis8L2F1ZGlvPgorPHZpZGVvIGl0
ZW1wcm9wPSJmb28iIHNyYz0idmlkZW8ubXA0Ij48L3ZpZGVvPgorPHZpZGVvIHNyYz0idmlkZW8u
bXA0Ij4KKzx0cmFjayBpdGVtcHJvcD0iZm9vIiBzcmM9InN1YnRpdGxlc19lbi52dHQiPgorPC92
aWRlbz4KKzxhIGl0ZW1wcm9wPSJmb28iIHNyYz0ibGluay5odG1sIj48L2E+Cis8bWFwPgorPGFy
ZWEgaXRlbXByb3A9ImZvbyIgaHJlZj0idGVzdC5odG1sIiAvPgorPC9tYXA+Cis8bGluayBpdGVt
cHJvcD0iZm9vIiBocmVmPSJ0ZXN0LmNzcyIgLz4KKzxwIGl0ZW1wcm9wPSJmb28iPgorPHNwYW4g
aXRlbXByb3A9ImZvbyIgaXRlbXNjb3BlPgorPGEgaXRlbXByb3A9ImZvbyIgc3JjPSJ0ZXN0X2Fu
Y2hvci5odG1sIj48L2E+Cis8L3NwYW4+Cis8L3A+Cis8L2Rpdj4KKzwvZGl2PgorPHNjcmlwdD4K
K3ZhciBpdGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIml0ZW0iKTsKK3ZhciBwcm9wZXJ0
eU5vZGVMaXN0ID0gaXRlbS5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJyk7Cit2YXIgdmFsdWVz
QXJyYXkgPSBwcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpOworZm9yICh2YXIgaSA9IDA7IGkg
PCBwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aDsgaSsrKSB7CisgICAgZGVidWcoJ3Byb3BlcnR5IGlu
ZGV4ICcgKyBpICsgJywgdGFnICcgKyBwcm9wZXJ0eU5vZGVMaXN0W2ldLnRhZ05hbWUpOworICAg
IHNob3VsZEJlKCJ2YWx1ZXNBcnJheVtpXSIsICJwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1
ZSIpOworfQorc2hvdWxkQmUoInZhbHVlc0FycmF5Lmxlbmd0aCIsICcxNScpOworPC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0Rh
dGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0
dmFsdWVzLXRlc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkgQEAKK1Byb3BlcnR5Tm9kZUxpc3QuZ2V0VmFs
dWVzKCkgbWV0aG9kIHRlc3QuCisKK1Byb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVzKCkgbWV0aG9k
IG11c3QgcmV0dXJuIGFuIGFycmF5LgorUEFTUyBlbGVtZW50LnByb3BlcnRpZXMubmFtZWRJdGVt
KCdmb28nKS5nZXRWYWx1ZXMoKSBpbnN0YW5jZW9mIEFycmF5IGlzIHRydWUKK1BBU1MgZWxlbWVu
dC5wcm9wZXJ0aWVzWydmb28nXS5nZXRWYWx1ZXMoKSBpbnN0YW5jZW9mIEFycmF5IGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1
ZXMtdGVzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMt
dGVzdC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbWljcm9kYXRhLWNvbW1v
bi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlByb3BlcnR5Tm9kZUxpc3QuZ2V0
VmFsdWVzKCkgbWV0aG9kIHRlc3QuPC9wPgorPGRpdiBpdGVtc2NvcGUgaWQ9Iml0ZW0iPgorPGRp
diBpdGVtcHJvcD0iZm9vIj48L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgordmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXRlbScp
OworZGVidWcoIlByb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVzKCkgbWV0aG9kIG11c3QgcmV0dXJu
IGFuIGFycmF5LiIpOworc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFtZWRJdGVt
KCdmb28nKS5nZXRWYWx1ZXMoKSBpbnN0YW5jZW9mIEFycmF5Iik7CitzaG91bGRCZVRydWUoImVs
ZW1lbnQucHJvcGVydGllc1snZm9vJ10uZ2V0VmFsdWVzKCkgaW5zdGFuY2VvZiBBcnJheSIpOwor
Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LXRlc3QtYWRkLXJlbW92ZS1lbGVtZW50LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEv
cHJvcGVydHlub2RlbGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxlbWVudC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2Rl
bGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMzUgQEAKK01pY3JvZGF0YSBwcm9wZXJ0aWVzIGNvbGxlY3Rpb24gbXVzdCB1cGRh
dGUgb24gYWRkaW5nIG9yIHJlbW92aW5nIHByb3BlcnR5LgorCitQQVNTIHByb3BlcnR5Tm9kZUxp
c3QubGVuZ3RoID09ICcxJyBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gaXRl
bS5jaGlsZHJlblswXSBpcyB0cnVlCitBZGQgYSBwcm9wZXJ0eSB0byB0aGUgaXRlbS4KK0NyZWF0
ZWQgZWxlbWVudCBvZiB0eXBlOiBkaXYKK1NldCBhdHRyaWJ1dGU6IGl0ZW1wcm9wLCB2YWx1ZTog
Zm9vCitQQVNTIHByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBwcm9w
ZXJ0eU5vZGVMaXN0WzBdID09IGl0ZW0uY2hpbGRyZW5bMF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0
eU5vZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRyZW5bMV0gaXMgdHJ1ZQorUmVtb3ZlIGl0ZW1wcm9w
IGF0dHJpYnV0ZSBvZiB0aGUgZmlyc3QgY2hpbGQuCitQQVNTIHByb3BlcnR5Tm9kZUxpc3QubGVu
Z3RoID09IDEgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzBdID09IGl0ZW0uY2hpbGRy
ZW5bMV0gaXMgdHJ1ZQorQWRkIGl0ZW1wcm9wIGF0dHJpYnV0ZSB0byB0aGUgZmlyc3QgY2hpbGQu
CitQQVNTIHByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0
eU5vZGVMaXN0WzBdID09IGl0ZW0uY2hpbGRyZW5bMF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5v
ZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRyZW5bMV0gaXMgdHJ1ZQorQWRkIGl0ZW1yZWYgYXR0cmli
dXRlLgorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAzIGlzIHRydWUKK1BBU1MgcHJv
cGVydHlOb2RlTGlzdFswXSA9PSB0ZXN0RWxlbWVudCBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9k
ZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblswXSBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxp
c3RbMl0gPT0gaXRlbS5jaGlsZHJlblsxXSBpcyB0cnVlCitSZW1vdmUgaXRlbXJlZiBhdHRyaWJ1
dGUuCitQQVNTIHByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDIgaXMgdHJ1ZQorUEFTUyBwcm9w
ZXJ0eU5vZGVMaXN0WzBdID09IGl0ZW0uY2hpbGRyZW5bMF0gaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0
eU5vZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRyZW5bMV0gaXMgdHJ1ZQorQWRkIGl0ZW1yZWYgYXR0
cmlidXRlLgorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAzIGlzIHRydWUKK1BBU1Mg
cHJvcGVydHlOb2RlTGlzdFswXSA9PSB0ZXN0RWxlbWVudCBpcyB0cnVlCitQQVNTIHByb3BlcnR5
Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblswXSBpcyB0cnVlCitQQVNTIHByb3BlcnR5Tm9k
ZUxpc3RbMl0gPT0gaXRlbS5jaGlsZHJlblsxXSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlu
b2RlbGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxlbWVudC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVt
b3ZlLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21pY3JvZGF0
YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5NaWNyb2RhdGEgcHJv
cGVydGllcyBjb2xsZWN0aW9uIG11c3QgdXBkYXRlIG9uIGFkZGluZyBvciByZW1vdmluZyBwcm9w
ZXJ0eS48L3A+Cis8ZGl2IGl0ZW1wcm9wPSJmb28iIGlkPSJ0ZXN0Ij4KKzwvZGl2PgorPGRpdiBp
dGVtc2NvcGUgaWQ9Im1pY3JvZGF0YS1pdGVtIj4KKzxwIGl0ZW1wcm9wPSJmb28iPjwvcD4KKzwv
ZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgordmFyIGl0ZW0gPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnbWljcm9kYXRhLWl0ZW0nKTsKK3ZhciBwcm9wZXJ0eU5vZGVM
aXN0ID0gaXRlbS5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJyk7Cit2YXIgdGVzdEVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOworCitzaG91bGRCZVRydWUoInByb3Bl
cnR5Tm9kZUxpc3QubGVuZ3RoID09ICcxJyIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVM
aXN0WzBdID09IGl0ZW0uY2hpbGRyZW5bMF0iKTsKKworZGVidWcoJ0FkZCBhIHByb3BlcnR5IHRv
IHRoZSBpdGVtLicpOworaXRlbS5hcHBlbmRDaGlsZChjcmVhdGVFbGVtZW50KCdkaXYnLCB7aXRl
bXByb3A6ICdmb28nfSkpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9
PSAyIik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJl
blswXSIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRy
ZW5bMV0iKTsKKworZGVidWcoJ1JlbW92ZSBpdGVtcHJvcCBhdHRyaWJ1dGUgb2YgdGhlIGZpcnN0
IGNoaWxkLicpOworaXRlbS5jaGlsZHJlblswXS5yZW1vdmVBdHRyaWJ1dGUoJ2l0ZW1wcm9wJyk7
CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDEiKTsKK3Nob3VsZEJl
VHJ1ZSgicHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVuWzFdIik7CisKK2RlYnVn
KCdBZGQgaXRlbXByb3AgYXR0cmlidXRlIHRvIHRoZSBmaXJzdCBjaGlsZC4nKTsKK2l0ZW0uY2hp
bGRyZW5bMF0uc2V0QXR0cmlidXRlKCdpdGVtcHJvcCcsICdmb28nKTsKK3Nob3VsZEJlVHJ1ZSgi
cHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMiIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5v
ZGVMaXN0WzBdID09IGl0ZW0uY2hpbGRyZW5bMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlO
b2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVuWzFdIik7CisKK2RlYnVnKCdBZGQgaXRlbXJlZiBh
dHRyaWJ1dGUuJyk7CitpdGVtLnNldEF0dHJpYnV0ZSgnaXRlbXJlZicsICd0ZXN0Jyk7CitzaG91
bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDMiKTsKK3Nob3VsZEJlVHJ1ZSgi
cHJvcGVydHlOb2RlTGlzdFswXSA9PSB0ZXN0RWxlbWVudCIpOworc2hvdWxkQmVUcnVlKCJwcm9w
ZXJ0eU5vZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRyZW5bMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJv
cGVydHlOb2RlTGlzdFsyXSA9PSBpdGVtLmNoaWxkcmVuWzFdIik7CisKK2RlYnVnKCdSZW1vdmUg
aXRlbXJlZiBhdHRyaWJ1dGUuJyk7CitpdGVtLnJlbW92ZUF0dHJpYnV0ZSgnaXRlbXJlZicpOwor
c2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAyIik7CitzaG91bGRCZVRy
dWUoInByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJlblswXSIpOworc2hvdWxkQmVU
cnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRyZW5bMV0iKTsKKworZGVidWco
J0FkZCBpdGVtcmVmIGF0dHJpYnV0ZS4nKTsKK2l0ZW0uc2V0QXR0cmlidXRlKCdpdGVtcmVmJywg
J3Rlc3QnKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMyIpOwor
c2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzBdID09IHRlc3RFbGVtZW50Iik7CitzaG91
bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblswXSIpOworc2hv
dWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzJdID09IGl0ZW0uY2hpbGRyZW5bMV0iKTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153779</attachid>
            <date>2012-07-23 05:18:59 -0700</date>
            <delta_ts>2012-07-23 22:28:30 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-80269-20120723.diff</filename>
            <type>text/plain</type>
            <size>80072</size>
            <attacher name="Arko Saha">arko</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyMzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwOSBAQAorMjAxMi0wNy0yMyAgQXJrbyBT
YWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CisKKyAgICAgICAgTWljcm9kYXRhOiBJbXBsZW1lbnQg
UHJvcGVydHlOb2RlTGlzdCBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MDI2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIFByb3BlcnR5Tm9kZUxpc3QgaW50
ZXJmYWNlLiBDdXJyZW50bHkgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLm5hbWVkSXRlbShuYW1l
KQorICAgICAgICByZXR1cm5zIE5vZGVMaXN0IG9iamVjdC4gTWFkZSBjaGFuZ2VzIHNvIHRoYXQg
aXQgd2lsbCByZXR1cm4gUHJvcGVydHlOb2RlTGlzdCBvYmplY3QuCisKKyAgICAgICAgSW1wbGVt
ZW50ZWQgcHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKSBtZXRob2QuIEl0IHJldHVybnMgYW4g
YXJyYXkgb2YgdmFyaW91cyB2YWx1ZXMuIEl0cworICAgICAgICB2YWx1ZXMgYXJlIG9idGFpbmVk
IGZyb20gdGhlICJpdGVtVmFsdWUiIERPTSBwcm9wZXJ0eSBvZiBlYWNoIG9mIHRoZSBlbGVtZW50
cyByZXByZXNlbnRlZCBieQorICAgICAgICB0aGUgb2JqZWN0LCBpbiB0cmVlIG9yZGVyLgorCisg
ICAgICAgIFNwZWM6IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50
LXdvcmsvbXVsdGlwYWdlL2NvbW1vbi1kb20taW50ZXJmYWNlcy5odG1sI3Byb3BlcnR5bm9kZWxp
c3QKKworICAgICAgICBUZXN0czogZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5z
LXByb3BlcnR5bm9kZWxpc3QuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0
ZW12YWx1ZS1vZi1lYWNoLWVsZW1lbnQuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vTWlj
cm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAorICAgICAgICAgICAg
ICAgZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVs
ZW1lbnQuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMucHJpOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAg
ICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBVc2VKU0MuY21ha2U6CisgICAgICAgICogVXNl
VjguY21ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0dOVW1ha2VmaWxlLmFtOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IEFkZGVkIHRvSlMoKSBjdXN0b20g
bWV0aG9kLiBSZXR1cm5zIE5vZGUgaWYgaXRlbVZhbHVlIGlzIG5vZGUgZWxzZSByZXR1cm5zIFN0
cmluZy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhNaWNyb0RhdGFJdGVtVmFsdWVD
dXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
dG9WOCk6IEFkZGVkIHRvVjggY3VzdG9tIGNvZGUuCisgICAgICAgICogZG9tL0R5bmFtaWNOb2Rl
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OnJv
b3ROb2RlKTogUmV0dXJuIGRvY3VtZW50IGlmIG93bmVyIG5vZGUgaGFzIGl0ZW1yZWYgYXR0cmli
dXRlIHNwZWNpZmllZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RHlu
YW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpvd25lck5vZGVIYXNJdGVtUmVmQXR0cmlidXRlKTogUmV0
dXJucyB0cnVlIGlmIG93bmVyIG5vZGUgaGFzIGl0ZW1yZWYgYXR0cmlidXRlCisgICAgICAgIHNw
ZWNpZmllZCB3aXRoIHJvb3QgdHlwZSBOb2RlTGlzdFJvb3RlZEF0RG9jdW1lbnRJZk93bmVySGFz
SXRlbXJlZkF0dHIuCisgICAgICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6
OmludmFsaWRhdGVDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3Q6Oml0
ZW1XaXRoTmFtZSk6IFVwZGF0ZSBpdGVtcmVmRWxlbWVudHMgY2FjaGUgaWYgcm9vdCB0eXBlIGlz
CisgICAgICAgIE5vZGVMaXN0SXNSb290ZWRBdERvY3VtZW50SWZPd25lckhhc0l0ZW1yZWZBdHRy
CisgICAgICAgICogZG9tL0R5bmFtaWNOb2RlTGlzdC5oOiBBZGRlZCBtX2hhc0l0ZW1SZWZFbGVt
ZW50cyBpbiBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UgdG8gY2hlY2sgaWYgaXRlbVJlZkVsbWVu
ZXRzIGNhY2hlCisgICAgICAgIGlzIHZhbGlkLgorICAgICAgICAoV2ViQ29yZTo6RHluYW1pY05v
ZGVMaXN0Q2FjaGVCYXNlOjpEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjppc1Jvb3RlZEF0RG9jdW1lbnQpOgorICAg
ICAgICAoRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkR5bmFt
aWNOb2RlTGlzdENhY2hlQmFzZTo6aXNJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkR5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6c2V0SXRlbVJlZkVsZW1lbnRz
Q2FjaGVWYWxpZCk6CisgICAgICAgIChXZWJDb3JlOjpEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6
OnJvb3RUeXBlKTogUmV0dXJucyBjYWNoZWQgcm9vdCB0eXBlLgorICAgICAgICAoV2ViQ29yZTo6
RHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjpzaG91bGRJbnZhbGlkYXRlVHlwZU9uQXR0cmlidXRl
Q2hhbmdlKTogSW52YWxpZGF0ZSBOb2RlTGlzdENhY2hlIG9uIGl0ZW1yZWYKKyAgICAgICAgYXR0
cmlidXRlIGNoYW5nZS4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpOb2RlOjpwcm9wZXJ0eU5vZGVMaXN0KToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChOb2RlKToKKyAgICAgICAgKiBkb20vUHJvcGVydHlOb2Rl
TGlzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9wZXJ0eU5vZGVMaXN0OjpQcm9wZXJ0eU5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b3BlcnR5Tm9kZUxpc3Q6On5Qcm9wZXJ0eU5vZGVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b3BlcnR5Tm9kZUxpc3Q6OmVsZW1lbnRJc1Byb3BlcnR5T2ZSZWZFbGVtZW50KTogQ2hlY2tzIGlm
IHRoZSB0ZXN0RWxlbWVudCBpcyBhIHByb3BlcnR5IG9mIE1pY3JvZGF0YQorICAgICAgICBpdGVt
LgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6dXBkYXRlUmVmRWxlbWVudHMp
OgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6bm9kZU1hdGNoZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6Z2V0VmFsdWVzKTogUmV0dXJucyBQcm9w
ZXJ0eVZhbHVlQXJyYXkgd2hvc2UgdmFsdWVzIGFyZSBvYnRhaW5lZCBmcm9tIHRoZQorICAgICAg
ICBpdGVtVmFsdWUgRE9NIHByb3BlcnR5IG9mIGVhY2ggb2YgdGhlIGVsZW1lbnRzIHJlcHJlc2Vu
dGVkIGJ5IHRoZSBvYmplY3QsIGluIHRyZWUgb3JkZXIuCisgICAgICAgICogZG9tL1Byb3BlcnR5
Tm9kZUxpc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFByb3BlcnR5
Tm9kZUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlOb2RlTGlzdDo6Y3JlYXRlKToK
KyAgICAgICAgKiBkb20vUHJvcGVydHlOb2RlTGlzdC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0
bWwvSFRNTENvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHluYW1pY05vZGVMaXN0
Q2FjaGVCYXNlOjppdGVtQ29tbW9uKTogVXBkYXRlIGl0ZW1yZWZFbGVtZW50cyBjYWNoZSBpZiBp
dHMgYSBOb2RlTGlzdENvbGxlY3Rpb25UeXBlIHdpdGgKKyAgICAgICAgcm9vdCB0eXBlIE5vZGVM
aXN0SXNSb290ZWRBdERvY3VtZW50SWZPd25lckhhc0l0ZW1yZWZBdHRyLgorICAgICAgICAqIGh0
bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnByb3Bl
cnRpZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVu
dDo6Z2V0SXRlbVJlZkVsZW1lbnRzKTogUmV0dXJucyB0aGUgSXRlbVJlZkVsZW1lbnRzIGxpc3Qg
b2YgZ2l2ZW4gZWxlbWVudC4gQWRkZWQgdGhpcworICAgICAgICBtZXRob2QgdG8gc2hhcmUgdGhl
IGNvZGUgYmV0d2VlbiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24gYW5kIFByb3BlcnR5Tm9kZUxp
c3QgdG8gdXBkYXRlIGl0ZW1SZWZFbGVtZW50cy4KKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50
Lmg6CisgICAgICAgIChIVE1MRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MUHJvcGVydGll
c0NvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uOjp1cGRhdGVSZWZFbGVtZW50cyk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OnVwZGF0ZU5hbWVDYWNoZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5hbWVkSXRlbSk6IFJldHVybiBQcm9w
ZXJ0eU5vZGVMaXN0IG9iamVjdCBpbnN0ZWFkIG9mIE5vZGVMaXN0LgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uOjpoYXNOYW1lZEl0ZW0pOiBSZXR1cm4gdHJ1ZSBp
ZiBpdCBmaW5kcyBhbiBpdGVtIHdpdGggZ2l2ZW4KKyAgICAgICAgbmFtZSBpbiB0aGUgcHJvcGVy
dGllcyBjb2xsZWN0aW9uLgorICAgICAgICAqIGh0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
Lmg6IFJlbW92ZWQgbV9oYXNJdGVtUmVmRWxlbWVudHMgbWVtYmVyIHZhcmlhYmxlLCBub3cgRHlu
YW1pY05vZGVMaXN0Q2FjaGVCYXNlCisgICAgICAgIGhhcyBpc0l0ZW1SZWZFbGVtZW50c0NhY2hl
VmFsaWQuIEFsc28gcmVtb3ZlZCBtX2hhc1Byb3BlcnR5TmFtZUNhY2hlLCBhcyBEeW5hbWljTm9k
ZUxpc3RDYWNoZUJhc2UgYWxyZWFkeSBoYXMKKyAgICAgICAgaGFzTmFtZUNhY2hlKCkgYW5kIHNl
dEhhc05hbWVDYWNoZSgpLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXNDb2xsZWN0
aW9uOjppbnZhbGlkYXRlQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb3BlcnRpZXND
b2xsZWN0aW9uOjp1cGRhdGVQcm9wZXJ0eUNhY2hlKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9w
ZXJ0aWVzQ29sbGVjdGlvbi5pZGw6CisgICAgICAgICogaHRtbC9NaWNyb0RhdGFJdGVtVmFsdWUu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTItMDctMjMg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQuIEZpeCBtYWtlIGRpc3RjaGVjay4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShy
ZXZpc2lvbiAxMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMzU0LDYgKzM1NCw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGRv
bS9Qb3BTdGF0ZUV2ZW50LmlkbAogICAgIGRvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsCiAg
ICAgZG9tL1Byb2dyZXNzRXZlbnQuaWRsCisgICAgZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaWRsCiAg
ICAgZG9tL1JhbmdlRXhjZXB0aW9uLmlkbAogICAgIGRvbS9SYW5nZS5pZGwKICAgICBkb20vUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsCkBAIC00NjQsNiArNDY1LDcgQEAgU0VUKFdl
YkNvcmVfSURMX0ZJTEVTCiAgICAgaHRtbC9JbWFnZURhdGEuaWRsCiAgICAgaHRtbC9NZWRpYUNv
bnRyb2xsZXIuaWRsCiAgICAgaHRtbC9NZWRpYUVycm9yLmlkbAorICAgIGh0bWwvTWljcm9EYXRh
SXRlbVZhbHVlLmlkbAogICAgIGh0bWwvUmFkaW9Ob2RlTGlzdC5pZGwKICAgICBodG1sL1RleHRN
ZXRyaWNzLmlkbAogICAgIGh0bWwvVGltZVJhbmdlcy5pZGwKQEAgLTExMzAsNiArMTEzMiw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20vUG9zaXRpb25JdGVyYXRvci5jcHAKICAgICBk
b20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAogICAgIGRvbS9Qcm9ncmVzc0V2ZW50LmNwcAor
ICAgIGRvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcAogICAgIGRvbS9RdWFsaWZpZWROYW1lLmNwcAog
ICAgIGRvbS9SYW5nZS5jcHAKICAgICBkb20vUmFuZ2VFeGNlcHRpb24uY3BwCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMuY3BwCShyZXZpc2lvbiAxMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2Nyw2ICsyNjcsNyBAQAog
I2luY2x1ZGUgIkpTUG9zaXRpb25FcnJvckNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU1Byb2Nl
c3NpbmdJbnN0cnVjdGlvbi5jcHAiCiAjaW5jbHVkZSAiSlNQcm9ncmVzc0V2ZW50LmNwcCIKKyNp
bmNsdWRlICJKU1Byb3BlcnR5Tm9kZUxpc3QuY3BwIgogI2luY2x1ZGUgIkpTUmFkaW9Ob2RlTGlz
dC5jcHAiCiAjaW5jbHVkZSAiSlNSYW5nZS5jcHAiCiAjaW5jbHVkZSAiSlNSYW5nZUV4Y2VwdGlv
bi5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDEyMzMz
MikKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkK
QEAgLTI0Miw2ICsyNDIsOCBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20v
UG9wU3RhdGVFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1Byb2Nlc3NpbmdJbnN0cnVj
dGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1Byb2dyZXNzRXZlbnQuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vUHJv
cGVydHlOb2RlTGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1JhbmdlLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9S
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwgXApAQCAtMzQ4LDYgKzM1MCw3IEBAIEJJ
TkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSW1hZ2VEYXRhLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9odG1sL01lZGlhQ29udHJvbGxlci5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRt
bC9NZWRpYUVycm9yLmlkbCBcCisgICAgJChXZWJDb3JlKS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1
ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9SYWRpb05vZGVMaXN0LmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9odG1sL1RleHRNZXRyaWNzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL1RpbWVS
YW5nZXMuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHJldmlzaW9uIDEy
MzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkod29ya2luZyBjb3B5
KQpAQCAtMjUyLDYgKzI1Miw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgJCRQV0QvZG9tL1Bv
cFN0YXRlRXZlbnQuaWRsIFwKICAgICAkJFBXRC9kb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmlk
bCBcCiAgICAgJCRQV0QvZG9tL1Byb2dyZXNzRXZlbnQuaWRsIFwKKyAgICAkJFBXRC9kb20vUHJv
cGVydHlOb2RlTGlzdC5pZGwgXAogICAgICQkUFdEL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwgXAog
ICAgICQkUFdEL2RvbS9SYW5nZS5pZGwgXAogICAgICQkUFdEL2RvbS9SZXF1ZXN0QW5pbWF0aW9u
RnJhbWVDYWxsYmFjay5pZGwgXApAQCAtMzk2LDYgKzM5Nyw3IEBAIElETF9CSU5ESU5HUyArPSBc
CiAgICAgJCRQV0QvaHRtbC9JbWFnZURhdGEuaWRsIFwKICAgICAkJFBXRC9odG1sL01lZGlhQ29u
dHJvbGxlci5pZGwgXAogICAgICQkUFdEL2h0bWwvTWVkaWFFcnJvci5pZGwgXAorICAgICQkUFdE
L2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmlkbCBcCiAgICAgJCRQV0QvaHRtbC9SYWRpb05vZGVM
aXN0LmlkbCBcCiAgICAgJCRQV0QvaHRtbC9UZXh0TWV0cmljcy5pZGwgXAogICAgICQkUFdEL2h0
bWwvVGltZVJhbmdlcy5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShy
ZXZpc2lvbiAxMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3
b3JraW5nIGNvcHkpCkBAIC00MDUsNiArNDA1LDggQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWVzc2FnZUV2ZW50LmggXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNNZXNzYWdlUG9ydC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNNZXNzYWdlUG9ydC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTWljcm9EYXRh
SXRlbVZhbHVlLmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU01pY3JvRGF0YUl0ZW1W
YWx1ZS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTW91c2VFdmVudC5jcHAgXAogCURl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNb3VzZUV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNNdXRhdGlvbkNhbGxiYWNrLmNwcCBcCkBAIC00NzcsNiArNDc5LDggQEAgd2ViY29y
ZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQcm9ncmVzc0V2ZW50
LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Byb2dyZXNzRXZlbnQuaCBcCisJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Byb3BlcnR5Tm9kZUxpc3QuY3BwIFwKKwlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTUHJvcGVydHlOb2RlTGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTUmFkaW9Ob2RlTGlzdC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSYWRp
b05vZGVMaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNSYW5nZS5jcHAgXApAQCAt
Nzk1LDYgKzc5OSw3IEBAIGRvbV9iaW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvZG9tL1Bv
cFN0YXRlRXZlbnQuaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24u
aWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCisJJChXZWJDb3JlKS9k
b20vUHJvcGVydHlOb2RlTGlzdC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1JhbmdlLmlkbCBcCiAJ
JChXZWJDb3JlKS9kb20vUmFuZ2VFeGNlcHRpb24uaWRsIFwKIAkkKFdlYkNvcmUpL2RvbS9TaGFk
b3dSb290LmlkbCBcCkBAIC05MDAsNiArOTA1LDcgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJ
JChXZWJDb3JlKS9odG1sL01lZGlhRXJyb3IuaWRsIFwKIAkkKFdlYkNvcmUpL2h0bWwvTWVkaWFL
ZXlFcnJvci5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9NZWRpYUtleUV2ZW50LmlkbCBcCisJJChX
ZWJDb3JlKS9odG1sL01pY3JvRGF0YUl0ZW1WYWx1ZS5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9S
YWRpb05vZGVMaXN0LmlkbCBcCiAJJChXZWJDb3JlKS9odG1sL1RleHRNZXRyaWNzLmlkbCBcCiAJ
JChXZWJDb3JlKS9odG1sL1RpbWVSYW5nZXMuaWRsIFwKQEAgLTE0ODMsNiArMTQ4OSw3IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdl
RXZlbnRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQ
b3J0Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9y
dEN1c3RvbS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01pY3JvRGF0YUl0ZW1W
YWx1ZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRpb25D
YWxsYmFja0N1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTXV0YXRp
b25PYnNlcnZlckN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFt
ZWROb2RlTWFwQ3VzdG9tLmNwcCBcCkBAIC0yMDE0LDYgKzIwMjEsOCBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL1Byb2dyZXNzRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vUHJvZ3Jlc3NFdmVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlz
dC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9RdWFsaWZpZWROYW1lLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1F1
YWxpZmllZE5hbWUuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlQm91bmRhcnlQb2ludC5o
IFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQkocmV2aXNpb24gMTIzMzMyKQorKysgU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQkod29ya2luZyBjb3B5KQpAQCAtMTY2LDYgKzE2Niw3IEBAIFNPVVJDRVMgKz0g
XAogICAgICBiaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAgXAogICAgICBiaW5k
aW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTWVz
c2FnZVBvcnRDdXN0b20uaCBcCisgICAgIGJpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVl
Q3VzdG9tLmNwcCBcCiAgICAgIGJpbmRpbmdzL2pzL0pTTXV0YXRpb25DYWxsYmFja0N1c3RvbS5j
cHAgXAogICAgICBiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKICAg
ICAgYmluZGluZ3MvanMvSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIFwKQEAgLTQzOSw2ICs0NDAs
NyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vUG9zaXRpb25JdGVyYXRvci5jcHAgXAogICAgIGRv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIFwKICAgICBkb20vUHJvZ3Jlc3NFdmVudC5jcHAg
XAorICAgIGRvbS9Qcm9wZXJ0eU5vZGVMaXN0LmNwcCBcCiAgICAgZG9tL1F1YWxpZmllZE5hbWUu
Y3BwIFwKICAgICBkb20vUmFuZ2UuY3BwIFwKICAgICBkb20vUmFuZ2VFeGNlcHRpb24uY3BwIFwK
QEAgLTE1NjEsNiArMTU2Myw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9Qb3NpdGlvbkl0ZXJh
dG9yLmggXAogICAgIGRvbS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBcCiAgICAgZG9tL1Byb2dy
ZXNzRXZlbnQuaCBcCisgICAgZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaCBcCiAgICAgZG9tL1F1YWxp
ZmllZE5hbWUuaCBcCiAgICAgZG9tL1JhbmdlLmggXAogICAgIGRvbS9SZWdpc3RlcmVkRXZlbnRM
aXN0ZW5lci5oIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UJKHJldmlzaW9uIDEyMzMzMikKKysrIFNv
dXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSw3
IEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTTWVzc2Fn
ZUNoYW5uZWxDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKKyAgICBiaW5kaW5n
cy9qcy9KU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU011
dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNNdXRhdGlvbk9ic2Vy
dmVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTTmFtZWROb2RlTWFwQ3VzdG9tLmNwcApJ
bmRleDogU291cmNlL1dlYkNvcmUvVXNlVjguY21ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvVXNlVjguY21ha2UJKHJldmlzaW9uIDEyMzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL1Vz
ZVY4LmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsNiArMTMwLDcgQEAgTElTVChBUFBFTkQg
V2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZUNoYW5uZWxD
b25zdHJ1Y3Rvci5jcHAKICAgICBiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlRXZlbnRDdXN0
b20uY3BwCiAgICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVzc2FnZVBvcnRDdXN0b20uY3BwCisg
ICAgYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAogICAg
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOE11dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5n
cy92OC9jdXN0b20vVjhOYW1lZE5vZGVNYXBDdXN0b20uY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CShyZXZpc2lvbiAxMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtp
bmcgY29weSkKQEAgLTk4OSw2ICs5ODksNyBAQAogICAgICAgICAgICAgJ2RvbS9Qb3BTdGF0ZUV2
ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwnLAog
ICAgICAgICAgICAgJ2RvbS9Qcm9ncmVzc0V2ZW50LmlkbCcsCisgICAgICAgICAgICAnZG9tL1By
b3BlcnR5Tm9kZUxpc3QuaWRsJywKICAgICAgICAgICAgICdkb20vUmFuZ2UuaWRsJywKICAgICAg
ICAgICAgICdkb20vUmFuZ2VFeGNlcHRpb24uaWRsJywKICAgICAgICAgICAgICdkb20vUmVxdWVz
dEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsJywKQEAgLTEwOTYsNiArMTA5Nyw3IEBACiAgICAg
ICAgICAgICAnaHRtbC9JbWFnZURhdGEuaWRsJywKICAgICAgICAgICAgICdodG1sL01lZGlhQ29u
dHJvbGxlci5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvTWVkaWFFcnJvci5pZGwnLAorICAgICAg
ICAgICAgJ2h0bWwvTWljcm9EYXRhSXRlbVZhbHVlLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9N
ZWRpYUtleUVycm9yLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9NZWRpYUtleUV2ZW50LmlkbCcs
CiAgICAgICAgICAgICAnaHRtbC9SYWRpb05vZGVMaXN0LmlkbCcsCkBAIC0yMDM1LDYgKzIwMzcs
NyBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uaCcsCisgICAgICAgICAg
ICAnYmluZGluZ3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU011dGF0aW9uQ2FsbGJhY2tDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU011dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwJywKICAgICAgICAg
ICAgICdiaW5kaW5ncy9qcy9KU05hbWVkTm9kZU1hcEN1c3RvbS5jcHAnLApAQCAtMjM0Niw2ICsy
MzQ5LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20vVjhNZXNzYWdlQ2hhbm5l
bENvbnN0cnVjdG9yLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4TWVz
c2FnZUV2ZW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TWVzc2FnZVBvcnRDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy92OC9jdXN0b20v
VjhNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy92
OC9jdXN0b20vVjhNdXRhdGlvbkNhbGxiYWNrQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE5hbWVkTm9kZU1hcEN1c3RvbS5jcHAnLApAQCAtNTIz
OCw2ICs1MjQyLDggQEAKICAgICAgICAgICAgICdkb20vUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgn
LAogICAgICAgICAgICAgJ2RvbS9Qcm9ncmVzc0V2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9t
L1Byb2dyZXNzRXZlbnQuaCcsCisgICAgICAgICAgICAnZG9tL1Byb3BlcnR5Tm9kZUxpc3QuY3Bw
JywKKyAgICAgICAgICAgICdkb20vUHJvcGVydHlOb2RlTGlzdC5oJywKICAgICAgICAgICAgICdk
b20vUXVhbGlmaWVkTmFtZS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9SYW5nZS5jcHAnLAogICAg
ICAgICAgICAgJ2RvbS9SYW5nZUV4Y2VwdGlvbi5jcHAnLApJbmRleDogU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDEyMzMzMikKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTMxMCw2ICsxMTMxMCw2MiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5h
bWUpXERlcml2ZWRTb3VyY2VzXEpTTWljcm9EYXRhSXRlbVZhbHVlLmNwcCIKKwkJCQk+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01pY3JvRGF0
YUl0ZW1WYWx1ZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQ
YXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTTWV0YWRhdGEuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAg
LTEyOTkwLDYgKzEzMDQ2LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNQcm9wZXJ0eU5vZGVMaXN0LmNwcCIKKwkJCQk+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1Byb3BlcnR5Tm9kZUxp
c3QuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U1JhZGlvTm9kZUxpc3QuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTUy
ODU5LDYgKzUyOTcxLDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxQcm9wZXJ0eU5vZGVMaXN0LmNwcCIKKwkJCQk+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFByb3BlcnR5Tm9k
ZUxpc3QuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXFF1YWxpZmllZE5hbWUuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTY4MzY2LDYg
KzY4NTM0LDYyIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxiaW5kaW5nc1xqc1xKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAiCisJ
CQkJCT4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIK
KwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJSZWxlYXNlfFdp
bjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9v
bAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVn
X0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJ
Lz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiCisJCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxiaW5k
aW5nc1xqc1xKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5oIgorCQkJCQk+CisJCQkJPC9GaWxl
PgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcanNcSlNNdXRhdGlv
bkNhbGxiYWNrQ3VzdG9tLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDEyMzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjgwLDYgKzI4MCwxMyBAQAogCQkw
RkY1MDI2QTEwMkJBOTQzMDA2NkYzOUEgLyogSlNTdHlsZU1lZGlhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkY1MDI2ODEwMkJBOTQzMDA2NkYzOUEg
LyogSlNTdHlsZU1lZGlhLmggKi87IH07CiAJCTBGRjUwMjcxMTAyQkE5NkEwMDY2RjM5QSAvKiBT
dHlsZU1lZGlhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRjUwMjZFMTAyQkE5NjYwMDY2RjM5QSAvKiBTdHlsZU1lZGlhLmNwcCAqLzsgfTsKIAkJ
MEZGNTAyNzIxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRjUwMjZGMTAyQkE5NkEwMDY2RjM5QSAv
KiBTdHlsZU1lZGlhLmggKi87IH07CisJCTEwNTk0NTczMTVCNDI5NTMwMDREMzdGRCAvKiBKU01p
Y3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxMDU5NDU3MjE1QjQyOTUzMDA0RDM3RkQgLyogSlNNaWNyb0RhdGFJ
dGVtVmFsdWVDdXN0b20uY3BwICovOyB9OworCQkxMDU5NDU3NzE1QjQyQTBEMDA0RDM3RkQgLyog
SlNNaWNyb0RhdGFJdGVtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTA1OTQ1NzUxNUI0MkEwRDAwNEQzN0ZEIC8qIEpTTWljcm9EYXRhSXRl
bVZhbHVlLmNwcCAqLzsgfTsKKwkJMTA1OTQ1N0ExNUI0MkE0MzAwNEQzN0ZEIC8qIEpTTWljcm9E
YXRhSXRlbVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxMDU5NDU3OTE1QjQyQTQzMDA0RDM3RkQgLyogSlNNaWNyb0RhdGFJdGVtVmFsdWUuaCAq
LzsgfTsKKwkJMTA1OTQ1OTcxNUI0MkE4RTAwNEQzN0ZEIC8qIFByb3BlcnR5Tm9kZUxpc3QuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTA1OTQ1OTYx
NUI0MkE4RTAwNEQzN0ZEIC8qIFByb3BlcnR5Tm9kZUxpc3QuY3BwICovOyB9OworCQkxMDU5NDU5
OTE1QjQyQUEwMDA0RDM3RkQgLyogUHJvcGVydHlOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTA1OTQ1OTgxNUI0MkFBMDAwNEQzN0ZEIC8q
IFByb3BlcnR5Tm9kZUxpc3QuaCAqLzsgfTsKKwkJMTA1OTQ1OUQxNUI0MkIwQzAwNEQzN0ZEIC8q
IEpTUHJvcGVydHlOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxMDU5NDU5QzE1QjQyQjBDMDA0RDM3RkQgLyogSlNQcm9wZXJ0eU5vZGVM
aXN0LmNwcCAqLzsgfTsKKwkJMTA1OTQ1OUYxNUI0MkIxQTAwNEQzN0ZEIC8qIEpTUHJvcGVydHlO
b2RlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTA1OTQ1OUUxNUI0MkIxQTAwNEQzN0ZEIC8qIEpTUHJvcGVydHlOb2RlTGlzdC5oICovOyB9Owog
CQkxMEZCMDg0QjE0RTE1QzdFMDBBM0RCOTggLyogUHVibGljVVJMTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTBGQjA4NEExNEUxNUM3RTAw
QTNEQjk4IC8qIFB1YmxpY1VSTE1hbmFnZXIuaCAqLzsgfTsKIAkJMTJGMzVFQjYxNTg3NDVBNDAw
MzVDQjYzIC8qIFdlYktpdE5hbWVkRmxvd0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDEyRjM1RUI0MTU4NzQ1QTQwMDM1Q0I2MyAvKiBX
ZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmggKi87IH07CiAJCTEyRjM1RUI3MTU4NzQ1QTQwMDM1
Q0I2MyAvKiBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDEyRjM1RUI1MTU4NzQ1QTQwMDM1Q0I2MyAvKiBX
ZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmNwcCAqLzsgfTsKQEAgLTcyNDMsNiArNzI1MCwxNSBA
QAogCQkwRkY1MDI2RTEwMkJBOTY2MDA2NkYzOUEgLyogU3R5bGVNZWRpYS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZU1lZGlhLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZGNTAyNkYxMDJCQTk2QTAwNjZGMzlBIC8qIFN0eWxlTWVkaWEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVNZWRpYS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkY1MDI3MDEwMkJBOTZBMDA2NkYzOUEgLyogU3R5bGVN
ZWRpYS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3R5bGVNZWRpYS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTEwNTk0NTcxMTVCNDI4QzMwMDREMzdGRCAvKiBNaWNyb0Rh
dGFJdGVtVmFsdWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1pY3JvRGF0YUl0ZW1WYWx1
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTEwNTk0NTcyMTVCNDI5NTMwMDRE
MzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTEwNTk0NTc1MTVCNDJBMEQwMDREMzdGRCAvKiBKU01p
Y3JvRGF0YUl0ZW1WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTEwNTk0NTc5MTVCNDJBNDMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxMDU5NDU5NjE1QjQyQThFMDA0RDM3RkQgLyogUHJv
cGVydHlOb2RlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
cm9wZXJ0eU5vZGVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTA1OTQ1
OTgxNUI0MkFBMDAwNEQzN0ZEIC8qIFByb3BlcnR5Tm9kZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUHJvcGVydHlOb2RlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxMDU5NDU5QTE1QjQyQUMwMDA0RDM3RkQgLyogUHJvcGVydHlOb2RlTGlzdC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUHJvcGVydHlOb2RlTGlzdC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTEwNTk0NTlDMTVCNDJCMEMwMDREMzdGRCAvKiBKU1Byb3Bl
cnR5Tm9kZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQ
cm9wZXJ0eU5vZGVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTA1OTQ1
OUUxNUI0MkIxQTAwNEQzN0ZEIC8qIEpTUHJvcGVydHlOb2RlTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1Byb3BlcnR5Tm9kZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTBGQjA4NEExNEUxNUM3RTAwQTNEQjk4IC8qIFB1YmxpY1VSTE1hbmFn
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHVibGljVVJMTWFuYWdlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMkYzNUVCNDE1ODc0NUE0MDAzNUNCNjMg
LyogV2ViS2l0TmFtZWRGbG93Q29sbGVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJLaXROYW1lZEZsb3dDb2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTEyRjM1RUI1MTU4NzQ1QTQwMDM1Q0I2MyAvKiBXZWJLaXROYW1lZEZsb3dDb2xs
ZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdE5h
bWVkRmxvd0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc0
NzUsNiArMTc0OTEsNyBAQAogCQkJCTA3QTZEMUVBMTQ5MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZy
YWdtZW50VVJJUGFyc2VyLmggKi8sCiAJCQkJOUIyRjdDRjcxNDU2MjEyMDAwN0Y4QjUwIC8qIE1p
Y3JvRGF0YUl0ZW1WYWx1ZS5jcHAgKi8sCiAJCQkJOUIyRjdDRjgxNDU2MjEyMDAwN0Y4QjUwIC8q
IE1pY3JvRGF0YUl0ZW1WYWx1ZS5oICovLAorCQkJCTEwNTk0NTcxMTVCNDI4QzMwMDREMzdGRCAv
KiBNaWNyb0RhdGFJdGVtVmFsdWUuaWRsICovLAogCQkJCUY1NUIzRDkxMTI1MUYxMkQwMDNFRjI2
OSAvKiBNb250aElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOTIxMjUxRjEyRDAwM0VGMjY5
IC8qIE1vbnRoSW5wdXRUeXBlLmggKi8sCiAJCQkJRjU1QjNEOTMxMjUxRjEyRDAwM0VGMjY5IC8q
IE51bWJlcklucHV0VHlwZS5jcHAgKi8sCkBAIC0xODI0Niw2ICsxODI2Myw4IEBACiAJCQkJQ0Qy
N0Y2RTMxNDU3Njc1ODAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmggKi8sCiAJCQkJRTQ0
NjE0MTAwQ0Q2ODI2OTAwRkFEQTc1IC8qIEpTTWVkaWFFcnJvci5jcHAgKi8sCiAJCQkJRTQ0NjE0
MTEwQ0Q2ODI2OTAwRkFEQTc1IC8qIEpTTWVkaWFFcnJvci5oICovLAorCQkJCTEwNTk0NTc1MTVC
NDJBMEQwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZS5jcHAgKi8sCisJCQkJMTA1OTQ1
NzkxNUI0MkE0MzAwNEQzN0ZEIC8qIEpTTWljcm9EYXRhSXRlbVZhbHVlLmggKi8sCiAJCQkJOTAw
MTc4N0UxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgKi8s
CiAJCQkJOTAwMTc4N0YxMkUwMzcwNzAwNjQ4NDYyIC8qIEpTT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5oICovLAogCQkJCTZFQkYwRTc0MTJBOTg2ODgwMERCMTcwOSAvKiBKU09FU1RleHR1cmVGbG9h
dC5jcHAgKi8sCkBAIC0xODc2MCw2ICsxODc3OSw4IEBACiAJCQkJNjVERjMxRUMwOUQxQ0M2MDAw
MEJFMzI1IC8qIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggKi8sCiAJCQkJRTRCNDIzODUwQ0JG
QjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5jcHAgKi8sCiAJCQkJRTRCNDIzODYwQ0JG
QjczQzAwQUYyRUNFIC8qIEpTUHJvZ3Jlc3NFdmVudC5oICovLAorCQkJCTEwNTk0NTlDMTVCNDJC
MEMwMDREMzdGRCAvKiBKU1Byb3BlcnR5Tm9kZUxpc3QuY3BwICovLAorCQkJCTEwNTk0NTlFMTVC
NDJCMUEwMDREMzdGRCAvKiBKU1Byb3BlcnR5Tm9kZUxpc3QuaCAqLywKIAkJCQk0OTk4QUVDQjEz
RjlENkM5MDA5MEIxQUEgLyogSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5jcHAgKi8s
CiAJCQkJNDk5OEFFQ0MxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2suaCAqLywKIAkJCQk0QTFFNzFBMzE0RTEwNkFDMDA2MjZGOUQgLyogSlNTaGFkb3dS
b290LmNwcCAqLywKQEAgLTIwMTY1LDYgKzIwMTg2LDcgQEAKIAkJCQk0MTBCN0U3MTEwNDVGQUIw
MDBEODIyNEYgLyogSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwICovLAogCQkJCUUxQURFRDQ2MEU3
NkI4REQwMDRBMUE1RSAvKiBKU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcCAqLywKIAkJCQk0MUY1ODRD
NjEwNDY1MkNCMDA5Q0FBNjQgLyogSlNNZXNzYWdlUG9ydEN1c3RvbS5oICovLAorCQkJCTEwNTk0
NTcyMTVCNDI5NTMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAgKi8s
CiAJCQkJQzZGMDkxODQxNDNBNkMzQjAwNjg1ODQ5IC8qIEpTTXV0YXRpb25DYWxsYmFja0N1c3Rv
bS5jcHAgKi8sCiAJCQkJQzZGMDkxN0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTTXV0YXRpb25PYnNl
cnZlckN1c3RvbS5jcHAgKi8sCiAJCQkJQkNEOUMyNUYwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTmFt
ZWROb2RlTWFwQ3VzdG9tLmNwcCAqLywKQEAgLTIxNTcwLDYgKzIxNTkyLDkgQEAKIAkJCQlFNEI0
MUUwMTBDQkY4RUFBMDBBRjJFQ0UgLyogUHJvZ3Jlc3NFdmVudC5jcHAgKi8sCiAJCQkJRTRCNDFF
MDIwQ0JGOEVBQTAwQUYyRUNFIC8qIFByb2dyZXNzRXZlbnQuaCAqLywKIAkJCQlFNEI0MUUwMzBD
QkY4RUFBMDBBRjJFQ0UgLyogUHJvZ3Jlc3NFdmVudC5pZGwgKi8sCisJCQkJMTA1OTQ1OTYxNUI0
MkE4RTAwNEQzN0ZEIC8qIFByb3BlcnR5Tm9kZUxpc3QuY3BwICovLAorCQkJCTEwNTk0NTk4MTVC
NDJBQTAwMDREMzdGRCAvKiBQcm9wZXJ0eU5vZGVMaXN0LmggKi8sCisJCQkJMTA1OTQ1OUExNUI0
MkFDMDAwNEQzN0ZEIC8qIFByb3BlcnR5Tm9kZUxpc3QuaWRsICovLAogCQkJCTU1MEEwQkM3MDg1
RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLywKIAkJCQk1NTBBMEJDODA4NUY2
MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oICovLAogCQkJCUY1MjNEMzAzMDJERTQ0NzYw
MTg2MzVDQSAvKiBSYW5nZS5jcHAgKi8sCkBAIC0yNTIzNyw2ICsyNTI2Miw5IEBACiAJCQkJRkQ1
MzczNTMxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
M0NGMTdBNTE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQzNDRjE3QTcxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXJSZWdp
c3RyeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTA1OTQ1N0ExNUI0MkE0MzAwNEQzN0ZEIC8qIEpT
TWljcm9EYXRhSXRlbVZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxMDU5NDU5OTE1QjQyQUEw
MDA0RDM3RkQgLyogUHJvcGVydHlOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTA1OTQ1
OUYxNUI0MkIxQTAwNEQzN0ZEIC8qIEpTUHJvcGVydHlOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07
CkBAIC0yODI5Niw2ICsyODMyNCwxMCBAQAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAv
KiBaZXJvUG9sZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDM0NGMTdBNDE1QjAwNjNGMDAyNzZE
MzkgLyogSWRUYXJnZXRPYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDM0NGMTdBNjE1
QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTEwNTk0NTczMTVCNDI5NTMwMDREMzdGRCAvKiBKU01pY3JvRGF0YUl0ZW1WYWx1
ZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxMDU5NDU3NzE1QjQyQTBEMDA0RDM3RkQg
LyogSlNNaWNyb0RhdGFJdGVtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMTA1OTQ1OTcx
NUI0MkE4RTAwNEQzN0ZEIC8qIFByb3BlcnR5Tm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMTA1OTQ1OUQxNUI0MkIwQzAwNEQzN0ZEIC8qIEpTUHJvcGVydHlOb2RlTGlzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFr
ZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9H
TlVtYWtlZmlsZS5hbQkocmV2aXNpb24gMTIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvZ29iamVjdC9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtNDI4LDEwICs0Mjgs
MTMgQEAgZW5kaWYKIAogaWYgRU5BQkxFX01JQ1JPREFUQQogd2Via2l0Z3RrX2J1aWx0X2hfYXBp
ICs9IFwKLQkkKHRvcF9idWlsZGRpcikvRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCisJJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2Vz
L3dlYmtpdC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaCBcCisJJCh0b3BfYnVp
bGRkaXIpL0Rlcml2ZWRTb3VyY2VzL3dlYmtpdC9XZWJLaXRET01Qcm9wZXJ0eU5vZGVMaXN0LmgK
IHdlYmtpdGd0a19nZG9tX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL3dlYmtp
dC9XZWJLaXRET01IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwIFwKLQlEZXJpdmVkU291cmNl
cy93ZWJraXQvV2ViS2l0RE9NSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uUHJpdmF0ZS5oCisJRGVy
aXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTUhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvblByaXZh
dGUuaCBcCisJRGVyaXZlZFNvdXJjZXMvd2Via2l0L1dlYktpdERPTVByb3BlcnR5Tm9kZUxpc3Qu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy93ZWJraXQvV2ViS2l0RE9NUHJvcGVydHlOb2RlTGlzdFBy
aXZhdGUuaAogZW5kaWYKIAogaWYgRU5BQkxFX1dFQl9USU1JTkcKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkocmV2aXNpb24g
MTIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25l
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE5LDYgKzExOSw3IEBACiAjaW5jbHVkZSAiSlNNZXNz
YWdlQ2hhbm5lbEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNNZXNzYWdlRXZlbnRDdXN0b20uY3Bw
IgogI2luY2x1ZGUgIkpTTWVzc2FnZVBvcnRDdXN0b20uY3BwIgorI2luY2x1ZGUgIkpTTWljcm9E
YXRhSXRlbVZhbHVlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU011dGF0aW9uQ2FsbGJhY2tDdXN0
b20uY3BwIgogI2luY2x1ZGUgIkpTTXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAiCiAjaW5jbHVk
ZSAiSlNOYW1lZE5vZGVNYXBDdXN0b20uY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNNaWNyb0RhdGFJdGVtVmFsdWVDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWljcm9EYXRhSXRlbVZh
bHVlQ3VzdG9tLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHly
aWdodCAoYykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0Cisg
KiBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShNSUNST0RBVEEpCisjaW5jbHVkZSAiSlNNaWNy
b0RhdGFJdGVtVmFsdWUuaCIKKworI2luY2x1ZGUgIkpTTm9kZS5oIgorI2luY2x1ZGUgPHJ1bnRp
bWUvSlNBcnJheS5oPgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIE1pY3JvRGF0YUl0ZW1WYWx1ZSogaXRlbVZhbHVlKQoreworICAgIGlmICgh
aXRlbVZhbHVlKQorICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgaWYgKGl0ZW1WYWx1ZS0+
aXNOb2RlKCkpCisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaXRlbVZh
bHVlLT5nZXROb2RlKCkpOworICAgIHJldHVybiBqc1N0cmluZyhleGVjLCBpdGVtVmFsdWUtPmdl
dFN0cmluZygpKTsKK30KKworfQorCisjZW5kaWYgLy8gRU5BQkxFKE1JQ1JPREFUQSkKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1
c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4TWljcm9EYXRhSXRlbVZhbHVlQ3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOE1pY3JvRGF0YUl0ZW1WYWx1ZUN1c3RvbS5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIg
TW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorCisjaW5jbHVkZSAiVjhNaWNyb0RhdGFJdGVtVmFs
dWUuaCIKKworI2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4Tm9kZS5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KE1pY3JvRGF0
YUl0ZW1WYWx1ZSogaXRlbVZhbHVlLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKK3sKKyAgICBpZiAo
IWl0ZW1WYWx1ZSkKKyAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7CisgICAgaWYgKGl0ZW1WYWx1
ZS0+aXNOb2RlKCkpCisgICAgICAgIHJldHVybiB0b1Y4KGl0ZW1WYWx1ZS0+Z2V0Tm9kZSgpKTsK
KyAgICByZXR1cm4gdjhTdHJpbmcoaXRlbVZhbHVlLT5nZXRTdHJpbmcoKSk7Cit9CisKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShNSUNST0RBVEEpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRHlu
YW1pY05vZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1p
Y05vZGVMaXN0LmNwcAkocmV2aXNpb24gMTIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0R5
bmFtaWNOb2RlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDE1ICsyNywzNCBAQAogI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUg
IkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIlByb3BlcnR5Tm9kZUxpc3Qu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitOb2RlKiBEeW5hbWljTm9kZUxpc3RDYWNoZUJh
c2U6OnJvb3ROb2RlKCkgY29uc3QKK3sKKyAgICBpZiAoKGlzUm9vdGVkQXREb2N1bWVudCgpIHx8
IG93bmVyTm9kZUhhc0l0ZW1SZWZBdHRyaWJ1dGUoKSkgJiYgbV9vd25lck5vZGUtPmluRG9jdW1l
bnQoKSkKKyAgICAgICAgcmV0dXJuIG1fb3duZXJOb2RlLT5kb2N1bWVudCgpOworICAgIHJldHVy
biBtX293bmVyTm9kZS5nZXQoKTsKK30KKworQUxXQVlTX0lOTElORSBib29sIER5bmFtaWNOb2Rl
TGlzdENhY2hlQmFzZTo6b3duZXJOb2RlSGFzSXRlbVJlZkF0dHJpYnV0ZSgpIGNvbnN0Cit7Cisj
aWYgRU5BQkxFKE1JQ1JPREFUQSkKKyAgICBpZiAobV9yb290VHlwZSA9PSBOb2RlTGlzdElzUm9v
dGVkQXREb2N1bWVudElmT3duZXJIYXNJdGVtcmVmQXR0cikKKyAgICAgICAgcmV0dXJuIHRvRWxl
bWVudChvd25lck5vZGUoKSktPmZhc3RIYXNBdHRyaWJ1dGUoSFRNTE5hbWVzOjppdGVtcmVmQXR0
cik7CisjZW5kaWYKKworICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBEeW5hbWljTm9kZUxp
c3RDYWNoZUJhc2U6OmludmFsaWRhdGVDYWNoZSgpIGNvbnN0CiB7CiAgICAgbV9jYWNoZWRJdGVt
ID0gMDsKICAgICBtX2lzTGVuZ3RoQ2FjaGVWYWxpZCA9IGZhbHNlOwogICAgIG1faXNJdGVtQ2Fj
aGVWYWxpZCA9IGZhbHNlOwogICAgIG1faXNOYW1lQ2FjaGVWYWxpZCA9IGZhbHNlOworICAgIG1f
aXNJdGVtUmVmRWxlbWVudHNDYWNoZVZhbGlkID0gZmFsc2U7CiAgICAgaWYgKHR5cGUoKSA9PSBO
b2RlTGlzdENvbGxlY3Rpb25UeXBlKQogICAgICAgICByZXR1cm47CiAKQEAgLTY2LDYgKzg1LDEx
IEBAIE5vZGUqIER5bmFtaWNOb2RlTGlzdDo6aXRlbVdpdGhOYW1lKGNvbnMKICAgICBOb2RlKiBy
b290Tm9kZSA9IHRoaXMtPnJvb3ROb2RlKCk7CiAKICAgICBpZiAocm9vdE5vZGUtPmluRG9jdW1l
bnQoKSkgeworI2lmIEVOQUJMRShNSUNST0RBVEEpCisgICAgICAgIGlmIChyb290VHlwZSgpID09
IE5vZGVMaXN0SXNSb290ZWRBdERvY3VtZW50SWZPd25lckhhc0l0ZW1yZWZBdHRyKQorICAgICAg
ICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgUHJvcGVydHlOb2RlTGlzdCo+KHRoaXMpLT51cGRhdGVS
ZWZFbGVtZW50cygpOworI2VuZGlmCisKICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IHJvb3RO
b2RlLT50cmVlU2NvcGUoKS0+Z2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKICAgICAgICAgaWYg
KGVsZW1lbnQgJiYgbm9kZU1hdGNoZXMoZWxlbWVudCkgJiYgZWxlbWVudC0+aXNEZXNjZW5kYW50
T2Yocm9vdE5vZGUpKQogICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5oCShyZXZpc2lvbiAxMjMzMzIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcg
QEAgY2xhc3MgTm9kZTsKIGVudW0gTm9kZUxpc3RSb290VHlwZSB7CiAgICAgTm9kZUxpc3RJc1Jv
b3RlZEF0Tm9kZSwKICAgICBOb2RlTGlzdElzUm9vdGVkQXREb2N1bWVudCwKKyAgICBOb2RlTGlz
dElzUm9vdGVkQXREb2N1bWVudElmT3duZXJIYXNJdGVtcmVmQXR0ciwKIH07CiAKIGNsYXNzIER5
bmFtaWNOb2RlTGlzdENhY2hlQmFzZSB7CkBAIC01NCwyMCArNTUsMjIgQEAgcHVibGljOgogICAg
ICAgICAsIG1fY2FjaGVkSXRlbSgwKQogICAgICAgICAsIG1faXNMZW5ndGhDYWNoZVZhbGlkKGZh
bHNlKQogICAgICAgICAsIG1faXNJdGVtQ2FjaGVWYWxpZChmYWxzZSkKLSAgICAgICAgLCBtX3Jv
b3RlZEF0RG9jdW1lbnQocm9vdFR5cGUgPT0gTm9kZUxpc3RJc1Jvb3RlZEF0RG9jdW1lbnQpCisg
ICAgICAgICwgbV9yb290VHlwZShyb290VHlwZSkKICAgICAgICAgLCBtX2ludmFsaWRhdGlvblR5
cGUoaW52YWxpZGF0aW9uVHlwZSkKICAgICAgICAgLCBtX3Nob3VsZE9ubHlJbmNsdWRlRGlyZWN0
Q2hpbGRyZW4oc2hvdWxkT25seUluY2x1ZGVEaXJlY3RDaGlsZHJlbikKICAgICAgICAgLCBtX2lz
TmFtZUNhY2hlVmFsaWQoZmFsc2UpCiAgICAgICAgICwgbV9jb2xsZWN0aW9uVHlwZShjb2xsZWN0
aW9uVHlwZSkKICAgICAgICAgLCBtX292ZXJyaWRlc0l0ZW1BZnRlcihpdGVtQWZ0ZXJPdmVycmlk
ZVR5cGUgPT0gT3ZlcnJpZGVzSXRlbUFmdGVyKQorICAgICAgICAsIG1faXNJdGVtUmVmRWxlbWVu
dHNDYWNoZVZhbGlkKGZhbHNlKQogICAgIHsKKyAgICAgICAgQVNTRVJUKG1fcm9vdFR5cGUgPT0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJvb3RUeXBlKSk7CiAgICAgICAgIEFTU0VSVChtX2ludmFs
aWRhdGlvblR5cGUgPT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGludmFsaWRhdGlvblR5cGUpKTsK
ICAgICAgICAgQVNTRVJUKG1fY29sbGVjdGlvblR5cGUgPT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGNvbGxlY3Rpb25UeXBlKSk7CiAgICAgICAgIEFTU0VSVCghbV9vdmVycmlkZXNJdGVtQWZ0ZXIg
fHwgbV9jb2xsZWN0aW9uVHlwZSAhPSBOb2RlTGlzdENvbGxlY3Rpb25UeXBlKTsKICAgICB9CiAK
IHB1YmxpYzoKLSAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNSb290ZWRBdERvY3VtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9yb290ZWRBdERvY3VtZW50OyB9CisgICAgQUxXQVlTX0lOTElORSBib29s
IGlzUm9vdGVkQXREb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdFR5cGUgPT0gTm9kZUxp
c3RJc1Jvb3RlZEF0RG9jdW1lbnQ7IH0KICAgICBBTFdBWVNfSU5MSU5FIE5vZGVMaXN0SW52YWxp
ZGF0aW9uVHlwZSBpbnZhbGlkYXRpb25UeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
Tm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlPihtX2ludmFsaWRhdGlvblR5cGUpOyB9CiAgICAgQUxX
QVlTX0lOTElORSBDb2xsZWN0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8Q29sbGVjdGlvblR5cGU+KG1fY29sbGVjdGlvblR5cGUpOyB9CiAgICAgTm9kZSogb3duZXJO
b2RlKCkgY29uc3QgeyByZXR1cm4gbV9vd25lck5vZGUuZ2V0KCk7IH0KQEAgLTgyLDEyICs4NSw3
IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fb3duZXJOb2RlLT5kb2N1bWVudCgpOyB9Ci0gICAgTm9kZSogcm9vdE5vZGUo
KSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKGlzUm9vdGVkQXREb2N1bWVudCgpICYmIG1fb3du
ZXJOb2RlLT5pbkRvY3VtZW50KCkpCi0gICAgICAgICAgICByZXR1cm4gbV9vd25lck5vZGUtPmRv
Y3VtZW50KCk7Ci0gICAgICAgIHJldHVybiBtX293bmVyTm9kZS5nZXQoKTsKLSAgICB9CisgICAg
Tm9kZSogcm9vdE5vZGUoKSBjb25zdDsKICAgICBib29sIG92ZXJyaWRlc0l0ZW1BZnRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGVzSXRlbUFmdGVyOyB9CiAKICAgICBBTFdBWVNfSU5MSU5F
IGJvb2wgaXNJdGVtQ2FjaGVWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJdGVtQ2FjaGVWYWxp
ZDsgfQpAQCAtMTExLDYgKzEwOSwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogICAgIHZvaWQgc2V0
SXRlbUNhY2hlKE5vZGUqIGl0ZW0sIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgZWxlbWVudHNB
cnJheU9mZnNldCkgY29uc3Q7CiAKKyAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNJdGVtUmVmRWxl
bWVudHNDYWNoZVZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9pc0l0ZW1SZWZFbGVtZW50c0NhY2hl
VmFsaWQ7IH0KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0SXRlbVJlZkVsZW1lbnRzQ2FjaGVW
YWxpZCgpIGNvbnN0IHsgbV9pc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQgPSB0cnVlOyB9CisK
KyAgICBBTFdBWVNfSU5MSU5FIE5vZGVMaXN0Um9vdFR5cGUgcm9vdFR5cGUoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxOb2RlTGlzdFJvb3RUeXBlPihtX3Jvb3RUeXBlKTsgfQorCiAgICAg
Ym9vbCBoYXNOYW1lQ2FjaGUoKSBjb25zdCB7IHJldHVybiBtX2lzTmFtZUNhY2hlVmFsaWQ7IH0K
ICAgICB2b2lkIHNldEhhc05hbWVDYWNoZSgpIGNvbnN0IHsgbV9pc05hbWVDYWNoZVZhbGlkID0g
dHJ1ZTsgfQogCkBAIC0xMjYsNiArMTI5LDcgQEAgcHJpdmF0ZToKICAgICB0ZW1wbGF0ZSA8Ym9v
bCBmb3J3YXJkPiBOb2RlKiBpdGVyYXRlRm9yTmV4dE5vZGUoTm9kZSogY3VycmVudCkgY29uc3Q7
CiAgICAgdGVtcGxhdGU8Ym9vbCBmb3J3YXJkPiBOb2RlKiBpdGVtQmVmb3JlT3JBZnRlcihOb2Rl
KiBwcmV2aW91c0l0ZW0pIGNvbnN0OyAgICAKICAgICBOb2RlKiBpdGVtQmVmb3JlKE5vZGUqIHBy
ZXZpb3VzSXRlbSkgY29uc3Q7CisgICAgYm9vbCBvd25lck5vZGVIYXNJdGVtUmVmQXR0cmlidXRl
KCkgY29uc3Q7CiAKICAgICBSZWZQdHI8Tm9kZT4gbV9vd25lck5vZGU7CiAgICAgbXV0YWJsZSBO
b2RlKiBtX2NhY2hlZEl0ZW07CkBAIC0xMzMsNyArMTM3LDcgQEAgcHJpdmF0ZToKICAgICBtdXRh
YmxlIHVuc2lnbmVkIG1fY2FjaGVkSXRlbU9mZnNldDsKICAgICBtdXRhYmxlIHVuc2lnbmVkIG1f
aXNMZW5ndGhDYWNoZVZhbGlkIDogMTsKICAgICBtdXRhYmxlIHVuc2lnbmVkIG1faXNJdGVtQ2Fj
aGVWYWxpZCA6IDE7Ci0gICAgY29uc3QgdW5zaWduZWQgbV9yb290ZWRBdERvY3VtZW50IDogMTsK
KyAgICBjb25zdCB1bnNpZ25lZCBtX3Jvb3RUeXBlIDogMjsKICAgICBjb25zdCB1bnNpZ25lZCBt
X2ludmFsaWRhdGlvblR5cGUgOiA0OwogICAgIGNvbnN0IHVuc2lnbmVkIG1fc2hvdWxkT25seUlu
Y2x1ZGVEaXJlY3RDaGlsZHJlbiA6IDE7CiAKQEAgLTE0MSw2ICsxNDUsNyBAQCBwcml2YXRlOgog
ICAgIG11dGFibGUgdW5zaWduZWQgbV9pc05hbWVDYWNoZVZhbGlkIDogMTsKICAgICBjb25zdCB1
bnNpZ25lZCBtX2NvbGxlY3Rpb25UeXBlIDogNTsKICAgICBjb25zdCB1bnNpZ25lZCBtX292ZXJy
aWRlc0l0ZW1BZnRlciA6IDE7CisgICAgbXV0YWJsZSB1bnNpZ25lZCBtX2lzSXRlbVJlZkVsZW1l
bnRzQ2FjaGVWYWxpZCA6IDE7CiB9OwogCiBBTFdBWVNfSU5MSU5FIGJvb2wgRHluYW1pY05vZGVM
aXN0Q2FjaGVCYXNlOjpzaG91bGRJbnZhbGlkYXRlVHlwZU9uQXR0cmlidXRlQ2hhbmdlKE5vZGVM
aXN0SW52YWxpZGF0aW9uVHlwZSB0eXBlLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
QEAgLTE2MSw3ICsxNjYsNyBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgRHluYW1pY05vZGVMaXN0Q2Fj
aGVCCiAgICAgICAgIHJldHVybiBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6OmhyZWZBdHRyOwogICAg
IGNhc2UgSW52YWxpZGF0ZU9uSXRlbUF0dHJDaGFuZ2U6CiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkK
LSAgICAgICAgcmV0dXJuIGF0dHJOYW1lID09IEhUTUxOYW1lczo6aXRlbXNjb3BlQXR0ciB8fCBh
dHRyTmFtZSA9PSBIVE1MTmFtZXM6Oml0ZW1wcm9wQXR0ciB8fCBhdHRyTmFtZSA9PSBIVE1MTmFt
ZXM6Oml0ZW10eXBlQXR0cjsKKyAgICAgICAgcmV0dXJuIGF0dHJOYW1lID09IEhUTUxOYW1lczo6
aXRlbXNjb3BlQXR0ciB8fCBhdHRyTmFtZSA9PSBIVE1MTmFtZXM6Oml0ZW1wcm9wQXR0ciB8fCBh
dHRyTmFtZSA9PSBIVE1MTmFtZXM6Oml0ZW10eXBlQXR0ciB8fCBhdHRyTmFtZSA9PSBIVE1MTmFt
ZXM6Oml0ZW1yZWZBdHRyOwogI2VuZGlmIC8vIEludGVudGlvbmFsbHkgZmFsbCB0aHJvdWdoCiAg
ICAgY2FzZSBEb05vdEludmFsaWRhdGVPbkF0dHJpYnV0ZUNoYW5nZXM6CiAgICAgICAgIHJldHVy
biBmYWxzZTsKQEAgLTE4MSw2ICsxODYsNyBAQCBwdWJsaWM6CiAgICAgICAgIFJhZGlvTm9kZUxp
c3RUeXBlLAogICAgICAgICBMYWJlbHNOb2RlTGlzdFR5cGUsCiAgICAgICAgIE1pY3JvRGF0YUl0
ZW1MaXN0VHlwZSwKKyAgICAgICAgUHJvcGVydHlOb2RlTGlzdFR5cGUsCiAgICAgfTsKICAgICBE
eW5hbWljTm9kZUxpc3QoUGFzc1JlZlB0cjxOb2RlPiBvd25lck5vZGUsIE5vZGVMaXN0VHlwZSB0
eXBlLCBOb2RlTGlzdFJvb3RUeXBlIHJvb3RUeXBlLCBOb2RlTGlzdEludmFsaWRhdGlvblR5cGUg
aW52YWxpZGF0aW9uVHlwZSkKICAgICAgICAgOiBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2Uob3du
ZXJOb2RlLmdldCgpLCByb290VHlwZSwgaW52YWxpZGF0aW9uVHlwZSwgdHlwZSA9PSBDaGlsZE5v
ZGVMaXN0VHlwZSwgTm9kZUxpc3RDb2xsZWN0aW9uVHlwZSwgRG9lc05vdE92ZXJyaWRlSXRlbUFm
dGVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAkocmV2aXNpb24gMTIzMzMyKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTksNiArMTE5LDcgQEAKIAog
I2lmIEVOQUJMRShNSUNST0RBVEEpCiAjaW5jbHVkZSAiSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
LmgiCisjaW5jbHVkZSAiUHJvcGVydHlOb2RlTGlzdC5oIgogI2VuZGlmCiAKIHVzaW5nIG5hbWVz
cGFjZSBzdGQ7CkBAIC0yNzMyLDYgKzI3MzMsMTAgQEAgdm9pZCBOb2RlOjpzZXRJdGVtVHlwZShj
b25zdCBTdHJpbmcmIHZhbAogICAgIGVuc3VyZVJhcmVEYXRhKCktPnNldEl0ZW1UeXBlKHZhbHVl
KTsKIH0KIAorUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PiBOb2RlOjpwcm9wZXJ0eU5vZGVM
aXN0KGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICByZXR1cm4gZW5zdXJlUmFyZURhdGEoKS0+
ZW5zdXJlTm9kZUxpc3RzKCktPmFkZENhY2hlV2l0aE5hbWU8UHJvcGVydHlOb2RlTGlzdD4odGhp
cywgRHluYW1pY05vZGVMaXN0OjpQcm9wZXJ0eU5vZGVMaXN0VHlwZSwgbmFtZSk7Cit9CiAjZW5k
aWYKIAogLy8gSXQncyBpbXBvcnRhbnQgbm90IHRvIGlubGluZSByZW1vdmVkTGFzdFJlZiwgYmVj
YXVzZSB3ZSBkb24ndCB3YW50IHRvIGlubGluZSB0aGUgY29kZSB0bwpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5o
CShyZXZpc2lvbiAxMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC05MCw2ICs5MCw3IEBAIGNsYXNzIFRyZWVTY29wZTsKIAogI2lmIEVOQUJMRShN
SUNST0RBVEEpCiBjbGFzcyBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb247CitjbGFzcyBQcm9wZXJ0
eU5vZGVMaXN0OwogI2VuZGlmCiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CkBAIC02Mjcs
NiArNjI4LDcgQEAgcHVibGljOgogICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KiBpdGVtUHJvcCgp
OwogICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KiBpdGVtUmVmKCk7CiAgICAgRE9NU2V0dGFibGVU
b2tlbkxpc3QqIGl0ZW1UeXBlKCk7CisgICAgUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PiBw
cm9wZXJ0eU5vZGVMaXN0KGNvbnN0IFN0cmluZyYpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTVVU
QVRJT05fT0JTRVJWRVJTKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxp
c3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMp
IDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAqIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Us
CisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisg
KiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICogYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dAorICogc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBFTkFCTEUoTUlDUk9EQVRBKQorI2luY2x1ZGUgIlByb3BlcnR5Tm9kZUxp
c3QuaCIKKworI2luY2x1ZGUgIkRPTVNldHRhYmxlVG9rZW5MaXN0LmgiCisjaW5jbHVkZSAiRE9N
U3RyaW5nTGlzdC5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCisjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworUHJvcGVydHlOb2RlTGlzdDo6UHJvcGVy
dHlOb2RlTGlzdChOb2RlKiByb290Tm9kZSwgY29uc3QgU3RyaW5nJiBuYW1lKQorICAgIDogRHlu
YW1pY1N1YnRyZWVOb2RlTGlzdChyb290Tm9kZSwgUHJvcGVydHlOb2RlTGlzdFR5cGUsIEludmFs
aWRhdGVPbkl0ZW1BdHRyQ2hhbmdlLCBOb2RlTGlzdElzUm9vdGVkQXREb2N1bWVudElmT3duZXJI
YXNJdGVtcmVmQXR0cikKKyAgICAsIG1fbmFtZShuYW1lKQoreworfQorCitQcm9wZXJ0eU5vZGVM
aXN0Ojp+UHJvcGVydHlOb2RlTGlzdCgpCit7CisgICAgb3duZXJOb2RlKCktPm5vZGVMaXN0cygp
LT5yZW1vdmVDYWNoZVdpdGhOYW1lKHRoaXMsIER5bmFtaWNOb2RlTGlzdDo6UHJvcGVydHlOb2Rl
TGlzdFR5cGUsIG1fbmFtZSk7Cit9CisKK2Jvb2wgUHJvcGVydHlOb2RlTGlzdDo6ZWxlbWVudElz
UHJvcGVydHlPZlJlZkVsZW1lbnQoY29uc3QgTm9kZSogdGVzdEVsZW1lbnQsIGNvbnN0IE5vZGUg
KnJlZkVsZW1lbnQpIGNvbnN0Cit7CisgICAgZm9yIChjb25zdCBDb250YWluZXJOb2RlKiBub2Rl
ID0gdGVzdEVsZW1lbnQtPnBhcmVudE5vZGUoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPnBhcmVudE5v
ZGUoKSkgeworICAgICAgICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIHRvSFRNTEVsZW1l
bnQobm9kZSktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3BlQXR0cikgJiYgbm9kZSAhPSBvd25l
ck5vZGUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKG5v
ZGUgPT0gcmVmRWxlbWVudCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUHJvcGVydHlOb2RlTGlzdDo6dXBkYXRlUmVmRWxlbWVu
dHMoKSBjb25zdAoreworICAgIGlmIChpc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9pdGVtUmVmRWxlbWVudHNDYWNoZS5jbGVhcigpOworICAg
IHNldEl0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQoKTsKKyAgICB0b0hUTUxFbGVtZW50KG93bmVy
Tm9kZSgpKS0+Z2V0SXRlbVJlZkVsZW1lbnRzKG1faXRlbVJlZkVsZW1lbnRzQ2FjaGUpOworfQor
Citib29sIFByb3BlcnR5Tm9kZUxpc3Q6Om5vZGVNYXRjaGVzKEVsZW1lbnQqIHRlc3RFbGVtZW50
KSBjb25zdAoreworICAgIGlmICghdGVzdEVsZW1lbnQtPmlzSFRNTEVsZW1lbnQoKSB8fCAhdGVz
dEVsZW1lbnQtPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXByb3BBdHRyKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1faXRlbVJlZkVsZW1lbnRz
Q2FjaGUuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKHRlc3RFbGVtZW50ID09IG1faXRlbVJl
ZkVsZW1lbnRzQ2FjaGVbaV0gfHwgZWxlbWVudElzUHJvcGVydHlPZlJlZkVsZW1lbnQodGVzdEVs
ZW1lbnQsIG1faXRlbVJlZkVsZW1lbnRzQ2FjaGVbaV0pKSB7CisgICAgICAgICAgICBpZiAodGVz
dEVsZW1lbnQtPml0ZW1Qcm9wKCktPnRva2VucygpLmNvbnRhaW5zKG1fbmFtZSkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK1Byb3BlcnR5VmFsdWVBcnJheSBQcm9wZXJ0eU5vZGVMaXN0OjpnZXRWYWx1ZXMo
KSBjb25zdAoreworICAgIFByb3BlcnR5VmFsdWVBcnJheSBwcm9wZXJ0eVZhbHVlOworICAgIHVu
c2lnbmVkIG9mZnNldCA9IDA7CisKKyAgICB3aGlsZSAoTm9kZSogbm9kZSA9IGl0ZW0ob2Zmc2V0
KSkgeworICAgICAgICBvZmZzZXQrKzsKKyAgICAgICAgcHJvcGVydHlWYWx1ZS5hcHBlbmQodG9I
VE1MRWxlbWVudChub2RlKS0+aXRlbVZhbHVlKCkpOworICAgIH0KKworICAgIHJldHVybiBwcm9w
ZXJ0eVZhbHVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoTUlDUk9EQVRBKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5oCShy
ZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1Byb3BlcnR5Tm9kZUxpc3QuaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMiBNb3Rv
cm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAqIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3IKKyAqIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogTmVpdGhlciB0
aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBj
b250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUHJvcGVydHlOb2RlTGlz
dF9oCisjZGVmaW5lIFByb3BlcnR5Tm9kZUxpc3RfaAorCisjaWYgRU5BQkxFKE1JQ1JPREFUQSkK
KyNpbmNsdWRlICJEeW5hbWljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJNaWNyb0RhdGFJdGVtVmFs
dWUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordHlw
ZWRlZiBWZWN0b3I8UmVmUHRyPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gPiBQcm9wZXJ0eVZhbHVlQXJy
YXk7CisKK2NsYXNzIFByb3BlcnR5Tm9kZUxpc3QgOiBwdWJsaWMgRHluYW1pY1N1YnRyZWVOb2Rl
TGlzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4g
Y3JlYXRlKE5vZGUqIHJvb3ROb2RlLCBjb25zdCBTdHJpbmcmIG5hbWUpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFByb3BlcnR5Tm9kZUxpc3Qocm9vdE5vZGUsIG5hbWUpKTsK
KyAgICB9CisKKyAgICB+UHJvcGVydHlOb2RlTGlzdCgpOworCisgICAgUHJvcGVydHlWYWx1ZUFy
cmF5IGdldFZhbHVlcygpIGNvbnN0OworICAgIHZvaWQgdXBkYXRlUmVmRWxlbWVudHMoKSBjb25z
dDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBQcm9wZXJ0eU5vZGVMaXN0KE5vZGUqIHJvb3RO
b2RlLCBjb25zdCBTdHJpbmcmIG5hbWUpOworCisgICAgdmlydHVhbCBib29sIG5vZGVNYXRjaGVz
KEVsZW1lbnQqKSBjb25zdCBPVkVSUklERTsKKworICAgIGJvb2wgZWxlbWVudElzUHJvcGVydHlP
ZlJlZkVsZW1lbnQoY29uc3QgTm9kZSosIGNvbnN0IE5vZGUqKSBjb25zdDsKKworICAgIFN0cmlu
ZyBtX25hbWU7CisgICAgbXV0YWJsZSBWZWN0b3I8SFRNTEVsZW1lbnQqPiBtX2l0ZW1SZWZFbGVt
ZW50c0NhY2hlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKE1JQ1JPREFUQSkKKworI2VuZGlmIC8vIFN0YXRpY05vZGVMaXN0X2gKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9Qcm9wZXJ0eU5vZGVMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwJKHJldmlzaW9uIDApCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vUHJvcGVydHlOb2RlTGlzdC5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHksIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbiwKKyAq
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
IG1ldDoKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCisgKiB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAq
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yCisgKiBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIE5laXRoZXIgdGhlIG5hbWUgb2YgTW90b3JvbGEg
TW9iaWxpdHksIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heQorICog
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMg
c29mdHdhcmUgd2l0aG91dAorICogc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBIT0xERVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORworICogTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCittb2R1bGUgY29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBD
b25kaXRpb25hbD1NSUNST0RBVEEsCisgICAgICAgIEluZGV4ZWRHZXR0ZXIsCisgICAgICAgIEpT
R2VuZXJhdGVUb0pTT2JqZWN0CisgICAgXSBQcm9wZXJ0eU5vZGVMaXN0IDogTm9kZUxpc3Qgewor
CisgICAgICAgIHNlcXVlbmNlPE1pY3JvRGF0YUl0ZW1WYWx1ZT4gZ2V0VmFsdWVzKCk7CisgICAg
ICAgIE5vZGUgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKKworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CisgICAgfTsKK30KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAxMjMzMzIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
NiArMzIsNyBAQAogCiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKICNpbmNsdWRlICJIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJQcm9wZXJ0eU5vZGVMaXN0LmgiCiAjZW5kaWYK
IAogI2luY2x1ZGUgPHV0aWxpdHk+CkBAIC0zNjgsNiArMzY5LDggQEAgTm9kZSogRHluYW1pY05v
ZGVMaXN0Q2FjaGVCYXNlOjppdGVtQ29tbQogI2lmIEVOQUJMRShNSUNST0RBVEEpCiAgICAgaWYg
KHR5cGUoKSA9PSBJdGVtUHJvcGVydGllcykKICAgICAgICAgc3RhdGljX2Nhc3Q8Y29uc3QgSFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uKj4odGhpcyktPnVwZGF0ZVJlZkVsZW1lbnRzKCk7CisgICAg
aWYgKHR5cGUoKSA9PSBOb2RlTGlzdENvbGxlY3Rpb25UeXBlICYmIHJvb3RUeXBlKCkgPT0gTm9k
ZUxpc3RJc1Jvb3RlZEF0RG9jdW1lbnRJZk93bmVySGFzSXRlbXJlZkF0dHIpCisgICAgICAgIHN0
YXRpY19jYXN0PGNvbnN0IFByb3BlcnR5Tm9kZUxpc3QqPih0aGlzKS0+dXBkYXRlUmVmRWxlbWVu
dHMoKTsKICNlbmRpZgogCiAgICAgaWYgKGlzTGVuZ3RoQ2FjaGVWYWxpZCgpICYmICFvdmVycmlk
ZXNJdGVtQWZ0ZXIoKSAmJiBpc0xhc3RJdGVtQ2xvc2VyVGhhbkxhc3RPckNhY2hlZEl0ZW0ob2Zm
c2V0KSkgewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAJKHJldmlzaW9uIDEy
MzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2lu
Y2x1ZGUgIkNTU1ZhbHVlUG9vbC5oIgogI2luY2x1ZGUgIkNoaWxkTGlzdE11dGF0aW9uU2NvcGUu
aCIKKyNpbmNsdWRlICJET01TZXR0YWJsZVRva2VuTGlzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIu
aCIKQEAgLTk5Myw2ICs5OTQsMzkgQEAgUGFzc1JlZlB0cjxIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b24+IEhUTQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MUHJvcGVydGllc0NvbGxlY3Rp
b24qPihlbnN1cmVDYWNoZWRIVE1MQ29sbGVjdGlvbihJdGVtUHJvcGVydGllcykuZ2V0KCkpOwog
fQorCit2b2lkIEhUTUxFbGVtZW50OjpnZXRJdGVtUmVmRWxlbWVudHMoVmVjdG9yPEhUTUxFbGVt
ZW50Kj4mIGl0ZW1SZWZFbGVtZW50cykKK3sKKyAgICBpZiAoIWZhc3RIYXNBdHRyaWJ1dGUoaXRl
bXNjb3BlQXR0cikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghZmFzdEhhc0F0dHJpYnV0
ZShpdGVtcmVmQXR0cikpIHsKKyAgICAgICAgaXRlbVJlZkVsZW1lbnRzLmFwcGVuZCh0aGlzKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIERPTVNldHRhYmxlVG9rZW5MaXN0KiBpdGVt
UmVmcyA9IGl0ZW1SZWYoKTsKKyAgICBSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IHByb2Nl
c3NlZEl0ZW1SZWYgPSBET01TZXR0YWJsZVRva2VuTGlzdDo6Y3JlYXRlKCk7CisgICAgTm9kZSog
cm9vdE5vZGUgPSB0cmVlU2NvcGUoKS0+cm9vdE5vZGUoKTsKKworICAgIGZvciAoTm9kZSogY3Vy
cmVudCA9IHJvb3ROb2RlLT5maXJzdENoaWxkKCk7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50
LT50cmF2ZXJzZU5leHROb2RlKHJvb3ROb2RlKSkgeworICAgICAgICBpZiAoIWN1cnJlbnQtPmlz
SFRNTEVsZW1lbnQoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBIVE1MRWxlbWVu
dCogZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQoY3VycmVudCk7CisKKyAgICAgICAgaWYgKGVsZW1l
bnQgPT0gdGhpcykgeworICAgICAgICAgICAgaXRlbVJlZkVsZW1lbnRzLmFwcGVuZChlbGVtZW50
KTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBpZCA9IGVsZW1lbnQtPmdldElkQXR0cmlidXRlKCk7CisgICAgICAgIGlmICgh
cHJvY2Vzc2VkSXRlbVJlZi0+dG9rZW5zKCkuY29udGFpbnMoaWQpICYmIGl0ZW1SZWZzLT50b2tl
bnMoKS5jb250YWlucyhpZCkpIHsKKyAgICAgICAgICAgIHByb2Nlc3NlZEl0ZW1SZWYtPnNldFZh
bHVlKGlkKTsKKyAgICAgICAgICAgIGlmICghZWxlbWVudC0+aXNEZXNjZW5kYW50T2YodGhpcykp
CisgICAgICAgICAgICAgICAgaXRlbVJlZkVsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKKyAgICAg
ICAgfQorICAgIH0KK30KICNlbmRpZgogCiB2b2lkIEhUTUxFbGVtZW50OjphZGRIVE1MTGVuZ3Ro
VG9TdHlsZShTdHlsZVByb3BlcnR5U2V0KiBzdHlsZSwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlE
LCBjb25zdCBTdHJpbmcmIHZhbHVlKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaAko
cmV2aXNpb24gMTIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEl0ZW1W
YWx1ZShjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxNaWNy
b0RhdGFJdGVtVmFsdWU+IGl0ZW1WYWx1ZSgpIGNvbnN0OwogICAgIFBhc3NSZWZQdHI8SFRNTFBy
b3BlcnRpZXNDb2xsZWN0aW9uPiBwcm9wZXJ0aWVzKCk7CisgICAgdm9pZCBnZXRJdGVtUmVmRWxl
bWVudHMoVmVjdG9yPEhUTUxFbGVtZW50Kj4mKTsKICNlbmRpZgogCiAjaWZuZGVmIE5ERUJVRwpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
LmNwcAkocmV2aXNpb24gMTIzMzMyKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBACiAjaW5j
bHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJO
b2RlLmgiCi0jaW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJQcm9wZXJ0eU5v
ZGVMaXN0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTIsOCArNTIsNiBAQCBQYXNz
UmVmUHRyPEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbj4gSFRNCiAKIEhUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbjo6SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKE5vZGUqIGl0ZW1Ob2RlKQogICAgIDog
SFRNTENvbGxlY3Rpb24oaXRlbU5vZGUsIEl0ZW1Qcm9wZXJ0aWVzLCBPdmVycmlkZXNJdGVtQWZ0
ZXIpCi0gICAgLCBtX2hhc1Byb3BlcnR5TmFtZUNhY2hlKGZhbHNlKQotICAgICwgbV9oYXNJdGVt
UmVmRWxlbWVudHMoZmFsc2UpCiB7CiB9CiAKQEAgLTYzLDQzICs2MSwxMiBAQCBIVE1MUHJvcGVy
dGllc0NvbGxlY3Rpb246On5IVE1MUHJvcGVydGllCiAKIHZvaWQgSFRNTFByb3BlcnRpZXNDb2xs
ZWN0aW9uOjp1cGRhdGVSZWZFbGVtZW50cygpIGNvbnN0CiB7Ci0gICAgaWYgKG1faGFzSXRlbVJl
ZkVsZW1lbnRzKQorICAgIGlmIChpc0l0ZW1SZWZFbGVtZW50c0NhY2hlVmFsaWQoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgSFRNTEVsZW1lbnQqIGJhc2VFbGVtZW50ID0gdG9IVE1MRWxlbWVu
dChiYXNlKCkpOwotCiAgICAgbV9pdGVtUmVmRWxlbWVudHMuY2xlYXIoKTsKLSAgICBtX2hhc0l0
ZW1SZWZFbGVtZW50cyA9IHRydWU7Ci0KLSAgICBpZiAoIWJhc2VFbGVtZW50LT5mYXN0SGFzQXR0
cmlidXRlKGl0ZW1zY29wZUF0dHIpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWJhc2VF
bGVtZW50LT5mYXN0SGFzQXR0cmlidXRlKGl0ZW1yZWZBdHRyKSkgewotICAgICAgICBtX2l0ZW1S
ZWZFbGVtZW50cy5hcHBlbmQoYmFzZUVsZW1lbnQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgRE9NU2V0dGFibGVUb2tlbkxpc3QqIGl0ZW1SZWYgPSBiYXNlRWxlbWVudC0+aXRlbVJl
ZigpOwotICAgIFJlZlB0cjxET01TZXR0YWJsZVRva2VuTGlzdD4gcHJvY2Vzc2VkSXRlbVJlZiA9
IERPTVNldHRhYmxlVG9rZW5MaXN0OjpjcmVhdGUoKTsKLSAgICBOb2RlKiByb290Tm9kZSA9IGJh
c2VFbGVtZW50LT50cmVlU2NvcGUoKS0+cm9vdE5vZGUoKTsKLQotICAgIGZvciAoTm9kZSogY3Vy
cmVudCA9IHJvb3ROb2RlLT5maXJzdENoaWxkKCk7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50
LT50cmF2ZXJzZU5leHROb2RlKHJvb3ROb2RlKSkgewotICAgICAgICBpZiAoIWN1cnJlbnQtPmlz
SFRNTEVsZW1lbnQoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBIVE1MRWxlbWVu
dCogZWxlbWVudCA9IHRvSFRNTEVsZW1lbnQoY3VycmVudCk7Ci0KLSAgICAgICAgaWYgKGVsZW1l
bnQgPT0gYmFzZUVsZW1lbnQpIHsKLSAgICAgICAgICAgIG1faXRlbVJlZkVsZW1lbnRzLmFwcGVu
ZChlbGVtZW50KTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBpZCA9IGVsZW1lbnQtPmdldElkQXR0cmlidXRlKCk7Ci0gICAg
ICAgIGlmICghcHJvY2Vzc2VkSXRlbVJlZi0+dG9rZW5zKCkuY29udGFpbnMoaWQpICYmIGl0ZW1S
ZWYtPnRva2VucygpLmNvbnRhaW5zKGlkKSkgewotICAgICAgICAgICAgcHJvY2Vzc2VkSXRlbVJl
Zi0+c2V0VmFsdWUoaWQpOwotICAgICAgICAgICAgaWYgKCFlbGVtZW50LT5pc0Rlc2NlbmRhbnRP
ZihiYXNlRWxlbWVudCkpCi0gICAgICAgICAgICAgICAgbV9pdGVtUmVmRWxlbWVudHMuYXBwZW5k
KGVsZW1lbnQpOwotICAgICAgICB9Ci0gICAgfQorICAgIHNldEl0ZW1SZWZFbGVtZW50c0NhY2hl
VmFsaWQoKTsKKyAgICB0b0hUTUxFbGVtZW50KGJhc2UoKSktPmdldEl0ZW1SZWZFbGVtZW50cyht
X2l0ZW1SZWZFbGVtZW50cyk7CiB9CiAKIHN0YXRpYyBOb2RlKiBuZXh0Tm9kZVdpdGhQcm9wZXJ0
eShOb2RlKiBiYXNlLCBOb2RlKiBub2RlKQpAQCAtMTQyLDcgKzEwOSw3IEBAIEhUTUxFbGVtZW50
KiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246OnYKIAogdm9pZCBIVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb246OnVwZGF0ZU5hbWVDYWNoZSgpIGNvbnN0CiB7Ci0gICAgaWYgKG1faGFzUHJvcGVydHlO
YW1lQ2FjaGUpCisgICAgaWYgKGhhc05hbWVDYWNoZSgpKQogICAgICAgICByZXR1cm47CiAKICAg
ICB1cGRhdGVSZWZFbGVtZW50cygpOwpAQCAtMTU2LDcgKzEyMyw3IEBAIHZvaWQgSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uOjp1cGRhdGVOYW0KICAgICAgICAgfQogICAgIH0KIAotICAgIG1faGFz
UHJvcGVydHlOYW1lQ2FjaGUgPSB0cnVlOworICAgIHNldEhhc05hbWVDYWNoZSgpOwogfQogCiBQ
YXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6bmFtZXMo
KSBjb25zdApAQCAtMTY3LDI4ICsxMzQsMTYgQEAgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBI
VE1MUHJvcGVydGllcwogICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZXM7CiB9CiAKLVBhc3NSZWZQ
dHI8Tm9kZUxpc3Q+IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6bmFtZWRJdGVtKGNvbnN0IFN0
cmluZyYgbmFtZSkgY29uc3QKK1Bhc3NSZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4gSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uOjpuYW1lZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAogewot
ICAgIHVwZGF0ZU5hbWVDYWNoZSgpOwotCi0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IG5hbWVk
SXRlbXM7Ci0gICAgVmVjdG9yPEVsZW1lbnQqPiogcHJvcGVydHlSZXN1bHRzID0gbV9wcm9wZXJ0
eUNhY2hlLmdldChBdG9taWNTdHJpbmcobmFtZSkuaW1wbCgpKTsKLSAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBwcm9wZXJ0eVJlc3VsdHMgJiYgaSA8IHByb3BlcnR5UmVzdWx0cy0+c2l6ZSgpOyAr
K2kpCi0gICAgICAgIG5hbWVkSXRlbXMuYXBwZW5kKHByb3BlcnR5UmVzdWx0cy0+YXQoaSkpOwot
Ci0gICAgLy8gRklYTUU6IEhUTUw1IHNwZWNpZmllcyB0aGF0IHRoaXMgc2hvdWxkIHJldHVybiBQ
cm9wZXJ0eU5vZGVMaXN0LgotICAgIHJldHVybiBuYW1lZEl0ZW1zLmlzRW1wdHkoKSA/IDAgOiBT
dGF0aWNOb2RlTGlzdDo6YWRvcHQobmFtZWRJdGVtcyk7CisgICAgcmV0dXJuIGJhc2UoKS0+cHJv
cGVydHlOb2RlTGlzdChuYW1lKTsKIH0KIAogYm9vbCBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246
Omhhc05hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0CiB7CiAgICAgdXBk
YXRlTmFtZUNhY2hlKCk7Ci0KLSAgICBpZiAoVmVjdG9yPEVsZW1lbnQqPiogcHJvcGVydHlDYWNo
ZSA9IG1fcHJvcGVydHlDYWNoZS5nZXQobmFtZS5pbXBsKCkpKSB7Ci0gICAgICAgIGlmICghcHJv
cGVydHlDYWNoZS0+aXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQot
CisgICAgaWYgKG1fcHJvcGVydHlOYW1lcykKKyAgICAgICAgcmV0dXJuIG1fcHJvcGVydHlOYW1l
cy0+Y29udGFpbnMobmFtZSk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJKHJldmlzaW9uIDEy
MzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgRE9NU3RyaW5nTGlzdDsKK2NsYXNzIFByb3BlcnR5Tm9kZUxpc3Q7CiAKIGNsYXNzIEhU
TUxQcm9wZXJ0aWVzQ29sbGVjdGlvbiA6IHB1YmxpYyBIVE1MQ29sbGVjdGlvbiB7CiBwdWJsaWM6
CkBAIC00OCwxNiArNDksMTMgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlUmVmRWxlbWVudHMo
KSBjb25zdDsKIAogICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gbmFtZXMoKSBjb25zdDsK
LSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IG5hbWVkSXRlbShjb25zdCBTdHJpbmcm
KSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8UHJvcGVydHlOb2RlTGlz
dD4gbmFtZWRJdGVtKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Ym9vbCBoYXNOYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAK
ICAgICB2b2lkIGludmFsaWRhdGVDYWNoZSgpIGNvbnN0CiAgICAgewogICAgICAgICBtX2l0ZW1S
ZWZFbGVtZW50cy5jbGVhcigpOwogICAgICAgICBtX3Byb3BlcnR5TmFtZXMuY2xlYXIoKTsKLSAg
ICAgICAgbV9wcm9wZXJ0eUNhY2hlLmNsZWFyKCk7Ci0gICAgICAgIG1faGFzUHJvcGVydHlOYW1l
Q2FjaGUgPSBmYWxzZTsKLSAgICAgICAgbV9oYXNJdGVtUmVmRWxlbWVudHMgPSBmYWxzZTsKICAg
ICB9CiAKIHByaXZhdGU6CkBAIC03NywxOSArNzUsMTAgQEAgcHJpdmF0ZToKIAogICAgICAgICBp
ZiAoIW1fcHJvcGVydHlOYW1lcy0+Y29udGFpbnMocHJvcGVydHlOYW1lKSkKICAgICAgICAgICAg
IG1fcHJvcGVydHlOYW1lcy0+YXBwZW5kKHByb3BlcnR5TmFtZSk7Ci0KLSAgICAgICAgVmVjdG9y
PEVsZW1lbnQqPiogcHJvcGVydHlSZXN1bHRzID0gbV9wcm9wZXJ0eUNhY2hlLmdldChwcm9wZXJ0
eU5hbWUuaW1wbCgpKTsKLSAgICAgICAgaWYgKCFwcm9wZXJ0eVJlc3VsdHMgfHwgIXByb3BlcnR5
UmVzdWx0cy0+Y29udGFpbnMoZWxlbWVudCkpCi0gICAgICAgICAgICBhcHBlbmQobV9wcm9wZXJ0
eUNhY2hlLCBwcm9wZXJ0eU5hbWUsIGVsZW1lbnQpOwogICAgIH0KIAogICAgIG11dGFibGUgVmVj
dG9yPEhUTUxFbGVtZW50Kj4gbV9pdGVtUmVmRWxlbWVudHM7CiAgICAgbXV0YWJsZSBSZWZQdHI8
RE9NU3RyaW5nTGlzdD4gbV9wcm9wZXJ0eU5hbWVzOwotICAgIG11dGFibGUgTm9kZUNhY2hlTWFw
IG1fcHJvcGVydHlDYWNoZTsKLQotICAgIC8vIEZJWE1FOiBNb3ZlIHRoZXNlIHZhcmlhYmxlcyB0
byBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2UgZm9yIGJldHRlciBiaXQgcGFja2luZy4KLSAgICBt
dXRhYmxlIGJvb2wgbV9oYXNQcm9wZXJ0eU5hbWVDYWNoZSA6IDE7Ci0gICAgbXV0YWJsZSBib29s
IG1faGFzSXRlbVJlZkVsZW1lbnRzIDogMTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bi5pZGwJKHJldmlzaW9uIDEyMzMzMikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDAsOCArNDAsNiBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgICAgIE5vZGUgaXRlbShpbiB1bnNpZ25lZCBsb25nIGluZGV4KTsKIAog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCBuYW1lczsKLQotICAgICAg
ICAvLyBGSVhNRTogSFRNTDUgc3BlY2lmaWVzIHRoYXQgdGhpcyBzaG91bGQgcmV0dXJuIFByb3Bl
cnR5Tm9kZUxpc3QuCi0gICAgICAgIE5vZGVMaXN0IG5hbWVkSXRlbShpbiBET01TdHJpbmcgbmFt
ZSk7CisgICAgICAgIFByb3BlcnR5Tm9kZUxpc3QgbmFtZWRJdGVtKGluIERPTVN0cmluZyBuYW1l
KTsKICAgICB9OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9NaWNyb0RhdGFJdGVtVmFs
dWUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRlbVZh
bHVlLmlkbAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvTWljcm9EYXRhSXRl
bVZhbHVlLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoYykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uLAorICogYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgorICoKKyAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5v
dGljZSwKKyAqIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKgorICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3IKKyAqIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogTmVpdGhlciB0aGUgbmFtZSBvZiBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMgbWF5CisgKiBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0CisgKiBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HCisgKiBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBo
dG1sIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1NSUNST0RBVEEsCisg
ICAgICAgIEN1c3RvbVRvSlNPYmplY3QsCisgICAgICAgIE9taXRDb25zdHJ1Y3RvcgorICAgIF0g
TWljcm9EYXRhSXRlbVZhbHVlIHsKKyAgICB9OworfQorCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuaWRsCShyZXZpc2lvbiAxMjMzMzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM2OSw2ICszNjksNyBAQCBtb2R1bGUgd2luZG93
IHsKICAgICAgICAgYXR0cmlidXRlIERvY3VtZW50Q29uc3RydWN0b3IgRG9jdW1lbnQ7CiAgICAg
ICAgIGF0dHJpYnV0ZSBOb2RlQ29uc3RydWN0b3IgTm9kZTsKICAgICAgICAgYXR0cmlidXRlIE5v
ZGVMaXN0Q29uc3RydWN0b3IgTm9kZUxpc3Q7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29uZGl0aW9u
YWw9TUlDUk9EQVRBXSBQcm9wZXJ0eU5vZGVMaXN0Q29uc3RydWN0b3IgUHJvcGVydHlOb2RlTGlz
dDsKICAgICAgICAgYXR0cmlidXRlIE5hbWVkTm9kZU1hcENvbnN0cnVjdG9yIE5hbWVkTm9kZU1h
cDsKICAgICAgICAgYXR0cmlidXRlIENoYXJhY3RlckRhdGFDb25zdHJ1Y3RvciBDaGFyYWN0ZXJE
YXRhOwogICAgICAgICBhdHRyaWJ1dGUgQXR0ckNvbnN0cnVjdG9yIEF0dHI7CkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxMjMzMzIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMiBAQAorMjAxMi0wNy0yMyAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5j
b20+CisKKyAgICAgICAgTWljcm9kYXRhOiBJbXBsZW1lbnQgUHJvcGVydHlOb2RlTGlzdCBpbnRl
cmZhY2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MDI2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZGVkIHRlc3QgY2FzZXMgZm9yIFByb3BlcnR5Tm9kZUxpc3QgaW50ZXJmYWNlIGFuZCBQcm9wZXJ0
eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZC4KKyAgICAgICAgU3BlYzogaHR0cDovL3d3dy53
aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9tdWx0aXBhZ2UvY29tbW9uLWRv
bS1pbnRlcmZhY2VzLmh0bWwjcHJvcGVydHlub2RlbGlzdAorCisgICAgICAgICogZmFzdC9kb20v
TWljcm9EYXRhL25hbWVkaXRlbS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJldHVybnMt
cHJvcGVydHlub2RlbGlzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0Rh
dGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20t
aXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy1hcnJheS12YWx1
ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10
ZXN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vTWljcm9EYXRhL3By
b3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVy
dHlub2RlbGlzdC10ZXN0LWFkZC1yZW1vdmUtZWxlbWVudC5odG1sOiBBZGRlZC4KKwogMjAxMi0w
Ny0yMyAgS3Jpc3TDs2YgS29zenR5w7MgIDxra3Jpc3RvZkBpbmYudS1zemVnZWQuaHU+CiAKICAg
ICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL01pY3JvRGF0YS9uYW1lZGl0ZW0tcmV0dXJucy1wcm9wZXJ0eW5vZGVsaXN0LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRp
dGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJldHVybnMtcHJvcGVy
dHlub2RlbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAKK1By
b3BlcnRpZXNDb2xsZWN0aW9uLm5hbWVkSXRlbShuYW1lKSBtdXN0IHJldHVybiBQcm9wZXJ0eU5v
ZGVMaXN0LgorCitQQVNTIGVsZW1lbnQucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpIGluc3Rh
bmNlb2YgUHJvcGVydHlOb2RlTGlzdCBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllc1sn
Zm9vJ10gaW5zdGFuY2VvZiBQcm9wZXJ0eU5vZGVMaXN0IGlzIHRydWUKKworUHJvcGVydHlOb2Rl
TGlzdCBpbnRlcmZhY2UgaW5oZXJpdGVkIGZyb20gdGhlIE5vZGVMaXN0IGludGVyZmFjZS4KK1BB
U1MgZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgnZm9vJykgaW5zdGFuY2VvZiBOb2RlTGlz
dCBpcyB0cnVlCitQQVNTIGVsZW1lbnQucHJvcGVydGllc1snZm9vJ10gaW5zdGFuY2VvZiBOb2Rl
TGlzdCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRlbS1y
ZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9NaWNyb0RhdGEvbmFtZWRpdGVtLXJldHVybnMtcHJvcGVydHlub2RlbGlzdC5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL25hbWVkaXRl
bS1yZXR1cm5zLXByb3BlcnR5bm9kZWxpc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwy
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL21pY3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5Qcm9wZXJ0aWVzQ29sbGVjdGlvbi5uYW1lZEl0ZW0obmFtZSkgbXVzdCByZXR1cm4gUHJvcGVy
dHlOb2RlTGlzdC48L3A+Cis8ZGl2IGl0ZW1zY29wZSBpZD0ibWljcm9kYXRhaXRlbSI+Cis8ZGl2
IGl0ZW1wcm9wPSJmb28iPjwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQ+Cit2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtaWNyb2Rh
dGFpdGVtIik7CisKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0aWVzLm5hbWVkSXRlbSgn
Zm9vJykgaW5zdGFuY2VvZiBQcm9wZXJ0eU5vZGVMaXN0Iik7CitzaG91bGRCZVRydWUoImVsZW1l
bnQucHJvcGVydGllc1snZm9vJ10gaW5zdGFuY2VvZiBQcm9wZXJ0eU5vZGVMaXN0Iik7CisKK2Rl
YnVnKCI8YnI+UHJvcGVydHlOb2RlTGlzdCBpbnRlcmZhY2UgaW5oZXJpdGVkIGZyb20gdGhlIE5v
ZGVMaXN0IGludGVyZmFjZS4iKQorc2hvdWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXMubmFt
ZWRJdGVtKCdmb28nKSBpbnN0YW5jZW9mIE5vZGVMaXN0Iik7CitzaG91bGRCZVRydWUoImVsZW1l
bnQucHJvcGVydGllc1snZm9vJ10gaW5zdGFuY2VvZiBOb2RlTGlzdCIpOworCis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0
YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy1hcnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1p
dGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJy
YXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZhbHVlLW9mLWVhY2gtZWxlbWVudC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJv
cGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtYXJyYXktdmFsdWVzLW9idGFpbmVkLWZyb20taXRlbXZh
bHVlLW9mLWVhY2gtZWxlbWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MzggQEAKK1RoaXMgdGVzdCBlbnN1cmUgdGhhdCBQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygp
IGFycmF5IHJldHVybnMgYW4gYXJyYXkgd2hvc2UgdmFsdXNlIGFyZSBvYnRhaW5lZCBmcm9tIHRo
ZSBpdGVtVmFsdWUgRE9NIHByb3BlcnR5IG9mIGVhY2ggb2YgdGhlIGVsZW1lbnRzIHJlcHJlc2Vu
dGVkIGJ5IHRoZSBvYmplY3QsIGluIHRyZWUgb3JkZXIuCisKK3Byb3BlcnR5IGluZGV4IDAsIHRh
ZyBESVYKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFs
dWUKK3Byb3BlcnR5IGluZGV4IDEsIHRhZyBTUEFOCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHBy
b3BlcnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAyLCB0YWcgTUVUQQor
UEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJv
cGVydHkgaW5kZXggMywgdGFnIEFVRElPCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5
Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCA0LCB0YWcgRU1CRUQKK1BBU1Mg
dmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5
IGluZGV4IDUsIHRhZyBJRlJBTUUKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2Rl
TGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDYsIHRhZyBJTUcKK1BBU1MgdmFsdWVz
QXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4
IDcsIHRhZyBTT1VSQ0UKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtp
XS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDgsIHRhZyBWSURFTworUEFTUyB2YWx1ZXNBcnJh
eVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQorcHJvcGVydHkgaW5kZXggOSwg
dGFnIFRSQUNLCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3BlcnR5Tm9kZUxpc3RbaV0uaXRl
bVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxMCwgdGFnIEEKK1BBU1MgdmFsdWVzQXJyYXlbaV0gaXMg
cHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5IGluZGV4IDExLCB0YWcgQVJF
QQorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVMaXN0W2ldLml0ZW1WYWx1ZQor
cHJvcGVydHkgaW5kZXggMTIsIHRhZyBMSU5LCitQQVNTIHZhbHVlc0FycmF5W2ldIGlzIHByb3Bl
cnR5Tm9kZUxpc3RbaV0uaXRlbVZhbHVlCitwcm9wZXJ0eSBpbmRleCAxMywgdGFnIFAKK1BBU1Mg
dmFsdWVzQXJyYXlbaV0gaXMgcHJvcGVydHlOb2RlTGlzdFtpXS5pdGVtVmFsdWUKK3Byb3BlcnR5
IGluZGV4IDE0LCB0YWcgU1BBTgorUEFTUyB2YWx1ZXNBcnJheVtpXSBpcyBwcm9wZXJ0eU5vZGVM
aXN0W2ldLml0ZW1WYWx1ZQorUEFTUyB2YWx1ZXNBcnJheS5sZW5ndGggaXMgMTUKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorICAgICAgCisKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVl
cy1hcnJheS12YWx1ZXMtb2J0YWluZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5
bm9kZWxpc3QtZ2V0dmFsdWVzLWFycmF5LXZhbHVlcy1vYnRhaW5lZC1mcm9tLWl0ZW12YWx1ZS1v
Zi1lYWNoLWVsZW1lbnQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy1hcnJheS12YWx1ZXMtb2J0YWlu
ZWQtZnJvbS1pdGVtdmFsdWUtb2YtZWFjaC1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+VGhpcyB0ZXN0IGVuc3VyZSB0aGF0IFByb3BlcnR5Tm9kZUxpc3QuZ2V0VmFsdWVz
KCkgYXJyYXkgcmV0dXJucyBhbiBhcnJheSB3aG9zZSB2YWx1c2UgYXJlIG9idGFpbmVkIGZyb20g
dGhlIGl0ZW1WYWx1ZSBET00gcHJvcGVydHkgb2YgZWFjaCBvZiB0aGUgZWxlbWVudHMgcmVwcmVz
ZW50ZWQgYnkgdGhlIG9iamVjdCwgaW4gdHJlZSBvcmRlci48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxkaXY+Cis8ZGl2IGlkPSJpZDEiPgorPGRpdiBpdGVtcHJvcD0iZm9vIj4KKzxz
cGFuIGl0ZW1wcm9wPSJmb28iIGl0ZW1zY29wZT48L3NwYW4+Cis8L2Rpdj4KKzxkaXYgaXRlbXNj
b3BlIGl0ZW1yZWY9ImlkMSIgaWQ9Iml0ZW0iPgorPG1ldGEgaXRlbXByb3A9ImZvbyIgY29udGVu
dD0idGVzdCIgLz4KKzxhdWRpbyBpdGVtcHJvcD0iZm9vIiBzcmM9ImF1ZGlvLm1wMyI+PC9hdWRp
bz4KKzxlbWJlZCBpdGVtcHJvcD0iZm9vIiBzcmM9InRlc3Quc3dmIiAvPgorPGlmcmFtZSBpdGVt
cHJvcD0iZm9vIiBzcmM9InRlc3QuaHRtbCI+PC9pZnJhbWU+Cis8aW1nIGl0ZW1wcm9wPSJmb28i
IHNyYz0idGVzdC5qcGciIC8+Cis8YXVkaW8gY29udHJvbHM9ImNvbnRyb2xzIj4KKzxzb3VyY2Ug
aXRlbXByb3A9ImZvbyIgc3JjPSJzb25nLm1wMyIgdHlwZT0iYXVkaW8vbXAzIiAvPgorPC9hdWRp
bz4KKzx2aWRlbyBpdGVtcHJvcD0iZm9vIiBzcmM9InZpZGVvLm1wNCI+PC92aWRlbz4KKzx2aWRl
byBzcmM9InZpZGVvLm1wNCI+Cis8dHJhY2sgaXRlbXByb3A9ImZvbyIgc3JjPSJzdWJ0aXRsZXNf
ZW4udnR0Ij4KKzwvdmlkZW8+Cis8YSBpdGVtcHJvcD0iZm9vIiBzcmM9ImxpbmsuaHRtbCI+PC9h
PgorPG1hcD4KKzxhcmVhIGl0ZW1wcm9wPSJmb28iIGhyZWY9InRlc3QuaHRtbCIgLz4KKzwvbWFw
PgorPGxpbmsgaXRlbXByb3A9ImZvbyIgaHJlZj0idGVzdC5jc3MiIC8+Cis8cCBpdGVtcHJvcD0i
Zm9vIj4KKzxzcGFuIGl0ZW1wcm9wPSJmb28iIGl0ZW1zY29wZT4KKzxhIGl0ZW1wcm9wPSJmb28i
IHNyYz0idGVzdF9hbmNob3IuaHRtbCI+PC9hPgorPC9zcGFuPgorPC9wPgorPC9kaXY+Cis8L2Rp
dj4KKzxzY3JpcHQ+Cit2YXIgaXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpdGVtIik7
Cit2YXIgcHJvcGVydHlOb2RlTGlzdCA9IGl0ZW0ucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2Zvbycp
OwordmFyIHZhbHVlc0FycmF5ID0gcHJvcGVydHlOb2RlTGlzdC5nZXRWYWx1ZXMoKTsKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgcHJvcGVydHlOb2RlTGlzdC5sZW5ndGg7IGkrKykgeworICAgIGRlYnVn
KCdwcm9wZXJ0eSBpbmRleCAnICsgaSArICcsIHRhZyAnICsgcHJvcGVydHlOb2RlTGlzdFtpXS50
YWdOYW1lKTsKKyAgICBzaG91bGRCZSgidmFsdWVzQXJyYXlbaV0iLCAicHJvcGVydHlOb2RlTGlz
dFtpXS5pdGVtVmFsdWUiKTsKK30KK3Nob3VsZEJlKCJ2YWx1ZXNBcnJheS5sZW5ndGgiLCAnMTUn
KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtZ2V0dmFsdWVzLXRlc3QtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0
eW5vZGVsaXN0LWdldHZhbHVlcy10ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LWdldHZhbHVlcy10
ZXN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACitQcm9wZXJ0eU5v
ZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCB0ZXN0LgorCitQcm9wZXJ0eU5vZGVMaXN0LmdldFZh
bHVlcygpIG1ldGhvZCBtdXN0IHJldHVybiBhbiBhcnJheS4KK1BBU1MgZWxlbWVudC5wcm9wZXJ0
aWVzLm5hbWVkSXRlbSgnZm9vJykuZ2V0VmFsdWVzKCkgaW5zdGFuY2VvZiBBcnJheSBpcyB0cnVl
CitQQVNTIGVsZW1lbnQucHJvcGVydGllc1snZm9vJ10uZ2V0VmFsdWVzKCkgaW5zdGFuY2VvZiBB
cnJheSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9k
ZWxpc3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC1nZXR2YWx1ZXMtdGVzdC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxp
c3QtZ2V0dmFsdWVzLXRlc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL21p
Y3JvZGF0YS1jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5Qcm9wZXJ0
eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhvZCB0ZXN0LjwvcD4KKzxkaXYgaXRlbXNjb3BlIGlk
PSJpdGVtIj4KKzxkaXYgaXRlbXByb3A9ImZvbyI+PC9kaXY+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3ZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2l0ZW0nKTsKK2RlYnVnKCJQcm9wZXJ0eU5vZGVMaXN0LmdldFZhbHVlcygpIG1ldGhv
ZCBtdXN0IHJldHVybiBhbiBhcnJheS4iKTsKK3Nob3VsZEJlVHJ1ZSgiZWxlbWVudC5wcm9wZXJ0
aWVzLm5hbWVkSXRlbSgnZm9vJykuZ2V0VmFsdWVzKCkgaW5zdGFuY2VvZiBBcnJheSIpOworc2hv
dWxkQmVUcnVlKCJlbGVtZW50LnByb3BlcnRpZXNbJ2ZvbyddLmdldFZhbHVlcygpIGluc3RhbmNl
b2YgQXJyYXkiKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9NaWNyb0RhdGEvcHJvcGVydHlub2RlbGlzdC10ZXN0LWFkZC1yZW1v
dmUtZWxlbWVudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vTWljcm9EYXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9EYXRh
L3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBACitNaWNyb2RhdGEgcHJvcGVydGllcyBjb2xsZWN0
aW9uIG11c3QgdXBkYXRlIG9uIGFkZGluZyBvciByZW1vdmluZyBwcm9wZXJ0eS4KKworUEFTUyBw
cm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAnMScgaXMgdHJ1ZQorUEFTUyBwcm9wZXJ0eU5vZGVM
aXN0WzBdID09IGl0ZW0uY2hpbGRyZW5bMF0gaXMgdHJ1ZQorQWRkIGEgcHJvcGVydHkgdG8gdGhl
IGl0ZW0uCitDcmVhdGVkIGVsZW1lbnQgb2YgdHlwZTogZGl2CitTZXQgYXR0cmlidXRlOiBpdGVt
cHJvcCwgdmFsdWU6IGZvbworUEFTUyBwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAyIGlzIHRy
dWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVuWzBdIGlzIHRydWUK
K1BBU1MgcHJvcGVydHlOb2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVuWzFdIGlzIHRydWUKK1Jl
bW92ZSBpdGVtcHJvcCBhdHRyaWJ1dGUgb2YgdGhlIGZpcnN0IGNoaWxkLgorUEFTUyBwcm9wZXJ0
eU5vZGVMaXN0Lmxlbmd0aCA9PSAxIGlzIHRydWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFswXSA9
PSBpdGVtLmNoaWxkcmVuWzFdIGlzIHRydWUKK0FkZCBpdGVtcHJvcCBhdHRyaWJ1dGUgdG8gdGhl
IGZpcnN0IGNoaWxkLgorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAyIGlzIHRydWUK
K1BBU1MgcHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVuWzBdIGlzIHRydWUKK1BB
U1MgcHJvcGVydHlOb2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVuWzFdIGlzIHRydWUKK0FkZCBp
dGVtcmVmIGF0dHJpYnV0ZS4KK1BBU1MgcHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMyBpcyB0
cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gdGVzdEVsZW1lbnQgaXMgdHJ1ZQorUEFT
UyBwcm9wZXJ0eU5vZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRyZW5bMF0gaXMgdHJ1ZQorUEFTUyBw
cm9wZXJ0eU5vZGVMaXN0WzJdID09IGl0ZW0uY2hpbGRyZW5bMV0gaXMgdHJ1ZQorUmVtb3ZlIGl0
ZW1yZWYgYXR0cmlidXRlLgorUEFTUyBwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAyIGlzIHRy
dWUKK1BBU1MgcHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVuWzBdIGlzIHRydWUK
K1BBU1MgcHJvcGVydHlOb2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVuWzFdIGlzIHRydWUKK0Fk
ZCBpdGVtcmVmIGF0dHJpYnV0ZS4KK1BBU1MgcHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMyBp
cyB0cnVlCitQQVNTIHByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gdGVzdEVsZW1lbnQgaXMgdHJ1ZQor
UEFTUyBwcm9wZXJ0eU5vZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRyZW5bMF0gaXMgdHJ1ZQorUEFT
UyBwcm9wZXJ0eU5vZGVMaXN0WzJdID09IGl0ZW0uY2hpbGRyZW5bMV0gaXMgdHJ1ZQorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0LXRlc3QtYWRkLXJlbW92
ZS1lbGVtZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vTWljcm9E
YXRhL3Byb3BlcnR5bm9kZWxpc3QtdGVzdC1hZGQtcmVtb3ZlLWVsZW1lbnQuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL01pY3JvRGF0YS9wcm9wZXJ0eW5vZGVsaXN0
LXRlc3QtYWRkLXJlbW92ZS1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjMg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9taWNyb2RhdGEtY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+
TWljcm9kYXRhIHByb3BlcnRpZXMgY29sbGVjdGlvbiBtdXN0IHVwZGF0ZSBvbiBhZGRpbmcgb3Ig
cmVtb3ZpbmcgcHJvcGVydHkuPC9wPgorPGRpdiBpdGVtcHJvcD0iZm9vIiBpZD0idGVzdCI+Cis8
L2Rpdj4KKzxkaXYgaXRlbXNjb3BlIGlkPSJtaWNyb2RhdGEtaXRlbSI+Cis8cCBpdGVtcHJvcD0i
Zm9vIj48L3A+Cis8L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK3Zh
ciBpdGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21pY3JvZGF0YS1pdGVtJyk7Cit2YXIg
cHJvcGVydHlOb2RlTGlzdCA9IGl0ZW0ucHJvcGVydGllcy5uYW1lZEl0ZW0oJ2ZvbycpOwordmFy
IHRlc3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKKworc2hvdWxk
QmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAnMSciKTsKK3Nob3VsZEJlVHJ1ZSgi
cHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVuWzBdIik7CisKK2RlYnVnKCdBZGQg
YSBwcm9wZXJ0eSB0byB0aGUgaXRlbS4nKTsKK2l0ZW0uYXBwZW5kQ2hpbGQoY3JlYXRlRWxlbWVu
dCgnZGl2Jywge2l0ZW1wcm9wOiAnZm9vJ30pKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2Rl
TGlzdC5sZW5ndGggPT0gMiIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzBdID09
IGl0ZW0uY2hpbGRyZW5bMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFsxXSA9
PSBpdGVtLmNoaWxkcmVuWzFdIik7CisKK2RlYnVnKCdSZW1vdmUgaXRlbXByb3AgYXR0cmlidXRl
IG9mIHRoZSBmaXJzdCBjaGlsZC4nKTsKK2l0ZW0uY2hpbGRyZW5bMF0ucmVtb3ZlQXR0cmlidXRl
KCdpdGVtcHJvcCcpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAx
Iik7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gaXRlbS5jaGlsZHJlblsx
XSIpOworCitkZWJ1ZygnQWRkIGl0ZW1wcm9wIGF0dHJpYnV0ZSB0byB0aGUgZmlyc3QgY2hpbGQu
Jyk7CitpdGVtLmNoaWxkcmVuWzBdLnNldEF0dHJpYnV0ZSgnaXRlbXByb3AnLCAnZm9vJyk7Citz
aG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3QubGVuZ3RoID09IDIiKTsKK3Nob3VsZEJlVHJ1
ZSgicHJvcGVydHlOb2RlTGlzdFswXSA9PSBpdGVtLmNoaWxkcmVuWzBdIik7CitzaG91bGRCZVRy
dWUoInByb3BlcnR5Tm9kZUxpc3RbMV0gPT0gaXRlbS5jaGlsZHJlblsxXSIpOworCitkZWJ1Zygn
QWRkIGl0ZW1yZWYgYXR0cmlidXRlLicpOworaXRlbS5zZXRBdHRyaWJ1dGUoJ2l0ZW1yZWYnLCAn
dGVzdCcpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0Lmxlbmd0aCA9PSAzIik7Citz
aG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMF0gPT0gdGVzdEVsZW1lbnQiKTsKK3Nob3Vs
ZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVuWzBdIik7CitzaG91
bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3RbMl0gPT0gaXRlbS5jaGlsZHJlblsxXSIpOworCitk
ZWJ1ZygnUmVtb3ZlIGl0ZW1yZWYgYXR0cmlidXRlLicpOworaXRlbS5yZW1vdmVBdHRyaWJ1dGUo
J2l0ZW1yZWYnKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdC5sZW5ndGggPT0gMiIp
Oworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzBdID09IGl0ZW0uY2hpbGRyZW5bMF0i
KTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFsxXSA9PSBpdGVtLmNoaWxkcmVuWzFd
Iik7CisKK2RlYnVnKCdBZGQgaXRlbXJlZiBhdHRyaWJ1dGUuJyk7CitpdGVtLnNldEF0dHJpYnV0
ZSgnaXRlbXJlZicsICd0ZXN0Jyk7CitzaG91bGRCZVRydWUoInByb3BlcnR5Tm9kZUxpc3QubGVu
Z3RoID09IDMiKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFswXSA9PSB0ZXN0RWxl
bWVudCIpOworc2hvdWxkQmVUcnVlKCJwcm9wZXJ0eU5vZGVMaXN0WzFdID09IGl0ZW0uY2hpbGRy
ZW5bMF0iKTsKK3Nob3VsZEJlVHJ1ZSgicHJvcGVydHlOb2RlTGlzdFsyXSA9PSBpdGVtLmNoaWxk
cmVuWzFdIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>
<flag name="review"
          id="162825"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>