<?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>57813</bug_id>
          
          <creation_ts>2011-04-04 21:37:54 -0700</creation_ts>
          <short_desc>Support a list of nodes at the top level of a shadow DOM tree</short_desc>
          <delta_ts>2011-04-13 04:40:38 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>52962</blocked>
    
    <blocked>58432</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Dominic Cooney">dominicc</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>379314</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-04 21:37:54 -0700</bug_when>
    <thetext>Element::setShadowRoot takes an Node. However Element is already a container, so it should permit multiple nodes at the top level of a shadow. This is more flexible for internal shadow (validation message could use this) and required to implement an XBL-style component model.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379316</commentid>
    <comment_count>1</comment_count>
      <attachid>88182</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-04 21:42:32 -0700</bug_when>
    <thetext>Created attachment 88182
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379317</commentid>
    <comment_count>2</comment_count>
      <attachid>88182</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-04 21:43:14 -0700</bug_when>
    <thetext>Comment on attachment 88182
WIP

(Yes, no ChangeLog. Work in progress.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379319</commentid>
    <comment_count>3</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-04 21:45:39 -0700</bug_when>
    <thetext>This patch breaks shadow pseudo-element selectors; still looking into that. Based on r82748.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381129</commentid>
    <comment_count>4</comment_count>
      <attachid>88572</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-06 22:12:22 -0700</bug_when>
    <thetext>Created attachment 88572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381140</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-06 22:52:40 -0700</bug_when>
    <thetext>Attachment 88572 did not build on win:
Build output: http://queues.webkit.org/results/8373006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381398</commentid>
    <comment_count>6</comment_count>
      <attachid>88572</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-07 09:21:23 -0700</bug_when>
    <thetext>Comment on attachment 88572
Patch

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

I wonder if to minimize impact, the first patch should retain shadowRoot as Node* and internalize creation and managing of ShadowRoot inside setShadowRoot?

We need to look at SVGShadowTreeRootElement and consider converting it to ShadowRoot. Not right now, but as some next step.

&gt; Source/WebCore/dom/Element.cpp:1053
&gt; +    bool hasParentStyle = parentNodeForRendering() ? parentNodeForRendering()-&gt;renderStyle() : false;

Because it&apos;s here, I wonder if -ForRendering is the wrong suffix. It&apos;s more like ForRenderingAndStyle.

&gt; Source/WebCore/dom/Element.cpp:1145
&gt; +Node* Element::shadowRoot() const

Return ShadowRoot*?

&gt; Source/WebCore/dom/Element.cpp:1150
&gt;  void Element::setShadowRoot(PassRefPtr&lt;Node&gt; node)

Can this just take ShadowRoot?

&gt; Source/WebCore/dom/Node.cpp:1425
&gt; +        || (!parentRenderer-&gt;canHaveChildren()
&gt; +            &amp;&amp; !(isShadowRoot() || parentNode()-&gt;isShadowBoundary()))

Keep this one one line.

&gt; Source/WebCore/dom/Node.h:206
&gt; +    // FIXME: remove this when all shadow roots are ShadowRoots

Period at the end of a sentence.

&gt; Source/WebCore/html/HTMLKeygenElement.cpp:81
&gt; +    shadow-&gt;parserAddChild(select);

We are not the parser. We shouldn&apos;t be calling this. Use appendChild.

&gt; Source/WebCore/html/HTMLMeterElement.cpp:235
&gt; +    shadow-&gt;parserAddChild(bar);

Ditto.

&gt; Source/WebCore/html/HTMLProgressElement.cpp:141
&gt; +    bar-&gt;parserAddChild(m_value);

Ditto.

&gt; Source/WebCore/html/HTMLProgressElement.cpp:143
&gt; +    shadow-&gt;parserAddChild(bar);

Ditto.

&gt; Source/WebCore/html/RangeInputType.cpp:201
&gt; +    shadow-&gt;parserAddChild(SliderThumbElement::create(element()-&gt;document()));

Use appendChild.

&gt; Source/WebCore/rendering/RenderSlider.cpp:181
&gt; +    return toSliderThumbElement(static_cast&lt;Element*&gt;(node())-&gt;shadowRoot()-&gt;firstChild());

Probably need to check for shadowRoot existence here first.

&gt; Source/WebKit/mac/DOM/WebDOMOperations.mm:48
&gt; +#import &lt;WebCore/ShadowFragment.h&gt;

ShadowRoot?

&gt; Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:43
&gt; +#include &lt;WebCore/ShadowFragment.h&gt;

ShadowRoot?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381477</commentid>
    <comment_count>7</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-07 10:43:45 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 88572 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=88572&amp;action=review
&gt; 
&gt; I wonder if to minimize impact, the first patch should retain shadowRoot as Node* and internalize creation and managing of ShadowRoot inside setShadowRoot?

I could do this, but I like it this way because now internal shadows can start to use multiple children in shadows.

Also, if we make setShadowRoot() create the ShadowRoot, that breaks symmetry with shadowRoot(). We could make shadowRoot() do [ShadowRoot instance]-&gt;firstChild(), but it feels like back to square one.

&gt; We need to look at SVGShadowTreeRootElement and consider converting it to ShadowRoot. Not right now, but as some next step.

+1

&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:1053
&gt; &gt; +    bool hasParentStyle = parentNodeForRendering() ? parentNodeForRendering()-&gt;renderStyle() : false;
&gt; 
&gt; Because it&apos;s here, I wonder if -ForRendering is the wrong suffix. It&apos;s more like ForRenderingAndStyle.

Done

&gt; &gt; Source/WebCore/dom/Element.cpp:1145
&gt; &gt; +Node* Element::shadowRoot() const
&gt; 
&gt; Return ShadowRoot*?

I would like to, but per your comments on the first patch, the patch bloats a bit if I do this, because shadowRoot() callers need to #include &quot;ShadowRoot.h&quot; to grok ShadowRoot* is assignable to Node*. Happy to make it so… WDYT?

&gt; &gt; Source/WebCore/dom/Element.cpp:1150
&gt; &gt;  void Element::setShadowRoot(PassRefPtr&lt;Node&gt; node)
&gt; 
&gt; Can this just take ShadowRoot?

Done. Does it make sense to make shadowRoot return ShadowRoot* for symmetry?
 
&gt; &gt; Source/WebCore/dom/Node.cpp:1425
&gt; &gt; +        || (!parentRenderer-&gt;canHaveChildren()
&gt; &gt; +            &amp;&amp; !(isShadowRoot() || parentNode()-&gt;isShadowBoundary()))
&gt; 
&gt; Keep this one one line.

Done.

&gt; &gt; Source/WebCore/dom/Node.h:206
&gt; &gt; +    // FIXME: remove this when all shadow roots are ShadowRoots
&gt; 
&gt; Period at the end of a sentence.

Done.

&gt; &gt; Source/WebCore/html/HTMLKeygenElement.cpp:81
&gt; &gt; +    shadow-&gt;parserAddChild(select);
&gt; 
&gt; We are not the parser. We shouldn&apos;t be calling this. Use appendChild.

Done.

&gt; &gt; Source/WebCore/html/HTMLMeterElement.cpp:235
&gt; &gt; +    shadow-&gt;parserAddChild(bar);
&gt; 
&gt; Ditto.

Done.

&gt; &gt; Source/WebCore/html/HTMLProgressElement.cpp:141
&gt; &gt; +    bar-&gt;parserAddChild(m_value);
&gt; 
&gt; Ditto.

Done.

&gt; &gt; Source/WebCore/html/HTMLProgressElement.cpp:143
&gt; &gt; +    shadow-&gt;parserAddChild(bar);
&gt; 
&gt; Ditto.

Done.

&gt; &gt; Source/WebCore/html/RangeInputType.cpp:201
&gt; &gt; +    shadow-&gt;parserAddChild(SliderThumbElement::create(element()-&gt;document()));
&gt; 
&gt; Use appendChild.

Done.

&gt; &gt; Source/WebCore/rendering/RenderSlider.cpp:181
&gt; &gt; +    return toSliderThumbElement(static_cast&lt;Element*&gt;(node())-&gt;shadowRoot()-&gt;firstChild());
&gt; 
&gt; Probably need to check for shadowRoot existence here first.

Done. Added an assertion to HTMLKeygenElement::shadowSelect, since that should always exist.

&gt; &gt; Source/WebKit/mac/DOM/WebDOMOperations.mm:48
&gt; &gt; +#import &lt;WebCore/ShadowFragment.h&gt;
&gt; 
&gt; ShadowRoot?

My hair just turned white. I will do a clean build and rebuild the test shells.

&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:43
&gt; &gt; +#include &lt;WebCore/ShadowFragment.h&gt;
&gt; 
&gt; ShadowRoot?

Done.

New patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381532</commentid>
    <comment_count>8</comment_count>
      <attachid>88669</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-07 11:44:15 -0700</bug_when>
    <thetext>Created attachment 88669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381610</commentid>
    <comment_count>9</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-07 13:13:44 -0700</bug_when>
    <thetext>Attachment 88669 did not build on win:
Build output: http://queues.webkit.org/results/8345658</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381620</commentid>
    <comment_count>10</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-07 13:20:01 -0700</bug_when>
    <thetext>Attachment 88669 did not build on win:
Build output: http://queues.webkit.org/results/8348644</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381630</commentid>
    <comment_count>11</comment_count>
      <attachid>88682</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-07 13:26:52 -0700</bug_when>
    <thetext>Created attachment 88682
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381642</commentid>
    <comment_count>12</comment_count>
      <attachid>88685</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-07 13:36:54 -0700</bug_when>
    <thetext>Created attachment 88685
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381644</commentid>
    <comment_count>13</comment_count>
      <attachid>88682</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-07 13:37:21 -0700</bug_when>
    <thetext>Comment on attachment 88682
Patch

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

Super close! One more rinse cycle.

&gt; Source/WebCore/dom/ShadowRoot.cpp:35
&gt; +PassRefPtr&lt;ShadowRoot&gt; ShadowRoot::create(Document* document)
&gt; +{
&gt; +    return adoptRef(new ShadowRoot(document));
&gt; +}

This can be inlined in the header. See http://codesearch.google.com/codesearch/p#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/html/shadow/SliderThumbElement.h&amp;l=76.

&gt; Source/WebCore/html/HTMLKeygenElement.cpp:130
&gt; +    return static_cast&lt;HTMLSelectElement*&gt;(shadowRoot()-&gt;firstChild());

I&apos;d do the same check for shadowRoot() here as you did for slider thumb.

&gt; Source/WebCore/html/RangeInputType.cpp:200
&gt; +    RefPtr&lt;ShadowRoot&gt; shadow = ShadowRoot::create(element()-&gt;document());

Whoops. This one&apos;s not used anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381668</commentid>
    <comment_count>14</comment_count>
      <attachid>88689</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-07 13:53:19 -0700</bug_when>
    <thetext>Created attachment 88689
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381686</commentid>
    <comment_count>15</comment_count>
      <attachid>88689</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-07 14:09:51 -0700</bug_when>
    <thetext>Comment on attachment 88689
Patch

I believe this one is good to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381700</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-07 14:24:05 -0700</bug_when>
    <thetext>Attachment 88682 did not build on chromium:
Build output: http://queues.webkit.org/results/8341767</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381715</commentid>
    <comment_count>17</comment_count>
      <attachid>88689</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-07 14:35:03 -0700</bug_when>
    <thetext>Comment on attachment 88689
Patch

Breaks chromium…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381729</commentid>
    <comment_count>18</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-07 14:44:45 -0700</bug_when>
    <thetext>Attachment 88689 did not build on win:
Build output: http://queues.webkit.org/results/8344737</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381737</commentid>
    <comment_count>19</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2011-04-07 14:50:39 -0700</bug_when>
    <thetext>Drive-by minor nit: CMakeLists.txt is not listed in the ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381739</commentid>
    <comment_count>20</comment_count>
      <attachid>88706</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-07 14:52:01 -0700</bug_when>
    <thetext>Created attachment 88706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381761</commentid>
    <comment_count>21</comment_count>
      <attachid>88712</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-07 15:04:59 -0700</bug_when>
    <thetext>Created attachment 88712
Patch

Do not break Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381957</commentid>
    <comment_count>22</comment_count>
      <attachid>88712</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-04-07 20:17:08 -0700</bug_when>
    <thetext>Comment on attachment 88712
Patch

ok, let&apos;s give it a whirl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381971</commentid>
    <comment_count>23</comment_count>
      <attachid>88712</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-07 21:04:07 -0700</bug_when>
    <thetext>Comment on attachment 88712
Patch

Rejecting attachment 88712 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-8&apos;, &apos;apply-...&quot; exit_code: 2

Last 500 characters of output:
ng file Source/WebCore/html/shadow/SliderThumbElement.h
patching file Source/WebCore/rendering/MediaControlElements.cpp
patching file Source/WebCore/rendering/RenderSlider.cpp
patching file Source/WebCore/rendering/RenderSlider.h
patching file Source/WebKit/chromium/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebKit/chromium/src/WebElement.cpp

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Dimitri Glazkov&apos;, u&apos;--...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8346842</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382067</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-08 01:05:35 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/83256 might have broken SnowLeopard Intel Release (WebKit2 Tests)
The following tests are not passing:
fast/dom/HTMLKeygenElement/keygen.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382068</commentid>
    <comment_count>25</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-04-08 01:11:00 -0700</bug_when>
    <thetext>Bug 58121 filed for WK2 test break.

Bug 58119 filed for GTK test break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382285</commentid>
    <comment_count>26</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-04-08 09:22:54 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; http://trac.webkit.org/changeset/83256 might have broken SnowLeopard Intel Release (WebKit2 Tests)
&gt; The following tests are not passing:
&gt; fast/dom/HTMLKeygenElement/keygen.html

I forgot to mention that I landed the patch as r83256 :-)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88182</attachid>
            <date>2011-04-04 21:42:32 -0700</date>
            <delta_ts>2011-04-04 21:43:13 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-57813-20110404214231.patch</filename>
            <type>text/plain</type>
            <size>40254</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODI3NDgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDkwZjUwZDZhYjZkMzNj
MTg2MzBmZGRmN2I4N2UwMDdmYzdhOGExMGMuLjgxYTJhMDdiYzU4NWI4MjFjNDc0NjU5Mzk5YWJi
ZjJjMWQyNjA3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtMTc1LDYgKzE3NSw3IEBAIExPQ0FMX1NSQ19G
SUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCWRvbS9TY3JpcHRSdW5uZXIuY3BwIFwKIAlk
b20vU2VsZWN0RWxlbWVudC5jcHAgXAogCWRvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCisJZG9t
L1NoYWRvd0ZyYWdtZW50LmNwcCBcCiAJZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKIAlkb20v
U3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCBcCiAJZG9tL1N0YXRpY05vZGVMaXN0LmNwcCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCmluZGV4IDk5ZDY4NDFlZjVhMjBlODE3OWFhNTZlYzAzNTA0YTYzZTBl
NzU1N2UuLmY2ZTc4NmY1ZWQxZDg2NGI3MTRmOGIwN2QzNjdjYTNlYTEzZWFlZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCkBAIC0xMzI0LDYgKzEzMjQsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yTm9k
ZUxpc3QuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0ZyYWdtZW50LmNwcCBcCisJU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0ZyYWdtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9T
cGFjZVNwbGl0U3RyaW5nLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJp
bmcuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCBhMGNiM2VmOTgzMDQ2YjI5MTc4NTQ1NWZjNDQ0MDI0YWU0
YzEzNzkyLi5iYzdhYTVkZTBmYzk5OGUxMDc1YThjYjQ3ODA5OWVjOGEyZTBiZjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtNzk0LDcgKzc5NCw2IEBAIF9fWk43V2ViQ29yZTZXaWRnZXREMkV2
CiBfX1pON1dlYkNvcmU2dG9Ob2RlRU4zSlNDN0pTVmFsdWVFCiBfX1pON1dlYkNvcmU3Q29uc29s
ZTIxc2hvdWxkUHJpbnRFeGNlcHRpb25zRXYKIF9fWk43V2ViQ29yZTdDb25zb2xlMjRzZXRTaG91
bGRQcmludEV4Y2VwdGlvbnNFYgotX19aTjdXZWJDb3JlN0VsZW1lbnQxMHNoYWRvd1Jvb3RFdgog
X19aTjdXZWJDb3JlN0ludFJlY3Q1c2NhbGVFZgogX19aTjdXZWJDb3JlN0ludFJlY3Q1dW5pdGVF
UktTMF8KIF9fWk43V2ViQ29yZTdJbnRSZWN0OWludGVyc2VjdEVSS1MwXwpAQCAtMTI0Niw2ICsx
MjQ1LDcgQEAgX19aTks3V2ViQ29yZTZXaWRnZXQyNWNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3dF
UktOU183SW50UmVjdEUKIF9fWk5LN1dlYkNvcmU2V2lkZ2V0MjVjb252ZXJ0VG9Db250YWluaW5n
V2luZG93RVJLTlNfOEludFBvaW50RQogX19aTks3V2ViQ29yZTZXaWRnZXQ5ZnJhbWVSZWN0RXYK
IF9fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2NyZWVuUmVjdEV2CitfX1pOSzdXZWJDb3JlN0VsZW1l
bnQxMHNoYWRvd1Jvb3RFdgogX19aTks3V2ViQ29yZTdFbGVtZW50MTJnZXRBdHRyaWJ1dGVFUktO
U18xM1F1YWxpZmllZE5hbWVFCiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQxOWJvdW5kc0luV2luZG93
U3BhY2VFdgogX19aTks3V2ViQ29yZTdFbGVtZW50OWlubmVyVGV4dEV2CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggNmZkMjUxZjQwNDkzNzhlZmM5ZTU0M2UwNjM3OGZjYTIyZTg2ZWMyNi4uMGM4ZGNhZGIy
NTlkZmM4Nzc3YTg0ZDM4MmJlMTdkZDI3MDZjODdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTQ1
LDYgKzU0NSw3IEBACiAgICAgICAgICAgICAnZG9tL1JlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmgn
LAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgnLAogICAgICAgICAg
ICAgJ2RvbS9TY3JpcHRSdW5uZXIuaCcsCisgICAgICAgICAgICAnZG9tL1NoYWRvd0ZyYWdtZW50
LmgnLAogICAgICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgnLAogICAgICAgICAgICAg
J2RvbS9TdHlsZWRFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9UZXh0LmgnLApAQCAtMjUx
Nyw2ICsyNTE4LDggQEAKICAgICAgICAgICAgICdkb20vU2VsZWN0RWxlbWVudC5oJywKICAgICAg
ICAgICAgICdkb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TZWxl
Y3Rvck5vZGVMaXN0LmgnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dGcmFnbWVudC5jcHAnLAor
ICAgICAgICAgICAgJ2RvbS9TaGFkb3dGcmFnbWVudC5oJywKICAgICAgICAgICAgICdkb20vU3Bh
Y2VTcGxpdFN0cmluZy5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TdGF0aWNIYXNoU2V0Tm9kZUxp
c3QuY3BwJywKICAgICAgICAgICAgICdkb20vU3RhdGljSGFzaFNldE5vZGVMaXN0LmgnLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybwppbmRleCAyYWM5MTdhYjVkMjlkZTQwYjM5YWE3Y2ZmNjRmZmIwNzIzNzU3MjVkLi45
Y2YwODYxZGE3MDg4MGE5OGZkNjQwMjRmN2FiNTYzY2M2Njk4YTlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpA
QCAtNTMzLDYgKzUzMyw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9TY3JpcHRSdW5uZXIuY3Bw
IFwKICAgICBkb20vU2VsZWN0RWxlbWVudC5jcHAgXAogICAgIGRvbS9TZWxlY3Rvck5vZGVMaXN0
LmNwcCBcCisgICAgZG9tL1NoYWRvd0ZyYWdtZW50LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRT
dHJpbmcuY3BwIFwKICAgICBkb20vU3RhdGljTm9kZUxpc3QuY3BwIFwKICAgICBkb20vU3R5bGVk
RWxlbWVudC5jcHAgXApAQCAtMTQ5Miw2ICsxNDkzLDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBcCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuaCBcCiAg
ICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuaCBcCisgICAgZG9tL1NoYWRvd0ZyYWdtZW50LmggXAog
ICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmggXAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5oIFwK
ICAgICBkb20vU3R5bGVkRWxlbWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYmEwNDk4Zjk2MGMyMjUyMGU0Njc3NGU1NDUwMGIxNjJj
MDgwYTZhMi4uYzY1ZjJlMmUwMDJjOTM1YTU5MDJlN2I3YmY4ZmE5OTBhYzYwNGE2ZiAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQ2NTM0LDYg
KzQ2NTM0LDYyIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGRvbVxTaGFkb3dGcmFnbWVudC5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRy
dWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
KwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxl
PgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxTaGFkb3dGcmFnbWVudC5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU3Bh
Y2VTcGxpdFN0cmluZy5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZj
OTllYzFmYzI4ZWM3NGFmNjJhMWRmMDkxZjM2NTJmZDY0YTVmNGQuLmVhODhlMDdhNzVlNjNmZDA1
NWE0NzQwM2M2YjIyYTYxMGRjYzI5ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxOTMsNiArMzE5Myw4IEBACiAJCUE2MjJB
OEZDMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY2MTIyQzQ0QTYwMEE3
ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLzsgfTsKIAkJQTYyMkE4RkQxMjJDNDRB
NjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5k
aW5nU2VjdXJpdHlCYXNlLmggKi87IH07CiAJCUE2MjJBOEZGMTIyQzQ0QTYwMEE3ODVCMyAvKiBH
ZW5lcmljQmluZGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTYyMkE4RjkxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi87IH07
CisJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dGcmFnbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNkQxNjk2MTEzNDZCNDlC
MDAwRUI3NzAgLyogU2hhZG93RnJhZ21lbnQuY3BwICovOyB9OworCQlBNkQxNjk2NDEzNDZCNEMx
MDAwRUI3NzAgLyogU2hhZG93RnJhZ21lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dGcmFn
bWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE3MTUxQkQ4MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0Q2hlY2tlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxNTFCRDcxMkYxNTU4RjAw
NUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdB
Y3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBCMkQwNEFDMDBBMTZF
Q0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xs
ZXJNYWMubW0gKi87IH07CkBAIC05NzAxLDYgKzk3MDMsOCBAQAogCQlBNjIyQThGNjEyMkM0NEE2
MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcDsgcGF0aCA9IGdlbmVyaWMv
QmluZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE2
MjJBOEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eUJhc2UuaDsgcGF0aCA9IGdl
bmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNjIyQThGOTEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gR2VuZXJpY0JpbmRpbmcuaDsgcGF0aCA9IGdlbmVyaWMv
R2VuZXJpY0JpbmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTZEMTY5NjEx
MzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd0ZyYWdtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNoYWRvd0ZyYWdtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTZEMTY5NjMxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd0ZyYWdtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd0ZyYWdtZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTUxQkQ3MTJGMTU1OEYwMDVBMEY2NCAvKiBUZXh0
Q2hlY2tlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0Q2hl
Y2tlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4NzYwRDBCMkEx
MjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRHJhZ0FjdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc4
OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTM5OCw2ICsxOTQwMiw4IEBACiAJCQkJMDg0QUVCRTMw
RkI1MDVGQTAwMzg0ODNFIC8qIFNlbGVjdEVsZW1lbnQuaCAqLywKIAkJCQlCQzdGQTY4MDBEMUYx
Njc5MDBEQjIyQTkgLyogU2VsZWN0b3JOb2RlTGlzdC5jcHAgKi8sCiAJCQkJQkM3RkE2N0YwRDFG
MTY3OTAwREIyMkE5IC8qIFNlbGVjdG9yTm9kZUxpc3QuaCAqLywKKwkJCQlBNkQxNjk2MTEzNDZC
NDlCMDAwRUI3NzAgLyogU2hhZG93RnJhZ21lbnQuY3BwICovLAorCQkJCUE2RDE2OTYzMTM0NkI0
QzEwMDBFQjc3MCAvKiBTaGFkb3dGcmFnbWVudC5oICovLAogCQkJCUQwMUEyN0FCMTBDOUJGRDgw
MDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmNwcCAqLywKIAkJCQlEMDFBMjdBQzEwQzlCRkQ4
MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oICovLAogCQkJCUNFQTM5NDlBMTFENDVDREEw
MDMwOTRDRiAvKiBTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwICovLApAQCAtMjI3NjYsNiArMjI3
NzIsNyBAQAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNv
ZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyog
WFNTRmlsdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlBNkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAg
LyogU2hhZG93RnJhZ21lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjU0NDQsNiArMjU0NTEsNyBA
QAogCQkJCTkzRjE5QjA1MDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yTGlieHNsdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUJFNTEyRDBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVu
aWNvZGVTb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMxMzM3
OSAvKiBYU1NGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTZEMTY5NjIxMzQ2QjQ5QjAw
MEVCNzcwIC8qIFNoYWRvd0ZyYWdtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCmluZGV4IGM5YzMwMjAzNzc4MTczYTRjMDczNWEzMTdm
ZWEzNDE3YjhlM2RjYTEuLmU5OGVmOWU1OGEwY2ZmMmI4ZjhkMGY0MjQ3MDBmOTljNjkxMTYyNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKQEAgLTMxLDcgKzMxLDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1pbmxpbmUgRG9jdW1lbnRGcmFnbWVudDo6RG9j
dW1lbnRGcmFnbWVudChEb2N1bWVudCogZG9jdW1lbnQpCitEb2N1bWVudEZyYWdtZW50OjpEb2N1
bWVudEZyYWdtZW50KERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IENvbnRhaW5lck5vZGUoZG9j
dW1lbnQpCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRG
cmFnbWVudC5oCmluZGV4IGQ1ODhiNGU3YjA1N2QyYjMyOGU0OGJhMDFiMzdlMTEzNzU5NjhhMTQu
LmY1Njc1MzZiMmIxNDc0ZmIwNDE1YzBjYjE4NjM0ZjZhZjQ0NjY3ODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50RnJhZ21lbnQuaApAQCAtMzYsOSArMzYsMTAgQEAgcHVibGljOgogICAgIHZv
aWQgcGFyc2VIVE1MKGNvbnN0IFN0cmluZyYsIEVsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBGcmFn
bWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBGcmFnbWVudFNjcmlwdGluZ0FsbG93ZWQpOwogICAg
IGJvb2wgcGFyc2VYTUwoY29uc3QgU3RyaW5nJiwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEZy
YWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCk7CiAK
LXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnRGcmFnbWVudChEb2N1bWVudCopOwog
Citwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxO
b2RlPiBjbG9uZU5vZGUoYm9vbCBkZWVwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAyOTI3
YWZiZWEyNGI1MDEzMjBmZjFiNmUxMTlkYWNmNjhiZGJhNWM4Li5kODQ3Y2NlM2NkMjViM2YzYTM1
ZTAyNmM5ZjQzYWU3MDlmODA3MDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC01NCw2ICs1
NCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU2hhZG93RnJhZ21lbnQuaCIKICNp
bmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25MaXN0Lmgi
CiAjaW5jbHVkZSAiWE1MTmFtZXMuaCIKQEAgLTkwNCw3ICs5MDUsNyBAQCB2b2lkIEVsZW1lbnQ6
Omluc2VydGVkSW50b0RvY3VtZW50KCkKICAgICAvLyBuZWVkIHRvIGRvIHN1cGVyY2xhc3MgcHJv
Y2Vzc2luZyBmaXJzdCBzbyBpbkRvY3VtZW50KCkgaXMgdHJ1ZQogICAgIC8vIGJ5IHRoZSB0aW1l
IHdlIHJlYWNoIHVwZGF0ZUlkCiAgICAgQ29udGFpbmVyTm9kZTo6aW5zZXJ0ZWRJbnRvRG9jdW1l
bnQoKTsKLSAgICBpZiAoTm9kZSogc2hhZG93ID0gc2hhZG93Um9vdCgpKQorICAgIGlmIChTaGFk
b3dGcmFnbWVudCogc2hhZG93ID0gc2hhZG93Um9vdCgpKQogICAgICAgICBzaGFkb3ctPmluc2Vy
dGVkSW50b0RvY3VtZW50KCk7CiAKICAgICBpZiAoaGFzSUQoKSkgewpAQCAtOTI3LDcgKzkyOCw3
IEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpCiAgICAgfQogCiAgICAgQ29u
dGFpbmVyTm9kZTo6cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwotICAgIGlmIChOb2RlKiBzaGFkb3cg
PSBzaGFkb3dSb290KCkpCisgICAgaWYgKFNoYWRvd0ZyYWdtZW50KiBzaGFkb3cgPSBzaGFkb3dS
b290KCkpCiAgICAgICAgIHNoYWRvdy0+cmVtb3ZlZEZyb21Eb2N1bWVudCgpOwogfQogCkBAIC05
MzYsNyArOTM3LDcgQEAgdm9pZCBFbGVtZW50OjppbnNlcnRlZEludG9UcmVlKGJvb2wgZGVlcCkK
ICAgICBDb250YWluZXJOb2RlOjppbnNlcnRlZEludG9UcmVlKGRlZXApOwogICAgIGlmICghZGVl
cCkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChOb2RlKiBzaGFkb3cgPSBzaGFkb3dSb290KCkp
CisgICAgaWYgKFNoYWRvd0ZyYWdtZW50KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpCiAgICAgICAg
IHNoYWRvdy0+aW5zZXJ0ZWRJbnRvVHJlZSh0cnVlKTsKIH0KIApAQCAtOTQ1LDcgKzk0Niw3IEBA
IHZvaWQgRWxlbWVudDo6cmVtb3ZlZEZyb21UcmVlKGJvb2wgZGVlcCkKICAgICBDb250YWluZXJO
b2RlOjpyZW1vdmVkRnJvbVRyZWUoZGVlcCk7CiAgICAgaWYgKCFkZWVwKQogICAgICAgICByZXR1
cm47Ci0gICAgaWYgKE5vZGUqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkKKyAgICBpZiAoU2hhZG93
RnJhZ21lbnQqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkKICAgICAgICAgc2hhZG93LT5yZW1vdmVk
RnJvbVRyZWUodHJ1ZSk7CiB9CiAKQEAgLTk2MCw3ICs5NjEsNyBAQCB2b2lkIEVsZW1lbnQ6OmF0
dGFjaCgpCiAgICAgaWYgKGZpcnN0Q2hpbGQoKSkKICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2go
KTsKICAgICBDb250YWluZXJOb2RlOjphdHRhY2goKTsKLSAgICBpZiAoTm9kZSogc2hhZG93ID0g
c2hhZG93Um9vdCgpKSB7CisgICAgaWYgKFNoYWRvd0ZyYWdtZW50KiBzaGFkb3cgPSBzaGFkb3dS
b290KCkpIHsKICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKICAgICAgICAgc2hhZG93LT5h
dHRhY2goKTsKICAgICB9CkBAIC05ODUsNyArOTg2LDcgQEAgdm9pZCBFbGVtZW50OjpkZXRhY2go
KQogICAgIGlmIChoYXNSYXJlRGF0YSgpKQogICAgICAgICByYXJlRGF0YSgpLT5yZXNldENvbXB1
dGVkU3R5bGUoKTsKICAgICBDb250YWluZXJOb2RlOjpkZXRhY2goKTsKLSAgICBpZiAoTm9kZSog
c2hhZG93ID0gc2hhZG93Um9vdCgpKQorICAgIGlmIChTaGFkb3dGcmFnbWVudCogc2hhZG93ID0g
c2hhZG93Um9vdCgpKQogICAgICAgICBzaGFkb3ctPmRldGFjaCgpOwogCiAgICAgUmVuZGVyV2lk
Z2V0OjpyZXN1bWVXaWRnZXRIaWVyYXJjaHlVcGRhdGVzKCk7CkBAIC0xMTE3LDggKzExMTgsOCBA
QCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICAgICAg
ICAgIGZvcmNlQ2hlY2tPZk5leHRFbGVtZW50U2libGluZyA9IGNoaWxkUnVsZXNDaGFuZ2VkICYm
IGhhc0RpcmVjdEFkamFjZW50UnVsZXM7CiAgICAgfQogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMg
bm90IGNhcmUgYWJvdXQgc2libGluZyBjb21iaW5hdG9ycy4gV2lsbCBiZSBuZWNlc3NhcnkgaW4g
WEJMMiB3b3JsZC4KLSAgICBpZiAoTm9kZSogc2hhZG93ID0gc2hhZG93Um9vdCgpKSB7Ci0gICAg
ICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBzaGFkb3ctPmlzVGV4dE5vZGUoKSB8fCBzaGFk
b3ctPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IHNoYWRvdy0+bmVlZHNTdHlsZVJlY2FsYygp
KSB7CisgICAgaWYgKFNoYWRvd0ZyYWdtZW50KiBzaGFkb3cgPSBzaGFkb3dSb290KCkpIHsKKyAg
ICAgICAgaWYgKGNoYW5nZSA+PSBJbmhlcml0IHx8IHNoYWRvdy0+Y2hpbGROZWVkc1N0eWxlUmVj
YWxjKCkgfHwgc2hhZG93LT5uZWVkc1N0eWxlUmVjYWxjKCkpIHsKICAgICAgICAgICAgIHBhcmVu
dFB1c2hlci5wdXNoKCk7CiAgICAgICAgICAgICBzaGFkb3ctPnJlY2FsY1N0eWxlKGNoYW5nZSk7
CiAgICAgICAgIH0KQEAgLTExMjgsMTkgKzExMjksMTkgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNT
dHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAgY2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMo
KTsKIH0KIAotTm9kZSogRWxlbWVudDo6c2hhZG93Um9vdCgpCitTaGFkb3dGcmFnbWVudCogRWxl
bWVudDo6c2hhZG93Um9vdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGhhc1JhcmVEYXRhKCkgPyBy
YXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3QgOiAwOwogfQogCi12b2lkIEVsZW1lbnQ6OnNldFNoYWRv
d1Jvb3QoUGFzc1JlZlB0cjxOb2RlPiBub2RlKQordm9pZCBFbGVtZW50OjpzZXRTaGFkb3dSb290
KFBhc3NSZWZQdHI8U2hhZG93RnJhZ21lbnQ+IHJvb3QpCiB7CiAgICAgLy8gRklYTUU6IEJlY2F1
c2UgdG9kYXkgdGhpcyBpcyBuZXZlciBjYWxsZWQgZnJvbSBzY3JpcHQgZGlyZWN0bHksIHdlIGRv
bid0IGhhdmUgdG8gd29ycnkKICAgICAvLyBhYm91dCBjb21wcm9taXNpbmcgRE9NIHRyZWUgaW50
ZWdyaXR5IChlZy4gbm9kZSBiZWluZyBhIHBhcmVudCBvZiB0aGlzKS4gSG93ZXZlciwKICAgICAv
LyBvbmNlIHdlIGltcGxlbWVudCBYQkwyLCB3ZSB3aWxsIGhhdmUgdG8gYWRkIGludGVncml0eSBj
aGVja3MgaGVyZS4KICAgICByZW1vdmVTaGFkb3dSb290KCk7CiAKLSAgICBSZWZQdHI8Tm9kZT4g
bmV3Um9vdCA9IG5vZGU7CisgICAgUmVmUHRyPFNoYWRvd0ZyYWdtZW50PiBuZXdSb290ID0gcm9v
dDsKICAgICBpZiAoIW5ld1Jvb3QpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTE1OCw3ICsxMTU5
LDcgQEAgdm9pZCBFbGVtZW50OjpyZW1vdmVTaGFkb3dSb290KCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgRWxlbWVudFJhcmVEYXRhKiBkYXRhID0gcmFyZURhdGEoKTsKLSAgICBpZiAoUmVmUHRy
PE5vZGU+IG9sZFJvb3QgPSBkYXRhLT5tX3NoYWRvd1Jvb3QpIHsKKyAgICBpZiAoUmVmUHRyPFNo
YWRvd0ZyYWdtZW50PiBvbGRSb290ID0gZGF0YS0+bV9zaGFkb3dSb290KSB7CiAgICAgICAgIGRh
dGEtPm1fc2hhZG93Um9vdCA9IDA7CiAgICAgICAgIGRvY3VtZW50KCktPnJlbW92ZUZvY3VzZWRO
b2RlT2ZTdWJ0cmVlKG9sZFJvb3QuZ2V0KCkpOwogICAgICAgICBvbGRSb290LT5zZXRTaGFkb3dI
b3N0KDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggZDE1ZTk0MDBkZmQ5M2FjNzY3YWJmNTAzNDIy
ZmYyMzVlZThjOWQ4Yy4uZThmMjIyZWEzNGNiNmMzN2M5ZTQ0NmFhNzgzOGY1ZmJmMDZmYTdmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCkBAIC0zOSw2ICszOSw3IEBAIGNsYXNzIERPTVN0cmluZ01hcDsK
IGNsYXNzIERPTVRva2VuTGlzdDsKIGNsYXNzIEVsZW1lbnRSYXJlRGF0YTsKIGNsYXNzIEludFNp
emU7CitjbGFzcyBTaGFkb3dGcmFnbWVudDsKIGNsYXNzIFdlYktpdEFuaW1hdGlvbkxpc3Q7CiAK
IGVudW0gU3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlIHsKQEAgLTIzMSw4ICsyMzIsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiwgUmVuZGVyU3R5bGUqKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVjYWxjU3R5bGUoU3R5bGVDaGFu
Z2UgPSBOb0NoYW5nZSk7CiAKLSAgICBOb2RlKiBzaGFkb3dSb290KCk7Ci0gICAgdm9pZCBzZXRT
aGFkb3dSb290KFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIFNoYWRvd0ZyYWdtZW50KiBzaGFkb3dS
b290KCkgY29uc3Q7CisgICAgdm9pZCBzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8U2hhZG93RnJh
Z21lbnQ+KTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQo
KSBjb25zdDsKIAogICAgIFJlbmRlclN0eWxlKiBjb21wdXRlZFN0eWxlKFBzZXVkb0lkID0gTk9Q
U0VVRE8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCmluZGV4IDgxOGEyYzJmMGZm
OTg3ZGM1Y2Q2M2E5NzI5NWJlYzViODBlZDRhMjUuLmU4NzgwN2JmNWEzN2RkMDA0NTkzMjMxYzg5
MDNhNDY3NjlhYmNhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFy
ZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKQEAgLTMw
LDYgKzMwLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTaGFkb3dGcmFnbWVu
dDsKKwogY2xhc3MgRWxlbWVudFJhcmVEYXRhIDogcHVibGljIE5vZGVSYXJlRGF0YSB7CiBwdWJs
aWM6CiAgICAgRWxlbWVudFJhcmVEYXRhKCk7CkBAIC00Miw3ICs0NCw3IEBAIHB1YmxpYzoKIAog
ICAgIEludFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nOwogICAgIFJlZlB0cjxSZW5kZXJT
dHlsZT4gbV9jb21wdXRlZFN0eWxlOwotICAgIE5vZGUqIG1fc2hhZG93Um9vdDsKKyAgICBTaGFk
b3dGcmFnbWVudCogbV9zaGFkb3dSb290OwogCiAgICAgT3duUHRyPERhdGFzZXRET01TdHJpbmdN
YXA+IG1fZGF0YXNldERPTVN0cmluZ01hcDsKICAgICBPd25QdHI8Q2xhc3NMaXN0PiBtX2NsYXNz
TGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA5ZWNiY2NiNWNkN2NlYzhiM2I4OTMxMWIxMTMxNjFk
NTIxNDhiNTIwLi41MGRhZTVlMjc4MGMxYjlhNTI3ZDdjZGFlZGZiZmFhM2I1MmQ3NjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCkBAIC03Niw2ICs3Niw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgog
I2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVy
LmgiCisjaW5jbHVkZSAiU2hhZG93RnJhZ21lbnQuaCIKICNpbmNsdWRlICJTZWxlY3Rvck5vZGVM
aXN0LmgiCiAjaW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKICNpbmNsdWRlICJUYWdOb2RlTGlz
dC5oIgpAQCAtODEwLDcgKzgxMSw3IEBAIHZvaWQgTm9kZTo6c2V0RG9jdW1lbnRSZWN1cnNpdmVs
eShEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgICAgIG5vZGUtPnNldERvY3VtZW50KGRvY3VtZW50
KTsKICAgICAgICAgaWYgKCFub2RlLT5pc0VsZW1lbnROb2RlKCkpCiAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgaWYgKE5vZGUqIHNoYWRvdyA9IHRvRWxlbWVudChub2RlKS0+c2hhZG93
Um9vdCgpKQorICAgICAgICBpZiAoU2hhZG93RnJhZ21lbnQqIHNoYWRvdyA9IHRvRWxlbWVudChu
b2RlKS0+c2hhZG93Um9vdCgpKQogICAgICAgICAgICAgc2hhZG93LT5zZXREb2N1bWVudFJlY3Vy
c2l2ZWx5KGRvY3VtZW50KTsKICAgICB9CiB9CkBAIC0xNDAzLDcgKzE0MDQsOCBAQCBSZW5kZXJP
YmplY3QqIE5vZGU6OmNyZWF0ZVJlbmRlcmVyQW5kU3R5bGUoKQogCiAgICAgQ29udGFpbmVyTm9k
ZSogcGFyZW50ID0gcGFyZW50T3JIb3N0Tm9kZSgpOwogICAgIEFTU0VSVChwYXJlbnQpOwotICAg
IFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIgPSBwYXJlbnQtPnJlbmRlcmVyKCk7CisKKyAg
ICBSZW5kZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyID0gcmVuZGVyZXJQYXJlbnQoKTsKIAogICAg
IC8vIEZJWE1FOiBJZ25vcmluZyBjYW5IYXZlQ2hpbGRyZW4oKSBpbiBhIGNhc2Ugb2YgaXNTaGFk
b3dSb290KCkgbWlnaHQgYmUgd3JvbmcuCiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MjQyMwpAQCAtMTQ1OSw3ICsxNDYxLDE3IEBAIHZvaWQgTm9k
ZTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIE5v
dGU6IEFkZGluZyBuZXdSZW5kZXJlciBpbnN0ZWFkIG9mIHJlbmRlcmVyKCkuIHJlbmRlcmVyKCkg
bWF5IGJlIGEgY2hpbGQgb2YgbmV3UmVuZGVyZXIuCi0gICAgcGFyZW50T3JIb3N0Tm9kZSgpLT5y
ZW5kZXJlcigpLT5hZGRDaGlsZChuZXdSZW5kZXJlciwgbmV4dFJlbmRlcmVyKCkpOworICAgIHJl
bmRlcmVyUGFyZW50KCktPmFkZENoaWxkKG5ld1JlbmRlcmVyLCBuZXh0UmVuZGVyZXIoKSk7Cit9
CisKK1JlbmRlck9iamVjdCogTm9kZTo6cmVuZGVyZXJQYXJlbnQoKSBjb25zdAoreworICAgIGlm
ICghcGFyZW50Tm9kZSgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBwYXJlbnRO
b2RlKCktPmlzU2hhZG93RnJhZ21lbnQoKQorICAgICAgICA/IHBhcmVudE5vZGUoKS0+c2hhZG93
SG9zdCgpLT5yZW5kZXJlcigpCisgICAgICAgIDogcGFyZW50T3JIb3N0Tm9kZSgpLT5yZW5kZXJl
cigpOwogfQogCiBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBOb2RlOjpzdHlsZUZvclJlbmRlcmVy
KCkKQEAgLTE0NzIsNyArMTQ4NCw4IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IE5vZGU6OnN0
eWxlRm9yUmVuZGVyZXIoKQogI2VuZGlmCiAgICAgICAgIHJldHVybiBkb2N1bWVudCgpLT5zdHls
ZVNlbGVjdG9yKCktPnN0eWxlRm9yRWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4odGhpcyks
IDAsIGFsbG93U2hhcmluZyk7CiAgICAgfQotICAgIHJldHVybiBwYXJlbnROb2RlKCkgJiYgcGFy
ZW50Tm9kZSgpLT5yZW5kZXJlcigpID8gcGFyZW50Tm9kZSgpLT5yZW5kZXJlcigpLT5zdHlsZSgp
IDogMDsKKyAgICBSZW5kZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyID0gcmVuZGVyZXJQYXJlbnQo
KTsKKyAgICByZXR1cm4gcGFyZW50UmVuZGVyZXIgPyBwYXJlbnRSZW5kZXJlci0+c3R5bGUoKSA6
IDA7CiB9CiAKIGJvb2wgTm9kZTo6cmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSAqc3R5bGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaAppbmRleCAxMjlhNDkzZTg1NTljNTA1YmFiZjdhZWJlZDQwMDk0OTI2ZWEwODdj
Li45ODMzZTdiMzk3MjM1YTJmM2VkMTdkZWU3YmNhNjI3NjdiYTRiNTgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgK
QEAgLTIwMyw2ICsyMDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQ2hhcmFjdGVy
RGF0YU5vZGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNEb2N1bWVudE5v
ZGUoKSBjb25zdDsKICAgICBib29sIGlzU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIGdldEZs
YWcoSXNTaGFkb3dSb290RmxhZyk7IH0KKyAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgd2hlbiBh
bGwgc2hhZG93IHJvb3RzIGFyZSBTaGFkb3dGcmFnbWVudHMKKyAgICB2aXJ0dWFsIGJvb2wgaXNT
aGFkb3dGcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgTm9kZSogc2hhZG93
QW5jZXN0b3JOb2RlKCk7CiAgICAgTm9kZSogc2hhZG93VHJlZVJvb3ROb2RlKCk7CiAgICAgYm9v
bCBpc0luU2hhZG93VHJlZSgpOwpAQCAtNjU4LDYgKzY2MCw4IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBtYXJrQW5jZXN0b3JzV2l0aENoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwogCiAgICAgUmVuZGVy
T2JqZWN0KiBjcmVhdGVSZW5kZXJlckFuZFN0eWxlKCk7CisgICAgLy8gRklYTUU6IHNtZWxscyBm
aXNoeS4uLgorICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXJQYXJlbnQoKSBjb25zdDsKIAogICAg
IHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpOwogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93RnJhZ21l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0ZyYWdtZW50LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40ZWVmZGU1NmJkZjAzY2ZkYzhiOTFhMDViN2E1MDM2NzNlMjFkYTUxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0ZyYWdtZW50LmNwcApAQCAtMCwwICsxLDQz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYWRvd0ZyYWdtZW50LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxTaGFkb3dGcmFnbWVudD4gU2hhZG93
RnJhZ21lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBTaGFkb3dGcmFnbWVudChkb2N1bWVudCkpOworfQorCitTaGFkb3dGcmFnbWVudDo6
U2hhZG93RnJhZ21lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogRG9jdW1lbnRGcmFnbWVu
dChkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworfQorCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dGcmFnbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZGYxYzdmMjZjNGFmNmMyMDdlNDk1OTE3
MTBhZDk2NDhiNDBjZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93RnJhZ21lbnQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEx
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTaGFkb3dGcmFnbWVudF9o
CisjZGVmaW5lIFNoYWRvd0ZyYWdtZW50X2gKKworI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKKworY2xhc3MgU2hh
ZG93RnJhZ21lbnQgOiBwdWJsaWMgRG9jdW1lbnRGcmFnbWVudCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U2hhZG93RnJhZ21lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworCisgICAg
dmlydHVhbCBib29sIGlzU2hhZG93RnJhZ21lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisK
K3ByaXZhdGU6CisgICAgU2hhZG93RnJhZ21lbnQoRG9jdW1lbnQqKTsKK307CisKK30gLy8gbmFt
ZXNwYWNlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5
Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNw
cAppbmRleCBiOTAzMzVlYzQyOTI1NzA1ZTRhZTM4YTc0ZDA2YWNhZGFlODJkNThkLi4yNzMxODcy
NTUzYmU0MGM3ZDFlZjZiMTZkMjRlOWFkN2YzODI4NjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkhUTUxT
ZWxlY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJTU0xLZXlHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJTaGFkb3dGcmFnbWVudC5oIgogI2luY2x1
ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTc1LDcgKzc2
LDExIEBAIGlubGluZSBIVE1MS2V5Z2VuRWxlbWVudDo6SFRNTEtleWdlbkVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgICAgIHNlbGVjdC0+cGFyc2VyQWRk
Q2hpbGQob3B0aW9uKTsKICAgICAgICAgb3B0aW9uLT5wYXJzZXJBZGRDaGlsZChUZXh0OjpjcmVh
dGUoZG9jdW1lbnQsIGtleXNbaV0pKTsKICAgICB9Ci0gICAgc2V0U2hhZG93Um9vdChzZWxlY3Qp
OworCisgICAgUmVmUHRyPFNoYWRvd0ZyYWdtZW50PiBzaGFkb3cgPSBTaGFkb3dGcmFnbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBzaGFkb3ctPnBhcnNlckFkZENoaWxkKHNlbGVjdCk7CisK
KyAgICBzZXRTaGFkb3dSb290KHNoYWRvdyk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTEtleWdlbkVs
ZW1lbnQ+IEhUTUxLZXlnZW5FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCkBAIC04Nyw3
ICs5Miw3IEBAIHZvaWQgSFRNTEtleWdlbkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0
dHJpYnV0ZSogYXR0cikKIHsKICAgICAvLyBSZWZsZWN0IGRpc2FibGVkIGF0dHJpYnV0ZSBvbiB0
aGUgc2hhZG93IHNlbGVjdCBlbGVtZW50CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBkaXNhYmxl
ZEF0dHIpCi0gICAgICAgIHNlbGVjdFNoYWRvdygpLT5zZXRBdHRyaWJ1dGUoYXR0ci0+bmFtZSgp
LCBhdHRyLT52YWx1ZSgpKTsKKyAgICAgICAgc2hhZG93U2VsZWN0KCktPnNldEF0dHJpYnV0ZShh
dHRyLT5uYW1lKCksIGF0dHItPnZhbHVlKCkpOwogCiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBj
aGFsbGVuZ2VBdHRyKQogICAgICAgICBtX2NoYWxsZW5nZSA9IGF0dHItPnZhbHVlKCk7CkBAIC0x
MDIsNyArMTA3LDcgQEAgYm9vbCBIVE1MS2V5Z2VuRWxlbWVudDo6YXBwZW5kRm9ybURhdGEoRm9y
bURhdGFMaXN0JiBlbmNvZGVkX3ZhbHVlcywgYm9vbCkKICAgICAvLyBPbmx5IFJTQSBpcyBzdXBw
b3J0ZWQgYXQgdGhpcyB0aW1lLgogICAgIGlmICghbV9rZXlUeXBlLmlzTnVsbCgpICYmICFlcXVh
bElnbm9yaW5nQ2FzZShtX2tleVR5cGUsICJyc2EiKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIFN0cmluZyB2YWx1ZSA9IHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyhzZWxl
Y3RTaGFkb3coKS0+c2VsZWN0ZWRJbmRleCgpLCBtX2NoYWxsZW5nZSwgZG9jdW1lbnQoKS0+YmFz
ZVVSTCgpKTsKKyAgICBTdHJpbmcgdmFsdWUgPSBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VT
dHJpbmcoc2hhZG93U2VsZWN0KCktPnNlbGVjdGVkSW5kZXgoKSwgbV9jaGFsbGVuZ2UsIGRvY3Vt
ZW50KCktPmJhc2VVUkwoKSk7CiAgICAgaWYgKHZhbHVlLmlzTnVsbCgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgZW5jb2RlZF92YWx1ZXMuYXBwZW5kRGF0YShuYW1lKCksIHZhbHVlLnV0
ZjgoKSk7CkBAIC0xMTcsMTIgKzEyMiwxMiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxLZXln
ZW5FbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogCiB2b2lkIEhUTUxLZXlnZW5FbGVt
ZW50OjpyZXNldCgpCiB7Ci0gICAgc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+
KHNlbGVjdFNoYWRvdygpKS0+cmVzZXQoKTsKKyAgICBzdGF0aWNfY2FzdDxIVE1MRm9ybUNvbnRy
b2xFbGVtZW50Kj4oc2hhZG93U2VsZWN0KCkpLT5yZXNldCgpOwogfQogCi1IVE1MU2VsZWN0RWxl
bWVudCogSFRNTEtleWdlbkVsZW1lbnQ6OnNlbGVjdFNoYWRvdygpCitIVE1MU2VsZWN0RWxlbWVu
dCogSFRNTEtleWdlbkVsZW1lbnQ6OnNoYWRvd1NlbGVjdCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4oc2hhZG93Um9vdCgpKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihzaGFkb3dSb290KCktPmZpcnN0Q2hp
bGQoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxLZXlnZW5FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5F
bGVtZW50LmgKaW5kZXggYTdhOGE2NDgxNDQzZTg4ZWNlN2MyZDQ5YTExYmJmYTlkOGJmMDNlYi4u
YmQwOTMwM2ZiNDVkNmViNTg5ZDg4MzE5ZDc4ZjE5NDgzMjRkYjc1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaApAQCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgYm9vbCBpc1Jlc2V0dGFibGUoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAg
dmlydHVhbCB2b2lkIHJlc2V0KCk7CiAKLSAgICBIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0U2hh
ZG93KCk7CisgICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNoYWRvd1NlbGVjdCgpIGNvbnN0OwogCiAg
ICAgQXRvbWljU3RyaW5nIG1fY2hhbGxlbmdlOwogICAgIEF0b21pY1N0cmluZyBtX2tleVR5cGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCBjYWIw
NDI5MGU0Y2YwYjcwNzkyMmJjZGM2OWE1ZWFhMzhhODljZTM1Li5kYTRmOWE1ZDQ0MzUyNWVhODgx
MDk2MWNkZmYxZGVjNmE4Y2JmYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRp
b21zLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJS
ZW5kZXJQcm9ncmVzcy5oIgorI2luY2x1ZGUgIlNoYWRvd0ZyYWdtZW50LmgiCiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzEsNyArMTMy
LDEwIEBAIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZUlmTmVl
ZGVkKCkKIHsKICAgICBpZiAoc2hhZG93Um9vdCgpKQogICAgICAgICByZXR1cm47Ci0gICAgc2V0
U2hhZG93Um9vdChQcm9ncmVzc0JhclZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpLmdl
dCgpKTsKKworICAgIFJlZlB0cjxTaGFkb3dGcmFnbWVudD4gc2hhZG93ID0gU2hhZG93RnJhZ21l
bnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBzaGFkb3ctPnBhcnNlckFkZENoaWxkKFByb2dy
ZXNzQmFyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSkuZ2V0KCkpOworICAgIHNldFNo
YWRvd1Jvb3Qoc2hhZG93KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcAppbmRleCBlNzA4YTM1NjI4ZjAxZTZlNWQzOWNjNmFlMDkzMzEyOTI1OGI3NDI2Li44
ZDU3MjNjNzdlN2ZkZjZiODViYzg3ZjE1NWMzZDkwZmYwMGI5MTI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiUmVzZXRJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJTZWFyY2hJbnB1dFR5cGUu
aCIKKyNpbmNsdWRlICJTaGFkb3dGcmFnbWVudC5oIgogI2luY2x1ZGUgIlN1Ym1pdElucHV0VHlw
ZS5oIgogI2luY2x1ZGUgIlRlbGVwaG9uZUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIlRleHRJbnB1
dFR5cGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKaW5kZXggZjdlZTY3
NDc0ZDMyYjk0Njg5OTY1MjhjNTFhMWZhNzVhYmZmN2VmZS4uZjVmMmQ0MDJmMGQ3Njk1ZmQwOTE3
MTkxYzIwZWY4MTllM2Q4NTc5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5n
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1Nb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCisjaW5jbHVk
ZSAiU2hhZG93RnJhZ21lbnQuaCIKICNpbmNsdWRlICJTbGlkZXJUaHVtYkVsZW1lbnQuaCIKICNp
bmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDxsaW1pdHM+CkBAIC0xNDgsNyArMTQ5LDcg
QEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VEb3duRXZlbnQoTW91c2VFdmVudCog
ZXZlbnQpCiAgICAgaWYgKGV2ZW50LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9uIHx8IGV2ZW50LT50
YXJnZXQoKSAhPSBlbGVtZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChTbGlkZXJU
aHVtYkVsZW1lbnQqIHRodW1iID0gdG9TbGlkZXJUaHVtYkVsZW1lbnQoZWxlbWVudCgpLT5zaGFk
b3dSb290KCkpKQorICAgIGlmIChTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iID0gc2hhZG93U2xp
ZGVyVGh1bWIoKSkKICAgICAgICAgdGh1bWItPmRyYWdGcm9tKGV2ZW50LT5hYnNvbHV0ZUxvY2F0
aW9uKCkpOwogfQogCkBAIC0xOTYsNyArMTk3LDkgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFu
ZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiB2b2lkIFJhbmdlSW5wdXRU
eXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBlbGVtZW50KCktPnNldFNoYWRvd1Jv
b3QoU2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKSk7Cisg
ICAgUmVmUHRyPFNoYWRvd0ZyYWdtZW50PiBzaGFkb3cgPSBTaGFkb3dGcmFnbWVudDo6Y3JlYXRl
KGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk7CisgICAgc2hhZG93LT5wYXJzZXJBZGRDaGlsZChTbGlk
ZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpKTsKKyAgICBlbGVt
ZW50KCktPnNldFNoYWRvd1Jvb3Qoc2hhZG93KTsKIH0KIAogUmVuZGVyT2JqZWN0KiBSYW5nZUlu
cHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSop
IGNvbnN0CkBAIC0yNDEsNyArMjQ0LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6bWluT3JNYXhB
dHRyaWJ1dGVDaGFuZ2VkKCkKIAogdm9pZCBSYW5nZUlucHV0VHlwZTo6dmFsdWVDaGFuZ2VkKCkK
IHsKLSAgICB0b1NsaWRlclRodW1iRWxlbWVudChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSktPnNl
dFBvc2l0aW9uRnJvbVZhbHVlKCk7CisgICAgc2hhZG93U2xpZGVyVGh1bWIoKS0+c2V0UG9zaXRp
b25Gcm9tVmFsdWUoKTsKIH0KIAogU3RyaW5nIFJhbmdlSW5wdXRUeXBlOjpmYWxsYmFja1ZhbHVl
KCkKQEAgLTI2NSw0ICsyNjgsMTAgQEAgYm9vbCBSYW5nZUlucHV0VHlwZTo6c2hvdWxkUmVzcGVj
dExpc3RBdHRyaWJ1dGUoKQogICAgIHJldHVybiB0cnVlOwogfQogCitTbGlkZXJUaHVtYkVsZW1l
bnQqIFJhbmdlSW5wdXRUeXBlOjpzaGFkb3dTbGlkZXJUaHVtYigpIGNvbnN0Cit7CisgICAgU2hh
ZG93RnJhZ21lbnQqIHNoYWRvdyA9IGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpOworICAgIHJldHVy
biBzaGFkb3cgPyB0b1NsaWRlclRodW1iRWxlbWVudChzaGFkb3ctPmZpcnN0Q2hpbGQoKSkgOiAw
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRU
eXBlLmgKaW5kZXggMzc1Mjk4NTIwMmFkMjE0MWNhMDk3NTRlOTk3ZGM5YjBkYjhjYzAwNy4uNzVl
N2ExNzQ1YzZlZWNkNzM1NWY0ZDAyY2IwNzhjODhiZTlkYjQ5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UmFuZ2VJbnB1dFR5cGUuaApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NsYXNzIFNsaWRlclRodW1iRWxlbWVudDsKKwogY2xhc3MgUmFuZ2VJbnB1dFR5cGUgOiBw
dWJsaWMgSW5wdXRUeXBlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJbnB1dFR5
cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Kik7CkBAIC02Nyw2ICs2OSw4IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpOwogICAgIHZpcnR1YWwgU3RyaW5n
IHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKTsKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKTsKKworICAgIFNsaWRlclRodW1iRWxl
bWVudCogc2hhZG93U2xpZGVyVGh1bWIoKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKaW5kZXggNTlh
MTQ2NzllM2IwOWM4YTYwMjE3OTc4OTgyZTUzZWRiY2RlZWIxYS4uZjg3YmFjYzdjN2I4ODU1MjRm
ODFkYzMxZTliMmQ1YTgzOTBkZmU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9W
YWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9u
TWVzc2FnZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTaGFk
b3dGcmFnbWVudC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgogCkBAIC0xMjksMTIgKzEzMCw5IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxk
QnViYmxlVHJlZShUaW1lcjxWYWxpZGF0aW9uTWVzc2FnZT4qKQogICAgIC8vIGNvbnRhaW5zIG5v
bi1hYnNvbHV0ZSBvciBub24tZml4ZWQgcmVuZGVyZXJzIGFzIGNoaWxkcmVuLgogICAgIG1fYnVi
YmxlLT5nZXRJbmxpbmVTdHlsZURlY2woKS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlQb3NpdGlv
biwgQ1NTVmFsdWVBYnNvbHV0ZSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgLy8g
RklYTUU6IFdlIG5lZWQgYSB3YXkgdG8gaG9zdCBtdWx0aXBsZSBzaGFkb3cgcm9vdHMgaW4gYSBz
aW5nbGUgbm9kZSwgb3IKLSAgICAvLyB0byBpbmhlcml0IGFuIGV4aXN0aW5nIHNoYWRvdyB0cmVl
LgotICAgIGlmIChob3N0LT5zaGFkb3dSb290KCkpCi0gICAgICAgIGhvc3QtPnNoYWRvd1Jvb3Qo
KS0+YXBwZW5kQ2hpbGQobV9idWJibGUuZ2V0KCksIGVjKTsKLSAgICBlbHNlCi0gICAgICAgIGhv
c3QtPnNldFNoYWRvd1Jvb3QobV9idWJibGUpOworICAgIGlmICghaG9zdC0+c2hhZG93Um9vdCgp
KQorICAgICAgICBob3N0LT5zZXRTaGFkb3dSb290KFNoYWRvd0ZyYWdtZW50OjpjcmVhdGUoZG9j
KSk7CisgICAgaG9zdC0+c2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChtX2J1YmJsZS5nZXQoKSwg
ZWMpOwogCiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBjbGlwcGVyID0gRWxlbWVudFdpdGhQc2V1
ZG9JZDo6Y3JlYXRlKGRvYywgIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ctY2xpcHBl
ciIpOwogICAgIGNsaXBwZXItPmFwcGVuZENoaWxkKEVsZW1lbnRXaXRoUHNldWRvSWQ6OmNyZWF0
ZShkb2MsICItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93IiksIGVjKTsKQEAgLTE2MSwx
MiArMTU5LDggQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZShUaW1l
cjxWYWxpZGF0aW9uTWVzc2FnZT4qKQogICAgIGlmIChtX2J1YmJsZSkgewogICAgICAgICBtX2J1
YmJsZU1lc3NhZ2UgPSAwOwogICAgICAgICBIVE1MRWxlbWVudCogaG9zdCA9IHRvSFRNTEVsZW1l
bnQobV9lbGVtZW50KTsKLSAgICAgICAgaWYgKG1fYnViYmxlLT5pc1NoYWRvd1Jvb3QoKSkKLSAg
ICAgICAgICAgIGhvc3QtPnNldFNoYWRvd1Jvb3QoMCk7Ci0gICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgRXhjZXB0aW9uQ29kZSBlYzsKLSAgICAgICAgICAgIGhvc3QtPnNoYWRvd1Jvb3QoKS0+
cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0KCksIGVjKTsKLSAgICAgICAgfQorICAgICAgICBFeGNl
cHRpb25Db2RlIGVjOworICAgICAgICBob3N0LT5zaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1f
YnViYmxlLmdldCgpLCBlYyk7CiAgICAgICAgIG1fYnViYmxlID0gMDsKICAgICB9CiAgICAgbV9t
ZXNzYWdlID0gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xp
ZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCA2MzUzMjU5MzMyMjEyZGYwN2FlMWY3OGJlODc0MGJk
NDI5MzZiN2ZiLi44YTA2Y2IzM2ZiNWNiZmNhMDBmZmM4YWU2ZGZlZjU0ZDkxYzc0ZGJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAK
QEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6ZHJhZ0Zyb20oY29u
c3QgSW50UG9pbnQmIHBvaW50KQogCiB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRp
b25Gcm9tUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50KQogewotICAgIEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0hvc3QoKSk7
CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBob3N0SW5wdXQoKTsKICAgICBBU1NFUlQo
aW5wdXQpOwogCiAgICAgaWYgKCFpbnB1dC0+cmVuZGVyZXIoKSB8fCAhcmVuZGVyZXIoKSkKQEAg
LTE5OCw2ICsxOTgsMTIgQEAgdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OmRldGFjaCgpCiAgICAg
SFRNTERpdkVsZW1lbnQ6OmRldGFjaCgpOwogfQogCitIVE1MSW5wdXRFbGVtZW50KiBTbGlkZXJU
aHVtYkVsZW1lbnQ6Omhvc3RJbnB1dCgpCit7CisgICAgQVNTRVJUKHBhcmVudE5vZGUoKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihwYXJlbnROb2RlKCktPnNo
YWRvd0hvc3QoKSk7Cit9CisKIGNvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVyVGh1bWJFbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIHNsaWRlclRodW1iLCAoIi13ZWJraXQtc2xpZGVyLXRodW1iIikpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAppbmRleCA5NDE0
YWM0OGE2OTFlMDhhYWNjZDQyODU3MWJiNWVhZmEzYTlhYmQ5Li4yZmE2MGNiNWU0YjkwMGRhMWI0
ZGNiNDJlODZkYTRiY2NjNTMwZDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaApAQCAtNDEsNiArNDEsNyBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBIVE1MRWxlbWVudDsKK2NsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiBjbGFz
cyBFdmVudDsKIGNsYXNzIEZsb2F0UG9pbnQ7CiAKQEAgLTYyLDYgKzYzLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHN0YXJ0RHJhZ2dpbmcoKTsKICAgICB2b2lkIHN0b3BEcmFnZ2luZygpOwogICAg
IHZvaWQgc2V0UG9zaXRpb25Gcm9tUG9pbnQoY29uc3QgSW50UG9pbnQmKTsKKyAgICBIVE1MSW5w
dXRFbGVtZW50KiBob3N0SW5wdXQoKTsKIAogICAgIEZsb2F0UG9pbnQgbV9vZmZzZXRUb1RodW1i
OwogICAgIGJvb2wgbV9pbkRyYWdNb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggYmU2NDk0N2ZjZDhmM2E4NWY2MDRiN2Vm
ODk3OTVjMjYzZTUzMjcxOC4uM2EzOTU2OWQwOTQxYWYyNDE0Njg4MWFjY2Q5OTA4NjJlYjQ3OTYz
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1l
bnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVu
dHMuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNs
dWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTaGFk
b3dGcmFnbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ1NiwxMSArNDU3LDEx
IEBAIHZvaWQgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjphdHRhY2goKQogICAgICAgICBwYXJl
bnROb2RlKCktPnJlbmRlcmVyKCktPmFkZENoaWxkKHJlbmRlcmVyLCBzaWJsaW5nID8gc2libGlu
Zy0+cmVuZGVyZXIoKSA6IDApOwogICAgIH0gIAogICAgIENvbnRhaW5lck5vZGU6OmF0dGFjaCgp
OwotICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIE1laWRhQ29udHJvbElucHV0IGNpcmN1bXZlbnRz
IHRoZSBub3JtYWwgYXR0YWNobWVudAorICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIE1lZGlhQ29u
dHJvbElucHV0IGNpcmN1bXZlbnRzIHRoZSBub3JtYWwgYXR0YWNobWVudAogICAgIC8vIGFuZCBz
dHlsZSByZWNhbGMgY3ljbGUgYW5kIHRodXMgd2UgbmVlZCB0byBhZGQgZXh0cmEgbG9naWMgdG8g
YmUgYXdhcmUgb2YKICAgICAvLyB0aGUgc2hhZG93IERPTS4gUmVtb3ZlIHRoaXMgb25jZSBhbGwg
bWVkaWEgY29udHJvbHMgYXJlIHRyYW5zaXRpb25lZCB0byB1c2UgdGhlIHJlZ3VsYXIKICAgICAv
LyBzdHlsZSBjYWxjdWxhdGlvbi4KLSAgICBpZiAoTm9kZSogc2hhZG93Tm9kZSA9IHNoYWRvd1Jv
b3QoKSkKKyAgICBpZiAoU2hhZG93RnJhZ21lbnQqIHNoYWRvd05vZGUgPSBzaGFkb3dSb290KCkp
CiAgICAgICAgIHNoYWRvd05vZGUtPmF0dGFjaCgpOwogfQogCkBAIC00ODEsMTEgKzQ4MiwxMSBA
QCB2b2lkIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6dXBkYXRlU3R5bGUoKQogICAgIGVsc2Ug
aWYgKHJlbmRlcmVyKCkpCiAgICAgICAgIHJlbmRlcmVyKCktPnNldFN0eWxlKHN0eWxlLmdldCgp
KTsKIAotICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIE1laWRhQ29udHJvbElucHV0IGNpcmN1bXZl
bnRzIHRoZSBub3JtYWwgYXR0YWNobWVudAorICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIE1lZGlh
Q29udHJvbElucHV0IGNpcmN1bXZlbnRzIHRoZSBub3JtYWwgYXR0YWNobWVudAogICAgIC8vIGFu
ZCBzdHlsZSByZWNhbGMgY3ljbGUgYW5kIHRodXMgd2UgbmVlZCB0byBhZGQgZXh0cmEgbG9naWMg
dG8gYmUgYXdhcmUgb2YKICAgICAvLyB0aGUgc2hhZG93IERPTS4gUmVtb3ZlIHRoaXMgb25jZSBh
bGwgbWVkaWEgY29udHJvbHMgYXJlIHRyYW5zaXRpb25lZCB0byB1c2UKICAgICAvLyB0aGUgbmV3
IHNoYWRvdyBET00uCi0gICAgaWYgKE5vZGUqIHNoYWRvd05vZGUgPSBzaGFkb3dSb290KCkpCisg
ICAgaWYgKFNoYWRvd0ZyYWdtZW50KiBzaGFkb3dOb2RlID0gc2hhZG93Um9vdCgpKQogICAgICAg
ICBzaGFkb3dOb2RlLT5yZWNhbGNTdHlsZShOb2RlOjpGb3JjZSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKaW5kZXggMTY2MWI3YTJjNTU2Nzk3ZjI0YjU1
NzYxYWYyM2JhOWU2NjUwZGE3ZC4uNDg1NGE2NTZhNjkwZjJiOWYyZjYzMmNlMjlhN2Q2ZWU5ZWMx
Yjk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKQEAgLTM3
LDYgKzM3LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclZp
ZXcuaCIKICNpbmNsdWRlICJTaGFkb3dFbGVtZW50LmgiCisjaW5jbHVkZSAiU2hhZG93RnJhZ21l
bnQuaCIKICNpbmNsdWRlICJTbGlkZXJUaHVtYkVsZW1lbnQuaCIKICNpbmNsdWRlICJTdGVwUmFu
Z2UuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtMTAxLDcgKzEwMiw3IEBAIHZv
aWQgUmVuZGVyU2xpZGVyOjpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCiAKIEludFJl
Y3QgUmVuZGVyU2xpZGVyOjp0aHVtYlJlY3QoKQogewotICAgIFNsaWRlclRodW1iRWxlbWVudCog
dGh1bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJFbGVtZW50KCk7CisgICAgU2xpZGVyVGh1bWJFbGVt
ZW50KiB0aHVtYkVsZW1lbnQgPSBzaGFkb3dTbGlkZXJUaHVtYigpOwogICAgIGlmICghdGh1bWJF
bGVtZW50KQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwogCkBAIC0xMjgsNyArMTI5LDcgQEAg
dm9pZCBSZW5kZXJTbGlkZXI6OmxheW91dCgpCiB7CiAgICAgQVNTRVJUKG5lZWRzTGF5b3V0KCkp
OwogCi0gICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1lbnQgPSBzbGlkZXJUaHVtYkVs
ZW1lbnQoKTsKKyAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iRWxlbWVudCA9IHNoYWRvd1Ns
aWRlclRodW1iKCk7CiAgICAgUmVuZGVyQm94KiB0aHVtYiA9IHRodW1iRWxlbWVudCA/IHRvUmVu
ZGVyQm94KHRodW1iRWxlbWVudC0+cmVuZGVyZXIoKSkgOiAwOwogCiAgICAgSW50U2l6ZSBiYXNl
U2l6ZShib3JkZXJBbmRQYWRkaW5nV2lkdGgoKSwgYm9yZGVyQW5kUGFkZGluZ0hlaWdodCgpKTsK
QEAgLTE3NiwxNCArMTc3LDE0IEBAIHZvaWQgUmVuZGVyU2xpZGVyOjpsYXlvdXQoKQogICAgIHNl
dE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAotU2xpZGVyVGh1bWJFbGVtZW50KiBSZW5kZXJTbGlk
ZXI6OnNsaWRlclRodW1iRWxlbWVudCgpIGNvbnN0CitTbGlkZXJUaHVtYkVsZW1lbnQqIFJlbmRl
clNsaWRlcjo6c2hhZG93U2xpZGVyVGh1bWIoKSBjb25zdAogewotICAgIHJldHVybiB0b1NsaWRl
clRodW1iRWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKS0+c2hhZG93Um9vdCgp
KTsKKyAgICByZXR1cm4gdG9TbGlkZXJUaHVtYkVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+
KG5vZGUoKSktPnNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKTsKIH0KIAogYm9vbCBSZW5kZXJT
bGlkZXI6OmluRHJhZ01vZGUoKSBjb25zdAogewotICAgIFNsaWRlclRodW1iRWxlbWVudCogdGh1
bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJFbGVtZW50KCk7CisgICAgU2xpZGVyVGh1bWJFbGVtZW50
KiB0aHVtYkVsZW1lbnQgPSBzaGFkb3dTbGlkZXJUaHVtYigpOwogICAgIHJldHVybiB0aHVtYkVs
ZW1lbnQgJiYgdGh1bWJFbGVtZW50LT5pbkRyYWdNb2RlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbGlkZXIuaAppbmRleCAwMTYyYjcxMDdiYWQ1ZWU2YzUzMmQ1NTliY2U1
NTQ0MTBjOTBlMTE3Li40ZTE3ZjMwZDhhODExZDE3ZDNlMjg4NDdmMjdmYjI5ZWIzNjVlNTlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCkBAIC00Niw4ICs0Niw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwogCiAg
ICAgICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5LCB0aGUgbG9naWMgb2YgbWFuaXB1bGF0aW5nIHNs
aWRlciB0aHVtYiBzaG91bGQgbW92ZSB0bwotICAgICAgICAvLyBTbGlkZXJUaHVtYkVsZW1lbnQg
YW5kIGFjY2Vzc2luZyBzbGlkZXJUaHVtYkVsZW1lbnQgc2hvdWxkIG5vdCBiZSBuZWNlc3Nhcnkg
aW4gdGhpcyBjbGFzcy4KLSAgICAgICAgU2xpZGVyVGh1bWJFbGVtZW50KiBzbGlkZXJUaHVtYkVs
ZW1lbnQoKSBjb25zdDsKKyAgICAgICAgLy8gU2xpZGVyVGh1bWJFbGVtZW50IGFuZCBhY2Nlc3Np
bmcgc2hhZG93U2xpZGVyVGh1bWIgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnkgaW4gdGhpcyBjbGFz
cy4KKyAgICAgICAgU2xpZGVyVGh1bWJFbGVtZW50KiBzaGFkb3dTbGlkZXJUaHVtYigpIGNvbnN0
OwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFn
YXRpb24oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tIGIvU291cmNlL1dlYktpdC9tYWMv
RE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KaW5kZXggMjBlOWFjZTUyNmQ5OTMwNjU3Mzk4NTU2OTkz
ZjMwY2IzNDRiNWI2Zi4uZGVlNDVjOGRiNWQwNjBmZDE1NjM0MTU3Y2Q1ODk0OTdiNTk1YzY2MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvRE9NL1dlYkRPTU9wZXJhdGlvbnMubW0KQEAgLTM5LDEzICsz
OSwxMyBAQAogI2ltcG9ydCAiV2ViS2l0TlNTdHJpbmdFeHRyYXMuaCIKICNpbXBvcnQgPEphdmFT
Y3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnQuaD4KLSNpbXBv
cnQgPFdlYkNvcmUvRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MSW5wdXRFbGVtZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hUTUxQYXJzZXJJZGlvbXMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvSlNFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KICNp
bXBvcnQgPFdlYkNvcmUvbWFya3VwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclRyZWVBc1Rl
eHQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2hhZG93RnJhZ21lbnQuaD4KICNpbXBvcnQgPFdlYktp
dC9ET01FeHRlbnNpb25zLmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NSFRNTC5oPgogI2ltcG9ydCA8
cnVudGltZS9KU0xvY2suaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGUuY3BwCmluZGV4IGJlZjNmOTA5NGFhYWMyNmRkYzNkM2NiYjIwNGE3NTU2YjkwYjY3ZjEu
LjI1NzlmODllYTcxMTlkNzY1MzYzYTI4MDkyMTA1NDE5NWYyMTAxZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxl
Tm9kZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcApAQCAtNDAsNiArNDAsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNOb2RlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dGcmFn
bWVudC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88572</attachid>
            <date>2011-04-06 22:12:22 -0700</date>
            <delta_ts>2011-04-07 11:44:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57813-20110406221221.patch</filename>
            <type>text/plain</type>
            <size>56193</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMxMzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNzZhOTcyYzVhMWVhODk4YThkZDQ2
MzVlZGMyZmJiYmYyYmRiMWZkLi41NzVjNDI4Yzg3ZWM4NWQ2Zjk5Y2YyNTE4NGMwZDU5ZTFmNTJm
MjkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQtMDYgIERvbWluaWMgQ29vbmV5ICA8
ZG9taW5pY2NAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBMZXQgc2hhZG93IERPTSBoYXZlIGEgbGlzdCBvZiBub2RlcyBhdCB0aGUg
dG9wIGxldmVsIG9mIGEgc2hhZG93LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTc4MTMKKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxLZXlnZW5FbGVt
ZW50L2tleWdlbi1leHBlY3RlZC50eHQ6IHNoYWRvdyBET00gY2hhbmdlZAorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sOiBhZGRlZCBhc3NlcnRpb24gb24g
c2hhZG93CisKIDIwMTEtMDQtMDYgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCB1cGRhdGUgQ2hyb21pdW0gZXhwZWN0YXRpb25zIGZvciBm
YWlsaW5nIHRlc3QgZnJvbSByODMwNzUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTEtleWdlbkVsZW1lbnQva2V5Z2VuLWV4cGVjdGVkLnR4dAppbmRleCA3NDVmMDE2
N2Y2MzNiYmI1NjE3MDQxYWY1NzA5OTJiMWRjOTJiNTkzLi5hOGIyZWU1OTQzMmNkZmEwODIwNjZm
MjA0NDVmNGQxZWE2YTQwMGMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
S2V5Z2VuRWxlbWVudC9rZXlnZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi1leHBlY3RlZC50eHQKQEAgLTIsOCArMiw5IEBA
CiBUaGlzIHRlc3RzIHRoZSBrZXlnZW4gZWxlbWVudC4KIAogUEFTUyBrZXlnZW4ub3B0aW9ucyBp
cyB1bmRlZmluZWQKLVBBU1Mgc2hhZG93LnRhZ05hbWUgaXMgIlNFTEVDVCIKLVBBU1MgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChzaGFkb3cpIGlzIG51bGwKK1BBU1Mgc2hhZG93LmZp
cnN0Q2hpbGQudGFnTmFtZSBpcyAiU0VMRUNUIgorUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5z
aGFkb3dSb290KHNoYWRvdykgaXMgdW5kZWZpbmVkCitQQVNTIGxheW91dFRlc3RDb250cm9sbGVy
LnNoYWRvd1Jvb3Qoc2hhZG93LmZpcnN0Q2hpbGQpIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTEtleWdlbkVsZW1lbnQva2V5Z2VuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4uaHRtbAppbmRleCBlZDljZGNhY2VmZWZmZjM5
ZWMyZGNhMjQ4MzI3YzQ3ZTBiYjk0MThjLi5jYjg4MzE2MTVlNTY5ZWQ4MjZkZjY3OWVlODE0Mzk2
N2UzODlhYTVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxl
bWVudC9rZXlnZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxl
bWVudC9rZXlnZW4uaHRtbApAQCAtMTUsOCArMTUsOSBAQCBzaG91bGRCZSgna2V5Z2VuLm9wdGlv
bnMnLCAndW5kZWZpbmVkJyk7ICAvLyBrZXlnZW4gaXMgbm90IGEgc2VsZWN0CiAKIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgdmFyIHNoYWRvdyA9IGxheW91dFRlc3RDb250
cm9sbGVyLnNoYWRvd1Jvb3Qoa2V5Z2VuKTsKLSAgc2hvdWxkQmUoJ3NoYWRvdy50YWdOYW1lJywg
JyJTRUxFQ1QiJyk7Ci0gIHNob3VsZEJlKCdsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290
KHNoYWRvdyknLCAnbnVsbCcpOworICBzaG91bGRCZSgnc2hhZG93LmZpcnN0Q2hpbGQudGFnTmFt
ZScsICciU0VMRUNUIicpOworICBzaG91bGRCZSgnbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93
Um9vdChzaGFkb3cpJywgJ3VuZGVmaW5lZCcpOworICBzaG91bGRCZSgnbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2hhZG93Um9vdChzaGFkb3cuZmlyc3RDaGlsZCknLCAnbnVsbCcpOwogfQogCiB2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Fu
ZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDkyODgxNzc5M2FkNDAz
NWExMzYzN2FmMjcxZjZiNmVjMGZhZGNjZDQuLmVkNjNlMmJjN2I5ODcwNTJkNDA3MjlkODAyNzNk
NTNkMTY5MGZiODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtMTc1LDYgKzE3NSw3IEBAIExPQ0FMX1NSQ19G
SUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCWRvbS9TY3JpcHRSdW5uZXIuY3BwIFwKIAlk
b20vU2VsZWN0RWxlbWVudC5jcHAgXAogCWRvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCisJZG9t
L1NoYWRvd1Jvb3QuY3BwIFwKIAlkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXAogCWRvbS9TdGF0
aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIFwKIAlkb20vU3RhdGljTm9kZUxpc3QuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBkM2U3MjY1YmRhZDFkMDlkZDE1Yjg2YTFlOTNjZDIyNDg1MWU3MTA0Li45NDE2NmE0
ZTQwNDZkZDBkMmM3MmFmNDVhNWU0ODI1NDI3NDE4ZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
ODUgQEAKKzIwMTEtMDQtMDYgIERvbWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMZXQgc2hh
ZG93IERPTSBoYXZlIGEgbGlzdCBvZiBub2RlcyBhdCB0aGUgdG9wIGxldmVsIG9mIGEgc2hhZG93
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc4MTMK
KworICAgICAgICBBZGRzIFNoYWRvd1Jvb3QsIGEgbGlzdCBvZiBub2RlcywgdG8gYmUgYSBwYXJl
bnQgZm9yIHRvcC1sZXZlbAorICAgICAgICBzaGFkb3cgY2hpbGRyZW4uIEZvcndhcmRzIHJlbmRl
cmluZyB0aHJvdWdoIHRoZSByb290IGFuZCBpbnRvIHRoZQorICAgICAgICBob3N0J3MgcmVuZGVy
ZXIuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBvZiBlbGVtZW50cyB0aGF0
IHVzZSB0aGlzIHN0eWxlIG9mIHNoYWRvdy4KKworICAgICAgICAqIEFuZHJvaWQubWs6IGFkZCBT
aGFkb3dSb290CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5l
eHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjppbml0Rm9yU3R5
bGVSZXNvbHZlKTogcHJveHkgc3R5bGUgdG8gaG9zdAorICAgICAgICAqIGRvbS9Db250YWluZXJO
b2RlLmNwcDogdG9wLWxldmVsICpzaGFkb3cqLWNvbm5lY3RlZCBET00gaXMgYWxpdmUKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9k
ZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudEZyYWdtZW50LmNwcDogU2hh
ZG93Um9vdCBpcyBhIGtpbmQgb2YgRG9jdW1lbnRGcmFnbWVudAorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRGcmFnbWVudDo6RG9jdW1lbnRGcmFnbWVudCk6CisgICAgICAgICogZG9tL0RvY3Vt
ZW50RnJhZ21lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpyZWNhbGNTdHlsZSk6IGxvb2sgdGhydSBTaGFkb3dSb290IHRvIGhvc3Qg
Zm9yIHN0eWxlCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzaGFkb3dSb290KTogc2hvdWxk
IGJlIGNvbnN0CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRTaGFkb3dSb290KTogb25s
eSBhY2NlcHQgU2hhZG93Um9vdCBpbnN0YW5jZXMgbm93CisgICAgICAgICogZG9tL0VsZW1lbnQu
aDogc2hhZG93Um9vdCBhY2Nlc3NvciBzaG91bGQgYmUgY29uc3QKKyAgICAgICAgKiBkb20vRWxl
bWVudFJhcmVEYXRhLmg6IGFsbCBzaGFkb3cgcm9vdHMgYXJlIFNoYWRvd1Jvb3QgaW5zdGFuY2Vz
CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cGFyZW50
Tm9kZUZvclJlbmRlcmluZyk6IGFkZGVkCisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpjcmVhdGVS
ZW5kZXJlckFuZFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNyZWF0ZVJlbmRlcmVy
SWZOZWVkZWQpOiBmb3J3YXJkIHRvcC1sZXZlbCBzaGFkb3cgcmVuZGVyZXJzCisgICAgICAgICog
ZG9tL05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmlzU2hhZG93Qm91bmRhcnkpOgor
ICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
aGFkb3dSb290OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6U2hhZG93
Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpyZWNhbGNTdHlsZSk6IGZvcndh
cmQgcmVjYWxjIHRvIGNoaWxkcmVuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojppc1NoYWRvd0JvdW5kYXJ5KToKKyAgICAg
ICAgKiBodG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcDogdXNlIFNoYWRvd1Jvb3QKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50OjpIVE1MS2V5Z2VuRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50OjpyZXNldCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MS2V5Z2VuRWxlbWVudDo6c2hhZG93U2VsZWN0KToKKyAgICAgICAgKiBodG1sL0hUTUxL
ZXlnZW5FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcDogdXNl
IFNoYWRvd1Jvb3QKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZVNo
YWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHA6IHVz
ZSBTaGFkb3dSb290CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVh
dGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDogdXNl
IFNoYWRvd1Jvb3QKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpoYW5kbGVNb3Vz
ZURvd25FdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6Y3JlYXRlU2hh
ZG93U3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6dmFsdWVDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpzaGFkb3dTbGlkZXJUaHVt
Yik6CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvVmFs
aWRhdGlvbk1lc3NhZ2UuY3BwOiB1c2UgU2hhZG93Um9vdAorICAgICAgICAoV2ViQ29yZTo6VmFs
aWRhdGlvbk1lc3NhZ2U6OmJ1aWxkQnViYmxlVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpWYWxp
ZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxl
bWVudDo6c2V0UG9zaXRpb25Gcm9tUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyVGh1
bWJFbGVtZW50Ojpob3N0SW5wdXQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6
IHVzZSBTaGFkb3dSb290CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1l
bnQ6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6
OnVwZGF0ZVN0eWxlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6dGh1bWJSZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNsaWRlcjo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRl
cjo6c2hhZG93U2xpZGVyVGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpp
bkRyYWdNb2RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmg6CisKIDIwMTEt
MDQtMDYgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDE3MDcyZjg1MzRm
YjdmZGE4NGM5ZTMzNzZhZjZmZDAwNjMxMDk5YWQuLjI2MmI4ZjYwNjg4Mzk5OTU2NmU2ZTg1NzNm
YzYwYzM1ZjRkM2JiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMzMxLDYgKzEzMzEsOCBA
QCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50
LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL1NlbGVjdG9yTm9kZUxpc3QuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9TcGFjZVNwbGl0U3RyaW5nLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNIYXNoU2V0
Tm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggODc5ZGEyNWRlNmYwZGYxZjFj
MzUzY2I3OTNhYTJhZjQ3MzA3ZDZhZi4uNmMwNzZiM2Y0MTVhMzk5NGJlZDZlZWVlYzQ4ZDgwMzJk
Nzc0MzUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTc5OSw3ICs3OTksNiBAQCBfX1pON1dl
YkNvcmU2V2lkZ2V0RDJFdgogX19aTjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRQogX19a
TjdXZWJDb3JlN0NvbnNvbGUyMXNob3VsZFByaW50RXhjZXB0aW9uc0V2CiBfX1pON1dlYkNvcmU3
Q29uc29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKLV9fWk43V2ViQ29yZTdFbGVtZW50
MTBzaGFkb3dSb290RXYKIF9fWk43V2ViQ29yZTdJbnRSZWN0NXNjYWxlRWYKIF9fWk43V2ViQ29y
ZTdJbnRSZWN0NXVuaXRlRVJLUzBfCiBfX1pON1dlYkNvcmU3SW50UmVjdDlpbnRlcnNlY3RFUktT
MF8KQEAgLTEyNTEsNiArMTI1MCw3IEBAIF9fWk5LN1dlYkNvcmU2V2lkZ2V0MjVjb252ZXJ0VG9D
b250YWluaW5nV2luZG93RVJLTlNfN0ludFJlY3RFCiBfX1pOSzdXZWJDb3JlNldpZGdldDI1Y29u
dmVydFRvQ29udGFpbmluZ1dpbmRvd0VSS05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNvcmU2V2lk
Z2V0OWZyYW1lUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQxMHNjcmVlblJlY3RFdgorX19a
Tks3V2ViQ29yZTdFbGVtZW50MTBzaGFkb3dSb290RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDEy
Z2V0QXR0cmlidXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRQogX19aTks3V2ViQ29yZTdFbGVtZW50
MTlib3VuZHNJbldpbmRvd1NwYWNlRXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDlpbm5lclRleHRF
dgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IGU5ZjdmMmFmY2RiODFjYmY4Y2RlYWIyMGNhYWM3MDI3NDA1
NWUxNGEuLmQyYTg4OTMxZDMxODAxYjU0YjA4YzMyNzQ2NTRiMGFkZDgwNGFiM2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTU0NSw2ICs1NDUsNyBAQAogICAgICAgICAgICAgJ2RvbS9SZWdpc3RlcmVk
RXZlbnRMaXN0ZW5lci5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0UnVubmVyLmgnLAorICAgICAgICAgICAgJ2Rv
bS9TaGFkb3dSb290LmgnLAogICAgICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgnLAog
ICAgICAgICAgICAgJ2RvbS9TdHlsZWRFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9UZXh0
LmgnLApAQCAtMjUyMiw2ICsyNTIzLDggQEAKICAgICAgICAgICAgICdkb20vU2VsZWN0RWxlbWVu
dC5oJywKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAnLAogICAgICAgICAg
ICAgJ2RvbS9TZWxlY3Rvck5vZGVMaXN0LmgnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290
LmNwcCcsCisgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuaCcsCiAgICAgICAgICAgICAnZG9t
L1NwYWNlU3BsaXRTdHJpbmcuY3BwJywKICAgICAgICAgICAgICdkb20vU3RhdGljSGFzaFNldE5v
ZGVMaXN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5oJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8KaW5kZXggZDQyMjFmZjlkZmQzYTk4NGEwZWRkOTYxNDI3NzliNzBkOGZjN2Mw
ZS4uYzEyMjk3NmE3NjY0NDIyNTMzMDdiN2U4ZTBlODA5ODhkZDE3Y2ZjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KQEAgLTUzNCw2ICs1MzQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vU2NyaXB0UnVubmVy
LmNwcCBcCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuY3BwIFwKICAgICBkb20vU2VsZWN0b3JOb2Rl
TGlzdC5jcHAgXAorICAgIGRvbS9TaGFkb3dSb290LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRT
dHJpbmcuY3BwIFwKICAgICBkb20vU3RhdGljTm9kZUxpc3QuY3BwIFwKICAgICBkb20vU3R5bGVk
RWxlbWVudC5jcHAgXApAQCAtMTQ5Nyw2ICsxNDk4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBcCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuaCBcCiAg
ICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuaCBcCisgICAgZG9tL1NoYWRvd1Jvb3QuaCBcCiAgICAg
ZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmggXAogICAg
IGRvbS9TdHlsZWRFbGVtZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagppbmRleCBhYjIxMTc2ZDAyNzA1ZjQxZDgxZTYxZjQ3Njk2NjVmNTJjZDk4
ZWZlLi4wZGYwNjhhOTExMDAwNDM4ZWM2NDU3YmQ1NDExNGFkNzNjYWVlZTQ3IDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDY0NDIsNiArNDY0
NDIsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXFNoYWRvd1Jvb3QuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJ
CQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5h
bWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+
CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9
IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJ
CS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJ
CQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1
cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxG
aWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2hhZG93Um9vdC5oIgorCQkJCT4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU3BhY2VTcGxpdFN0cmlu
Zy5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEwOGQzYzYzOGNhN2Y1
ZDY0OTJhYzYxZGYzOWMyODllZDkwZWY4NjUuLjc5YWI4ZDU1NTQzZmZkNjllZmYwZjRlOGU0OTlk
M2M3ZDFmZDRiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTMxOTYsNiArMzE5Niw4IEBACiAJCUE2MjJBOEZDMTIyQzQ0QTYw
MEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY2MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5k
aW5nU2VjdXJpdHlCYXNlLmNwcCAqLzsgfTsKIAkJQTYyMkE4RkQxMjJDNDRBNjAwQTc4NUIzIC8q
IEJpbmRpbmdTZWN1cml0eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE2MjJBOEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlC
YXNlLmggKi87IH07CiAJCUE2MjJBOEZGMTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGlu
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4
RjkxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi87IH07CisJCUE2RDE2OTYy
MTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFk
b3dSb290LmNwcCAqLzsgfTsKKwkJQTZEMTY5NjQxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Jv
b3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2
OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxNTFCRDgxMkYxNTU4RjAwNUEwRjY0IC8q
IFRleHRDaGVja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzE1MUJENzEyRjE1NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE1
RTY1MjEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUwMTM0QkJCRUMw
MEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwICovOyB9OwogCQlBNzE1RTY1MzEz
NEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1RTY1MTEzNEJCQkVDMDBEOEU3MTMg
LyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggKi87IH07CkBAIC05NzI0LDYgKzk3MjYsOCBAQAog
CQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmNw
cDsgcGF0aCA9IGdlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE2MjJBOEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJp
dHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0
eUJhc2UuaDsgcGF0aCA9IGdlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNjIyQThGOTEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0Jp
bmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gR2VuZXJpY0JpbmRpbmcu
aDsgcGF0aCA9IGdlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTZEMTY5NjExMzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93Um9vdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dS
b290LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1Jvb3QuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxNTFCRDcxMkYxNTU4RjAwNUEwRjY0IC8qIFRl
eHRDaGVja2VyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRD
aGVja2VyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTVFNjUwMTM0
QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxNUU2NTExMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dy
ZXNzU2hhZG93RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9n
cmVzc1NoYWRvd0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NDQ3
LDYgKzE5NDUxLDggQEAKIAkJCQkwODRBRUJFMzBGQjUwNUZBMDAzODQ4M0UgLyogU2VsZWN0RWxl
bWVudC5oICovLAogCQkJCUJDN0ZBNjgwMEQxRjE2NzkwMERCMjJBOSAvKiBTZWxlY3Rvck5vZGVM
aXN0LmNwcCAqLywKIAkJCQlCQzdGQTY3RjBEMUYxNjc5MDBEQjIyQTkgLyogU2VsZWN0b3JOb2Rl
TGlzdC5oICovLAorCQkJCUE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNw
cCAqLywKKwkJCQlBNkQxNjk2MzEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oICovLAog
CQkJCUQwMUEyN0FCMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmNwcCAqLywK
IAkJCQlEMDFBMjdBQzEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oICovLAog
CQkJCUNFQTM5NDlBMTFENDVDREEwMDMwOTRDRiAvKiBTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3Bw
ICovLApAQCAtMTk5MTMsNiArMTk5MTksNyBAQAogCQkJCUJDRDUzMzY0MEVENjg0ODkwMDg4NzQ2
OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNC
MTZDMjgwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzRjE5OTUwMDgyNDVFNTkwMDFFOUFCQyAvKiBDYWNoZVBvbGljeS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQjFENUVDQjUxMzRCNThEQTAwODdDNzhGIC8qIENhbGxiYWNrRnVuY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTZFNEU5MUFEMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52
YXNDb250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0ODRGQzIxMDJDRjIz
QzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTQ4NEZD
NTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MDA3NCw2ICsyMDA4MSw4IEBACiAJCQkJQThDMjI4QTExMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29k
ZWREYXRhRG9jdW1lbnRQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNjJBNDUxMTAxMTQ1
QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MUEzRDU4RjEwMUMxNTJEMDAzMTZEMDcgLyogRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggaW4g
SGVhZGVycyAqLywKKwkJCQlGRDA2REZBNjEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDA2REZBNjEzNEE0REVGMDA2
RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0MzNkVCOTEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTY3RUJGNjEwMjk2MkJBMDAzRDI1MkEgLyogRGVmYXVs
dFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDJDMTJC
MDI2NzYwMEMxQTM1OSAvKiBEZWxheURTUEtlcm5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTA4
OSw2ICsyMTA5OCw3IEBACiAJCQkJOTNGMTk5RTUwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxDYW52
YXNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOERGM0ZEMDA5N0ZBMEZDMDA1Mjk4MUIg
LyogSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODY1MTIyODgzRTkw
MEI4MUZGOCAvKiBIVE1MQ29uc3RydWN0aW9uU2l0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFB
MzE2NjMxMzRCQ0FFODAwN0M5QTRGIC8qIEhUTUxDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNzdDREJDMEZFRkYxNDIwMDcwODg3QiAvKiBIVE1MRGF0YUdyaWRDZWxsRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3N0NCODcwRkVCRjVBRjAwNzA4ODdCIC8qIEhUTUxEYXRh
R3JpZENvbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjEyQTFGMEZFODMzMzIwMEVD
MzcwOCAvKiBIVE1MRGF0YUdyaWRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIxNTgwLDYg
KzIxNTkwLDggQEAKIAkJCQk5MDAxNzg4MTEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFy
ZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RUJGMEU3NzEyQTk4Njg4MDBEQjE3
MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc3QTE3QUE3MTJG
MjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLywK
KwkJCQlGREY2QkFGOTEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9u
RXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUZERjZCQUY5MTM0QTRDOTgwMDgyMjkyMCAvKiBK
U09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyNkU4
QUUwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTT3B0aW9uQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBMEQ1NzQxMEE1Qzc4NjcwMDdFREQ0QyAvKiBKU092ZXJmbG93RXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxMjg0QkIxMTA0NDlGRkEwMEVBRUI1MiAvKiBKU1BhZ2VUcmFuc2l0
aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjE5MzQsNiArMjE5NDYsMTAgQEAKIAkJCQk5
MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNkVCRjBFNDkxMkE4OTI2MTAwREIxNzA5IC8qIE9FU1RleHR1cmVGbG9h
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzdBMTdBNzIxMkYyODE4MjAwNEUwMkY2IC8qIE9FU1Zl
cnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QTEzNEE0OUVGMDA4
RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlGREEzRTk1QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QzEzNEE0
OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNEVBRjRBRjEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTA4NzI4MTU2MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODcyODE1ODBGMjZCOUI2MDBBRkM1OTYgLyogT3B0
aW9uR3JvdXBFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIyMjUxLDYgKzIyMjY3LDcgQEAK
IAkJCQkwRjNERDQ1MDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM1RUI4QzQwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE3RjMzOEE0MTFDMEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKKwkJCQlBNkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9v
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRTgwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRv
d1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkFGRkM5NDBEMDBBNURGMDAzMDA3NEQgLyog
U2hhcGVBcmFiaWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNEE5NTRFMEI0RURDQ0IwMDJEOEMz
QyAvKiBTaGFyZWRCdWZmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjI3MTksNiArMjI3MzYsNyBA
QAogCQkJCTQ5NEJENzk1MEY1NUM4RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2ludC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzFDMEZGMjUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25F
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDRjMzMkYwRjJCOUEyNTAwNEI2Nzk1IC8qIFdl
YkxheWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUEzMTYyRDEzNEJDMzJEMDA3QzlBNEYgLyog
V2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0FGMzQ4
MTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTU2OUQxQjBEN0UyQjgyMDA3QzM5ODMgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQ0FGMzQ4MzBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjgzMCwxMyArMjI4NDgsNiBAQAogCQkJCTkzRjE5
OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29t
cGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlGREEzRTk1QzEzNEE0OUVGMDA4RDRC
NUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQlG
REY2QkFGOTEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQu
aCBpbiBIZWFkZXJzICovLAotCQkJCUZEMDZERkE2MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0
QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQTMxNjJEMTM0QkMz
MkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICov
LAotCQkJCUUxQTMxNjYzMTM0QkNBRTgwMDdDOUE0RiAvKiBIVE1MQ29udmVydGVyLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlCMUQ1RUNCNTEzNEI1OERBMDA4N0M3OEYgLyogQ2FsbGJhY2tGdW5jdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMzI0OSw2ICsyMzI2MCw3IEBACiAJCQkJRDBEMTQxQjIx
MkIyQkY1MjAwRTM5NjIwIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQ0IxNkMyMzA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDQjE2QzI3MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRYU0xTdHls
ZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUIxODI3NDkzMTM0Q0E0QzEwMEI5OEMyRCAv
KiBDYWxsYmFja0Z1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNEU5MUFDMTBGN0ZC
MzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0OTQ4NEZDMTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDk0ODRGQzQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BhdHRlcm4u
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMzM4Miw2ICsyMzM5NCw4IEBACiAJCQkJQThDMjI4QTIx
MUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNDE2MkE0NTAxMDExNDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckNv
bnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFBM0Q1OEUxMDFDMTUyRDAwMzE2RDA3IC8q
IERlZGljYXRlZFdvcmtlclRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRDA2REZBNTEz
NEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUZEMDZERkE1MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0
aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDMzZFQjgxMzQyQUEzRjAwNEJF
RUY3IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0MTY3RUJGNTEwMjk2MkJBMDAzRDI1MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRv
cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwMkIxMkIwMjY3NjAwQzFBMzU5IC8qIERl
bGF5RFNQS2VybmVsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQ0NDksNiArMjQ0NjMsOCBAQAog
CQkJCTkwMDE3ODgwMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkVCRjBFNzYxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VT
VGV4dHVyZUZsb2F0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3QTE3QUE2MTJGMjhCMkEwMDRF
MDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZE
RjZCQUY4MTM0QTRDOTgwMDgyMjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGREY2QkFGODEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZs
aW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgyNkVDNDgw
QTFCMENCRTAwQ0QxQkI2IC8qIEpTT3B0aW9uQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMUEwRDU3NDAwQTVDNzg2NzAwN0VERDRDIC8qIEpTT3ZlcmZsb3dFdmVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlFMTI4NEJCMjEwNDQ5RkZBMDBFQUVCNTIgLyogSlNQYWdlVHJhbnNp
dGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQ4MTUsNiArMjQ4MzEsMTAgQEAKIAkJ
CQk5MDAxNzc0MDEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk2RUJGMEU0ODEyQTg5MjYxMDBEQjE3MDkgLyogT0VTVGV4dHVy
ZUZsb2F0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3QTE3QTcxMTJGMjgxODIwMDRFMDJGNiAv
KiBPRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGREEzRTk1OTEz
NEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUZEQTNFOTU5MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9Db21w
bGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRkRBM0U5NUIxMzRBNDlFRjAwOEQ0
QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGREEzRTk1QjEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0RUFGNEFFMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVu
VHlwZVNhbml0aXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODcyODE1NTBGMjZCOUI2MDBB
RkM1OTYgLyogT3B0aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODcyODE1NzBG
MjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjUwNjUsNiArMjUwODUsNyBAQAogCQkJCTBGM0RENDRGMTJGNUVBMUIwMDBEOTE5MCAvKiBT
aGFkb3dCbHVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUVCOEMzMEU4MjAzMUIwMEIyNTk2
NSAvKiBTaGFkb3dEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RjMzOEEzMTFDMEVGQ0Ew
MEEzMjBBNyAvKiBTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE2RDE2OTYy
MTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4
MEU2Q0Y0MEExOTg5Q0EwMDdGQjhDNSAvKiBTaGFkb3dWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlCMkFGRkM5MzBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTFBNEE5NTREMEI0RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0yNTQxOCw2ICsyNTQzOSw3IEBACiAJCQkJOTNGMUQ1QkExMkQ1MzJD
NDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMx
QzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZDRjMzMkUwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJRTFBMzE2MkUxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmli
dXRlZFN0cmluZ0V4dHJhcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFDQUYzNDgyMEE2QzQwNTIw
MEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MThBMzRD
MTEwMjZDODMxMDAxQjY4OTYgLyogV2ViU29ja2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
MEQ0QTRFMTAzMTc3QTIwMDQ5RUE1NCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMjU1MjAsMTIgKzI1NTQyLDYgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlB
QkMgLyogWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUx
MkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCUZEQTNFOTU5MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9Db21wbGV0
aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkRBM0U5NUIxMzRBNDlFRjAwOEQ0QjVB
IC8qIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlG
REY2QkFGODEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkQwNkRGQTUxMzRBNERFRjAwNkY1RDdEIC8qIERlZmF1
bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFMUEzMTYyRTEz
NEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLm1tIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQjE4Mjc0OTMxMzRDQTRDMTAwQjk4QzJEIC8qIENhbGxiYWNrRnVuY3Rpb24u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAK
aW5kZXggODZmM2JhMzBiZWQyZWQ5NGEzYmI0YzFiMGYyYzYyN2MwYzA5MjBhNy4uNWI0NTAzYTRh
NGM5MDJmNDZlY2IwNDM4NTU0YTM4NGMxZWE2NmZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcApAQCAtODkzLDcgKzg5Myw3IEBAIGlubGluZSB2b2lkIENTU1N0eWxl
U2VsZWN0b3I6OmluaXRGb3JTdHlsZVJlc29sdmUoRWxlbWVudCogZSwgUmVuZGVyU3R5bGUqIHBh
cmVuCiB7CiAgICAgbV9jaGVja2VyLm1fcHNldWRvU3R5bGUgPSBwc2V1ZG9JRDsKIAotICAgIG1f
cGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnRPckhvc3ROb2RlKCkgOiAwOworICAgIG1fcGFyZW50
Tm9kZSA9IGUgPyBlLT5wYXJlbnROb2RlRm9yUmVuZGVyaW5nKCkgOiAwOwogCiAgICAgaWYgKHBh
cmVudFN0eWxlKQogICAgICAgICBtX3BhcmVudFN0eWxlID0gcGFyZW50U3R5bGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKaW5kZXggZWEwMzg0OGFhYWZiY2QwMDBmNmYwOTAxZmU0
NWM3ZDZlMjFhZGJiMy4uNTY1OWY5ZWQ0ODRmNjg1ZWU2MmU3ODBmYjNkY2EyNzJiMDlkOTNiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIGJv
b2wgQ29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQs
IE5vZGUqIHJlZkNoaWxkLCBFeGNlCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIG5vZGUgaXMg
bm90ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBkZWxldGVkIGFzIGEg
c2lkZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCi0gICAgQVNTRVJUKHJlZkNv
dW50KCkgfHwgcGFyZW50Tm9kZSgpKTsKKyAgICBBU1NFUlQocmVmQ291bnQoKSB8fCBwYXJlbnRP
ckhvc3ROb2RlKCkpOwogCiAgICAgZWMgPSAwOwogCkBAIC0yNDQsNyArMjQ0LDcgQEAgYm9vbCBD
b250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9k
ZSogb2xkQ2hpbGQsIEV4Y2UKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3Qg
ImZsb2F0aW5nIi4KICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRl
IGVmZmVjdCBvZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KLSAgICBBU1NFUlQocmVmQ291bnQo
KSB8fCBwYXJlbnROb2RlKCkpOworICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE9ySG9z
dE5vZGUoKSk7CiAKICAgICBlYyA9IDA7CiAKQEAgLTQwMSw3ICs0MDEsNyBAQCBib29sIENvbnRh
aW5lck5vZGU6OnJlbW92ZUNoaWxkKE5vZGUqIG9sZENoaWxkLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0aW5nIi4KICAgICAv
LyBJZiBpdCBpcywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBvZiBzZW5kaW5n
IG11dGF0aW9uIGV2ZW50cy4KLSAgICBBU1NFUlQocmVmQ291bnQoKSB8fCBwYXJlbnROb2RlKCkp
OworICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE9ySG9zdE5vZGUoKSk7CiAKICAgICBl
YyA9IDA7CiAKQEAgLTU2MSw3ICs1NjEsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENo
aWxkKFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBibwogewog
ICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElm
IGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0
YXRpb24gZXZlbnRzLgotICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE5vZGUoKSk7Cisg
ICAgQVNTRVJUKHJlZkNvdW50KCkgfHwgcGFyZW50T3JIb3N0Tm9kZSgpKTsKIAogICAgIGVjID0g
MDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCmluZGV4IGM5YzMwMjAz
Nzc4MTczYTRjMDczNWEzMTdmZWEzNDE3YjhlM2RjYTEuLmU5OGVmOWU1OGEwY2ZmMmI4ZjhkMGY0
MjQ3MDBmOTljNjkxMTYyNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5j
cHAKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1pbmxpbmUgRG9j
dW1lbnRGcmFnbWVudDo6RG9jdW1lbnRGcmFnbWVudChEb2N1bWVudCogZG9jdW1lbnQpCitEb2N1
bWVudEZyYWdtZW50OjpEb2N1bWVudEZyYWdtZW50KERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6
IENvbnRhaW5lck5vZGUoZG9jdW1lbnQpCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCmluZGV4IGQ1ODhiNGU3YjA1N2QyYjMyOGU0OGJh
MDFiMzdlMTEzNzU5NjhhMTQuLmY1Njc1MzZiMmIxNDc0ZmIwNDE1YzBjYjE4NjM0ZjZhZjQ0NjY3
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaApAQCAtMzYsOSArMzYsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgcGFyc2VIVE1MKGNvbnN0IFN0cmluZyYsIEVsZW1lbnQqIGNv
bnRleHRFbGVtZW50LCBGcmFnbWVudFNjcmlwdGluZ1Blcm1pc3Npb24gPSBGcmFnbWVudFNjcmlw
dGluZ0FsbG93ZWQpOwogICAgIGJvb2wgcGFyc2VYTUwoY29uc3QgU3RyaW5nJiwgRWxlbWVudCog
Y29udGV4dEVsZW1lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2Ny
aXB0aW5nQWxsb3dlZCk7CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnRGcmFn
bWVudChEb2N1bWVudCopOwogCitwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIG5vZGVOYW1l
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBOb2RlVHlwZSBub2RlVHlwZSgpIGNvbnN0OwogICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9vbCBkZWVwKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAppbmRleCBlNGQ5MDc1OGI1ZDgxMGJmOGUwNGVmZDcxY2U1MjQwZDQ0NTg5YTNhLi40
YmFmMDRjYzAxMTFlODgzMjM2ODgwZjg5NzRlYWNlZTA4YWQ4NDFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1
ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIldlYktpdEFu
aW1hdGlvbkxpc3QuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgpAQCAtMTA0OSw3ICsxMDUwLDcg
QEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiB7CiAgICAg
Ly8gUmVmIGN1cnJlbnRTdHlsZSBpbiBjYXNlIGl0IHdvdWxkIG90aGVyd2lzZSBiZSBkZWxldGVk
IHdoZW4gc2V0UmVuZGVyU3R5bGUoKSBpcyBjYWxsZWQuCiAgICAgUmVmUHRyPFJlbmRlclN0eWxl
PiBjdXJyZW50U3R5bGUocmVuZGVyU3R5bGUoKSk7Ci0gICAgYm9vbCBoYXNQYXJlbnRTdHlsZSA9
IHBhcmVudE9ySG9zdE5vZGUoKSA/IHBhcmVudE9ySG9zdE5vZGUoKS0+cmVuZGVyU3R5bGUoKSA6
IGZhbHNlOworICAgIGJvb2wgaGFzUGFyZW50U3R5bGUgPSBwYXJlbnROb2RlRm9yUmVuZGVyaW5n
KCkgPyBwYXJlbnROb2RlRm9yUmVuZGVyaW5nKCktPnJlbmRlclN0eWxlKCkgOiBmYWxzZTsKICAg
ICBib29sIGhhc0RpcmVjdEFkamFjZW50UnVsZXMgPSBjdXJyZW50U3R5bGUgJiYgY3VycmVudFN0
eWxlLT5jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7CiAKICAgICBpZiAo
KGNoYW5nZSA+IE5vQ2hhbmdlIHx8IG5lZWRzU3R5bGVSZWNhbGMoKSkpIHsKQEAgLTExMzEsNyAr
MTEzMiw3IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQog
ICAgIH0KICAgICAvLyBGSVhNRTogVGhpcyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcgY29t
YmluYXRvcnMuIFdpbGwgYmUgbmVjZXNzYXJ5IGluIFhCTDIgd29ybGQuCiAgICAgaWYgKE5vZGUq
IHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkgewotICAgICAgICBpZiAoY2hhbmdlID49IEluaGVyaXQg
fHwgc2hhZG93LT5pc1RleHROb2RlKCkgfHwgc2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMo
KSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVSZWNhbGMoKSkgeworICAgICAgICBpZiAoY2hhbmdlID49
IEluaGVyaXQgfHwgc2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ctPm5l
ZWRzU3R5bGVSZWNhbGMoKSkgewogICAgICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKICAg
ICAgICAgICAgIHNoYWRvdy0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKICAgICAgICAgfQpAQCAtMTE0
MSwxOSArMTE0MiwyMSBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNo
YW5nZSkKICAgICBjbGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwogfQogCi1Ob2RlKiBFbGVt
ZW50OjpzaGFkb3dSb290KCkKK05vZGUqIEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKSBjb25zdAogewog
ICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+bV9zaGFkb3dSb290IDogMDsK
IH0KIAogdm9pZCBFbGVtZW50OjpzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkK
IHsKKyAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aXNTaGFkb3dCb3VuZGFyeSgpKTsKKwogICAg
IC8vIEZJWE1FOiBCZWNhdXNlIHRvZGF5IHRoaXMgaXMgbmV2ZXIgY2FsbGVkIGZyb20gc2NyaXB0
IGRpcmVjdGx5LCB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5CiAgICAgLy8gYWJvdXQgY29tcHJvbWlz
aW5nIERPTSB0cmVlIGludGVncml0eSAoZWcuIG5vZGUgYmVpbmcgYSBwYXJlbnQgb2YgdGhpcyku
IEhvd2V2ZXIsCiAgICAgLy8gb25jZSB3ZSBpbXBsZW1lbnQgWEJMMiwgd2Ugd2lsbCBoYXZlIHRv
IGFkZCBpbnRlZ3JpdHkgY2hlY2tzIGhlcmUuCiAgICAgcmVtb3ZlU2hhZG93Um9vdCgpOwogCi0g
ICAgUmVmUHRyPE5vZGU+IG5ld1Jvb3QgPSBub2RlOworICAgIFJlZlB0cjxTaGFkb3dSb290PiBu
ZXdSb290ID0gc3RhdGljX3BvaW50ZXJfY2FzdDxTaGFkb3dSb290Pihub2RlKTsKICAgICBpZiAo
IW5ld1Jvb3QpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMDkwNWQ3
ZDc3NTU3NDI3Yjk2MTAzNDNiN2M1Y2UzODE2OTZkYzA4Yy4uZTZjNzA0MGE3MzFlM2RlNjJjMjE3
MWU2OWU4OTk5OWFmNTdlNjQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yMjksNyArMjI5LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCB2b2lkIHJlY2FsY1N0eWxlKFN0
eWxlQ2hhbmdlID0gTm9DaGFuZ2UpOwogCi0gICAgTm9kZSogc2hhZG93Um9vdCgpOworICAgIE5v
ZGUqIHNoYWRvd1Jvb3QoKSBjb25zdDsKICAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0
cjxOb2RlPik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lk
KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCA4MThhMmMy
ZjBmZjk4N2RjNWNkNjNhOTcyOTViZWM1YjgwZWQ0YTI1Li4xNGNlZWYyYTFmZTI5NTJhNzA3ZDA1
Nzc1NWI4Mjc5M2RiNjM2NzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBA
IC0zMCw2ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU2hhZG93Um9v
dDsKKwogY2xhc3MgRWxlbWVudFJhcmVEYXRhIDogcHVibGljIE5vZGVSYXJlRGF0YSB7CiBwdWJs
aWM6CiAgICAgRWxlbWVudFJhcmVEYXRhKCk7CkBAIC00Miw3ICs0NCw3IEBAIHB1YmxpYzoKIAog
ICAgIEludFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nOwogICAgIFJlZlB0cjxSZW5kZXJT
dHlsZT4gbV9jb21wdXRlZFN0eWxlOwotICAgIE5vZGUqIG1fc2hhZG93Um9vdDsKKyAgICBTaGFk
b3dSb290KiBtX3NoYWRvd1Jvb3Q7CiAKICAgICBPd25QdHI8RGF0YXNldERPTVN0cmluZ01hcD4g
bV9kYXRhc2V0RE9NU3RyaW5nTWFwOwogICAgIE93blB0cjxDbGFzc0xpc3Q+IG1fY2xhc3NMaXN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCmluZGV4IDE1Y2I4YThiNDhhMWYyMTYzOTkxZjlkYjYxZmQ5NmE4YWE2
NjNiNGQuLmViNjdmMGNlMTY0NDhjOTJmZDUyODM5YzY0Yzc0M2Y1MWNlYzU0ZDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKQEAgLTE0MDIsMTggKzE0MDIsMjggQEAgTm9kZSAqTm9kZTo6bmV4dExlYWZOb2Rl
KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAorQ29udGFpbmVyTm9kZSogTm9kZTo6cGFyZW50
Tm9kZUZvclJlbmRlcmluZygpIGNvbnN0Cit7CisgICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0g
cGFyZW50T3JIb3N0Tm9kZSgpOworICAgIHJldHVybiBwYXJlbnQgJiYgcGFyZW50LT5pc1NoYWRv
d0JvdW5kYXJ5KCkgPyBwYXJlbnQtPnNoYWRvd0hvc3QoKSA6IHBhcmVudDsKK30KKwogUmVuZGVy
T2JqZWN0KiBOb2RlOjpjcmVhdGVSZW5kZXJlckFuZFN0eWxlKCkKIHsKICAgICBBU1NFUlQoIXJl
bmRlcmVyKCkpOwogICAgIEFTU0VSVChkb2N1bWVudCgpLT5zaG91bGRDcmVhdGVSZW5kZXJlcnMo
KSk7CiAKLSAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBwYXJlbnRPckhvc3ROb2RlKCk7Cisg
ICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gcGFyZW50Tm9kZUZvclJlbmRlcmluZygpOwogICAg
IEFTU0VSVChwYXJlbnQpOworCiAgICAgUmVuZGVyT2JqZWN0KiBwYXJlbnRSZW5kZXJlciA9IHBh
cmVudC0+cmVuZGVyZXIoKTsKIAogICAgIC8vIEZJWE1FOiBJZ25vcmluZyBjYW5IYXZlQ2hpbGRy
ZW4oKSBpbiBhIGNhc2Ugb2YgaXNTaGFkb3dSb290KCkgbWlnaHQgYmUgd3JvbmcuCiAgICAgLy8g
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjQyMwotICAgIGlm
ICghcGFyZW50UmVuZGVyZXIgfHwgKCFwYXJlbnRSZW5kZXJlci0+Y2FuSGF2ZUNoaWxkcmVuKCkg
JiYgIWlzU2hhZG93Um9vdCgpKSB8fCAhcGFyZW50LT5jaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVy
KHRoaXMpKQorICAgIGlmICghcGFyZW50UmVuZGVyZXIKKyAgICAgICAgfHwgKCFwYXJlbnRSZW5k
ZXJlci0+Y2FuSGF2ZUNoaWxkcmVuKCkKKyAgICAgICAgICAgICYmICEoaXNTaGFkb3dSb290KCkg
fHwgcGFyZW50Tm9kZSgpLT5pc1NoYWRvd0JvdW5kYXJ5KCkpKQorICAgICAgICB8fCAhcGFyZW50
LT5jaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKHRoaXMpKQogICAgICAgICByZXR1cm4gMDsKIAog
ICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBzdHlsZUZvclJlbmRlcmVyKCk7CkBAIC0x
NDY1LDcgKzE0NzUsNyBAQCB2b2lkIE5vZGU6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoKQogICAg
ICAgICByZXR1cm47CiAKICAgICAvLyBOb3RlOiBBZGRpbmcgbmV3UmVuZGVyZXIgaW5zdGVhZCBv
ZiByZW5kZXJlcigpLiByZW5kZXJlcigpIG1heSBiZSBhIGNoaWxkIG9mIG5ld1JlbmRlcmVyLgot
ICAgIHBhcmVudE9ySG9zdE5vZGUoKS0+cmVuZGVyZXIoKS0+YWRkQ2hpbGQobmV3UmVuZGVyZXIs
IG5leHRSZW5kZXJlcigpKTsKKyAgICBwYXJlbnROb2RlRm9yUmVuZGVyaW5nKCktPnJlbmRlcmVy
KCktPmFkZENoaWxkKG5ld1JlbmRlcmVyLCBuZXh0UmVuZGVyZXIoKSk7CiB9CiAKIFBhc3NSZWZQ
dHI8UmVuZGVyU3R5bGU+IE5vZGU6OnN0eWxlRm9yUmVuZGVyZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXgg
YzIyNWRiYWM4ZmY4OTFkZjljZmUyNjVlYzI2YjgyZGUxYzRiYjEzYi4uNWU1NGZjNjMyMTViOWE1
MTMzMDU0MGY1N2FhNWExN2JiZmMyNDgzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0yMDMsNiArMjAzLDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0NoYXJhY3RlckRhdGFOb2RlKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzRG9jdW1lbnROb2RlKCkgY29uc3Q7CiAgICAg
Ym9vbCBpc1NoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzU2hhZG93Um9vdEZs
YWcpOyB9CisgICAgLy8gRklYTUU6IHJlbW92ZSB0aGlzIHdoZW4gYWxsIHNoYWRvdyByb290cyBh
cmUgU2hhZG93Um9vdHMKKyAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkb3dCb3VuZGFyeSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgTm9kZSogc2hhZG93QW5jZXN0b3JOb2RlKCk7CiAgICAg
Tm9kZSogc2hhZG93VHJlZVJvb3ROb2RlKCk7CiAgICAgYm9vbCBpc0luU2hhZG93VHJlZSgpOwpA
QCAtNDQ0LDYgKzQ0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05l
ZWRlZChSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJl
bmRlcmVyKE5vZGUqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBSZW5kZXJP
YmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKKyAgICBD
b250YWluZXJOb2RlKiBwYXJlbnROb2RlRm9yUmVuZGVyaW5nKCkgY29uc3Q7CiAgICAgCiAgICAg
Ly8gV3JhcHBlciBmb3Igbm9kZXMgdGhhdCBkb24ndCBoYXZlIGEgcmVuZGVyZXIsIGJ1dCBzdGls
bCBjYWNoZSB0aGUgc3R5bGUgKGxpa2UgSFRNTE9wdGlvbkVsZW1lbnQpLgogICAgIFJlbmRlclN0
eWxlKiByZW5kZXJTdHlsZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjE0MjQ5NDBiYWFhZWRmY2U4ZDYyNzdiZWRlMmM3MzQyY2QxNzFiZWUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTAsMCArMSw1
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hh
ZG93Um9vdChkb2N1bWVudCkpOworfQorCitTaGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50
KiBkb2N1bWVudCkKKyAgICA6IERvY3VtZW50RnJhZ21lbnQoZG9jdW1lbnQpCit7CisgICAgQVNT
RVJUKGRvY3VtZW50KTsKK30KKwordm9pZCBTaGFkb3dSb290OjpyZWNhbGNTdHlsZShTdHlsZUNo
YW5nZSBjaGFuZ2UpCit7CisgICAgZm9yIChOb2RlKiBuID0gZmlyc3RDaGlsZCgpOyBuOyBuID0g
bi0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgbi0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKKworICAg
IGNsZWFyTmVlZHNTdHlsZVJlY2FsYygpOworICAgIGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxj
KCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0N2M4NmUxYzlj
Yjg5YjFlYmNjYzVlZDhjZGNjMGYwZTYyNzAzNDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNoYWRv
d1Jvb3RfaAorI2RlZmluZSBTaGFkb3dSb290X2gKKworI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21l
bnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKKworY2xhc3Mg
U2hhZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBjcmVhdGUoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1
YWwgYm9vbCBpc1NoYWRvd0JvdW5kYXJ5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZp
cnR1YWwgdm9pZCByZWNhbGNTdHlsZShTdHlsZUNoYW5nZSA9IE5vQ2hhbmdlKTsKKworcHJpdmF0
ZToKKyAgICBTaGFkb3dSb290KERvY3VtZW50Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggYjkw
MzM1ZWM0MjkyNTcwNWU0YWUzOGE3NGQwNmFjYWRhZTgyZDU4ZC4uOTBjYzUyY2FmZGYzNThlYTRh
MjkxMzE1MjM0ZDllZTRhYmFlNjlhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MS2V5Z2VuRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2Vu
RWxlbWVudC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiU1NMS2V5R2Vu
ZXJhdG9yLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTc1LDcgKzc2LDExIEBAIGlubGluZSBI
VE1MS2V5Z2VuRWxlbWVudDo6SFRNTEtleWdlbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lCiAgICAgICAgIHNlbGVjdC0+cGFyc2VyQWRkQ2hpbGQob3B0aW9uKTsK
ICAgICAgICAgb3B0aW9uLT5wYXJzZXJBZGRDaGlsZChUZXh0OjpjcmVhdGUoZG9jdW1lbnQsIGtl
eXNbaV0pKTsKICAgICB9Ci0gICAgc2V0U2hhZG93Um9vdChzZWxlY3QpOworCisgICAgUmVmUHRy
PFNoYWRvd1Jvb3Q+IHNoYWRvdyA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZShkb2N1bWVudCk7CisgICAg
c2hhZG93LT5wYXJzZXJBZGRDaGlsZChzZWxlY3QpOworCisgICAgc2V0U2hhZG93Um9vdChzaGFk
b3cpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxLZXlnZW5FbGVtZW50PiBIVE1MS2V5Z2VuRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQpAQCAtODcsNyArOTIsNyBAQCB2b2lkIEhUTUxLZXln
ZW5FbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAg
Ly8gUmVmbGVjdCBkaXNhYmxlZCBhdHRyaWJ1dGUgb24gdGhlIHNoYWRvdyBzZWxlY3QgZWxlbWVu
dAogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gZGlzYWJsZWRBdHRyKQotICAgICAgICBzZWxlY3RT
aGFkb3coKS0+c2V0QXR0cmlidXRlKGF0dHItPm5hbWUoKSwgYXR0ci0+dmFsdWUoKSk7CisgICAg
ICAgIHNoYWRvd1NlbGVjdCgpLT5zZXRBdHRyaWJ1dGUoYXR0ci0+bmFtZSgpLCBhdHRyLT52YWx1
ZSgpKTsKIAogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gY2hhbGxlbmdlQXR0cikKICAgICAgICAg
bV9jaGFsbGVuZ2UgPSBhdHRyLT52YWx1ZSgpOwpAQCAtMTAyLDcgKzEwNyw3IEBAIGJvb2wgSFRN
TEtleWdlbkVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgZW5jb2RlZF92YWx1
ZXMsIGJvb2wpCiAgICAgLy8gT25seSBSU0EgaXMgc3VwcG9ydGVkIGF0IHRoaXMgdGltZS4KICAg
ICBpZiAoIW1fa2V5VHlwZS5pc051bGwoKSAmJiAhZXF1YWxJZ25vcmluZ0Nhc2UobV9rZXlUeXBl
LCAicnNhIikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBTdHJpbmcgdmFsdWUgPSBzaWdu
ZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcoc2VsZWN0U2hhZG93KCktPnNlbGVjdGVkSW5k
ZXgoKSwgbV9jaGFsbGVuZ2UsIGRvY3VtZW50KCktPmJhc2VVUkwoKSk7CisgICAgU3RyaW5nIHZh
bHVlID0gc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHNoYWRvd1NlbGVjdCgpLT5z
ZWxlY3RlZEluZGV4KCksIG1fY2hhbGxlbmdlLCBkb2N1bWVudCgpLT5iYXNlVVJMKCkpOwogICAg
IGlmICh2YWx1ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGVuY29kZWRf
dmFsdWVzLmFwcGVuZERhdGEobmFtZSgpLCB2YWx1ZS51dGY4KCkpOwpAQCAtMTE3LDEyICsxMjIs
MTIgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MS2V5Z2VuRWxlbWVudDo6Zm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QKIAogdm9pZCBIVE1MS2V5Z2VuRWxlbWVudDo6cmVzZXQoKQogewotICAgIHN0
YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPihzZWxlY3RTaGFkb3coKSktPnJlc2V0
KCk7CisgICAgc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+KHNoYWRvd1NlbGVj
dCgpKS0+cmVzZXQoKTsKIH0KIAotSFRNTFNlbGVjdEVsZW1lbnQqIEhUTUxLZXlnZW5FbGVtZW50
OjpzZWxlY3RTaGFkb3coKQorSFRNTFNlbGVjdEVsZW1lbnQqIEhUTUxLZXlnZW5FbGVtZW50Ojpz
aGFkb3dTZWxlY3QoKSBjb25zdAogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MU2VsZWN0
RWxlbWVudCo+KHNoYWRvd1Jvb3QoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxTZWxl
Y3RFbGVtZW50Kj4oc2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOwogfQogCiB9IC8vIG5hbWVz
cGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oCmluZGV4IDAyMDAzZTgw
ZDJkOGY4MWI3NjlhOTIxNDMwZGNmYTRkNmMwMzUzMjAuLjg4NzgyYzg4YzM3OTYxNjM5YmI4YzY3
OTdhZTkxZDRlMDc0ODY3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtl
eWdlbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50
LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCByZXNldCgp
OwogCi0gICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdFNoYWRvdygpOworICAgIEhUTUxTZWxl
Y3RFbGVtZW50KiBzaGFkb3dTZWxlY3QoKSBjb25zdDsKIAogICAgIEF0b21pY1N0cmluZyBtX2No
YWxsZW5nZTsKICAgICBBdG9taWNTdHJpbmcgbV9rZXlUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1ldGVyRWxlbWVudC5jcHAKaW5kZXggNzY4NzI4M2ViNzlkNThhMzgxNWE2YzI4Mzk3ZDRk
OTk2YWUzM2IyYS4uY2FkN2IyMjRhMjdkMzI0OWJlNDJlNzExNTU4OTU0Y2ZhZDI4MGZlMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIk1ldGVyU2hhZG93RWxl
bWVudC5oIgogI2luY2x1ZGUgIlJlbmRlck1ldGVyLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMjMwLDcgKzIzMSw5IEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3Vi
dHJlZSgpCiAgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQo
KSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgYmFyLT5hcHBlbmRDaGlsZChtX3Zh
bHVlLCBlYyk7Ci0gICAgc2V0U2hhZG93Um9vdChiYXIpOworICAgIFJlZlB0cjxTaGFkb3dSb290
PiBzaGFkb3cgPSBTaGFkb3dSb290OjpjcmVhdGUoZG9jdW1lbnQoKSk7CisgICAgc2hhZG93LT5w
YXJzZXJBZGRDaGlsZChiYXIpOworICAgIHNldFNoYWRvd1Jvb3Qoc2hhZG93KTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNz
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3Bw
CmluZGV4IGRmYjhkNDQ1OGUwNGYwOTAxOWQ1OGM2OTBjZDdkZTAwNmFkYjllOGIuLjYyZjE0YjEw
ODI5ODhhZjg0NWY1YWY5YWZhMmMxODMxMGZhOTQ5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkhU
TUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaCIKICNp
bmNsdWRlICJSZW5kZXJQcm9ncmVzcy5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEzNyw5
ICsxMzgsMTAgQEAgdm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVl
KCkKIHsKICAgICBSZWZQdHI8UHJvZ3Jlc3NCYXJFbGVtZW50PiBiYXIgPSBQcm9ncmVzc0JhckVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICBtX3ZhbHVlID0gUHJvZ3Jlc3NWYWx1ZUVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICBFeGNlcHRpb25Db2RlIGUgPSAwOwotICAg
IGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwgZSk7Ci0gICAgc2V0U2hhZG93Um9vdChiYXIpOwor
ICAgIGJhci0+cGFyc2VyQWRkQ2hpbGQobV92YWx1ZSk7CisgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+
IHNoYWRvdyA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZShkb2N1bWVudCgpKTsKKyAgICBzaGFkb3ctPnBh
cnNlckFkZENoaWxkKGJhcik7CisgICAgc2V0U2hhZG93Um9vdChzaGFkb3cpOwogfQogCiB9IC8v
IG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCBmN2Vl
Njc0NzRkMzJiOTQ2ODk5NjUyOGM1MWExZmE3NWFiZmY3ZWZlLi5mNGU4YmFkYjY0MTI1YWI4ZWJj
ZWQxNjUxYTM1NGI2ODBmMjFjZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
bmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIKKyNpbmNs
dWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU2xpZGVyVGh1bWJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU3RlcFJhbmdlLmgiCiAjaW5jbHVkZSA8bGltaXRzPgpAQCAtMTQ4LDcgKzE0OSw3IEBA
IHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNlRXZlbnQqIGV2
ZW50KQogICAgIGlmIChldmVudC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCBldmVudC0+dGFy
Z2V0KCkgIT0gZWxlbWVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoU2xpZGVyVGh1
bWJFbGVtZW50KiB0aHVtYiA9IHRvU2xpZGVyVGh1bWJFbGVtZW50KGVsZW1lbnQoKS0+c2hhZG93
Um9vdCgpKSkKKyAgICBpZiAoU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYiA9IHNoYWRvd1NsaWRl
clRodW1iKCkpCiAgICAgICAgIHRodW1iLT5kcmFnRnJvbShldmVudC0+YWJzb2x1dGVMb2NhdGlv
bigpKTsKIH0KIApAQCAtMTk2LDcgKzE5Nyw5IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRs
ZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIAogdm9pZCBSYW5nZUlucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7Ci0gICAgZWxlbWVudCgpLT5zZXRTaGFkb3dSb290
KFNsaWRlclRodW1iRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSkpOworICAg
IFJlZlB0cjxTaGFkb3dSb290PiBzaGFkb3cgPSBTaGFkb3dSb290OjpjcmVhdGUoZWxlbWVudCgp
LT5kb2N1bWVudCgpKTsKKyAgICBzaGFkb3ctPnBhcnNlckFkZENoaWxkKFNsaWRlclRodW1iRWxl
bWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSkpOworICAgIGVsZW1lbnQoKS0+c2V0
U2hhZG93Um9vdChzaGFkb3cpOwogfQogCiBSZW5kZXJPYmplY3QqIFJhbmdlSW5wdXRUeXBlOjpj
cmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikgY29uc3QKQEAg
LTI0MSw3ICsyNDQsNyBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjptaW5Pck1heEF0dHJpYnV0ZUNo
YW5nZWQoKQogCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjp2YWx1ZUNoYW5nZWQoKQogewotICAgIHRv
U2xpZGVyVGh1bWJFbGVtZW50KGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKS0+c2V0UG9zaXRpb25G
cm9tVmFsdWUoKTsKKyAgICBzaGFkb3dTbGlkZXJUaHVtYigpLT5zZXRQb3NpdGlvbkZyb21WYWx1
ZSgpOwogfQogCiBTdHJpbmcgUmFuZ2VJbnB1dFR5cGU6OmZhbGxiYWNrVmFsdWUoKQpAQCAtMjY1
LDQgKzI2OCwxMCBAQCBib29sIFJhbmdlSW5wdXRUeXBlOjpzaG91bGRSZXNwZWN0TGlzdEF0dHJp
YnV0ZSgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1NsaWRlclRodW1iRWxlbWVudCogUmFuZ2VJ
bnB1dFR5cGU6OnNoYWRvd1NsaWRlclRodW1iKCkgY29uc3QKK3sKKyAgICBOb2RlKiBzaGFkb3cg
PSBlbGVtZW50KCktPnNoYWRvd1Jvb3QoKTsKKyAgICByZXR1cm4gc2hhZG93ID8gdG9TbGlkZXJU
aHVtYkVsZW1lbnQoc2hhZG93LT5maXJzdENoaWxkKCkpIDogMDsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCmluZGV4IDM3NTI5ODUy
MDJhZDIxNDFjYTA5NzU0ZTk5N2RjOWIwZGI4Y2MwMDcuLjc1ZTdhMTc0NWM2ZWVjZDczNTVmNGQw
MmNiMDc4Yzg4YmU5ZGI0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKQEAg
LTM1LDYgKzM1LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTbGlkZXJUaHVt
YkVsZW1lbnQ7CisKIGNsYXNzIFJhbmdlSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0
RWxlbWVudCopOwpAQCAtNjcsNiArNjksOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5n
IGZhbGxiYWNrVmFsdWUoKTsKICAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0
IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RM
aXN0QXR0cmlidXRlKCk7CisKKyAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHNoYWRvd1NsaWRlclRo
dW1iKCkgY29uc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCmluZGV4IDU5YTE0Njc5ZTNiMDljOGE2MDIxNzk3
ODk4MmU1M2VkYmNkZWViMWEuLjg4YWZlZTdiNDYzMWUxNzIyM2FhNGU5ODc4YWI5MGNhMDViNmVi
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwCkBAIC00MCw2
ICs0MCw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUg
IlRleHQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC0xMjksMTIgKzEzMCw5
IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OmJ1aWxkQnViYmxlVHJlZShUaW1lcjxWYWxpZGF0
aW9uTWVzc2FnZT4qKQogICAgIC8vIGNvbnRhaW5zIG5vbi1hYnNvbHV0ZSBvciBub24tZml4ZWQg
cmVuZGVyZXJzIGFzIGNoaWxkcmVuLgogICAgIG1fYnViYmxlLT5nZXRJbmxpbmVTdHlsZURlY2wo
KS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlQb3NpdGlvbiwgQ1NTVmFsdWVBYnNvbHV0ZSk7CiAg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgLy8gRklYTUU6IFdlIG5lZWQgYSB3YXkgdG8g
aG9zdCBtdWx0aXBsZSBzaGFkb3cgcm9vdHMgaW4gYSBzaW5nbGUgbm9kZSwgb3IKLSAgICAvLyB0
byBpbmhlcml0IGFuIGV4aXN0aW5nIHNoYWRvdyB0cmVlLgotICAgIGlmIChob3N0LT5zaGFkb3dS
b290KCkpCi0gICAgICAgIGhvc3QtPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9idWJibGUu
Z2V0KCksIGVjKTsKLSAgICBlbHNlCi0gICAgICAgIGhvc3QtPnNldFNoYWRvd1Jvb3QobV9idWJi
bGUpOworICAgIGlmICghaG9zdC0+c2hhZG93Um9vdCgpKQorICAgICAgICBob3N0LT5zZXRTaGFk
b3dSb290KFNoYWRvd1Jvb3Q6OmNyZWF0ZShkb2MpKTsKKyAgICBob3N0LT5zaGFkb3dSb290KCkt
PmFwcGVuZENoaWxkKG1fYnViYmxlLmdldCgpLCBlYyk7CiAKICAgICBSZWZQdHI8SFRNTEVsZW1l
bnQ+IGNsaXBwZXIgPSBFbGVtZW50V2l0aFBzZXVkb0lkOjpjcmVhdGUoZG9jLCAiLXdlYmtpdC12
YWxpZGF0aW9uLWJ1YmJsZS1hcnJvdy1jbGlwcGVyIik7CiAgICAgY2xpcHBlci0+YXBwZW5kQ2hp
bGQoRWxlbWVudFdpdGhQc2V1ZG9JZDo6Y3JlYXRlKGRvYywgIi13ZWJraXQtdmFsaWRhdGlvbi1i
dWJibGUtYXJyb3ciKSwgZWMpOwpAQCAtMTYxLDEyICsxNTksOCBAQCB2b2lkIFZhbGlkYXRpb25N
ZXNzYWdlOjpkZWxldGVCdWJibGVUcmVlKFRpbWVyPFZhbGlkYXRpb25NZXNzYWdlPiopCiAgICAg
aWYgKG1fYnViYmxlKSB7CiAgICAgICAgIG1fYnViYmxlTWVzc2FnZSA9IDA7CiAgICAgICAgIEhU
TUxFbGVtZW50KiBob3N0ID0gdG9IVE1MRWxlbWVudChtX2VsZW1lbnQpOwotICAgICAgICBpZiAo
bV9idWJibGUtPmlzU2hhZG93Um9vdCgpKQotICAgICAgICAgICAgaG9zdC0+c2V0U2hhZG93Um9v
dCgwKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwotICAg
ICAgICAgICAgaG9zdC0+c2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQoKSwg
ZWMpOwotICAgICAgICB9CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAgICAgIGhvc3Qt
PnNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0KCksIGVjKTsKICAgICAgICAg
bV9idWJibGUgPSAwOwogICAgIH0KICAgICBtX21lc3NhZ2UgPSBTdHJpbmcoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmluZGV4IDYz
NTMyNTkzMzIyMTJkZjA3YWUxZjc4YmU4NzQwYmQ0MjkzNmI3ZmIuLjhhMDZjYjMzZmI1Y2JmY2Ew
MGZmYzhhZTZkZmVmNTRkOTFjNzRkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgU2xp
ZGVyVGh1bWJFbGVtZW50OjpkcmFnRnJvbShjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAKIHZvaWQg
U2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb21Qb2ludChjb25zdCBJbnRQb2ludCYg
cG9pbnQpCiB7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4oc2hhZG93SG9zdCgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1
dCA9IGhvc3RJbnB1dCgpOwogICAgIEFTU0VSVChpbnB1dCk7CiAKICAgICBpZiAoIWlucHV0LT5y
ZW5kZXJlcigpIHx8ICFyZW5kZXJlcigpKQpAQCAtMTk4LDYgKzE5OCwxMiBAQCB2b2lkIFNsaWRl
clRodW1iRWxlbWVudDo6ZGV0YWNoKCkKICAgICBIVE1MRGl2RWxlbWVudDo6ZGV0YWNoKCk7CiB9
CiAKK0hUTUxJbnB1dEVsZW1lbnQqIFNsaWRlclRodW1iRWxlbWVudDo6aG9zdElucHV0KCkKK3sK
KyAgICBBU1NFUlQocGFyZW50Tm9kZSgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCo+KHBhcmVudE5vZGUoKS0+c2hhZG93SG9zdCgpKTsKK30KKwogY29uc3QgQXRv
bWljU3RyaW5nJiBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsK
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2xpZGVyVGh1bWIsICgiLXdl
YmtpdC1zbGlkZXItdGh1bWIiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Ns
aWRlclRodW1iRWxlbWVudC5oCmluZGV4IDk0MTRhYzQ4YTY5MWUwOGFhY2NkNDI4NTcxYmI1ZWFm
YTNhOWFiZDkuLjJmYTYwY2I1ZTRiOTAwZGExYjRkY2I0MmU4NmRhNGJjY2M1MzBkNTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC00
MSw2ICs0MSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxFbGVtZW50Owor
Y2xhc3MgSFRNTElucHV0RWxlbWVudDsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRmxvYXRQb2ludDsK
IApAQCAtNjIsNiArNjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnREcmFnZ2luZygpOwog
ICAgIHZvaWQgc3RvcERyYWdnaW5nKCk7CiAgICAgdm9pZCBzZXRQb3NpdGlvbkZyb21Qb2ludChj
b25zdCBJbnRQb2ludCYpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGhvc3RJbnB1dCgpOwogCiAg
ICAgRmxvYXRQb2ludCBtX29mZnNldFRvVGh1bWI7CiAgICAgYm9vbCBtX2luRHJhZ01vZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApp
bmRleCA0OWM0NTc4NGFhNzcyOTE0NDcxMjI2YmU1Mzk3ZDc4ZTRhY2IyODVlLi5iOGFkM2QzODQy
MDcyZmQxM2RiZjc4M2U3ODgyMzA5ZjcxZDYwODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTQ1Niw3ICs0NTYsNyBAQCB2
b2lkIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6YXR0YWNoKCkKICAgICAgICAgcGFyZW50Tm9k
ZSgpLT5yZW5kZXJlcigpLT5hZGRDaGlsZChyZW5kZXJlciwgc2libGluZyA/IHNpYmxpbmctPnJl
bmRlcmVyKCkgOiAwKTsKICAgICB9ICAKICAgICBDb250YWluZXJOb2RlOjphdHRhY2goKTsKLSAg
ICAvLyBGSVhNRTogQ3VycmVudGx5LCBNZWlkYUNvbnRyb2xJbnB1dCBjaXJjdW12ZW50cyB0aGUg
bm9ybWFsIGF0dGFjaG1lbnQKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5LCBNZWRpYUNvbnRyb2xJ
bnB1dCBjaXJjdW12ZW50cyB0aGUgbm9ybWFsIGF0dGFjaG1lbnQKICAgICAvLyBhbmQgc3R5bGUg
cmVjYWxjIGN5Y2xlIGFuZCB0aHVzIHdlIG5lZWQgdG8gYWRkIGV4dHJhIGxvZ2ljIHRvIGJlIGF3
YXJlIG9mCiAgICAgLy8gdGhlIHNoYWRvdyBET00uIFJlbW92ZSB0aGlzIG9uY2UgYWxsIG1lZGlh
IGNvbnRyb2xzIGFyZSB0cmFuc2l0aW9uZWQgdG8gdXNlIHRoZSByZWd1bGFyCiAgICAgLy8gc3R5
bGUgY2FsY3VsYXRpb24uCkBAIC00ODEsNyArNDgxLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xJbnB1
dEVsZW1lbnQ6OnVwZGF0ZVN0eWxlKCkKICAgICBlbHNlIGlmIChyZW5kZXJlcigpKQogICAgICAg
ICByZW5kZXJlcigpLT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7CiAKLSAgICAvLyBGSVhNRTogQ3Vy
cmVudGx5LCBNZWlkYUNvbnRyb2xJbnB1dCBjaXJjdW12ZW50cyB0aGUgbm9ybWFsIGF0dGFjaG1l
bnQKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5LCBNZWRpYUNvbnRyb2xJbnB1dCBjaXJjdW12ZW50
cyB0aGUgbm9ybWFsIGF0dGFjaG1lbnQKICAgICAvLyBhbmQgc3R5bGUgcmVjYWxjIGN5Y2xlIGFu
ZCB0aHVzIHdlIG5lZWQgdG8gYWRkIGV4dHJhIGxvZ2ljIHRvIGJlIGF3YXJlIG9mCiAgICAgLy8g
dGhlIHNoYWRvdyBET00uIFJlbW92ZSB0aGlzIG9uY2UgYWxsIG1lZGlhIGNvbnRyb2xzIGFyZSB0
cmFuc2l0aW9uZWQgdG8gdXNlCiAgICAgLy8gdGhlIG5ldyBzaGFkb3cgRE9NLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCAxNjYxYjdhMmM1NTY3OTdmMjRi
NTU3NjFhZjIzYmE5ZTY2NTBkYTdkLi4wZDkyZGFmODU2NTVlZTlhNmI4ZWQzZGRhODM2OGMxYzBi
YjY4Nzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcApAQCAt
MTAxLDcgKzEwMSw3IEBAIHZvaWQgUmVuZGVyU2xpZGVyOjpjb21wdXRlUHJlZmVycmVkTG9naWNh
bFdpZHRocygpCiAKIEludFJlY3QgUmVuZGVyU2xpZGVyOjp0aHVtYlJlY3QoKQogewotICAgIFNs
aWRlclRodW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJFbGVtZW50KCk7Cisg
ICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1lbnQgPSBzaGFkb3dTbGlkZXJUaHVtYigp
OwogICAgIGlmICghdGh1bWJFbGVtZW50KQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwogCkBA
IC0xMjgsNyArMTI4LDcgQEAgdm9pZCBSZW5kZXJTbGlkZXI6OmxheW91dCgpCiB7CiAgICAgQVNT
RVJUKG5lZWRzTGF5b3V0KCkpOwogCi0gICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1l
bnQgPSBzbGlkZXJUaHVtYkVsZW1lbnQoKTsKKyAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1i
RWxlbWVudCA9IHNoYWRvd1NsaWRlclRodW1iKCk7CiAgICAgUmVuZGVyQm94KiB0aHVtYiA9IHRo
dW1iRWxlbWVudCA/IHRvUmVuZGVyQm94KHRodW1iRWxlbWVudC0+cmVuZGVyZXIoKSkgOiAwOwog
CiAgICAgSW50U2l6ZSBiYXNlU2l6ZShib3JkZXJBbmRQYWRkaW5nV2lkdGgoKSwgYm9yZGVyQW5k
UGFkZGluZ0hlaWdodCgpKTsKQEAgLTE3NiwxNCArMTc2LDE0IEBAIHZvaWQgUmVuZGVyU2xpZGVy
OjpsYXlvdXQoKQogICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAotU2xpZGVyVGh1bWJF
bGVtZW50KiBSZW5kZXJTbGlkZXI6OnNsaWRlclRodW1iRWxlbWVudCgpIGNvbnN0CitTbGlkZXJU
aHVtYkVsZW1lbnQqIFJlbmRlclNsaWRlcjo6c2hhZG93U2xpZGVyVGh1bWIoKSBjb25zdAogewot
ICAgIHJldHVybiB0b1NsaWRlclRodW1iRWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9k
ZSgpKS0+c2hhZG93Um9vdCgpKTsKKyAgICByZXR1cm4gdG9TbGlkZXJUaHVtYkVsZW1lbnQoc3Rh
dGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSktPnNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKTsK
IH0KIAogYm9vbCBSZW5kZXJTbGlkZXI6OmluRHJhZ01vZGUoKSBjb25zdAogewotICAgIFNsaWRl
clRodW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJFbGVtZW50KCk7CisgICAg
U2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1lbnQgPSBzaGFkb3dTbGlkZXJUaHVtYigpOwog
ICAgIHJldHVybiB0aHVtYkVsZW1lbnQgJiYgdGh1bWJFbGVtZW50LT5pbkRyYWdNb2RlKCk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAppbmRleCAwMTYyYjcxMDdi
YWQ1ZWU2YzUzMmQ1NTliY2U1NTQ0MTBjOTBlMTE3Li40ZTE3ZjMwZDhhODExZDE3ZDNlMjg4NDdm
MjdmYjI5ZWIzNjVlNTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5o
CkBAIC00Niw4ICs0Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2
b2lkIGxheW91dCgpOwogCiAgICAgICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5LCB0aGUgbG9naWMg
b2YgbWFuaXB1bGF0aW5nIHNsaWRlciB0aHVtYiBzaG91bGQgbW92ZSB0bwotICAgICAgICAvLyBT
bGlkZXJUaHVtYkVsZW1lbnQgYW5kIGFjY2Vzc2luZyBzbGlkZXJUaHVtYkVsZW1lbnQgc2hvdWxk
IG5vdCBiZSBuZWNlc3NhcnkgaW4gdGhpcyBjbGFzcy4KLSAgICAgICAgU2xpZGVyVGh1bWJFbGVt
ZW50KiBzbGlkZXJUaHVtYkVsZW1lbnQoKSBjb25zdDsKKyAgICAgICAgLy8gU2xpZGVyVGh1bWJF
bGVtZW50IGFuZCBhY2Nlc3Npbmcgc2hhZG93U2xpZGVyVGh1bWIgc2hvdWxkIG5vdCBiZSBuZWNl
c3NhcnkgaW4gdGhpcyBjbGFzcy4KKyAgICAgICAgU2xpZGVyVGh1bWJFbGVtZW50KiBzaGFkb3dT
bGlkZXJUaHVtYigpIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0ZvcmNl
ZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCA2YTUwMWFjNGZhZTFjZThkZGI5YmM0ZDU5MGQxNDk3MzRjZTk2
MzU2Li5kNDAwYWFlZDU5NWVhZWNlZmExOTIxYjEwMDNjZGM3M2Y4MThmODg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMDQtMDYgIERvbWluaWMgQ29vbmV5ICA8ZG9t
aW5pY2NAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBMZXQgc2hhZG93IERPTSBoYXZlIGEgbGlzdCBvZiBub2RlcyBhdCB0aGUgdG9w
IGxldmVsIG9mIGEgc2hhZG93LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTc4MTMKKworICAgICAgICAqIERPTS9XZWJET01PcGVyYXRpb25zLm1tOiBz
aGFkb3cgcm9vdHMgYXJlIFNoYWRvd1Jvb3QgaW5zdGFuY2VzIG5vdworCiAyMDExLTA0LTA2ICBS
b2JlcnQgU2VzZWsgIDxyc2VzZWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFsZXhleSBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9ET00v
V2ViRE9NT3BlcmF0aW9ucy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRp
b25zLm1tCmluZGV4IDIwZTlhY2U1MjZkOTkzMDY1NzM5ODU1Njk5M2YzMGNiMzQ0YjViNmYuLmRl
ZTQ1YzhkYjVkMDYwZmQxNTYzNDE1N2NkNTg5NDk3YjU5NWM2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0RPTS9XZWJET01PcGVyYXRpb25zLm1tCkBAIC0zOSwxMyArMzksMTMgQEAKICNpbXBvcnQg
IldlYktpdE5TU3RyaW5nRXh0cmFzLmgiCiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0VsZW1l
bnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTElucHV0RWxlbWVudC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9IVE1MUGFyc2VySWRpb21zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0pTRWxlbWVudC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL21h
cmt1cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJUcmVlQXNUZXh0Lmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1NoYWRvd0ZyYWdtZW50Lmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NRXh0ZW5zaW9ucy5o
PgogI2ltcG9ydCA8V2ViS2l0L0RPTUhUTUwuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSlNMb2NrLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggMzM5OGJmOWFjZmU3NjVjYjI1MjI3ZGIwYTg0ZTcyNjc5MjNiYWU3Ny4u
NzAzYmRlODgwMjkwMjkyY2M3YjM3NmNmMzYxZmQzOTM5NjI5ZTc0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyIEBACisyMDExLTA0LTA2ICBEb21pbmljIENvb25leSAgPGRvbWluaWNjQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TGV0IHNoYWRvdyBET00gaGF2ZSBhIGxpc3Qgb2Ygbm9kZXMgYXQgdGhlIHRvcCBsZXZlbCBvZiBh
IHNoYWRvdy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU3ODEzCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3Rl
ZEJ1bmRsZU5vZGVIYW5kbGUuY3BwOiBzaGFkb3cgcm9vdHMgYXJlIFNoYWRvd1Jvb3QgaW5zdGFu
Y2VzIG5vdworCiAyMDExLTA0LTA2ICBTaWRkaGFydGggTWF0aHVyICA8c2lkZGhhcnRoLm1hdGh1
ckBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQmVuamFtaW4gUG91bGFpbi4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0lu
amVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCmluZGV4IGJlZjNm
OTA5NGFhYWMyNmRkYzNkM2NiYjIwNGE3NTU2YjkwYjY3ZjEuLjI1NzlmODllYTcxMTlkNzY1MzYz
YTI4MDkyMTA1NDE5NWYyMTAxZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5k
bGVOb2RlSGFuZGxlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW50
UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNOb2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9O
b2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TaGFkb3dGcmFnbWVudC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88669</attachid>
            <date>2011-04-07 11:44:15 -0700</date>
            <delta_ts>2011-04-07 13:26:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57813-20110407114414.patch</filename>
            <type>text/plain</type>
            <size>55163</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMxODAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwYzliYmZjZTI2ZmRlZDQwYzdhMWVj
ZWEzZmMyMjliYWM3MDAyNTlmLi43NmU2ZDIyOGFhYTliNThkMThiMTE0YTA3ZDIwOTYyYmY0YzU5
MTk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQtMDYgIERvbWluaWMgQ29vbmV5ICA8
ZG9taW5pY2NAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBMZXQgc2hhZG93IERPTSBoYXZlIGEgbGlzdCBvZiBub2RlcyBhdCB0aGUg
dG9wIGxldmVsIG9mIGEgc2hhZG93LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTc4MTMKKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxLZXlnZW5FbGVt
ZW50L2tleWdlbi1leHBlY3RlZC50eHQ6IHNoYWRvdyBET00gY2hhbmdlZAorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sOiBhZGRlZCBhc3NlcnRpb24gb24g
c2hhZG93CisKIDIwMTEtMDQtMDcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4tZXhwZWN0ZWQu
dHh0CmluZGV4IDc0NWYwMTY3ZjYzM2JiYjU2MTcwNDFhZjU3MDk5MmIxZGM5MmI1OTMuLmE4YjJl
ZTU5NDMyY2RmYTA4MjA2NmYyMDQ0NWY0ZDFlYTZhNDAwYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEtleWdlbkVsZW1lbnQva2V5Z2VuLWV4cGVjdGVkLnR4
dApAQCAtMiw4ICsyLDkgQEAKIFRoaXMgdGVzdHMgdGhlIGtleWdlbiBlbGVtZW50LgogCiBQQVNT
IGtleWdlbi5vcHRpb25zIGlzIHVuZGVmaW5lZAotUEFTUyBzaGFkb3cudGFnTmFtZSBpcyAiU0VM
RUNUIgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHNoYWRvdykgaXMgbnVs
bAorUEFTUyBzaGFkb3cuZmlyc3RDaGlsZC50YWdOYW1lIGlzICJTRUxFQ1QiCitQQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3Qoc2hhZG93KSBpcyB1bmRlZmluZWQKK1BBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChzaGFkb3cuZmlyc3RDaGlsZCkgaXMgbnVsbAog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sCmluZGV4
IGVkOWNkY2FjZWZlZmZmMzllYzJkY2EyNDgzMjdjNDdlMGJiOTQxOGMuLmNiODgzMTYxNWU1Njll
ZDgyNmRmNjc5ZWU4MTQzOTY3ZTM4OWFhNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sCkBAIC0xNSw4ICsxNSw5IEBAIHNob3Vs
ZEJlKCdrZXlnZW4ub3B0aW9ucycsICd1bmRlZmluZWQnKTsgIC8vIGtleWdlbiBpcyBub3QgYSBz
ZWxlY3QKIAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICB2YXIgc2hhZG93
ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChrZXlnZW4pOwotICBzaG91bGRCZSgn
c2hhZG93LnRhZ05hbWUnLCAnIlNFTEVDVCInKTsKLSAgc2hvdWxkQmUoJ2xheW91dFRlc3RDb250
cm9sbGVyLnNoYWRvd1Jvb3Qoc2hhZG93KScsICdudWxsJyk7CisgIHNob3VsZEJlKCdzaGFkb3cu
Zmlyc3RDaGlsZC50YWdOYW1lJywgJyJTRUxFQ1QiJyk7CisgIHNob3VsZEJlKCdsYXlvdXRUZXN0
Q29udHJvbGxlci5zaGFkb3dSb290KHNoYWRvdyknLCAndW5kZWZpbmVkJyk7CisgIHNob3VsZEJl
KCdsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHNoYWRvdy5maXJzdENoaWxkKScsICdu
dWxsJyk7CiB9CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKaW5k
ZXggOTI4ODE3NzkzYWQ0MDM1YTEzNjM3YWYyNzFmNmI2ZWMwZmFkY2NkNC4uZWQ2M2UyYmM3Yjk4
NzA1MmQ0MDcyOWQ4MDI3M2Q1M2QxNjkwZmI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
QW5kcm9pZC5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0xNzUsNiArMTc1
LDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJZG9tL1Njcmlw
dFJ1bm5lci5jcHAgXAogCWRvbS9TZWxlY3RFbGVtZW50LmNwcCBcCiAJZG9tL1NlbGVjdG9yTm9k
ZUxpc3QuY3BwIFwKKwlkb20vU2hhZG93Um9vdC5jcHAgXAogCWRvbS9TcGFjZVNwbGl0U3RyaW5n
LmNwcCBcCiAJZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAgXAogCWRvbS9TdGF0aWNOb2Rl
TGlzdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA1ODgxMzM1NWIzYzNlNGY5MmUzMWYwNzQ5ZjUyOWM0
Yjg1NTAzYzcuLjZjMzEzMjAxZmVjOWEzNDhlM2NlYzE3YTMzOWZjOGUwMjg4ZTY4ZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw4NSBAQAorMjAxMS0wNC0wNiAgRG9taW5pYyBDb29uZXkgIDxkb21p
bmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIExldCBzaGFkb3cgRE9NIGhhdmUgYSBsaXN0IG9mIG5vZGVzIGF0IHRoZSB0b3Ag
bGV2ZWwgb2YgYSBzaGFkb3cuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NzgxMworCisgICAgICAgIEFkZHMgU2hhZG93Um9vdCwgYSBsaXN0IG9mIG5v
ZGVzLCB0byBiZSBhIHBhcmVudCBmb3IgdG9wLWxldmVsCisgICAgICAgIHNoYWRvdyBjaGlsZHJl
bi4gRm9yd2FyZHMgcmVuZGVyaW5nIHRocm91Z2ggdGhlIHJvb3QgYW5kIGludG8gdGhlCisgICAg
ICAgIGhvc3QncyByZW5kZXJlci4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
IG9mIGVsZW1lbnRzIHRoYXQgdXNlIHRoaXMgc3R5bGUgb2Ygc2hhZG93LgorCisgICAgICAgICog
QW5kcm9pZC5tazogYWRkIFNoYWRvd1Jvb3QKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2Vs
ZWN0b3I6OmluaXRGb3JTdHlsZVJlc29sdmUpOiBwcm94eSBzdHlsZSB0byBob3N0CisgICAgICAg
ICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOiB0b3AtbGV2ZWwgKnNoYWRvdyotY29ubmVjdGVkIERP
TSBpcyBhbGl2ZQorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50
RnJhZ21lbnQuY3BwOiBTaGFkb3dSb290IGlzIGEga2luZCBvZiBEb2N1bWVudEZyYWdtZW50Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpEb2N1bWVudEZyYWdtZW50KToKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlY2FsY1N0eWxlKTogbG9vayB0aHJ1IFNo
YWRvd1Jvb3QgdG8gaG9zdCBmb3Igc3R5bGUKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNo
YWRvd1Jvb3QpOiBzaG91bGQgYmUgY29uc3QKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNl
dFNoYWRvd1Jvb3QpOiBvbmx5IGFjY2VwdCBTaGFkb3dSb290IGluc3RhbmNlcyBub3cKKyAgICAg
ICAgKiBkb20vRWxlbWVudC5oOiBzaGFkb3dSb290IGFjY2Vzc29yIHNob3VsZCBiZSBjb25zdAor
ICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEuaDogYWxsIHNoYWRvdyByb290cyBhcmUgU2hh
ZG93Um9vdCBpbnN0YW5jZXMKKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOb2RlOjpwYXJlbnROb2RlRm9yUmVuZGVyaW5nKTogYWRkZWQKKyAgICAgICAgKFdlYkNv
cmU6Ok5vZGU6OmNyZWF0ZVJlbmRlcmVyQW5kU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCk6IGZvcndhcmQgdG9wLWxldmVsIHNoYWRvdyByZW5k
ZXJlcnMKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNT
aGFkb3dCb3VuZGFyeSk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
aGFkb3dSb290OjpTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OnJl
Y2FsY1N0eWxlKTogZm9yd2FyZCByZWNhbGMgdG8gY2hpbGRyZW4KKyAgICAgICAgKiBkb20vU2hh
ZG93Um9vdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmlzU2hhZG93
Qm91bmRhcnkpOgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwOiB1c2UgU2hh
ZG93Um9vdAorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXlnZW5F
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVudDo6YXBwZW5k
Rm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6OnJlc2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50OjpzaGFkb3dTZWxlY3QpOgorICAg
ICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRl
ckVsZW1lbnQuY3BwOiB1c2UgU2hhZG93Um9vdAorICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGVy
RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50LmNwcDogdXNlIFNoYWRvd1Jvb3QKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9n
cmVzc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJ
bnB1dFR5cGUuY3BwOiB1c2UgU2hhZG93Um9vdAorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1
dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5w
dXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5w
dXRUeXBlOjp2YWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6
OnNoYWRvd1NsaWRlclRodW1iKToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmg6Cisg
ICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6IHVzZSBTaGFkb3dSb290CisgICAg
ICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uTWVzc2FnZTo6YnVpbGRCdWJibGVUcmVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJibGVUcmVlKToKKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb21Qb2ludCk6CisgICAgICAgIChX
ZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6Omhvc3RJbnB1dCk6CisgICAgICAgICogaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL01lZGlhQ29u
dHJvbEVsZW1lbnRzLmNwcDogdXNlIFNoYWRvd1Jvb3QKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbElucHV0RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbElucHV0RWxlbWVudDo6dXBkYXRlU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjp0aHVtYlJlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpsYXlvdXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU2xpZGVyOjpzaGFkb3dTbGlkZXJUaHVtYik6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTbGlkZXI6OmluRHJhZ01vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJT
bGlkZXIuaDoKKwogMjAxMS0wNC0wNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4
IGVlNzBhNGZiYTFkMTQ4NDM1YWU2YzI2ZWFlZjcxMjg5NGEyMDVlYTEuLjFkMDUwMzAyMDA1Y2Ex
ZTYzMmJiNWE2YWU0MGFiMWJlNGMyZmRlNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMzMx
LDYgKzEzMzEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9T
ZWxlY3RFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yTm9kZUxpc3QuaCBcCisJU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9T
dGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggODc5ZGEy
NWRlNmYwZGYxZjFjMzUzY2I3OTNhYTJhZjQ3MzA3ZDZhZi4uNmMwNzZiM2Y0MTVhMzk5NGJlZDZl
ZWVlYzQ4ZDgwMzJkNzc0MzUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTc5OSw3ICs3OTks
NiBAQCBfX1pON1dlYkNvcmU2V2lkZ2V0RDJFdgogX19aTjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdK
U1ZhbHVlRQogX19aTjdXZWJDb3JlN0NvbnNvbGUyMXNob3VsZFByaW50RXhjZXB0aW9uc0V2CiBf
X1pON1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKLV9fWk43V2Vi
Q29yZTdFbGVtZW50MTBzaGFkb3dSb290RXYKIF9fWk43V2ViQ29yZTdJbnRSZWN0NXNjYWxlRWYK
IF9fWk43V2ViQ29yZTdJbnRSZWN0NXVuaXRlRVJLUzBfCiBfX1pON1dlYkNvcmU3SW50UmVjdDlp
bnRlcnNlY3RFUktTMF8KQEAgLTEyNTEsNiArMTI1MCw3IEBAIF9fWk5LN1dlYkNvcmU2V2lkZ2V0
MjVjb252ZXJ0VG9Db250YWluaW5nV2luZG93RVJLTlNfN0ludFJlY3RFCiBfX1pOSzdXZWJDb3Jl
NldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VSS05TXzhJbnRQb2ludEUKIF9fWk5L
N1dlYkNvcmU2V2lkZ2V0OWZyYW1lUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQxMHNjcmVl
blJlY3RFdgorX19aTks3V2ViQ29yZTdFbGVtZW50MTBzaGFkb3dSb290RXYKIF9fWk5LN1dlYkNv
cmU3RWxlbWVudDEyZ2V0QXR0cmlidXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRQogX19aTks3V2Vi
Q29yZTdFbGVtZW50MTlib3VuZHNJbldpbmRvd1NwYWNlRXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVu
dDlpbm5lclRleHRFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGJhZDMxMTVlZjlhZWNjYmE4NDJhODFi
YjhmYjc2ZTk1YTZmMTA2MTcuLmY0ODRjMWUzOTRkMGY5YWQ5NTI5YTE1ZWRhZmM4Yzc0ZDYxNjc5
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU0NSw2ICs1NDUsNyBAQAogICAgICAgICAgICAgJ2Rv
bS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0UnVubmVyLmgnLAorICAg
ICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAogICAgICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0
U3RyaW5nLmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZWRFbGVtZW50LmgnLAogICAgICAgICAg
ICAgJ2RvbS9UZXh0LmgnLApAQCAtMjUyMiw2ICsyNTIzLDggQEAKICAgICAgICAgICAgICdkb20v
U2VsZWN0RWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAn
LAogICAgICAgICAgICAgJ2RvbS9TZWxlY3Rvck5vZGVMaXN0LmgnLAorICAgICAgICAgICAgJ2Rv
bS9TaGFkb3dSb290LmNwcCcsCisgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuaCcsCiAgICAg
ICAgICAgICAnZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwJywKICAgICAgICAgICAgICdkb20vU3Rh
dGljSGFzaFNldE5vZGVMaXN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0YXRpY0hhc2hTZXRO
b2RlTGlzdC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZDQyMjFmZjlkZmQzYTk4NGEwZWRkOTYxNDI3
NzliNzBkOGZjN2MwZS4uYzEyMjk3NmE3NjY0NDIyNTMzMDdiN2U4ZTBlODA5ODhkZDE3Y2ZjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5wcm8KQEAgLTUzNCw2ICs1MzQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20v
U2NyaXB0UnVubmVyLmNwcCBcCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuY3BwIFwKICAgICBkb20v
U2VsZWN0b3JOb2RlTGlzdC5jcHAgXAorICAgIGRvbS9TaGFkb3dSb290LmNwcCBcCiAgICAgZG9t
L1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKICAgICBkb20vU3RhdGljTm9kZUxpc3QuY3BwIFwKICAg
ICBkb20vU3R5bGVkRWxlbWVudC5jcHAgXApAQCAtMTQ5Nyw2ICsxNDk4LDcgQEAgSEVBREVSUyAr
PSBcCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBcCiAgICAgZG9tL1NlbGVjdEVs
ZW1lbnQuaCBcCiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuaCBcCisgICAgZG9tL1NoYWRvd1Jv
b3QuaCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBcCiAgICAgZG9tL1N0YXRpY05vZGVM
aXN0LmggXAogICAgIGRvbS9TdHlsZWRFbGVtZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxMzYxNDg1ZDlmMzYyOTQ2NWQxYmQwY2Y2
YjlkNWI0MjgwZTU5NDM3Li5kMDdhZGZhMjNkMjU2MTI0NzdjMGJlMjkwMDQzOGIzNmE2ODBjOTMx
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
NDY0NDIsNiArNDY0NDIsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd1Jvb3QuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0
aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwv
RmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2hhZG93Um9vdC5oIgor
CQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU3Bh
Y2VTcGxpdFN0cmluZy5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEw
OGQzYzYzOGNhN2Y1ZDY0OTJhYzYxZGYzOWMyODllZDkwZWY4NjUuLjc5YWI4ZDU1NTQzZmZkNjll
ZmYwZjRlOGU0OTlkM2M3ZDFmZDRiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxOTYsNiArMzE5Niw4IEBACiAJCUE2MjJB
OEZDMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY2MTIyQzQ0QTYwMEE3
ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLzsgfTsKIAkJQTYyMkE4RkQxMjJDNDRB
NjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5k
aW5nU2VjdXJpdHlCYXNlLmggKi87IH07CiAJCUE2MjJBOEZGMTIyQzQ0QTYwMEE3ODVCMyAvKiBH
ZW5lcmljQmluZGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTYyMkE4RjkxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi87IH07
CisJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2OTYxMTM0NkI0OUIwMDBF
Qjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLzsgfTsKKwkJQTZEMTY5NjQxMzQ2QjRDMTAwMEVCNzcw
IC8qIFNoYWRvd1Jvb3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxNTFCRDgxMkYxNTU4
RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1MUJENzEyRjE1NThGMDA1QTBGNjQgLyogVGV4dENo
ZWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBNzE1RTY1MjEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTVF
NjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwICovOyB9Owog
CQlBNzE1RTY1MzEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1RTY1MTEzNEJC
QkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggKi87IH07CkBAIC05NzI0LDYg
Kzk3MjYsOCBAQAogCQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5
QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCaW5kaW5nU2Vj
dXJpdHlCYXNlLmNwcDsgcGF0aCA9IGdlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE2MjJBOEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBC
aW5kaW5nU2VjdXJpdHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJp
bmRpbmdTZWN1cml0eUJhc2UuaDsgcGF0aCA9IGdlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNjIyQThGOTEyMkM0NEE2MDBBNzg1QjMg
LyogR2VuZXJpY0JpbmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gR2Vu
ZXJpY0JpbmRpbmcuaDsgcGF0aCA9IGdlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTZEMTY5NjExMzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jv
b3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93Um9vdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3
MCAvKiBTaGFkb3dSb290LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRv
d1Jvb3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxNTFCRDcxMkYxNTU4RjAw
NUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFRleHRDaGVja2VyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE3MTVFNjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvZ3Jlc3NTaGFkb3dFbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxNUU2NTExMzRCQkJFQzAwRDhF
NzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE5NDQ3LDYgKzE5NDUxLDggQEAKIAkJCQkwODRBRUJFMzBGQjUwNUZBMDAzODQ4M0Ug
LyogU2VsZWN0RWxlbWVudC5oICovLAogCQkJCUJDN0ZBNjgwMEQxRjE2NzkwMERCMjJBOSAvKiBT
ZWxlY3Rvck5vZGVMaXN0LmNwcCAqLywKIAkJCQlCQzdGQTY3RjBEMUYxNjc5MDBEQjIyQTkgLyog
U2VsZWN0b3JOb2RlTGlzdC5oICovLAorCQkJCUE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBT
aGFkb3dSb290LmNwcCAqLywKKwkJCQlBNkQxNjk2MzEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93
Um9vdC5oICovLAogCQkJCUQwMUEyN0FCMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3Ry
aW5nLmNwcCAqLywKIAkJCQlEMDFBMjdBQzEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0
cmluZy5oICovLAogCQkJCUNFQTM5NDlBMTFENDVDREEwMDMwOTRDRiAvKiBTdGF0aWNIYXNoU2V0
Tm9kZUxpc3QuY3BwICovLApAQCAtMTk5MTMsNiArMTk5MTksNyBAQAogCQkJCUJDRDUzMzY0MEVE
Njg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNCMTZDMjgwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFhTTFN0eWxlU2hlZXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTUwMDgyNDVFNTkwMDFFOUFCQyAvKiBDYWNoZVBv
bGljeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjFENUVDQjUxMzRCNThEQTAwODdDNzhGIC8qIENh
bGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTZFNEU5MUFEMTBGN0ZCMzEwMEEy
Nzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0
ODRGQzIxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0OTQ4NEZDNTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yMDA3NCw2ICsyMDA4MSw4IEBACiAJCQkJQThDMjI4QTExMUQ1NzIyRTAwRDVB
N0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
NjJBNDUxMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0MUEzRDU4RjEwMUMxNTJEMDAzMTZEMDcgLyogRGVkaWNhdGVkV29ya2Vy
VGhyZWFkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDA2REZBNjEzNEE0REVGMDA2RjVEN0QgLyog
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDA2REZB
NjEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0MzNkVCOTEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXph
dGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTY3RUJGNjEwMjk2MkJBMDAzRDI1
MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMzE2MDJDMTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxheURTUEtlcm5lbC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yMTA4OSw2ICsyMTA5OCw3IEBACiAJCQkJOTNGMTk5RTUwODI0NUU1OTAwMUU5QUJD
IC8qIEhUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOERGM0ZEMDA5N0ZB
MEZDMDA1Mjk4MUIgLyogSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0Iz
ODY1MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MQ29uc3RydWN0aW9uU2l0ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTFBMzE2NjMxMzRCQ0FFODAwN0M5QTRGIC8qIEhUTUxDb252ZXJ0ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDNzdDREJDMEZFRkYxNDIwMDcwODg3QiAvKiBIVE1MRGF0YUdyaWRD
ZWxsRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3N0NCODcwRkVCRjVBRjAwNzA4ODdC
IC8qIEhUTUxEYXRhR3JpZENvbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjEyQTFG
MEZFODMzMzIwMEVDMzcwOCAvKiBIVE1MRGF0YUdyaWRFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTIxNTgwLDYgKzIxNTkwLDggQEAKIAkJCQk5MDAxNzg4MTEyRTAzNzA3MDA2NDg0NjIgLyog
SlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RUJGMEU3NzEy
QTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTc3QTE3QUE3MTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4g
SGVhZGVycyAqLywKKwkJCQlGREY2QkFGOTEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVk
aW9Db21wbGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUZERjZCQUY5MTM0QTRDOTgw
MDgyMjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTgyNkU4QUUwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTT3B0aW9uQ29uc3RydWN0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBMEQ1NzQxMEE1Qzc4NjcwMDdFREQ0QyAvKiBKU092ZXJmbG93
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjg0QkIxMTA0NDlGRkEwMEVBRUI1MiAvKiBK
U1BhZ2VUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjE5MzQsNiArMjE5NDYs
MTAgQEAKIAkJCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0
aXZlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkVCRjBFNDkxMkE4OTI2MTAwREIxNzA5IC8qIE9F
U1RleHR1cmVGbG9hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzdBMTdBNzIxMkYyODE4MjAwNEUw
MkY2IC8qIE9FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1
QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29t
cGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QzEzNEE0OUVGMDA4RDRC
NUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQlG
REEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGNEVBRjRBRjEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVT
YW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NzI4MTU2MEYyNkI5QjYwMEFGQzU5NiAv
KiBPcHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODcyODE1ODBGMjZCOUI2MDBB
RkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIyMjUxLDYg
KzIyMjY3LDcgQEAKIAkJCQkwRjNERDQ1MDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI4QzQwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0Rh
dGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RjMzOEE0MTFDMEVGQ0EwMEEzMjBBNyAvKiBTaGFk
b3dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAg
LyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRTgwQTE5ODlDQTAwN0ZC
OEM1IC8qIFNoYWRvd1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkFGRkM5NDBEMDBBNURG
MDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNEE5NTRFMEI0
RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjI3MTks
NiArMjI3MzYsNyBAQAogCQkJCTQ5NEJENzk1MEY1NUM4RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2lu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFDMEZGMjUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktp
dFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDRjMzMkYwRjJCOUEyNTAw
NEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUEzMTYyRDEzNEJDMzJE
MDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQ0FGMzQ4MTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTU2OUQxQjBEN0UyQjgyMDA3QzM5ODMgLyogV2ViU2NyaXB0T2JqZWN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0FGMzQ4MzBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2Ny
aXB0T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjgzMCwxMyArMjI4NDgsNiBA
QAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmls
dGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRCNUEgLyogT2Zm
bGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlGREEzRTk1QzEz
NEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlGREY2QkFGOTEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21w
bGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUZEMDZERkE2MTM0QTRERUYwMDZGNUQ3
RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUUx
QTMxNjJEMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCBp
biBIZWFkZXJzICovLAotCQkJCUUxQTMxNjYzMTM0QkNBRTgwMDdDOUE0RiAvKiBIVE1MQ29udmVy
dGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlCMUQ1RUNCNTEzNEI1OERBMDA4N0M3OEYgLyogQ2Fs
bGJhY2tGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMzI0OSw2ICsyMzI2MCw3IEBACiAJ
CQkJRDBEMTQxQjIxMkIyQkY1MjAwRTM5NjIwIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMyMzA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkU2Ny
aXB0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzI3MDk3OUMzQkQwMDQ2Nzc0MSAvKiBD
YWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUIxODI3NDkzMTM0Q0E0
QzEwMEI5OEMyRCAvKiBDYWxsYmFja0Z1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZF
NEU5MUFDMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk0OTQ4NEZDMTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGll
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0ODRGQzQxMDJDRjIzQzAwMTg3REQzIC8qIENh
bnZhc1BhdHRlcm4uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMzM4Miw2ICsyMzM5NCw4IEBACiAJ
CQkJQThDMjI4QTIxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2MkE0NTAxMDExNDVBRTAwREZGM0VEIC8qIERlZGlj
YXRlZFdvcmtlckNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFBM0Q1OEUxMDFDMTUy
RDAwMzE2RDA3IC8qIERlZGljYXRlZFdvcmtlclRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGRDA2REZBNTEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEMDZERkE1MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZh
dWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDMzZFQjgx
MzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0MTY3RUJGNTEwMjk2MkJBMDAzRDI1MkEgLyogRGVmYXVsdFNoYXJlZFdv
cmtlclJlcG9zaXRvcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwMkIxMkIwMjY3NjAw
QzFBMzU5IC8qIERlbGF5RFNQS2VybmVsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQ0NDksNiAr
MjQ0NjMsOCBAQAogCQkJCTkwMDE3ODgwMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJk
RGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkVCRjBFNzYxMkE5ODY4ODAwREIx
NzA5IC8qIEpTT0VTVGV4dHVyZUZsb2F0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3QTE3QUE2
MTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUZERjZCQUY4MTM0QTRDOTgwMDgyMjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBs
ZXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGREY2QkFGODEzNEE0Qzk4MDA4MjI5
MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTgyNkVDNDgwQTFCMENCRTAwQ0QxQkI2IC8qIEpTT3B0aW9uQ29uc3RydWN0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUEwRDU3NDAwQTVDNzg2NzAwN0VERDRDIC8qIEpTT3ZlcmZsb3dF
dmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI4NEJCMjEwNDQ5RkZBMDBFQUVCNTIgLyog
SlNQYWdlVHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQ4MTUsNiArMjQ4
MzEsMTAgQEAKIAkJCQk5MDAxNzc0MDEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2RUJGMEU0ODEyQTg5MjYxMDBEQjE3MDkg
LyogT0VTVGV4dHVyZUZsb2F0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3QTE3QTcxMTJGMjgx
ODIwMDRFMDJGNiAvKiBPRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGREEzRTk1OTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEQTNFOTU5MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZs
aW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRkRBM0U5NUIx
MzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlGREEzRTk1QjEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0RUFGNEFFMTBDNzQyQjEwMDkx
MDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODcyODE1
NTBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwODcyODE1NzBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjUwNjUsNiArMjUwODUsNyBAQAogCQkJCTBGM0RENDRGMTJGNUVBMUIw
MDBEOTE5MCAvKiBTaGFkb3dCbHVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUVCOEMzMEU4
MjAzMUIwMEIyNTk2NSAvKiBTaGFkb3dEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RjMz
OEEzMTFDMEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4MEU2Q0Y0MEExOTg5Q0EwMDdGQjhDNSAvKiBTaGFkb3dWYWx1ZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCMkFGRkM5MzBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMu
YyBpbiBTb3VyY2VzICovLAogCQkJCTFBNEE5NTREMEI0RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRC
dWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTQxOCw2ICsyNTQzOSw3IEBACiAJCQkJOTNG
MUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDRjMzMkUwRjJCOUEyNTAwNEI2Nzk1IC8qIFdl
YkxheWVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTFBMzE2MkUxMzRCQzMyRDAwN0M5QTRGIC8q
IFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFDQUYz
NDgyMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1MThBMzRDMTEwMjZDODMxMDAxQjY4OTYgLyogV2ViU29ja2V0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxMEQ0QTRFMTAzMTc3QTIwMDQ5RUE1NCAvKiBXZWJTb2NrZXRDaGFubmVsLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjU1MjAsMTIgKzI1NTQyLDYgQEAKIAkJCQk5M0YxOUIwNTA4
MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUZEQTNFOTU5MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5l
QXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkRBM0U5NUIxMzRB
NDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQlGREY2QkFGODEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21w
bGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkQwNkRGQTUxMzRBNERFRjAwNkY1
RDdEIC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlFMUEzMTYyRTEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFz
Lm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQjE4Mjc0OTMxMzRDQTRDMTAwQjk4QzJEIC8qIENhbGxi
YWNrRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAKaW5kZXggODZmM2JhMzBiZWQyZWQ5NGEzYmI0YzFiMGYyYzYyN2MwYzA5MjBh
Ny4uNDBjNzk0MWIyYTY5NzI5OGY5M2RiMTcxOTBhNjYxYjdhZGViMzE1MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtODkzLDcgKzg5Myw3IEBAIGlubGluZSB2
b2lkIENTU1N0eWxlU2VsZWN0b3I6OmluaXRGb3JTdHlsZVJlc29sdmUoRWxlbWVudCogZSwgUmVu
ZGVyU3R5bGUqIHBhcmVuCiB7CiAgICAgbV9jaGVja2VyLm1fcHNldWRvU3R5bGUgPSBwc2V1ZG9J
RDsKIAotICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnRPckhvc3ROb2RlKCkgOiAwOwor
ICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUo
KSA6IDA7CiAKICAgICBpZiAocGFyZW50U3R5bGUpCiAgICAgICAgIG1fcGFyZW50U3R5bGUgPSBw
YXJlbnRTdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCBlYTAzODQ4
YWFhZmJjZDAwMGY2ZjA5MDFmZTQ1YzdkNmUyMWFkYmIzLi41NjU5ZjllZDQ4NGY2ODVlZTYyZTc4
MGZiM2RjYTI3MmIwOWQ5M2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFp
bmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBA
IC0xMDQsNyArMTA0LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1Jl
ZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2UKIHsKICAgICAvLyBDaGVj
ayB0aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0aW5nIi4KICAgICAvLyBJZiBpdCBpcywgaXQg
Y2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBvZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50
cy4KLSAgICBBU1NFUlQocmVmQ291bnQoKSB8fCBwYXJlbnROb2RlKCkpOworICAgIEFTU0VSVChy
ZWZDb3VudCgpIHx8IHBhcmVudE9ySG9zdE5vZGUoKSk7CiAKICAgICBlYyA9IDA7CiAKQEAgLTI0
NCw3ICsyNDQsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRy
PE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZQogewogICAgIC8vIENoZWNrIHRo
YXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBjYW4g
YmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRzLgot
ICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE5vZGUoKSk7CisgICAgQVNTRVJUKHJlZkNv
dW50KCkgfHwgcGFyZW50T3JIb3N0Tm9kZSgpKTsKIAogICAgIGVjID0gMDsKIApAQCAtNDAxLDcg
KzQwMSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSogb2xkQ2hpbGQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5v
dCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNp
ZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRzLgotICAgIEFTU0VSVChyZWZDb3Vu
dCgpIHx8IHBhcmVudE5vZGUoKSk7CisgICAgQVNTRVJUKHJlZkNvdW50KCkgfHwgcGFyZW50T3JI
b3N0Tm9kZSgpKTsKIAogICAgIGVjID0gMDsKIApAQCAtNTYxLDcgKzU2MSw3IEBAIGJvb2wgQ29u
dGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0
aW9uQ29kZSYgZWMsIGJvCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIG5vZGUgaXMgbm90ICJm
bG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBkZWxldGVkIGFzIGEgc2lkZSBl
ZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCi0gICAgQVNTRVJUKHJlZkNvdW50KCkg
fHwgcGFyZW50Tm9kZSgpKTsKKyAgICBBU1NFUlQocmVmQ291bnQoKSB8fCBwYXJlbnRPckhvc3RO
b2RlKCkpOwogCiAgICAgZWMgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVu
dC5jcHAKaW5kZXggYzljMzAyMDM3NzgxNzNhNGMwNzM1YTMxN2ZlYTM0MTdiOGUzZGNhMS4uZTk4
ZWY5ZTU4YTBjZmYyYjhmOGQwZjQyNDcwMGY5OWM2OTExNjI2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWlubGluZSBEb2N1bWVudEZyYWdtZW50OjpEb2N1bWVudEZyYWdtZW50KERvY3Vt
ZW50KiBkb2N1bWVudCkKK0RvY3VtZW50RnJhZ21lbnQ6OkRvY3VtZW50RnJhZ21lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQogICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCkKIHsKICAgICBBU1NF
UlQoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJh
Z21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKaW5kZXggZDU4
OGI0ZTdiMDU3ZDJiMzI4ZTQ4YmEwMWIzN2UxMTM3NTk2OGExNC4uZjU2NzUzNmIyYjE0NzRmYjA0
MTVjMGNiMTg2MzRmNmFmNDQ2Njc4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVu
dC5oCkBAIC0zNiw5ICszNiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXJzZUhUTUwoY29uc3Qg
U3RyaW5nJiwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlz
c2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCk7CiAgICAgYm9vbCBwYXJzZVhNTChjb25z
dCBTdHJpbmcmLCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJt
aXNzaW9uID0gRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkKTsKIAotcHJpdmF0ZToKK3Byb3RlY3Rl
ZDoKICAgICBEb2N1bWVudEZyYWdtZW50KERvY3VtZW50Kik7CiAKK3ByaXZhdGU6CiAgICAgdmly
dHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVU
eXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPE5vZGU+IGNsb25lTm9kZShib29s
IGRlZXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGU0ZDkwNzU4YjVkODEwYmY4ZTA0ZWZk
NzFjZTUyNDBkNDQ1ODlhM2EuLmY4ODAxZTkzOWQ0NGU5NzZhNzBkZWZmZmRkZTFmY2ZmNzExNGVm
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgi
CkBAIC0xMDQ5LDcgKzEwNTAsNyBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hh
bmdlIGNoYW5nZSkKIHsKICAgICAvLyBSZWYgY3VycmVudFN0eWxlIGluIGNhc2UgaXQgd291bGQg
b3RoZXJ3aXNlIGJlIGRlbGV0ZWQgd2hlbiBzZXRSZW5kZXJTdHlsZSgpIGlzIGNhbGxlZC4KICAg
ICBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1cnJlbnRTdHlsZShyZW5kZXJTdHlsZSgpKTsKLSAgICBi
b29sIGhhc1BhcmVudFN0eWxlID0gcGFyZW50T3JIb3N0Tm9kZSgpID8gcGFyZW50T3JIb3N0Tm9k
ZSgpLT5yZW5kZXJTdHlsZSgpIDogZmFsc2U7CisgICAgYm9vbCBoYXNQYXJlbnRTdHlsZSA9IHBh
cmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpID8gcGFyZW50Tm9kZUZvclJlbmRlcmluZ0Fu
ZFN0eWxlKCktPnJlbmRlclN0eWxlKCkgOiBmYWxzZTsKICAgICBib29sIGhhc0RpcmVjdEFkamFj
ZW50UnVsZXMgPSBjdXJyZW50U3R5bGUgJiYgY3VycmVudFN0eWxlLT5jaGlsZHJlbkFmZmVjdGVk
QnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7CiAKICAgICBpZiAoKGNoYW5nZSA+IE5vQ2hhbmdlIHx8
IG5lZWRzU3R5bGVSZWNhbGMoKSkpIHsKQEAgLTExMzEsNyArMTEzMiw3IEBAIHZvaWQgRWxlbWVu
dDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgIH0KICAgICAvLyBGSVhNRTog
VGhpcyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcgY29tYmluYXRvcnMuIFdpbGwgYmUgbmVj
ZXNzYXJ5IGluIFhCTDIgd29ybGQuCiAgICAgaWYgKE5vZGUqIHNoYWRvdyA9IHNoYWRvd1Jvb3Qo
KSkgewotICAgICAgICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwgc2hhZG93LT5pc1RleHROb2Rl
KCkgfHwgc2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ctPm5lZWRzU3R5
bGVSZWNhbGMoKSkgeworICAgICAgICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwgc2hhZG93LT5j
aGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVSZWNhbGMoKSkgewog
ICAgICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKICAgICAgICAgICAgIHNoYWRvdy0+cmVj
YWxjU3R5bGUoY2hhbmdlKTsKICAgICAgICAgfQpAQCAtMTE0MSwxOSArMTE0MiwxOSBAQCB2b2lk
IEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICBjbGVhckNoaWxk
TmVlZHNTdHlsZVJlY2FsYygpOwogfQogCi1Ob2RlKiBFbGVtZW50OjpzaGFkb3dSb290KCkKK05v
ZGUqIEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKSBjb25zdAogewogICAgIHJldHVybiBoYXNSYXJlRGF0
YSgpID8gcmFyZURhdGEoKS0+bV9zaGFkb3dSb290IDogMDsKIH0KIAotdm9pZCBFbGVtZW50Ojpz
ZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKK3ZvaWQgRWxlbWVudDo6c2V0U2hh
ZG93Um9vdChQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IG5vZGUpCiB7CiAgICAgLy8gRklYTUU6IEJl
Y2F1c2UgdG9kYXkgdGhpcyBpcyBuZXZlciBjYWxsZWQgZnJvbSBzY3JpcHQgZGlyZWN0bHksIHdl
IGRvbid0IGhhdmUgdG8gd29ycnkKICAgICAvLyBhYm91dCBjb21wcm9taXNpbmcgRE9NIHRyZWUg
aW50ZWdyaXR5IChlZy4gbm9kZSBiZWluZyBhIHBhcmVudCBvZiB0aGlzKS4gSG93ZXZlciwKICAg
ICAvLyBvbmNlIHdlIGltcGxlbWVudCBYQkwyLCB3ZSB3aWxsIGhhdmUgdG8gYWRkIGludGVncml0
eSBjaGVja3MgaGVyZS4KICAgICByZW1vdmVTaGFkb3dSb290KCk7CiAKLSAgICBSZWZQdHI8Tm9k
ZT4gbmV3Um9vdCA9IG5vZGU7CisgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IG5ld1Jvb3QgPSBzdGF0
aWNfcG9pbnRlcl9jYXN0PFNoYWRvd1Jvb3Q+KG5vZGUpOwogICAgIGlmICghbmV3Um9vdCkKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCAwOTA1ZDdkNzc1NTc0MjdiOTYx
MDM0M2I3YzVjZTM4MTY5NmRjMDhjLi5jMjBjNDFmODg1MTM3NTUxZWJmY2U5Mzg5NzQ2MjVlOWFl
YzE0YjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTM5LDYgKzM5LDcgQEAgY2xhc3MgRE9NU3Ry
aW5nTWFwOwogY2xhc3MgRE9NVG9rZW5MaXN0OwogY2xhc3MgRWxlbWVudFJhcmVEYXRhOwogY2xh
c3MgSW50U2l6ZTsKK2NsYXNzIFNoYWRvd1Jvb3Q7CiBjbGFzcyBXZWJLaXRBbmltYXRpb25MaXN0
OwogCiBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSB7CkBAIC0yMjksOCArMjMwLDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSosIFJlbmRlclN0eWxlKik7CiAgICAgdmlydHVhbCB2b2lkIHJlY2FsY1N0eWxlKFN0eWxl
Q2hhbmdlID0gTm9DaGFuZ2UpOwogCi0gICAgTm9kZSogc2hhZG93Um9vdCgpOwotICAgIHZvaWQg
c2V0U2hhZG93Um9vdChQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICBOb2RlKiBzaGFkb3dSb290KCkg
Y29uc3Q7CisgICAgdm9pZCBzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8U2hhZG93Um9vdD4pOwog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Owog
CiAgICAgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGUoUHNldWRvSWQgPSBOT1BTRVVETyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKaW5kZXggODE4YTJjMmYwZmY5ODdkYzVjZDYz
YTk3Mjk1YmVjNWI4MGVkNGEyNS4uMTRjZWVmMmExZmUyOTUyYTcwN2QwNTc3NTViODI3OTNkYjYz
NjcyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaApAQCAtMzAsNiArMzAsOCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNoYWRvd1Jvb3Q7CisKIGNsYXNzIEVs
ZW1lbnRSYXJlRGF0YSA6IHB1YmxpYyBOb2RlUmFyZURhdGEgewogcHVibGljOgogICAgIEVsZW1l
bnRSYXJlRGF0YSgpOwpAQCAtNDIsNyArNDQsNyBAQCBwdWJsaWM6CiAKICAgICBJbnRTaXplIG1f
bWluaW11bVNpemVGb3JSZXNpemluZzsKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fY29tcHV0
ZWRTdHlsZTsKLSAgICBOb2RlKiBtX3NoYWRvd1Jvb3Q7CisgICAgU2hhZG93Um9vdCogbV9zaGFk
b3dSb290OwogCiAgICAgT3duUHRyPERhdGFzZXRET01TdHJpbmdNYXA+IG1fZGF0YXNldERPTVN0
cmluZ01hcDsKICAgICBPd25QdHI8Q2xhc3NMaXN0PiBtX2NsYXNzTGlzdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAppbmRleCAxNWNiOGE4YjQ4YTFmMjE2Mzk5MWY5ZGI2MWZkOTZhOGFhNjYzYjRkLi4xYTUzMTBm
ODg2Y2IzYzBiODhhNzg0YWU2NzMwNjc4MDA2ZjIwZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0x
NDAyLDE4ICsxNDAyLDI1IEBAIE5vZGUgKk5vZGU6Om5leHRMZWFmTm9kZSgpIGNvbnN0CiAgICAg
cmV0dXJuIDA7CiB9CiAKK0NvbnRhaW5lck5vZGUqIE5vZGU6OnBhcmVudE5vZGVGb3JSZW5kZXJp
bmdBbmRTdHlsZSgpIGNvbnN0Cit7CisgICAgQ29udGFpbmVyTm9kZSogcGFyZW50ID0gcGFyZW50
T3JIb3N0Tm9kZSgpOworICAgIHJldHVybiBwYXJlbnQgJiYgcGFyZW50LT5pc1NoYWRvd0JvdW5k
YXJ5KCkgPyBwYXJlbnQtPnNoYWRvd0hvc3QoKSA6IHBhcmVudDsKK30KKwogUmVuZGVyT2JqZWN0
KiBOb2RlOjpjcmVhdGVSZW5kZXJlckFuZFN0eWxlKCkKIHsKICAgICBBU1NFUlQoIXJlbmRlcmVy
KCkpOwogICAgIEFTU0VSVChkb2N1bWVudCgpLT5zaG91bGRDcmVhdGVSZW5kZXJlcnMoKSk7CiAK
LSAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBwYXJlbnRPckhvc3ROb2RlKCk7CisgICAgQ29u
dGFpbmVyTm9kZSogcGFyZW50ID0gcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCk7CiAg
ICAgQVNTRVJUKHBhcmVudCk7CisKICAgICBSZW5kZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyID0g
cGFyZW50LT5yZW5kZXJlcigpOwogCiAgICAgLy8gRklYTUU6IElnbm9yaW5nIGNhbkhhdmVDaGls
ZHJlbigpIGluIGEgY2FzZSBvZiBpc1NoYWRvd1Jvb3QoKSBtaWdodCBiZSB3cm9uZy4KICAgICAv
LyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyNDIzCi0gICAg
aWYgKCFwYXJlbnRSZW5kZXJlciB8fCAoIXBhcmVudFJlbmRlcmVyLT5jYW5IYXZlQ2hpbGRyZW4o
KSAmJiAhaXNTaGFkb3dSb290KCkpIHx8ICFwYXJlbnQtPmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVy
ZXIodGhpcykpCisgICAgaWYgKCFwYXJlbnRSZW5kZXJlciB8fCAoIXBhcmVudFJlbmRlcmVyLT5j
YW5IYXZlQ2hpbGRyZW4oKSAmJiAhKGlzU2hhZG93Um9vdCgpIHx8IHBhcmVudE5vZGUoKS0+aXNT
aGFkb3dCb3VuZGFyeSgpKSkgfHwgIXBhcmVudC0+Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcih0
aGlzKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxl
ID0gc3R5bGVGb3JSZW5kZXJlcigpOwpAQCAtMTQ2NSw3ICsxNDcyLDcgQEAgdm9pZCBOb2RlOjpj
cmVhdGVSZW5kZXJlcklmTmVlZGVkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gTm90ZTog
QWRkaW5nIG5ld1JlbmRlcmVyIGluc3RlYWQgb2YgcmVuZGVyZXIoKS4gcmVuZGVyZXIoKSBtYXkg
YmUgYSBjaGlsZCBvZiBuZXdSZW5kZXJlci4KLSAgICBwYXJlbnRPckhvc3ROb2RlKCktPnJlbmRl
cmVyKCktPmFkZENoaWxkKG5ld1JlbmRlcmVyLCBuZXh0UmVuZGVyZXIoKSk7CisgICAgcGFyZW50
Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCktPnJlbmRlcmVyKCktPmFkZENoaWxkKG5ld1JlbmRl
cmVyLCBuZXh0UmVuZGVyZXIoKSk7CiB9CiAKIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IE5vZGU6
OnN0eWxlRm9yUmVuZGVyZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggYzIyNWRiYWM4ZmY4OTFkZjljZmUy
NjVlYzI2YjgyZGUxYzRiYjEzYi4uYzQ5MmI0ZDRiMjhmOWE1ZTk3MGVkMDJhNTRhNDMxNjU3OGQ3
ODJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCkBAIC0yMDMsNiArMjAzLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBpc0NoYXJhY3RlckRhdGFOb2RlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBib29sIGlzRG9jdW1lbnROb2RlKCkgY29uc3Q7CiAgICAgYm9vbCBpc1NoYWRvd1Jvb3QoKSBj
b25zdCB7IHJldHVybiBnZXRGbGFnKElzU2hhZG93Um9vdEZsYWcpOyB9CisgICAgLy8gRklYTUU6
IFJlbW92ZSB0aGlzIHdoZW4gYWxsIHNoYWRvdyByb290cyBhcmUgU2hhZG93Um9vdHMuCisgICAg
dmlydHVhbCBib29sIGlzU2hhZG93Qm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIE5vZGUqIHNoYWRvd0FuY2VzdG9yTm9kZSgpOwogICAgIE5vZGUqIHNoYWRvd1RyZWVSb290
Tm9kZSgpOwogICAgIGJvb2wgaXNJblNoYWRvd1RyZWUoKTsKQEAgLTQ0NCw2ICs0NDYsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKTsK
ICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJl
cihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CisgICAgQ29udGFpbmVyTm9kZSogcGFyZW50
Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgY29uc3Q7CiAgICAgCiAgICAgLy8gV3JhcHBlciBm
b3Igbm9kZXMgdGhhdCBkb24ndCBoYXZlIGEgcmVuZGVyZXIsIGJ1dCBzdGlsbCBjYWNoZSB0aGUg
c3R5bGUgKGxpa2UgSFRNTE9wdGlvbkVsZW1lbnQpLgogICAgIFJlbmRlclN0eWxlKiByZW5kZXJT
dHlsZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0MjQ5
NDBiYWFhZWRmY2U4ZDYyNzdiZWRlMmM3MzQyY2QxNzFiZWUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290OjpjcmVhdGUoRG9jdW1l
bnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhZG93Um9vdChkb2N1
bWVudCkpOworfQorCitTaGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCkK
KyAgICA6IERvY3VtZW50RnJhZ21lbnQoZG9jdW1lbnQpCit7CisgICAgQVNTRVJUKGRvY3VtZW50
KTsKK30KKwordm9pZCBTaGFkb3dSb290OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2Up
Cit7CisgICAgZm9yIChOb2RlKiBuID0gZmlyc3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxp
bmcoKSkKKyAgICAgICAgbi0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKKworICAgIGNsZWFyTmVlZHNT
dHlsZVJlY2FsYygpOworICAgIGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7Cit9CisKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0N2M4NmUxYzljYjg5YjFlYmNjYzVl
ZDhjZGNjMGYwZTYyNzAzNDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNoYWRvd1Jvb3RfaAorI2Rl
ZmluZSBTaGFkb3dSb290X2gKKworI2luY2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKKworY2xhc3MgU2hhZG93Um9vdCA6
IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTaGFkb3dSb290PiBjcmVhdGUoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1No
YWRvd0JvdW5kYXJ5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCBy
ZWNhbGNTdHlsZShTdHlsZUNoYW5nZSA9IE5vQ2hhbmdlKTsKKworcHJpdmF0ZToKKyAgICBTaGFk
b3dSb290KERvY3VtZW50Kik7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggYjkwMzM1ZWM0MjkyNTcw
NWU0YWUzOGE3NGQwNmFjYWRhZTgyZDU4ZC4uY2I0MmQ5NzFmOTBmZGRhNjUzZjBhZGY3ZWY3Nzg0
ZTVkYjJjYzk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiU1NMS2V5R2VuZXJhdG9yLmgiCisj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAKQEAgLTY3LDE1ICs2OCwyMSBAQCBpbmxpbmUgSFRNTEtleWdlbkVs
ZW1lbnQ6OkhUTUxLZXlnZW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZQogICAgIEFTU0VSVChoYXNUYWdOYW1lKGtleWdlblRhZykpOwogCiAgICAgLy8gQ3JlYXRl
IGEgc2VsZWN0IGVsZW1lbnQgd2l0aCBvbmUgb3B0aW9uIGVsZW1lbnQgZm9yIGVhY2gga2V5IHNp
emUuCi0gICAgUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiBzZWxlY3QgPSBLZXlnZW5TZWxlY3RF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIFZlY3RvcjxTdHJpbmc+IGtleXM7CiAgICAg
Z2V0U3VwcG9ydGVkS2V5U2l6ZXMoa2V5cyk7CisKKyAgICBSZWZQdHI8SFRNTFNlbGVjdEVsZW1l
bnQ+IHNlbGVjdCA9IEtleWdlblNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNp
emUoKTsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0aW9uID0g
SFRNTE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgdGhpcy0+Zm9ybSgpKTsKLSAgICAg
ICAgc2VsZWN0LT5wYXJzZXJBZGRDaGlsZChvcHRpb24pOwotICAgICAgICBvcHRpb24tPnBhcnNl
ckFkZENoaWxkKFRleHQ6OmNyZWF0ZShkb2N1bWVudCwga2V5c1tpXSkpOworICAgICAgICBzZWxl
Y3QtPmFwcGVuZENoaWxkKG9wdGlvbiwgZWMpOworICAgICAgICBvcHRpb24tPmFwcGVuZENoaWxk
KFRleHQ6OmNyZWF0ZShkb2N1bWVudCwga2V5c1tpXSksIGVjKTsKICAgICB9Ci0gICAgc2V0U2hh
ZG93Um9vdChzZWxlY3QpOworCisgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvdyA9IFNoYWRv
d1Jvb3Q6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgc2hhZG93LT5hcHBlbmRDaGlsZChzZWxlY3Qs
IGVjKTsKKworICAgIHNldFNoYWRvd1Jvb3Qoc2hhZG93KTsKIH0KIAogUGFzc1JlZlB0cjxIVE1M
S2V5Z2VuRWxlbWVudD4gSFRNTEtleWdlbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkK
QEAgLTg3LDcgKzk0LDcgQEAgdm9pZCBIVE1MS2V5Z2VuRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogewogICAgIC8vIFJlZmxlY3QgZGlzYWJsZWQgYXR0cmli
dXRlIG9uIHRoZSBzaGFkb3cgc2VsZWN0IGVsZW1lbnQKICAgICBpZiAoYXR0ci0+bmFtZSgpID09
IGRpc2FibGVkQXR0cikKLSAgICAgICAgc2VsZWN0U2hhZG93KCktPnNldEF0dHJpYnV0ZShhdHRy
LT5uYW1lKCksIGF0dHItPnZhbHVlKCkpOworICAgICAgICBzaGFkb3dTZWxlY3QoKS0+c2V0QXR0
cmlidXRlKGF0dHItPm5hbWUoKSwgYXR0ci0+dmFsdWUoKSk7CiAKICAgICBpZiAoYXR0ci0+bmFt
ZSgpID09IGNoYWxsZW5nZUF0dHIpCiAgICAgICAgIG1fY2hhbGxlbmdlID0gYXR0ci0+dmFsdWUo
KTsKQEAgLTEwMiw3ICsxMDksNyBAQCBib29sIEhUTUxLZXlnZW5FbGVtZW50OjphcHBlbmRGb3Jt
RGF0YShGb3JtRGF0YUxpc3QmIGVuY29kZWRfdmFsdWVzLCBib29sKQogICAgIC8vIE9ubHkgUlNB
IGlzIHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUuCiAgICAgaWYgKCFtX2tleVR5cGUuaXNOdWxsKCkg
JiYgIWVxdWFsSWdub3JpbmdDYXNlKG1fa2V5VHlwZSwgInJzYSIpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgU3RyaW5nIHZhbHVlID0gc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3Ry
aW5nKHNlbGVjdFNoYWRvdygpLT5zZWxlY3RlZEluZGV4KCksIG1fY2hhbGxlbmdlLCBkb2N1bWVu
dCgpLT5iYXNlVVJMKCkpOworICAgIFN0cmluZyB2YWx1ZSA9IHNpZ25lZFB1YmxpY0tleUFuZENo
YWxsZW5nZVN0cmluZyhzaGFkb3dTZWxlY3QoKS0+c2VsZWN0ZWRJbmRleCgpLCBtX2NoYWxsZW5n
ZSwgZG9jdW1lbnQoKS0+YmFzZVVSTCgpKTsKICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBlbmNvZGVkX3ZhbHVlcy5hcHBlbmREYXRhKG5hbWUoKSwg
dmFsdWUudXRmOCgpKTsKQEAgLTExNywxMiArMTI0LDEzIEBAIGNvbnN0IEF0b21pY1N0cmluZyYg
SFRNTEtleWdlbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAKIHZvaWQgSFRNTEtl
eWdlbkVsZW1lbnQ6OnJlc2V0KCkKIHsKLSAgICBzdGF0aWNfY2FzdDxIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Kj4oc2VsZWN0U2hhZG93KCkpLT5yZXNldCgpOworICAgIHN0YXRpY19jYXN0PEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQqPihzaGFkb3dTZWxlY3QoKSktPnJlc2V0KCk7CiB9CiAKLUhUTUxT
ZWxlY3RFbGVtZW50KiBIVE1MS2V5Z2VuRWxlbWVudDo6c2VsZWN0U2hhZG93KCkKK0hUTUxTZWxl
Y3RFbGVtZW50KiBIVE1MS2V5Z2VuRWxlbWVudDo6c2hhZG93U2VsZWN0KCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihzaGFkb3dSb290KCkpOwor
ICAgIEFTU0VSVChzaGFkb3dSb290KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MU2Vs
ZWN0RWxlbWVudCo+KHNoYWRvd1Jvb3QoKS0+Zmlyc3RDaGlsZCgpKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaAppbmRleCAwMjAwM2U4
MGQyZDhmODFiNzY5YTkyMTQzMGRjZmE0ZDZjMDM1MzIwLi44ODc4MmM4OGMzNzk2MTYzOWJiOGM2
Nzk3YWU5MWQ0ZTA3NDg2NzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxL
ZXlnZW5FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVu
dC5oCkBAIC01MSw3ICs1MSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXQo
KTsKIAotICAgIEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3RTaGFkb3coKTsKKyAgICBIVE1MU2Vs
ZWN0RWxlbWVudCogc2hhZG93U2VsZWN0KCkgY29uc3Q7CiAKICAgICBBdG9taWNTdHJpbmcgbV9j
aGFsbGVuZ2U7CiAgICAgQXRvbWljU3RyaW5nIG1fa2V5VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZXRlckVsZW1lbnQuY3BwCmluZGV4IDc2ODcyODNlYjc5ZDU4YTM4MTVhNmMyODM5N2Q0
ZDk5NmFlMzNiMmEuLmQ5NjYxOWFmNDM2OThhMmQ5YzYxNTIzYTAwMDIyNDY5NGYxZmJlM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJNZXRlclNoYWRvd0Vs
ZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJNZXRlci5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTIzMCw3ICsyMzEsOSBAQCB2b2lkIEhUTUxNZXRlckVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKQogICAgIG1fdmFsdWUgPSBNZXRlclZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KCkpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIGJhci0+YXBwZW5kQ2hpbGQobV92
YWx1ZSwgZWMpOwotICAgIHNldFNoYWRvd1Jvb3QoYmFyKTsKKyAgICBSZWZQdHI8U2hhZG93Um9v
dD4gc2hhZG93ID0gU2hhZG93Um9vdDo6Y3JlYXRlKGRvY3VtZW50KCkpOworICAgIHNoYWRvdy0+
YXBwZW5kQ2hpbGQoYmFyLCBlYyk7CisgICAgc2V0U2hhZG93Um9vdChzaGFkb3cpOwogfQogCiB9
IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jl
c3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5j
cHAKaW5kZXggZGZiOGQ0NDU4ZTA0ZjA5MDE5ZDU4YzY5MGNkN2RlMDA2YWRiOWU4Yi4uOGNjYTU0
ZWFlZjljM2NhMzYyMzAyODRmYjQ1ODEwZWY5MjM4ZDgxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
SFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIlByb2dyZXNzU2hhZG93RWxlbWVudC5oIgog
I2luY2x1ZGUgIlJlbmRlclByb2dyZXNzLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2lu
Y2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTM3
LDkgKzEzOCwxMSBAQCB2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUoKQogewogICAgIFJlZlB0cjxQcm9ncmVzc0JhckVsZW1lbnQ+IGJhciA9IFByb2dyZXNzQmFy
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwogICAgIG1fdmFsdWUgPSBQcm9ncmVzc1ZhbHVl
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KCkpOwotICAgIEV4Y2VwdGlvbkNvZGUgZSA9IDA7Ci0g
ICAgYmFyLT5hcHBlbmRDaGlsZChtX3ZhbHVlLCBlKTsKLSAgICBzZXRTaGFkb3dSb290KGJhcik7
CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgYmFyLT5hcHBlbmRDaGlsZChtX3ZhbHVl
LCBlYyk7CisgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvdyA9IFNoYWRvd1Jvb3Q6OmNyZWF0
ZShkb2N1bWVudCgpKTsKKyAgICBzaGFkb3ctPmFwcGVuZENoaWxkKGJhciwgZWMpOworICAgIHNl
dFNoYWRvd1Jvb3Qoc2hhZG93KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmNwcAppbmRleCBlNzA4YTM1NjI4ZjAxZTZlNWQzOWNjNmFlMDkzMzEyOTI1OGI3NDI2
Li4yMjYzNmJlNTM1NjM3ZjA5ZjVkNDMxMTRiMDg1ZmRlYzQ0MTlkMzc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0
LmgiCiAjaW5jbHVkZSAiUmVzZXRJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJTZWFyY2hJbnB1dFR5
cGUuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU3VibWl0SW5wdXRUeXBl
LmgiCiAjaW5jbHVkZSAiVGVsZXBob25lSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiVGV4dElucHV0
VHlwZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCBmN2VlNjc0
NzRkMzJiOTQ2ODk5NjUyOGM1MWExZmE3NWFiZmY3ZWZlLi45ZTJiMGYxNmM1MjQzNmIyODIwZGVj
NWJkODM4YTk2ZTY5MTEyYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNw
cApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIKKyNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU2xpZGVyVGh1bWJFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiU3RlcFJhbmdlLmgiCiAjaW5jbHVkZSA8bGltaXRzPgpAQCAtMTQ4LDcgKzE0OSw3IEBAIHZv
aWQgUmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50
KQogICAgIGlmIChldmVudC0+YnV0dG9uKCkgIT0gTGVmdEJ1dHRvbiB8fCBldmVudC0+dGFyZ2V0
KCkgIT0gZWxlbWVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoU2xpZGVyVGh1bWJF
bGVtZW50KiB0aHVtYiA9IHRvU2xpZGVyVGh1bWJFbGVtZW50KGVsZW1lbnQoKS0+c2hhZG93Um9v
dCgpKSkKKyAgICBpZiAoU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYiA9IHNoYWRvd1NsaWRlclRo
dW1iKCkpCiAgICAgICAgIHRodW1iLT5kcmFnRnJvbShldmVudC0+YWJzb2x1dGVMb2NhdGlvbigp
KTsKIH0KIApAQCAtMTk2LDcgKzE5NywxMCBAQCB2b2lkIFJhbmdlSW5wdXRUeXBlOjpoYW5kbGVL
ZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCiAKIHZvaWQgUmFuZ2VJbnB1dFR5cGU6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewotICAgIGVsZW1lbnQoKS0+c2V0U2hhZG93Um9vdChT
bGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpKTsKKyAgICBS
ZWZQdHI8U2hhZG93Um9vdD4gc2hhZG93ID0gU2hhZG93Um9vdDo6Y3JlYXRlKGVsZW1lbnQoKS0+
ZG9jdW1lbnQoKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgc2hhZG93LT5hcHBl
bmRDaGlsZChTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkp
LCBlYyk7CisgICAgZWxlbWVudCgpLT5zZXRTaGFkb3dSb290KHNoYWRvdyk7CiB9CiAKIFJlbmRl
ck9iamVjdCogUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVu
YSwgUmVuZGVyU3R5bGUqKSBjb25zdApAQCAtMjQxLDcgKzI0NSw3IEBAIHZvaWQgUmFuZ2VJbnB1
dFR5cGU6Om1pbk9yTWF4QXR0cmlidXRlQ2hhbmdlZCgpCiAKIHZvaWQgUmFuZ2VJbnB1dFR5cGU6
OnZhbHVlQ2hhbmdlZCgpCiB7Ci0gICAgdG9TbGlkZXJUaHVtYkVsZW1lbnQoZWxlbWVudCgpLT5z
aGFkb3dSb290KCkpLT5zZXRQb3NpdGlvbkZyb21WYWx1ZSgpOworICAgIHNoYWRvd1NsaWRlclRo
dW1iKCktPnNldFBvc2l0aW9uRnJvbVZhbHVlKCk7CiB9CiAKIFN0cmluZyBSYW5nZUlucHV0VHlw
ZTo6ZmFsbGJhY2tWYWx1ZSgpCkBAIC0yNjUsNCArMjY5LDEwIEBAIGJvb2wgUmFuZ2VJbnB1dFR5
cGU6OnNob3VsZFJlc3BlY3RMaXN0QXR0cmlidXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
U2xpZGVyVGh1bWJFbGVtZW50KiBSYW5nZUlucHV0VHlwZTo6c2hhZG93U2xpZGVyVGh1bWIoKSBj
b25zdAoreworICAgIE5vZGUqIHNoYWRvdyA9IGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpOworICAg
IHJldHVybiBzaGFkb3cgPyB0b1NsaWRlclRodW1iRWxlbWVudChzaGFkb3ctPmZpcnN0Q2hpbGQo
KSkgOiAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmgKaW5kZXggMzc1Mjk4NTIwMmFkMjE0MWNhMDk3NTRlOTk3ZGM5YjBkYjhjYzAw
Ny4uNzVlN2ExNzQ1YzZlZWNkNzM1NWY0ZDAyY2IwNzhjODhiZTlkYjQ5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIFNsaWRlclRodW1iRWxlbWVudDsKKwogY2xhc3MgUmFuZ2VJbnB1dFR5
cGUgOiBwdWJsaWMgSW5wdXRUeXBlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJ
bnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Kik7CkBAIC02Nyw2ICs2OSw4IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpOwogICAgIHZpcnR1YWwg
U3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKTsKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKTsKKworICAgIFNsaWRlclRo
dW1iRWxlbWVudCogc2hhZG93U2xpZGVyVGh1bWIoKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1l
c3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKaW5k
ZXggNTlhMTQ2NzllM2IwOWM4YTYwMjE3OTc4OTgyZTUzZWRiY2RlZWIxYS4uODhhZmVlN2I0NjMx
ZTE3MjIzYWE0ZTk4NzhhYjkwY2EwNWI2ZWI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxp
ZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAKQEAgLTEyOSwxMiArMTMwLDkgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6YnVp
bGRCdWJibGVUcmVlKFRpbWVyPFZhbGlkYXRpb25NZXNzYWdlPiopCiAgICAgLy8gY29udGFpbnMg
bm9uLWFic29sdXRlIG9yIG5vbi1maXhlZCByZW5kZXJlcnMgYXMgY2hpbGRyZW4uCiAgICAgbV9i
dWJibGUtPmdldElubGluZVN0eWxlRGVjbCgpLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVBvc2l0
aW9uLCBDU1NWYWx1ZUFic29sdXRlKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAv
LyBGSVhNRTogV2UgbmVlZCBhIHdheSB0byBob3N0IG11bHRpcGxlIHNoYWRvdyByb290cyBpbiBh
IHNpbmdsZSBub2RlLCBvcgotICAgIC8vIHRvIGluaGVyaXQgYW4gZXhpc3Rpbmcgc2hhZG93IHRy
ZWUuCi0gICAgaWYgKGhvc3QtPnNoYWRvd1Jvb3QoKSkKLSAgICAgICAgaG9zdC0+c2hhZG93Um9v
dCgpLT5hcHBlbmRDaGlsZChtX2J1YmJsZS5nZXQoKSwgZWMpOwotICAgIGVsc2UKLSAgICAgICAg
aG9zdC0+c2V0U2hhZG93Um9vdChtX2J1YmJsZSk7CisgICAgaWYgKCFob3N0LT5zaGFkb3dSb290
KCkpCisgICAgICAgIGhvc3QtPnNldFNoYWRvd1Jvb3QoU2hhZG93Um9vdDo6Y3JlYXRlKGRvYykp
OworICAgIGhvc3QtPnNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQobV9idWJibGUuZ2V0KCksIGVj
KTsKIAogICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gY2xpcHBlciA9IEVsZW1lbnRXaXRoUHNldWRv
SWQ6OmNyZWF0ZShkb2MsICItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93LWNsaXBwZXIi
KTsKICAgICBjbGlwcGVyLT5hcHBlbmRDaGlsZChFbGVtZW50V2l0aFBzZXVkb0lkOjpjcmVhdGUo
ZG9jLCAiLXdlYmtpdC12YWxpZGF0aW9uLWJ1YmJsZS1hcnJvdyIpLCBlYyk7CkBAIC0xNjEsMTIg
KzE1OSw4IEBAIHZvaWQgVmFsaWRhdGlvbk1lc3NhZ2U6OmRlbGV0ZUJ1YmJsZVRyZWUoVGltZXI8
VmFsaWRhdGlvbk1lc3NhZ2U+KikKICAgICBpZiAobV9idWJibGUpIHsKICAgICAgICAgbV9idWJi
bGVNZXNzYWdlID0gMDsKICAgICAgICAgSFRNTEVsZW1lbnQqIGhvc3QgPSB0b0hUTUxFbGVtZW50
KG1fZWxlbWVudCk7Ci0gICAgICAgIGlmIChtX2J1YmJsZS0+aXNTaGFkb3dSb290KCkpCi0gICAg
ICAgICAgICBob3N0LT5zZXRTaGFkb3dSb290KDApOwotICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgICAgICAgICBob3N0LT5zaGFkb3dSb290KCktPnJl
bW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBlYyk7Ci0gICAgICAgIH0KKyAgICAgICAgRXhjZXB0
aW9uQ29kZSBlYzsKKyAgICAgICAgaG9zdC0+c2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1
YmJsZS5nZXQoKSwgZWMpOwogICAgICAgICBtX2J1YmJsZSA9IDA7CiAgICAgfQogICAgIG1fbWVz
c2FnZSA9IFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5jcHAKaW5kZXggNjM1MzI1OTMzMjIxMmRmMDdhZTFmNzhiZTg3NDBiZDQy
OTM2YjdmYi4uOGEwNmNiMzNmYjVjYmZjYTAwZmZjOGFlNmRmZWY1NGQ5MWM3NGRiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBA
IC0xMDUsNyArMTA1LDcgQEAgdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OmRyYWdGcm9tKGNvbnN0
IEludFBvaW50JiBwb2ludCkKIAogdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNldFBvc2l0aW9u
RnJvbVBvaW50KGNvbnN0IEludFBvaW50JiBwb2ludCkKIHsKLSAgICBIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihzaGFkb3dIb3N0KCkpOwor
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gaG9zdElucHV0KCk7CiAgICAgQVNTRVJUKGlu
cHV0KTsKIAogICAgIGlmICghaW5wdXQtPnJlbmRlcmVyKCkgfHwgIXJlbmRlcmVyKCkpCkBAIC0x
OTgsNiArMTk4LDEyIEBAIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpkZXRhY2goKQogICAgIEhU
TUxEaXZFbGVtZW50OjpkZXRhY2goKTsKIH0KIAorSFRNTElucHV0RWxlbWVudCogU2xpZGVyVGh1
bWJFbGVtZW50Ojpob3N0SW5wdXQoKQoreworICAgIEFTU0VSVChwYXJlbnROb2RlKCkpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4ocGFyZW50Tm9kZSgpLT5zaGFk
b3dIb3N0KCkpOworfQorCiBjb25zdCBBdG9taWNTdHJpbmcmIFNsaWRlclRodW1iRWxlbWVudDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBzbGlkZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci10aHVtYiIpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKaW5kZXggOTQxNGFj
NDhhNjkxZTA4YWFjY2Q0Mjg1NzFiYjVlYWZhM2E5YWJkOS4uMmZhNjBjYjVlNGI5MDBkYTFiNGRj
YjQyZTg2ZGE0YmNjYzUzMGQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmgKQEAgLTQxLDYgKzQxLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgSFRNTEVsZW1lbnQ7CitjbGFzcyBIVE1MSW5wdXRFbGVtZW50OwogY2xhc3Mg
RXZlbnQ7CiBjbGFzcyBGbG9hdFBvaW50OwogCkBAIC02Miw2ICs2Myw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzdGFydERyYWdnaW5nKCk7CiAgICAgdm9pZCBzdG9wRHJhZ2dpbmcoKTsKICAgICB2
b2lkIHNldFBvc2l0aW9uRnJvbVBvaW50KGNvbnN0IEludFBvaW50Jik7CisgICAgSFRNTElucHV0
RWxlbWVudCogaG9zdElucHV0KCk7CiAKICAgICBGbG9hdFBvaW50IG1fb2Zmc2V0VG9UaHVtYjsK
ICAgICBib29sIG1faW5EcmFnTW9kZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
TWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDQ5YzQ1Nzg0YWE3NzI5MTQ0NzEyMjZiZTUz
OTdkNzhlNGFjYjI4NWUuLmI4YWQzZDM4NDIwNzJmZDEzZGJmNzgzZTc4ODIzMDlmNzFkNjA4MDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRz
LmNwcApAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50Ojph
dHRhY2goKQogICAgICAgICBwYXJlbnROb2RlKCktPnJlbmRlcmVyKCktPmFkZENoaWxkKHJlbmRl
cmVyLCBzaWJsaW5nID8gc2libGluZy0+cmVuZGVyZXIoKSA6IDApOwogICAgIH0gIAogICAgIENv
bnRhaW5lck5vZGU6OmF0dGFjaCgpOwotICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIE1laWRhQ29u
dHJvbElucHV0IGNpcmN1bXZlbnRzIHRoZSBub3JtYWwgYXR0YWNobWVudAorICAgIC8vIEZJWE1F
OiBDdXJyZW50bHksIE1lZGlhQ29udHJvbElucHV0IGNpcmN1bXZlbnRzIHRoZSBub3JtYWwgYXR0
YWNobWVudAogICAgIC8vIGFuZCBzdHlsZSByZWNhbGMgY3ljbGUgYW5kIHRodXMgd2UgbmVlZCB0
byBhZGQgZXh0cmEgbG9naWMgdG8gYmUgYXdhcmUgb2YKICAgICAvLyB0aGUgc2hhZG93IERPTS4g
UmVtb3ZlIHRoaXMgb25jZSBhbGwgbWVkaWEgY29udHJvbHMgYXJlIHRyYW5zaXRpb25lZCB0byB1
c2UgdGhlIHJlZ3VsYXIKICAgICAvLyBzdHlsZSBjYWxjdWxhdGlvbi4KQEAgLTQ4MSw3ICs0ODEs
NyBAQCB2b2lkIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6dXBkYXRlU3R5bGUoKQogICAgIGVs
c2UgaWYgKHJlbmRlcmVyKCkpCiAgICAgICAgIHJlbmRlcmVyKCktPnNldFN0eWxlKHN0eWxlLmdl
dCgpKTsKIAotICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIE1laWRhQ29udHJvbElucHV0IGNpcmN1
bXZlbnRzIHRoZSBub3JtYWwgYXR0YWNobWVudAorICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIE1l
ZGlhQ29udHJvbElucHV0IGNpcmN1bXZlbnRzIHRoZSBub3JtYWwgYXR0YWNobWVudAogICAgIC8v
IGFuZCBzdHlsZSByZWNhbGMgY3ljbGUgYW5kIHRodXMgd2UgbmVlZCB0byBhZGQgZXh0cmEgbG9n
aWMgdG8gYmUgYXdhcmUgb2YKICAgICAvLyB0aGUgc2hhZG93IERPTS4gUmVtb3ZlIHRoaXMgb25j
ZSBhbGwgbWVkaWEgY29udHJvbHMgYXJlIHRyYW5zaXRpb25lZCB0byB1c2UKICAgICAvLyB0aGUg
bmV3IHNoYWRvdyBET00uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2xpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3Bw
CmluZGV4IDE2NjFiN2EyYzU1Njc5N2YyNGI1NTc2MWFmMjNiYTllNjY1MGRhN2QuLmFkNWFiMWFk
ZmJlODQ4ZGY5ZTJmMmI2MTk2ZDNiYjI5NDI2OGRhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFRNTFBh
cnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVk
ZSAiTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJSZW5kZXJMYXll
ci5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpA
QCAtMTAxLDcgKzEwMiw3IEBAIHZvaWQgUmVuZGVyU2xpZGVyOjpjb21wdXRlUHJlZmVycmVkTG9n
aWNhbFdpZHRocygpCiAKIEludFJlY3QgUmVuZGVyU2xpZGVyOjp0aHVtYlJlY3QoKQogewotICAg
IFNsaWRlclRodW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJFbGVtZW50KCk7
CisgICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1lbnQgPSBzaGFkb3dTbGlkZXJUaHVt
YigpOwogICAgIGlmICghdGh1bWJFbGVtZW50KQogICAgICAgICByZXR1cm4gSW50UmVjdCgpOwog
CkBAIC0xMjgsNyArMTI5LDcgQEAgdm9pZCBSZW5kZXJTbGlkZXI6OmxheW91dCgpCiB7CiAgICAg
QVNTRVJUKG5lZWRzTGF5b3V0KCkpOwogCi0gICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVs
ZW1lbnQgPSBzbGlkZXJUaHVtYkVsZW1lbnQoKTsKKyAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRo
dW1iRWxlbWVudCA9IHNoYWRvd1NsaWRlclRodW1iKCk7CiAgICAgUmVuZGVyQm94KiB0aHVtYiA9
IHRodW1iRWxlbWVudCA/IHRvUmVuZGVyQm94KHRodW1iRWxlbWVudC0+cmVuZGVyZXIoKSkgOiAw
OwogCiAgICAgSW50U2l6ZSBiYXNlU2l6ZShib3JkZXJBbmRQYWRkaW5nV2lkdGgoKSwgYm9yZGVy
QW5kUGFkZGluZ0hlaWdodCgpKTsKQEAgLTE3NiwxNCArMTc3LDE1IEBAIHZvaWQgUmVuZGVyU2xp
ZGVyOjpsYXlvdXQoKQogICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAotU2xpZGVyVGh1
bWJFbGVtZW50KiBSZW5kZXJTbGlkZXI6OnNsaWRlclRodW1iRWxlbWVudCgpIGNvbnN0CitTbGlk
ZXJUaHVtYkVsZW1lbnQqIFJlbmRlclNsaWRlcjo6c2hhZG93U2xpZGVyVGh1bWIoKSBjb25zdAog
ewotICAgIHJldHVybiB0b1NsaWRlclRodW1iRWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4o
bm9kZSgpKS0+c2hhZG93Um9vdCgpKTsKKyAgICBOb2RlKiBzaGFkb3cgPSBzdGF0aWNfY2FzdDxF
bGVtZW50Kj4obm9kZSgpKS0+c2hhZG93Um9vdCgpOworICAgIHJldHVybiBzaGFkb3cgPyB0b1Ns
aWRlclRodW1iRWxlbWVudChzaGFkb3ctPmZpcnN0Q2hpbGQoKSkgOiAwOwogfQogCiBib29sIFJl
bmRlclNsaWRlcjo6aW5EcmFnTW9kZSgpIGNvbnN0CiB7Ci0gICAgU2xpZGVyVGh1bWJFbGVtZW50
KiB0aHVtYkVsZW1lbnQgPSBzbGlkZXJUaHVtYkVsZW1lbnQoKTsKKyAgICBTbGlkZXJUaHVtYkVs
ZW1lbnQqIHRodW1iRWxlbWVudCA9IHNoYWRvd1NsaWRlclRodW1iKCk7CiAgICAgcmV0dXJuIHRo
dW1iRWxlbWVudCAmJiB0aHVtYkVsZW1lbnQtPmluRHJhZ01vZGUoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCmluZGV4IDAxNjJiNzEwN2JhZDVlZTZjNTMyZDU1
OWJjZTU1NDQxMGM5MGUxMTcuLjRlMTdmMzBkOGE4MTFkMTdkM2UyODg0N2YyN2ZiMjllYjM2NWU1
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKQEAgLTQ2LDggKzQ2
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7
CiAKICAgICAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHksIHRoZSBsb2dpYyBvZiBtYW5pcHVsYXRp
bmcgc2xpZGVyIHRodW1iIHNob3VsZCBtb3ZlIHRvCi0gICAgICAgIC8vIFNsaWRlclRodW1iRWxl
bWVudCBhbmQgYWNjZXNzaW5nIHNsaWRlclRodW1iRWxlbWVudCBzaG91bGQgbm90IGJlIG5lY2Vz
c2FyeSBpbiB0aGlzIGNsYXNzLgotICAgICAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHNsaWRlclRo
dW1iRWxlbWVudCgpIGNvbnN0OworICAgICAgICAvLyBTbGlkZXJUaHVtYkVsZW1lbnQgYW5kIGFj
Y2Vzc2luZyBzaGFkb3dTbGlkZXJUaHVtYiBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeSBpbiB0aGlz
IGNsYXNzLgorICAgICAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHNoYWRvd1NsaWRlclRodW1iKCkg
Y29uc3Q7CiAKICAgICAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQ
cm9wYWdhdGlvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88682</attachid>
            <date>2011-04-07 13:26:52 -0700</date>
            <delta_ts>2011-04-07 13:53:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57813-20110407132651.patch</filename>
            <type>text/plain</type>
            <size>55597</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMxODAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwYzliYmZjZTI2ZmRlZDQwYzdhMWVj
ZWEzZmMyMjliYWM3MDAyNTlmLi43NmU2ZDIyOGFhYTliNThkMThiMTE0YTA3ZDIwOTYyYmY0YzU5
MTk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQtMDYgIERvbWluaWMgQ29vbmV5ICA8
ZG9taW5pY2NAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBMZXQgc2hhZG93IERPTSBoYXZlIGEgbGlzdCBvZiBub2RlcyBhdCB0aGUg
dG9wIGxldmVsIG9mIGEgc2hhZG93LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTc4MTMKKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxLZXlnZW5FbGVt
ZW50L2tleWdlbi1leHBlY3RlZC50eHQ6IHNoYWRvdyBET00gY2hhbmdlZAorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sOiBhZGRlZCBhc3NlcnRpb24gb24g
c2hhZG93CisKIDIwMTEtMDQtMDcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4tZXhwZWN0ZWQu
dHh0CmluZGV4IDc0NWYwMTY3ZjYzM2JiYjU2MTcwNDFhZjU3MDk5MmIxZGM5MmI1OTMuLmE4YjJl
ZTU5NDMyY2RmYTA4MjA2NmYyMDQ0NWY0ZDFlYTZhNDAwYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEtleWdlbkVsZW1lbnQva2V5Z2VuLWV4cGVjdGVkLnR4
dApAQCAtMiw4ICsyLDkgQEAKIFRoaXMgdGVzdHMgdGhlIGtleWdlbiBlbGVtZW50LgogCiBQQVNT
IGtleWdlbi5vcHRpb25zIGlzIHVuZGVmaW5lZAotUEFTUyBzaGFkb3cudGFnTmFtZSBpcyAiU0VM
RUNUIgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHNoYWRvdykgaXMgbnVs
bAorUEFTUyBzaGFkb3cuZmlyc3RDaGlsZC50YWdOYW1lIGlzICJTRUxFQ1QiCitQQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3Qoc2hhZG93KSBpcyB1bmRlZmluZWQKK1BBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChzaGFkb3cuZmlyc3RDaGlsZCkgaXMgbnVsbAog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sCmluZGV4
IGVkOWNkY2FjZWZlZmZmMzllYzJkY2EyNDgzMjdjNDdlMGJiOTQxOGMuLmNiODgzMTYxNWU1Njll
ZDgyNmRmNjc5ZWU4MTQzOTY3ZTM4OWFhNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sCkBAIC0xNSw4ICsxNSw5IEBAIHNob3Vs
ZEJlKCdrZXlnZW4ub3B0aW9ucycsICd1bmRlZmluZWQnKTsgIC8vIGtleWdlbiBpcyBub3QgYSBz
ZWxlY3QKIAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICB2YXIgc2hhZG93
ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChrZXlnZW4pOwotICBzaG91bGRCZSgn
c2hhZG93LnRhZ05hbWUnLCAnIlNFTEVDVCInKTsKLSAgc2hvdWxkQmUoJ2xheW91dFRlc3RDb250
cm9sbGVyLnNoYWRvd1Jvb3Qoc2hhZG93KScsICdudWxsJyk7CisgIHNob3VsZEJlKCdzaGFkb3cu
Zmlyc3RDaGlsZC50YWdOYW1lJywgJyJTRUxFQ1QiJyk7CisgIHNob3VsZEJlKCdsYXlvdXRUZXN0
Q29udHJvbGxlci5zaGFkb3dSb290KHNoYWRvdyknLCAndW5kZWZpbmVkJyk7CisgIHNob3VsZEJl
KCdsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHNoYWRvdy5maXJzdENoaWxkKScsICdu
dWxsJyk7CiB9CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKaW5k
ZXggOTI4ODE3NzkzYWQ0MDM1YTEzNjM3YWYyNzFmNmI2ZWMwZmFkY2NkNC4uZWQ2M2UyYmM3Yjk4
NzA1MmQ0MDcyOWQ4MDI3M2Q1M2QxNjkwZmI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
QW5kcm9pZC5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0xNzUsNiArMTc1
LDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJZG9tL1Njcmlw
dFJ1bm5lci5jcHAgXAogCWRvbS9TZWxlY3RFbGVtZW50LmNwcCBcCiAJZG9tL1NlbGVjdG9yTm9k
ZUxpc3QuY3BwIFwKKwlkb20vU2hhZG93Um9vdC5jcHAgXAogCWRvbS9TcGFjZVNwbGl0U3RyaW5n
LmNwcCBcCiAJZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAgXAogCWRvbS9TdGF0aWNOb2Rl
TGlzdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA1ODgxMzM1NWIzYzNlNGY5MmUzMWYwNzQ5ZjUyOWM0
Yjg1NTAzYzcuLmYwZmIyOWVmZTE1NmJlMGU3OWJhYjlhOWI3YTIzZjE4OWNjZDMxZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw4NiBAQAorMjAxMS0wNC0wNiAgRG9taW5pYyBDb29uZXkgIDxkb21p
bmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIExldCBzaGFkb3cgRE9NIGhhdmUgYSBsaXN0IG9mIG5vZGVzIGF0IHRoZSB0b3Ag
bGV2ZWwgb2YgYSBzaGFkb3cuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NzgxMworCisgICAgICAgIEFkZHMgU2hhZG93Um9vdCwgYSBsaXN0IG9mIG5v
ZGVzLCB0byBiZSBhIHBhcmVudCBmb3IgdG9wLWxldmVsCisgICAgICAgIHNoYWRvdyBjaGlsZHJl
bi4gRm9yd2FyZHMgcmVuZGVyaW5nIHRocm91Z2ggdGhlIHJvb3QgYW5kIGludG8gdGhlCisgICAg
ICAgIGhvc3QncyByZW5kZXJlci4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
IG9mIGVsZW1lbnRzIHRoYXQgdXNlIHRoaXMgc3R5bGUgb2Ygc2hhZG93LgorCisgICAgICAgICog
QW5kcm9pZC5tazogYWRkIFNoYWRvd1Jvb3QKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAg
ICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAg
ICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2Vs
ZWN0b3I6OmluaXRGb3JTdHlsZVJlc29sdmUpOiBwcm94eSBzdHlsZSB0byBob3N0CisgICAgICAg
ICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOiB0b3AtbGV2ZWwgKnNoYWRvdyotY29ubmVjdGVkIERP
TSBpcyBhbGl2ZQorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb250YWluZXJOb2RlOjphcHBlbmRDaGlsZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50
RnJhZ21lbnQuY3BwOiBTaGFkb3dSb290IGlzIGEga2luZCBvZiBEb2N1bWVudEZyYWdtZW50Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpEb2N1bWVudEZyYWdtZW50KToKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnJlY2FsY1N0eWxlKTogbG9vayB0aHJ1IFNo
YWRvd1Jvb3QgdG8gaG9zdCBmb3Igc3R5bGUKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNo
YWRvd1Jvb3QpOiBzaG91bGQgYmUgY29uc3QKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNl
dFNoYWRvd1Jvb3QpOiByZW1vdmVkOyB1c2UgZW5zdXJlU2hhZG93Um9vdAorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdCk6IGFkZGVkCisgICAgICAgICogZG9tL0Vs
ZW1lbnQuaDogc2hhZG93Um9vdCBhY2Nlc3NvciBzaG91bGQgYmUgY29uc3QKKyAgICAgICAgKiBk
b20vRWxlbWVudFJhcmVEYXRhLmg6IGFsbCBzaGFkb3cgcm9vdHMgYXJlIFNoYWRvd1Jvb3QgaW5z
dGFuY2VzCisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKTogYWRkZWQKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OmNyZWF0ZVJlbmRlcmVyQW5kU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCk6IGZvcndhcmQgdG9wLWxldmVsIHNoYWRvdyByZW5kZXJl
cnMKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNTaGFk
b3dCb3VuZGFyeSk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dSb290OjpTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OnJlY2Fs
Y1N0eWxlKTogZm9yd2FyZCByZWNhbGMgdG8gY2hpbGRyZW4KKyAgICAgICAgKiBkb20vU2hhZG93
Um9vdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmlzU2hhZG93Qm91
bmRhcnkpOgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwOiB1c2UgU2hhZG93
Um9vdAorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2VuRWxlbWVudDo6YXBwZW5kRm9y
bURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6OnJlc2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVtZW50OjpzaGFkb3dTZWxlY3QpOgorICAgICAg
ICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVs
ZW1lbnQuY3BwOiB1c2UgU2hhZG93Um9vdAorICAgICAgICAoV2ViQ29yZTo6SFRNTE1ldGVyRWxl
bWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NF
bGVtZW50LmNwcDogdXNlIFNoYWRvd1Jvb3QKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVz
c0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1
dFR5cGUuY3BwOiB1c2UgU2hhZG93Um9vdAorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5
cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRU
eXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRU
eXBlOjp2YWx1ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OnNo
YWRvd1NsaWRlclRodW1iKToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmg6CisgICAg
ICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHA6IHVzZSBTaGFkb3dSb290CisgICAgICAg
IChXZWJDb3JlOjpWYWxpZGF0aW9uTWVzc2FnZTo6YnVpbGRCdWJibGVUcmVlKToKKyAgICAgICAg
KFdlYkNvcmU6OlZhbGlkYXRpb25NZXNzYWdlOjpkZWxldGVCdWJibGVUcmVlKToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb21Qb2ludCk6CisgICAgICAgIChXZWJD
b3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6Omhvc3RJbnB1dCk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL01lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcDogdXNlIFNoYWRvd1Jvb3QKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbElucHV0RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bElucHV0RWxlbWVudDo6dXBkYXRlU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJT
bGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjp0aHVtYlJlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyU2xpZGVyOjpzaGFkb3dTbGlkZXJUaHVtYik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTbGlkZXI6OmluRHJhZ01vZGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlk
ZXIuaDoKKwogMjAxMS0wNC0wNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGVl
NzBhNGZiYTFkMTQ4NDM1YWU2YzI2ZWFlZjcxMjg5NGEyMDVlYTEuLjFkMDUwMzAyMDA1Y2ExZTYz
MmJiNWE2YWU0MGFiMWJlNGMyZmRlNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xMzMxLDYg
KzEzMzEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxl
Y3RFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yTm9kZUxpc3QuaCBcCisJU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdGF0
aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggODc5ZGEyNWRl
NmYwZGYxZjFjMzUzY2I3OTNhYTJhZjQ3MzA3ZDZhZi4uNmMwNzZiM2Y0MTVhMzk5NGJlZDZlZWVl
YzQ4ZDgwMzJkNzc0MzUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTc5OSw3ICs3OTksNiBA
QCBfX1pON1dlYkNvcmU2V2lkZ2V0RDJFdgogX19aTjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1Zh
bHVlRQogX19aTjdXZWJDb3JlN0NvbnNvbGUyMXNob3VsZFByaW50RXhjZXB0aW9uc0V2CiBfX1pO
N1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJpbnRFeGNlcHRpb25zRWIKLV9fWk43V2ViQ29y
ZTdFbGVtZW50MTBzaGFkb3dSb290RXYKIF9fWk43V2ViQ29yZTdJbnRSZWN0NXNjYWxlRWYKIF9f
Wk43V2ViQ29yZTdJbnRSZWN0NXVuaXRlRVJLUzBfCiBfX1pON1dlYkNvcmU3SW50UmVjdDlpbnRl
cnNlY3RFUktTMF8KQEAgLTEyNTEsNiArMTI1MCw3IEBAIF9fWk5LN1dlYkNvcmU2V2lkZ2V0MjVj
b252ZXJ0VG9Db250YWluaW5nV2luZG93RVJLTlNfN0ludFJlY3RFCiBfX1pOSzdXZWJDb3JlNldp
ZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VSS05TXzhJbnRQb2ludEUKIF9fWk5LN1dl
YkNvcmU2V2lkZ2V0OWZyYW1lUmVjdEV2CiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQxMHNjcmVlblJl
Y3RFdgorX19aTks3V2ViQ29yZTdFbGVtZW50MTBzaGFkb3dSb290RXYKIF9fWk5LN1dlYkNvcmU3
RWxlbWVudDEyZ2V0QXR0cmlidXRlRVJLTlNfMTNRdWFsaWZpZWROYW1lRQogX19aTks3V2ViQ29y
ZTdFbGVtZW50MTlib3VuZHNJbldpbmRvd1NwYWNlRXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDlp
bm5lclRleHRFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGJhZDMxMTVlZjlhZWNjYmE4NDJhODFiYjhm
Yjc2ZTk1YTZmMTA2MTcuLmY0ODRjMWUzOTRkMGY5YWQ5NTI5YTE1ZWRhZmM4Yzc0ZDYxNjc5OGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTU0NSw2ICs1NDUsNyBAQAogICAgICAgICAgICAgJ2RvbS9S
ZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0UnVubmVyLmgnLAorICAgICAg
ICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAogICAgICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3Ry
aW5nLmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZWRFbGVtZW50LmgnLAogICAgICAgICAgICAg
J2RvbS9UZXh0LmgnLApAQCAtMjUyMiw2ICsyNTIzLDggQEAKICAgICAgICAgICAgICdkb20vU2Vs
ZWN0RWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAnLAog
ICAgICAgICAgICAgJ2RvbS9TZWxlY3Rvck5vZGVMaXN0LmgnLAorICAgICAgICAgICAgJ2RvbS9T
aGFkb3dSb290LmNwcCcsCisgICAgICAgICAgICAnZG9tL1NoYWRvd1Jvb3QuaCcsCiAgICAgICAg
ICAgICAnZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwJywKICAgICAgICAgICAgICdkb20vU3RhdGlj
SGFzaFNldE5vZGVMaXN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL1N0YXRpY0hhc2hTZXROb2Rl
TGlzdC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZDQyMjFmZjlkZmQzYTk4NGEwZWRkOTYxNDI3Nzli
NzBkOGZjN2MwZS4uYzEyMjk3NmE3NjY0NDIyNTMzMDdiN2U4ZTBlODA5ODhkZDE3Y2ZjZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8KQEAgLTUzNCw2ICs1MzQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vU2Ny
aXB0UnVubmVyLmNwcCBcCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuY3BwIFwKICAgICBkb20vU2Vs
ZWN0b3JOb2RlTGlzdC5jcHAgXAorICAgIGRvbS9TaGFkb3dSb290LmNwcCBcCiAgICAgZG9tL1Nw
YWNlU3BsaXRTdHJpbmcuY3BwIFwKICAgICBkb20vU3RhdGljTm9kZUxpc3QuY3BwIFwKICAgICBk
b20vU3R5bGVkRWxlbWVudC5jcHAgXApAQCAtMTQ5Nyw2ICsxNDk4LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBcCiAgICAgZG9tL1NlbGVjdEVsZW1l
bnQuaCBcCiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuaCBcCisgICAgZG9tL1NoYWRvd1Jvb3Qu
aCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0
LmggXAogICAgIGRvbS9TdHlsZWRFbGVtZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxMzYxNDg1ZDlmMzYyOTQ2NWQxYmQwY2Y2Yjlk
NWI0MjgwZTU5NDM3Li5kMDdhZGZhMjNkMjU2MTI0NzdjMGJlMjkwMDQzOGIzNmE2ODBjOTMxIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDY0
NDIsNiArNDY0NDIsNjIgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZG9tXFNoYWRvd1Jvb3QuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgor
CQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9u
CisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZp
bGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xD
b21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmls
ZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU2hhZG93Um9vdC5oIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cU3BhY2VT
cGxpdFN0cmluZy5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDEwOGQz
YzYzOGNhN2Y1ZDY0OTJhYzYxZGYzOWMyODllZDkwZWY4NjUuLjc5YWI4ZDU1NTQzZmZkNjllZmYw
ZjRlOGU0OTlkM2M3ZDFmZDRiMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxOTYsNiArMzE5Niw4IEBACiAJCUE2MjJBOEZD
MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY2MTIyQzQ0QTYwMEE3ODVC
MyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLzsgfTsKIAkJQTYyMkE4RkQxMjJDNDRBNjAw
QTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5n
U2VjdXJpdHlCYXNlLmggKi87IH07CiAJCUE2MjJBOEZGMTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5l
cmljQmluZGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTYyMkE4RjkxMjJDNDRBNjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi87IH07CisJ
CUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3
MCAvKiBTaGFkb3dSb290LmNwcCAqLzsgfTsKKwkJQTZEMTY5NjQxMzQ2QjRDMTAwMEVCNzcwIC8q
IFNoYWRvd1Jvb3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxNTFCRDgxMkYxNTU4RjAw
NUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1MUJENzEyRjE1NThGMDA1QTBGNjQgLyogVGV4dENoZWNr
ZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlBNzE1RTY1MjEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUw
MTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwICovOyB9OwogCQlB
NzE1RTY1MzEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1RTY1MTEzNEJCQkVD
MDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmggKi87IH07CkBAIC05NzI0LDYgKzk3
MjYsOCBAQAogCQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCaW5kaW5nU2VjdXJp
dHlCYXNlLmNwcDsgcGF0aCA9IGdlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE2MjJBOEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5k
aW5nU2VjdXJpdHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJpbmRp
bmdTZWN1cml0eUJhc2UuaDsgcGF0aCA9IGdlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNjIyQThGOTEyMkM0NEE2MDBBNzg1QjMgLyog
R2VuZXJpY0JpbmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gR2VuZXJp
Y0JpbmRpbmcuaDsgcGF0aCA9IGdlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQTZEMTY5NjExMzQ2QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2hhZG93Um9vdC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAv
KiBTaGFkb3dSb290LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1Jv
b3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxNTFCRDcxMkYxNTU4RjAwNUEw
RjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRleHRDaGVja2VyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3
MTVFNjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxNUU2NTExMzRCQkJFQzAwRDhFNzEz
IC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE5NDQ3LDYgKzE5NDUxLDggQEAKIAkJCQkwODRBRUJFMzBGQjUwNUZBMDAzODQ4M0UgLyog
U2VsZWN0RWxlbWVudC5oICovLAogCQkJCUJDN0ZBNjgwMEQxRjE2NzkwMERCMjJBOSAvKiBTZWxl
Y3Rvck5vZGVMaXN0LmNwcCAqLywKIAkJCQlCQzdGQTY3RjBEMUYxNjc5MDBEQjIyQTkgLyogU2Vs
ZWN0b3JOb2RlTGlzdC5oICovLAorCQkJCUE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFk
b3dSb290LmNwcCAqLywKKwkJCQlBNkQxNjk2MzEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9v
dC5oICovLAogCQkJCUQwMUEyN0FCMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5n
LmNwcCAqLywKIAkJCQlEMDFBMjdBQzEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmlu
Zy5oICovLAogCQkJCUNFQTM5NDlBMTFENDVDREEwMDMwOTRDRiAvKiBTdGF0aWNIYXNoU2V0Tm9k
ZUxpc3QuY3BwICovLApAQCAtMTk5MTMsNiArMTk5MTksNyBAQAogCQkJCUJDRDUzMzY0MEVENjg0
ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNCMTZDMjgwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzRjE5OTUwMDgyNDVFNTkwMDFFOUFCQyAvKiBDYWNoZVBvbGlj
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjFENUVDQjUxMzRCNThEQTAwODdDNzhGIC8qIENhbGxi
YWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTZFNEU5MUFEMTBGN0ZCMzEwMEEyNzc5
QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0ODRG
QzIxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0OTQ4NEZDNTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yMDA3NCw2ICsyMDA4MSw4IEBACiAJCQkJQThDMjI4QTExMUQ1NzIyRTAwRDVBN0Qz
IC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNjJB
NDUxMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MUEzRDU4RjEwMUMxNTJEMDAzMTZEMDcgLyogRGVkaWNhdGVkV29ya2VyVGhy
ZWFkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDA2REZBNjEzNEE0REVGMDA2RjVEN0QgLyogRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDA2REZBNjEz
NEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0MzNkVCOTEzNDJBQTNGMDA0QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlv
blN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTY3RUJGNjEwMjk2MkJBMDAzRDI1MkEg
LyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZE
MzE2MDJDMTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxheURTUEtlcm5lbC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMTA4OSw2ICsyMTA5OCw3IEBACiAJCQkJOTNGMTk5RTUwODI0NUU1OTAwMUU5QUJDIC8q
IEhUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOERGM0ZEMDA5N0ZBMEZD
MDA1Mjk4MUIgLyogSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODY1
MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MQ29uc3RydWN0aW9uU2l0ZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTFBMzE2NjMxMzRCQ0FFODAwN0M5QTRGIC8qIEhUTUxDb252ZXJ0ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNzdDREJDMEZFRkYxNDIwMDcwODg3QiAvKiBIVE1MRGF0YUdyaWRDZWxs
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3N0NCODcwRkVCRjVBRjAwNzA4ODdCIC8q
IEhUTUxEYXRhR3JpZENvbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjEyQTFGMEZF
ODMzMzIwMEVDMzcwOCAvKiBIVE1MRGF0YUdyaWRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAg
LTIxNTgwLDYgKzIxNTkwLDggQEAKIAkJCQk5MDAxNzg4MTEyRTAzNzA3MDA2NDg0NjIgLyogSlNP
RVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RUJGMEU3NzEyQTk4
Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc3
QTE3QUE3MTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGREY2QkFGOTEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9D
b21wbGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUZERjZCQUY5MTM0QTRDOTgwMDgy
MjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTgyNkU4QUUwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTT3B0aW9uQ29uc3RydWN0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBMEQ1NzQxMEE1Qzc4NjcwMDdFREQ0QyAvKiBKU092ZXJmbG93RXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjg0QkIxMTA0NDlGRkEwMEVBRUI1MiAvKiBKU1Bh
Z2VUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjE5MzQsNiArMjE5NDYsMTAg
QEAKIAkJCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkVCRjBFNDkxMkE4OTI2MTAwREIxNzA5IC8qIE9FU1Rl
eHR1cmVGbG9hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzdBMTdBNzIxMkYyODE4MjAwNEUwMkY2
IC8qIE9FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QTEz
NEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxl
dGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEg
LyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEz
RTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGNEVBRjRBRjEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5p
dGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NzI4MTU2MEYyNkI5QjYwMEFGQzU5NiAvKiBP
cHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODcyODE1ODBGMjZCOUI2MDBBRkM1
OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIyMjUxLDYgKzIy
MjY3LDcgQEAKIAkJCQkwRjNERDQ1MDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI4QzQwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE3RjMzOEE0MTFDMEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAgLyog
U2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRTgwQTE5ODlDQTAwN0ZCOEM1
IC8qIFNoYWRvd1ZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkFGRkM5NDBEMDBBNURGMDAz
MDA3NEQgLyogU2hhcGVBcmFiaWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNEE5NTRFMEI0RURD
Q0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjI3MTksNiAr
MjI3MzYsNyBAQAogCQkJCTQ5NEJENzk1MEY1NUM4RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2ludC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzFDMEZGMjUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRy
YW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDRjMzMkYwRjJCOUEyNTAwNEI2
Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMUEzMTYyRDEzNEJDMzJEMDA3
QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQ0FGMzQ4MTBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQTU2OUQxQjBEN0UyQjgyMDA3QzM5ODMgLyogV2ViU2NyaXB0T2JqZWN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQ0FGMzQ4MzBBNkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0
T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjgzMCwxMyArMjI4NDgsNiBAQAog
CQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVy
LmggaW4gSGVhZGVycyAqLywKLQkJCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGlu
ZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlGREEzRTk1QzEzNEE0
OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAq
LywKLQkJCQlGREY2QkFGOTEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0
aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUZEMDZERkE2MTM0QTRERUYwMDZGNUQ3RCAv
KiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQTMx
NjJEMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUUxQTMxNjYzMTM0QkNBRTgwMDdDOUE0RiAvKiBIVE1MQ29udmVydGVy
LmggaW4gSGVhZGVycyAqLywKLQkJCQlCMUQ1RUNCNTEzNEI1OERBMDA4N0M3OEYgLyogQ2FsbGJh
Y2tGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMzI0OSw2ICsyMzI2MCw3IEBACiAJCQkJ
RDBEMTQxQjIxMkIyQkY1MjAwRTM5NjIwIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQ0IxNkMyMzA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzI3MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNo
ZWRYU0xTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUIxODI3NDkzMTM0Q0E0QzEw
MEI5OEMyRCAvKiBDYWxsYmFja0Z1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNEU5
MUFDMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0OTQ4NEZDMTEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0ODRGQzQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZh
c1BhdHRlcm4uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMzM4Miw2ICsyMzM5NCw4IEBACiAJCQkJ
QThDMjI4QTIxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2MkE0NTAxMDExNDVBRTAwREZGM0VEIC8qIERlZGljYXRl
ZFdvcmtlckNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFBM0Q1OEUxMDFDMTUyRDAw
MzE2RDA3IC8qIERlZGljYXRlZFdvcmtlclRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlG
RDA2REZBNTEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUZEMDZERkE1MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0
QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNDMzZFQjgxMzQy
QUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRpb25TdHJhdGVneS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0MTY3RUJGNTEwMjk2MkJBMDAzRDI1MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtl
clJlcG9zaXRvcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwMkIxMkIwMjY3NjAwQzFB
MzU5IC8qIERlbGF5RFNQS2VybmVsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQ0NDksNiArMjQ0
NjMsOCBAQAogCQkJCTkwMDE3ODgwMTJFMDM3MDcwMDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVy
aXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkVCRjBFNzYxMkE5ODY4ODAwREIxNzA5
IC8qIEpTT0VTVGV4dHVyZUZsb2F0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3QTE3QUE2MTJG
MjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUZERjZCQUY4MTM0QTRDOTgwMDgyMjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRp
b25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGREY2QkFGODEzNEE0Qzk4MDA4MjI5MjAg
LyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTgyNkVDNDgwQTFCMENCRTAwQ0QxQkI2IC8qIEpTT3B0aW9uQ29uc3RydWN0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUEwRDU3NDAwQTVDNzg2NzAwN0VERDRDIC8qIEpTT3ZlcmZsb3dFdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI4NEJCMjEwNDQ5RkZBMDBFQUVCNTIgLyogSlNQ
YWdlVHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjQ4MTUsNiArMjQ4MzEs
MTAgQEAKIAkJCQk5MDAxNzc0MDEyRTAzNDc4MDA2NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0
aXZlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2RUJGMEU0ODEyQTg5MjYxMDBEQjE3MDkgLyog
T0VTVGV4dHVyZUZsb2F0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3QTE3QTcxMTJGMjgxODIw
MDRFMDJGNiAvKiBPRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlG
REEzRTk1OTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUZEQTNFOTU5MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5l
QXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRkRBM0U5NUIxMzRB
NDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlGREEzRTk1QjEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0RUFGNEFFMTBDNzQyQjEwMDkxMDBE
MyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODcyODE1NTBG
MjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
ODcyODE1NzBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjUwNjUsNiArMjUwODUsNyBAQAogCQkJCTBGM0RENDRGMTJGNUVBMUIwMDBE
OTE5MCAvKiBTaGFkb3dCbHVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNUVCOEMzMEU4MjAz
MUIwMEIyNTk2NSAvKiBTaGFkb3dEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3RjMzOEEz
MTFDMEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4MEU2Q0Y0MEExOTg5Q0EwMDdGQjhDNSAvKiBTaGFkb3dWYWx1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCMkFGRkM5MzBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuYyBp
biBTb3VyY2VzICovLAogCQkJCTFBNEE5NTREMEI0RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZm
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTQxOCw2ICsyNTQzOSw3IEBACiAJCQkJOTNGMUQ1
QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDRjMzMkUwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxh
eWVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTFBMzE2MkUxMzRCQzMyRDAwN0M5QTRGIC8qIFdl
Yk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFDQUYzNDgy
MEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmplY3QubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1MThBMzRDMTEwMjZDODMxMDAxQjY4OTYgLyogV2ViU29ja2V0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxMEQ0QTRFMTAzMTc3QTIwMDQ5RUE1NCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBp
biBTb3VyY2VzICovLApAQCAtMjU1MjAsMTIgKzI1NTQyLDYgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1
RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUZEQTNFOTU5MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVk
aW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkRBM0U5NUIxMzRBNDlF
RjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlGREY2QkFGODEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0
aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRkQwNkRGQTUxMzRBNERFRjAwNkY1RDdE
IC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlF
MUEzMTYyRTEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJQjE4Mjc0OTMxMzRDQTRDMTAwQjk4QzJEIC8qIENhbGxiYWNr
RnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAKaW5kZXggODZmM2JhMzBiZWQyZWQ5NGEzYmI0YzFiMGYyYzYyN2MwYzA5MjBhNy4u
NDBjNzk0MWIyYTY5NzI5OGY5M2RiMTcxOTBhNjYxYjdhZGViMzE1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtODkzLDcgKzg5Myw3IEBAIGlubGluZSB2b2lk
IENTU1N0eWxlU2VsZWN0b3I6OmluaXRGb3JTdHlsZVJlc29sdmUoRWxlbWVudCogZSwgUmVuZGVy
U3R5bGUqIHBhcmVuCiB7CiAgICAgbV9jaGVja2VyLm1fcHNldWRvU3R5bGUgPSBwc2V1ZG9JRDsK
IAotICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnRPckhvc3ROb2RlKCkgOiAwOworICAg
IG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKSA6
IDA7CiAKICAgICBpZiAocGFyZW50U3R5bGUpCiAgICAgICAgIG1fcGFyZW50U3R5bGUgPSBwYXJl
bnRTdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcAppbmRleCBlYTAzODQ4YWFh
ZmJjZDAwMGY2ZjA5MDFmZTQ1YzdkNmUyMWFkYmIzLi41NjU5ZjllZDQ4NGY2ODVlZTYyZTc4MGZi
M2RjYTI3MmIwOWQ5M2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0x
MDQsNyArMTA0LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0
cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4Y2UKIHsKICAgICAvLyBDaGVjayB0
aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0aW5nIi4KICAgICAvLyBJZiBpdCBpcywgaXQgY2Fu
IGJlIGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBvZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4K
LSAgICBBU1NFUlQocmVmQ291bnQoKSB8fCBwYXJlbnROb2RlKCkpOworICAgIEFTU0VSVChyZWZD
b3VudCgpIHx8IHBhcmVudE9ySG9zdE5vZGUoKSk7CiAKICAgICBlYyA9IDA7CiAKQEAgLTI0NCw3
ICsyNDQsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5v
ZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhjZQogewogICAgIC8vIENoZWNrIHRoYXQg
dGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUg
ZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRzLgotICAg
IEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE5vZGUoKSk7CisgICAgQVNTRVJUKHJlZkNvdW50
KCkgfHwgcGFyZW50T3JIb3N0Tm9kZSgpKTsKIAogICAgIGVjID0gMDsKIApAQCAtNDAxLDcgKzQw
MSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAi
ZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUg
ZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRzLgotICAgIEFTU0VSVChyZWZDb3VudCgp
IHx8IHBhcmVudE5vZGUoKSk7CisgICAgQVNTRVJUKHJlZkNvdW50KCkgfHwgcGFyZW50T3JIb3N0
Tm9kZSgpKTsKIAogICAgIGVjID0gMDsKIApAQCAtNTYxLDcgKzU2MSw3IEBAIGJvb2wgQ29udGFp
bmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9u
Q29kZSYgZWMsIGJvCiB7CiAgICAgLy8gQ2hlY2sgdGhhdCB0aGlzIG5vZGUgaXMgbm90ICJmbG9h
dGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBiZSBkZWxldGVkIGFzIGEgc2lkZSBlZmZl
Y3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCi0gICAgQVNTRVJUKHJlZkNvdW50KCkgfHwg
cGFyZW50Tm9kZSgpKTsKKyAgICBBU1NFUlQocmVmQ291bnQoKSB8fCBwYXJlbnRPckhvc3ROb2Rl
KCkpOwogCiAgICAgZWMgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5j
cHAKaW5kZXggYzljMzAyMDM3NzgxNzNhNGMwNzM1YTMxN2ZlYTM0MTdiOGUzZGNhMS4uZTk4ZWY5
ZTU4YTBjZmYyYjhmOGQwZjQyNDcwMGY5OWM2OTExNjI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudEZyYWdtZW50LmNwcApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWlubGluZSBEb2N1bWVudEZyYWdtZW50OjpEb2N1bWVudEZyYWdtZW50KERvY3VtZW50
KiBkb2N1bWVudCkKK0RvY3VtZW50RnJhZ21lbnQ6OkRvY3VtZW50RnJhZ21lbnQoRG9jdW1lbnQq
IGRvY3VtZW50KQogICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCkKIHsKICAgICBBU1NFUlQo
ZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmgKaW5kZXggZDU4OGI0
ZTdiMDU3ZDJiMzI4ZTQ4YmEwMWIzN2UxMTM3NTk2OGExNC4uZjU2NzUzNmIyYjE0NzRmYjA0MTVj
MGNiMTg2MzRmNmFmNDQ2Njc4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5o
CkBAIC0zNiw5ICszNiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYXJzZUhUTUwoY29uc3QgU3Ry
aW5nJiwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lv
biA9IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCk7CiAgICAgYm9vbCBwYXJzZVhNTChjb25zdCBT
dHJpbmcmLCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNz
aW9uID0gRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkKTsKIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoK
ICAgICBEb2N1bWVudEZyYWdtZW50KERvY3VtZW50Kik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVh
bCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBl
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRl
ZXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGU0ZDkwNzU4YjVkODEwYmY4ZTA0ZWZkNzFj
ZTUyNDBkNDQ1ODlhM2EuLjdkZDJhNTc2OWEzYTkyYmNiNjM1YTIyNDVkZGI2OTg2NDAxNGI3ZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJSZW5k
ZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAj
aW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCkBA
IC0xMDQ5LDcgKzEwNTAsNyBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdl
IGNoYW5nZSkKIHsKICAgICAvLyBSZWYgY3VycmVudFN0eWxlIGluIGNhc2UgaXQgd291bGQgb3Ro
ZXJ3aXNlIGJlIGRlbGV0ZWQgd2hlbiBzZXRSZW5kZXJTdHlsZSgpIGlzIGNhbGxlZC4KICAgICBS
ZWZQdHI8UmVuZGVyU3R5bGU+IGN1cnJlbnRTdHlsZShyZW5kZXJTdHlsZSgpKTsKLSAgICBib29s
IGhhc1BhcmVudFN0eWxlID0gcGFyZW50T3JIb3N0Tm9kZSgpID8gcGFyZW50T3JIb3N0Tm9kZSgp
LT5yZW5kZXJTdHlsZSgpIDogZmFsc2U7CisgICAgYm9vbCBoYXNQYXJlbnRTdHlsZSA9IHBhcmVu
dE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpID8gcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0
eWxlKCktPnJlbmRlclN0eWxlKCkgOiBmYWxzZTsKICAgICBib29sIGhhc0RpcmVjdEFkamFjZW50
UnVsZXMgPSBjdXJyZW50U3R5bGUgJiYgY3VycmVudFN0eWxlLT5jaGlsZHJlbkFmZmVjdGVkQnlE
aXJlY3RBZGphY2VudFJ1bGVzKCk7CiAKICAgICBpZiAoKGNoYW5nZSA+IE5vQ2hhbmdlIHx8IG5l
ZWRzU3R5bGVSZWNhbGMoKSkpIHsKQEAgLTExMzEsNyArMTEzMiw3IEBAIHZvaWQgRWxlbWVudDo6
cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgIH0KICAgICAvLyBGSVhNRTogVGhp
cyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcgY29tYmluYXRvcnMuIFdpbGwgYmUgbmVjZXNz
YXJ5IGluIFhCTDIgd29ybGQuCiAgICAgaWYgKE5vZGUqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkg
ewotICAgICAgICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwgc2hhZG93LT5pc1RleHROb2RlKCkg
fHwgc2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVS
ZWNhbGMoKSkgeworICAgICAgICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwgc2hhZG93LT5jaGls
ZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVSZWNhbGMoKSkgewogICAg
ICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKICAgICAgICAgICAgIHNoYWRvdy0+cmVjYWxj
U3R5bGUoY2hhbmdlKTsKICAgICAgICAgfQpAQCAtMTE0MSwyOCArMTE0MiwyNCBAQCB2b2lkIEVs
ZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICBjbGVhckNoaWxkTmVl
ZHNTdHlsZVJlY2FsYygpOwogfQogCi1Ob2RlKiBFbGVtZW50OjpzaGFkb3dSb290KCkKK0NvbnRh
aW5lck5vZGUqIEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKSBjb25zdAogewogICAgIHJldHVybiBoYXNS
YXJlRGF0YSgpID8gcmFyZURhdGEoKS0+bV9zaGFkb3dSb290IDogMDsKIH0KIAotdm9pZCBFbGVt
ZW50OjpzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8Tm9kZT4gbm9kZSkKK0NvbnRhaW5lck5vZGUq
IEVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jvb3QoKQogewotICAgIC8vIEZJWE1FOiBCZWNhdXNlIHRv
ZGF5IHRoaXMgaXMgbmV2ZXIgY2FsbGVkIGZyb20gc2NyaXB0IGRpcmVjdGx5LCB3ZSBkb24ndCBo
YXZlIHRvIHdvcnJ5Ci0gICAgLy8gYWJvdXQgY29tcHJvbWlzaW5nIERPTSB0cmVlIGludGVncml0
eSAoZWcuIG5vZGUgYmVpbmcgYSBwYXJlbnQgb2YgdGhpcykuIEhvd2V2ZXIsCi0gICAgLy8gb25j
ZSB3ZSBpbXBsZW1lbnQgWEJMMiwgd2Ugd2lsbCBoYXZlIHRvIGFkZCBpbnRlZ3JpdHkgY2hlY2tz
IGhlcmUuCi0gICAgcmVtb3ZlU2hhZG93Um9vdCgpOwotCi0gICAgUmVmUHRyPE5vZGU+IG5ld1Jv
b3QgPSBub2RlOwotICAgIGlmICghbmV3Um9vdCkKLSAgICAgICAgcmV0dXJuOworICAgIGlmIChD
b250YWluZXJOb2RlKiBleGlzdGluZ1Jvb3QgPSBzaGFkb3dSb290KCkpCisgICAgICAgIHJldHVy
biBleGlzdGluZ1Jvb3Q7CiAKKyAgICBSZWZQdHI8U2hhZG93Um9vdD4gbmV3Um9vdCA9IFNoYWRv
d1Jvb3Q6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICBlbnN1cmVSYXJlRGF0YSgpLT5tX3NoYWRv
d1Jvb3QgPSBuZXdSb290LmdldCgpOwogICAgIG5ld1Jvb3QtPnNldFNoYWRvd0hvc3QodGhpcyk7
CiAgICAgaWYgKGluRG9jdW1lbnQoKSkKICAgICAgICAgbmV3Um9vdC0+aW5zZXJ0ZWRJbnRvRG9j
dW1lbnQoKTsKLSAgICBpZiAoYXR0YWNoZWQoKSAmJiAhbmV3Um9vdC0+YXR0YWNoZWQoKSkKKyAg
ICBpZiAoYXR0YWNoZWQoKSkKICAgICAgICAgbmV3Um9vdC0+bGF6eUF0dGFjaCgpOworICAgIHJl
dHVybiBuZXdSb290LmdldCgpOwogfQogCiB2b2lkIEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3Qo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMDkwNWQ3ZDc3NTU3NDI3Yjk2MTAzNDNiN2M1Y2UzODE2
OTZkYzA4Yy4uZDRjOGFmNDJiNjJmMDY4NmUzYmFhYjdhNjcwNzRmNGYxZGMzMDdiYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCkBAIC0yMjksOCArMjI5LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJl
bmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwog
ICAgIHZpcnR1YWwgdm9pZCByZWNhbGNTdHlsZShTdHlsZUNoYW5nZSA9IE5vQ2hhbmdlKTsKIAot
ICAgIE5vZGUqIHNoYWRvd1Jvb3QoKTsKLSAgICB2b2lkIHNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0
cjxOb2RlPik7CisgICAgQ29udGFpbmVyTm9kZSogc2hhZG93Um9vdCgpIGNvbnN0OworICAgIENv
bnRhaW5lck5vZGUqIGVuc3VyZVNoYWRvd1Jvb3QoKTsKKyAgICB2b2lkIHJlbW92ZVNoYWRvd1Jv
b3QoKTsKKwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0OwogCiAgICAgUmVuZGVyU3R5bGUqIGNvbXB1dGVkU3R5bGUoUHNldWRvSWQgPSBOT1BT
RVVETyk7CkBAIC00MDksNyArNDExLDYgQEAgcHJpdmF0ZToKICAgICBFbGVtZW50UmFyZURhdGEq
IGVuc3VyZVJhcmVEYXRhKCk7CiAKICAgICBTcGVsbGNoZWNrQXR0cmlidXRlU3RhdGUgc3BlbGxj
aGVja0F0dHJpYnV0ZVN0YXRlKCkgY29uc3Q7Ci0gICAgdm9pZCByZW1vdmVTaGFkb3dSb290KCk7
CiAKIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQdHI8TmFtZWROb2RlTWFwPiBtX2F0dHJpYnV0
ZU1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAppbmRleCA4MThhMmMyZjBmZjk4
N2RjNWNkNjNhOTcyOTViZWM1YjgwZWQ0YTI1Li4xNGNlZWYyYTFmZTI5NTJhNzA3ZDA1Nzc1NWI4
Mjc5M2RiNjM2NzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVE
YXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0YS5oCkBAIC0zMCw2
ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU2hhZG93Um9vdDsKKwog
Y2xhc3MgRWxlbWVudFJhcmVEYXRhIDogcHVibGljIE5vZGVSYXJlRGF0YSB7CiBwdWJsaWM6CiAg
ICAgRWxlbWVudFJhcmVEYXRhKCk7CkBAIC00Miw3ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIElu
dFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nOwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4g
bV9jb21wdXRlZFN0eWxlOwotICAgIE5vZGUqIG1fc2hhZG93Um9vdDsKKyAgICBTaGFkb3dSb290
KiBtX3NoYWRvd1Jvb3Q7CiAKICAgICBPd25QdHI8RGF0YXNldERPTVN0cmluZ01hcD4gbV9kYXRh
c2V0RE9NU3RyaW5nTWFwOwogICAgIE93blB0cjxDbGFzc0xpc3Q+IG1fY2xhc3NMaXN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCmluZGV4IDE1Y2I4YThiNDhhMWYyMTYzOTkxZjlkYjYxZmQ5NmE4YWE2NjNiNGQu
LjFhNTMxMGY4ODZjYjNjMGI4OGE3ODRhZTY3MzA2NzgwMDZmMjBlNWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKQEAgLTE0MDIsMTggKzE0MDIsMjUgQEAgTm9kZSAqTm9kZTo6bmV4dExlYWZOb2RlKCkgY29u
c3QKICAgICByZXR1cm4gMDsKIH0KIAorQ29udGFpbmVyTm9kZSogTm9kZTo6cGFyZW50Tm9kZUZv
clJlbmRlcmluZ0FuZFN0eWxlKCkgY29uc3QKK3sKKyAgICBDb250YWluZXJOb2RlKiBwYXJlbnQg
PSBwYXJlbnRPckhvc3ROb2RlKCk7CisgICAgcmV0dXJuIHBhcmVudCAmJiBwYXJlbnQtPmlzU2hh
ZG93Qm91bmRhcnkoKSA/IHBhcmVudC0+c2hhZG93SG9zdCgpIDogcGFyZW50OworfQorCiBSZW5k
ZXJPYmplY3QqIE5vZGU6OmNyZWF0ZVJlbmRlcmVyQW5kU3R5bGUoKQogewogICAgIEFTU0VSVCgh
cmVuZGVyZXIoKSk7CiAgICAgQVNTRVJUKGRvY3VtZW50KCktPnNob3VsZENyZWF0ZVJlbmRlcmVy
cygpKTsKIAotICAgIENvbnRhaW5lck5vZGUqIHBhcmVudCA9IHBhcmVudE9ySG9zdE5vZGUoKTsK
KyAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5
bGUoKTsKICAgICBBU1NFUlQocGFyZW50KTsKKwogICAgIFJlbmRlck9iamVjdCogcGFyZW50UmVu
ZGVyZXIgPSBwYXJlbnQtPnJlbmRlcmVyKCk7CiAKICAgICAvLyBGSVhNRTogSWdub3JpbmcgY2Fu
SGF2ZUNoaWxkcmVuKCkgaW4gYSBjYXNlIG9mIGlzU2hhZG93Um9vdCgpIG1pZ2h0IGJlIHdyb25n
LgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI0
MjMKLSAgICBpZiAoIXBhcmVudFJlbmRlcmVyIHx8ICghcGFyZW50UmVuZGVyZXItPmNhbkhhdmVD
aGlsZHJlbigpICYmICFpc1NoYWRvd1Jvb3QoKSkgfHwgIXBhcmVudC0+Y2hpbGRTaG91bGRDcmVh
dGVSZW5kZXJlcih0aGlzKSkKKyAgICBpZiAoIXBhcmVudFJlbmRlcmVyIHx8ICghcGFyZW50UmVu
ZGVyZXItPmNhbkhhdmVDaGlsZHJlbigpICYmICEoaXNTaGFkb3dSb290KCkgfHwgcGFyZW50Tm9k
ZSgpLT5pc1NoYWRvd0JvdW5kYXJ5KCkpKSB8fCAhcGFyZW50LT5jaGlsZFNob3VsZENyZWF0ZVJl
bmRlcmVyKHRoaXMpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxSZW5kZXJTdHls
ZT4gc3R5bGUgPSBzdHlsZUZvclJlbmRlcmVyKCk7CkBAIC0xNDY1LDcgKzE0NzIsNyBAQCB2b2lk
IE5vZGU6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICAv
LyBOb3RlOiBBZGRpbmcgbmV3UmVuZGVyZXIgaW5zdGVhZCBvZiByZW5kZXJlcigpLiByZW5kZXJl
cigpIG1heSBiZSBhIGNoaWxkIG9mIG5ld1JlbmRlcmVyLgotICAgIHBhcmVudE9ySG9zdE5vZGUo
KS0+cmVuZGVyZXIoKS0+YWRkQ2hpbGQobmV3UmVuZGVyZXIsIG5leHRSZW5kZXJlcigpKTsKKyAg
ICBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKS0+cmVuZGVyZXIoKS0+YWRkQ2hpbGQo
bmV3UmVuZGVyZXIsIG5leHRSZW5kZXJlcigpKTsKIH0KIAogUGFzc1JlZlB0cjxSZW5kZXJTdHls
ZT4gTm9kZTo6c3R5bGVGb3JSZW5kZXJlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBjMjI1ZGJhYzhmZjg5
MWRmOWNmZTI2NWVjMjZiODJkZTFjNGJiMTNiLi5jNDkyYjRkNGIyOGY5YTVlOTcwZWQwMmE1NGE0
MzE2NTc4ZDc4MmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTIwMyw2ICsyMDMsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIGlzQ2hhcmFjdGVyRGF0YU5vZGUoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIGJvb2wgaXNEb2N1bWVudE5vZGUoKSBjb25zdDsKICAgICBib29sIGlzU2hhZG93
Um9vdCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNTaGFkb3dSb290RmxhZyk7IH0KKyAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiBhbGwgc2hhZG93IHJvb3RzIGFyZSBTaGFkb3dSb290
cy4KKyAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkb3dCb3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAgICAgTm9kZSogc2hhZG93QW5jZXN0b3JOb2RlKCk7CiAgICAgTm9kZSogc2hhZG93
VHJlZVJvb3ROb2RlKCk7CiAgICAgYm9vbCBpc0luU2hhZG93VHJlZSgpOwpAQCAtNDQ0LDYgKzQ0
Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJT
dHlsZSopOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUq
KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKKyAgICBDb250YWluZXJOb2Rl
KiBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKSBjb25zdDsKICAgICAKICAgICAvLyBX
cmFwcGVyIGZvciBub2RlcyB0aGF0IGRvbid0IGhhdmUgYSByZW5kZXJlciwgYnV0IHN0aWxsIGNh
Y2hlIHRoZSBzdHlsZSAobGlrZSBIVE1MT3B0aW9uRWxlbWVudCkuCiAgICAgUmVuZGVyU3R5bGUq
IHJlbmRlclN0eWxlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTQyNDk0MGJhYWFlZGZjZThkNjI3N2JlZGUyYzczNDJjZDE3MWJlZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtMCwwICsxLDUyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IFNoYWRvd1Jvb3Q6OmNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFkb3dS
b290KGRvY3VtZW50KSk7Cit9CisKK1NoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRv
Y3VtZW50KQorICAgIDogRG9jdW1lbnRGcmFnbWVudChkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQo
ZG9jdW1lbnQpOworfQorCit2b2lkIFNoYWRvd1Jvb3Q6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdl
IGNoYW5nZSkKK3sKKyAgICBmb3IgKE5vZGUqIG4gPSBmaXJzdENoaWxkKCk7IG47IG4gPSBuLT5u
ZXh0U2libGluZygpKQorICAgICAgICBuLT5yZWNhbGNTdHlsZShjaGFuZ2UpOworCisgICAgY2xl
YXJOZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgY2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ3Yzg2ZTFjOWNiODli
MWViY2NjNWVkOGNkY2MwZjBlNjI3MDM0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU2hhZG93Um9v
dF9oCisjZGVmaW5lIFNoYWRvd1Jvb3RfaAorCisjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworCitjbGFzcyBTaGFk
b3dSb290IDogcHVibGljIERvY3VtZW50RnJhZ21lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IGNyZWF0ZShEb2N1bWVudCopOworCisgICAgdmlydHVhbCBi
b29sIGlzU2hhZG93Qm91bmRhcnkoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVh
bCB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlID0gTm9DaGFuZ2UpOworCitwcml2YXRlOgor
ICAgIFNoYWRvd1Jvb3QoRG9jdW1lbnQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAppbmRleCBiOTAzMzVl
YzQyOTI1NzA1ZTRhZTM4YTc0ZDA2YWNhZGFlODJkNThkLi4zNzIyNDQ4MGQ2NjM3MjllNjczNGRk
YmE1ZDYxYzBlYWZkZjIyMGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxL
ZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVt
ZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJTU0xLZXlHZW5lcmF0
b3IuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtNjcsMTUgKzY4LDE4IEBAIGlubGluZSBIVE1M
S2V5Z2VuRWxlbWVudDo6SFRNTEtleWdlbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoa2V5Z2VuVGFnKSk7CiAKICAgICAv
LyBDcmVhdGUgYSBzZWxlY3QgZWxlbWVudCB3aXRoIG9uZSBvcHRpb24gZWxlbWVudCBmb3IgZWFj
aCBrZXkgc2l6ZS4KLSAgICBSZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IHNlbGVjdCA9IEtleWdl
blNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgVmVjdG9yPFN0cmluZz4ga2V5
czsKICAgICBnZXRTdXBwb3J0ZWRLZXlTaXplcyhrZXlzKTsKKworICAgIFJlZlB0cjxIVE1MU2Vs
ZWN0RWxlbWVudD4gc2VsZWN0ID0gS2V5Z2VuU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGtleXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgUmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBv
cHRpb24gPSBIVE1MT3B0aW9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCB0aGlzLT5mb3JtKCkp
OwotICAgICAgICBzZWxlY3QtPnBhcnNlckFkZENoaWxkKG9wdGlvbik7Ci0gICAgICAgIG9wdGlv
bi0+cGFyc2VyQWRkQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBrZXlzW2ldKSk7CisgICAg
ICAgIHNlbGVjdC0+YXBwZW5kQ2hpbGQob3B0aW9uLCBlYyk7CisgICAgICAgIG9wdGlvbi0+YXBw
ZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50LCBrZXlzW2ldKSwgZWMpOwogICAgIH0KLSAg
ICBzZXRTaGFkb3dSb290KHNlbGVjdCk7CisKKyAgICBlbnN1cmVTaGFkb3dSb290KCktPmFwcGVu
ZENoaWxkKHNlbGVjdCwgZWMpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxLZXlnZW5FbGVtZW50PiBI
VE1MS2V5Z2VuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQpAQCAtODcsNyArOTEsNyBA
QCB2b2lkIEhUTUxLZXlnZW5FbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUq
IGF0dHIpCiB7CiAgICAgLy8gUmVmbGVjdCBkaXNhYmxlZCBhdHRyaWJ1dGUgb24gdGhlIHNoYWRv
dyBzZWxlY3QgZWxlbWVudAogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gZGlzYWJsZWRBdHRyKQot
ICAgICAgICBzZWxlY3RTaGFkb3coKS0+c2V0QXR0cmlidXRlKGF0dHItPm5hbWUoKSwgYXR0ci0+
dmFsdWUoKSk7CisgICAgICAgIHNoYWRvd1NlbGVjdCgpLT5zZXRBdHRyaWJ1dGUoYXR0ci0+bmFt
ZSgpLCBhdHRyLT52YWx1ZSgpKTsKIAogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gY2hhbGxlbmdl
QXR0cikKICAgICAgICAgbV9jaGFsbGVuZ2UgPSBhdHRyLT52YWx1ZSgpOwpAQCAtMTAyLDcgKzEw
Niw3IEBAIGJvb2wgSFRNTEtleWdlbkVsZW1lbnQ6OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlz
dCYgZW5jb2RlZF92YWx1ZXMsIGJvb2wpCiAgICAgLy8gT25seSBSU0EgaXMgc3VwcG9ydGVkIGF0
IHRoaXMgdGltZS4KICAgICBpZiAoIW1fa2V5VHlwZS5pc051bGwoKSAmJiAhZXF1YWxJZ25vcmlu
Z0Nhc2UobV9rZXlUeXBlLCAicnNhIikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBTdHJp
bmcgdmFsdWUgPSBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcoc2VsZWN0U2hhZG93
KCktPnNlbGVjdGVkSW5kZXgoKSwgbV9jaGFsbGVuZ2UsIGRvY3VtZW50KCktPmJhc2VVUkwoKSk7
CisgICAgU3RyaW5nIHZhbHVlID0gc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHNo
YWRvd1NlbGVjdCgpLT5zZWxlY3RlZEluZGV4KCksIG1fY2hhbGxlbmdlLCBkb2N1bWVudCgpLT5i
YXNlVVJMKCkpOwogICAgIGlmICh2YWx1ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGVuY29kZWRfdmFsdWVzLmFwcGVuZERhdGEobmFtZSgpLCB2YWx1ZS51dGY4KCkpOwpA
QCAtMTE3LDEyICsxMjEsMTMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MS2V5Z2VuRWxlbWVu
dDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIAogdm9pZCBIVE1MS2V5Z2VuRWxlbWVudDo6cmVz
ZXQoKQogewotICAgIHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPihzZWxlY3RT
aGFkb3coKSktPnJlc2V0KCk7CisgICAgc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVu
dCo+KHNoYWRvd1NlbGVjdCgpKS0+cmVzZXQoKTsKIH0KIAotSFRNTFNlbGVjdEVsZW1lbnQqIEhU
TUxLZXlnZW5FbGVtZW50OjpzZWxlY3RTaGFkb3coKQorSFRNTFNlbGVjdEVsZW1lbnQqIEhUTUxL
ZXlnZW5FbGVtZW50OjpzaGFkb3dTZWxlY3QoKSBjb25zdAogewotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxIVE1MU2VsZWN0RWxlbWVudCo+KHNoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKHNoYWRv
d1Jvb3QoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4oc2hh
ZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oCmluZGV4IDAyMDAzZTgwZDJkOGY4MWI3NjlhOTIx
NDMwZGNmYTRkNmMwMzUzMjAuLjg4NzgyYzg4YzM3OTYxNjM5YmI4YzY3OTdhZTkxZDRlMDc0ODY3
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmgKQEAgLTUxLDcgKzUx
LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOwogCi0gICAgSFRNTFNl
bGVjdEVsZW1lbnQqIHNlbGVjdFNoYWRvdygpOworICAgIEhUTUxTZWxlY3RFbGVtZW50KiBzaGFk
b3dTZWxlY3QoKSBjb25zdDsKIAogICAgIEF0b21pY1N0cmluZyBtX2NoYWxsZW5nZTsKICAgICBB
dG9taWNTdHJpbmcgbV9rZXlUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVu
dC5jcHAKaW5kZXggNzY4NzI4M2ViNzlkNThhMzgxNWE2YzI4Mzk3ZDRkOTk2YWUzM2IyYS4uODhi
MTYyMjFmMTU3YjRjNDM3MTFmOWU5YzZlMmFmY2RiMGMyMDUyZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSFRN
TFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIk1ldGVyU2hhZG93RWxlbWVudC5oIgogI2luY2x1
ZGUgIlJlbmRlck1ldGVyLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjMwLDcgKzIzMSw3
IEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAgICAgbV92
YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAgICAgRXhjZXB0
aW9uQ29kZSBlYyA9IDA7CiAgICAgYmFyLT5hcHBlbmRDaGlsZChtX3ZhbHVlLCBlYyk7Ci0gICAg
c2V0U2hhZG93Um9vdChiYXIpOworICAgIGVuc3VyZVNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQo
YmFyLCBlYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCBkZmI4ZDQ0NThlMDRmMDkwMTlkNThjNjkwY2Q3ZGUw
MDZhZGI5ZThiLi4zOWIxMjliNzZhMmNhMmU4Mjc4Nzk4MzU2YjY3ZGMyNWY2YmNkMzJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NT
aGFkb3dFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNpbmNsdWRlICJT
aGFkb3dSb290LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0xMzcsOSArMTM4LDkgQEAgdm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojpj
cmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBSZWZQdHI8UHJvZ3Jlc3NCYXJFbGVtZW50PiBi
YXIgPSBQcm9ncmVzc0JhckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICBtX3ZhbHVl
ID0gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAgICBFeGNlcHRp
b25Db2RlIGUgPSAwOwotICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwgZSk7Ci0gICAgc2V0
U2hhZG93Um9vdChiYXIpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGJhci0+YXBw
ZW5kQ2hpbGQobV92YWx1ZSwgZWMpOworICAgIGVuc3VyZVNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hp
bGQoYmFyLCBlYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5j
cHAKaW5kZXggZTcwOGEzNTYyOGYwMWU2ZTVkMzljYzZhZTA5MzMxMjkyNThiNzQyNi4uYmEyNzQw
ODcwNmIwMjYwMGI4ZDMwNjYwYzFiNDQ3NzI0MTVjODU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2lu
Y2x1ZGUgIlJlc2V0SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiU2VhcmNoSW5wdXRUeXBlLmgiCisj
aW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlN1Ym1pdElucHV0VHlwZS5oIgogI2lu
Y2x1ZGUgIlRlbGVwaG9uZUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIlRleHRJbnB1dFR5cGUuaCIK
QEAgLTM1OSw3ICszNjAsNyBAQCB2b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgp
CiAKIHZvaWQgSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiB7Ci0gICAgZWxlbWVu
dCgpLT5zZXRTaGFkb3dSb290KDApOworICAgIGVsZW1lbnQoKS0+cmVtb3ZlU2hhZG93Um9vdCgp
OwogfQogCiBkb3VibGUgSW5wdXRUeXBlOjpwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYsIGRv
dWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwCmluZGV4IGY3ZWU2NzQ3NGQzMmI5NDY4OTk2NTI4YzUxYTFmYTc1YWJmZjdlZmUuLmYyZGU2
NWQyOTk3YjQ0OTYwZjEyMTAzOTkyOWZlNDM2YTg0MjRhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
UmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiTW91c2VFdmVu
dC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlclNs
aWRlci5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTbGlkZXJUaHVtYkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDxsaW1pdHM+CkBAIC0x
NDgsNyArMTQ5LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VEb3duRXZlbnQo
TW91c2VFdmVudCogZXZlbnQpCiAgICAgaWYgKGV2ZW50LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9u
IHx8IGV2ZW50LT50YXJnZXQoKSAhPSBlbGVtZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGlmIChTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iID0gdG9TbGlkZXJUaHVtYkVsZW1lbnQoZWxl
bWVudCgpLT5zaGFkb3dSb290KCkpKQorICAgIGlmIChTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1i
ID0gc2hhZG93U2xpZGVyVGh1bWIoKSkKICAgICAgICAgdGh1bWItPmRyYWdGcm9tKGV2ZW50LT5h
YnNvbHV0ZUxvY2F0aW9uKCkpOwogfQogCkBAIC0xOTYsNyArMTk3LDkgQEAgdm9pZCBSYW5nZUlu
cHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogCiB2b2lk
IFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBlbGVtZW50KCkt
PnNldFNoYWRvd1Jvb3QoU2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1
bWVudCgpKSk7CisgICAgUmVmUHRyPFNoYWRvd1Jvb3Q+IHNoYWRvdyA9IFNoYWRvd1Jvb3Q6OmNy
ZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwor
ICAgIGVsZW1lbnQoKS0+ZW5zdXJlU2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChTbGlkZXJUaHVt
YkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpLCBlYyk7CiB9CiAKIFJlbmRl
ck9iamVjdCogUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVu
YSwgUmVuZGVyU3R5bGUqKSBjb25zdApAQCAtMjQxLDcgKzI0NCw3IEBAIHZvaWQgUmFuZ2VJbnB1
dFR5cGU6Om1pbk9yTWF4QXR0cmlidXRlQ2hhbmdlZCgpCiAKIHZvaWQgUmFuZ2VJbnB1dFR5cGU6
OnZhbHVlQ2hhbmdlZCgpCiB7Ci0gICAgdG9TbGlkZXJUaHVtYkVsZW1lbnQoZWxlbWVudCgpLT5z
aGFkb3dSb290KCkpLT5zZXRQb3NpdGlvbkZyb21WYWx1ZSgpOworICAgIHNoYWRvd1NsaWRlclRo
dW1iKCktPnNldFBvc2l0aW9uRnJvbVZhbHVlKCk7CiB9CiAKIFN0cmluZyBSYW5nZUlucHV0VHlw
ZTo6ZmFsbGJhY2tWYWx1ZSgpCkBAIC0yNjUsNCArMjY4LDEwIEBAIGJvb2wgUmFuZ2VJbnB1dFR5
cGU6OnNob3VsZFJlc3BlY3RMaXN0QXR0cmlidXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
U2xpZGVyVGh1bWJFbGVtZW50KiBSYW5nZUlucHV0VHlwZTo6c2hhZG93U2xpZGVyVGh1bWIoKSBj
b25zdAoreworICAgIE5vZGUqIHNoYWRvdyA9IGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpOworICAg
IHJldHVybiBzaGFkb3cgPyB0b1NsaWRlclRodW1iRWxlbWVudChzaGFkb3ctPmZpcnN0Q2hpbGQo
KSkgOiAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmgKaW5kZXggMzc1Mjk4NTIwMmFkMjE0MWNhMDk3NTRlOTk3ZGM5YjBkYjhjYzAw
Ny4uNzVlN2ExNzQ1YzZlZWNkNzM1NWY0ZDAyY2IwNzhjODhiZTlkYjQ5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtMzUsNiArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIFNsaWRlclRodW1iRWxlbWVudDsKKwogY2xhc3MgUmFuZ2VJbnB1dFR5
cGUgOiBwdWJsaWMgSW5wdXRUeXBlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJ
bnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Kik7CkBAIC02Nyw2ICs2OSw4IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpOwogICAgIHZpcnR1YWwg
U3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKTsKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKTsKKworICAgIFNsaWRlclRo
dW1iRWxlbWVudCogc2hhZG93U2xpZGVyVGh1bWIoKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1l
c3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKaW5k
ZXggNTlhMTQ2NzllM2IwOWM4YTYwMjE3OTc4OTgyZTUzZWRiY2RlZWIxYS4uNDg5MTJkNzM3MWMy
ZTA1ZWMwMTk0MzI1Njc5ZWY2NDVlMmY0YjQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxp
ZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAKQEAgLTEyOSwxMiArMTMwLDcgQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6YnVp
bGRCdWJibGVUcmVlKFRpbWVyPFZhbGlkYXRpb25NZXNzYWdlPiopCiAgICAgLy8gY29udGFpbnMg
bm9uLWFic29sdXRlIG9yIG5vbi1maXhlZCByZW5kZXJlcnMgYXMgY2hpbGRyZW4uCiAgICAgbV9i
dWJibGUtPmdldElubGluZVN0eWxlRGVjbCgpLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVBvc2l0
aW9uLCBDU1NWYWx1ZUFic29sdXRlKTsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAv
LyBGSVhNRTogV2UgbmVlZCBhIHdheSB0byBob3N0IG11bHRpcGxlIHNoYWRvdyByb290cyBpbiBh
IHNpbmdsZSBub2RlLCBvcgotICAgIC8vIHRvIGluaGVyaXQgYW4gZXhpc3Rpbmcgc2hhZG93IHRy
ZWUuCi0gICAgaWYgKGhvc3QtPnNoYWRvd1Jvb3QoKSkKLSAgICAgICAgaG9zdC0+c2hhZG93Um9v
dCgpLT5hcHBlbmRDaGlsZChtX2J1YmJsZS5nZXQoKSwgZWMpOwotICAgIGVsc2UKLSAgICAgICAg
aG9zdC0+c2V0U2hhZG93Um9vdChtX2J1YmJsZSk7CisgICAgaG9zdC0+ZW5zdXJlU2hhZG93Um9v
dCgpLT5hcHBlbmRDaGlsZChtX2J1YmJsZS5nZXQoKSwgZWMpOwogCiAgICAgUmVmUHRyPEhUTUxF
bGVtZW50PiBjbGlwcGVyID0gRWxlbWVudFdpdGhQc2V1ZG9JZDo6Y3JlYXRlKGRvYywgIi13ZWJr
aXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ctY2xpcHBlciIpOwogICAgIGNsaXBwZXItPmFwcGVu
ZENoaWxkKEVsZW1lbnRXaXRoUHNldWRvSWQ6OmNyZWF0ZShkb2MsICItd2Via2l0LXZhbGlkYXRp
b24tYnViYmxlLWFycm93IiksIGVjKTsKQEAgLTE2MSwxMiArMTU3LDggQEAgdm9pZCBWYWxpZGF0
aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZShUaW1lcjxWYWxpZGF0aW9uTWVzc2FnZT4qKQog
ICAgIGlmIChtX2J1YmJsZSkgewogICAgICAgICBtX2J1YmJsZU1lc3NhZ2UgPSAwOwogICAgICAg
ICBIVE1MRWxlbWVudCogaG9zdCA9IHRvSFRNTEVsZW1lbnQobV9lbGVtZW50KTsKLSAgICAgICAg
aWYgKG1fYnViYmxlLT5pc1NoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgIGhvc3QtPnNldFNoYWRv
d1Jvb3QoMCk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYzsK
LSAgICAgICAgICAgIGhvc3QtPnNoYWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0
KCksIGVjKTsKLSAgICAgICAgfQorICAgICAgICBFeGNlcHRpb25Db2RlIGVjOworICAgICAgICBo
b3N0LT5zaGFkb3dSb290KCktPnJlbW92ZUNoaWxkKG1fYnViYmxlLmdldCgpLCBlYyk7CiAgICAg
ICAgIG1fYnViYmxlID0gMDsKICAgICB9CiAgICAgbV9tZXNzYWdlID0gU3RyaW5nKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRl
eCA2MzUzMjU5MzMyMjEyZGYwN2FlMWY3OGJlODc0MGJkNDI5MzZiN2ZiLi44YTA2Y2IzM2ZiNWNi
ZmNhMDBmZmM4YWU2ZGZlZjU0ZDkxYzc0ZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lk
IFNsaWRlclRodW1iRWxlbWVudDo6ZHJhZ0Zyb20oY29uc3QgSW50UG9pbnQmIHBvaW50KQogCiB2
b2lkIFNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9zaXRpb25Gcm9tUG9pbnQoY29uc3QgSW50UG9p
bnQmIHBvaW50KQogewotICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0hvc3QoKSk7CisgICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSBob3N0SW5wdXQoKTsKICAgICBBU1NFUlQoaW5wdXQpOwogCiAgICAgaWYgKCFpbnB1
dC0+cmVuZGVyZXIoKSB8fCAhcmVuZGVyZXIoKSkKQEAgLTE5OCw2ICsxOTgsMTIgQEAgdm9pZCBT
bGlkZXJUaHVtYkVsZW1lbnQ6OmRldGFjaCgpCiAgICAgSFRNTERpdkVsZW1lbnQ6OmRldGFjaCgp
OwogfQogCitIVE1MSW5wdXRFbGVtZW50KiBTbGlkZXJUaHVtYkVsZW1lbnQ6Omhvc3RJbnB1dCgp
Cit7CisgICAgQVNTRVJUKHBhcmVudE5vZGUoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnQqPihwYXJlbnROb2RlKCktPnNoYWRvd0hvc3QoKSk7Cit9CisKIGNvbnN0
IEF0b21pY1N0cmluZyYgU2xpZGVyVGh1bWJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNsaWRlclRodW1iLCAo
Ii13ZWJraXQtc2xpZGVyLXRodW1iIikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaAppbmRleCA5NDE0YWM0OGE2OTFlMDhhYWNjZDQyODU3MWJi
NWVhZmEzYTlhYmQ5Li4yZmE2MGNiNWU0YjkwMGRhMWI0ZGNiNDJlODZkYTRiY2NjNTMwZDUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaApA
QCAtNDEsNiArNDEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MRWxlbWVu
dDsKK2NsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiBjbGFzcyBFdmVudDsKIGNsYXNzIEZsb2F0UG9p
bnQ7CiAKQEAgLTYyLDYgKzYzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0RHJhZ2dpbmco
KTsKICAgICB2b2lkIHN0b3BEcmFnZ2luZygpOwogICAgIHZvaWQgc2V0UG9zaXRpb25Gcm9tUG9p
bnQoY29uc3QgSW50UG9pbnQmKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBob3N0SW5wdXQoKTsK
IAogICAgIEZsb2F0UG9pbnQgbV9vZmZzZXRUb1RodW1iOwogICAgIGJvb2wgbV9pbkRyYWdNb2Rl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1l
bnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5j
cHAKaW5kZXggNDljNDU3ODRhYTc3MjkxNDQ3MTIyNmJlNTM5N2Q3OGU0YWNiMjg1ZS4uYjhhZDNk
Mzg0MjA3MmZkMTNkYmY3ODNlNzg4MjMwOWY3MWQ2MDgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC00NTYsNyArNDU2LDcg
QEAgdm9pZCBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OmF0dGFjaCgpCiAgICAgICAgIHBhcmVu
dE5vZGUoKS0+cmVuZGVyZXIoKS0+YWRkQ2hpbGQocmVuZGVyZXIsIHNpYmxpbmcgPyBzaWJsaW5n
LT5yZW5kZXJlcigpIDogMCk7CiAgICAgfSAgCiAgICAgQ29udGFpbmVyTm9kZTo6YXR0YWNoKCk7
Ci0gICAgLy8gRklYTUU6IEN1cnJlbnRseSwgTWVpZGFDb250cm9sSW5wdXQgY2lyY3VtdmVudHMg
dGhlIG5vcm1hbCBhdHRhY2htZW50CisgICAgLy8gRklYTUU6IEN1cnJlbnRseSwgTWVkaWFDb250
cm9sSW5wdXQgY2lyY3VtdmVudHMgdGhlIG5vcm1hbCBhdHRhY2htZW50CiAgICAgLy8gYW5kIHN0
eWxlIHJlY2FsYyBjeWNsZSBhbmQgdGh1cyB3ZSBuZWVkIHRvIGFkZCBleHRyYSBsb2dpYyB0byBi
ZSBhd2FyZSBvZgogICAgIC8vIHRoZSBzaGFkb3cgRE9NLiBSZW1vdmUgdGhpcyBvbmNlIGFsbCBt
ZWRpYSBjb250cm9scyBhcmUgdHJhbnNpdGlvbmVkIHRvIHVzZSB0aGUgcmVndWxhcgogICAgIC8v
IHN0eWxlIGNhbGN1bGF0aW9uLgpAQCAtNDgxLDcgKzQ4MSw3IEBAIHZvaWQgTWVkaWFDb250cm9s
SW5wdXRFbGVtZW50Ojp1cGRhdGVTdHlsZSgpCiAgICAgZWxzZSBpZiAocmVuZGVyZXIoKSkKICAg
ICAgICAgcmVuZGVyZXIoKS0+c2V0U3R5bGUoc3R5bGUuZ2V0KCkpOwogCi0gICAgLy8gRklYTUU6
IEN1cnJlbnRseSwgTWVpZGFDb250cm9sSW5wdXQgY2lyY3VtdmVudHMgdGhlIG5vcm1hbCBhdHRh
Y2htZW50CisgICAgLy8gRklYTUU6IEN1cnJlbnRseSwgTWVkaWFDb250cm9sSW5wdXQgY2lyY3Vt
dmVudHMgdGhlIG5vcm1hbCBhdHRhY2htZW50CiAgICAgLy8gYW5kIHN0eWxlIHJlY2FsYyBjeWNs
ZSBhbmQgdGh1cyB3ZSBuZWVkIHRvIGFkZCBleHRyYSBsb2dpYyB0byBiZSBhd2FyZSBvZgogICAg
IC8vIHRoZSBzaGFkb3cgRE9NLiBSZW1vdmUgdGhpcyBvbmNlIGFsbCBtZWRpYSBjb250cm9scyBh
cmUgdHJhbnNpdGlvbmVkIHRvIHVzZQogICAgIC8vIHRoZSBuZXcgc2hhZG93IERPTS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKaW5kZXggMTY2MWI3YTJjNTU2Nzk3
ZjI0YjU1NzYxYWYyM2JhOWU2NjUwZGE3ZC4uYWQ1YWIxYWRmYmU4NDhkZjllMmYyYjYxOTZkM2Ji
Mjk0MjY4ZGE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNs
aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVk
ZSAiTWVkaWFDb250cm9sRWxlbWVudHMuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5j
bHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0xMDEsNyArMTAyLDcgQEAgdm9p
ZCBSZW5kZXJTbGlkZXI6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKIAogSW50UmVj
dCBSZW5kZXJTbGlkZXI6OnRodW1iUmVjdCgpCiB7Ci0gICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0
aHVtYkVsZW1lbnQgPSBzbGlkZXJUaHVtYkVsZW1lbnQoKTsKKyAgICBTbGlkZXJUaHVtYkVsZW1l
bnQqIHRodW1iRWxlbWVudCA9IHNoYWRvd1NsaWRlclRodW1iKCk7CiAgICAgaWYgKCF0aHVtYkVs
ZW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CiAKQEAgLTEyOCw3ICsxMjksNyBAQCB2
b2lkIFJlbmRlclNsaWRlcjo6bGF5b3V0KCkKIHsKICAgICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7
CiAKLSAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iRWxlbWVudCA9IHNsaWRlclRodW1iRWxl
bWVudCgpOworICAgIFNsaWRlclRodW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0gc2hhZG93U2xp
ZGVyVGh1bWIoKTsKICAgICBSZW5kZXJCb3gqIHRodW1iID0gdGh1bWJFbGVtZW50ID8gdG9SZW5k
ZXJCb3godGh1bWJFbGVtZW50LT5yZW5kZXJlcigpKSA6IDA7CiAKICAgICBJbnRTaXplIGJhc2VT
aXplKGJvcmRlckFuZFBhZGRpbmdXaWR0aCgpLCBib3JkZXJBbmRQYWRkaW5nSGVpZ2h0KCkpOwpA
QCAtMTc2LDE0ICsxNzcsMTUgQEAgdm9pZCBSZW5kZXJTbGlkZXI6OmxheW91dCgpCiAgICAgc2V0
TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCi1TbGlkZXJUaHVtYkVsZW1lbnQqIFJlbmRlclNsaWRl
cjo6c2xpZGVyVGh1bWJFbGVtZW50KCkgY29uc3QKK1NsaWRlclRodW1iRWxlbWVudCogUmVuZGVy
U2xpZGVyOjpzaGFkb3dTbGlkZXJUaHVtYigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHRvU2xpZGVy
VGh1bWJFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpLT5zaGFkb3dSb290KCkp
OworICAgIE5vZGUqIHNoYWRvdyA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpLT5zaGFk
b3dSb290KCk7CisgICAgcmV0dXJuIHNoYWRvdyA/IHRvU2xpZGVyVGh1bWJFbGVtZW50KHNoYWRv
dy0+Zmlyc3RDaGlsZCgpKSA6IDA7CiB9CiAKIGJvb2wgUmVuZGVyU2xpZGVyOjppbkRyYWdNb2Rl
KCkgY29uc3QKIHsKLSAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iRWxlbWVudCA9IHNsaWRl
clRodW1iRWxlbWVudCgpOworICAgIFNsaWRlclRodW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0g
c2hhZG93U2xpZGVyVGh1bWIoKTsKICAgICByZXR1cm4gdGh1bWJFbGVtZW50ICYmIHRodW1iRWxl
bWVudC0+aW5EcmFnTW9kZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyU2xpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xp
ZGVyLmgKaW5kZXggMDE2MmI3MTA3YmFkNWVlNmM1MzJkNTU5YmNlNTU0NDEwYzkwZTExNy4uNGUx
N2YzMGQ4YTgxMWQxN2QzZTI4ODQ3ZjI3ZmIyOWViMzY1ZTU5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbGlkZXIuaApAQCAtNDYsOCArNDYsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKIAogICAgICAgICAvLyBGSVhNRTog
RXZlbnR1YWxseSwgdGhlIGxvZ2ljIG9mIG1hbmlwdWxhdGluZyBzbGlkZXIgdGh1bWIgc2hvdWxk
IG1vdmUgdG8KLSAgICAgICAgLy8gU2xpZGVyVGh1bWJFbGVtZW50IGFuZCBhY2Nlc3Npbmcgc2xp
ZGVyVGh1bWJFbGVtZW50IHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5IGluIHRoaXMgY2xhc3MuCi0g
ICAgICAgIFNsaWRlclRodW1iRWxlbWVudCogc2xpZGVyVGh1bWJFbGVtZW50KCkgY29uc3Q7Cisg
ICAgICAgIC8vIFNsaWRlclRodW1iRWxlbWVudCBhbmQgYWNjZXNzaW5nIHNoYWRvd1NsaWRlclRo
dW1iIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5IGluIHRoaXMgY2xhc3MuCisgICAgICAgIFNsaWRl
clRodW1iRWxlbWVudCogc2hhZG93U2xpZGVyVGh1bWIoKSBjb25zdDsKIAogICAgICAgICB2aXJ0
dWFsIGJvb2wgcmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1Byb3BhZ2F0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88685</attachid>
            <date>2011-04-07 13:36:54 -0700</date>
            <delta_ts>2011-04-07 13:53:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57813-20110407133653.patch</filename>
            <type>text/plain</type>
            <size>56080</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMxODAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwYzliYmZjZTI2ZmRlZDQwYzdhMWVj
ZWEzZmMyMjliYWM3MDAyNTlmLi43NmU2ZDIyOGFhYTliNThkMThiMTE0YTA3ZDIwOTYyYmY0YzU5
MTk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQtMDYgIERvbWluaWMgQ29vbmV5ICA8
ZG9taW5pY2NAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBMZXQgc2hhZG93IERPTSBoYXZlIGEgbGlzdCBvZiBub2RlcyBhdCB0aGUg
dG9wIGxldmVsIG9mIGEgc2hhZG93LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTc4MTMKKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxLZXlnZW5FbGVt
ZW50L2tleWdlbi1leHBlY3RlZC50eHQ6IHNoYWRvdyBET00gY2hhbmdlZAorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sOiBhZGRlZCBhc3NlcnRpb24gb24g
c2hhZG93CisKIDIwMTEtMDQtMDcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4tZXhwZWN0ZWQu
dHh0CmluZGV4IDc0NWYwMTY3ZjYzM2JiYjU2MTcwNDFhZjU3MDk5MmIxZGM5MmI1OTMuLmE4YjJl
ZTU5NDMyY2RmYTA4MjA2NmYyMDQ0NWY0ZDFlYTZhNDAwYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEtleWdlbkVsZW1lbnQva2V5Z2VuLWV4cGVjdGVkLnR4
dApAQCAtMiw4ICsyLDkgQEAKIFRoaXMgdGVzdHMgdGhlIGtleWdlbiBlbGVtZW50LgogCiBQQVNT
IGtleWdlbi5vcHRpb25zIGlzIHVuZGVmaW5lZAotUEFTUyBzaGFkb3cudGFnTmFtZSBpcyAiU0VM
RUNUIgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHNoYWRvdykgaXMgbnVs
bAorUEFTUyBzaGFkb3cuZmlyc3RDaGlsZC50YWdOYW1lIGlzICJTRUxFQ1QiCitQQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3Qoc2hhZG93KSBpcyB1bmRlZmluZWQKK1BBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChzaGFkb3cuZmlyc3RDaGlsZCkgaXMgbnVsbAog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sCmluZGV4
IGVkOWNkY2FjZWZlZmZmMzllYzJkY2EyNDgzMjdjNDdlMGJiOTQxOGMuLmNiODgzMTYxNWU1Njll
ZDgyNmRmNjc5ZWU4MTQzOTY3ZTM4OWFhNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sCkBAIC0xNSw4ICsxNSw5IEBAIHNob3Vs
ZEJlKCdrZXlnZW4ub3B0aW9ucycsICd1bmRlZmluZWQnKTsgIC8vIGtleWdlbiBpcyBub3QgYSBz
ZWxlY3QKIAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICB2YXIgc2hhZG93
ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChrZXlnZW4pOwotICBzaG91bGRCZSgn
c2hhZG93LnRhZ05hbWUnLCAnIlNFTEVDVCInKTsKLSAgc2hvdWxkQmUoJ2xheW91dFRlc3RDb250
cm9sbGVyLnNoYWRvd1Jvb3Qoc2hhZG93KScsICdudWxsJyk7CisgIHNob3VsZEJlKCdzaGFkb3cu
Zmlyc3RDaGlsZC50YWdOYW1lJywgJyJTRUxFQ1QiJyk7CisgIHNob3VsZEJlKCdsYXlvdXRUZXN0
Q29udHJvbGxlci5zaGFkb3dSb290KHNoYWRvdyknLCAndW5kZWZpbmVkJyk7CisgIHNob3VsZEJl
KCdsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHNoYWRvdy5maXJzdENoaWxkKScsICdu
dWxsJyk7CiB9CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKaW5k
ZXggOTI4ODE3NzkzYWQ0MDM1YTEzNjM3YWYyNzFmNmI2ZWMwZmFkY2NkNC4uZWQ2M2UyYmM3Yjk4
NzA1MmQ0MDcyOWQ4MDI3M2Q1M2QxNjkwZmI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
QW5kcm9pZC5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0xNzUsNiArMTc1
LDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJZG9tL1Njcmlw
dFJ1bm5lci5jcHAgXAogCWRvbS9TZWxlY3RFbGVtZW50LmNwcCBcCiAJZG9tL1NlbGVjdG9yTm9k
ZUxpc3QuY3BwIFwKKwlkb20vU2hhZG93Um9vdC5jcHAgXAogCWRvbS9TcGFjZVNwbGl0U3RyaW5n
LmNwcCBcCiAJZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAgXAogCWRvbS9TdGF0aWNOb2Rl
TGlzdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5MDBhNzkyMjM1YzVjMjVlMzQ0MDQ5
OWI0MzMwNmI2ZjdmYWQ4ZWEzLi5iNTE4MGM5ZGIxOTAwZjg1YzY3ZmZhOWM5NWMxMjdmMDAyNzNj
Y2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjAzLDYgKzYwMyw3IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBkb20vU2NyaXB0UnVubmVyLmNwcAogICAgIGRvbS9TZWxlY3RFbGVtZW50
LmNwcAogICAgIGRvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcAorICAgIGRvbS9TaGFkb3dSb290LmNw
cAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcAogICAgIGRvbS9TdGF0aWNIYXNoU2V0Tm9k
ZUxpc3QuY3BwCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA1ODgx
MzM1NWIzYzNlNGY5MmUzMWYwNzQ5ZjUyOWM0Yjg1NTAzYzcuLmYwZmIyOWVmZTE1NmJlMGU3OWJh
YjlhOWI3YTIzZjE4OWNjZDMxZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4NiBAQAorMjAxMS0w
NC0wNiAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCBzaGFkb3cgRE9NIGhhdmUg
YSBsaXN0IG9mIG5vZGVzIGF0IHRoZSB0b3AgbGV2ZWwgb2YgYSBzaGFkb3cuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzgxMworCisgICAgICAgIEFk
ZHMgU2hhZG93Um9vdCwgYSBsaXN0IG9mIG5vZGVzLCB0byBiZSBhIHBhcmVudCBmb3IgdG9wLWxl
dmVsCisgICAgICAgIHNoYWRvdyBjaGlsZHJlbi4gRm9yd2FyZHMgcmVuZGVyaW5nIHRocm91Z2gg
dGhlIHJvb3QgYW5kIGludG8gdGhlCisgICAgICAgIGhvc3QncyByZW5kZXJlci4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzIG9mIGVsZW1lbnRzIHRoYXQgdXNlIHRoaXMgc3R5
bGUgb2Ygc2hhZG93LgorCisgICAgICAgICogQW5kcm9pZC5tazogYWRkIFNoYWRvd1Jvb3QKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmluaXRGb3JTdHlsZVJlc29sdmUpOiBw
cm94eSBzdHlsZSB0byBob3N0CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOiB0b3At
bGV2ZWwgKnNoYWRvdyotY29ubmVjdGVkIERPTSBpcyBhbGl2ZQorICAgICAgICAoV2ViQ29yZTo6
Q29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5l
ck5vZGU6OnJlcGxhY2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpy
ZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjphcHBlbmRDaGls
ZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwOiBTaGFkb3dSb290IGlzIGEg
a2luZCBvZiBEb2N1bWVudEZyYWdtZW50CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdt
ZW50OjpEb2N1bWVudEZyYWdtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5o
OgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OnJlY2FsY1N0eWxlKTogbG9vayB0aHJ1IFNoYWRvd1Jvb3QgdG8gaG9zdCBmb3Igc3R5bGUKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNoYWRvd1Jvb3QpOiBzaG91bGQgYmUgY29uc3QKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNoYWRvd1Jvb3QpOiByZW1vdmVkOyB1c2UgZW5z
dXJlU2hhZG93Um9vdAorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5zdXJlU2hhZG93Um9v
dCk6IGFkZGVkCisgICAgICAgICogZG9tL0VsZW1lbnQuaDogc2hhZG93Um9vdCBhY2Nlc3NvciBz
aG91bGQgYmUgY29uc3QKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6IGFsbCBzaGFk
b3cgcm9vdHMgYXJlIFNoYWRvd1Jvb3QgaW5zdGFuY2VzCisgICAgICAgICogZG9tL05vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxl
KTogYWRkZWQKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNyZWF0ZVJlbmRlcmVyQW5kU3R5bGUp
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCk6IGZvcndh
cmQgdG9wLWxldmVsIHNoYWRvdyByZW5kZXJlcnMKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNTaGFkb3dCb3VuZGFyeSk6CisgICAgICAgICogZG9tL1No
YWRvd1Jvb3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpTaGFkb3dSb290KToKKyAgICAgICAg
KFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OnJlY2FsY1N0eWxlKTogZm9yd2FyZCByZWNhbGMgdG8gY2hp
bGRyZW4KKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Jvb3Q6OmlzU2hhZG93Qm91bmRhcnkpOgorICAgICAgICAqIGh0bWwvSFRNTEtl
eWdlbkVsZW1lbnQuY3BwOiB1c2UgU2hhZG93Um9vdAorICAgICAgICAoV2ViQ29yZTo6SFRNTEtl
eWdlbkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxL
ZXlnZW5FbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MS2V5Z2VuRWxlbWVudDo6YXBwZW5kRm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEtleWdlbkVsZW1lbnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVt
ZW50OjpzaGFkb3dTZWxlY3QpOgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwOiB1c2UgU2hhZG93Um9vdAorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcDogdXNlIFNoYWRvd1Jvb3QKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUp
OgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOiB1c2UgU2hhZG93Um9vdAorICAg
ICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjp2YWx1ZUNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OnNoYWRvd1NsaWRlclRodW1iKToKKyAgICAgICAgKiBo
dG1sL1JhbmdlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5j
cHA6IHVzZSBTaGFkb3dSb290CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uTWVzc2FnZTo6
YnVpbGRCdWJibGVUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25NZXNzYWdlOjpk
ZWxldGVCdWJibGVUcmVlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlv
bkZyb21Qb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6Omhvc3RJ
bnB1dCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDogdXNlIFNoYWRvd1Jvb3QK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6YXR0YWNoKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6dXBkYXRlU3R5bGUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU2xpZGVyOjp0aHVtYlJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVy
OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpzaGFkb3dTbGlkZXJU
aHVtYik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmluRHJhZ01vZGUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuaDoKKwogMjAxMS0wNC0wNyAgRGFuIEJlcm5z
dGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGVlNzBhNGZiYTFkMTQ4NDM1YWU2YzI2ZWFlZjcxMjg5
NGEyMDVlYTEuLjFkMDUwMzAyMDA1Y2ExZTYzMmJiNWE2YWU0MGFiMWJlNGMyZmRlNmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCkBAIC0xMzMxLDYgKzEzMzEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9y
Tm9kZUxpc3QuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VT
cGxpdFN0cmluZy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KaW5kZXggODc5ZGEyNWRlNmYwZGYxZjFjMzUzY2I3OTNhYTJhZjQ3MzA3ZDZh
Zi4uNmMwNzZiM2Y0MTVhMzk5NGJlZDZlZWVlYzQ4ZDgwMzJkNzc0MzUwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KQEAgLTc5OSw3ICs3OTksNiBAQCBfX1pON1dlYkNvcmU2V2lkZ2V0RDJFdgogX19a
TjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlN0NvbnNvbGUyMXNo
b3VsZFByaW50RXhjZXB0aW9uc0V2CiBfX1pON1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJp
bnRFeGNlcHRpb25zRWIKLV9fWk43V2ViQ29yZTdFbGVtZW50MTBzaGFkb3dSb290RXYKIF9fWk43
V2ViQ29yZTdJbnRSZWN0NXNjYWxlRWYKIF9fWk43V2ViQ29yZTdJbnRSZWN0NXVuaXRlRVJLUzBf
CiBfX1pON1dlYkNvcmU3SW50UmVjdDlpbnRlcnNlY3RFUktTMF8KQEAgLTEyNTEsNiArMTI1MCw3
IEBAIF9fWk5LN1dlYkNvcmU2V2lkZ2V0MjVjb252ZXJ0VG9Db250YWluaW5nV2luZG93RVJLTlNf
N0ludFJlY3RFCiBfX1pOSzdXZWJDb3JlNldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRv
d0VSS05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNvcmU2V2lkZ2V0OWZyYW1lUmVjdEV2CiBfX1pO
SzdXZWJDb3JlN0VsZW1lbnQxMHNjcmVlblJlY3RFdgorX19aTks3V2ViQ29yZTdFbGVtZW50MTBz
aGFkb3dSb290RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDEyZ2V0QXR0cmlidXRlRVJLTlNfMTNR
dWFsaWZpZWROYW1lRQogX19aTks3V2ViQ29yZTdFbGVtZW50MTlib3VuZHNJbldpbmRvd1NwYWNl
RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDlpbm5lclRleHRFdgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IGJhZDMxMTVlZjlhZWNjYmE4NDJhODFiYjhmYjc2ZTk1YTZmMTA2MTcuLmY0ODRjMWUzOTRkMGY5
YWQ5NTI5YTE1ZWRhZmM4Yzc0ZDYxNjc5OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU0NSw2ICs1
NDUsNyBAQAogICAgICAgICAgICAgJ2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oJywKICAg
ICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKICAgICAgICAgICAgICdk
b20vU2NyaXB0UnVubmVyLmgnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAogICAg
ICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgnLAogICAgICAgICAgICAgJ2RvbS9TdHls
ZWRFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9UZXh0LmgnLApAQCAtMjUyMiw2ICsyNTIz
LDggQEAKICAgICAgICAgICAgICdkb20vU2VsZWN0RWxlbWVudC5oJywKICAgICAgICAgICAgICdk
b20vU2VsZWN0b3JOb2RlTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TZWxlY3Rvck5vZGVM
aXN0LmgnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmNwcCcsCisgICAgICAgICAgICAn
ZG9tL1NoYWRvd1Jvb3QuaCcsCiAgICAgICAgICAgICAnZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3Bw
JywKICAgICAgICAgICAgICdkb20vU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCcsCiAgICAgICAg
ICAgICAnZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZDQy
MjFmZjlkZmQzYTk4NGEwZWRkOTYxNDI3NzliNzBkOGZjN2MwZS4uYzEyMjk3NmE3NjY0NDIyNTMz
MDdiN2U4ZTBlODA5ODhkZDE3Y2ZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTUzNCw2ICs1MzQsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBkb20vU2NyaXB0UnVubmVyLmNwcCBcCiAgICAgZG9tL1NlbGVj
dEVsZW1lbnQuY3BwIFwKICAgICBkb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAgXAorICAgIGRvbS9T
aGFkb3dSb290LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKICAgICBkb20v
U3RhdGljTm9kZUxpc3QuY3BwIFwKICAgICBkb20vU3R5bGVkRWxlbWVudC5jcHAgXApAQCAtMTQ5
Nyw2ICsxNDk4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCBcCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuaCBcCiAgICAgZG9tL1NlbGVjdG9yTm9kZUxp
c3QuaCBcCisgICAgZG9tL1NoYWRvd1Jvb3QuaCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcu
aCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmggXAogICAgIGRvbS9TdHlsZWRFbGVtZW50Lmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAx
MzYxNDg1ZDlmMzYyOTQ2NWQxYmQwY2Y2YjlkNWI0MjgwZTU5NDM3Li5kMDdhZGZhMjNkMjU2MTI0
NzdjMGJlMjkwMDQzOGIzNmE2ODBjOTMxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDY0NDIsNiArNDY0NDIsNjIgQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd1Jvb3QuY3Bw
IgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWly
b19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJv
ZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxkb21cU2hhZG93Um9vdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxkb21cU3BhY2VTcGxpdFN0cmluZy5jcHAiCiAJCQkJPgogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDEwOGQzYzYzOGNhN2Y1ZDY0OTJhYzYxZGYzOWMyODllZDkw
ZWY4NjUuLjc5YWI4ZDU1NTQzZmZkNjllZmYwZjRlOGU0OTlkM2M3ZDFmZDRiMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMx
OTYsNiArMzE5Niw4IEBACiAJCUE2MjJBOEZDMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2Vj
dXJpdHlCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE2MjJBOEY2MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAq
LzsgfTsKIAkJQTYyMkE4RkQxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY3
MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi87IH07CiAJCUE2MjJB
OEZGMTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjkxMjJDNDRBNjAwQTc4NUIzIC8q
IEdlbmVyaWNCaW5kaW5nLmggKi87IH07CisJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBT
aGFkb3dSb290LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLzsgfTsKKwkJ
QTZEMTY5NjQxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAv
KiBTaGFkb3dSb290LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQTcxNTFCRDgxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1MUJENzEy
RjE1NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE1RTY1MjEzNEJCQkVDMDBEOEU3MTMg
LyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1No
YWRvd0VsZW1lbnQuY3BwICovOyB9OwogCQlBNzE1RTY1MzEzNEJCQkVDMDBEOEU3MTMgLyogUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzE1RTY1MTEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVt
ZW50LmggKi87IH07CkBAIC05NzI0LDYgKzk3MjYsOCBAQAogCQlBNjIyQThGNjEyMkM0NEE2MDBB
Nzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcDsgcGF0aCA9IGdlbmVyaWMvQmlu
ZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE2MjJB
OEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eUJhc2UuaDsgcGF0aCA9IGdlbmVy
aWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NjIyQThGOTEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gR2VuZXJpY0JpbmRpbmcuaDsgcGF0aCA9IGdlbmVyaWMvR2Vu
ZXJpY0JpbmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTZEMTY5NjExMzQ2
QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2hhZG93Um9vdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1Jvb3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTcxNTFCRDcxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2VyQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTVFNjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9n
cmVzc1NoYWRvd0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTcxNUU2NTExMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NDQ3LDYgKzE5NDUxLDggQEAKIAkJCQkw
ODRBRUJFMzBGQjUwNUZBMDAzODQ4M0UgLyogU2VsZWN0RWxlbWVudC5oICovLAogCQkJCUJDN0ZB
NjgwMEQxRjE2NzkwMERCMjJBOSAvKiBTZWxlY3Rvck5vZGVMaXN0LmNwcCAqLywKIAkJCQlCQzdG
QTY3RjBEMUYxNjc5MDBEQjIyQTkgLyogU2VsZWN0b3JOb2RlTGlzdC5oICovLAorCQkJCUE2RDE2
OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLywKKwkJCQlBNkQxNjk2MzEz
NDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oICovLAogCQkJCUQwMUEyN0FCMTBDOUJGRDgw
MDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmNwcCAqLywKIAkJCQlEMDFBMjdBQzEwQzlCRkQ4
MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oICovLAogCQkJCUNFQTM5NDlBMTFENDVDREEw
MDMwOTRDRiAvKiBTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwICovLApAQCAtMTk5MTMsNiArMTk5
MTksNyBAQAogCQkJCUJDRDUzMzY0MEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3Vy
Y2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMjgwOTc5QzNCRDAwNDY3NzQx
IC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTUwMDgy
NDVFNTkwMDFFOUFCQyAvKiBDYWNoZVBvbGljeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjFENUVD
QjUxMzRCNThEQTAwODdDNzhGIC8qIENhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTZFNEU5MUFEMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0ODRGQzIxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dy
YWRpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTQ4NEZDNTEwMkNGMjNDMDAxODdERDMgLyog
Q2FudmFzUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDA3NCw2ICsyMDA4MSw4IEBACiAJ
CQkJQThDMjI4QTExMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxNjJBNDUxMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzRDU4RjEwMUMxNTJEMDAz
MTZEMDcgLyogRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDA2
REZBNjEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4g
SGVhZGVycyAqLywKKwkJCQlGRDA2REZBNjEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0MzNkVCOTEzNDJBQTNGMDA0
QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTY3RUJGNjEwMjk2MkJBMDAzRDI1MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRv
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDJDMTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxh
eURTUEtlcm5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTA4OSw2ICsyMTA5OCw3IEBACiAJCQkJ
OTNGMTk5RTUwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOERGM0ZEMDA5N0ZBMEZDMDA1Mjk4MUIgLyogSFRNTENvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTk3N0IzODY1MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MQ29uc3Ry
dWN0aW9uU2l0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFBMzE2NjMxMzRCQ0FFODAwN0M5QTRG
IC8qIEhUTUxDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzdDREJDMEZFRkYxNDIw
MDcwODg3QiAvKiBIVE1MRGF0YUdyaWRDZWxsRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM3N0NCODcwRkVCRjVBRjAwNzA4ODdCIC8qIEhUTUxEYXRhR3JpZENvbEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMjEyQTFGMEZFODMzMzIwMEVDMzcwOCAvKiBIVE1MRGF0YUdyaWRF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIxNTgwLDYgKzIxNTkwLDggQEAKIAkJCQk5MDAx
Nzg4MTEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2RUJGMEU3NzEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxv
YXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc3QTE3QUE3MTJGMjhCMkEwMDRFMDJGNiAvKiBKU09F
U1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREY2QkFGOTEzNEE0Qzk4
MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUZERjZCQUY5MTM0QTRDOTgwMDgyMjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRp
b25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyNkU4QUUwQTFBOEYyMzAwQ0QxQkI2IC8q
IEpTT3B0aW9uQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMEQ1NzQxMEE1Qzc4
NjcwMDdFREQ0QyAvKiBKU092ZXJmbG93RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjg0
QkIxMTA0NDlGRkEwMEVBRUI1MiAvKiBKU1BhZ2VUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjE5MzQsNiArMjE5NDYsMTAgQEAKIAkJCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0
NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkVCRjBF
NDkxMkE4OTI2MTAwREIxNzA5IC8qIE9FU1RleHR1cmVGbG9hdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzdBMTdBNzIxMkYyODE4MjAwNEUwMkY2IC8qIE9FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4g
SGVhZGVycyAqLywKKwkJCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlv
Q29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QTEzNEE0OUVGMDA4
RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEVBRjRBRjEwQzc0
MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
NzI4MTU2MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwODcyODE1ODBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTIyMjUxLDYgKzIyMjY3LDcgQEAKIAkJCQkwRjNERDQ1MDEyRjVFQTFC
MDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI4QzQwRTgy
MDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RjMzOEE0
MTFDMEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlB
NkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTgwRTZDRTgwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkFGRkM5NDBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBNEE5NTRFMEI0RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuaCBp
biBIZWFkZXJzICovLApAQCAtMjI3MTksNiArMjI3MzYsNyBAQAogCQkJCTQ5NEJENzk1MEY1NUM4
RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFDMEZGMjUw
RTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDRjMzMkYwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFMUEzMTYyRDEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5n
RXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0FGMzQ4MTBBNkM0MDUyMDBBQkUwNkUgLyog
V2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQxQjBEN0UyQjgyMDA3
QzM5ODMgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0FGMzQ4MzBB
NkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMjgzMCwxMyArMjI4NDgsNiBAQAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAv
KiBYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAy
RUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEy
RjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlGREEzRTk1
QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVh
ZGVycyAqLywKLQkJCQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGREY2QkFGOTEzNEE0Qzk4MDA4MjI5
MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUZEMDZERkE2MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUu
aCBpbiBIZWFkZXJzICovLAotCQkJCUUxQTMxNjJEMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0
dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQTMxNjYzMTM0QkNB
RTgwMDdDOUE0RiAvKiBIVE1MQ29udmVydGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlCMUQ1RUNC
NTEzNEI1OERBMDA4N0M3OEYgLyogQ2FsbGJhY2tGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0yMzI0OSw2ICsyMzI2MCw3IEBACiAJCQkJRDBEMTQxQjIxMkIyQkY1MjAwRTM5NjIwIC8qIENh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMyMzA5NzlD
M0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2
QzI3MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUIxODI3NDkzMTM0Q0E0QzEwMEI5OEMyRCAvKiBDYWxsYmFja0Z1bmN0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTZFNEU5MUFDMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXND
b250ZXh0QXR0cmlidXRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTQ4NEZDMTEwMkNGMjND
MDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0ODRG
QzQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BhdHRlcm4uY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yMzM4Miw2ICsyMzM5NCw4IEBACiAJCQkJQThDMjI4QTIxMUQ1NzIyRTAwRDVBN0QzIC8qIERl
Y29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2MkE0NTAx
MDExNDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDFBM0Q1OEUxMDFDMTUyRDAwMzE2RDA3IC8qIERlZGljYXRlZFdvcmtlclRocmVh
ZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRDA2REZBNTEzNEE0REVGMDA2RjVEN0QgLyogRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEMDZERkE1
MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNDMzZFQjgxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTY3RUJGNTEwMjk2MkJBMDAz
RDI1MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkQzMTYwMkIxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5RFNQS2VybmVsLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjQ0NDksNiArMjQ0NjMsOCBAQAogCQkJCTkwMDE3ODgwMTJFMDM3MDcw
MDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNkVCRjBFNzYxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VTVGV4dHVyZUZsb2F0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTc3QTE3QUE2MTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFy
cmF5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZERjZCQUY4MTM0QTRDOTgwMDgyMjky
MCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGREY2QkFGODEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgyNkVDNDgwQTFCMENCRTAwQ0QxQkI2IC8qIEpT
T3B0aW9uQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRDU3NDAwQTVDNzg2
NzAwN0VERDRDIC8qIEpTT3ZlcmZsb3dFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI4
NEJCMjEwNDQ5RkZBMDBFQUVCNTIgLyogSlNQYWdlVHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjQ4MTUsNiArMjQ4MzEsMTAgQEAKIAkJCQk5MDAxNzc0MDEyRTAzNDc4MDA2
NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2
RUJGMEU0ODEyQTg5MjYxMDBEQjE3MDkgLyogT0VTVGV4dHVyZUZsb2F0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTc3QTE3QTcxMTJGMjgxODIwMDRFMDJGNiAvKiBPRVNWZXJ0ZXhBcnJheU9iamVj
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGREEzRTk1OTEzNEE0OUVGMDA4RDRCNUEgLyogT2Zm
bGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEQTNFOTU5
MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRkRBM0U5NUIxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGREEzRTk1QjEzNEE0OUVGMDA4
RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUY0RUFGNEFFMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwODcyODE1NTBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODcyODE1NzBGMjZCOUI2MDBBRkM1OTYgLyogT3B0
aW9uR3JvdXBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjUwNjUsNiArMjUwODUsNyBA
QAogCQkJCTBGM0RENDRGMTJGNUVBMUIwMDBEOTE5MCAvKiBTaGFkb3dCbHVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDNUVCOEMzMEU4MjAzMUIwMEIyNTk2NSAvKiBTaGFkb3dEYXRhLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE3RjMzOEEzMTFDMEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBT
aGFkb3dSb290LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0Y0MEExOTg5Q0EwMDdGQjhD
NSAvKiBTaGFkb3dWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM5MzBEMDBBNURG
MDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuYyBpbiBTb3VyY2VzICovLAogCQkJCTFBNEE5NTREMEI0
RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTQx
OCw2ICsyNTQzOSw3IEBACiAJCQkJOTNGMUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExv
c2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZF
NSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDRjMz
MkUwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTFB
MzE2MkUxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTFDQUYzNDgyMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRP
YmplY3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MThBMzRDMTEwMjZDODMxMDAxQjY4OTYgLyog
V2ViU29ja2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMEQ0QTRFMTAzMTc3QTIwMDQ5RUE1
NCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU1MjAsMTIgKzI1
NTQyLDYgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3Nvckxp
YnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8q
IFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlD
MDBDMTMzNzkgLyogWFNTRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZEQTNFOTU5MTM0
QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRkRBM0U5NUIxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGREY2QkFGODEzNEE0Qzk4MDA4MjI5
MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJRkQwNkRGQTUxMzRBNERFRjAwNkY1RDdEIC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFMUEzMTYyRTEzNEJDMzJEMDA3QzlBNEYgLyogV2Vi
TlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQjE4Mjc0OTMx
MzRDQTRDMTAwQjk4QzJEIC8qIENhbGxiYWNrRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggODZmM2JhMzBiZWQyZWQ5
NGEzYmI0YzFiMGYyYzYyN2MwYzA5MjBhNy4uNDBjNzk0MWIyYTY5NzI5OGY5M2RiMTcxOTBhNjYx
YjdhZGViMzE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAt
ODkzLDcgKzg5Myw3IEBAIGlubGluZSB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmluaXRGb3JTdHls
ZVJlc29sdmUoRWxlbWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVuCiB7CiAgICAgbV9jaGVja2Vy
Lm1fcHNldWRvU3R5bGUgPSBwc2V1ZG9JRDsKIAotICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5w
YXJlbnRPckhvc3ROb2RlKCkgOiAwOworICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnRO
b2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKSA6IDA7CiAKICAgICBpZiAocGFyZW50U3R5bGUpCiAg
ICAgICAgIG1fcGFyZW50U3R5bGUgPSBwYXJlbnRTdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmNwcAppbmRleCBlYTAzODQ4YWFhZmJjZDAwMGY2ZjA5MDFmZTQ1YzdkNmUyMWFkYmIz
Li41NjU5ZjllZDQ4NGY2ODVlZTYyZTc4MGZiM2RjYTI3MmIwOWQ5M2I5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBDb250YWluZXJO
b2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hp
bGQsIEV4Y2UKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0aW5n
Ii4KICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBv
ZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KLSAgICBBU1NFUlQocmVmQ291bnQoKSB8fCBwYXJl
bnROb2RlKCkpOworICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE9ySG9zdE5vZGUoKSk7
CiAKICAgICBlYyA9IDA7CiAKQEAgLTI0NCw3ICsyNDQsNyBAQCBib29sIENvbnRhaW5lck5vZGU6
OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwg
RXhjZQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgog
ICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNl
bmRpbmcgbXV0YXRpb24gZXZlbnRzLgotICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE5v
ZGUoKSk7CisgICAgQVNTRVJUKHJlZkNvdW50KCkgfHwgcGFyZW50T3JIb3N0Tm9kZSgpKTsKIAog
ICAgIGVjID0gMDsKIApAQCAtNDAxLDcgKzQwMSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVt
b3ZlQ2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIENo
ZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBp
dCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZl
bnRzLgotICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE5vZGUoKSk7CisgICAgQVNTRVJU
KHJlZkNvdW50KCkgfHwgcGFyZW50T3JIb3N0Tm9kZSgpKTsKIAogICAgIGVjID0gMDsKIApAQCAt
NTYxLDcgKzU2MSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0
cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvCiB7CiAgICAgLy8gQ2hlY2sg
dGhhdCB0aGlzIG5vZGUgaXMgbm90ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNh
biBiZSBkZWxldGVkIGFzIGEgc2lkZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMu
Ci0gICAgQVNTRVJUKHJlZkNvdW50KCkgfHwgcGFyZW50Tm9kZSgpKTsKKyAgICBBU1NFUlQocmVm
Q291bnQoKSB8fCBwYXJlbnRPckhvc3ROb2RlKCkpOwogCiAgICAgZWMgPSAwOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKaW5kZXggYzljMzAyMDM3NzgxNzNhNGMwNzM1
YTMxN2ZlYTM0MTdiOGUzZGNhMS4uZTk4ZWY5ZTU4YTBjZmYyYjhmOGQwZjQyNDcwMGY5OWM2OTEx
NjI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtMzEsNyAr
MzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBEb2N1bWVudEZyYWdtZW50
OjpEb2N1bWVudEZyYWdtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK0RvY3VtZW50RnJhZ21lbnQ6
OkRvY3VtZW50RnJhZ21lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogQ29udGFpbmVyTm9k
ZShkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudEZyYWdtZW50LmgKaW5kZXggZDU4OGI0ZTdiMDU3ZDJiMzI4ZTQ4YmEwMWIzN2UxMTM3NTk2
OGExNC4uZjU2NzUzNmIyYjE0NzRmYjA0MTVjMGNiMTg2MzRmNmFmNDQ2Njc4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCkBAIC0zNiw5ICszNiwxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwYXJzZUhUTUwoY29uc3QgU3RyaW5nJiwgRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCk7
CiAgICAgYm9vbCBwYXJzZVhNTChjb25zdCBTdHJpbmcmLCBFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID0gRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2Vk
KTsKIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBEb2N1bWVudEZyYWdtZW50KERvY3VtZW50
Kik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IGU0ZDkwNzU4YjVkODEwYmY4ZTA0ZWZkNzFjZTUyNDBkNDQ1ODlhM2EuLjdkZDJhNTc2OWEzYTky
YmNiNjM1YTIyNDVkZGI2OTg2NDAxNGI3ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTU0
LDYgKzU0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lk
Z2V0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAj
aW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5o
IgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCkBAIC0xMDQ5LDcgKzEwNTAsNyBAQCB2b2lkIEVsZW1l
bnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKIHsKICAgICAvLyBSZWYgY3VycmVu
dFN0eWxlIGluIGNhc2UgaXQgd291bGQgb3RoZXJ3aXNlIGJlIGRlbGV0ZWQgd2hlbiBzZXRSZW5k
ZXJTdHlsZSgpIGlzIGNhbGxlZC4KICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1cnJlbnRTdHls
ZShyZW5kZXJTdHlsZSgpKTsKLSAgICBib29sIGhhc1BhcmVudFN0eWxlID0gcGFyZW50T3JIb3N0
Tm9kZSgpID8gcGFyZW50T3JIb3N0Tm9kZSgpLT5yZW5kZXJTdHlsZSgpIDogZmFsc2U7CisgICAg
Ym9vbCBoYXNQYXJlbnRTdHlsZSA9IHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpID8g
cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCktPnJlbmRlclN0eWxlKCkgOiBmYWxzZTsK
ICAgICBib29sIGhhc0RpcmVjdEFkamFjZW50UnVsZXMgPSBjdXJyZW50U3R5bGUgJiYgY3VycmVu
dFN0eWxlLT5jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7CiAKICAgICBp
ZiAoKGNoYW5nZSA+IE5vQ2hhbmdlIHx8IG5lZWRzU3R5bGVSZWNhbGMoKSkpIHsKQEAgLTExMzEs
NyArMTEzMiw3IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdl
KQogICAgIH0KICAgICAvLyBGSVhNRTogVGhpcyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcg
Y29tYmluYXRvcnMuIFdpbGwgYmUgbmVjZXNzYXJ5IGluIFhCTDIgd29ybGQuCiAgICAgaWYgKE5v
ZGUqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkgewotICAgICAgICBpZiAoY2hhbmdlID49IEluaGVy
aXQgfHwgc2hhZG93LT5pc1RleHROb2RlKCkgfHwgc2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNh
bGMoKSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVSZWNhbGMoKSkgeworICAgICAgICBpZiAoY2hhbmdl
ID49IEluaGVyaXQgfHwgc2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ct
Pm5lZWRzU3R5bGVSZWNhbGMoKSkgewogICAgICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsK
ICAgICAgICAgICAgIHNoYWRvdy0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKICAgICAgICAgfQpAQCAt
MTE0MSwyOCArMTE0MiwyNCBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdl
IGNoYW5nZSkKICAgICBjbGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwogfQogCi1Ob2RlKiBF
bGVtZW50OjpzaGFkb3dSb290KCkKK0NvbnRhaW5lck5vZGUqIEVsZW1lbnQ6OnNoYWRvd1Jvb3Qo
KSBjb25zdAogewogICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+bV9zaGFk
b3dSb290IDogMDsKIH0KIAotdm9pZCBFbGVtZW50OjpzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8
Tm9kZT4gbm9kZSkKK0NvbnRhaW5lck5vZGUqIEVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jvb3QoKQog
ewotICAgIC8vIEZJWE1FOiBCZWNhdXNlIHRvZGF5IHRoaXMgaXMgbmV2ZXIgY2FsbGVkIGZyb20g
c2NyaXB0IGRpcmVjdGx5LCB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5Ci0gICAgLy8gYWJvdXQgY29t
cHJvbWlzaW5nIERPTSB0cmVlIGludGVncml0eSAoZWcuIG5vZGUgYmVpbmcgYSBwYXJlbnQgb2Yg
dGhpcykuIEhvd2V2ZXIsCi0gICAgLy8gb25jZSB3ZSBpbXBsZW1lbnQgWEJMMiwgd2Ugd2lsbCBo
YXZlIHRvIGFkZCBpbnRlZ3JpdHkgY2hlY2tzIGhlcmUuCi0gICAgcmVtb3ZlU2hhZG93Um9vdCgp
OwotCi0gICAgUmVmUHRyPE5vZGU+IG5ld1Jvb3QgPSBub2RlOwotICAgIGlmICghbmV3Um9vdCkK
LSAgICAgICAgcmV0dXJuOworICAgIGlmIChDb250YWluZXJOb2RlKiBleGlzdGluZ1Jvb3QgPSBz
aGFkb3dSb290KCkpCisgICAgICAgIHJldHVybiBleGlzdGluZ1Jvb3Q7CiAKKyAgICBSZWZQdHI8
U2hhZG93Um9vdD4gbmV3Um9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAg
ICBlbnN1cmVSYXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3QgPSBuZXdSb290LmdldCgpOwogICAgIG5l
d1Jvb3QtPnNldFNoYWRvd0hvc3QodGhpcyk7CiAgICAgaWYgKGluRG9jdW1lbnQoKSkKICAgICAg
ICAgbmV3Um9vdC0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKLSAgICBpZiAoYXR0YWNoZWQoKSAm
JiAhbmV3Um9vdC0+YXR0YWNoZWQoKSkKKyAgICBpZiAoYXR0YWNoZWQoKSkKICAgICAgICAgbmV3
Um9vdC0+bGF6eUF0dGFjaCgpOworICAgIHJldHVybiBuZXdSb290LmdldCgpOwogfQogCiB2b2lk
IEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMDkwNWQ3
ZDc3NTU3NDI3Yjk2MTAzNDNiN2M1Y2UzODE2OTZkYzA4Yy4uZDRjOGFmNDJiNjJmMDY4NmUzYmFh
YjdhNjcwNzRmNGYxZGMzMDdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yMjksOCArMjI5LDEw
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgdm9pZCByZWNhbGNTdHlsZShT
dHlsZUNoYW5nZSA9IE5vQ2hhbmdlKTsKIAotICAgIE5vZGUqIHNoYWRvd1Jvb3QoKTsKLSAgICB2
b2lkIHNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxOb2RlPik7CisgICAgQ29udGFpbmVyTm9kZSog
c2hhZG93Um9vdCgpIGNvbnN0OworICAgIENvbnRhaW5lck5vZGUqIGVuc3VyZVNoYWRvd1Jvb3Qo
KTsKKyAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoKTsKKwogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwogCiAgICAgUmVuZGVyU3R5bGUqIGNv
bXB1dGVkU3R5bGUoUHNldWRvSWQgPSBOT1BTRVVETyk7CkBAIC00MDksNyArNDExLDYgQEAgcHJp
dmF0ZToKICAgICBFbGVtZW50UmFyZURhdGEqIGVuc3VyZVJhcmVEYXRhKCk7CiAKICAgICBTcGVs
bGNoZWNrQXR0cmlidXRlU3RhdGUgc3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlKCkgY29uc3Q7Ci0g
ICAgdm9pZCByZW1vdmVTaGFkb3dSb290KCk7CiAKIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQ
dHI8TmFtZWROb2RlTWFwPiBtX2F0dHJpYnV0ZU1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFy
ZURhdGEuaAppbmRleCA4MThhMmMyZjBmZjk4N2RjNWNkNjNhOTcyOTViZWM1YjgwZWQ0YTI1Li4x
NGNlZWYyYTFmZTI5NTJhNzA3ZDA1Nzc1NWI4Mjc5M2RiNjM2NzI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRSYXJlRGF0YS5oCkBAIC0zMCw2ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgU2hhZG93Um9vdDsKKwogY2xhc3MgRWxlbWVudFJhcmVEYXRhIDogcHVibGlj
IE5vZGVSYXJlRGF0YSB7CiBwdWJsaWM6CiAgICAgRWxlbWVudFJhcmVEYXRhKCk7CkBAIC00Miw3
ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIEludFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5n
OwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwotICAgIE5vZGUqIG1f
c2hhZG93Um9vdDsKKyAgICBTaGFkb3dSb290KiBtX3NoYWRvd1Jvb3Q7CiAKICAgICBPd25QdHI8
RGF0YXNldERPTVN0cmluZ01hcD4gbV9kYXRhc2V0RE9NU3RyaW5nTWFwOwogICAgIE93blB0cjxD
bGFzc0xpc3Q+IG1fY2xhc3NMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDE1Y2I4YThiNDhhMWYy
MTYzOTkxZjlkYjYxZmQ5NmE4YWE2NjNiNGQuLjFhNTMxMGY4ODZjYjNjMGI4OGE3ODRhZTY3MzA2
NzgwMDZmMjBlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTE0MDIsMTggKzE0MDIsMjUgQEAgTm9k
ZSAqTm9kZTo6bmV4dExlYWZOb2RlKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAorQ29udGFp
bmVyTm9kZSogTm9kZTo6cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgY29uc3QKK3sK
KyAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBwYXJlbnRPckhvc3ROb2RlKCk7CisgICAgcmV0
dXJuIHBhcmVudCAmJiBwYXJlbnQtPmlzU2hhZG93Qm91bmRhcnkoKSA/IHBhcmVudC0+c2hhZG93
SG9zdCgpIDogcGFyZW50OworfQorCiBSZW5kZXJPYmplY3QqIE5vZGU6OmNyZWF0ZVJlbmRlcmVy
QW5kU3R5bGUoKQogewogICAgIEFTU0VSVCghcmVuZGVyZXIoKSk7CiAgICAgQVNTRVJUKGRvY3Vt
ZW50KCktPnNob3VsZENyZWF0ZVJlbmRlcmVycygpKTsKIAotICAgIENvbnRhaW5lck5vZGUqIHBh
cmVudCA9IHBhcmVudE9ySG9zdE5vZGUoKTsKKyAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBw
YXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKICAgICBBU1NFUlQocGFyZW50KTsKKwog
ICAgIFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIgPSBwYXJlbnQtPnJlbmRlcmVyKCk7CiAK
ICAgICAvLyBGSVhNRTogSWdub3JpbmcgY2FuSGF2ZUNoaWxkcmVuKCkgaW4gYSBjYXNlIG9mIGlz
U2hhZG93Um9vdCgpIG1pZ2h0IGJlIHdyb25nLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI0MjMKLSAgICBpZiAoIXBhcmVudFJlbmRlcmVyIHx8
ICghcGFyZW50UmVuZGVyZXItPmNhbkhhdmVDaGlsZHJlbigpICYmICFpc1NoYWRvd1Jvb3QoKSkg
fHwgIXBhcmVudC0+Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcih0aGlzKSkKKyAgICBpZiAoIXBh
cmVudFJlbmRlcmVyIHx8ICghcGFyZW50UmVuZGVyZXItPmNhbkhhdmVDaGlsZHJlbigpICYmICEo
aXNTaGFkb3dSb290KCkgfHwgcGFyZW50Tm9kZSgpLT5pc1NoYWRvd0JvdW5kYXJ5KCkpKSB8fCAh
cGFyZW50LT5jaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKHRoaXMpKQogICAgICAgICByZXR1cm4g
MDsKIAogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBzdHlsZUZvclJlbmRlcmVyKCk7
CkBAIC0xNDY1LDcgKzE0NzIsNyBAQCB2b2lkIE5vZGU6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQo
KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOb3RlOiBBZGRpbmcgbmV3UmVuZGVyZXIgaW5z
dGVhZCBvZiByZW5kZXJlcigpLiByZW5kZXJlcigpIG1heSBiZSBhIGNoaWxkIG9mIG5ld1JlbmRl
cmVyLgotICAgIHBhcmVudE9ySG9zdE5vZGUoKS0+cmVuZGVyZXIoKS0+YWRkQ2hpbGQobmV3UmVu
ZGVyZXIsIG5leHRSZW5kZXJlcigpKTsKKyAgICBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5
bGUoKS0+cmVuZGVyZXIoKS0+YWRkQ2hpbGQobmV3UmVuZGVyZXIsIG5leHRSZW5kZXJlcigpKTsK
IH0KIAogUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTm9kZTo6c3R5bGVGb3JSZW5kZXJlcigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaAppbmRleCBjMjI1ZGJhYzhmZjg5MWRmOWNmZTI2NWVjMjZiODJkZTFjNGJiMTNiLi5j
NDkyYjRkNGIyOGY5YTVlOTcwZWQwMmE1NGE0MzE2NTc4ZDc4MmM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAg
LTIwMyw2ICsyMDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQ2hhcmFjdGVyRGF0
YU5vZGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNEb2N1bWVudE5vZGUo
KSBjb25zdDsKICAgICBib29sIGlzU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWco
SXNTaGFkb3dSb290RmxhZyk7IH0KKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiBhbGwg
c2hhZG93IHJvb3RzIGFyZSBTaGFkb3dSb290cy4KKyAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkb3dC
b3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgTm9kZSogc2hhZG93QW5jZXN0
b3JOb2RlKCk7CiAgICAgTm9kZSogc2hhZG93VHJlZVJvb3ROb2RlKCk7CiAgICAgYm9vbCBpc0lu
U2hhZG93VHJlZSgpOwpAQCAtNDQ0LDYgKzQ0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgYm9vbCBjaGls
ZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAg
dmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVy
U3R5bGUqKTsKKyAgICBDb250YWluZXJOb2RlKiBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5
bGUoKSBjb25zdDsKICAgICAKICAgICAvLyBXcmFwcGVyIGZvciBub2RlcyB0aGF0IGRvbid0IGhh
dmUgYSByZW5kZXJlciwgYnV0IHN0aWxsIGNhY2hlIHRoZSBzdHlsZSAobGlrZSBIVE1MT3B0aW9u
RWxlbWVudCkuCiAgICAgUmVuZGVyU3R5bGUqIHJlbmRlclN0eWxlKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQyNDk0MGJhYWFlZGZjZThkNjI3N2JlZGUy
YzczNDJjZDE3MWJlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPFNo
YWRvd1Jvb3Q+IFNoYWRvd1Jvb3Q6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTaGFkb3dSb290KGRvY3VtZW50KSk7Cit9CisKK1NoYWRvd1Jv
b3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogRG9jdW1lbnRGcmFnbWVu
dChkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQpOworfQorCit2b2lkIFNoYWRvd1Jv
b3Q6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKK3sKKyAgICBmb3IgKE5vZGUqIG4g
PSBmaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygpKQorICAgICAgICBuLT5yZWNh
bGNTdHlsZShjaGFuZ2UpOworCisgICAgY2xlYXJOZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgY2xl
YXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTQ3Yzg2ZTFjOWNiODliMWViY2NjNWVkOGNkY2MwZjBlNjI3MDM0MAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTAsMCAr
MSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgU2hhZG93Um9vdF9oCisjZGVmaW5lIFNoYWRvd1Jvb3RfaAorCisj
aW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERvY3VtZW50OworCitjbGFzcyBTaGFkb3dSb290IDogcHVibGljIERvY3VtZW50RnJhZ21l
bnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IGNyZWF0ZShE
b2N1bWVudCopOworCisgICAgdmlydHVhbCBib29sIGlzU2hhZG93Qm91bmRhcnkoKSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdl
ID0gTm9DaGFuZ2UpOworCitwcml2YXRlOgorICAgIFNoYWRvd1Jvb3QoRG9jdW1lbnQqKTsKK307
CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXln
ZW5FbGVtZW50LmNwcAppbmRleCBiOTAzMzVlYzQyOTI1NzA1ZTRhZTM4YTc0ZDA2YWNhZGFlODJk
NThkLi4zNzIyNDQ4MGQ2NjM3MjllNjczNGRkYmE1ZDYxYzBlYWZkZjIyMGExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQu
aCIKICNpbmNsdWRlICJTU0xLZXlHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290Lmgi
CiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAt
NjcsMTUgKzY4LDE4IEBAIGlubGluZSBIVE1MS2V5Z2VuRWxlbWVudDo6SFRNTEtleWdlbkVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lCiAgICAgQVNTRVJUKGhhc1Rh
Z05hbWUoa2V5Z2VuVGFnKSk7CiAKICAgICAvLyBDcmVhdGUgYSBzZWxlY3QgZWxlbWVudCB3aXRo
IG9uZSBvcHRpb24gZWxlbWVudCBmb3IgZWFjaCBrZXkgc2l6ZS4KLSAgICBSZWZQdHI8SFRNTFNl
bGVjdEVsZW1lbnQ+IHNlbGVjdCA9IEtleWdlblNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CiAgICAgVmVjdG9yPFN0cmluZz4ga2V5czsKICAgICBnZXRTdXBwb3J0ZWRLZXlTaXplcyhr
ZXlzKTsKKworICAgIFJlZlB0cjxIVE1MU2VsZWN0RWxlbWVudD4gc2VsZWN0ID0gS2V5Z2VuU2Vs
ZWN0RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGtleXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
UmVmUHRyPEhUTUxPcHRpb25FbGVtZW50PiBvcHRpb24gPSBIVE1MT3B0aW9uRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50LCB0aGlzLT5mb3JtKCkpOwotICAgICAgICBzZWxlY3QtPnBhcnNlckFkZENo
aWxkKG9wdGlvbik7Ci0gICAgICAgIG9wdGlvbi0+cGFyc2VyQWRkQ2hpbGQoVGV4dDo6Y3JlYXRl
KGRvY3VtZW50LCBrZXlzW2ldKSk7CisgICAgICAgIHNlbGVjdC0+YXBwZW5kQ2hpbGQob3B0aW9u
LCBlYyk7CisgICAgICAgIG9wdGlvbi0+YXBwZW5kQ2hpbGQoVGV4dDo6Y3JlYXRlKGRvY3VtZW50
LCBrZXlzW2ldKSwgZWMpOwogICAgIH0KLSAgICBzZXRTaGFkb3dSb290KHNlbGVjdCk7CisKKyAg
ICBlbnN1cmVTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHNlbGVjdCwgZWMpOwogfQogCiBQYXNz
UmVmUHRyPEhUTUxLZXlnZW5FbGVtZW50PiBIVE1MS2V5Z2VuRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVt
ZW50KiBmb3JtKQpAQCAtODcsNyArOTEsNyBAQCB2b2lkIEhUTUxLZXlnZW5FbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgLy8gUmVmbGVjdCBkaXNh
YmxlZCBhdHRyaWJ1dGUgb24gdGhlIHNoYWRvdyBzZWxlY3QgZWxlbWVudAogICAgIGlmIChhdHRy
LT5uYW1lKCkgPT0gZGlzYWJsZWRBdHRyKQotICAgICAgICBzZWxlY3RTaGFkb3coKS0+c2V0QXR0
cmlidXRlKGF0dHItPm5hbWUoKSwgYXR0ci0+dmFsdWUoKSk7CisgICAgICAgIHNoYWRvd1NlbGVj
dCgpLT5zZXRBdHRyaWJ1dGUoYXR0ci0+bmFtZSgpLCBhdHRyLT52YWx1ZSgpKTsKIAogICAgIGlm
IChhdHRyLT5uYW1lKCkgPT0gY2hhbGxlbmdlQXR0cikKICAgICAgICAgbV9jaGFsbGVuZ2UgPSBh
dHRyLT52YWx1ZSgpOwpAQCAtMTAyLDcgKzEwNiw3IEBAIGJvb2wgSFRNTEtleWdlbkVsZW1lbnQ6
OmFwcGVuZEZvcm1EYXRhKEZvcm1EYXRhTGlzdCYgZW5jb2RlZF92YWx1ZXMsIGJvb2wpCiAgICAg
Ly8gT25seSBSU0EgaXMgc3VwcG9ydGVkIGF0IHRoaXMgdGltZS4KICAgICBpZiAoIW1fa2V5VHlw
ZS5pc051bGwoKSAmJiAhZXF1YWxJZ25vcmluZ0Nhc2UobV9rZXlUeXBlLCAicnNhIikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICBTdHJpbmcgdmFsdWUgPSBzaWduZWRQdWJsaWNLZXlBbmRD
aGFsbGVuZ2VTdHJpbmcoc2VsZWN0U2hhZG93KCktPnNlbGVjdGVkSW5kZXgoKSwgbV9jaGFsbGVu
Z2UsIGRvY3VtZW50KCktPmJhc2VVUkwoKSk7CisgICAgU3RyaW5nIHZhbHVlID0gc2lnbmVkUHVi
bGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHNoYWRvd1NlbGVjdCgpLT5zZWxlY3RlZEluZGV4KCks
IG1fY2hhbGxlbmdlLCBkb2N1bWVudCgpLT5iYXNlVVJMKCkpOwogICAgIGlmICh2YWx1ZS5pc051
bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGVuY29kZWRfdmFsdWVzLmFwcGVuZERh
dGEobmFtZSgpLCB2YWx1ZS51dGY4KCkpOwpAQCAtMTE3LDEyICsxMjEsMTMgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBIVE1MS2V5Z2VuRWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIAog
dm9pZCBIVE1MS2V5Z2VuRWxlbWVudDo6cmVzZXQoKQogewotICAgIHN0YXRpY19jYXN0PEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQqPihzZWxlY3RTaGFkb3coKSktPnJlc2V0KCk7CisgICAgc3RhdGlj
X2Nhc3Q8SFRNTEZvcm1Db250cm9sRWxlbWVudCo+KHNoYWRvd1NlbGVjdCgpKS0+cmVzZXQoKTsK
IH0KIAotSFRNTFNlbGVjdEVsZW1lbnQqIEhUTUxLZXlnZW5FbGVtZW50OjpzZWxlY3RTaGFkb3co
KQorSFRNTFNlbGVjdEVsZW1lbnQqIEhUTUxLZXlnZW5FbGVtZW50OjpzaGFkb3dTZWxlY3QoKSBj
b25zdAogewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MU2VsZWN0RWxlbWVudCo+KHNoYWRv
d1Jvb3QoKSk7CisgICAgQVNTRVJUKHNoYWRvd1Jvb3QoKSk7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PEhUTUxTZWxlY3RFbGVtZW50Kj4oc2hhZG93Um9vdCgpLT5maXJzdENoaWxkKCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5
Z2VuRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oCmlu
ZGV4IDAyMDAzZTgwZDJkOGY4MWI3NjlhOTIxNDMwZGNmYTRkNmMwMzUzMjAuLjg4NzgyYzg4YzM3
OTYxNjM5YmI4YzY3OTdhZTkxZDRlMDc0ODY3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxL
ZXlnZW5FbGVtZW50LmgKQEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwg
dm9pZCByZXNldCgpOwogCi0gICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdFNoYWRvdygpOwor
ICAgIEhUTUxTZWxlY3RFbGVtZW50KiBzaGFkb3dTZWxlY3QoKSBjb25zdDsKIAogICAgIEF0b21p
Y1N0cmluZyBtX2NoYWxsZW5nZTsKICAgICBBdG9taWNTdHJpbmcgbV9rZXlUeXBlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHAKaW5kZXggNzY4NzI4M2ViNzlkNThhMzgx
NWE2YzI4Mzk3ZDRkOTk2YWUzM2IyYS4uODhiMTYyMjFmMTU3YjRjNDM3MTFmOWU5YzZlMmFmY2Ri
MGMyMDUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIk1l
dGVyU2hhZG93RWxlbWVudC5oIgogI2luY2x1ZGUgIlJlbmRlck1ldGVyLmgiCisjaW5jbHVkZSAi
U2hhZG93Um9vdC5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMjMwLDcgKzIzMSw3IEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6Y3Jl
YXRlU2hhZG93U3VidHJlZSgpCiAgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQoKSk7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgYmFyLT5hcHBl
bmRDaGlsZChtX3ZhbHVlLCBlYyk7Ci0gICAgc2V0U2hhZG93Um9vdChiYXIpOworICAgIGVuc3Vy
ZVNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoYmFyLCBlYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCBkZmI4
ZDQ0NThlMDRmMDkwMTlkNThjNjkwY2Q3ZGUwMDZhZGI5ZThiLi4zOWIxMjliNzZhMmNhMmU4Mjc4
Nzk4MzU2YjY3ZGMyNWY2YmNkMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dy
ZXNzRWxlbWVudC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRp
b21zLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVu
ZGVyUHJvZ3Jlc3MuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzcsOSArMTM4LDkgQEAg
dm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBS
ZWZQdHI8UHJvZ3Jlc3NCYXJFbGVtZW50PiBiYXIgPSBQcm9ncmVzc0JhckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKTsKICAgICBtX3ZhbHVlID0gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCgpKTsKLSAgICBFeGNlcHRpb25Db2RlIGUgPSAwOwotICAgIGJhci0+YXBwZW5k
Q2hpbGQobV92YWx1ZSwgZSk7Ci0gICAgc2V0U2hhZG93Um9vdChiYXIpOworICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOworICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwgZWMpOworICAgIGVu
c3VyZVNoYWRvd1Jvb3QoKS0+YXBwZW5kQ2hpbGQoYmFyLCBlYyk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZTcwOGEzNTYyOGYwMWU2ZTVkMzlj
YzZhZTA5MzMxMjkyNThiNzQyNi4uYmEyNzQwODcwNmIwMjYwMGI4ZDMwNjYwYzFiNDQ3NzI0MTVj
ODU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2lu
Y2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlc2V0SW5wdXRUeXBlLmgiCiAjaW5j
bHVkZSAiU2VhcmNoSW5wdXRUeXBlLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1
ZGUgIlN1Ym1pdElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlRlbGVwaG9uZUlucHV0VHlwZS5oIgog
I2luY2x1ZGUgIlRleHRJbnB1dFR5cGUuaCIKQEAgLTM1OSw3ICszNjAsNyBAQCB2b2lkIElucHV0
VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiAKIHZvaWQgSW5wdXRUeXBlOjpkZXN0cm95U2hh
ZG93U3VidHJlZSgpCiB7Ci0gICAgZWxlbWVudCgpLT5zZXRTaGFkb3dSb290KDApOworICAgIGVs
ZW1lbnQoKS0+cmVtb3ZlU2hhZG93Um9vdCgpOwogfQogCiBkb3VibGUgSW5wdXRUeXBlOjpwYXJz
ZVRvRG91YmxlKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGY3ZWU2NzQ3NGQzMmI5NDY4OTk2
NTI4YzUxYTFmYTc1YWJmZjdlZmUuLmYyZGU2NWQyOTk3YjQ0OTYwZjEyMTAzOTkyOWZlNDM2YTg0
MjRhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0zOSw2ICsz
OSw3IEBACiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VF
dmVudC5oIgogI2luY2x1ZGUgIlJlbmRlclNsaWRlci5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKICNpbmNsdWRlICJTbGlkZXJUaHVtYkVsZW1lbnQuaCIKICNpbmNsdWRlICJTdGVwUmFuZ2Uu
aCIKICNpbmNsdWRlIDxsaW1pdHM+CkBAIC0xNDgsNyArMTQ5LDcgQEAgdm9pZCBSYW5nZUlucHV0
VHlwZTo6aGFuZGxlTW91c2VEb3duRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAgICAgaWYgKGV2
ZW50LT5idXR0b24oKSAhPSBMZWZ0QnV0dG9uIHx8IGV2ZW50LT50YXJnZXQoKSAhPSBlbGVtZW50
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1i
ID0gdG9TbGlkZXJUaHVtYkVsZW1lbnQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpKQorICAgIGlm
IChTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iID0gc2hhZG93U2xpZGVyVGh1bWIoKSkKICAgICAg
ICAgdGh1bWItPmRyYWdGcm9tKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpOwogfQogCkBAIC0x
OTYsNyArMTk3LDkgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtl
eWJvYXJkRXZlbnQqIGV2ZW50KQogCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dT
dWJ0cmVlKCkKIHsKLSAgICBlbGVtZW50KCktPnNldFNoYWRvd1Jvb3QoU2xpZGVyVGh1bWJFbGVt
ZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKSk7CisgICAgUmVmUHRyPFNoYWRvd1Jv
b3Q+IHNoYWRvdyA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpOwor
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIGVsZW1lbnQoKS0+ZW5zdXJlU2hhZG93Um9v
dCgpLT5hcHBlbmRDaGlsZChTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZShlbGVtZW50KCktPmRv
Y3VtZW50KCkpLCBlYyk7CiB9CiAKIFJlbmRlck9iamVjdCogUmFuZ2VJbnB1dFR5cGU6OmNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKSBjb25zdApAQCAtMjQx
LDcgKzI0NCw3IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6Om1pbk9yTWF4QXR0cmlidXRlQ2hhbmdl
ZCgpCiAKIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OnZhbHVlQ2hhbmdlZCgpCiB7Ci0gICAgdG9TbGlk
ZXJUaHVtYkVsZW1lbnQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpLT5zZXRQb3NpdGlvbkZyb21W
YWx1ZSgpOworICAgIHNoYWRvd1NsaWRlclRodW1iKCktPnNldFBvc2l0aW9uRnJvbVZhbHVlKCk7
CiB9CiAKIFN0cmluZyBSYW5nZUlucHV0VHlwZTo6ZmFsbGJhY2tWYWx1ZSgpCkBAIC0yNjUsNCAr
MjY4LDEwIEBAIGJvb2wgUmFuZ2VJbnB1dFR5cGU6OnNob3VsZFJlc3BlY3RMaXN0QXR0cmlidXRl
KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorU2xpZGVyVGh1bWJFbGVtZW50KiBSYW5nZUlucHV0
VHlwZTo6c2hhZG93U2xpZGVyVGh1bWIoKSBjb25zdAoreworICAgIE5vZGUqIHNoYWRvdyA9IGVs
ZW1lbnQoKS0+c2hhZG93Um9vdCgpOworICAgIHJldHVybiBzaGFkb3cgPyB0b1NsaWRlclRodW1i
RWxlbWVudChzaGFkb3ctPmZpcnN0Q2hpbGQoKSkgOiAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5kZXggMzc1Mjk4NTIwMmFk
MjE0MWNhMDk3NTRlOTk3ZGM5YjBkYjhjYzAwNy4uNzVlN2ExNzQ1YzZlZWNkNzM1NWY0ZDAyY2Iw
NzhjODhiZTlkYjQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0
VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtMzUs
NiArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNsaWRlclRodW1iRWxl
bWVudDsKKwogY2xhc3MgUmFuZ2VJbnB1dFR5cGUgOiBwdWJsaWMgSW5wdXRUeXBlIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVt
ZW50Kik7CkBAIC02Nyw2ICs2OSw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgZmFs
bGJhY2tWYWx1ZSgpOwogICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3Ry
aW5nJiBwcm9wb3NlZFZhbHVlKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RB
dHRyaWJ1dGUoKTsKKworICAgIFNsaWRlclRodW1iRWxlbWVudCogc2hhZG93U2xpZGVyVGh1bWIo
KSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKaW5kZXggNTlhMTQ2NzllM2IwOWM4YTYwMjE3OTc4OTgy
ZTUzZWRiY2RlZWIxYS4uNDg5MTJkNzM3MWMyZTA1ZWMwMTk0MzI1Njc5ZWY2NDVlMmY0YjQzMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAKQEAgLTQwLDYgKzQw
LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiVGV4
dC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTEyOSwxMiArMTMwLDcgQEAg
dm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6YnVpbGRCdWJibGVUcmVlKFRpbWVyPFZhbGlkYXRpb25N
ZXNzYWdlPiopCiAgICAgLy8gY29udGFpbnMgbm9uLWFic29sdXRlIG9yIG5vbi1maXhlZCByZW5k
ZXJlcnMgYXMgY2hpbGRyZW4uCiAgICAgbV9idWJibGUtPmdldElubGluZVN0eWxlRGVjbCgpLT5z
ZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eVBvc2l0aW9uLCBDU1NWYWx1ZUFic29sdXRlKTsKICAgICBF
eGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICAvLyBGSVhNRTogV2UgbmVlZCBhIHdheSB0byBob3N0
IG11bHRpcGxlIHNoYWRvdyByb290cyBpbiBhIHNpbmdsZSBub2RlLCBvcgotICAgIC8vIHRvIGlu
aGVyaXQgYW4gZXhpc3Rpbmcgc2hhZG93IHRyZWUuCi0gICAgaWYgKGhvc3QtPnNoYWRvd1Jvb3Qo
KSkKLSAgICAgICAgaG9zdC0+c2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChtX2J1YmJsZS5nZXQo
KSwgZWMpOwotICAgIGVsc2UKLSAgICAgICAgaG9zdC0+c2V0U2hhZG93Um9vdChtX2J1YmJsZSk7
CisgICAgaG9zdC0+ZW5zdXJlU2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChtX2J1YmJsZS5nZXQo
KSwgZWMpOwogCiAgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBjbGlwcGVyID0gRWxlbWVudFdpdGhQ
c2V1ZG9JZDo6Y3JlYXRlKGRvYywgIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUtYXJyb3ctY2xp
cHBlciIpOwogICAgIGNsaXBwZXItPmFwcGVuZENoaWxkKEVsZW1lbnRXaXRoUHNldWRvSWQ6OmNy
ZWF0ZShkb2MsICItd2Via2l0LXZhbGlkYXRpb24tYnViYmxlLWFycm93IiksIGVjKTsKQEAgLTE2
MSwxMiArMTU3LDggQEAgdm9pZCBWYWxpZGF0aW9uTWVzc2FnZTo6ZGVsZXRlQnViYmxlVHJlZShU
aW1lcjxWYWxpZGF0aW9uTWVzc2FnZT4qKQogICAgIGlmIChtX2J1YmJsZSkgewogICAgICAgICBt
X2J1YmJsZU1lc3NhZ2UgPSAwOwogICAgICAgICBIVE1MRWxlbWVudCogaG9zdCA9IHRvSFRNTEVs
ZW1lbnQobV9lbGVtZW50KTsKLSAgICAgICAgaWYgKG1fYnViYmxlLT5pc1NoYWRvd1Jvb3QoKSkK
LSAgICAgICAgICAgIGhvc3QtPnNldFNoYWRvd1Jvb3QoMCk7Ci0gICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYzsKLSAgICAgICAgICAgIGhvc3QtPnNoYWRvd1Jvb3Qo
KS0+cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0KCksIGVjKTsKLSAgICAgICAgfQorICAgICAgICBF
eGNlcHRpb25Db2RlIGVjOworICAgICAgICBob3N0LT5zaGFkb3dSb290KCktPnJlbW92ZUNoaWxk
KG1fYnViYmxlLmdldCgpLCBlYyk7CiAgICAgICAgIG1fYnViYmxlID0gMDsKICAgICB9CiAgICAg
bV9tZXNzYWdlID0gU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmNwcAppbmRleCA2MzUzMjU5MzMyMjEyZGYwN2FlMWY3OGJlODc0
MGJkNDI5MzZiN2ZiLi44YTA2Y2IzM2ZiNWNiZmNhMDBmZmM4YWU2ZGZlZjU0ZDkxYzc0ZGJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5j
cHAKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6ZHJhZ0Zyb20o
Y29uc3QgSW50UG9pbnQmIHBvaW50KQogCiB2b2lkIFNsaWRlclRodW1iRWxlbWVudDo6c2V0UG9z
aXRpb25Gcm9tUG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50KQogewotICAgIEhUTUxJbnB1dEVs
ZW1lbnQqIGlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0hvc3Qo
KSk7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBob3N0SW5wdXQoKTsKICAgICBBU1NF
UlQoaW5wdXQpOwogCiAgICAgaWYgKCFpbnB1dC0+cmVuZGVyZXIoKSB8fCAhcmVuZGVyZXIoKSkK
QEAgLTE5OCw2ICsxOTgsMTIgQEAgdm9pZCBTbGlkZXJUaHVtYkVsZW1lbnQ6OmRldGFjaCgpCiAg
ICAgSFRNTERpdkVsZW1lbnQ6OmRldGFjaCgpOwogfQogCitIVE1MSW5wdXRFbGVtZW50KiBTbGlk
ZXJUaHVtYkVsZW1lbnQ6Omhvc3RJbnB1dCgpCit7CisgICAgQVNTRVJUKHBhcmVudE5vZGUoKSk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihwYXJlbnROb2RlKCkt
PnNoYWRvd0hvc3QoKSk7Cit9CisKIGNvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVyVGh1bWJFbGVt
ZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChB
dG9taWNTdHJpbmcsIHNsaWRlclRodW1iLCAoIi13ZWJraXQtc2xpZGVyLXRodW1iIikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAppbmRleCA5
NDE0YWM0OGE2OTFlMDhhYWNjZDQyODU3MWJiNWVhZmEzYTlhYmQ5Li4yZmE2MGNiNWU0YjkwMGRh
MWI0ZGNiNDJlODZkYTRiY2NjNTMwZDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaApAQCAtNDEsNiArNDEsNyBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBIVE1MRWxlbWVudDsKK2NsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiBj
bGFzcyBFdmVudDsKIGNsYXNzIEZsb2F0UG9pbnQ7CiAKQEAgLTYyLDYgKzYzLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHN0YXJ0RHJhZ2dpbmcoKTsKICAgICB2b2lkIHN0b3BEcmFnZ2luZygpOwog
ICAgIHZvaWQgc2V0UG9zaXRpb25Gcm9tUG9pbnQoY29uc3QgSW50UG9pbnQmKTsKKyAgICBIVE1M
SW5wdXRFbGVtZW50KiBob3N0SW5wdXQoKTsKIAogICAgIEZsb2F0UG9pbnQgbV9vZmZzZXRUb1Ro
dW1iOwogICAgIGJvb2wgbV9pbkRyYWdNb2RlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggNDljNDU3ODRhYTc3MjkxNDQ3MTIy
NmJlNTM5N2Q3OGU0YWNiMjg1ZS4uYjhhZDNkMzg0MjA3MmZkMTNkYmY3ODNlNzg4MjMwOWY3MWQ2
MDgwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxl
bWVudHMuY3BwCkBAIC00NTYsNyArNDU2LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xJbnB1dEVsZW1l
bnQ6OmF0dGFjaCgpCiAgICAgICAgIHBhcmVudE5vZGUoKS0+cmVuZGVyZXIoKS0+YWRkQ2hpbGQo
cmVuZGVyZXIsIHNpYmxpbmcgPyBzaWJsaW5nLT5yZW5kZXJlcigpIDogMCk7CiAgICAgfSAgCiAg
ICAgQ29udGFpbmVyTm9kZTo6YXR0YWNoKCk7Ci0gICAgLy8gRklYTUU6IEN1cnJlbnRseSwgTWVp
ZGFDb250cm9sSW5wdXQgY2lyY3VtdmVudHMgdGhlIG5vcm1hbCBhdHRhY2htZW50CisgICAgLy8g
RklYTUU6IEN1cnJlbnRseSwgTWVkaWFDb250cm9sSW5wdXQgY2lyY3VtdmVudHMgdGhlIG5vcm1h
bCBhdHRhY2htZW50CiAgICAgLy8gYW5kIHN0eWxlIHJlY2FsYyBjeWNsZSBhbmQgdGh1cyB3ZSBu
ZWVkIHRvIGFkZCBleHRyYSBsb2dpYyB0byBiZSBhd2FyZSBvZgogICAgIC8vIHRoZSBzaGFkb3cg
RE9NLiBSZW1vdmUgdGhpcyBvbmNlIGFsbCBtZWRpYSBjb250cm9scyBhcmUgdHJhbnNpdGlvbmVk
IHRvIHVzZSB0aGUgcmVndWxhcgogICAgIC8vIHN0eWxlIGNhbGN1bGF0aW9uLgpAQCAtNDgxLDcg
KzQ4MSw3IEBAIHZvaWQgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50Ojp1cGRhdGVTdHlsZSgpCiAg
ICAgZWxzZSBpZiAocmVuZGVyZXIoKSkKICAgICAgICAgcmVuZGVyZXIoKS0+c2V0U3R5bGUoc3R5
bGUuZ2V0KCkpOwogCi0gICAgLy8gRklYTUU6IEN1cnJlbnRseSwgTWVpZGFDb250cm9sSW5wdXQg
Y2lyY3VtdmVudHMgdGhlIG5vcm1hbCBhdHRhY2htZW50CisgICAgLy8gRklYTUU6IEN1cnJlbnRs
eSwgTWVkaWFDb250cm9sSW5wdXQgY2lyY3VtdmVudHMgdGhlIG5vcm1hbCBhdHRhY2htZW50CiAg
ICAgLy8gYW5kIHN0eWxlIHJlY2FsYyBjeWNsZSBhbmQgdGh1cyB3ZSBuZWVkIHRvIGFkZCBleHRy
YSBsb2dpYyB0byBiZSBhd2FyZSBvZgogICAgIC8vIHRoZSBzaGFkb3cgRE9NLiBSZW1vdmUgdGhp
cyBvbmNlIGFsbCBtZWRpYSBjb250cm9scyBhcmUgdHJhbnNpdGlvbmVkIHRvIHVzZQogICAgIC8v
IHRoZSBuZXcgc2hhZG93IERPTS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJTbGlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRl
ci5jcHAKaW5kZXggMTY2MWI3YTJjNTU2Nzk3ZjI0YjU1NzYxYWYyM2JhOWU2NjUwZGE3ZC4uYWQ1
YWIxYWRmYmU4NDhkZjllMmYyYjYxOTZkM2JiMjk0MjY4ZGE1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJI
VE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiTWVkaWFDb250cm9sRWxlbWVudHMuaCIKICNp
bmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlJlbmRl
ckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3
LmgiCkBAIC0xMDEsNyArMTAyLDcgQEAgdm9pZCBSZW5kZXJTbGlkZXI6OmNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKCkKIAogSW50UmVjdCBSZW5kZXJTbGlkZXI6OnRodW1iUmVjdCgpCiB7
Ci0gICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1lbnQgPSBzbGlkZXJUaHVtYkVsZW1l
bnQoKTsKKyAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iRWxlbWVudCA9IHNoYWRvd1NsaWRl
clRodW1iKCk7CiAgICAgaWYgKCF0aHVtYkVsZW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0
KCk7CiAKQEAgLTEyOCw3ICsxMjksNyBAQCB2b2lkIFJlbmRlclNsaWRlcjo6bGF5b3V0KCkKIHsK
ICAgICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7CiAKLSAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRo
dW1iRWxlbWVudCA9IHNsaWRlclRodW1iRWxlbWVudCgpOworICAgIFNsaWRlclRodW1iRWxlbWVu
dCogdGh1bWJFbGVtZW50ID0gc2hhZG93U2xpZGVyVGh1bWIoKTsKICAgICBSZW5kZXJCb3gqIHRo
dW1iID0gdGh1bWJFbGVtZW50ID8gdG9SZW5kZXJCb3godGh1bWJFbGVtZW50LT5yZW5kZXJlcigp
KSA6IDA7CiAKICAgICBJbnRTaXplIGJhc2VTaXplKGJvcmRlckFuZFBhZGRpbmdXaWR0aCgpLCBi
b3JkZXJBbmRQYWRkaW5nSGVpZ2h0KCkpOwpAQCAtMTc2LDE0ICsxNzcsMTUgQEAgdm9pZCBSZW5k
ZXJTbGlkZXI6OmxheW91dCgpCiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCi1TbGlk
ZXJUaHVtYkVsZW1lbnQqIFJlbmRlclNsaWRlcjo6c2xpZGVyVGh1bWJFbGVtZW50KCkgY29uc3QK
K1NsaWRlclRodW1iRWxlbWVudCogUmVuZGVyU2xpZGVyOjpzaGFkb3dTbGlkZXJUaHVtYigpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIHRvU2xpZGVyVGh1bWJFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1l
bnQqPihub2RlKCkpLT5zaGFkb3dSb290KCkpOworICAgIE5vZGUqIHNoYWRvdyA9IHN0YXRpY19j
YXN0PEVsZW1lbnQqPihub2RlKCkpLT5zaGFkb3dSb290KCk7CisgICAgcmV0dXJuIHNoYWRvdyA/
IHRvU2xpZGVyVGh1bWJFbGVtZW50KHNoYWRvdy0+Zmlyc3RDaGlsZCgpKSA6IDA7CiB9CiAKIGJv
b2wgUmVuZGVyU2xpZGVyOjppbkRyYWdNb2RlKCkgY29uc3QKIHsKLSAgICBTbGlkZXJUaHVtYkVs
ZW1lbnQqIHRodW1iRWxlbWVudCA9IHNsaWRlclRodW1iRWxlbWVudCgpOworICAgIFNsaWRlclRo
dW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0gc2hhZG93U2xpZGVyVGh1bWIoKTsKICAgICByZXR1
cm4gdGh1bWJFbGVtZW50ICYmIHRodW1iRWxlbWVudC0+aW5EcmFnTW9kZSgpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKaW5kZXggMDE2MmI3MTA3YmFkNWVlNmM1
MzJkNTU5YmNlNTU0NDEwYzkwZTExNy4uNGUxN2YzMGQ4YTgxMWQxN2QzZTI4ODQ3ZjI3ZmIyOWVi
MzY1ZTU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaApAQCAtNDYs
OCArNDYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBsYXlv
dXQoKTsKIAogICAgICAgICAvLyBGSVhNRTogRXZlbnR1YWxseSwgdGhlIGxvZ2ljIG9mIG1hbmlw
dWxhdGluZyBzbGlkZXIgdGh1bWIgc2hvdWxkIG1vdmUgdG8KLSAgICAgICAgLy8gU2xpZGVyVGh1
bWJFbGVtZW50IGFuZCBhY2Nlc3Npbmcgc2xpZGVyVGh1bWJFbGVtZW50IHNob3VsZCBub3QgYmUg
bmVjZXNzYXJ5IGluIHRoaXMgY2xhc3MuCi0gICAgICAgIFNsaWRlclRodW1iRWxlbWVudCogc2xp
ZGVyVGh1bWJFbGVtZW50KCkgY29uc3Q7CisgICAgICAgIC8vIFNsaWRlclRodW1iRWxlbWVudCBh
bmQgYWNjZXNzaW5nIHNoYWRvd1NsaWRlclRodW1iIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5IGlu
IHRoaXMgY2xhc3MuCisgICAgICAgIFNsaWRlclRodW1iRWxlbWVudCogc2hhZG93U2xpZGVyVGh1
bWIoKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGb3JjZWRTdHlsZVJl
Y2FsY1Byb3BhZ2F0aW9uKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88689</attachid>
            <date>2011-04-07 13:53:19 -0700</date>
            <delta_ts>2011-04-07 14:35:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57813-20110407135318.patch</filename>
            <type>text/plain</type>
            <size>56046</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMxODAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwYzliYmZjZTI2ZmRlZDQwYzdhMWVj
ZWEzZmMyMjliYWM3MDAyNTlmLi43NmU2ZDIyOGFhYTliNThkMThiMTE0YTA3ZDIwOTYyYmY0YzU5
MTk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQtMDYgIERvbWluaWMgQ29vbmV5ICA8
ZG9taW5pY2NAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBMZXQgc2hhZG93IERPTSBoYXZlIGEgbGlzdCBvZiBub2RlcyBhdCB0aGUg
dG9wIGxldmVsIG9mIGEgc2hhZG93LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTc4MTMKKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxLZXlnZW5FbGVt
ZW50L2tleWdlbi1leHBlY3RlZC50eHQ6IHNoYWRvdyBET00gY2hhbmdlZAorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sOiBhZGRlZCBhc3NlcnRpb24gb24g
c2hhZG93CisKIDIwMTEtMDQtMDcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4tZXhwZWN0ZWQu
dHh0CmluZGV4IDc0NWYwMTY3ZjYzM2JiYjU2MTcwNDFhZjU3MDk5MmIxZGM5MmI1OTMuLmE4YjJl
ZTU5NDMyY2RmYTA4MjA2NmYyMDQ0NWY0ZDFlYTZhNDAwYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEtleWdlbkVsZW1lbnQva2V5Z2VuLWV4cGVjdGVkLnR4
dApAQCAtMiw4ICsyLDkgQEAKIFRoaXMgdGVzdHMgdGhlIGtleWdlbiBlbGVtZW50LgogCiBQQVNT
IGtleWdlbi5vcHRpb25zIGlzIHVuZGVmaW5lZAotUEFTUyBzaGFkb3cudGFnTmFtZSBpcyAiU0VM
RUNUIgotUEFTUyBsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHNoYWRvdykgaXMgbnVs
bAorUEFTUyBzaGFkb3cuZmlyc3RDaGlsZC50YWdOYW1lIGlzICJTRUxFQ1QiCitQQVNTIGxheW91
dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3Qoc2hhZG93KSBpcyB1bmRlZmluZWQKK1BBU1MgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChzaGFkb3cuZmlyc3RDaGlsZCkgaXMgbnVsbAog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sCmluZGV4
IGVkOWNkY2FjZWZlZmZmMzllYzJkY2EyNDgzMjdjNDdlMGJiOTQxOGMuLmNiODgzMTYxNWU1Njll
ZDgyNmRmNjc5ZWU4MTQzOTY3ZTM4OWFhNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sCkBAIC0xNSw4ICsxNSw5IEBAIHNob3Vs
ZEJlKCdrZXlnZW4ub3B0aW9ucycsICd1bmRlZmluZWQnKTsgIC8vIGtleWdlbiBpcyBub3QgYSBz
ZWxlY3QKIAogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewogICB2YXIgc2hhZG93
ID0gbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChrZXlnZW4pOwotICBzaG91bGRCZSgn
c2hhZG93LnRhZ05hbWUnLCAnIlNFTEVDVCInKTsKLSAgc2hvdWxkQmUoJ2xheW91dFRlc3RDb250
cm9sbGVyLnNoYWRvd1Jvb3Qoc2hhZG93KScsICdudWxsJyk7CisgIHNob3VsZEJlKCdzaGFkb3cu
Zmlyc3RDaGlsZC50YWdOYW1lJywgJyJTRUxFQ1QiJyk7CisgIHNob3VsZEJlKCdsYXlvdXRUZXN0
Q29udHJvbGxlci5zaGFkb3dSb290KHNoYWRvdyknLCAndW5kZWZpbmVkJyk7CisgIHNob3VsZEJl
KCdsYXlvdXRUZXN0Q29udHJvbGxlci5zaGFkb3dSb290KHNoYWRvdy5maXJzdENoaWxkKScsICdu
dWxsJyk7CiB9CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQW5kcm9pZC5tayBiL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQubWsKaW5k
ZXggOTI4ODE3NzkzYWQ0MDM1YTEzNjM3YWYyNzFmNmI2ZWMwZmFkY2NkNC4uZWQ2M2UyYmM3Yjk4
NzA1MmQ0MDcyOWQ4MDI3M2Q1M2QxNjkwZmI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
QW5kcm9pZC5taworKysgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0xNzUsNiArMTc1
LDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJZG9tL1Njcmlw
dFJ1bm5lci5jcHAgXAogCWRvbS9TZWxlY3RFbGVtZW50LmNwcCBcCiAJZG9tL1NlbGVjdG9yTm9k
ZUxpc3QuY3BwIFwKKwlkb20vU2hhZG93Um9vdC5jcHAgXAogCWRvbS9TcGFjZVNwbGl0U3RyaW5n
LmNwcCBcCiAJZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAgXAogCWRvbS9TdGF0aWNOb2Rl
TGlzdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5MDBhNzkyMjM1YzVjMjVlMzQ0MDQ5
OWI0MzMwNmI2ZjdmYWQ4ZWEzLi5iNTE4MGM5ZGIxOTAwZjg1YzY3ZmZhOWM5NWMxMjdmMDAyNzNj
Y2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNjAzLDYgKzYwMyw3IEBAIFNFVChXZWJDb3Jl
X1NPVVJDRVMKICAgICBkb20vU2NyaXB0UnVubmVyLmNwcAogICAgIGRvbS9TZWxlY3RFbGVtZW50
LmNwcAogICAgIGRvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcAorICAgIGRvbS9TaGFkb3dSb290LmNw
cAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcAogICAgIGRvbS9TdGF0aWNIYXNoU2V0Tm9k
ZUxpc3QuY3BwCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA1ODgx
MzM1NWIzYzNlNGY5MmUzMWYwNzQ5ZjUyOWM0Yjg1NTAzYzcuLmYwZmIyOWVmZTE1NmJlMGU3OWJh
YjlhOWI3YTIzZjE4OWNjZDMxZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4NiBAQAorMjAxMS0w
NC0wNiAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCBzaGFkb3cgRE9NIGhhdmUg
YSBsaXN0IG9mIG5vZGVzIGF0IHRoZSB0b3AgbGV2ZWwgb2YgYSBzaGFkb3cuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzgxMworCisgICAgICAgIEFk
ZHMgU2hhZG93Um9vdCwgYSBsaXN0IG9mIG5vZGVzLCB0byBiZSBhIHBhcmVudCBmb3IgdG9wLWxl
dmVsCisgICAgICAgIHNoYWRvdyBjaGlsZHJlbi4gRm9yd2FyZHMgcmVuZGVyaW5nIHRocm91Z2gg
dGhlIHJvb3QgYW5kIGludG8gdGhlCisgICAgICAgIGhvc3QncyByZW5kZXJlci4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzIG9mIGVsZW1lbnRzIHRoYXQgdXNlIHRoaXMgc3R5
bGUgb2Ygc2hhZG93LgorCisgICAgICAgICogQW5kcm9pZC5tazogYWRkIFNoYWRvd1Jvb3QKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmluaXRGb3JTdHlsZVJlc29sdmUpOiBw
cm94eSBzdHlsZSB0byBob3N0CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuY3BwOiB0b3At
bGV2ZWwgKnNoYWRvdyotY29ubmVjdGVkIERPTSBpcyBhbGl2ZQorICAgICAgICAoV2ViQ29yZTo6
Q29udGFpbmVyTm9kZTo6aW5zZXJ0QmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5l
ck5vZGU6OnJlcGxhY2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpy
ZW1vdmVDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjphcHBlbmRDaGls
ZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwOiBTaGFkb3dSb290IGlzIGEg
a2luZCBvZiBEb2N1bWVudEZyYWdtZW50CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdt
ZW50OjpEb2N1bWVudEZyYWdtZW50KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5o
OgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OnJlY2FsY1N0eWxlKTogbG9vayB0aHJ1IFNoYWRvd1Jvb3QgdG8gaG9zdCBmb3Igc3R5bGUKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNoYWRvd1Jvb3QpOiBzaG91bGQgYmUgY29uc3QKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNoYWRvd1Jvb3QpOiByZW1vdmVkOyB1c2UgZW5z
dXJlU2hhZG93Um9vdAorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5zdXJlU2hhZG93Um9v
dCk6IGFkZGVkCisgICAgICAgICogZG9tL0VsZW1lbnQuaDogc2hhZG93Um9vdCBhY2Nlc3NvciBz
aG91bGQgYmUgY29uc3QKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6IGFsbCBzaGFk
b3cgcm9vdHMgYXJlIFNoYWRvd1Jvb3QgaW5zdGFuY2VzCisgICAgICAgICogZG9tL05vZGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxl
KTogYWRkZWQKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNyZWF0ZVJlbmRlcmVyQW5kU3R5bGUp
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCk6IGZvcndh
cmQgdG9wLWxldmVsIHNoYWRvdyByZW5kZXJlcnMKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNTaGFkb3dCb3VuZGFyeSk6CisgICAgICAgICogZG9tL1No
YWRvd1Jvb3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpTaGFkb3dSb290KToKKyAgICAgICAg
KFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OnJlY2FsY1N0eWxlKTogZm9yd2FyZCByZWNhbGMgdG8gY2hp
bGRyZW4KKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Jvb3Q6OmlzU2hhZG93Qm91bmRhcnkpOgorICAgICAgICAqIGh0bWwvSFRNTEtl
eWdlbkVsZW1lbnQuY3BwOiB1c2UgU2hhZG93Um9vdAorICAgICAgICAoV2ViQ29yZTo6SFRNTEtl
eWdlbkVsZW1lbnQ6OkhUTUxLZXlnZW5FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxL
ZXlnZW5FbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MS2V5Z2VuRWxlbWVudDo6YXBwZW5kRm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TEtleWdlbkVsZW1lbnQ6OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxLZXlnZW5FbGVt
ZW50OjpzaGFkb3dTZWxlY3QpOgorICAgICAgICAqIGh0bWwvSFRNTEtleWdlbkVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwOiB1c2UgU2hhZG93Um9vdAorICAg
ICAgICAoV2ViQ29yZTo6SFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcDogdXNlIFNoYWRvd1Jvb3QKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWUp
OgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOiB1c2UgU2hhZG93Um9vdAorICAg
ICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmhhbmRsZU1vdXNlRG93bkV2ZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjp2YWx1ZUNoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OnNoYWRvd1NsaWRlclRodW1iKToKKyAgICAgICAgKiBo
dG1sL1JhbmdlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5j
cHA6IHVzZSBTaGFkb3dSb290CisgICAgICAgIChXZWJDb3JlOjpWYWxpZGF0aW9uTWVzc2FnZTo6
YnVpbGRCdWJibGVUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRpb25NZXNzYWdlOjpk
ZWxldGVCdWJibGVUcmVlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlv
bkZyb21Qb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6Omhvc3RJ
bnB1dCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDogdXNlIFNoYWRvd1Jvb3QK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6YXR0YWNoKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6dXBkYXRlU3R5bGUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU2xpZGVyOjp0aHVtYlJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVy
OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpzaGFkb3dTbGlkZXJU
aHVtYik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmluRHJhZ01vZGUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJTbGlkZXIuaDoKKwogMjAxMS0wNC0wNyAgRGFuIEJlcm5z
dGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGVlNzBhNGZiYTFkMTQ4NDM1YWU2YzI2ZWFlZjcxMjg5
NGEyMDVlYTEuLjFkMDUwMzAyMDA1Y2ExZTYzMmJiNWE2YWU0MGFiMWJlNGMyZmRlNmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCkBAIC0xMzMxLDYgKzEzMzEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9y
Tm9kZUxpc3QuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VT
cGxpdFN0cmluZy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KaW5kZXggODc5ZGEyNWRlNmYwZGYxZjFjMzUzY2I3OTNhYTJhZjQ3MzA3ZDZh
Zi4uNmMwNzZiM2Y0MTVhMzk5NGJlZDZlZWVlYzQ4ZDgwMzJkNzc0MzUwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KQEAgLTc5OSw3ICs3OTksNiBAQCBfX1pON1dlYkNvcmU2V2lkZ2V0RDJFdgogX19a
TjdXZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlN0NvbnNvbGUyMXNo
b3VsZFByaW50RXhjZXB0aW9uc0V2CiBfX1pON1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJp
bnRFeGNlcHRpb25zRWIKLV9fWk43V2ViQ29yZTdFbGVtZW50MTBzaGFkb3dSb290RXYKIF9fWk43
V2ViQ29yZTdJbnRSZWN0NXNjYWxlRWYKIF9fWk43V2ViQ29yZTdJbnRSZWN0NXVuaXRlRVJLUzBf
CiBfX1pON1dlYkNvcmU3SW50UmVjdDlpbnRlcnNlY3RFUktTMF8KQEAgLTEyNTEsNiArMTI1MCw3
IEBAIF9fWk5LN1dlYkNvcmU2V2lkZ2V0MjVjb252ZXJ0VG9Db250YWluaW5nV2luZG93RVJLTlNf
N0ludFJlY3RFCiBfX1pOSzdXZWJDb3JlNldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRv
d0VSS05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNvcmU2V2lkZ2V0OWZyYW1lUmVjdEV2CiBfX1pO
SzdXZWJDb3JlN0VsZW1lbnQxMHNjcmVlblJlY3RFdgorX19aTks3V2ViQ29yZTdFbGVtZW50MTBz
aGFkb3dSb290RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDEyZ2V0QXR0cmlidXRlRVJLTlNfMTNR
dWFsaWZpZWROYW1lRQogX19aTks3V2ViQ29yZTdFbGVtZW50MTlib3VuZHNJbldpbmRvd1NwYWNl
RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDlpbm5lclRleHRFdgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IGJhZDMxMTVlZjlhZWNjYmE4NDJhODFiYjhmYjc2ZTk1YTZmMTA2MTcuLmY0ODRjMWUzOTRkMGY5
YWQ5NTI5YTE1ZWRhZmM4Yzc0ZDYxNjc5OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU0NSw2ICs1
NDUsNyBAQAogICAgICAgICAgICAgJ2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oJywKICAg
ICAgICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKICAgICAgICAgICAgICdk
b20vU2NyaXB0UnVubmVyLmgnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAogICAg
ICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgnLAogICAgICAgICAgICAgJ2RvbS9TdHls
ZWRFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9UZXh0LmgnLApAQCAtMjUyMiw2ICsyNTIz
LDggQEAKICAgICAgICAgICAgICdkb20vU2VsZWN0RWxlbWVudC5oJywKICAgICAgICAgICAgICdk
b20vU2VsZWN0b3JOb2RlTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TZWxlY3Rvck5vZGVM
aXN0LmgnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmNwcCcsCisgICAgICAgICAgICAn
ZG9tL1NoYWRvd1Jvb3QuaCcsCiAgICAgICAgICAgICAnZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3Bw
JywKICAgICAgICAgICAgICdkb20vU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCcsCiAgICAgICAg
ICAgICAnZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZDQy
MjFmZjlkZmQzYTk4NGEwZWRkOTYxNDI3NzliNzBkOGZjN2MwZS4uYzEyMjk3NmE3NjY0NDIyNTMz
MDdiN2U4ZTBlODA5ODhkZDE3Y2ZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTUzNCw2ICs1MzQsNyBA
QCBTT1VSQ0VTICs9IFwKICAgICBkb20vU2NyaXB0UnVubmVyLmNwcCBcCiAgICAgZG9tL1NlbGVj
dEVsZW1lbnQuY3BwIFwKICAgICBkb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAgXAorICAgIGRvbS9T
aGFkb3dSb290LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKICAgICBkb20v
U3RhdGljTm9kZUxpc3QuY3BwIFwKICAgICBkb20vU3R5bGVkRWxlbWVudC5jcHAgXApAQCAtMTQ5
Nyw2ICsxNDk4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCBcCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuaCBcCiAgICAgZG9tL1NlbGVjdG9yTm9kZUxp
c3QuaCBcCisgICAgZG9tL1NoYWRvd1Jvb3QuaCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcu
aCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmggXAogICAgIGRvbS9TdHlsZWRFbGVtZW50Lmgg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAx
MzYxNDg1ZDlmMzYyOTQ2NWQxYmQwY2Y2YjlkNWI0MjgwZTU5NDM3Li5kMDdhZGZhMjNkMjU2MTI0
NzdjMGJlMjkwMDQzOGIzNmE2ODBjOTMxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDY0NDIsNiArNDY0NDIsNjIgQEAKIAkJCQk+CiAJCQk8
L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd1Jvb3QuY3Bw
IgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJ
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxX
aW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wK
KwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWly
b19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJ
CQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRl
YnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJv
ZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJ
CQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxkb21cU2hhZG93Um9vdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxkb21cU3BhY2VTcGxpdFN0cmluZy5jcHAiCiAJCQkJPgogCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDEwOGQzYzYzOGNhN2Y1ZDY0OTJhYzYxZGYzOWMyODllZDkw
ZWY4NjUuLjc5YWI4ZDU1NTQzZmZkNjllZmYwZjRlOGU0OTlkM2M3ZDFmZDRiMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMx
OTYsNiArMzE5Niw4IEBACiAJCUE2MjJBOEZDMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2Vj
dXJpdHlCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE2MjJBOEY2MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAq
LzsgfTsKIAkJQTYyMkE4RkQxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY3
MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi87IH07CiAJCUE2MjJB
OEZGMTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjkxMjJDNDRBNjAwQTc4NUIzIC8q
IEdlbmVyaWNCaW5kaW5nLmggKi87IH07CisJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBT
aGFkb3dSb290LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLzsgfTsKKwkJ
QTZEMTY5NjQxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAv
KiBTaGFkb3dSb290LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQTcxNTFCRDgxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1MUJENzEy
RjE1NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE1RTY1MjEzNEJCQkVDMDBEOEU3MTMg
LyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1No
YWRvd0VsZW1lbnQuY3BwICovOyB9OwogCQlBNzE1RTY1MzEzNEJCQkVDMDBEOEU3MTMgLyogUHJv
Z3Jlc3NTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzE1RTY1MTEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVt
ZW50LmggKi87IH07CkBAIC05NzI0LDYgKzk3MjYsOCBAQAogCQlBNjIyQThGNjEyMkM0NEE2MDBB
Nzg1QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcDsgcGF0aCA9IGdlbmVyaWMvQmlu
ZGluZ1NlY3VyaXR5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE2MjJB
OEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eUJhc2UuaDsgcGF0aCA9IGdlbmVy
aWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
NjIyQThGOTEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gR2VuZXJpY0JpbmRpbmcuaDsgcGF0aCA9IGdlbmVyaWMvR2Vu
ZXJpY0JpbmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTZEMTY5NjExMzQ2
QjQ5QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2hhZG93Um9vdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNoYWRvd1Jvb3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTcxNTFCRDcxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2VyQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTVFNjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9n
cmVzc1NoYWRvd0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTcxNUU2NTExMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NDQ3LDYgKzE5NDUxLDggQEAKIAkJCQkw
ODRBRUJFMzBGQjUwNUZBMDAzODQ4M0UgLyogU2VsZWN0RWxlbWVudC5oICovLAogCQkJCUJDN0ZB
NjgwMEQxRjE2NzkwMERCMjJBOSAvKiBTZWxlY3Rvck5vZGVMaXN0LmNwcCAqLywKIAkJCQlCQzdG
QTY3RjBEMUYxNjc5MDBEQjIyQTkgLyogU2VsZWN0b3JOb2RlTGlzdC5oICovLAorCQkJCUE2RDE2
OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLywKKwkJCQlBNkQxNjk2MzEz
NDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oICovLAogCQkJCUQwMUEyN0FCMTBDOUJGRDgw
MDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmNwcCAqLywKIAkJCQlEMDFBMjdBQzEwQzlCRkQ4
MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oICovLAogCQkJCUNFQTM5NDlBMTFENDVDREEw
MDMwOTRDRiAvKiBTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwICovLApAQCAtMTk5MTMsNiArMTk5
MTksNyBAQAogCQkJCUJDRDUzMzY0MEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3Vy
Y2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMjgwOTc5QzNCRDAwNDY3NzQx
IC8qIENhY2hlZFhTTFN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTUwMDgy
NDVFNTkwMDFFOUFCQyAvKiBDYWNoZVBvbGljeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjFENUVD
QjUxMzRCNThEQTAwODdDNzhGIC8qIENhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTZFNEU5MUFEMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0ODRGQzIxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dy
YWRpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTQ4NEZDNTEwMkNGMjNDMDAxODdERDMgLyog
Q2FudmFzUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDA3NCw2ICsyMDA4MSw4IEBACiAJ
CQkJQThDMjI4QTExMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQxNjJBNDUxMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzRDU4RjEwMUMxNTJEMDAz
MTZEMDcgLyogRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDA2
REZBNjEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4g
SGVhZGVycyAqLywKKwkJCQlGRDA2REZBNjEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0MzNkVCOTEzNDJBQTNGMDA0
QkVFRjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MTY3RUJGNjEwMjk2MkJBMDAzRDI1MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRv
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDJDMTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxh
eURTUEtlcm5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTA4OSw2ICsyMTA5OCw3IEBACiAJCQkJ
OTNGMTk5RTUwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOERGM0ZEMDA5N0ZBMEZDMDA1Mjk4MUIgLyogSFRNTENvbGxlY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTk3N0IzODY1MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MQ29uc3Ry
dWN0aW9uU2l0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFBMzE2NjMxMzRCQ0FFODAwN0M5QTRG
IC8qIEhUTUxDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzdDREJDMEZFRkYxNDIw
MDcwODg3QiAvKiBIVE1MRGF0YUdyaWRDZWxsRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM3N0NCODcwRkVCRjVBRjAwNzA4ODdCIC8qIEhUTUxEYXRhR3JpZENvbEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMjEyQTFGMEZFODMzMzIwMEVDMzcwOCAvKiBIVE1MRGF0YUdyaWRF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIxNTgwLDYgKzIxNTkwLDggQEAKIAkJCQk5MDAx
Nzg4MTEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2RUJGMEU3NzEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxv
YXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc3QTE3QUE3MTJGMjhCMkEwMDRFMDJGNiAvKiBKU09F
U1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREY2QkFGOTEzNEE0Qzk4
MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUZERjZCQUY5MTM0QTRDOTgwMDgyMjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRp
b25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyNkU4QUUwQTFBOEYyMzAwQ0QxQkI2IC8q
IEpTT3B0aW9uQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMEQ1NzQxMEE1Qzc4
NjcwMDdFREQ0QyAvKiBKU092ZXJmbG93RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjg0
QkIxMTA0NDlGRkEwMEVBRUI1MiAvKiBKU1BhZ2VUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjE5MzQsNiArMjE5NDYsMTAgQEAKIAkJCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0
NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkVCRjBF
NDkxMkE4OTI2MTAwREIxNzA5IC8qIE9FU1RleHR1cmVGbG9hdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzdBMTdBNzIxMkYyODE4MjAwNEUwMkY2IC8qIE9FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4g
SGVhZGVycyAqLywKKwkJCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlv
Q29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QTEzNEE0OUVGMDA4
RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2Rl
LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGlu
ZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEVBRjRBRjEwQzc0
MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
NzI4MTU2MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwODcyODE1ODBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTIyMjUxLDYgKzIyMjY3LDcgQEAKIAkJCQkwRjNERDQ1MDEyRjVFQTFC
MDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI4QzQwRTgy
MDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RjMzOEE0
MTFDMEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlB
NkQxNjk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTgwRTZDRTgwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMkFGRkM5NDBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBNEE5NTRFMEI0RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuaCBp
biBIZWFkZXJzICovLApAQCAtMjI3MTksNiArMjI3MzYsNyBAQAogCQkJCTQ5NEJENzk1MEY1NUM4
RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFDMEZGMjUw
RTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDRjMzMkYwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFMUEzMTYyRDEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5n
RXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0FGMzQ4MTBBNkM0MDUyMDBBQkUwNkUgLyog
V2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQxQjBEN0UyQjgyMDA3
QzM5ODMgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0FGMzQ4MzBB
NkM0MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMjgzMCwxMyArMjI4NDgsNiBAQAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAv
KiBYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAy
RUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEy
RjBGQzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlGREEzRTk1
QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVh
ZGVycyAqLywKLQkJCQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVz
dGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGREY2QkFGOTEzNEE0Qzk4MDA4MjI5
MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUZEMDZERkE2MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUu
aCBpbiBIZWFkZXJzICovLAotCQkJCUUxQTMxNjJEMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0
dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQTMxNjYzMTM0QkNB
RTgwMDdDOUE0RiAvKiBIVE1MQ29udmVydGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlCMUQ1RUNC
NTEzNEI1OERBMDA4N0M3OEYgLyogQ2FsbGJhY2tGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0yMzI0OSw2ICsyMzI2MCw3IEBACiAJCQkJRDBEMTQxQjIxMkIyQkY1MjAwRTM5NjIwIC8qIENh
Y2hlZFJlc291cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMyMzA5NzlD
M0JEMDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2
QzI3MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUIxODI3NDkzMTM0Q0E0QzEwMEI5OEMyRCAvKiBDYWxsYmFja0Z1bmN0aW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTZFNEU5MUFDMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXND
b250ZXh0QXR0cmlidXRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTQ4NEZDMTEwMkNGMjND
MDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0ODRG
QzQxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BhdHRlcm4uY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yMzM4Miw2ICsyMzM5NCw4IEBACiAJCQkJQThDMjI4QTIxMUQ1NzIyRTAwRDVBN0QzIC8qIERl
Y29kZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2MkE0NTAx
MDExNDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDFBM0Q1OEUxMDFDMTUyRDAwMzE2RDA3IC8qIERlZGljYXRlZFdvcmtlclRocmVh
ZC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRDA2REZBNTEzNEE0REVGMDA2RjVEN0QgLyogRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEMDZERkE1
MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNDMzZFQjgxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6
YXRpb25TdHJhdGVneS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTY3RUJGNTEwMjk2MkJBMDAz
RDI1MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkQzMTYwMkIxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5RFNQS2VybmVsLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjQ0NDksNiArMjQ0NjMsOCBAQAogCQkJCTkwMDE3ODgwMTJFMDM3MDcw
MDY0ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNkVCRjBFNzYxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VTVGV4dHVyZUZsb2F0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTc3QTE3QUE2MTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFy
cmF5T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZERjZCQUY4MTM0QTRDOTgwMDgyMjky
MCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGREY2QkFGODEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgyNkVDNDgwQTFCMENCRTAwQ0QxQkI2IC8qIEpT
T3B0aW9uQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRDU3NDAwQTVDNzg2
NzAwN0VERDRDIC8qIEpTT3ZlcmZsb3dFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI4
NEJCMjEwNDQ5RkZBMDBFQUVCNTIgLyogSlNQYWdlVHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjQ4MTUsNiArMjQ4MzEsMTAgQEAKIAkJCQk5MDAxNzc0MDEyRTAzNDc4MDA2
NDg0NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2
RUJGMEU0ODEyQTg5MjYxMDBEQjE3MDkgLyogT0VTVGV4dHVyZUZsb2F0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTc3QTE3QTcxMTJGMjgxODIwMDRFMDJGNiAvKiBPRVNWZXJ0ZXhBcnJheU9iamVj
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGREEzRTk1OTEzNEE0OUVGMDA4RDRCNUEgLyogT2Zm
bGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEQTNFOTU5
MTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRkRBM0U5NUIxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rl
c3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGREEzRTk1QjEzNEE0OUVGMDA4
RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUY0RUFGNEFFMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwODcyODE1NTBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODcyODE1NzBGMjZCOUI2MDBBRkM1OTYgLyogT3B0
aW9uR3JvdXBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjUwNjUsNiArMjUwODUsNyBA
QAogCQkJCTBGM0RENDRGMTJGNUVBMUIwMDBEOTE5MCAvKiBTaGFkb3dCbHVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDNUVCOEMzMEU4MjAzMUIwMEIyNTk2NSAvKiBTaGFkb3dEYXRhLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE3RjMzOEEzMTFDMEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBT
aGFkb3dSb290LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0Y0MEExOTg5Q0EwMDdGQjhD
NSAvKiBTaGFkb3dWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM5MzBEMDBBNURG
MDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuYyBpbiBTb3VyY2VzICovLAogCQkJCTFBNEE5NTREMEI0
RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTQx
OCw2ICsyNTQzOSw3IEBACiAJCQkJOTNGMUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExv
c2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZF
NSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDRjMz
MkUwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTFB
MzE2MkUxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTFDQUYzNDgyMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRP
YmplY3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MThBMzRDMTEwMjZDODMxMDAxQjY4OTYgLyog
V2ViU29ja2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMEQ0QTRFMTAzMTc3QTIwMDQ5RUE1
NCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU1MjAsMTIgKzI1
NTQyLDYgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3Nvckxp
YnhzbHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8q
IFhTTFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlD
MDBDMTMzNzkgLyogWFNTRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZEQTNFOTU5MTM0
QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRkRBM0U5NUIxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGREY2QkFGODEzNEE0Qzk4MDA4MjI5
MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJRkQwNkRGQTUxMzRBNERFRjAwNkY1RDdEIC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9k
ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFMUEzMTYyRTEzNEJDMzJEMDA3QzlBNEYgLyogV2Vi
TlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQjE4Mjc0OTMx
MzRDQTRDMTAwQjk4QzJEIC8qIENhbGxiYWNrRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggODZmM2JhMzBiZWQyZWQ5
NGEzYmI0YzFiMGYyYzYyN2MwYzA5MjBhNy4uNDBjNzk0MWIyYTY5NzI5OGY5M2RiMTcxOTBhNjYx
YjdhZGViMzE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAt
ODkzLDcgKzg5Myw3IEBAIGlubGluZSB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmluaXRGb3JTdHls
ZVJlc29sdmUoRWxlbWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVuCiB7CiAgICAgbV9jaGVja2Vy
Lm1fcHNldWRvU3R5bGUgPSBwc2V1ZG9JRDsKIAotICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5w
YXJlbnRPckhvc3ROb2RlKCkgOiAwOworICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnRO
b2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKSA6IDA7CiAKICAgICBpZiAocGFyZW50U3R5bGUpCiAg
ICAgICAgIG1fcGFyZW50U3R5bGUgPSBwYXJlbnRTdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmNwcAppbmRleCBlYTAzODQ4YWFhZmJjZDAwMGY2ZjA5MDFmZTQ1YzdkNmUyMWFkYmIz
Li41NjU5ZjllZDQ4NGY2ODVlZTYyZTc4MGZiM2RjYTI3MmIwOWQ5M2I5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBDb250YWluZXJO
b2RlOjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hp
bGQsIEV4Y2UKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0aW5n
Ii4KICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBv
ZiBzZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KLSAgICBBU1NFUlQocmVmQ291bnQoKSB8fCBwYXJl
bnROb2RlKCkpOworICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE9ySG9zdE5vZGUoKSk7
CiAKICAgICBlYyA9IDA7CiAKQEAgLTI0NCw3ICsyNDQsNyBAQCBib29sIENvbnRhaW5lck5vZGU6
OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwg
RXhjZQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgog
ICAgIC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNl
bmRpbmcgbXV0YXRpb24gZXZlbnRzLgotICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE5v
ZGUoKSk7CisgICAgQVNTRVJUKHJlZkNvdW50KCkgfHwgcGFyZW50T3JIb3N0Tm9kZSgpKTsKIAog
ICAgIGVjID0gMDsKIApAQCAtNDAxLDcgKzQwMSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVt
b3ZlQ2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIENo
ZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBp
dCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZl
bnRzLgotICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE5vZGUoKSk7CisgICAgQVNTRVJU
KHJlZkNvdW50KCkgfHwgcGFyZW50T3JIb3N0Tm9kZSgpKTsKIAogICAgIGVjID0gMDsKIApAQCAt
NTYxLDcgKzU2MSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0
cjxOb2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvCiB7CiAgICAgLy8gQ2hlY2sg
dGhhdCB0aGlzIG5vZGUgaXMgbm90ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNh
biBiZSBkZWxldGVkIGFzIGEgc2lkZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMu
Ci0gICAgQVNTRVJUKHJlZkNvdW50KCkgfHwgcGFyZW50Tm9kZSgpKTsKKyAgICBBU1NFUlQocmVm
Q291bnQoKSB8fCBwYXJlbnRPckhvc3ROb2RlKCkpOwogCiAgICAgZWMgPSAwOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKaW5kZXggYzljMzAyMDM3NzgxNzNhNGMwNzM1
YTMxN2ZlYTM0MTdiOGUzZGNhMS4uZTk4ZWY5ZTU4YTBjZmYyYjhmOGQwZjQyNDcwMGY5OWM2OTEx
NjI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtMzEsNyAr
MzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBEb2N1bWVudEZyYWdtZW50
OjpEb2N1bWVudEZyYWdtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK0RvY3VtZW50RnJhZ21lbnQ6
OkRvY3VtZW50RnJhZ21lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogQ29udGFpbmVyTm9k
ZShkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudEZyYWdtZW50LmgKaW5kZXggZDU4OGI0ZTdiMDU3ZDJiMzI4ZTQ4YmEwMWIzN2UxMTM3NTk2
OGExNC4uZjU2NzUzNmIyYjE0NzRmYjA0MTVjMGNiMTg2MzRmNmFmNDQ2Njc4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCkBAIC0zNiw5ICszNiwxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwYXJzZUhUTUwoY29uc3QgU3RyaW5nJiwgRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCk7
CiAgICAgYm9vbCBwYXJzZVhNTChjb25zdCBTdHJpbmcmLCBFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID0gRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2Vk
KTsKIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBEb2N1bWVudEZyYWdtZW50KERvY3VtZW50
Kik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IGU0ZDkwNzU4YjVkODEwYmY4ZTA0ZWZkNzFjZTUyNDBkNDQ1ODlhM2EuLjdkZDJhNTc2OWEzYTky
YmNiNjM1YTIyNDVkZGI2OTg2NDAxNGI3ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTU0
LDYgKzU0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lk
Z2V0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAj
aW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5o
IgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCkBAIC0xMDQ5LDcgKzEwNTAsNyBAQCB2b2lkIEVsZW1l
bnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKIHsKICAgICAvLyBSZWYgY3VycmVu
dFN0eWxlIGluIGNhc2UgaXQgd291bGQgb3RoZXJ3aXNlIGJlIGRlbGV0ZWQgd2hlbiBzZXRSZW5k
ZXJTdHlsZSgpIGlzIGNhbGxlZC4KICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1cnJlbnRTdHls
ZShyZW5kZXJTdHlsZSgpKTsKLSAgICBib29sIGhhc1BhcmVudFN0eWxlID0gcGFyZW50T3JIb3N0
Tm9kZSgpID8gcGFyZW50T3JIb3N0Tm9kZSgpLT5yZW5kZXJTdHlsZSgpIDogZmFsc2U7CisgICAg
Ym9vbCBoYXNQYXJlbnRTdHlsZSA9IHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpID8g
cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCktPnJlbmRlclN0eWxlKCkgOiBmYWxzZTsK
ICAgICBib29sIGhhc0RpcmVjdEFkamFjZW50UnVsZXMgPSBjdXJyZW50U3R5bGUgJiYgY3VycmVu
dFN0eWxlLT5jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7CiAKICAgICBp
ZiAoKGNoYW5nZSA+IE5vQ2hhbmdlIHx8IG5lZWRzU3R5bGVSZWNhbGMoKSkpIHsKQEAgLTExMzEs
NyArMTEzMiw3IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdl
KQogICAgIH0KICAgICAvLyBGSVhNRTogVGhpcyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcg
Y29tYmluYXRvcnMuIFdpbGwgYmUgbmVjZXNzYXJ5IGluIFhCTDIgd29ybGQuCiAgICAgaWYgKE5v
ZGUqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkgewotICAgICAgICBpZiAoY2hhbmdlID49IEluaGVy
aXQgfHwgc2hhZG93LT5pc1RleHROb2RlKCkgfHwgc2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNh
bGMoKSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVSZWNhbGMoKSkgeworICAgICAgICBpZiAoY2hhbmdl
ID49IEluaGVyaXQgfHwgc2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ct
Pm5lZWRzU3R5bGVSZWNhbGMoKSkgewogICAgICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsK
ICAgICAgICAgICAgIHNoYWRvdy0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKICAgICAgICAgfQpAQCAt
MTE0MSwyOCArMTE0MiwyNCBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdl
IGNoYW5nZSkKICAgICBjbGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwogfQogCi1Ob2RlKiBF
bGVtZW50OjpzaGFkb3dSb290KCkKK0NvbnRhaW5lck5vZGUqIEVsZW1lbnQ6OnNoYWRvd1Jvb3Qo
KSBjb25zdAogewogICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+bV9zaGFk
b3dSb290IDogMDsKIH0KIAotdm9pZCBFbGVtZW50OjpzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8
Tm9kZT4gbm9kZSkKK0NvbnRhaW5lck5vZGUqIEVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jvb3QoKQog
ewotICAgIC8vIEZJWE1FOiBCZWNhdXNlIHRvZGF5IHRoaXMgaXMgbmV2ZXIgY2FsbGVkIGZyb20g
c2NyaXB0IGRpcmVjdGx5LCB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5Ci0gICAgLy8gYWJvdXQgY29t
cHJvbWlzaW5nIERPTSB0cmVlIGludGVncml0eSAoZWcuIG5vZGUgYmVpbmcgYSBwYXJlbnQgb2Yg
dGhpcykuIEhvd2V2ZXIsCi0gICAgLy8gb25jZSB3ZSBpbXBsZW1lbnQgWEJMMiwgd2Ugd2lsbCBo
YXZlIHRvIGFkZCBpbnRlZ3JpdHkgY2hlY2tzIGhlcmUuCi0gICAgcmVtb3ZlU2hhZG93Um9vdCgp
OwotCi0gICAgUmVmUHRyPE5vZGU+IG5ld1Jvb3QgPSBub2RlOwotICAgIGlmICghbmV3Um9vdCkK
LSAgICAgICAgcmV0dXJuOworICAgIGlmIChDb250YWluZXJOb2RlKiBleGlzdGluZ1Jvb3QgPSBz
aGFkb3dSb290KCkpCisgICAgICAgIHJldHVybiBleGlzdGluZ1Jvb3Q7CiAKKyAgICBSZWZQdHI8
U2hhZG93Um9vdD4gbmV3Um9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAg
ICBlbnN1cmVSYXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3QgPSBuZXdSb290LmdldCgpOwogICAgIG5l
d1Jvb3QtPnNldFNoYWRvd0hvc3QodGhpcyk7CiAgICAgaWYgKGluRG9jdW1lbnQoKSkKICAgICAg
ICAgbmV3Um9vdC0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKLSAgICBpZiAoYXR0YWNoZWQoKSAm
JiAhbmV3Um9vdC0+YXR0YWNoZWQoKSkKKyAgICBpZiAoYXR0YWNoZWQoKSkKICAgICAgICAgbmV3
Um9vdC0+bGF6eUF0dGFjaCgpOworICAgIHJldHVybiBuZXdSb290LmdldCgpOwogfQogCiB2b2lk
IEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMDkwNWQ3
ZDc3NTU3NDI3Yjk2MTAzNDNiN2M1Y2UzODE2OTZkYzA4Yy4uZDRjOGFmNDJiNjJmMDY4NmUzYmFh
YjdhNjcwNzRmNGYxZGMzMDdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yMjksOCArMjI5LDEw
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgdm9pZCByZWNhbGNTdHlsZShT
dHlsZUNoYW5nZSA9IE5vQ2hhbmdlKTsKIAotICAgIE5vZGUqIHNoYWRvd1Jvb3QoKTsKLSAgICB2
b2lkIHNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxOb2RlPik7CisgICAgQ29udGFpbmVyTm9kZSog
c2hhZG93Um9vdCgpIGNvbnN0OworICAgIENvbnRhaW5lck5vZGUqIGVuc3VyZVNoYWRvd1Jvb3Qo
KTsKKyAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoKTsKKwogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwogCiAgICAgUmVuZGVyU3R5bGUqIGNv
bXB1dGVkU3R5bGUoUHNldWRvSWQgPSBOT1BTRVVETyk7CkBAIC00MDksNyArNDExLDYgQEAgcHJp
dmF0ZToKICAgICBFbGVtZW50UmFyZURhdGEqIGVuc3VyZVJhcmVEYXRhKCk7CiAKICAgICBTcGVs
bGNoZWNrQXR0cmlidXRlU3RhdGUgc3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlKCkgY29uc3Q7Ci0g
ICAgdm9pZCByZW1vdmVTaGFkb3dSb290KCk7CiAKIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQ
dHI8TmFtZWROb2RlTWFwPiBtX2F0dHJpYnV0ZU1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFy
ZURhdGEuaAppbmRleCA4MThhMmMyZjBmZjk4N2RjNWNkNjNhOTcyOTViZWM1YjgwZWQ0YTI1Li4x
NGNlZWYyYTFmZTI5NTJhNzA3ZDA1Nzc1NWI4Mjc5M2RiNjM2NzI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRSYXJlRGF0YS5oCkBAIC0zMCw2ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgU2hhZG93Um9vdDsKKwogY2xhc3MgRWxlbWVudFJhcmVEYXRhIDogcHVibGlj
IE5vZGVSYXJlRGF0YSB7CiBwdWJsaWM6CiAgICAgRWxlbWVudFJhcmVEYXRhKCk7CkBAIC00Miw3
ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIEludFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5n
OwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwotICAgIE5vZGUqIG1f
c2hhZG93Um9vdDsKKyAgICBTaGFkb3dSb290KiBtX3NoYWRvd1Jvb3Q7CiAKICAgICBPd25QdHI8
RGF0YXNldERPTVN0cmluZ01hcD4gbV9kYXRhc2V0RE9NU3RyaW5nTWFwOwogICAgIE93blB0cjxD
bGFzc0xpc3Q+IG1fY2xhc3NMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDE1Y2I4YThiNDhhMWYy
MTYzOTkxZjlkYjYxZmQ5NmE4YWE2NjNiNGQuLjFhNTMxMGY4ODZjYjNjMGI4OGE3ODRhZTY3MzA2
NzgwMDZmMjBlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTE0MDIsMTggKzE0MDIsMjUgQEAgTm9k
ZSAqTm9kZTo6bmV4dExlYWZOb2RlKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAorQ29udGFp
bmVyTm9kZSogTm9kZTo6cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgY29uc3QKK3sK
KyAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBwYXJlbnRPckhvc3ROb2RlKCk7CisgICAgcmV0
dXJuIHBhcmVudCAmJiBwYXJlbnQtPmlzU2hhZG93Qm91bmRhcnkoKSA/IHBhcmVudC0+c2hhZG93
SG9zdCgpIDogcGFyZW50OworfQorCiBSZW5kZXJPYmplY3QqIE5vZGU6OmNyZWF0ZVJlbmRlcmVy
QW5kU3R5bGUoKQogewogICAgIEFTU0VSVCghcmVuZGVyZXIoKSk7CiAgICAgQVNTRVJUKGRvY3Vt
ZW50KCktPnNob3VsZENyZWF0ZVJlbmRlcmVycygpKTsKIAotICAgIENvbnRhaW5lck5vZGUqIHBh
cmVudCA9IHBhcmVudE9ySG9zdE5vZGUoKTsKKyAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBw
YXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKICAgICBBU1NFUlQocGFyZW50KTsKKwog
ICAgIFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIgPSBwYXJlbnQtPnJlbmRlcmVyKCk7CiAK
ICAgICAvLyBGSVhNRTogSWdub3JpbmcgY2FuSGF2ZUNoaWxkcmVuKCkgaW4gYSBjYXNlIG9mIGlz
U2hhZG93Um9vdCgpIG1pZ2h0IGJlIHdyb25nLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI0MjMKLSAgICBpZiAoIXBhcmVudFJlbmRlcmVyIHx8
ICghcGFyZW50UmVuZGVyZXItPmNhbkhhdmVDaGlsZHJlbigpICYmICFpc1NoYWRvd1Jvb3QoKSkg
fHwgIXBhcmVudC0+Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcih0aGlzKSkKKyAgICBpZiAoIXBh
cmVudFJlbmRlcmVyIHx8ICghcGFyZW50UmVuZGVyZXItPmNhbkhhdmVDaGlsZHJlbigpICYmICEo
aXNTaGFkb3dSb290KCkgfHwgcGFyZW50Tm9kZSgpLT5pc1NoYWRvd0JvdW5kYXJ5KCkpKSB8fCAh
cGFyZW50LT5jaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKHRoaXMpKQogICAgICAgICByZXR1cm4g
MDsKIAogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBzdHlsZUZvclJlbmRlcmVyKCk7
CkBAIC0xNDY1LDcgKzE0NzIsNyBAQCB2b2lkIE5vZGU6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQo
KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOb3RlOiBBZGRpbmcgbmV3UmVuZGVyZXIgaW5z
dGVhZCBvZiByZW5kZXJlcigpLiByZW5kZXJlcigpIG1heSBiZSBhIGNoaWxkIG9mIG5ld1JlbmRl
cmVyLgotICAgIHBhcmVudE9ySG9zdE5vZGUoKS0+cmVuZGVyZXIoKS0+YWRkQ2hpbGQobmV3UmVu
ZGVyZXIsIG5leHRSZW5kZXJlcigpKTsKKyAgICBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5
bGUoKS0+cmVuZGVyZXIoKS0+YWRkQ2hpbGQobmV3UmVuZGVyZXIsIG5leHRSZW5kZXJlcigpKTsK
IH0KIAogUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTm9kZTo6c3R5bGVGb3JSZW5kZXJlcigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaAppbmRleCBjMjI1ZGJhYzhmZjg5MWRmOWNmZTI2NWVjMjZiODJkZTFjNGJiMTNiLi5j
NDkyYjRkNGIyOGY5YTVlOTcwZWQwMmE1NGE0MzE2NTc4ZDc4MmM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAg
LTIwMyw2ICsyMDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQ2hhcmFjdGVyRGF0
YU5vZGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNEb2N1bWVudE5vZGUo
KSBjb25zdDsKICAgICBib29sIGlzU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWco
SXNTaGFkb3dSb290RmxhZyk7IH0KKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiBhbGwg
c2hhZG93IHJvb3RzIGFyZSBTaGFkb3dSb290cy4KKyAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkb3dC
b3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgTm9kZSogc2hhZG93QW5jZXN0
b3JOb2RlKCk7CiAgICAgTm9kZSogc2hhZG93VHJlZVJvb3ROb2RlKCk7CiAgICAgYm9vbCBpc0lu
U2hhZG93VHJlZSgpOwpAQCAtNDQ0LDYgKzQ0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgYm9vbCBjaGls
ZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAg
dmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVy
U3R5bGUqKTsKKyAgICBDb250YWluZXJOb2RlKiBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5
bGUoKSBjb25zdDsKICAgICAKICAgICAvLyBXcmFwcGVyIGZvciBub2RlcyB0aGF0IGRvbid0IGhh
dmUgYSByZW5kZXJlciwgYnV0IHN0aWxsIGNhY2hlIHRoZSBzdHlsZSAobGlrZSBIVE1MT3B0aW9u
RWxlbWVudCkuCiAgICAgUmVuZGVyU3R5bGUqIHJlbmRlclN0eWxlKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWFmNTgwODQyMzI4NTAxZmI2MzViMWExOTQz
ZmY3N2I5ZTIzMzQxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTaGFkb3dSb290OjpT
aGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IERvY3VtZW50RnJhZ21lbnQoZG9j
dW1lbnQpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKK30KKwordm9pZCBTaGFkb3dSb290Ojpy
ZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCit7CisgICAgZm9yIChOb2RlKiBuID0gZmly
c3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgbi0+cmVjYWxjU3R5
bGUoY2hhbmdlKTsKKworICAgIGNsZWFyTmVlZHNTdHlsZVJlY2FsYygpOworICAgIGNsZWFyQ2hp
bGROZWVkc1N0eWxlUmVjYWxjKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjlmZmRkZmYzZjBhMjI5MWFjNDg2ZWExYmJhOTQzMzZiZDIzYTljMjIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC0wLDAgKzEsNTQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFNoYWRvd1Jvb3RfaAorI2RlZmluZSBTaGFkb3dSb290X2gKKworI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBE
b2N1bWVudDsKKworY2xhc3MgU2hhZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBjcmVhdGUoRG9jdW1l
bnQqKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1NoYWRvd0JvdW5kYXJ5KCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZWNhbGNTdHlsZShTdHlsZUNoYW5nZSA9IE5v
Q2hhbmdlKTsKKworcHJpdmF0ZToKKyAgICBTaGFkb3dSb290KERvY3VtZW50Kik7Cit9OworCitp
bmxpbmUgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhZG93Um9vdChkb2N1bWVu
dCkpOworfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MS2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggYjkwMzM1ZWM0MjkyNTcwNWU0YWUzOGE3NGQwNmFj
YWRhZTgyZDU4ZC4uMjljOWRlYmE3MGM4Zjg3MzUyMzRlYjI2ZDkxMWVhZDNhMDcwOGI5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25F
bGVtZW50LmgiCiAjaW5jbHVkZSAiU1NMS2V5R2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAKQEAgLTY3LDE1ICs2OCwxOCBAQCBpbmxpbmUgSFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXln
ZW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZQogICAgIEFTU0VS
VChoYXNUYWdOYW1lKGtleWdlblRhZykpOwogCiAgICAgLy8gQ3JlYXRlIGEgc2VsZWN0IGVsZW1l
bnQgd2l0aCBvbmUgb3B0aW9uIGVsZW1lbnQgZm9yIGVhY2gga2V5IHNpemUuCi0gICAgUmVmUHRy
PEhUTUxTZWxlY3RFbGVtZW50PiBzZWxlY3QgPSBLZXlnZW5TZWxlY3RFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIFZlY3RvcjxTdHJpbmc+IGtleXM7CiAgICAgZ2V0U3VwcG9ydGVkS2V5
U2l6ZXMoa2V5cyk7CisKKyAgICBSZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IHNlbGVjdCA9IEtl
eWdlblNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsgKytpKSB7CiAg
ICAgICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0aW9uID0gSFRNTE9wdGlvbkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCwgdGhpcy0+Zm9ybSgpKTsKLSAgICAgICAgc2VsZWN0LT5wYXJz
ZXJBZGRDaGlsZChvcHRpb24pOwotICAgICAgICBvcHRpb24tPnBhcnNlckFkZENoaWxkKFRleHQ6
OmNyZWF0ZShkb2N1bWVudCwga2V5c1tpXSkpOworICAgICAgICBzZWxlY3QtPmFwcGVuZENoaWxk
KG9wdGlvbiwgZWMpOworICAgICAgICBvcHRpb24tPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShk
b2N1bWVudCwga2V5c1tpXSksIGVjKTsKICAgICB9Ci0gICAgc2V0U2hhZG93Um9vdChzZWxlY3Qp
OworCisgICAgZW5zdXJlU2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChzZWxlY3QsIGVjKTsKIH0K
IAogUGFzc1JlZlB0cjxIVE1MS2V5Z2VuRWxlbWVudD4gSFRNTEtleWdlbkVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxG
b3JtRWxlbWVudCogZm9ybSkKQEAgLTg3LDcgKzkxLDcgQEAgdm9pZCBIVE1MS2V5Z2VuRWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogewogICAgIC8vIFJlZmxl
Y3QgZGlzYWJsZWQgYXR0cmlidXRlIG9uIHRoZSBzaGFkb3cgc2VsZWN0IGVsZW1lbnQKICAgICBp
ZiAoYXR0ci0+bmFtZSgpID09IGRpc2FibGVkQXR0cikKLSAgICAgICAgc2VsZWN0U2hhZG93KCkt
PnNldEF0dHJpYnV0ZShhdHRyLT5uYW1lKCksIGF0dHItPnZhbHVlKCkpOworICAgICAgICBzaGFk
b3dTZWxlY3QoKS0+c2V0QXR0cmlidXRlKGF0dHItPm5hbWUoKSwgYXR0ci0+dmFsdWUoKSk7CiAK
ICAgICBpZiAoYXR0ci0+bmFtZSgpID09IGNoYWxsZW5nZUF0dHIpCiAgICAgICAgIG1fY2hhbGxl
bmdlID0gYXR0ci0+dmFsdWUoKTsKQEAgLTEwMiw3ICsxMDYsNyBAQCBib29sIEhUTUxLZXlnZW5F
bGVtZW50OjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kZWRfdmFsdWVzLCBib29s
KQogICAgIC8vIE9ubHkgUlNBIGlzIHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUuCiAgICAgaWYgKCFt
X2tleVR5cGUuaXNOdWxsKCkgJiYgIWVxdWFsSWdub3JpbmdDYXNlKG1fa2V5VHlwZSwgInJzYSIp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgU3RyaW5nIHZhbHVlID0gc2lnbmVkUHVibGlj
S2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHNlbGVjdFNoYWRvdygpLT5zZWxlY3RlZEluZGV4KCksIG1f
Y2hhbGxlbmdlLCBkb2N1bWVudCgpLT5iYXNlVVJMKCkpOworICAgIFN0cmluZyB2YWx1ZSA9IHNp
Z25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyhzaGFkb3dTZWxlY3QoKS0+c2VsZWN0ZWRJ
bmRleCgpLCBtX2NoYWxsZW5nZSwgZG9jdW1lbnQoKS0+YmFzZVVSTCgpKTsKICAgICBpZiAodmFs
dWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBlbmNvZGVkX3ZhbHVlcy5h
cHBlbmREYXRhKG5hbWUoKSwgdmFsdWUudXRmOCgpKTsKQEAgLTExNywxMiArMTIxLDE0IEBAIGNv
bnN0IEF0b21pY1N0cmluZyYgSFRNTEtleWdlbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNv
bnN0CiAKIHZvaWQgSFRNTEtleWdlbkVsZW1lbnQ6OnJlc2V0KCkKIHsKLSAgICBzdGF0aWNfY2Fz
dDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4oc2VsZWN0U2hhZG93KCkpLT5yZXNldCgpOworICAg
IHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPihzaGFkb3dTZWxlY3QoKSktPnJl
c2V0KCk7CiB9CiAKLUhUTUxTZWxlY3RFbGVtZW50KiBIVE1MS2V5Z2VuRWxlbWVudDo6c2VsZWN0
U2hhZG93KCkKK0hUTUxTZWxlY3RFbGVtZW50KiBIVE1MS2V5Z2VuRWxlbWVudDo6c2hhZG93U2Vs
ZWN0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQq
PihzaGFkb3dSb290KCkpOworICAgIE5vZGUqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKTsKKyAgICBB
U1NFUlQoc2hhZG93KTsKKyAgICByZXR1cm4gc2hhZG93ID8gc3RhdGljX2Nhc3Q8SFRNTFNlbGVj
dEVsZW1lbnQqPihzaGFkb3ctPmZpcnN0Q2hpbGQoKSkgOiAwOwogfQogCiB9IC8vIG5hbWVzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oCmluZGV4IDAyMDAzZTgwZDJk
OGY4MWI3NjlhOTIxNDMwZGNmYTRkNmMwMzUzMjAuLjg4NzgyYzg4YzM3OTYxNjM5YmI4YzY3OTdh
ZTkxZDRlMDc0ODY3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdl
bkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmgK
QEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOwog
Ci0gICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdFNoYWRvdygpOworICAgIEhUTUxTZWxlY3RF
bGVtZW50KiBzaGFkb3dTZWxlY3QoKSBjb25zdDsKIAogICAgIEF0b21pY1N0cmluZyBtX2NoYWxs
ZW5nZTsKICAgICBBdG9taWNTdHJpbmcgbV9rZXlUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1ldGVyRWxlbWVudC5jcHAKaW5kZXggNzY4NzI4M2ViNzlkNThhMzgxNWE2YzI4Mzk3ZDRkOTk2
YWUzM2IyYS4uODhiMTYyMjFmMTU3YjRjNDM3MTFmOWU5YzZlMmFmY2RiMGMyMDUyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIk1ldGVyU2hhZG93RWxlbWVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlck1ldGVyLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
MjMwLDcgKzIzMSw3IEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJl
ZSgpCiAgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7
CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgYmFyLT5hcHBlbmRDaGlsZChtX3ZhbHVl
LCBlYyk7Ci0gICAgc2V0U2hhZG93Um9vdChiYXIpOworICAgIGVuc3VyZVNoYWRvd1Jvb3QoKS0+
YXBwZW5kQ2hpbGQoYmFyLCBlYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCBkZmI4ZDQ0NThlMDRmMDkwMTlk
NThjNjkwY2Q3ZGUwMDZhZGI5ZThiLi4zOWIxMjliNzZhMmNhMmU4Mjc4Nzk4MzU2YjY3ZGMyNWY2
YmNkMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVk
ZSAiUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIK
KyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzcsOSArMTM4LDkgQEAgdm9pZCBIVE1MUHJvZ3Jl
c3NFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBSZWZQdHI8UHJvZ3Jlc3NC
YXJFbGVtZW50PiBiYXIgPSBQcm9ncmVzc0JhckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsK
ICAgICBtX3ZhbHVlID0gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsK
LSAgICBFeGNlcHRpb25Db2RlIGUgPSAwOwotICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwg
ZSk7Ci0gICAgc2V0U2hhZG93Um9vdChiYXIpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwor
ICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwgZWMpOworICAgIGVuc3VyZVNoYWRvd1Jvb3Qo
KS0+YXBwZW5kQ2hpbGQoYmFyLCBlYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5jcHAKaW5kZXggZTcwOGEzNTYyOGYwMWU2ZTVkMzljYzZhZTA5MzMxMjkyNThi
NzQyNi4uYmEyNzQwODcwNmIwMjYwMGI4ZDMwNjYwYzFiNDQ3NzI0MTVjODU1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlJlbmRlck9i
amVjdC5oIgogI2luY2x1ZGUgIlJlc2V0SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiU2VhcmNoSW5w
dXRUeXBlLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlN1Ym1pdElucHV0
VHlwZS5oIgogI2luY2x1ZGUgIlRlbGVwaG9uZUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIlRleHRJ
bnB1dFR5cGUuaCIKQEAgLTM1OSw3ICszNjAsNyBAQCB2b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hh
ZG93U3VidHJlZSgpCiAKIHZvaWQgSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiB7
Ci0gICAgZWxlbWVudCgpLT5zZXRTaGFkb3dSb290KDApOworICAgIGVsZW1lbnQoKS0+cmVtb3Zl
U2hhZG93Um9vdCgpOwogfQogCiBkb3VibGUgSW5wdXRUeXBlOjpwYXJzZVRvRG91YmxlKGNvbnN0
IFN0cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwCmluZGV4IGY3ZWU2NzQ3NGQzMmI5NDY4OTk2NTI4YzUxYTFmYTc1YWJm
ZjdlZmUuLjI4YWFhNzc1ZjE5ZDUyMWIwZTI5MGMxNDM0MWEwZTdkNGMxNmQyYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVk
ZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1
ZGUgIlJlbmRlclNsaWRlci5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJT
bGlkZXJUaHVtYkVsZW1lbnQuaCIKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDxs
aW1pdHM+CkBAIC0xNDgsNyArMTQ5LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91
c2VEb3duRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAgICAgaWYgKGV2ZW50LT5idXR0b24oKSAh
PSBMZWZ0QnV0dG9uIHx8IGV2ZW50LT50YXJnZXQoKSAhPSBlbGVtZW50KCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmIChTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iID0gdG9TbGlkZXJUaHVt
YkVsZW1lbnQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpKQorICAgIGlmIChTbGlkZXJUaHVtYkVs
ZW1lbnQqIHRodW1iID0gc2hhZG93U2xpZGVyVGh1bWIoKSkKICAgICAgICAgdGh1bWItPmRyYWdG
cm9tKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpOwogfQogCkBAIC0xOTYsNyArMTk3LDggQEAg
dm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2
ZW50KQogCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAg
ICBlbGVtZW50KCktPnNldFNoYWRvd1Jvb3QoU2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGUoZWxl
bWVudCgpLT5kb2N1bWVudCgpKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgZWxl
bWVudCgpLT5lbnN1cmVTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKFNsaWRlclRodW1iRWxlbWVu
dDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSksIGVjKTsKIH0KIAogUmVuZGVyT2JqZWN0
KiBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5k
ZXJTdHlsZSopIGNvbnN0CkBAIC0yNDEsNyArMjQzLDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6
bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkKIAogdm9pZCBSYW5nZUlucHV0VHlwZTo6dmFsdWVD
aGFuZ2VkKCkKIHsKLSAgICB0b1NsaWRlclRodW1iRWxlbWVudChlbGVtZW50KCktPnNoYWRvd1Jv
b3QoKSktPnNldFBvc2l0aW9uRnJvbVZhbHVlKCk7CisgICAgc2hhZG93U2xpZGVyVGh1bWIoKS0+
c2V0UG9zaXRpb25Gcm9tVmFsdWUoKTsKIH0KIAogU3RyaW5nIFJhbmdlSW5wdXRUeXBlOjpmYWxs
YmFja1ZhbHVlKCkKQEAgLTI2NSw0ICsyNjcsMTAgQEAgYm9vbCBSYW5nZUlucHV0VHlwZTo6c2hv
dWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKQogICAgIHJldHVybiB0cnVlOwogfQogCitTbGlkZXJU
aHVtYkVsZW1lbnQqIFJhbmdlSW5wdXRUeXBlOjpzaGFkb3dTbGlkZXJUaHVtYigpIGNvbnN0Cit7
CisgICAgTm9kZSogc2hhZG93ID0gZWxlbWVudCgpLT5zaGFkb3dSb290KCk7CisgICAgcmV0dXJu
IHNoYWRvdyA/IHRvU2xpZGVyVGh1bWJFbGVtZW50KHNoYWRvdy0+Zmlyc3RDaGlsZCgpKSA6IDA7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5
cGUuaAppbmRleCAzNzUyOTg1MjAyYWQyMTQxY2EwOTc1NGU5OTdkYzliMGRiOGNjMDA3Li43NWU3
YTE3NDVjNmVlY2Q3MzU1ZjRkMDJjYjA3OGM4OGJlOWRiNDk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9S
YW5nZUlucHV0VHlwZS5oCkBAIC0zNSw2ICszNSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorY2xhc3MgU2xpZGVyVGh1bWJFbGVtZW50OworCiBjbGFzcyBSYW5nZUlucHV0VHlwZSA6IHB1
YmxpYyBJbnB1dFR5cGUgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPElucHV0VHlw
ZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqKTsKQEAgLTY3LDYgKzY5LDggQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFN0cmluZyBmYWxsYmFja1ZhbHVlKCk7CiAgICAgdmlydHVhbCBTdHJpbmcg
c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpOworCisgICAgU2xpZGVyVGh1bWJFbGVt
ZW50KiBzaGFkb3dTbGlkZXJUaHVtYigpIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCA1OWEx
NDY3OWUzYjA5YzhhNjAyMTc5Nzg5ODJlNTNlZGJjZGVlYjFhLi40ODkxMmQ3MzcxYzJlMDVlYzAx
OTQzMjU2NzllZjY0NWUyZjRiNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Zh
bGlkYXRpb25NZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25N
ZXNzYWdlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlNoYWRv
d1Jvb3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
IApAQCAtMTI5LDEyICsxMzAsNyBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpidWlsZEJ1YmJs
ZVRyZWUoVGltZXI8VmFsaWRhdGlvbk1lc3NhZ2U+KikKICAgICAvLyBjb250YWlucyBub24tYWJz
b2x1dGUgb3Igbm9uLWZpeGVkIHJlbmRlcmVycyBhcyBjaGlsZHJlbi4KICAgICBtX2J1YmJsZS0+
Z2V0SW5saW5lU3R5bGVEZWNsKCktPnNldFByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIENT
U1ZhbHVlQWJzb2x1dGUpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIC8vIEZJWE1F
OiBXZSBuZWVkIGEgd2F5IHRvIGhvc3QgbXVsdGlwbGUgc2hhZG93IHJvb3RzIGluIGEgc2luZ2xl
IG5vZGUsIG9yCi0gICAgLy8gdG8gaW5oZXJpdCBhbiBleGlzdGluZyBzaGFkb3cgdHJlZS4KLSAg
ICBpZiAoaG9zdC0+c2hhZG93Um9vdCgpKQotICAgICAgICBob3N0LT5zaGFkb3dSb290KCktPmFw
cGVuZENoaWxkKG1fYnViYmxlLmdldCgpLCBlYyk7Ci0gICAgZWxzZQotICAgICAgICBob3N0LT5z
ZXRTaGFkb3dSb290KG1fYnViYmxlKTsKKyAgICBob3N0LT5lbnN1cmVTaGFkb3dSb290KCktPmFw
cGVuZENoaWxkKG1fYnViYmxlLmdldCgpLCBlYyk7CiAKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+
IGNsaXBwZXIgPSBFbGVtZW50V2l0aFBzZXVkb0lkOjpjcmVhdGUoZG9jLCAiLXdlYmtpdC12YWxp
ZGF0aW9uLWJ1YmJsZS1hcnJvdy1jbGlwcGVyIik7CiAgICAgY2xpcHBlci0+YXBwZW5kQ2hpbGQo
RWxlbWVudFdpdGhQc2V1ZG9JZDo6Y3JlYXRlKGRvYywgIi13ZWJraXQtdmFsaWRhdGlvbi1idWJi
bGUtYXJyb3ciKSwgZWMpOwpAQCAtMTYxLDEyICsxNTcsOCBAQCB2b2lkIFZhbGlkYXRpb25NZXNz
YWdlOjpkZWxldGVCdWJibGVUcmVlKFRpbWVyPFZhbGlkYXRpb25NZXNzYWdlPiopCiAgICAgaWYg
KG1fYnViYmxlKSB7CiAgICAgICAgIG1fYnViYmxlTWVzc2FnZSA9IDA7CiAgICAgICAgIEhUTUxF
bGVtZW50KiBob3N0ID0gdG9IVE1MRWxlbWVudChtX2VsZW1lbnQpOwotICAgICAgICBpZiAobV9i
dWJibGUtPmlzU2hhZG93Um9vdCgpKQotICAgICAgICAgICAgaG9zdC0+c2V0U2hhZG93Um9vdCgw
KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwotICAgICAg
ICAgICAgaG9zdC0+c2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQoKSwgZWMp
OwotICAgICAgICB9CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAgICAgIGhvc3QtPnNo
YWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0KCksIGVjKTsKICAgICAgICAgbV9i
dWJibGUgPSAwOwogICAgIH0KICAgICBtX21lc3NhZ2UgPSBTdHJpbmcoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmluZGV4IDYzNTMy
NTkzMzIyMTJkZjA3YWUxZjc4YmU4NzQwYmQ0MjkzNmI3ZmIuLjhhMDZjYjMzZmI1Y2JmY2EwMGZm
YzhhZTZkZmVmNTRkOTFjNzRkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgU2xpZGVy
VGh1bWJFbGVtZW50OjpkcmFnRnJvbShjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAKIHZvaWQgU2xp
ZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb21Qb2ludChjb25zdCBJbnRQb2ludCYgcG9p
bnQpCiB7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5w
dXRFbGVtZW50Kj4oc2hhZG93SG9zdCgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9
IGhvc3RJbnB1dCgpOwogICAgIEFTU0VSVChpbnB1dCk7CiAKICAgICBpZiAoIWlucHV0LT5yZW5k
ZXJlcigpIHx8ICFyZW5kZXJlcigpKQpAQCAtMTk4LDYgKzE5OCwxMiBAQCB2b2lkIFNsaWRlclRo
dW1iRWxlbWVudDo6ZGV0YWNoKCkKICAgICBIVE1MRGl2RWxlbWVudDo6ZGV0YWNoKCk7CiB9CiAK
K0hUTUxJbnB1dEVsZW1lbnQqIFNsaWRlclRodW1iRWxlbWVudDo6aG9zdElucHV0KCkKK3sKKyAg
ICBBU1NFUlQocGFyZW50Tm9kZSgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0
RWxlbWVudCo+KHBhcmVudE5vZGUoKS0+c2hhZG93SG9zdCgpKTsKK30KKwogY29uc3QgQXRvbWlj
U3RyaW5nJiBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2xpZGVyVGh1bWIsICgiLXdlYmtp
dC1zbGlkZXItdGh1bWIiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5oCmluZGV4IDk0MTRhYzQ4YTY5MWUwOGFhY2NkNDI4NTcxYmI1ZWFmYTNh
OWFiZDkuLjJmYTYwY2I1ZTRiOTAwZGExYjRkY2I0MmU4NmRhNGJjY2M1MzBkNTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC00MSw2
ICs0MSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxFbGVtZW50OworY2xh
c3MgSFRNTElucHV0RWxlbWVudDsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRmxvYXRQb2ludDsKIApA
QCAtNjIsNiArNjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnREcmFnZ2luZygpOwogICAg
IHZvaWQgc3RvcERyYWdnaW5nKCk7CiAgICAgdm9pZCBzZXRQb3NpdGlvbkZyb21Qb2ludChjb25z
dCBJbnRQb2ludCYpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGhvc3RJbnB1dCgpOwogCiAgICAg
RmxvYXRQb2ludCBtX29mZnNldFRvVGh1bWI7CiAgICAgYm9vbCBtX2luRHJhZ01vZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRl
eCA0OWM0NTc4NGFhNzcyOTE0NDcxMjI2YmU1Mzk3ZDc4ZTRhY2IyODVlLi5iOGFkM2QzODQyMDcy
ZmQxM2RiZjc4M2U3ODgyMzA5ZjcxZDYwODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lk
IE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6YXR0YWNoKCkKICAgICAgICAgcGFyZW50Tm9kZSgp
LT5yZW5kZXJlcigpLT5hZGRDaGlsZChyZW5kZXJlciwgc2libGluZyA/IHNpYmxpbmctPnJlbmRl
cmVyKCkgOiAwKTsKICAgICB9ICAKICAgICBDb250YWluZXJOb2RlOjphdHRhY2goKTsKLSAgICAv
LyBGSVhNRTogQ3VycmVudGx5LCBNZWlkYUNvbnRyb2xJbnB1dCBjaXJjdW12ZW50cyB0aGUgbm9y
bWFsIGF0dGFjaG1lbnQKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5LCBNZWRpYUNvbnRyb2xJbnB1
dCBjaXJjdW12ZW50cyB0aGUgbm9ybWFsIGF0dGFjaG1lbnQKICAgICAvLyBhbmQgc3R5bGUgcmVj
YWxjIGN5Y2xlIGFuZCB0aHVzIHdlIG5lZWQgdG8gYWRkIGV4dHJhIGxvZ2ljIHRvIGJlIGF3YXJl
IG9mCiAgICAgLy8gdGhlIHNoYWRvdyBET00uIFJlbW92ZSB0aGlzIG9uY2UgYWxsIG1lZGlhIGNv
bnRyb2xzIGFyZSB0cmFuc2l0aW9uZWQgdG8gdXNlIHRoZSByZWd1bGFyCiAgICAgLy8gc3R5bGUg
Y2FsY3VsYXRpb24uCkBAIC00ODEsNyArNDgxLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xJbnB1dEVs
ZW1lbnQ6OnVwZGF0ZVN0eWxlKCkKICAgICBlbHNlIGlmIChyZW5kZXJlcigpKQogICAgICAgICBy
ZW5kZXJlcigpLT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7CiAKLSAgICAvLyBGSVhNRTogQ3VycmVu
dGx5LCBNZWlkYUNvbnRyb2xJbnB1dCBjaXJjdW12ZW50cyB0aGUgbm9ybWFsIGF0dGFjaG1lbnQK
KyAgICAvLyBGSVhNRTogQ3VycmVudGx5LCBNZWRpYUNvbnRyb2xJbnB1dCBjaXJjdW12ZW50cyB0
aGUgbm9ybWFsIGF0dGFjaG1lbnQKICAgICAvLyBhbmQgc3R5bGUgcmVjYWxjIGN5Y2xlIGFuZCB0
aHVzIHdlIG5lZWQgdG8gYWRkIGV4dHJhIGxvZ2ljIHRvIGJlIGF3YXJlIG9mCiAgICAgLy8gdGhl
IHNoYWRvdyBET00uIFJlbW92ZSB0aGlzIG9uY2UgYWxsIG1lZGlhIGNvbnRyb2xzIGFyZSB0cmFu
c2l0aW9uZWQgdG8gdXNlCiAgICAgLy8gdGhlIG5ldyBzaGFkb3cgRE9NLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCAxNjYxYjdhMmM1NTY3OTdmMjRiNTU3
NjFhZjIzYmE5ZTY2NTBkYTdkLi5hZDVhYjFhZGZiZTg0OGRmOWUyZjJiNjE5NmQzYmIyOTQyNjhk
YTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcApAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJNZWRp
YUNvbnRyb2xFbGVtZW50cy5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJO
b2RlLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5o
IgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTEwMSw3ICsxMDIsNyBAQCB2b2lkIFJlbmRl
clNsaWRlcjo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQogCiBJbnRSZWN0IFJlbmRl
clNsaWRlcjo6dGh1bWJSZWN0KCkKIHsKLSAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iRWxl
bWVudCA9IHNsaWRlclRodW1iRWxlbWVudCgpOworICAgIFNsaWRlclRodW1iRWxlbWVudCogdGh1
bWJFbGVtZW50ID0gc2hhZG93U2xpZGVyVGh1bWIoKTsKICAgICBpZiAoIXRodW1iRWxlbWVudCkK
ICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKIApAQCAtMTI4LDcgKzEyOSw3IEBAIHZvaWQgUmVu
ZGVyU2xpZGVyOjpsYXlvdXQoKQogewogICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKIAotICAg
IFNsaWRlclRodW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJFbGVtZW50KCk7
CisgICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1lbnQgPSBzaGFkb3dTbGlkZXJUaHVt
YigpOwogICAgIFJlbmRlckJveCogdGh1bWIgPSB0aHVtYkVsZW1lbnQgPyB0b1JlbmRlckJveCh0
aHVtYkVsZW1lbnQtPnJlbmRlcmVyKCkpIDogMDsKIAogICAgIEludFNpemUgYmFzZVNpemUoYm9y
ZGVyQW5kUGFkZGluZ1dpZHRoKCksIGJvcmRlckFuZFBhZGRpbmdIZWlnaHQoKSk7CkBAIC0xNzYs
MTQgKzE3NywxNSBAQCB2b2lkIFJlbmRlclNsaWRlcjo6bGF5b3V0KCkKICAgICBzZXROZWVkc0xh
eW91dChmYWxzZSk7CiB9CiAKLVNsaWRlclRodW1iRWxlbWVudCogUmVuZGVyU2xpZGVyOjpzbGlk
ZXJUaHVtYkVsZW1lbnQoKSBjb25zdAorU2xpZGVyVGh1bWJFbGVtZW50KiBSZW5kZXJTbGlkZXI6
OnNoYWRvd1NsaWRlclRodW1iKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdG9TbGlkZXJUaHVtYkVs
ZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSktPnNoYWRvd1Jvb3QoKSk7CisgICAg
Tm9kZSogc2hhZG93ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSktPnNoYWRvd1Jvb3Qo
KTsKKyAgICByZXR1cm4gc2hhZG93ID8gdG9TbGlkZXJUaHVtYkVsZW1lbnQoc2hhZG93LT5maXJz
dENoaWxkKCkpIDogMDsKIH0KIAogYm9vbCBSZW5kZXJTbGlkZXI6OmluRHJhZ01vZGUoKSBjb25z
dAogewotICAgIFNsaWRlclRodW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJF
bGVtZW50KCk7CisgICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1lbnQgPSBzaGFkb3dT
bGlkZXJUaHVtYigpOwogICAgIHJldHVybiB0aHVtYkVsZW1lbnQgJiYgdGh1bWJFbGVtZW50LT5p
bkRyYWdNb2RlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTbGlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaApp
bmRleCAwMTYyYjcxMDdiYWQ1ZWU2YzUzMmQ1NTliY2U1NTQ0MTBjOTBlMTE3Li40ZTE3ZjMwZDhh
ODExZDE3ZDNlMjg4NDdmMjdmYjI5ZWIzNjVlNTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNsaWRlci5oCkBAIC00Niw4ICs0Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwogCiAgICAgICAgIC8vIEZJWE1FOiBFdmVudHVh
bGx5LCB0aGUgbG9naWMgb2YgbWFuaXB1bGF0aW5nIHNsaWRlciB0aHVtYiBzaG91bGQgbW92ZSB0
bwotICAgICAgICAvLyBTbGlkZXJUaHVtYkVsZW1lbnQgYW5kIGFjY2Vzc2luZyBzbGlkZXJUaHVt
YkVsZW1lbnQgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnkgaW4gdGhpcyBjbGFzcy4KLSAgICAgICAg
U2xpZGVyVGh1bWJFbGVtZW50KiBzbGlkZXJUaHVtYkVsZW1lbnQoKSBjb25zdDsKKyAgICAgICAg
Ly8gU2xpZGVyVGh1bWJFbGVtZW50IGFuZCBhY2Nlc3Npbmcgc2hhZG93U2xpZGVyVGh1bWIgc2hv
dWxkIG5vdCBiZSBuZWNlc3NhcnkgaW4gdGhpcyBjbGFzcy4KKyAgICAgICAgU2xpZGVyVGh1bWJF
bGVtZW50KiBzaGFkb3dTbGlkZXJUaHVtYigpIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgYm9v
bCByZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAgICAgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88706</attachid>
            <date>2011-04-07 14:52:01 -0700</date>
            <delta_ts>2011-04-07 15:04:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57813-20110407145200.patch</filename>
            <type>text/plain</type>
            <size>57511</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyMTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwZmYyZTQ3M2MwN2Y5ODk5YjM1MDNh
ZDMzYTZlYjc3Yjg2MmNiZWJmLi5jNWYwNWQ2OGEyZDYzMzFmYmZiZTI4YzE5Yzc0MDkyNzU0ZTJm
M2FhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQtMDcgIERvbWluaWMgQ29vbmV5ICA8
ZG9taW5pY2NAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBMZXQgc2hhZG93IERPTSBoYXZlIGEgbGlzdCBvZiBub2RlcyBhdCB0aGUg
dG9wIGxldmVsIG9mIGEgc2hhZG93LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTc4MTMKKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxLZXlnZW5FbGVt
ZW50L2tleWdlbi1leHBlY3RlZC50eHQ6IHNoYWRvdyBET00gY2hhbmdlZAorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sOiBhZGRlZCBhc3NlcnRpb24gb24g
c2hhZG93CisKIDIwMTEtMDQtMDcgIFN0ZXZlIExhY2V5ICA8c2psQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTEtleWdlbkVsZW1lbnQva2V5Z2VuLWV4cGVjdGVkLnR4dAppbmRl
eCA3NDVmMDE2N2Y2MzNiYmI1NjE3MDQxYWY1NzA5OTJiMWRjOTJiNTkzLi5hOGIyZWU1OTQzMmNk
ZmEwODIwNjZmMjA0NDVmNGQxZWE2YTQwMGMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi1leHBlY3RlZC50eHQKQEAgLTIs
OCArMiw5IEBACiBUaGlzIHRlc3RzIHRoZSBrZXlnZW4gZWxlbWVudC4KIAogUEFTUyBrZXlnZW4u
b3B0aW9ucyBpcyB1bmRlZmluZWQKLVBBU1Mgc2hhZG93LnRhZ05hbWUgaXMgIlNFTEVDVCIKLVBB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChzaGFkb3cpIGlzIG51bGwKK1BBU1Mg
c2hhZG93LmZpcnN0Q2hpbGQudGFnTmFtZSBpcyAiU0VMRUNUIgorUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zaGFkb3dSb290KHNoYWRvdykgaXMgdW5kZWZpbmVkCitQQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLnNoYWRvd1Jvb3Qoc2hhZG93LmZpcnN0Q2hpbGQpIGlzIG51bGwKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTEtleWdlbkVsZW1lbnQva2V5Z2VuLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4uaHRtbAppbmRleCBlZDljZGNh
Y2VmZWZmZjM5ZWMyZGNhMjQ4MzI3YzQ3ZTBiYjk0MThjLi5jYjg4MzE2MTVlNTY5ZWQ4MjZkZjY3
OWVlODE0Mzk2N2UzODlhYTVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
S2V5Z2VuRWxlbWVudC9rZXlnZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
S2V5Z2VuRWxlbWVudC9rZXlnZW4uaHRtbApAQCAtMTUsOCArMTUsOSBAQCBzaG91bGRCZSgna2V5
Z2VuLm9wdGlvbnMnLCAndW5kZWZpbmVkJyk7ICAvLyBrZXlnZW4gaXMgbm90IGEgc2VsZWN0CiAK
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgdmFyIHNoYWRvdyA9IGxheW91
dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3Qoa2V5Z2VuKTsKLSAgc2hvdWxkQmUoJ3NoYWRvdy50
YWdOYW1lJywgJyJTRUxFQ1QiJyk7Ci0gIHNob3VsZEJlKCdsYXlvdXRUZXN0Q29udHJvbGxlci5z
aGFkb3dSb290KHNoYWRvdyknLCAnbnVsbCcpOworICBzaG91bGRCZSgnc2hhZG93LmZpcnN0Q2hp
bGQudGFnTmFtZScsICciU0VMRUNUIicpOworICBzaG91bGRCZSgnbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2hhZG93Um9vdChzaGFkb3cpJywgJ3VuZGVmaW5lZCcpOworICBzaG91bGRCZSgnbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChzaGFkb3cuZmlyc3RDaGlsZCknLCAnbnVsbCcpOwog
fQogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0FuZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDkyODgx
Nzc5M2FkNDAzNWExMzYzN2FmMjcxZjZiNmVjMGZhZGNjZDQuLmVkNjNlMmJjN2I5ODcwNTJkNDA3
MjlkODAyNzNkNTNkMTY5MGZiODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtMTc1LDYgKzE3NSw3IEBAIExP
Q0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCWRvbS9TY3JpcHRSdW5uZXIu
Y3BwIFwKIAlkb20vU2VsZWN0RWxlbWVudC5jcHAgXAogCWRvbS9TZWxlY3Rvck5vZGVMaXN0LmNw
cCBcCisJZG9tL1NoYWRvd1Jvb3QuY3BwIFwKIAlkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXAog
CWRvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIFwKIAlkb20vU3RhdGljTm9kZUxpc3QuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTAwYTc5MjIzNWM1YzI1ZTM0NDA0OTliNDMzMDZi
NmY3ZmFkOGVhMy4uYjUxODBjOWRiMTkwMGY4NWM2N2ZmYTljOTVjMTI3ZjAwMjczY2NjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTYwMyw2ICs2MDMsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgZG9tL1NjcmlwdFJ1bm5lci5jcHAKICAgICBkb20vU2VsZWN0RWxlbWVudC5jcHAKICAg
ICBkb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAKKyAgICBkb20vU2hhZG93Um9vdC5jcHAKICAgICBk
b20vU3BhY2VTcGxpdFN0cmluZy5jcHAKICAgICBkb20vU3RhdGljSGFzaFNldE5vZGVMaXN0LmNw
cAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlM2ViZTg1NWIxMzRj
ZGIwZGMxYjkyMTBhNjI0NDUwMmRkY2VmNDBjLi5iNjJmODczZmM4NmUxZTgyNjE5NDY0MDIyMjlm
MDQ4OWMwMmEwYTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTAgQEAKKzIwMTEtMDQtMDYgIERv
bWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMZXQgc2hhZG93IERPTSBoYXZlIGEgbGlzdCBv
ZiBub2RlcyBhdCB0aGUgdG9wIGxldmVsIG9mIGEgc2hhZG93LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc4MTMKKworICAgICAgICBBZGRzIFNoYWRv
d1Jvb3QsIGEgbGlzdCBvZiBub2RlcywgdG8gYmUgYSBwYXJlbnQgZm9yIHRvcC1sZXZlbAorICAg
ICAgICBzaGFkb3cgY2hpbGRyZW4uIEZvcndhcmRzIHJlbmRlcmluZyB0aHJvdWdoIHRoZSByb290
IGFuZCBpbnRvIHRoZQorICAgICAgICBob3N0J3MgcmVuZGVyZXIuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyB0ZXN0cyBvZiBlbGVtZW50cyB0aGF0IHVzZSB0aGlzIHN0eWxlIG9mIHNo
YWRvdy4KKworICAgICAgICAqIEFuZHJvaWQubWs6IGFkZCBTaGFkb3dSb290LmgvY3BwCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAg
ICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9y
Ojppbml0Rm9yU3R5bGVSZXNvbHZlKTogcHJveHkgc3R5bGUgdG8gaG9zdAorICAgICAgICAqIGRv
bS9Db250YWluZXJOb2RlLmNwcDogcGFyZW50IG5vZGVzIHRoYXQgYXJlIHNoYWRvdyByb290cyBh
cmUgYWxpdmUKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudEZy
YWdtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQ6OkRvY3VtZW50
RnJhZ21lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudEZyYWdtZW50Lmg6CisgICAgICAgICog
ZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUp
OiBsb29rIHRocm91Z2ggU2hhZG93Um9vdHMgZm9yIGhvc3QncyBzdHlsZQorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudDo6c2hhZG93Um9vdCk6IHNob3VsZCBiZSBjb25zdAorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdCk6IHNpbXBsZXIgdGhhbiBzZXRTaGFkb3dS
b290CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVE
YXRhLmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKTogaW5kaXJlY3Rpb24gc28KKyAgICAgICAg
ICBTaGFkb3dSb290IGNhbiBmb3J3YXJkIHRvIHRoZSBob3N0J3MgcmVuZGVyZXIKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OmNyZWF0ZVJlbmRlcmVyQW5kU3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCk6CisgICAgICAgICogZG9tL05vZGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmlzU2hhZG93Qm91bmRhcnkpOiB0ZW1wb3JhcnksIHRv
IGRpZmZlcmVudGlhdGUKKyAgICAgICAgICBvbGQtIGFuZCBuZXctc3R5bGUsIHVudGlsIGFsbCBy
b290cyBhcmUgU2hhZG93Um9vdCBpbnN0YW5jZXMKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpyZWNhbGNTdHlsZSk6IGZvcndhcmQgcmVjYWxj
IHRvIGNoaWxkcmVuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dSb290Ojppc1NoYWRvd0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Jvb3Q6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2VuRWxlbWVu
dC5jcHA6IHVzZSBlbnN1cmVTaGFkb3dSb290CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2Vu
RWxlbWVudDo6SFRNTEtleWdlbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdl
bkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxL
ZXlnZW5FbGVtZW50OjphcHBlbmRGb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5
Z2VuRWxlbWVudDo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6
OnNoYWRvd1NlbGVjdCk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHA6IHVzZSBlbnN1cmVTaGFkb3dSb290Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToK
KyAgICAgICAgKiBodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwOiB1c2UgZW5zdXJlU2hhZG93
Um9vdAorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOiB1c2UgZW5zdXJlU2hhZG93
Um9vdAorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSk6
CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6IHVzZSBlbnN1cmVTaGFkb3dSb290
CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VEb3duRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OnZhbHVlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6c2hhZG93U2xpZGVyVGh1bWIpOgorICAgICAg
ICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1ZhbGlkYXRpb25NZXNz
YWdlLmNwcDogdXNlIGVuc3VyZVNoYWRvd1Jvb3QKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRp
b25NZXNzYWdlOjpidWlsZEJ1YmJsZVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlv
bk1lc3NhZ2U6OmRlbGV0ZUJ1YmJsZVRyZWUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6
OnNldFBvc2l0aW9uRnJvbVBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxl
bWVudDo6aG9zdElucHV0KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1l
bnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOiB1c2Ug
ZW5zdXJlU2hhZG93Um9vdAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sSW5wdXRFbGVt
ZW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sSW5wdXRFbGVtZW50
Ojp1cGRhdGVTdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6IHVz
ZSBlbnN1cmVTaGFkb3dSb290CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OnRodW1i
UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmxheW91dCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OnNoYWRvd1NsaWRlclRodW1iKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNsaWRlcjo6aW5EcmFnTW9kZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5oOgorCiAyMDExLTA0LTA3ICBTZXJnZXkgR2xhenVub3YgIDxzZXJnLmdsYXp1
bm92QGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCmluZGV4IGVlNzBhNGZiYTFkMTQ4NDM1YWU2YzI2ZWFlZjcxMjg5NGEy
MDVlYTEuLjFkMDUwMzAyMDA1Y2ExZTYzMmJiNWE2YWU0MGFiMWJlNGMyZmRlNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCkBAIC0xMzMxLDYgKzEzMzEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yTm9k
ZUxpc3QuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxp
dFN0cmluZy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KaW5kZXggOGQzMTQ2YWJkNGQ1MTRkMTYxMWI2MDhhZTQ1OTk1NGZmMGJkYjllOC4u
MWU2MmE1MWUyZjY0ZjVkMDk5NjUxN2JmYjcxNDY1NDdhNmVmYzY1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTgwMCw3ICs4MDAsNiBAQCBfX1pON1dlYkNvcmU2V2lkZ2V0RDJFdgogX19aTjdX
ZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlN0NvbnNvbGUyMXNob3Vs
ZFByaW50RXhjZXB0aW9uc0V2CiBfX1pON1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJpbnRF
eGNlcHRpb25zRWIKLV9fWk43V2ViQ29yZTdFbGVtZW50MTBzaGFkb3dSb290RXYKIF9fWk43V2Vi
Q29yZTdJbnRSZWN0NXNjYWxlRWYKIF9fWk43V2ViQ29yZTdJbnRSZWN0NXVuaXRlRVJLUzBfCiBf
X1pON1dlYkNvcmU3SW50UmVjdDlpbnRlcnNlY3RFUktTMF8KQEAgLTEyNTIsNiArMTI1MSw3IEBA
IF9fWk5LN1dlYkNvcmU2V2lkZ2V0MjVjb252ZXJ0VG9Db250YWluaW5nV2luZG93RVJLTlNfN0lu
dFJlY3RFCiBfX1pOSzdXZWJDb3JlNldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VS
S05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNvcmU2V2lkZ2V0OWZyYW1lUmVjdEV2CiBfX1pOSzdX
ZWJDb3JlN0VsZW1lbnQxMHNjcmVlblJlY3RFdgorX19aTks3V2ViQ29yZTdFbGVtZW50MTBzaGFk
b3dSb290RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDEyZ2V0QXR0cmlidXRlRVJLTlNfMTNRdWFs
aWZpZWROYW1lRQogX19aTks3V2ViQ29yZTdFbGVtZW50MTlib3VuZHNJbldpbmRvd1NwYWNlRXYK
IF9fWk5LN1dlYkNvcmU3RWxlbWVudDlpbm5lclRleHRFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGJh
ZDMxMTVlZjlhZWNjYmE4NDJhODFiYjhmYjc2ZTk1YTZmMTA2MTcuLmY0ODRjMWUzOTRkMGY5YWQ5
NTI5YTE1ZWRhZmM4Yzc0ZDYxNjc5OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU0NSw2ICs1NDUs
NyBAQAogICAgICAgICAgICAgJ2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oJywKICAgICAg
ICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKICAgICAgICAgICAgICdkb20v
U2NyaXB0UnVubmVyLmgnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAogICAgICAg
ICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZWRF
bGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9UZXh0LmgnLApAQCAtMjUyMiw2ICsyNTIzLDgg
QEAKICAgICAgICAgICAgICdkb20vU2VsZWN0RWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20v
U2VsZWN0b3JOb2RlTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TZWxlY3Rvck5vZGVMaXN0
LmgnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmNwcCcsCisgICAgICAgICAgICAnZG9t
L1NoYWRvd1Jvb3QuaCcsCiAgICAgICAgICAgICAnZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwJywK
ICAgICAgICAgICAgICdkb20vU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCcsCiAgICAgICAgICAg
ICAnZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZDQyMjFm
ZjlkZmQzYTk4NGEwZWRkOTYxNDI3NzliNzBkOGZjN2MwZS4uYzEyMjk3NmE3NjY0NDIyNTMzMDdi
N2U4ZTBlODA5ODhkZDE3Y2ZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTUzNCw2ICs1MzQsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBkb20vU2NyaXB0UnVubmVyLmNwcCBcCiAgICAgZG9tL1NlbGVjdEVs
ZW1lbnQuY3BwIFwKICAgICBkb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAgXAorICAgIGRvbS9TaGFk
b3dSb290LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKICAgICBkb20vU3Rh
dGljTm9kZUxpc3QuY3BwIFwKICAgICBkb20vU3R5bGVkRWxlbWVudC5jcHAgXApAQCAtMTQ5Nyw2
ICsxNDk4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCBcCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuaCBcCiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3Qu
aCBcCisgICAgZG9tL1NoYWRvd1Jvb3QuaCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBc
CiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmggXAogICAgIGRvbS9TdHlsZWRFbGVtZW50LmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxMzYx
NDg1ZDlmMzYyOTQ2NWQxYmQwY2Y2YjlkNWI0MjgwZTU5NDM3Li5kMDdhZGZhMjNkMjU2MTI0Nzdj
MGJlMjkwMDQzOGIzNmE2ODBjOTMxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagpAQCAtNDY0NDIsNiArNDY0NDIsNjIgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd1Jvb3QuY3BwIgor
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
Q29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxkb21cU2hhZG93Um9vdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxkb21cU3BhY2VTcGxpdFN0cmluZy5jcHAiCiAJCQkJPgogCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDEwOGQzYzYzOGNhN2Y1ZDY0OTJhYzYxZGYzOWMyODllZDkwZWY4
NjUuLjc5YWI4ZDU1NTQzZmZkNjllZmYwZjRlOGU0OTlkM2M3ZDFmZDRiMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxOTYs
NiArMzE5Niw4IEBACiAJCUE2MjJBOEZDMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJp
dHlCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE2MjJBOEY2MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLzsg
fTsKIAkJQTYyMkE4RkQxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY3MTIy
QzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi87IH07CiAJCUE2MjJBOEZG
MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjkxMjJDNDRBNjAwQTc4NUIzIC8qIEdl
bmVyaWNCaW5kaW5nLmggKi87IH07CisJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFk
b3dSb290LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLzsgfTsKKwkJQTZE
MTY5NjQxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBT
aGFkb3dSb290LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTcxNTFCRDgxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1MUJENzEyRjE1
NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE1RTY1MjEzNEJCQkVDMDBEOEU3MTMgLyog
UHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRv
d0VsZW1lbnQuY3BwICovOyB9OwogCQlBNzE1RTY1MzEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jl
c3NTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzE1RTY1MTEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50
LmggKi87IH07CkBAIC05NzI0LDYgKzk3MjYsOCBAQAogCQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1
QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcDsgcGF0aCA9IGdlbmVyaWMvQmluZGlu
Z1NlY3VyaXR5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE2MjJBOEY3
MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eUJhc2UuaDsgcGF0aCA9IGdlbmVyaWMv
QmluZGluZ1NlY3VyaXR5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNjIy
QThGOTEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gR2VuZXJpY0JpbmRpbmcuaDsgcGF0aCA9IGdlbmVyaWMvR2VuZXJp
Y0JpbmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTZEMTY5NjExMzQ2QjQ5
QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2hhZG93Um9vdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2
RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNoYWRvd1Jvb3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTcxNTFCRDcxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2VyQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTVFNjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVz
c1NoYWRvd0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTcxNUU2NTExMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NDQ3LDYgKzE5NDUxLDggQEAKIAkJCQkwODRB
RUJFMzBGQjUwNUZBMDAzODQ4M0UgLyogU2VsZWN0RWxlbWVudC5oICovLAogCQkJCUJDN0ZBNjgw
MEQxRjE2NzkwMERCMjJBOSAvKiBTZWxlY3Rvck5vZGVMaXN0LmNwcCAqLywKIAkJCQlCQzdGQTY3
RjBEMUYxNjc5MDBEQjIyQTkgLyogU2VsZWN0b3JOb2RlTGlzdC5oICovLAorCQkJCUE2RDE2OTYx
MTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLywKKwkJCQlBNkQxNjk2MzEzNDZC
NEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oICovLAogCQkJCUQwMUEyN0FCMTBDOUJGRDgwMDAy
NkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmNwcCAqLywKIAkJCQlEMDFBMjdBQzEwQzlCRkQ4MDAw
MjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oICovLAogCQkJCUNFQTM5NDlBMTFENDVDREEwMDMw
OTRDRiAvKiBTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwICovLApAQCAtMTk5MTMsNiArMTk5MTks
NyBAQAogCQkJCUJDRDUzMzY0MEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMjgwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZFhTTFN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTUwMDgyNDVF
NTkwMDFFOUFCQyAvKiBDYWNoZVBvbGljeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjFENUVDQjUx
MzRCNThEQTAwODdDNzhGIC8qIENhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZFNEU5MUFEMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDk0ODRGQzIxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTQ4NEZDNTEwMkNGMjNDMDAxODdERDMgLyogQ2Fu
dmFzUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDA3NCw2ICsyMDA4MSw4IEBACiAJCQkJ
QThDMjI4QTExMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxNjJBNDUxMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRX
b3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzRDU4RjEwMUMxNTJEMDAzMTZE
MDcgLyogRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDA2REZB
NjEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGRDA2REZBNjEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0MzNkVCOTEzNDJBQTNGMDA0QkVF
RjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTY3RUJGNjEwMjk2MkJBMDAzRDI1MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnku
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDJDMTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxheURT
UEtlcm5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTA4OSw2ICsyMTA5OCw3IEBACiAJCQkJOTNG
MTk5RTUwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOERGM0ZEMDA5N0ZBMEZDMDA1Mjk4MUIgLyogSFRNTENvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3N0IzODY1MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MQ29uc3RydWN0
aW9uU2l0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFBMzE2NjMxMzRCQ0FFODAwN0M5QTRGIC8q
IEhUTUxDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzdDREJDMEZFRkYxNDIwMDcw
ODg3QiAvKiBIVE1MRGF0YUdyaWRDZWxsRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3
N0NCODcwRkVCRjVBRjAwNzA4ODdCIC8qIEhUTUxEYXRhR3JpZENvbEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMjEyQTFGMEZFODMzMzIwMEVDMzcwOCAvKiBIVE1MRGF0YUdyaWRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIxNTgwLDYgKzIxNTkwLDggQEAKIAkJCQk5MDAxNzg4
MTEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2RUJGMEU3NzEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTc3QTE3QUE3MTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1Zl
cnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREY2QkFGOTEzNEE0Qzk4MDA4
MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUZERjZCQUY5MTM0QTRDOTgwMDgyMjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25F
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyNkU4QUUwQTFBOEYyMzAwQ0QxQkI2IC8qIEpT
T3B0aW9uQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMEQ1NzQxMEE1Qzc4Njcw
MDdFREQ0QyAvKiBKU092ZXJmbG93RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjg0QkIx
MTA0NDlGRkEwMEVBRUI1MiAvKiBKU1BhZ2VUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjE5MzQsNiArMjE5NDYsMTAgQEAKIAkJCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIg
LyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkVCRjBFNDkx
MkE4OTI2MTAwREIxNzA5IC8qIE9FU1RleHR1cmVGbG9hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzdBMTdBNzIxMkYyODE4MjAwNEUwMkY2IC8qIE9FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29t
cGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRC
NUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlG
REEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1
ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEVBRjRBRjEwQzc0MkIx
MDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NzI4
MTU2MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwODcyODE1ODBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTIyMjUxLDYgKzIyMjY3LDcgQEAKIAkJCQkwRjNERDQ1MDEyRjVFQTFCMDAw
RDkxOTAgLyogU2hhZG93Qmx1ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI4QzQwRTgyMDMx
QjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RjMzOEE0MTFD
MEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNkQx
Njk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTgwRTZDRTgwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMkFGRkM5NDBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBNEE5NTRFMEI0RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjI3MTksNiArMjI3MzYsNyBAQAogCQkJCTQ5NEJENzk1MEY1NUM4RUUw
MDc0NzgyOCAvKiBXZWJLaXRQb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFDMEZGMjUwRTRD
RUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDRjMzMkYwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMUEzMTYyRDEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0
cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0FGMzQ4MTBBNkM0MDUyMDBBQkUwNkUgLyogV2Vi
U2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQxQjBEN0UyQjgyMDA3QzM5
ODMgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0FGMzQ4MzBBNkM0
MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yMjgzMCwxMyArMjI4NDgsNiBAQAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBY
U0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5
NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBG
QzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlGREEzRTk1QTEz
NEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVy
cyAqLywKLQkJCQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGREY2QkFGOTEzNEE0Qzk4MDA4MjI5MjAg
LyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUZE
MDZERkE2MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBp
biBIZWFkZXJzICovLAotCQkJCUUxQTMxNjJEMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJp
YnV0ZWRTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQTMxNjYzMTM0QkNBRTgw
MDdDOUE0RiAvKiBIVE1MQ29udmVydGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlCMUQ1RUNCNTEz
NEI1OERBMDA4N0M3OEYgLyogQ2FsbGJhY2tGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0y
MzI0OSw2ICsyMzI2MCw3IEBACiAJCQkJRDBEMTQxQjIxMkIyQkY1MjAwRTM5NjIwIC8qIENhY2hl
ZFJlc291cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMyMzA5NzlDM0JE
MDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzI3
MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUIxODI3NDkzMTM0Q0E0QzEwMEI5OEMyRCAvKiBDYWxsYmFja0Z1bmN0aW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTZFNEU5MUFDMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250
ZXh0QXR0cmlidXRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTQ4NEZDMTEwMkNGMjNDMDAx
ODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0ODRGQzQx
MDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BhdHRlcm4uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
MzM4Miw2ICsyMzM5NCw4IEBACiAJCQkJQThDMjI4QTIxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29k
ZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2MkE0NTAxMDEx
NDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDFBM0Q1OEUxMDFDMTUyRDAwMzE2RDA3IC8qIERlZGljYXRlZFdvcmtlclRocmVhZC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGRDA2REZBNTEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEMDZERkE1MTM0
QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNDMzZFQjgxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTY3RUJGNTEwMjk2MkJBMDAzRDI1
MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQzMTYwMkIxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5RFNQS2VybmVsLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjQ0NDksNiArMjQ0NjMsOCBAQAogCQkJCTkwMDE3ODgwMTJFMDM3MDcwMDY0
ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NkVCRjBFNzYxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VTVGV4dHVyZUZsb2F0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTc3QTE3QUE2MTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5
T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZERjZCQUY4MTM0QTRDOTgwMDgyMjkyMCAv
KiBKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlG
REY2QkFGODEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgyNkVDNDgwQTFCMENCRTAwQ0QxQkI2IC8qIEpTT3B0
aW9uQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRDU3NDAwQTVDNzg2NzAw
N0VERDRDIC8qIEpTT3ZlcmZsb3dFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI4NEJC
MjEwNDQ5RkZBMDBFQUVCNTIgLyogSlNQYWdlVHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMjQ4MTUsNiArMjQ4MzEsMTAgQEAKIAkJCQk5MDAxNzc0MDEyRTAzNDc4MDA2NDg0
NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2RUJG
MEU0ODEyQTg5MjYxMDBEQjE3MDkgLyogT0VTVGV4dHVyZUZsb2F0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTc3QTE3QTcxMTJGMjgxODIwMDRFMDJGNiAvKiBPRVNWZXJ0ZXhBcnJheU9iamVjdC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGREEzRTk1OTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGlu
ZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEQTNFOTU5MTM0
QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRkRBM0U5NUIxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGREEzRTk1QjEzNEE0OUVGMDA4RDRC
NUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUY0RUFGNEFFMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwODcyODE1NTBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwODcyODE1NzBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9u
R3JvdXBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjUwNjUsNiArMjUwODUsNyBAQAog
CQkJCTBGM0RENDRGMTJGNUVBMUIwMDBEOTE5MCAvKiBTaGFkb3dCbHVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNUVCOEMzMEU4MjAzMUIwMEIyNTk2NSAvKiBTaGFkb3dEYXRhLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE3RjMzOEEzMTFDMEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFk
b3dSb290LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0Y0MEExOTg5Q0EwMDdGQjhDNSAv
KiBTaGFkb3dWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM5MzBEMDBBNURGMDAz
MDA3NEQgLyogU2hhcGVBcmFiaWMuYyBpbiBTb3VyY2VzICovLAogCQkJCTFBNEE5NTREMEI0RURD
Q0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTQxOCw2
ICsyNTQzOSw3IEBACiAJCQkJOTNGMUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VD
b250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAv
KiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDRjMzMkUw
RjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTFBMzE2
MkUxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFDQUYzNDgyMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmpl
Y3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MThBMzRDMTEwMjZDODMxMDAxQjY4OTYgLyogV2Vi
U29ja2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMEQ0QTRFMTAzMTc3QTIwMDQ5RUE1NCAv
KiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU1MjAsMTIgKzI1NTQy
LDYgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3NvckxpYnhz
bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhT
TFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBD
MTMzNzkgLyogWFNTRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZEQTNFOTU5MTM0QTQ5
RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJRkRBM0U5NUIxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGREY2QkFGODEzNEE0Qzk4MDA4MjI5MjAg
LyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
RkQwNkRGQTUxMzRBNERFRjAwNkY1RDdEIC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlFMUEzMTYyRTEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNB
dHRyaWJ1dGVkU3RyaW5nRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQjE4Mjc0OTMxMzRD
QTRDMTAwQjk4QzJEIC8qIENhbGxiYWNrRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggODZmM2JhMzBiZWQyZWQ5NGEz
YmI0YzFiMGYyYzYyN2MwYzA5MjBhNy4uNDBjNzk0MWIyYTY5NzI5OGY5M2RiMTcxOTBhNjYxYjdh
ZGViMzE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtODkz
LDcgKzg5Myw3IEBAIGlubGluZSB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmluaXRGb3JTdHlsZVJl
c29sdmUoRWxlbWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVuCiB7CiAgICAgbV9jaGVja2VyLm1f
cHNldWRvU3R5bGUgPSBwc2V1ZG9JRDsKIAotICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJl
bnRPckhvc3ROb2RlKCkgOiAwOworICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGUoKSA6IDA7CiAKICAgICBpZiAocGFyZW50U3R5bGUpCiAgICAg
ICAgIG1fcGFyZW50U3R5bGUgPSBwYXJlbnRTdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmNwcAppbmRleCBlYTAzODQ4YWFhZmJjZDAwMGY2ZjA5MDFmZTQ1YzdkNmUyMWFkYmIzLi41
NjU5ZjllZDQ4NGY2ODVlZTYyZTc4MGZiM2RjYTI3MmIwOWQ5M2I5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBDb250YWluZXJOb2Rl
OjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQs
IEV4Y2UKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0aW5nIi4K
ICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBvZiBz
ZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KLSAgICBBU1NFUlQocmVmQ291bnQoKSB8fCBwYXJlbnRO
b2RlKCkpOworICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE9ySG9zdE5vZGUoKSk7CiAK
ICAgICBlYyA9IDA7CiAKQEAgLTI0NCw3ICsyNDQsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OnJl
cGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhj
ZQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAg
IC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRp
bmcgbXV0YXRpb24gZXZlbnRzLgotICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE5vZGUo
KSk7CisgICAgQVNTRVJUKHJlZkNvdW50KCkgfHwgcGFyZW50T3JIb3N0Tm9kZSgpKTsKIAogICAg
IGVjID0gMDsKIApAQCAtNDAxLDcgKzQwMSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIENoZWNr
IHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBj
YW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRz
LgotICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE5vZGUoKSk7CisgICAgQVNTRVJUKHJl
ZkNvdW50KCkgfHwgcGFyZW50T3JIb3N0Tm9kZSgpKTsKIAogICAgIGVjID0gMDsKIApAQCAtNTYx
LDcgKzU2MSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxO
b2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvCiB7CiAgICAgLy8gQ2hlY2sgdGhh
dCB0aGlzIG5vZGUgaXMgbm90ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBi
ZSBkZWxldGVkIGFzIGEgc2lkZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCi0g
ICAgQVNTRVJUKHJlZkNvdW50KCkgfHwgcGFyZW50Tm9kZSgpKTsKKyAgICBBU1NFUlQocmVmQ291
bnQoKSB8fCBwYXJlbnRPckhvc3ROb2RlKCkpOwogCiAgICAgZWMgPSAwOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKaW5kZXggYzljMzAyMDM3NzgxNzNhNGMwNzM1YTMx
N2ZlYTM0MTdiOGUzZGNhMS4uZTk4ZWY5ZTU4YTBjZmYyYjhmOGQwZjQyNDcwMGY5OWM2OTExNjI2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtMzEsNyArMzEs
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBEb2N1bWVudEZyYWdtZW50OjpE
b2N1bWVudEZyYWdtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK0RvY3VtZW50RnJhZ21lbnQ6OkRv
Y3VtZW50RnJhZ21lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogQ29udGFpbmVyTm9kZShk
b2N1bWVudCkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dEZyYWdtZW50LmgKaW5kZXggZDU4OGI0ZTdiMDU3ZDJiMzI4ZTQ4YmEwMWIzN2UxMTM3NTk2OGEx
NC4uZjU2NzUzNmIyYjE0NzRmYjA0MTVjMGNiMTg2MzRmNmFmNDQ2Njc4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCkBAIC0zNiw5ICszNiwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBwYXJzZUhUTUwoY29uc3QgU3RyaW5nJiwgRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEZy
YWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCk7CiAg
ICAgYm9vbCBwYXJzZVhNTChjb25zdCBTdHJpbmcmLCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwg
RnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID0gRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2VkKTsK
IAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBEb2N1bWVudEZyYWdtZW50KERvY3VtZW50Kik7
CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdDsKICAgICB2
aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGI1
N2YzZDJkMjkyNWZmODFjZjk0NGUxNDAyNWI0MTcwNDQ0NGZjYzMuLjJmOGRlZGNjYmQwN2Y4OTA1
ZmRhY2Q5NzM2NmU2ZTIxYjNkMTQ1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTU0LDYg
KzU0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5j
bHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5oIgog
I2luY2x1ZGUgIlhNTE5hbWVzLmgiCkBAIC0xMDY1LDcgKzEwNjYsNyBAQCB2b2lkIEVsZW1lbnQ6
OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKIHsKICAgICAvLyBSZWYgY3VycmVudFN0
eWxlIGluIGNhc2UgaXQgd291bGQgb3RoZXJ3aXNlIGJlIGRlbGV0ZWQgd2hlbiBzZXRSZW5kZXJT
dHlsZSgpIGlzIGNhbGxlZC4KICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1cnJlbnRTdHlsZShy
ZW5kZXJTdHlsZSgpKTsKLSAgICBib29sIGhhc1BhcmVudFN0eWxlID0gcGFyZW50T3JIb3N0Tm9k
ZSgpID8gcGFyZW50T3JIb3N0Tm9kZSgpLT5yZW5kZXJTdHlsZSgpIDogZmFsc2U7CisgICAgYm9v
bCBoYXNQYXJlbnRTdHlsZSA9IHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpID8gcGFy
ZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCktPnJlbmRlclN0eWxlKCkgOiBmYWxzZTsKICAg
ICBib29sIGhhc0RpcmVjdEFkamFjZW50UnVsZXMgPSBjdXJyZW50U3R5bGUgJiYgY3VycmVudFN0
eWxlLT5jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7CiAKICAgICBpZiAo
KGNoYW5nZSA+IE5vQ2hhbmdlIHx8IG5lZWRzU3R5bGVSZWNhbGMoKSkpIHsKQEAgLTExNDcsNyAr
MTE0OCw3IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQog
ICAgIH0KICAgICAvLyBGSVhNRTogVGhpcyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcgY29t
YmluYXRvcnMuIFdpbGwgYmUgbmVjZXNzYXJ5IGluIFhCTDIgd29ybGQuCiAgICAgaWYgKE5vZGUq
IHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkgewotICAgICAgICBpZiAoY2hhbmdlID49IEluaGVyaXQg
fHwgc2hhZG93LT5pc1RleHROb2RlKCkgfHwgc2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMo
KSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVSZWNhbGMoKSkgeworICAgICAgICBpZiAoY2hhbmdlID49
IEluaGVyaXQgfHwgc2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ctPm5l
ZWRzU3R5bGVSZWNhbGMoKSkgewogICAgICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKICAg
ICAgICAgICAgIHNoYWRvdy0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKICAgICAgICAgfQpAQCAtMTE1
NywyOCArMTE1OCwyNCBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNo
YW5nZSkKICAgICBjbGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwogfQogCi1Ob2RlKiBFbGVt
ZW50OjpzaGFkb3dSb290KCkKK0NvbnRhaW5lck5vZGUqIEVsZW1lbnQ6OnNoYWRvd1Jvb3QoKSBj
b25zdAogewogICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+bV9zaGFkb3dS
b290IDogMDsKIH0KIAotdm9pZCBFbGVtZW50OjpzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8Tm9k
ZT4gbm9kZSkKK0NvbnRhaW5lck5vZGUqIEVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jvb3QoKQogewot
ICAgIC8vIEZJWE1FOiBCZWNhdXNlIHRvZGF5IHRoaXMgaXMgbmV2ZXIgY2FsbGVkIGZyb20gc2Ny
aXB0IGRpcmVjdGx5LCB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5Ci0gICAgLy8gYWJvdXQgY29tcHJv
bWlzaW5nIERPTSB0cmVlIGludGVncml0eSAoZWcuIG5vZGUgYmVpbmcgYSBwYXJlbnQgb2YgdGhp
cykuIEhvd2V2ZXIsCi0gICAgLy8gb25jZSB3ZSBpbXBsZW1lbnQgWEJMMiwgd2Ugd2lsbCBoYXZl
IHRvIGFkZCBpbnRlZ3JpdHkgY2hlY2tzIGhlcmUuCi0gICAgcmVtb3ZlU2hhZG93Um9vdCgpOwot
Ci0gICAgUmVmUHRyPE5vZGU+IG5ld1Jvb3QgPSBub2RlOwotICAgIGlmICghbmV3Um9vdCkKLSAg
ICAgICAgcmV0dXJuOworICAgIGlmIChDb250YWluZXJOb2RlKiBleGlzdGluZ1Jvb3QgPSBzaGFk
b3dSb290KCkpCisgICAgICAgIHJldHVybiBleGlzdGluZ1Jvb3Q7CiAKKyAgICBSZWZQdHI8U2hh
ZG93Um9vdD4gbmV3Um9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAgICBl
bnN1cmVSYXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3QgPSBuZXdSb290LmdldCgpOwogICAgIG5ld1Jv
b3QtPnNldFNoYWRvd0hvc3QodGhpcyk7CiAgICAgaWYgKGluRG9jdW1lbnQoKSkKICAgICAgICAg
bmV3Um9vdC0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKLSAgICBpZiAoYXR0YWNoZWQoKSAmJiAh
bmV3Um9vdC0+YXR0YWNoZWQoKSkKKyAgICBpZiAoYXR0YWNoZWQoKSkKICAgICAgICAgbmV3Um9v
dC0+bGF6eUF0dGFjaCgpOworICAgIHJldHVybiBuZXdSb290LmdldCgpOwogfQogCiB2b2lkIEVs
ZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNjE4YWQyNzMy
NThkMjVhMDQzNGVmYTk0MzRkZTAwYTIxZDUxZjM4Zi4uNTkwN2ExYTA3NjZmNWEzOTcwODNlYmYw
ZmRkYWQ2NDgzMTdhYTlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yMjksOCArMjI5LDEwIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgdm9pZCByZWNhbGNTdHlsZShTdHls
ZUNoYW5nZSA9IE5vQ2hhbmdlKTsKIAotICAgIE5vZGUqIHNoYWRvd1Jvb3QoKTsKLSAgICB2b2lk
IHNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxOb2RlPik7CisgICAgQ29udGFpbmVyTm9kZSogc2hh
ZG93Um9vdCgpIGNvbnN0OworICAgIENvbnRhaW5lck5vZGUqIGVuc3VyZVNoYWRvd1Jvb3QoKTsK
KyAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoKTsKKwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwogCiAgICAgUmVuZGVyU3R5bGUqIGNvbXB1
dGVkU3R5bGUoUHNldWRvSWQgPSBOT1BTRVVETyk7CkBAIC00MTEsNyArNDEzLDYgQEAgcHJpdmF0
ZToKICAgICBFbGVtZW50UmFyZURhdGEqIGVuc3VyZVJhcmVEYXRhKCk7CiAKICAgICBTcGVsbGNo
ZWNrQXR0cmlidXRlU3RhdGUgc3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlKCkgY29uc3Q7Ci0gICAg
dm9pZCByZW1vdmVTaGFkb3dSb290KCk7CiAKIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQdHI8
TmFtZWROb2RlTWFwPiBtX2F0dHJpYnV0ZU1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFyZURh
dGEuaAppbmRleCA4MThhMmMyZjBmZjk4N2RjNWNkNjNhOTcyOTViZWM1YjgwZWQ0YTI1Li4xNGNl
ZWYyYTFmZTI5NTJhNzA3ZDA1Nzc1NWI4Mjc5M2RiNjM2NzI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnRSYXJlRGF0YS5oCkBAIC0zMCw2ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorY2xhc3MgU2hhZG93Um9vdDsKKwogY2xhc3MgRWxlbWVudFJhcmVEYXRhIDogcHVibGljIE5v
ZGVSYXJlRGF0YSB7CiBwdWJsaWM6CiAgICAgRWxlbWVudFJhcmVEYXRhKCk7CkBAIC00Miw3ICs0
NCw3IEBAIHB1YmxpYzoKIAogICAgIEludFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5nOwog
ICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwotICAgIE5vZGUqIG1fc2hh
ZG93Um9vdDsKKyAgICBTaGFkb3dSb290KiBtX3NoYWRvd1Jvb3Q7CiAKICAgICBPd25QdHI8RGF0
YXNldERPTVN0cmluZ01hcD4gbV9kYXRhc2V0RE9NU3RyaW5nTWFwOwogICAgIE93blB0cjxDbGFz
c0xpc3Q+IG1fY2xhc3NMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDE1Y2I4YThiNDhhMWYyMTYz
OTkxZjlkYjYxZmQ5NmE4YWE2NjNiNGQuLjFhNTMxMGY4ODZjYjNjMGI4OGE3ODRhZTY3MzA2Nzgw
MDZmMjBlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTE0MDIsMTggKzE0MDIsMjUgQEAgTm9kZSAq
Tm9kZTo6bmV4dExlYWZOb2RlKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAorQ29udGFpbmVy
Tm9kZSogTm9kZTo6cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgY29uc3QKK3sKKyAg
ICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBwYXJlbnRPckhvc3ROb2RlKCk7CisgICAgcmV0dXJu
IHBhcmVudCAmJiBwYXJlbnQtPmlzU2hhZG93Qm91bmRhcnkoKSA/IHBhcmVudC0+c2hhZG93SG9z
dCgpIDogcGFyZW50OworfQorCiBSZW5kZXJPYmplY3QqIE5vZGU6OmNyZWF0ZVJlbmRlcmVyQW5k
U3R5bGUoKQogewogICAgIEFTU0VSVCghcmVuZGVyZXIoKSk7CiAgICAgQVNTRVJUKGRvY3VtZW50
KCktPnNob3VsZENyZWF0ZVJlbmRlcmVycygpKTsKIAotICAgIENvbnRhaW5lck5vZGUqIHBhcmVu
dCA9IHBhcmVudE9ySG9zdE5vZGUoKTsKKyAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBwYXJl
bnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKICAgICBBU1NFUlQocGFyZW50KTsKKwogICAg
IFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIgPSBwYXJlbnQtPnJlbmRlcmVyKCk7CiAKICAg
ICAvLyBGSVhNRTogSWdub3JpbmcgY2FuSGF2ZUNoaWxkcmVuKCkgaW4gYSBjYXNlIG9mIGlzU2hh
ZG93Um9vdCgpIG1pZ2h0IGJlIHdyb25nLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI0MjMKLSAgICBpZiAoIXBhcmVudFJlbmRlcmVyIHx8ICgh
cGFyZW50UmVuZGVyZXItPmNhbkhhdmVDaGlsZHJlbigpICYmICFpc1NoYWRvd1Jvb3QoKSkgfHwg
IXBhcmVudC0+Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcih0aGlzKSkKKyAgICBpZiAoIXBhcmVu
dFJlbmRlcmVyIHx8ICghcGFyZW50UmVuZGVyZXItPmNhbkhhdmVDaGlsZHJlbigpICYmICEoaXNT
aGFkb3dSb290KCkgfHwgcGFyZW50Tm9kZSgpLT5pc1NoYWRvd0JvdW5kYXJ5KCkpKSB8fCAhcGFy
ZW50LT5jaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKHRoaXMpKQogICAgICAgICByZXR1cm4gMDsK
IAogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBzdHlsZUZvclJlbmRlcmVyKCk7CkBA
IC0xNDY1LDcgKzE0NzIsNyBAQCB2b2lkIE5vZGU6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQoKQog
ICAgICAgICByZXR1cm47CiAKICAgICAvLyBOb3RlOiBBZGRpbmcgbmV3UmVuZGVyZXIgaW5zdGVh
ZCBvZiByZW5kZXJlcigpLiByZW5kZXJlcigpIG1heSBiZSBhIGNoaWxkIG9mIG5ld1JlbmRlcmVy
LgotICAgIHBhcmVudE9ySG9zdE5vZGUoKS0+cmVuZGVyZXIoKS0+YWRkQ2hpbGQobmV3UmVuZGVy
ZXIsIG5leHRSZW5kZXJlcigpKTsKKyAgICBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUo
KS0+cmVuZGVyZXIoKS0+YWRkQ2hpbGQobmV3UmVuZGVyZXIsIG5leHRSZW5kZXJlcigpKTsKIH0K
IAogUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTm9kZTo6c3R5bGVGb3JSZW5kZXJlcigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaAppbmRleCBjMjI1ZGJhYzhmZjg5MWRmOWNmZTI2NWVjMjZiODJkZTFjNGJiMTNiLi5jNDky
YjRkNGIyOGY5YTVlOTcwZWQwMmE1NGE0MzE2NTc4ZDc4MmM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTIw
Myw2ICsyMDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQ2hhcmFjdGVyRGF0YU5v
ZGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNEb2N1bWVudE5vZGUoKSBj
b25zdDsKICAgICBib29sIGlzU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNT
aGFkb3dSb290RmxhZyk7IH0KKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiBhbGwgc2hh
ZG93IHJvb3RzIGFyZSBTaGFkb3dSb290cy4KKyAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkb3dCb3Vu
ZGFyeSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgTm9kZSogc2hhZG93QW5jZXN0b3JO
b2RlKCk7CiAgICAgTm9kZSogc2hhZG93VHJlZVJvb3ROb2RlKCk7CiAgICAgYm9vbCBpc0luU2hh
ZG93VHJlZSgpOwpAQCAtNDQ0LDYgKzQ0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
cmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNo
b3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmly
dHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5
bGUqKTsKKyAgICBDb250YWluZXJOb2RlKiBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUo
KSBjb25zdDsKICAgICAKICAgICAvLyBXcmFwcGVyIGZvciBub2RlcyB0aGF0IGRvbid0IGhhdmUg
YSByZW5kZXJlciwgYnV0IHN0aWxsIGNhY2hlIHRoZSBzdHlsZSAobGlrZSBIVE1MT3B0aW9uRWxl
bWVudCkuCiAgICAgUmVuZGVyU3R5bGUqIHJlbmRlclN0eWxlKCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWFmNTgwODQyMzI4NTAxZmI2MzViMWExOTQzZmY3
N2I5ZTIzMzQxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNoYWRvd1Jvb3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTaGFkb3dSb290OjpTaGFk
b3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IERvY3VtZW50RnJhZ21lbnQoZG9jdW1l
bnQpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKK30KKwordm9pZCBTaGFkb3dSb290OjpyZWNh
bGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCit7CisgICAgZm9yIChOb2RlKiBuID0gZmlyc3RD
aGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgbi0+cmVjYWxjU3R5bGUo
Y2hhbmdlKTsKKworICAgIGNsZWFyTmVlZHNTdHlsZVJlY2FsYygpOworICAgIGNsZWFyQ2hpbGRO
ZWVkc1N0eWxlUmVjYWxjKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjlmZmRkZmYzZjBhMjI5MWFjNDg2ZWExYmJhOTQzMzZiZDIzYTljMjIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC0wLDAgKzEsNTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFNoYWRvd1Jvb3RfaAorI2RlZmluZSBTaGFkb3dSb290X2gKKworI2luY2x1ZGUg
IkRvY3VtZW50RnJhZ21lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1
bWVudDsKKworY2xhc3MgU2hhZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBjcmVhdGUoRG9jdW1lbnQq
KTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1NoYWRvd0JvdW5kYXJ5KCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZWNhbGNTdHlsZShTdHlsZUNoYW5nZSA9IE5vQ2hh
bmdlKTsKKworcHJpdmF0ZToKKyAgICBTaGFkb3dSb290KERvY3VtZW50Kik7Cit9OworCitpbmxp
bmUgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290OjpjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhZG93Um9vdChkb2N1bWVudCkp
OworfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
S2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggYjkwMzM1ZWM0MjkyNTcwNWU0YWUzOGE3NGQwNmFjYWRh
ZTgyZDU4ZC4uMjljOWRlYmE3MGM4Zjg3MzUyMzRlYjI2ZDkxMWVhZDNhMDcwOGI5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVt
ZW50LmgiCiAjaW5jbHVkZSAiU1NMS2V5R2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiU2hhZG93Um9v
dC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAK
QEAgLTY3LDE1ICs2OCwxOCBAQCBpbmxpbmUgSFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXlnZW5F
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZQogICAgIEFTU0VSVCho
YXNUYWdOYW1lKGtleWdlblRhZykpOwogCiAgICAgLy8gQ3JlYXRlIGEgc2VsZWN0IGVsZW1lbnQg
d2l0aCBvbmUgb3B0aW9uIGVsZW1lbnQgZm9yIGVhY2gga2V5IHNpemUuCi0gICAgUmVmUHRyPEhU
TUxTZWxlY3RFbGVtZW50PiBzZWxlY3QgPSBLZXlnZW5TZWxlY3RFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOwogICAgIFZlY3RvcjxTdHJpbmc+IGtleXM7CiAgICAgZ2V0U3VwcG9ydGVkS2V5U2l6
ZXMoa2V5cyk7CisKKyAgICBSZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IHNlbGVjdCA9IEtleWdl
blNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9
IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsgKytpKSB7CiAgICAg
ICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0aW9uID0gSFRNTE9wdGlvbkVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCwgdGhpcy0+Zm9ybSgpKTsKLSAgICAgICAgc2VsZWN0LT5wYXJzZXJB
ZGRDaGlsZChvcHRpb24pOwotICAgICAgICBvcHRpb24tPnBhcnNlckFkZENoaWxkKFRleHQ6OmNy
ZWF0ZShkb2N1bWVudCwga2V5c1tpXSkpOworICAgICAgICBzZWxlY3QtPmFwcGVuZENoaWxkKG9w
dGlvbiwgZWMpOworICAgICAgICBvcHRpb24tPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShkb2N1
bWVudCwga2V5c1tpXSksIGVjKTsKICAgICB9Ci0gICAgc2V0U2hhZG93Um9vdChzZWxlY3QpOwor
CisgICAgZW5zdXJlU2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChzZWxlY3QsIGVjKTsKIH0KIAog
UGFzc1JlZlB0cjxIVE1MS2V5Z2VuRWxlbWVudD4gSFRNTEtleWdlbkVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3Jt
RWxlbWVudCogZm9ybSkKQEAgLTg3LDcgKzkxLDcgQEAgdm9pZCBIVE1MS2V5Z2VuRWxlbWVudDo6
cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogewogICAgIC8vIFJlZmxlY3Qg
ZGlzYWJsZWQgYXR0cmlidXRlIG9uIHRoZSBzaGFkb3cgc2VsZWN0IGVsZW1lbnQKICAgICBpZiAo
YXR0ci0+bmFtZSgpID09IGRpc2FibGVkQXR0cikKLSAgICAgICAgc2VsZWN0U2hhZG93KCktPnNl
dEF0dHJpYnV0ZShhdHRyLT5uYW1lKCksIGF0dHItPnZhbHVlKCkpOworICAgICAgICBzaGFkb3dT
ZWxlY3QoKS0+c2V0QXR0cmlidXRlKGF0dHItPm5hbWUoKSwgYXR0ci0+dmFsdWUoKSk7CiAKICAg
ICBpZiAoYXR0ci0+bmFtZSgpID09IGNoYWxsZW5nZUF0dHIpCiAgICAgICAgIG1fY2hhbGxlbmdl
ID0gYXR0ci0+dmFsdWUoKTsKQEAgLTEwMiw3ICsxMDYsNyBAQCBib29sIEhUTUxLZXlnZW5FbGVt
ZW50OjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kZWRfdmFsdWVzLCBib29sKQog
ICAgIC8vIE9ubHkgUlNBIGlzIHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUuCiAgICAgaWYgKCFtX2tl
eVR5cGUuaXNOdWxsKCkgJiYgIWVxdWFsSWdub3JpbmdDYXNlKG1fa2V5VHlwZSwgInJzYSIpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgU3RyaW5nIHZhbHVlID0gc2lnbmVkUHVibGljS2V5
QW5kQ2hhbGxlbmdlU3RyaW5nKHNlbGVjdFNoYWRvdygpLT5zZWxlY3RlZEluZGV4KCksIG1fY2hh
bGxlbmdlLCBkb2N1bWVudCgpLT5iYXNlVVJMKCkpOworICAgIFN0cmluZyB2YWx1ZSA9IHNpZ25l
ZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyhzaGFkb3dTZWxlY3QoKS0+c2VsZWN0ZWRJbmRl
eCgpLCBtX2NoYWxsZW5nZSwgZG9jdW1lbnQoKS0+YmFzZVVSTCgpKTsKICAgICBpZiAodmFsdWUu
aXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBlbmNvZGVkX3ZhbHVlcy5hcHBl
bmREYXRhKG5hbWUoKSwgdmFsdWUudXRmOCgpKTsKQEAgLTExNywxMiArMTIxLDE0IEBAIGNvbnN0
IEF0b21pY1N0cmluZyYgSFRNTEtleWdlbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0
CiAKIHZvaWQgSFRNTEtleWdlbkVsZW1lbnQ6OnJlc2V0KCkKIHsKLSAgICBzdGF0aWNfY2FzdDxI
VE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4oc2VsZWN0U2hhZG93KCkpLT5yZXNldCgpOworICAgIHN0
YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPihzaGFkb3dTZWxlY3QoKSktPnJlc2V0
KCk7CiB9CiAKLUhUTUxTZWxlY3RFbGVtZW50KiBIVE1MS2V5Z2VuRWxlbWVudDo6c2VsZWN0U2hh
ZG93KCkKK0hUTUxTZWxlY3RFbGVtZW50KiBIVE1MS2V5Z2VuRWxlbWVudDo6c2hhZG93U2VsZWN0
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihz
aGFkb3dSb290KCkpOworICAgIE5vZGUqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKTsKKyAgICBBU1NF
UlQoc2hhZG93KTsKKyAgICByZXR1cm4gc2hhZG93ID8gc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVs
ZW1lbnQqPihzaGFkb3ctPmZpcnN0Q2hpbGQoKSkgOiAwOwogfQogCiB9IC8vIG5hbWVzcGFjZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oCmluZGV4IDAyMDAzZTgwZDJkOGY4
MWI3NjlhOTIxNDMwZGNmYTRkNmMwMzUzMjAuLjg4NzgyYzg4YzM3OTYxNjM5YmI4YzY3OTdhZTkx
ZDRlMDc0ODY3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmgKQEAg
LTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOwogCi0g
ICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdFNoYWRvdygpOworICAgIEhUTUxTZWxlY3RFbGVt
ZW50KiBzaGFkb3dTZWxlY3QoKSBjb25zdDsKIAogICAgIEF0b21pY1N0cmluZyBtX2NoYWxsZW5n
ZTsKICAgICBBdG9taWNTdHJpbmcgbV9rZXlUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
dGVyRWxlbWVudC5jcHAKaW5kZXggNzY4NzI4M2ViNzlkNThhMzgxNWE2YzI4Mzk3ZDRkOTk2YWUz
M2IyYS4uODhiMTYyMjFmMTU3YjRjNDM3MTFmOWU5YzZlMmFmY2RiMGMyMDUyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIk1ldGVyU2hhZG93RWxlbWVudC5o
IgogI2luY2x1ZGUgIlJlbmRlck1ldGVyLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2lu
Y2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjMw
LDcgKzIzMSw3IEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgp
CiAgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7CiAg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgYmFyLT5hcHBlbmRDaGlsZChtX3ZhbHVlLCBl
Yyk7Ci0gICAgc2V0U2hhZG93Um9vdChiYXIpOworICAgIGVuc3VyZVNoYWRvd1Jvb3QoKS0+YXBw
ZW5kQ2hpbGQoYmFyLCBlYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCBkZmI4ZDQ0NThlMDRmMDkwMTlkNThj
NjkwY2Q3ZGUwMDZhZGI5ZThiLi4zOWIxMjliNzZhMmNhMmU4Mjc4Nzk4MzU2YjY3ZGMyNWY2YmNk
MzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAi
UHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNp
bmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzcsOSArMTM4LDkgQEAgdm9pZCBIVE1MUHJvZ3Jlc3NF
bGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBSZWZQdHI8UHJvZ3Jlc3NCYXJF
bGVtZW50PiBiYXIgPSBQcm9ncmVzc0JhckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAg
ICBtX3ZhbHVlID0gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsKLSAg
ICBFeGNlcHRpb25Db2RlIGUgPSAwOwotICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwgZSk7
Ci0gICAgc2V0U2hhZG93Um9vdChiYXIpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAg
IGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwgZWMpOworICAgIGVuc3VyZVNoYWRvd1Jvb3QoKS0+
YXBwZW5kQ2hpbGQoYmFyLCBlYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAKaW5kZXggZTcwOGEzNTYyOGYwMWU2ZTVkMzljYzZhZTA5MzMxMjkyNThiNzQy
Ni4uYmEyNzQwODcwNmIwMjYwMGI4ZDMwNjYwYzFiNDQ3NzI0MTVjODU1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlJlbmRlck9iamVj
dC5oIgogI2luY2x1ZGUgIlJlc2V0SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiU2VhcmNoSW5wdXRU
eXBlLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlN1Ym1pdElucHV0VHlw
ZS5oIgogI2luY2x1ZGUgIlRlbGVwaG9uZUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIlRleHRJbnB1
dFR5cGUuaCIKQEAgLTM1OSw3ICszNjAsNyBAQCB2b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hhZG93
U3VidHJlZSgpCiAKIHZvaWQgSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiB7Ci0g
ICAgZWxlbWVudCgpLT5zZXRTaGFkb3dSb290KDApOworICAgIGVsZW1lbnQoKS0+cmVtb3ZlU2hh
ZG93Um9vdCgpOwogfQogCiBkb3VibGUgSW5wdXRUeXBlOjpwYXJzZVRvRG91YmxlKGNvbnN0IFN0
cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJ
bnB1dFR5cGUuY3BwCmluZGV4IGY3ZWU2NzQ3NGQzMmI5NDY4OTk2NTI4YzUxYTFmYTc1YWJmZjdl
ZmUuLjI4YWFhNzc1ZjE5ZDUyMWIwZTI5MGMxNDM0MWEwZTdkNGMxNmQyYmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAi
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUg
IlJlbmRlclNsaWRlci5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTbGlk
ZXJUaHVtYkVsZW1lbnQuaCIKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDxsaW1p
dHM+CkBAIC0xNDgsNyArMTQ5LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VE
b3duRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAgICAgaWYgKGV2ZW50LT5idXR0b24oKSAhPSBM
ZWZ0QnV0dG9uIHx8IGV2ZW50LT50YXJnZXQoKSAhPSBlbGVtZW50KCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmIChTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iID0gdG9TbGlkZXJUaHVtYkVs
ZW1lbnQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpKQorICAgIGlmIChTbGlkZXJUaHVtYkVsZW1l
bnQqIHRodW1iID0gc2hhZG93U2xpZGVyVGh1bWIoKSkKICAgICAgICAgdGh1bWItPmRyYWdGcm9t
KGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpOwogfQogCkBAIC0xOTYsNyArMTk3LDggQEAgdm9p
ZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50
KQogCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAgICBl
bGVtZW50KCktPnNldFNoYWRvd1Jvb3QoU2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGUoZWxlbWVu
dCgpLT5kb2N1bWVudCgpKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgZWxlbWVu
dCgpLT5lbnN1cmVTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKFNsaWRlclRodW1iRWxlbWVudDo6
Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSksIGVjKTsKIH0KIAogUmVuZGVyT2JqZWN0KiBS
YW5nZUlucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJT
dHlsZSopIGNvbnN0CkBAIC0yNDEsNyArMjQzLDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6bWlu
T3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkKIAogdm9pZCBSYW5nZUlucHV0VHlwZTo6dmFsdWVDaGFu
Z2VkKCkKIHsKLSAgICB0b1NsaWRlclRodW1iRWxlbWVudChlbGVtZW50KCktPnNoYWRvd1Jvb3Qo
KSktPnNldFBvc2l0aW9uRnJvbVZhbHVlKCk7CisgICAgc2hhZG93U2xpZGVyVGh1bWIoKS0+c2V0
UG9zaXRpb25Gcm9tVmFsdWUoKTsKIH0KIAogU3RyaW5nIFJhbmdlSW5wdXRUeXBlOjpmYWxsYmFj
a1ZhbHVlKCkKQEAgLTI2NSw0ICsyNjcsMTAgQEAgYm9vbCBSYW5nZUlucHV0VHlwZTo6c2hvdWxk
UmVzcGVjdExpc3RBdHRyaWJ1dGUoKQogICAgIHJldHVybiB0cnVlOwogfQogCitTbGlkZXJUaHVt
YkVsZW1lbnQqIFJhbmdlSW5wdXRUeXBlOjpzaGFkb3dTbGlkZXJUaHVtYigpIGNvbnN0Cit7Cisg
ICAgTm9kZSogc2hhZG93ID0gZWxlbWVudCgpLT5zaGFkb3dSb290KCk7CisgICAgcmV0dXJuIHNo
YWRvdyA/IHRvU2xpZGVyVGh1bWJFbGVtZW50KHNoYWRvdy0+Zmlyc3RDaGlsZCgpKSA6IDA7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFuZ2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
aAppbmRleCAzNzUyOTg1MjAyYWQyMTQxY2EwOTc1NGU5OTdkYzliMGRiOGNjMDA3Li43NWU3YTE3
NDVjNmVlY2Q3MzU1ZjRkMDJjYjA3OGM4OGJlOWRiNDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5n
ZUlucHV0VHlwZS5oCkBAIC0zNSw2ICszNSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgU2xpZGVyVGh1bWJFbGVtZW50OworCiBjbGFzcyBSYW5nZUlucHV0VHlwZSA6IHB1Ymxp
YyBJbnB1dFR5cGUgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPElucHV0VHlwZT4g
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqKTsKQEAgLTY3LDYgKzY5LDggQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIFN0cmluZyBmYWxsYmFja1ZhbHVlKCk7CiAgICAgdmlydHVhbCBTdHJpbmcgc2Fu
aXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpOwogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpOworCisgICAgU2xpZGVyVGh1bWJFbGVtZW50
KiBzaGFkb3dTbGlkZXJUaHVtYigpIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCA1OWExNDY3
OWUzYjA5YzhhNjAyMTc5Nzg5ODJlNTNlZGJjZGVlYjFhLi40ODkxMmQ3MzcxYzJlMDVlYzAxOTQz
MjU2NzllZjY0NWUyZjRiNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlk
YXRpb25NZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNz
YWdlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJS
ZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlNoYWRvd1Jv
b3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApA
QCAtMTI5LDEyICsxMzAsNyBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpidWlsZEJ1YmJsZVRy
ZWUoVGltZXI8VmFsaWRhdGlvbk1lc3NhZ2U+KikKICAgICAvLyBjb250YWlucyBub24tYWJzb2x1
dGUgb3Igbm9uLWZpeGVkIHJlbmRlcmVycyBhcyBjaGlsZHJlbi4KICAgICBtX2J1YmJsZS0+Z2V0
SW5saW5lU3R5bGVEZWNsKCktPnNldFByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIENTU1Zh
bHVlQWJzb2x1dGUpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIC8vIEZJWE1FOiBX
ZSBuZWVkIGEgd2F5IHRvIGhvc3QgbXVsdGlwbGUgc2hhZG93IHJvb3RzIGluIGEgc2luZ2xlIG5v
ZGUsIG9yCi0gICAgLy8gdG8gaW5oZXJpdCBhbiBleGlzdGluZyBzaGFkb3cgdHJlZS4KLSAgICBp
ZiAoaG9zdC0+c2hhZG93Um9vdCgpKQotICAgICAgICBob3N0LT5zaGFkb3dSb290KCktPmFwcGVu
ZENoaWxkKG1fYnViYmxlLmdldCgpLCBlYyk7Ci0gICAgZWxzZQotICAgICAgICBob3N0LT5zZXRT
aGFkb3dSb290KG1fYnViYmxlKTsKKyAgICBob3N0LT5lbnN1cmVTaGFkb3dSb290KCktPmFwcGVu
ZENoaWxkKG1fYnViYmxlLmdldCgpLCBlYyk7CiAKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IGNs
aXBwZXIgPSBFbGVtZW50V2l0aFBzZXVkb0lkOjpjcmVhdGUoZG9jLCAiLXdlYmtpdC12YWxpZGF0
aW9uLWJ1YmJsZS1hcnJvdy1jbGlwcGVyIik7CiAgICAgY2xpcHBlci0+YXBwZW5kQ2hpbGQoRWxl
bWVudFdpdGhQc2V1ZG9JZDo6Y3JlYXRlKGRvYywgIi13ZWJraXQtdmFsaWRhdGlvbi1idWJibGUt
YXJyb3ciKSwgZWMpOwpAQCAtMTYxLDEyICsxNTcsOCBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdl
OjpkZWxldGVCdWJibGVUcmVlKFRpbWVyPFZhbGlkYXRpb25NZXNzYWdlPiopCiAgICAgaWYgKG1f
YnViYmxlKSB7CiAgICAgICAgIG1fYnViYmxlTWVzc2FnZSA9IDA7CiAgICAgICAgIEhUTUxFbGVt
ZW50KiBob3N0ID0gdG9IVE1MRWxlbWVudChtX2VsZW1lbnQpOwotICAgICAgICBpZiAobV9idWJi
bGUtPmlzU2hhZG93Um9vdCgpKQotICAgICAgICAgICAgaG9zdC0+c2V0U2hhZG93Um9vdCgwKTsK
LSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwotICAgICAgICAg
ICAgaG9zdC0+c2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQoKSwgZWMpOwot
ICAgICAgICB9CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAgICAgIGhvc3QtPnNoYWRv
d1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0KCksIGVjKTsKICAgICAgICAgbV9idWJi
bGUgPSAwOwogICAgIH0KICAgICBtX21lc3NhZ2UgPSBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmluZGV4IDYzNTMyNTkz
MzIyMTJkZjA3YWUxZjc4YmU4NzQwYmQ0MjkzNmI3ZmIuLjhhMDZjYjMzZmI1Y2JmY2EwMGZmYzhh
ZTZkZmVmNTRkOTFjNzRkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
U2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgU2xpZGVyVGh1
bWJFbGVtZW50OjpkcmFnRnJvbShjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAKIHZvaWQgU2xpZGVy
VGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb21Qb2ludChjb25zdCBJbnRQb2ludCYgcG9pbnQp
CiB7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRF
bGVtZW50Kj4oc2hhZG93SG9zdCgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IGhv
c3RJbnB1dCgpOwogICAgIEFTU0VSVChpbnB1dCk7CiAKICAgICBpZiAoIWlucHV0LT5yZW5kZXJl
cigpIHx8ICFyZW5kZXJlcigpKQpAQCAtMTk4LDYgKzE5OCwxMiBAQCB2b2lkIFNsaWRlclRodW1i
RWxlbWVudDo6ZGV0YWNoKCkKICAgICBIVE1MRGl2RWxlbWVudDo6ZGV0YWNoKCk7CiB9CiAKK0hU
TUxJbnB1dEVsZW1lbnQqIFNsaWRlclRodW1iRWxlbWVudDo6aG9zdElucHV0KCkKK3sKKyAgICBB
U1NFUlQocGFyZW50Tm9kZSgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KHBhcmVudE5vZGUoKS0+c2hhZG93SG9zdCgpKTsKK30KKwogY29uc3QgQXRvbWljU3Ry
aW5nJiBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2xpZGVyVGh1bWIsICgiLXdlYmtpdC1z
bGlkZXItdGh1bWIiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9T
bGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRo
dW1iRWxlbWVudC5oCmluZGV4IDk0MTRhYzQ4YTY5MWUwOGFhY2NkNDI4NTcxYmI1ZWFmYTNhOWFi
ZDkuLjJmYTYwY2I1ZTRiOTAwZGExYjRkY2I0MmU4NmRhNGJjY2M1MzBkNTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC00MSw2ICs0
MSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxFbGVtZW50OworY2xhc3Mg
SFRNTElucHV0RWxlbWVudDsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRmxvYXRQb2ludDsKIApAQCAt
NjIsNiArNjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnREcmFnZ2luZygpOwogICAgIHZv
aWQgc3RvcERyYWdnaW5nKCk7CiAgICAgdm9pZCBzZXRQb3NpdGlvbkZyb21Qb2ludChjb25zdCBJ
bnRQb2ludCYpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGhvc3RJbnB1dCgpOwogCiAgICAgRmxv
YXRQb2ludCBtX29mZnNldFRvVGh1bWI7CiAgICAgYm9vbCBtX2luRHJhZ01vZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCA0
OWM0NTc4NGFhNzcyOTE0NDcxMjI2YmU1Mzk3ZDc4ZTRhY2IyODVlLi5iOGFkM2QzODQyMDcyZmQx
M2RiZjc4M2U3ODgyMzA5ZjcxZDYwODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lkIE1l
ZGlhQ29udHJvbElucHV0RWxlbWVudDo6YXR0YWNoKCkKICAgICAgICAgcGFyZW50Tm9kZSgpLT5y
ZW5kZXJlcigpLT5hZGRDaGlsZChyZW5kZXJlciwgc2libGluZyA/IHNpYmxpbmctPnJlbmRlcmVy
KCkgOiAwKTsKICAgICB9ICAKICAgICBDb250YWluZXJOb2RlOjphdHRhY2goKTsKLSAgICAvLyBG
SVhNRTogQ3VycmVudGx5LCBNZWlkYUNvbnRyb2xJbnB1dCBjaXJjdW12ZW50cyB0aGUgbm9ybWFs
IGF0dGFjaG1lbnQKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5LCBNZWRpYUNvbnRyb2xJbnB1dCBj
aXJjdW12ZW50cyB0aGUgbm9ybWFsIGF0dGFjaG1lbnQKICAgICAvLyBhbmQgc3R5bGUgcmVjYWxj
IGN5Y2xlIGFuZCB0aHVzIHdlIG5lZWQgdG8gYWRkIGV4dHJhIGxvZ2ljIHRvIGJlIGF3YXJlIG9m
CiAgICAgLy8gdGhlIHNoYWRvdyBET00uIFJlbW92ZSB0aGlzIG9uY2UgYWxsIG1lZGlhIGNvbnRy
b2xzIGFyZSB0cmFuc2l0aW9uZWQgdG8gdXNlIHRoZSByZWd1bGFyCiAgICAgLy8gc3R5bGUgY2Fs
Y3VsYXRpb24uCkBAIC00ODEsNyArNDgxLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xJbnB1dEVsZW1l
bnQ6OnVwZGF0ZVN0eWxlKCkKICAgICBlbHNlIGlmIChyZW5kZXJlcigpKQogICAgICAgICByZW5k
ZXJlcigpLT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7CiAKLSAgICAvLyBGSVhNRTogQ3VycmVudGx5
LCBNZWlkYUNvbnRyb2xJbnB1dCBjaXJjdW12ZW50cyB0aGUgbm9ybWFsIGF0dGFjaG1lbnQKKyAg
ICAvLyBGSVhNRTogQ3VycmVudGx5LCBNZWRpYUNvbnRyb2xJbnB1dCBjaXJjdW12ZW50cyB0aGUg
bm9ybWFsIGF0dGFjaG1lbnQKICAgICAvLyBhbmQgc3R5bGUgcmVjYWxjIGN5Y2xlIGFuZCB0aHVz
IHdlIG5lZWQgdG8gYWRkIGV4dHJhIGxvZ2ljIHRvIGJlIGF3YXJlIG9mCiAgICAgLy8gdGhlIHNo
YWRvdyBET00uIFJlbW92ZSB0aGlzIG9uY2UgYWxsIG1lZGlhIGNvbnRyb2xzIGFyZSB0cmFuc2l0
aW9uZWQgdG8gdXNlCiAgICAgLy8gdGhlIG5ldyBzaGFkb3cgRE9NLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCAxNjYxYjdhMmM1NTY3OTdmMjRiNTU3NjFh
ZjIzYmE5ZTY2NTBkYTdkLi5hZDVhYjFhZGZiZTg0OGRmOWUyZjJiNjE5NmQzYmIyOTQyNjhkYTUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJNZWRpYUNv
bnRyb2xFbGVtZW50cy5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJOb2Rl
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgog
I2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTEwMSw3ICsxMDIsNyBAQCB2b2lkIFJlbmRlclNs
aWRlcjo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQogCiBJbnRSZWN0IFJlbmRlclNs
aWRlcjo6dGh1bWJSZWN0KCkKIHsKLSAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iRWxlbWVu
dCA9IHNsaWRlclRodW1iRWxlbWVudCgpOworICAgIFNsaWRlclRodW1iRWxlbWVudCogdGh1bWJF
bGVtZW50ID0gc2hhZG93U2xpZGVyVGh1bWIoKTsKICAgICBpZiAoIXRodW1iRWxlbWVudCkKICAg
ICAgICAgcmV0dXJuIEludFJlY3QoKTsKIApAQCAtMTI4LDcgKzEyOSw3IEBAIHZvaWQgUmVuZGVy
U2xpZGVyOjpsYXlvdXQoKQogewogICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKIAotICAgIFNs
aWRlclRodW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJFbGVtZW50KCk7Cisg
ICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1lbnQgPSBzaGFkb3dTbGlkZXJUaHVtYigp
OwogICAgIFJlbmRlckJveCogdGh1bWIgPSB0aHVtYkVsZW1lbnQgPyB0b1JlbmRlckJveCh0aHVt
YkVsZW1lbnQtPnJlbmRlcmVyKCkpIDogMDsKIAogICAgIEludFNpemUgYmFzZVNpemUoYm9yZGVy
QW5kUGFkZGluZ1dpZHRoKCksIGJvcmRlckFuZFBhZGRpbmdIZWlnaHQoKSk7CkBAIC0xNzYsMTQg
KzE3NywxNSBAQCB2b2lkIFJlbmRlclNsaWRlcjo6bGF5b3V0KCkKICAgICBzZXROZWVkc0xheW91
dChmYWxzZSk7CiB9CiAKLVNsaWRlclRodW1iRWxlbWVudCogUmVuZGVyU2xpZGVyOjpzbGlkZXJU
aHVtYkVsZW1lbnQoKSBjb25zdAorU2xpZGVyVGh1bWJFbGVtZW50KiBSZW5kZXJTbGlkZXI6OnNo
YWRvd1NsaWRlclRodW1iKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdG9TbGlkZXJUaHVtYkVsZW1l
bnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSktPnNoYWRvd1Jvb3QoKSk7CisgICAgTm9k
ZSogc2hhZG93ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSktPnNoYWRvd1Jvb3QoKTsK
KyAgICByZXR1cm4gc2hhZG93ID8gdG9TbGlkZXJUaHVtYkVsZW1lbnQoc2hhZG93LT5maXJzdENo
aWxkKCkpIDogMDsKIH0KIAogYm9vbCBSZW5kZXJTbGlkZXI6OmluRHJhZ01vZGUoKSBjb25zdAog
ewotICAgIFNsaWRlclRodW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJFbGVt
ZW50KCk7CisgICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1lbnQgPSBzaGFkb3dTbGlk
ZXJUaHVtYigpOwogICAgIHJldHVybiB0aHVtYkVsZW1lbnQgJiYgdGh1bWJFbGVtZW50LT5pbkRy
YWdNb2RlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTbGlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaAppbmRl
eCAwMTYyYjcxMDdiYWQ1ZWU2YzUzMmQ1NTliY2U1NTQ0MTBjOTBlMTE3Li40ZTE3ZjMwZDhhODEx
ZDE3ZDNlMjg4NDdmMjdmYjI5ZWIzNjVlNTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5oCkBAIC00Niw4ICs0Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwogCiAgICAgICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5
LCB0aGUgbG9naWMgb2YgbWFuaXB1bGF0aW5nIHNsaWRlciB0aHVtYiBzaG91bGQgbW92ZSB0bwot
ICAgICAgICAvLyBTbGlkZXJUaHVtYkVsZW1lbnQgYW5kIGFjY2Vzc2luZyBzbGlkZXJUaHVtYkVs
ZW1lbnQgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnkgaW4gdGhpcyBjbGFzcy4KLSAgICAgICAgU2xp
ZGVyVGh1bWJFbGVtZW50KiBzbGlkZXJUaHVtYkVsZW1lbnQoKSBjb25zdDsKKyAgICAgICAgLy8g
U2xpZGVyVGh1bWJFbGVtZW50IGFuZCBhY2Nlc3Npbmcgc2hhZG93U2xpZGVyVGh1bWIgc2hvdWxk
IG5vdCBiZSBuZWNlc3NhcnkgaW4gdGhpcyBjbGFzcy4KKyAgICAgICAgU2xpZGVyVGh1bWJFbGVt
ZW50KiBzaGFkb3dTbGlkZXJUaHVtYigpIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBy
ZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZWRjOGNmNGYxYmU5ODIz
ODVhYzVjNmExYmE1ZWE1ODZjZWEyMmI0NC4uYjAxNGQ0YTcxNmIwMjRlMGJkNzkyMmNmNzFmOWIx
OTlhYTAyNzJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMS0wNC0wNyAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCBzaGFkb3cgRE9N
IGhhdmUgYSBsaXN0IG9mIG5vZGVzIGF0IHRoZSB0b3AgbGV2ZWwgb2YgYSBzaGFkb3cuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzgxMworCisgICAg
ICAgICogc3JjL1dlYkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFbGVtZW50Ojpz
aGFkb3dSb290KTogc2hhZG93IHJvb3RzIGFyZSBDb250YWluZXJOb2RlcyBub3cKKwogMjAxMS0w
NC0wNyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgTm90
IHJldmlld2VkOiByb2xsaW5nIGNocm9taXVtIERFUFMgODA0MjE6ODA3NjcuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkVsZW1lbnQuY3BwCmluZGV4IGVlN2VjMDk4MGVjZmI4YWE2ZDk0
NWEzNjMxMDZjNmUzYTFhYTY0NGIuLjY2ZTNlOTU2MGFiYjUzNzVjMzljZGI4YjY5YTk5MzkyMTQx
MTY3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVsZW1lbnQuY3BwCkBAIC05
Miw3ICs5Miw3IEBAIFdlYlN0cmluZyBXZWJFbGVtZW50Ojppbm5lclRleHQoKSBjb25zdAogCiBX
ZWJOb2RlIFdlYkVsZW1lbnQ6OnNoYWRvd1Jvb3QoKQogewotICAgIHJldHVybiBhZG9wdFJlZih1
bndyYXA8RWxlbWVudD4oKS0+c2hhZG93Um9vdCgpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoc3Rh
dGljX2Nhc3Q8Tm9kZSo+KHVud3JhcDxFbGVtZW50PigpLT5zaGFkb3dSb290KCkpKTsKIH0KIAog
V2ViU3RyaW5nIFdlYkVsZW1lbnQ6OmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88712</attachid>
            <date>2011-04-07 15:04:59 -0700</date>
            <delta_ts>2011-04-07 21:04:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-57813-20110407150458.patch</filename>
            <type>text/plain</type>
            <size>58027</size>
            <attacher name="Dominic Cooney">dominicc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyMTIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwZmYyZTQ3M2MwN2Y5ODk5YjM1MDNh
ZDMzYTZlYjc3Yjg2MmNiZWJmLi5jNWYwNWQ2OGEyZDYzMzFmYmZiZTI4YzE5Yzc0MDkyNzU0ZTJm
M2FhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDQtMDcgIERvbWluaWMgQ29vbmV5ICA8
ZG9taW5pY2NAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBMZXQgc2hhZG93IERPTSBoYXZlIGEgbGlzdCBvZiBub2RlcyBhdCB0aGUg
dG9wIGxldmVsIG9mIGEgc2hhZG93LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTc4MTMKKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxLZXlnZW5FbGVt
ZW50L2tleWdlbi1leHBlY3RlZC50eHQ6IHNoYWRvdyBET00gY2hhbmdlZAorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi5odG1sOiBhZGRlZCBhc3NlcnRpb24gb24g
c2hhZG93CisKIDIwMTEtMDQtMDcgIFN0ZXZlIExhY2V5ICA8c2psQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTEtleWdlbkVsZW1lbnQva2V5Z2VuLWV4cGVjdGVkLnR4dAppbmRl
eCA3NDVmMDE2N2Y2MzNiYmI1NjE3MDQxYWY1NzA5OTJiMWRjOTJiNTkzLi5hOGIyZWU1OTQzMmNk
ZmEwODIwNjZmMjA0NDVmNGQxZWE2YTQwMGMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxLZXlnZW5FbGVtZW50L2tleWdlbi1leHBlY3RlZC50eHQKQEAgLTIs
OCArMiw5IEBACiBUaGlzIHRlc3RzIHRoZSBrZXlnZW4gZWxlbWVudC4KIAogUEFTUyBrZXlnZW4u
b3B0aW9ucyBpcyB1bmRlZmluZWQKLVBBU1Mgc2hhZG93LnRhZ05hbWUgaXMgIlNFTEVDVCIKLVBB
U1MgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChzaGFkb3cpIGlzIG51bGwKK1BBU1Mg
c2hhZG93LmZpcnN0Q2hpbGQudGFnTmFtZSBpcyAiU0VMRUNUIgorUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zaGFkb3dSb290KHNoYWRvdykgaXMgdW5kZWZpbmVkCitQQVNTIGxheW91dFRlc3RD
b250cm9sbGVyLnNoYWRvd1Jvb3Qoc2hhZG93LmZpcnN0Q2hpbGQpIGlzIG51bGwKIFBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTEtleWdlbkVsZW1lbnQva2V5Z2VuLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MS2V5Z2VuRWxlbWVudC9rZXlnZW4uaHRtbAppbmRleCBlZDljZGNh
Y2VmZWZmZjM5ZWMyZGNhMjQ4MzI3YzQ3ZTBiYjk0MThjLi5jYjg4MzE2MTVlNTY5ZWQ4MjZkZjY3
OWVlODE0Mzk2N2UzODlhYTVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
S2V5Z2VuRWxlbWVudC9rZXlnZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
S2V5Z2VuRWxlbWVudC9rZXlnZW4uaHRtbApAQCAtMTUsOCArMTUsOSBAQCBzaG91bGRCZSgna2V5
Z2VuLm9wdGlvbnMnLCAndW5kZWZpbmVkJyk7ICAvLyBrZXlnZW4gaXMgbm90IGEgc2VsZWN0CiAK
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgdmFyIHNoYWRvdyA9IGxheW91
dFRlc3RDb250cm9sbGVyLnNoYWRvd1Jvb3Qoa2V5Z2VuKTsKLSAgc2hvdWxkQmUoJ3NoYWRvdy50
YWdOYW1lJywgJyJTRUxFQ1QiJyk7Ci0gIHNob3VsZEJlKCdsYXlvdXRUZXN0Q29udHJvbGxlci5z
aGFkb3dSb290KHNoYWRvdyknLCAnbnVsbCcpOworICBzaG91bGRCZSgnc2hhZG93LmZpcnN0Q2hp
bGQudGFnTmFtZScsICciU0VMRUNUIicpOworICBzaG91bGRCZSgnbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2hhZG93Um9vdChzaGFkb3cpJywgJ3VuZGVmaW5lZCcpOworICBzaG91bGRCZSgnbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2hhZG93Um9vdChzaGFkb3cuZmlyc3RDaGlsZCknLCAnbnVsbCcpOwog
fQogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0FuZHJvaWQubWsgYi9Tb3VyY2UvV2ViQ29yZS9BbmRyb2lkLm1rCmluZGV4IDkyODgx
Nzc5M2FkNDAzNWExMzYzN2FmMjcxZjZiNmVjMGZhZGNjZDQuLmVkNjNlMmJjN2I5ODcwNTJkNDA3
MjlkODAyNzNkNTNkMTY5MGZiODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvU291cmNlL1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtMTc1LDYgKzE3NSw3IEBAIExP
Q0FMX1NSQ19GSUxFUyA6PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCWRvbS9TY3JpcHRSdW5uZXIu
Y3BwIFwKIAlkb20vU2VsZWN0RWxlbWVudC5jcHAgXAogCWRvbS9TZWxlY3Rvck5vZGVMaXN0LmNw
cCBcCisJZG9tL1NoYWRvd1Jvb3QuY3BwIFwKIAlkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXAog
CWRvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIFwKIAlkb20vU3RhdGljTm9kZUxpc3QuY3Bw
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTAwYTc5MjIzNWM1YzI1ZTM0NDA0OTliNDMzMDZi
NmY3ZmFkOGVhMy4uYjUxODBjOWRiMTkwMGY4NWM2N2ZmYTljOTVjMTI3ZjAwMjczY2NjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTYwMyw2ICs2MDMsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgZG9tL1NjcmlwdFJ1bm5lci5jcHAKICAgICBkb20vU2VsZWN0RWxlbWVudC5jcHAKICAg
ICBkb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAKKyAgICBkb20vU2hhZG93Um9vdC5jcHAKICAgICBk
b20vU3BhY2VTcGxpdFN0cmluZy5jcHAKICAgICBkb20vU3RhdGljSGFzaFNldE5vZGVMaXN0LmNw
cAogICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlM2ViZTg1NWIxMzRj
ZGIwZGMxYjkyMTBhNjI0NDUwMmRkY2VmNDBjLi5iNjJmODczZmM4NmUxZTgyNjE5NDY0MDIyMjlm
MDQ4OWMwMmEwYTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTAgQEAKKzIwMTEtMDQtMDYgIERv
bWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMZXQgc2hhZG93IERPTSBoYXZlIGEgbGlzdCBv
ZiBub2RlcyBhdCB0aGUgdG9wIGxldmVsIG9mIGEgc2hhZG93LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc4MTMKKworICAgICAgICBBZGRzIFNoYWRv
d1Jvb3QsIGEgbGlzdCBvZiBub2RlcywgdG8gYmUgYSBwYXJlbnQgZm9yIHRvcC1sZXZlbAorICAg
ICAgICBzaGFkb3cgY2hpbGRyZW4uIEZvcndhcmRzIHJlbmRlcmluZyB0aHJvdWdoIHRoZSByb290
IGFuZCBpbnRvIHRoZQorICAgICAgICBob3N0J3MgcmVuZGVyZXIuCisKKyAgICAgICAgQ292ZXJl
ZCBieSBleGlzdGluZyB0ZXN0cyBvZiBlbGVtZW50cyB0aGF0IHVzZSB0aGlzIHN0eWxlIG9mIHNo
YWRvdy4KKworICAgICAgICAqIEFuZHJvaWQubWs6IGFkZCBTaGFkb3dSb290LmgvY3BwCisgICAg
ICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAg
ICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdl
YkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9y
Ojppbml0Rm9yU3R5bGVSZXNvbHZlKTogcHJveHkgc3R5bGUgdG8gaG9zdAorICAgICAgICAqIGRv
bS9Db250YWluZXJOb2RlLmNwcDogcGFyZW50IG5vZGVzIHRoYXQgYXJlIHNoYWRvdyByb290cyBh
cmUgYWxpdmUKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6Omluc2VydEJlZm9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpyZXBsYWNlQ2hpbGQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGFpbmVyTm9kZTo6cmVtb3ZlQ2hpbGQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudEZy
YWdtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQ6OkRvY3VtZW50
RnJhZ21lbnQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudEZyYWdtZW50Lmg6CisgICAgICAgICog
ZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUp
OiBsb29rIHRocm91Z2ggU2hhZG93Um9vdHMgZm9yIGhvc3QncyBzdHlsZQorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudDo6c2hhZG93Um9vdCk6IHNob3VsZCBiZSBjb25zdAorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudDo6ZW5zdXJlU2hhZG93Um9vdCk6IHNpbXBsZXIgdGhhbiBzZXRTaGFkb3dS
b290CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVE
YXRhLmg6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKTogaW5kaXJlY3Rpb24gc28KKyAgICAgICAg
ICBTaGFkb3dSb290IGNhbiBmb3J3YXJkIHRvIHRoZSBob3N0J3MgcmVuZGVyZXIKKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGU6OmNyZWF0ZVJlbmRlcmVyQW5kU3R5bGUpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCk6CisgICAgICAgICogZG9tL05vZGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmlzU2hhZG93Qm91bmRhcnkpOiB0ZW1wb3JhcnksIHRv
IGRpZmZlcmVudGlhdGUKKyAgICAgICAgICBvbGQtIGFuZCBuZXctc3R5bGUsIHVudGlsIGFsbCBy
b290cyBhcmUgU2hhZG93Um9vdCBpbnN0YW5jZXMKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpyZWNhbGNTdHlsZSk6IGZvcndhcmQgcmVjYWxj
IHRvIGNoaWxkcmVuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dSb290Ojppc1NoYWRvd0JvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Jvb3Q6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2VuRWxlbWVu
dC5jcHA6IHVzZSBlbnN1cmVTaGFkb3dSb290CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5Z2Vu
RWxlbWVudDo6SFRNTEtleWdlbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdl
bkVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxL
ZXlnZW5FbGVtZW50OjphcHBlbmRGb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MS2V5
Z2VuRWxlbWVudDo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEtleWdlbkVsZW1lbnQ6
OnNoYWRvd1NlbGVjdCk6CisgICAgICAgICogaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTE1ldGVyRWxlbWVudC5jcHA6IHVzZSBlbnN1cmVTaGFkb3dSb290Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWV0ZXJFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToK
KyAgICAgICAgKiBodG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwOiB1c2UgZW5zdXJlU2hhZG93
Um9vdAorICAgICAgICAoV2ViQ29yZTo6SFRNTFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hhZG93
U3VidHJlZSk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOiB1c2UgZW5zdXJlU2hhZG93
Um9vdAorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSk6
CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6IHVzZSBlbnN1cmVTaGFkb3dSb290
CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91c2VEb3duRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OnZhbHVlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6c2hhZG93U2xpZGVyVGh1bWIpOgorICAgICAg
ICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1ZhbGlkYXRpb25NZXNz
YWdlLmNwcDogdXNlIGVuc3VyZVNoYWRvd1Jvb3QKKyAgICAgICAgKFdlYkNvcmU6OlZhbGlkYXRp
b25NZXNzYWdlOjpidWlsZEJ1YmJsZVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6VmFsaWRhdGlv
bk1lc3NhZ2U6OmRlbGV0ZUJ1YmJsZVRyZWUpOgorICAgICAgICAqIGh0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6
OnNldFBvc2l0aW9uRnJvbVBvaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxl
bWVudDo6aG9zdElucHV0KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1l
bnQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOiB1c2Ug
ZW5zdXJlU2hhZG93Um9vdAorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sSW5wdXRFbGVt
ZW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sSW5wdXRFbGVtZW50
Ojp1cGRhdGVTdHlsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHA6IHVz
ZSBlbnN1cmVTaGFkb3dSb290CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OnRodW1i
UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmxheW91dCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OnNoYWRvd1NsaWRlclRodW1iKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclNsaWRlcjo6aW5EcmFnTW9kZSk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclNsaWRlci5oOgorCiAyMDExLTA0LTA3ICBTZXJnZXkgR2xhenVub3YgIDxzZXJnLmdsYXp1
bm92QGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCmluZGV4IGVlNzBhNGZiYTFkMTQ4NDM1YWU2YzI2ZWFlZjcxMjg5NGEy
MDVlYTEuLjFkMDUwMzAyMDA1Y2ExZTYzMmJiNWE2YWU0MGFiMWJlNGMyZmRlNmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCkBAIC0xMzMxLDYgKzEzMzEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yTm9k
ZUxpc3QuaCBcCisJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3BhY2VTcGxp
dFN0cmluZy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmggXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9TdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KaW5kZXggOGQzMTQ2YWJkNGQ1MTRkMTYxMWI2MDhhZTQ1OTk1NGZmMGJkYjllOC4u
MWU2MmE1MWUyZjY0ZjVkMDk5NjUxN2JmYjcxNDY1NDdhNmVmYzY1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KQEAgLTgwMCw3ICs4MDAsNiBAQCBfX1pON1dlYkNvcmU2V2lkZ2V0RDJFdgogX19aTjdX
ZWJDb3JlNnRvTm9kZUVOM0pTQzdKU1ZhbHVlRQogX19aTjdXZWJDb3JlN0NvbnNvbGUyMXNob3Vs
ZFByaW50RXhjZXB0aW9uc0V2CiBfX1pON1dlYkNvcmU3Q29uc29sZTI0c2V0U2hvdWxkUHJpbnRF
eGNlcHRpb25zRWIKLV9fWk43V2ViQ29yZTdFbGVtZW50MTBzaGFkb3dSb290RXYKIF9fWk43V2Vi
Q29yZTdJbnRSZWN0NXNjYWxlRWYKIF9fWk43V2ViQ29yZTdJbnRSZWN0NXVuaXRlRVJLUzBfCiBf
X1pON1dlYkNvcmU3SW50UmVjdDlpbnRlcnNlY3RFUktTMF8KQEAgLTEyNTIsNiArMTI1MSw3IEBA
IF9fWk5LN1dlYkNvcmU2V2lkZ2V0MjVjb252ZXJ0VG9Db250YWluaW5nV2luZG93RVJLTlNfN0lu
dFJlY3RFCiBfX1pOSzdXZWJDb3JlNldpZGdldDI1Y29udmVydFRvQ29udGFpbmluZ1dpbmRvd0VS
S05TXzhJbnRQb2ludEUKIF9fWk5LN1dlYkNvcmU2V2lkZ2V0OWZyYW1lUmVjdEV2CiBfX1pOSzdX
ZWJDb3JlN0VsZW1lbnQxMHNjcmVlblJlY3RFdgorX19aTks3V2ViQ29yZTdFbGVtZW50MTBzaGFk
b3dSb290RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDEyZ2V0QXR0cmlidXRlRVJLTlNfMTNRdWFs
aWZpZWROYW1lRQogX19aTks3V2ViQ29yZTdFbGVtZW50MTlib3VuZHNJbldpbmRvd1NwYWNlRXYK
IF9fWk5LN1dlYkNvcmU3RWxlbWVudDlpbm5lclRleHRFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGJh
ZDMxMTVlZjlhZWNjYmE4NDJhODFiYjhmYjc2ZTk1YTZmMTA2MTcuLmY0ODRjMWUzOTRkMGY5YWQ5
NTI5YTE1ZWRhZmM4Yzc0ZDYxNjc5OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU0NSw2ICs1NDUs
NyBAQAogICAgICAgICAgICAgJ2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oJywKICAgICAg
ICAgICAgICdkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKICAgICAgICAgICAgICdkb20v
U2NyaXB0UnVubmVyLmgnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmgnLAogICAgICAg
ICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgnLAogICAgICAgICAgICAgJ2RvbS9TdHlsZWRF
bGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9UZXh0LmgnLApAQCAtMjUyMiw2ICsyNTIzLDgg
QEAKICAgICAgICAgICAgICdkb20vU2VsZWN0RWxlbWVudC5oJywKICAgICAgICAgICAgICdkb20v
U2VsZWN0b3JOb2RlTGlzdC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9TZWxlY3Rvck5vZGVMaXN0
LmgnLAorICAgICAgICAgICAgJ2RvbS9TaGFkb3dSb290LmNwcCcsCisgICAgICAgICAgICAnZG9t
L1NoYWRvd1Jvb3QuaCcsCiAgICAgICAgICAgICAnZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwJywK
ICAgICAgICAgICAgICdkb20vU3RhdGljSGFzaFNldE5vZGVMaXN0LmNwcCcsCiAgICAgICAgICAg
ICAnZG9tL1N0YXRpY0hhc2hTZXROb2RlTGlzdC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZDQyMjFm
ZjlkZmQzYTk4NGEwZWRkOTYxNDI3NzliNzBkOGZjN2MwZS4uYzEyMjk3NmE3NjY0NDIyNTMzMDdi
N2U4ZTBlODA5ODhkZDE3Y2ZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTUzNCw2ICs1MzQsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBkb20vU2NyaXB0UnVubmVyLmNwcCBcCiAgICAgZG9tL1NlbGVjdEVs
ZW1lbnQuY3BwIFwKICAgICBkb20vU2VsZWN0b3JOb2RlTGlzdC5jcHAgXAorICAgIGRvbS9TaGFk
b3dSb290LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwIFwKICAgICBkb20vU3Rh
dGljTm9kZUxpc3QuY3BwIFwKICAgICBkb20vU3R5bGVkRWxlbWVudC5jcHAgXApAQCAtMTQ5Nyw2
ICsxNDk4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aCBcCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuaCBcCiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3Qu
aCBcCisgICAgZG9tL1NoYWRvd1Jvb3QuaCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBc
CiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmggXAogICAgIGRvbS9TdHlsZWRFbGVtZW50LmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxMzYx
NDg1ZDlmMzYyOTQ2NWQxYmQwY2Y2YjlkNWI0MjgwZTU5NDM3Li5kMDdhZGZhMjNkMjU2MTI0Nzdj
MGJlMjkwMDQzOGIzNmE2ODBjOTMxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagpAQCAtNDY0NDIsNiArNDY0NDIsNjIgQEAKIAkJCQk+CiAJCQk8L0Zp
bGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd1Jvb3QuY3BwIgor
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
Q29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIu
Llxkb21cU2hhZG93Um9vdC5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxkb21cU3BhY2VTcGxpdFN0cmluZy5jcHAiCiAJCQkJPgogCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDEwOGQzYzYzOGNhN2Y1ZDY0OTJhYzYxZGYzOWMyODllZDkwZWY4
NjUuLjc5YWI4ZDU1NTQzZmZkNjllZmYwZjRlOGU0OTlkM2M3ZDFmZDRiMTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMxOTYs
NiArMzE5Niw4IEBACiAJCUE2MjJBOEZDMTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJp
dHlCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE2MjJBOEY2MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCAqLzsg
fTsKIAkJQTYyMkE4RkQxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRpbmdTZWN1cml0eUJhc2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2MjJBOEY3MTIy
QzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi87IH07CiAJCUE2MjJBOEZG
MTIyQzQ0QTYwMEE3ODVCMyAvKiBHZW5lcmljQmluZGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTYyMkE4RjkxMjJDNDRBNjAwQTc4NUIzIC8qIEdl
bmVyaWNCaW5kaW5nLmggKi87IH07CisJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFk
b3dSb290LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE2RDE2OTYxMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLzsgfTsKKwkJQTZE
MTY5NjQxMzQ2QjRDMTAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE2RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBT
aGFkb3dSb290LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTcxNTFCRDgxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE1MUJENzEyRjE1
NThGMDA1QTBGNjQgLyogVGV4dENoZWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzE1RTY1MjEzNEJCQkVDMDBEOEU3MTMgLyog
UHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3MTVFNjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVzc1NoYWRv
d0VsZW1lbnQuY3BwICovOyB9OwogCQlBNzE1RTY1MzEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jl
c3NTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBNzE1RTY1MTEzNEJCQkVDMDBEOEU3MTMgLyogUHJvZ3Jlc3NTaGFkb3dFbGVtZW50
LmggKi87IH07CkBAIC05NzI0LDYgKzk3MjYsOCBAQAogCQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1
QjMgLyogQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBCaW5kaW5nU2VjdXJpdHlCYXNlLmNwcDsgcGF0aCA9IGdlbmVyaWMvQmluZGlu
Z1NlY3VyaXR5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE2MjJBOEY3
MTIyQzQ0QTYwMEE3ODVCMyAvKiBCaW5kaW5nU2VjdXJpdHlCYXNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEJpbmRpbmdTZWN1cml0eUJhc2UuaDsgcGF0aCA9IGdlbmVyaWMv
QmluZGluZ1NlY3VyaXR5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNjIy
QThGOTEyMkM0NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gR2VuZXJpY0JpbmRpbmcuaDsgcGF0aCA9IGdlbmVyaWMvR2VuZXJp
Y0JpbmRpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTZEMTY5NjExMzQ2QjQ5
QjAwMEVCNzcwIC8qIFNoYWRvd1Jvb3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2hhZG93Um9vdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE2
RDE2OTYzMTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNoYWRvd1Jvb3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTcxNTFCRDcxMkYxNTU4RjAwNUEwRjY0IC8qIFRleHRDaGVja2VyQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRDaGVja2VyQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTVFNjUwMTM0QkJCRUMwMEQ4RTcxMyAvKiBQcm9ncmVz
c1NoYWRvd0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QTcxNUU2NTExMzRCQkJFQzAwRDhFNzEzIC8qIFByb2dyZXNzU2hhZG93RWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9ncmVzc1NoYWRvd0VsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NDQ3LDYgKzE5NDUxLDggQEAKIAkJCQkwODRB
RUJFMzBGQjUwNUZBMDAzODQ4M0UgLyogU2VsZWN0RWxlbWVudC5oICovLAogCQkJCUJDN0ZBNjgw
MEQxRjE2NzkwMERCMjJBOSAvKiBTZWxlY3Rvck5vZGVMaXN0LmNwcCAqLywKIAkJCQlCQzdGQTY3
RjBEMUYxNjc5MDBEQjIyQTkgLyogU2VsZWN0b3JOb2RlTGlzdC5oICovLAorCQkJCUE2RDE2OTYx
MTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLywKKwkJCQlBNkQxNjk2MzEzNDZC
NEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oICovLAogCQkJCUQwMUEyN0FCMTBDOUJGRDgwMDAy
NkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmNwcCAqLywKIAkJCQlEMDFBMjdBQzEwQzlCRkQ4MDAw
MjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oICovLAogCQkJCUNFQTM5NDlBMTFENDVDREEwMDMw
OTRDRiAvKiBTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwICovLApAQCAtMTk5MTMsNiArMTk5MTks
NyBAQAogCQkJCUJDRDUzMzY0MEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCMTZDMjgwOTc5QzNCRDAwNDY3NzQxIC8q
IENhY2hlZFhTTFN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTUwMDgyNDVF
NTkwMDFFOUFCQyAvKiBDYWNoZVBvbGljeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQjFENUVDQjUx
MzRCNThEQTAwODdDNzhGIC8qIENhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZFNEU5MUFEMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDk0ODRGQzIxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTQ4NEZDNTEwMkNGMjNDMDAxODdERDMgLyogQ2Fu
dmFzUGF0dGVybi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDA3NCw2ICsyMDA4MSw4IEBACiAJCQkJ
QThDMjI4QTExMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTQxNjJBNDUxMTAxMTQ1QUUwMERGRjNFRCAvKiBEZWRpY2F0ZWRX
b3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUEzRDU4RjEwMUMxNTJEMDAzMTZE
MDcgLyogRGVkaWNhdGVkV29ya2VyVGhyZWFkLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDA2REZB
NjEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGRDA2REZBNjEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0MzNkVCOTEzNDJBQTNGMDA0QkVF
RjcgLyogRGVmYXVsdExvY2FsaXphdGlvblN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTY3RUJGNjEwMjk2MkJBMDAzRDI1MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnku
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEMzE2MDJDMTJCMDI2NzYwMEMxQTM1OSAvKiBEZWxheURT
UEtlcm5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTA4OSw2ICsyMTA5OCw3IEBACiAJCQkJOTNG
MTk5RTUwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOERGM0ZEMDA5N0ZBMEZDMDA1Mjk4MUIgLyogSFRNTENvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3N0IzODY1MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MQ29uc3RydWN0
aW9uU2l0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTFBMzE2NjMxMzRCQ0FFODAwN0M5QTRGIC8q
IEhUTUxDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzdDREJDMEZFRkYxNDIwMDcw
ODg3QiAvKiBIVE1MRGF0YUdyaWRDZWxsRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3
N0NCODcwRkVCRjVBRjAwNzA4ODdCIC8qIEhUTUxEYXRhR3JpZENvbEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDMjEyQTFGMEZFODMzMzIwMEVDMzcwOCAvKiBIVE1MRGF0YUdyaWRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIxNTgwLDYgKzIxNTkwLDggQEAKIAkJCQk5MDAxNzg4
MTEyRTAzNzA3MDA2NDg0NjIgLyogSlNPRVNTdGFuZGFyZERlcml2YXRpdmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2RUJGMEU3NzEyQTk4Njg4MDBEQjE3MDkgLyogSlNPRVNUZXh0dXJlRmxvYXQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTc3QTE3QUE3MTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1Zl
cnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREY2QkFGOTEzNEE0Qzk4MDA4
MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCUZERjZCQUY5MTM0QTRDOTgwMDgyMjkyMCAvKiBKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25F
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgyNkU4QUUwQTFBOEYyMzAwQ0QxQkI2IC8qIEpT
T3B0aW9uQ29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMEQ1NzQxMEE1Qzc4Njcw
MDdFREQ0QyAvKiBKU092ZXJmbG93RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjg0QkIx
MTA0NDlGRkEwMEVBRUI1MiAvKiBKU1BhZ2VUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMjE5MzQsNiArMjE5NDYsMTAgQEAKIAkJCQk5MDAxNzc0MTEyRTAzNDc4MDA2NDg0NjIg
LyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkVCRjBFNDkx
MkE4OTI2MTAwREIxNzA5IC8qIE9FU1RleHR1cmVGbG9hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzdBMTdBNzIxMkYyODE4MjAwNEUwMkY2IC8qIE9FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29t
cGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QTEzNEE0OUVGMDA4RDRC
NUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlG
REEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1
ZGlvRGVzdGluYXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEVBRjRBRjEwQzc0MkIx
MDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NzI4
MTU2MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwODcyODE1ODBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uR3JvdXBFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTIyMjUxLDYgKzIyMjY3LDcgQEAKIAkJCQkwRjNERDQ1MDEyRjVFQTFCMDAw
RDkxOTAgLyogU2hhZG93Qmx1ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI4QzQwRTgyMDMx
QjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RjMzOEE0MTFD
MEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBNkQx
Njk2NDEzNDZCNEMxMDAwRUI3NzAgLyogU2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTgwRTZDRTgwQTE5ODlDQTAwN0ZCOEM1IC8qIFNoYWRvd1ZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMkFGRkM5NDBEMDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBNEE5NTRFMEI0RURDQ0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuaCBpbiBI
ZWFkZXJzICovLApAQCAtMjI3MTksNiArMjI3MzYsNyBAQAogCQkJCTQ5NEJENzk1MEY1NUM4RUUw
MDc0NzgyOCAvKiBXZWJLaXRQb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFDMEZGMjUwRTRD
RUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZDRjMzMkYwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMUEzMTYyRDEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0
cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0FGMzQ4MTBBNkM0MDUyMDBBQkUwNkUgLyogV2Vi
U2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQxQjBEN0UyQjgyMDA3QzM5
ODMgLyogV2ViU2NyaXB0T2JqZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0FGMzQ4MzBBNkM0
MDUyMDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yMjgzMCwxMyArMjI4NDgsNiBAQAogCQkJCTkzRjE5OUVEMDgyNDVFNTkwMDFFOUFCQyAvKiBY
U0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJFNTEyRTBDRjZDNTEyMDAyRUE5
NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdFMkUwRjEyRjBG
QzlDMDBDMTMzNzkgLyogWFNTRmlsdGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlGREEzRTk1QTEz
NEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmggaW4gSGVhZGVy
cyAqLywKLQkJCQlGREEzRTk1QzEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGluZUF1ZGlvRGVzdGlu
YXRpb25Ob2RlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGREY2QkFGOTEzNEE0Qzk4MDA4MjI5MjAg
LyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUZE
MDZERkE2MTM0QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBp
biBIZWFkZXJzICovLAotCQkJCUUxQTMxNjJEMTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJp
YnV0ZWRTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQTMxNjYzMTM0QkNBRTgw
MDdDOUE0RiAvKiBIVE1MQ29udmVydGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlCMUQ1RUNCNTEz
NEI1OERBMDA4N0M3OEYgLyogQ2FsbGJhY2tGdW5jdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0y
MzI0OSw2ICsyMzI2MCw3IEBACiAJCQkJRDBEMTQxQjIxMkIyQkY1MjAwRTM5NjIwIC8qIENhY2hl
ZFJlc291cmNlUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0IxNkMyMzA5NzlDM0JE
MDA0Njc3NDEgLyogQ2FjaGVkU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQjE2QzI3
MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRYU0xTdHlsZVNoZWV0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUIxODI3NDkzMTM0Q0E0QzEwMEI5OEMyRCAvKiBDYWxsYmFja0Z1bmN0aW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTZFNEU5MUFDMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250
ZXh0QXR0cmlidXRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTQ4NEZDMTEwMkNGMjNDMDAx
ODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0ODRGQzQx
MDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1BhdHRlcm4uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0y
MzM4Miw2ICsyMzM5NCw4IEBACiAJCQkJQThDMjI4QTIxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29k
ZWREYXRhRG9jdW1lbnRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE2MkE0NTAxMDEx
NDVBRTAwREZGM0VEIC8qIERlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDFBM0Q1OEUxMDFDMTUyRDAwMzE2RDA3IC8qIERlZGljYXRlZFdvcmtlclRocmVhZC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGRDA2REZBNTEzNEE0REVGMDA2RjVEN0QgLyogRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEMDZERkE1MTM0
QTRERUYwMDZGNUQ3RCAvKiBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNDMzZFQjgxMzQyQUEzRjAwNEJFRUY3IC8qIERlZmF1bHRMb2NhbGl6YXRp
b25TdHJhdGVneS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTY3RUJGNTEwMjk2MkJBMDAzRDI1
MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQzMTYwMkIxMkIwMjY3NjAwQzFBMzU5IC8qIERlbGF5RFNQS2VybmVsLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMjQ0NDksNiArMjQ0NjMsOCBAQAogCQkJCTkwMDE3ODgwMTJFMDM3MDcwMDY0
ODQ2MiAvKiBKU09FU1N0YW5kYXJkRGVyaXZhdGl2ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NkVCRjBFNzYxMkE5ODY4ODAwREIxNzA5IC8qIEpTT0VTVGV4dHVyZUZsb2F0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTc3QTE3QUE2MTJGMjhCMkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5
T2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZERjZCQUY4MTM0QTRDOTgwMDgyMjkyMCAv
KiBKU09mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlG
REY2QkFGODEzNEE0Qzk4MDA4MjI5MjAgLyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgyNkVDNDgwQTFCMENCRTAwQ0QxQkI2IC8qIEpTT3B0
aW9uQ29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwRDU3NDAwQTVDNzg2NzAw
N0VERDRDIC8qIEpTT3ZlcmZsb3dFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTI4NEJC
MjEwNDQ5RkZBMDBFQUVCNTIgLyogSlNQYWdlVHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApAQCAtMjQ4MTUsNiArMjQ4MzEsMTAgQEAKIAkJCQk5MDAxNzc0MDEyRTAzNDc4MDA2NDg0
NjIgLyogT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2RUJG
MEU0ODEyQTg5MjYxMDBEQjE3MDkgLyogT0VTVGV4dHVyZUZsb2F0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTc3QTE3QTcxMTJGMjgxODIwMDRFMDJGNiAvKiBPRVNWZXJ0ZXhBcnJheU9iamVjdC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGREEzRTk1OTEzNEE0OUVGMDA4RDRCNUEgLyogT2ZmbGlu
ZUF1ZGlvQ29tcGxldGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEQTNFOTU5MTM0
QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJRkRBM0U5NUIxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGREEzRTk1QjEzNEE0OUVGMDA4RDRC
NUEgLyogT2ZmbGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUY0RUFGNEFFMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwODcyODE1NTBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwODcyODE1NzBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9u
R3JvdXBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjUwNjUsNiArMjUwODUsNyBAQAog
CQkJCTBGM0RENDRGMTJGNUVBMUIwMDBEOTE5MCAvKiBTaGFkb3dCbHVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNUVCOEMzMEU4MjAzMUIwMEIyNTk2NSAvKiBTaGFkb3dEYXRhLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUE3RjMzOEEzMTFDMEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE2RDE2OTYyMTM0NkI0OUIwMDBFQjc3MCAvKiBTaGFk
b3dSb290LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU2Q0Y0MEExOTg5Q0EwMDdGQjhDNSAv
KiBTaGFkb3dWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMkFGRkM5MzBEMDBBNURGMDAz
MDA3NEQgLyogU2hhcGVBcmFiaWMuYyBpbiBTb3VyY2VzICovLAogCQkJCTFBNEE5NTREMEI0RURD
Q0IwMDJEOEMzQyAvKiBTaGFyZWRCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNTQxOCw2
ICsyNTQzOSw3IEBACiAJCQkJOTNGMUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VD
b250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAv
KiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDRjMzMkUw
RjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTFBMzE2
MkUxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFDQUYzNDgyMEE2QzQwNTIwMEFCRTA2RSAvKiBXZWJTY3JpcHRPYmpl
Y3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MThBMzRDMTEwMjZDODMxMDAxQjY4OTYgLyogV2Vi
U29ja2V0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMEQ0QTRFMTAzMTc3QTIwMDQ5RUE1NCAv
KiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjU1MjAsMTIgKzI1NTQy
LDYgQEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3NvckxpYnhz
bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhT
TFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5NzdFMkUwRTEyRjBGQzlDMDBD
MTMzNzkgLyogWFNTRmlsdGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZEQTNFOTU5MTM0QTQ5
RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJRkRBM0U5NUIxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0Rlc3RpbmF0
aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGREY2QkFGODEzNEE0Qzk4MDA4MjI5MjAg
LyogSlNPZmZsaW5lQXVkaW9Db21wbGV0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
RkQwNkRGQTUxMzRBNERFRjAwNkY1RDdEIC8qIERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5j
cHAgaW4gU291cmNlcyAqLywKLQkJCQlFMUEzMTYyRTEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNB
dHRyaWJ1dGVkU3RyaW5nRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJQjE4Mjc0OTMxMzRD
QTRDMTAwQjk4QzJEIC8qIENhbGxiYWNrRnVuY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggODZmM2JhMzBiZWQyZWQ5NGEz
YmI0YzFiMGYyYzYyN2MwYzA5MjBhNy4uNDBjNzk0MWIyYTY5NzI5OGY5M2RiMTcxOTBhNjYxYjdh
ZGViMzE1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtODkz
LDcgKzg5Myw3IEBAIGlubGluZSB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmluaXRGb3JTdHlsZVJl
c29sdmUoRWxlbWVudCogZSwgUmVuZGVyU3R5bGUqIHBhcmVuCiB7CiAgICAgbV9jaGVja2VyLm1f
cHNldWRvU3R5bGUgPSBwc2V1ZG9JRDsKIAotICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJl
bnRPckhvc3ROb2RlKCkgOiAwOworICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGUoKSA6IDA7CiAKICAgICBpZiAocGFyZW50U3R5bGUpCiAgICAg
ICAgIG1fcGFyZW50U3R5bGUgPSBwYXJlbnRTdHlsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmNwcAppbmRleCBlYTAzODQ4YWFhZmJjZDAwMGY2ZjA5MDFmZTQ1YzdkNmUyMWFkYmIzLi41
NjU5ZjllZDQ4NGY2ODVlZTYyZTc4MGZiM2RjYTI3MmIwOWQ5M2I5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0NvbnRhaW5lck5vZGUuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBDb250YWluZXJOb2Rl
OjppbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQs
IEV4Y2UKIHsKICAgICAvLyBDaGVjayB0aGF0IHRoaXMgbm9kZSBpcyBub3QgImZsb2F0aW5nIi4K
ICAgICAvLyBJZiBpdCBpcywgaXQgY2FuIGJlIGRlbGV0ZWQgYXMgYSBzaWRlIGVmZmVjdCBvZiBz
ZW5kaW5nIG11dGF0aW9uIGV2ZW50cy4KLSAgICBBU1NFUlQocmVmQ291bnQoKSB8fCBwYXJlbnRO
b2RlKCkpOworICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE9ySG9zdE5vZGUoKSk7CiAK
ICAgICBlYyA9IDA7CiAKQEAgLTI0NCw3ICsyNDQsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OnJl
cGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxkLCBOb2RlKiBvbGRDaGlsZCwgRXhj
ZQogewogICAgIC8vIENoZWNrIHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAg
IC8vIElmIGl0IGlzLCBpdCBjYW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRp
bmcgbXV0YXRpb24gZXZlbnRzLgotICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE5vZGUo
KSk7CisgICAgQVNTRVJUKHJlZkNvdW50KCkgfHwgcGFyZW50T3JIb3N0Tm9kZSgpKTsKIAogICAg
IGVjID0gMDsKIApAQCAtNDAxLDcgKzQwMSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6cmVtb3Zl
Q2hpbGQoTm9kZSogb2xkQ2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIC8vIENoZWNr
IHRoYXQgdGhpcyBub2RlIGlzIG5vdCAiZmxvYXRpbmciLgogICAgIC8vIElmIGl0IGlzLCBpdCBj
YW4gYmUgZGVsZXRlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIHNlbmRpbmcgbXV0YXRpb24gZXZlbnRz
LgotICAgIEFTU0VSVChyZWZDb3VudCgpIHx8IHBhcmVudE5vZGUoKSk7CisgICAgQVNTRVJUKHJl
ZkNvdW50KCkgfHwgcGFyZW50T3JIb3N0Tm9kZSgpKTsKIAogICAgIGVjID0gMDsKIApAQCAtNTYx
LDcgKzU2MSw3IEBAIGJvb2wgQ29udGFpbmVyTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxO
b2RlPiBuZXdDaGlsZCwgRXhjZXB0aW9uQ29kZSYgZWMsIGJvCiB7CiAgICAgLy8gQ2hlY2sgdGhh
dCB0aGlzIG5vZGUgaXMgbm90ICJmbG9hdGluZyIuCiAgICAgLy8gSWYgaXQgaXMsIGl0IGNhbiBi
ZSBkZWxldGVkIGFzIGEgc2lkZSBlZmZlY3Qgb2Ygc2VuZGluZyBtdXRhdGlvbiBldmVudHMuCi0g
ICAgQVNTRVJUKHJlZkNvdW50KCkgfHwgcGFyZW50Tm9kZSgpKTsKKyAgICBBU1NFUlQocmVmQ291
bnQoKSB8fCBwYXJlbnRPckhvc3ROb2RlKCkpOwogCiAgICAgZWMgPSAwOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RPTUFsbEluT25lLmNwcAppbmRleCBjNjA4NGNlYTY5ZGNmZTRjZmZkYjFkMmVkNTFhNWI2YWE2
MmMxNDk4Li40YTUxZDkwN2JjMmZmMjk1OTgyNjMxOWJjNDBhNzIwMDAxOGNhODcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTEwOCw2ICsxMDgsNyBAQAogI2luY2x1ZGUgIlNj
cmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAiCiAjaW5jbHVkZSAiU2VsZWN0RWxlbWVudC5jcHAi
CiAjaW5jbHVkZSAiU2VsZWN0b3JOb2RlTGlzdC5jcHAiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5j
cHAiCiAjaW5jbHVkZSAiU3BhY2VTcGxpdFN0cmluZy5jcHAiCiAjaW5jbHVkZSAiU3RhdGljSGFz
aFNldE5vZGVMaXN0LmNwcCIKICNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5jcHAiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKaW5kZXggYzljMzAyMDM3NzgxNzNhNGMwNzM1
YTMxN2ZlYTM0MTdiOGUzZGNhMS4uZTk4ZWY5ZTU4YTBjZmYyYjhmOGQwZjQyNDcwMGY5OWM2OTEx
NjI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtMzEsNyAr
MzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWlubGluZSBEb2N1bWVudEZyYWdtZW50
OjpEb2N1bWVudEZyYWdtZW50KERvY3VtZW50KiBkb2N1bWVudCkKK0RvY3VtZW50RnJhZ21lbnQ6
OkRvY3VtZW50RnJhZ21lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIDogQ29udGFpbmVyTm9k
ZShkb2N1bWVudCkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudEZyYWdtZW50LmgKaW5kZXggZDU4OGI0ZTdiMDU3ZDJiMzI4ZTQ4YmEwMWIzN2UxMTM3NTk2
OGExNC4uZjU2NzUzNmIyYjE0NzRmYjA0MTVjMGNiMTg2MzRmNmFmNDQ2Njc4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5oCkBAIC0zNiw5ICszNiwxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwYXJzZUhUTUwoY29uc3QgU3RyaW5nJiwgRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IEZyYWdtZW50U2NyaXB0aW5nUGVybWlzc2lvbiA9IEZyYWdtZW50U2NyaXB0aW5nQWxsb3dlZCk7
CiAgICAgYm9vbCBwYXJzZVhNTChjb25zdCBTdHJpbmcmLCBFbGVtZW50KiBjb250ZXh0RWxlbWVu
dCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uID0gRnJhZ21lbnRTY3JpcHRpbmdBbGxvd2Vk
KTsKIAotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBEb2N1bWVudEZyYWdtZW50KERvY3VtZW50
Kik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgbm9kZU5hbWUoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIE5vZGVUeXBlIG5vZGVUeXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPE5vZGU+IGNsb25lTm9kZShib29sIGRlZXApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IGI1N2YzZDJkMjkyNWZmODFjZjk0NGUxNDAyNWI0MTcwNDQ0NGZjYzMuLjJmOGRlZGNjYmQwN2Y4
OTA1ZmRhY2Q5NzM2NmU2ZTIxYjNkMTQ1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTU0
LDYgKzU0LDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lk
Z2V0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAj
aW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uTGlzdC5o
IgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCkBAIC0xMDY1LDcgKzEwNjYsNyBAQCB2b2lkIEVsZW1l
bnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKIHsKICAgICAvLyBSZWYgY3VycmVu
dFN0eWxlIGluIGNhc2UgaXQgd291bGQgb3RoZXJ3aXNlIGJlIGRlbGV0ZWQgd2hlbiBzZXRSZW5k
ZXJTdHlsZSgpIGlzIGNhbGxlZC4KICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IGN1cnJlbnRTdHls
ZShyZW5kZXJTdHlsZSgpKTsKLSAgICBib29sIGhhc1BhcmVudFN0eWxlID0gcGFyZW50T3JIb3N0
Tm9kZSgpID8gcGFyZW50T3JIb3N0Tm9kZSgpLT5yZW5kZXJTdHlsZSgpIDogZmFsc2U7CisgICAg
Ym9vbCBoYXNQYXJlbnRTdHlsZSA9IHBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpID8g
cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCktPnJlbmRlclN0eWxlKCkgOiBmYWxzZTsK
ICAgICBib29sIGhhc0RpcmVjdEFkamFjZW50UnVsZXMgPSBjdXJyZW50U3R5bGUgJiYgY3VycmVu
dFN0eWxlLT5jaGlsZHJlbkFmZmVjdGVkQnlEaXJlY3RBZGphY2VudFJ1bGVzKCk7CiAKICAgICBp
ZiAoKGNoYW5nZSA+IE5vQ2hhbmdlIHx8IG5lZWRzU3R5bGVSZWNhbGMoKSkpIHsKQEAgLTExNDcs
NyArMTE0OCw3IEBAIHZvaWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdl
KQogICAgIH0KICAgICAvLyBGSVhNRTogVGhpcyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcg
Y29tYmluYXRvcnMuIFdpbGwgYmUgbmVjZXNzYXJ5IGluIFhCTDIgd29ybGQuCiAgICAgaWYgKE5v
ZGUqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKSkgewotICAgICAgICBpZiAoY2hhbmdlID49IEluaGVy
aXQgfHwgc2hhZG93LT5pc1RleHROb2RlKCkgfHwgc2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNh
bGMoKSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVSZWNhbGMoKSkgeworICAgICAgICBpZiAoY2hhbmdl
ID49IEluaGVyaXQgfHwgc2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ct
Pm5lZWRzU3R5bGVSZWNhbGMoKSkgewogICAgICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsK
ICAgICAgICAgICAgIHNoYWRvdy0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKICAgICAgICAgfQpAQCAt
MTE1NywyOCArMTE1OCwyNCBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdl
IGNoYW5nZSkKICAgICBjbGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwogfQogCi1Ob2RlKiBF
bGVtZW50OjpzaGFkb3dSb290KCkKK0NvbnRhaW5lck5vZGUqIEVsZW1lbnQ6OnNoYWRvd1Jvb3Qo
KSBjb25zdAogewogICAgIHJldHVybiBoYXNSYXJlRGF0YSgpID8gcmFyZURhdGEoKS0+bV9zaGFk
b3dSb290IDogMDsKIH0KIAotdm9pZCBFbGVtZW50OjpzZXRTaGFkb3dSb290KFBhc3NSZWZQdHI8
Tm9kZT4gbm9kZSkKK0NvbnRhaW5lck5vZGUqIEVsZW1lbnQ6OmVuc3VyZVNoYWRvd1Jvb3QoKQog
ewotICAgIC8vIEZJWE1FOiBCZWNhdXNlIHRvZGF5IHRoaXMgaXMgbmV2ZXIgY2FsbGVkIGZyb20g
c2NyaXB0IGRpcmVjdGx5LCB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5Ci0gICAgLy8gYWJvdXQgY29t
cHJvbWlzaW5nIERPTSB0cmVlIGludGVncml0eSAoZWcuIG5vZGUgYmVpbmcgYSBwYXJlbnQgb2Yg
dGhpcykuIEhvd2V2ZXIsCi0gICAgLy8gb25jZSB3ZSBpbXBsZW1lbnQgWEJMMiwgd2Ugd2lsbCBo
YXZlIHRvIGFkZCBpbnRlZ3JpdHkgY2hlY2tzIGhlcmUuCi0gICAgcmVtb3ZlU2hhZG93Um9vdCgp
OwotCi0gICAgUmVmUHRyPE5vZGU+IG5ld1Jvb3QgPSBub2RlOwotICAgIGlmICghbmV3Um9vdCkK
LSAgICAgICAgcmV0dXJuOworICAgIGlmIChDb250YWluZXJOb2RlKiBleGlzdGluZ1Jvb3QgPSBz
aGFkb3dSb290KCkpCisgICAgICAgIHJldHVybiBleGlzdGluZ1Jvb3Q7CiAKKyAgICBSZWZQdHI8
U2hhZG93Um9vdD4gbmV3Um9vdCA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZShkb2N1bWVudCgpKTsKICAg
ICBlbnN1cmVSYXJlRGF0YSgpLT5tX3NoYWRvd1Jvb3QgPSBuZXdSb290LmdldCgpOwogICAgIG5l
d1Jvb3QtPnNldFNoYWRvd0hvc3QodGhpcyk7CiAgICAgaWYgKGluRG9jdW1lbnQoKSkKICAgICAg
ICAgbmV3Um9vdC0+aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKLSAgICBpZiAoYXR0YWNoZWQoKSAm
JiAhbmV3Um9vdC0+YXR0YWNoZWQoKSkKKyAgICBpZiAoYXR0YWNoZWQoKSkKICAgICAgICAgbmV3
Um9vdC0+bGF6eUF0dGFjaCgpOworICAgIHJldHVybiBuZXdSb290LmdldCgpOwogfQogCiB2b2lk
IEVsZW1lbnQ6OnJlbW92ZVNoYWRvd1Jvb3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggNjE4YWQy
NzMyNThkMjVhMDQzNGVmYTk0MzRkZTAwYTIxZDUxZjM4Zi4uNTkwN2ExYTA3NjZmNWEzOTcwODNl
YmYwZmRkYWQ2NDgzMTdhYTlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBAIC0yMjksOCArMjI5LDEw
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVu
ZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgdm9pZCByZWNhbGNTdHlsZShT
dHlsZUNoYW5nZSA9IE5vQ2hhbmdlKTsKIAotICAgIE5vZGUqIHNoYWRvd1Jvb3QoKTsKLSAgICB2
b2lkIHNldFNoYWRvd1Jvb3QoUGFzc1JlZlB0cjxOb2RlPik7CisgICAgQ29udGFpbmVyTm9kZSog
c2hhZG93Um9vdCgpIGNvbnN0OworICAgIENvbnRhaW5lck5vZGUqIGVuc3VyZVNoYWRvd1Jvb3Qo
KTsKKyAgICB2b2lkIHJlbW92ZVNoYWRvd1Jvb3QoKTsKKwogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwogCiAgICAgUmVuZGVyU3R5bGUqIGNv
bXB1dGVkU3R5bGUoUHNldWRvSWQgPSBOT1BTRVVETyk7CkBAIC00MTEsNyArNDEzLDYgQEAgcHJp
dmF0ZToKICAgICBFbGVtZW50UmFyZURhdGEqIGVuc3VyZVJhcmVEYXRhKCk7CiAKICAgICBTcGVs
bGNoZWNrQXR0cmlidXRlU3RhdGUgc3BlbGxjaGVja0F0dHJpYnV0ZVN0YXRlKCkgY29uc3Q7Ci0g
ICAgdm9pZCByZW1vdmVTaGFkb3dSb290KCk7CiAKIHByaXZhdGU6CiAgICAgbXV0YWJsZSBSZWZQ
dHI8TmFtZWROb2RlTWFwPiBtX2F0dHJpYnV0ZU1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50UmFy
ZURhdGEuaAppbmRleCA4MThhMmMyZjBmZjk4N2RjNWNkNjNhOTcyOTViZWM1YjgwZWQ0YTI1Li4x
NGNlZWYyYTFmZTI5NTJhNzA3ZDA1Nzc1NWI4Mjc5M2RiNjM2NzI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudFJhcmVEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnRSYXJlRGF0YS5oCkBAIC0zMCw2ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgU2hhZG93Um9vdDsKKwogY2xhc3MgRWxlbWVudFJhcmVEYXRhIDogcHVibGlj
IE5vZGVSYXJlRGF0YSB7CiBwdWJsaWM6CiAgICAgRWxlbWVudFJhcmVEYXRhKCk7CkBAIC00Miw3
ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIEludFNpemUgbV9taW5pbXVtU2l6ZUZvclJlc2l6aW5n
OwogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9jb21wdXRlZFN0eWxlOwotICAgIE5vZGUqIG1f
c2hhZG93Um9vdDsKKyAgICBTaGFkb3dSb290KiBtX3NoYWRvd1Jvb3Q7CiAKICAgICBPd25QdHI8
RGF0YXNldERPTVN0cmluZ01hcD4gbV9kYXRhc2V0RE9NU3RyaW5nTWFwOwogICAgIE93blB0cjxD
bGFzc0xpc3Q+IG1fY2xhc3NMaXN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDE1Y2I4YThiNDhhMWYy
MTYzOTkxZjlkYjYxZmQ5NmE4YWE2NjNiNGQuLjFhNTMxMGY4ODZjYjNjMGI4OGE3ODRhZTY3MzA2
NzgwMDZmMjBlNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTE0MDIsMTggKzE0MDIsMjUgQEAgTm9k
ZSAqTm9kZTo6bmV4dExlYWZOb2RlKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAorQ29udGFp
bmVyTm9kZSogTm9kZTo6cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlKCkgY29uc3QKK3sK
KyAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBwYXJlbnRPckhvc3ROb2RlKCk7CisgICAgcmV0
dXJuIHBhcmVudCAmJiBwYXJlbnQtPmlzU2hhZG93Qm91bmRhcnkoKSA/IHBhcmVudC0+c2hhZG93
SG9zdCgpIDogcGFyZW50OworfQorCiBSZW5kZXJPYmplY3QqIE5vZGU6OmNyZWF0ZVJlbmRlcmVy
QW5kU3R5bGUoKQogewogICAgIEFTU0VSVCghcmVuZGVyZXIoKSk7CiAgICAgQVNTRVJUKGRvY3Vt
ZW50KCktPnNob3VsZENyZWF0ZVJlbmRlcmVycygpKTsKIAotICAgIENvbnRhaW5lck5vZGUqIHBh
cmVudCA9IHBhcmVudE9ySG9zdE5vZGUoKTsKKyAgICBDb250YWluZXJOb2RlKiBwYXJlbnQgPSBw
YXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKICAgICBBU1NFUlQocGFyZW50KTsKKwog
ICAgIFJlbmRlck9iamVjdCogcGFyZW50UmVuZGVyZXIgPSBwYXJlbnQtPnJlbmRlcmVyKCk7CiAK
ICAgICAvLyBGSVhNRTogSWdub3JpbmcgY2FuSGF2ZUNoaWxkcmVuKCkgaW4gYSBjYXNlIG9mIGlz
U2hhZG93Um9vdCgpIG1pZ2h0IGJlIHdyb25nLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI0MjMKLSAgICBpZiAoIXBhcmVudFJlbmRlcmVyIHx8
ICghcGFyZW50UmVuZGVyZXItPmNhbkhhdmVDaGlsZHJlbigpICYmICFpc1NoYWRvd1Jvb3QoKSkg
fHwgIXBhcmVudC0+Y2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcih0aGlzKSkKKyAgICBpZiAoIXBh
cmVudFJlbmRlcmVyIHx8ICghcGFyZW50UmVuZGVyZXItPmNhbkhhdmVDaGlsZHJlbigpICYmICEo
aXNTaGFkb3dSb290KCkgfHwgcGFyZW50Tm9kZSgpLT5pc1NoYWRvd0JvdW5kYXJ5KCkpKSB8fCAh
cGFyZW50LT5jaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKHRoaXMpKQogICAgICAgICByZXR1cm4g
MDsKIAogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSBzdHlsZUZvclJlbmRlcmVyKCk7
CkBAIC0xNDY1LDcgKzE0NzIsNyBAQCB2b2lkIE5vZGU6OmNyZWF0ZVJlbmRlcmVySWZOZWVkZWQo
KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBOb3RlOiBBZGRpbmcgbmV3UmVuZGVyZXIgaW5z
dGVhZCBvZiByZW5kZXJlcigpLiByZW5kZXJlcigpIG1heSBiZSBhIGNoaWxkIG9mIG5ld1JlbmRl
cmVyLgotICAgIHBhcmVudE9ySG9zdE5vZGUoKS0+cmVuZGVyZXIoKS0+YWRkQ2hpbGQobmV3UmVu
ZGVyZXIsIG5leHRSZW5kZXJlcigpKTsKKyAgICBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5
bGUoKS0+cmVuZGVyZXIoKS0+YWRkQ2hpbGQobmV3UmVuZGVyZXIsIG5leHRSZW5kZXJlcigpKTsK
IH0KIAogUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTm9kZTo6c3R5bGVGb3JSZW5kZXJlcigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuaAppbmRleCBjMjI1ZGJhYzhmZjg5MWRmOWNmZTI2NWVjMjZiODJkZTFjNGJiMTNiLi5j
NDkyYjRkNGIyOGY5YTVlOTcwZWQwMmE1NGE0MzE2NTc4ZDc4MmM4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAg
LTIwMyw2ICsyMDMsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQ2hhcmFjdGVyRGF0
YU5vZGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNEb2N1bWVudE5vZGUo
KSBjb25zdDsKICAgICBib29sIGlzU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWco
SXNTaGFkb3dSb290RmxhZyk7IH0KKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgd2hlbiBhbGwg
c2hhZG93IHJvb3RzIGFyZSBTaGFkb3dSb290cy4KKyAgICB2aXJ0dWFsIGJvb2wgaXNTaGFkb3dC
b3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgTm9kZSogc2hhZG93QW5jZXN0
b3JOb2RlKCk7CiAgICAgTm9kZSogc2hhZG93VHJlZVJvb3ROb2RlKCk7CiAgICAgYm9vbCBpc0lu
U2hhZG93VHJlZSgpOwpAQCAtNDQ0LDYgKzQ0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopOwogICAgIHZpcnR1YWwgYm9vbCBjaGls
ZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAg
dmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVy
U3R5bGUqKTsKKyAgICBDb250YWluZXJOb2RlKiBwYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5
bGUoKSBjb25zdDsKICAgICAKICAgICAvLyBXcmFwcGVyIGZvciBub2RlcyB0aGF0IGRvbid0IGhh
dmUgYSByZW5kZXJlciwgYnV0IHN0aWxsIGNhY2hlIHRoZSBzdHlsZSAobGlrZSBIVE1MT3B0aW9u
RWxlbWVudCkuCiAgICAgUmVuZGVyU3R5bGUqIHJlbmRlclN0eWxlKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWFmNTgwODQyMzI4NTAxZmI2MzViMWExOTQz
ZmY3N2I5ZTIzMzQxOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTaGFkb3dSb290OjpT
aGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IERvY3VtZW50RnJhZ21lbnQoZG9j
dW1lbnQpCit7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKK30KKwordm9pZCBTaGFkb3dSb290Ojpy
ZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCit7CisgICAgZm9yIChOb2RlKiBuID0gZmly
c3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgbi0+cmVjYWxjU3R5
bGUoY2hhbmdlKTsKKworICAgIGNsZWFyTmVlZHNTdHlsZVJlY2FsYygpOworICAgIGNsZWFyQ2hp
bGROZWVkc1N0eWxlUmVjYWxjKCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjlmZmRkZmYzZjBhMjI5MWFjNDg2ZWExYmJhOTQzMzZiZDIzYTljMjIKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBAIC0wLDAgKzEsNTQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFNoYWRvd1Jvb3RfaAorI2RlZmluZSBTaGFkb3dSb290X2gKKworI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBE
b2N1bWVudDsKKworY2xhc3MgU2hhZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBjcmVhdGUoRG9jdW1l
bnQqKTsKKworICAgIHZpcnR1YWwgYm9vbCBpc1NoYWRvd0JvdW5kYXJ5KCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgdm9pZCByZWNhbGNTdHlsZShTdHlsZUNoYW5nZSA9IE5v
Q2hhbmdlKTsKKworcHJpdmF0ZToKKyAgICBTaGFkb3dSb290KERvY3VtZW50Kik7Cit9OworCitp
bmxpbmUgUGFzc1JlZlB0cjxTaGFkb3dSb290PiBTaGFkb3dSb290OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2hhZG93Um9vdChkb2N1bWVu
dCkpOworfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MS2V5Z2VuRWxlbWVudC5jcHAKaW5kZXggYjkwMzM1ZWM0MjkyNTcwNWU0YWUzOGE3NGQwNmFj
YWRhZTgyZDU4ZC4uMjljOWRlYmE3MGM4Zjg3MzUyMzRlYjI2ZDkxMWVhZDNhMDcwOGI5YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25F
bGVtZW50LmgiCiAjaW5jbHVkZSAiU1NMS2V5R2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiU2hhZG93
Um9vdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAKQEAgLTY3LDE1ICs2OCwxOCBAQCBpbmxpbmUgSFRNTEtleWdlbkVsZW1lbnQ6OkhUTUxLZXln
ZW5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZQogICAgIEFTU0VS
VChoYXNUYWdOYW1lKGtleWdlblRhZykpOwogCiAgICAgLy8gQ3JlYXRlIGEgc2VsZWN0IGVsZW1l
bnQgd2l0aCBvbmUgb3B0aW9uIGVsZW1lbnQgZm9yIGVhY2gga2V5IHNpemUuCi0gICAgUmVmUHRy
PEhUTUxTZWxlY3RFbGVtZW50PiBzZWxlY3QgPSBLZXlnZW5TZWxlY3RFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogICAgIFZlY3RvcjxTdHJpbmc+IGtleXM7CiAgICAgZ2V0U3VwcG9ydGVkS2V5
U2l6ZXMoa2V5cyk7CisKKyAgICBSZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IHNlbGVjdCA9IEtl
eWdlblNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgRXhjZXB0aW9uQ29kZSBl
YyA9IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlzLnNpemUoKTsgKytpKSB7CiAg
ICAgICAgIFJlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gb3B0aW9uID0gSFRNTE9wdGlvbkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCwgdGhpcy0+Zm9ybSgpKTsKLSAgICAgICAgc2VsZWN0LT5wYXJz
ZXJBZGRDaGlsZChvcHRpb24pOwotICAgICAgICBvcHRpb24tPnBhcnNlckFkZENoaWxkKFRleHQ6
OmNyZWF0ZShkb2N1bWVudCwga2V5c1tpXSkpOworICAgICAgICBzZWxlY3QtPmFwcGVuZENoaWxk
KG9wdGlvbiwgZWMpOworICAgICAgICBvcHRpb24tPmFwcGVuZENoaWxkKFRleHQ6OmNyZWF0ZShk
b2N1bWVudCwga2V5c1tpXSksIGVjKTsKICAgICB9Ci0gICAgc2V0U2hhZG93Um9vdChzZWxlY3Qp
OworCisgICAgZW5zdXJlU2hhZG93Um9vdCgpLT5hcHBlbmRDaGlsZChzZWxlY3QsIGVjKTsKIH0K
IAogUGFzc1JlZlB0cjxIVE1MS2V5Z2VuRWxlbWVudD4gSFRNTEtleWdlbkVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxG
b3JtRWxlbWVudCogZm9ybSkKQEAgLTg3LDcgKzkxLDcgQEAgdm9pZCBIVE1MS2V5Z2VuRWxlbWVu
dDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKQogewogICAgIC8vIFJlZmxl
Y3QgZGlzYWJsZWQgYXR0cmlidXRlIG9uIHRoZSBzaGFkb3cgc2VsZWN0IGVsZW1lbnQKICAgICBp
ZiAoYXR0ci0+bmFtZSgpID09IGRpc2FibGVkQXR0cikKLSAgICAgICAgc2VsZWN0U2hhZG93KCkt
PnNldEF0dHJpYnV0ZShhdHRyLT5uYW1lKCksIGF0dHItPnZhbHVlKCkpOworICAgICAgICBzaGFk
b3dTZWxlY3QoKS0+c2V0QXR0cmlidXRlKGF0dHItPm5hbWUoKSwgYXR0ci0+dmFsdWUoKSk7CiAK
ICAgICBpZiAoYXR0ci0+bmFtZSgpID09IGNoYWxsZW5nZUF0dHIpCiAgICAgICAgIG1fY2hhbGxl
bmdlID0gYXR0ci0+dmFsdWUoKTsKQEAgLTEwMiw3ICsxMDYsNyBAQCBib29sIEhUTUxLZXlnZW5F
bGVtZW50OjphcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kZWRfdmFsdWVzLCBib29s
KQogICAgIC8vIE9ubHkgUlNBIGlzIHN1cHBvcnRlZCBhdCB0aGlzIHRpbWUuCiAgICAgaWYgKCFt
X2tleVR5cGUuaXNOdWxsKCkgJiYgIWVxdWFsSWdub3JpbmdDYXNlKG1fa2V5VHlwZSwgInJzYSIp
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgU3RyaW5nIHZhbHVlID0gc2lnbmVkUHVibGlj
S2V5QW5kQ2hhbGxlbmdlU3RyaW5nKHNlbGVjdFNoYWRvdygpLT5zZWxlY3RlZEluZGV4KCksIG1f
Y2hhbGxlbmdlLCBkb2N1bWVudCgpLT5iYXNlVVJMKCkpOworICAgIFN0cmluZyB2YWx1ZSA9IHNp
Z25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyhzaGFkb3dTZWxlY3QoKS0+c2VsZWN0ZWRJ
bmRleCgpLCBtX2NoYWxsZW5nZSwgZG9jdW1lbnQoKS0+YmFzZVVSTCgpKTsKICAgICBpZiAodmFs
dWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBlbmNvZGVkX3ZhbHVlcy5h
cHBlbmREYXRhKG5hbWUoKSwgdmFsdWUudXRmOCgpKTsKQEAgLTExNywxMiArMTIxLDE0IEBAIGNv
bnN0IEF0b21pY1N0cmluZyYgSFRNTEtleWdlbkVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNv
bnN0CiAKIHZvaWQgSFRNTEtleWdlbkVsZW1lbnQ6OnJlc2V0KCkKIHsKLSAgICBzdGF0aWNfY2Fz
dDxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4oc2VsZWN0U2hhZG93KCkpLT5yZXNldCgpOworICAg
IHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPihzaGFkb3dTZWxlY3QoKSktPnJl
c2V0KCk7CiB9CiAKLUhUTUxTZWxlY3RFbGVtZW50KiBIVE1MS2V5Z2VuRWxlbWVudDo6c2VsZWN0
U2hhZG93KCkKK0hUTUxTZWxlY3RFbGVtZW50KiBIVE1MS2V5Z2VuRWxlbWVudDo6c2hhZG93U2Vs
ZWN0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQq
PihzaGFkb3dSb290KCkpOworICAgIE5vZGUqIHNoYWRvdyA9IHNoYWRvd1Jvb3QoKTsKKyAgICBB
U1NFUlQoc2hhZG93KTsKKyAgICByZXR1cm4gc2hhZG93ID8gc3RhdGljX2Nhc3Q8SFRNTFNlbGVj
dEVsZW1lbnQqPihzaGFkb3ctPmZpcnN0Q2hpbGQoKSkgOiAwOwogfQogCiB9IC8vIG5hbWVzcGFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5oCmluZGV4IDAyMDAzZTgwZDJk
OGY4MWI3NjlhOTIxNDMwZGNmYTRkNmMwMzUzMjAuLjg4NzgyYzg4YzM3OTYxNjM5YmI4YzY3OTdh
ZTkxZDRlMDc0ODY3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEtleWdl
bkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxLZXlnZW5FbGVtZW50LmgK
QEAgLTUxLDcgKzUxLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOwog
Ci0gICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdFNoYWRvdygpOworICAgIEhUTUxTZWxlY3RF
bGVtZW50KiBzaGFkb3dTZWxlY3QoKSBjb25zdDsKIAogICAgIEF0b21pY1N0cmluZyBtX2NoYWxs
ZW5nZTsKICAgICBBdG9taWNTdHJpbmcgbV9rZXlUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1ldGVyRWxlbWVudC5jcHAKaW5kZXggNzY4NzI4M2ViNzlkNThhMzgxNWE2YzI4Mzk3ZDRkOTk2
YWUzM2IyYS4uODhiMTYyMjFmMTU3YjRjNDM3MTFmOWU5YzZlMmFmY2RiMGMyMDUyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWV0ZXJFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZXRlckVsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIk1ldGVyU2hhZG93RWxlbWVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlck1ldGVyLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
MjMwLDcgKzIzMSw3IEBAIHZvaWQgSFRNTE1ldGVyRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJl
ZSgpCiAgICAgbV92YWx1ZSA9IE1ldGVyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSk7
CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgYmFyLT5hcHBlbmRDaGlsZChtX3ZhbHVl
LCBlYyk7Ci0gICAgc2V0U2hhZG93Um9vdChiYXIpOworICAgIGVuc3VyZVNoYWRvd1Jvb3QoKS0+
YXBwZW5kQ2hpbGQoYmFyLCBlYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCBkZmI4ZDQ0NThlMDRmMDkwMTlk
NThjNjkwY2Q3ZGUwMDZhZGI5ZThiLi4zOWIxMjliNzZhMmNhMmU4Mjc4Nzk4MzU2YjY3ZGMyNWY2
YmNkMzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVk
ZSAiUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIK
KyNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzcsOSArMTM4LDkgQEAgdm9pZCBIVE1MUHJvZ3Jl
c3NFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKICAgICBSZWZQdHI8UHJvZ3Jlc3NC
YXJFbGVtZW50PiBiYXIgPSBQcm9ncmVzc0JhckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsK
ICAgICBtX3ZhbHVlID0gUHJvZ3Jlc3NWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKTsK
LSAgICBFeGNlcHRpb25Db2RlIGUgPSAwOwotICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwg
ZSk7Ci0gICAgc2V0U2hhZG93Um9vdChiYXIpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwor
ICAgIGJhci0+YXBwZW5kQ2hpbGQobV92YWx1ZSwgZWMpOworICAgIGVuc3VyZVNoYWRvd1Jvb3Qo
KS0+YXBwZW5kQ2hpbGQoYmFyLCBlYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5jcHAKaW5kZXggZTcwOGEzNTYyOGYwMWU2ZTVkMzljYzZhZTA5MzMxMjkyNThi
NzQyNi4uYmEyNzQwODcwNmIwMjYwMGI4ZDMwNjYwYzFiNDQ3NzI0MTVjODU1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlJlbmRlck9i
amVjdC5oIgogI2luY2x1ZGUgIlJlc2V0SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiU2VhcmNoSW5w
dXRUeXBlLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlN1Ym1pdElucHV0
VHlwZS5oIgogI2luY2x1ZGUgIlRlbGVwaG9uZUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIlRleHRJ
bnB1dFR5cGUuaCIKQEAgLTM1OSw3ICszNjAsNyBAQCB2b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hh
ZG93U3VidHJlZSgpCiAKIHZvaWQgSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCiB7
Ci0gICAgZWxlbWVudCgpLT5zZXRTaGFkb3dSb290KDApOworICAgIGVsZW1lbnQoKS0+cmVtb3Zl
U2hhZG93Um9vdCgpOwogfQogCiBkb3VibGUgSW5wdXRUeXBlOjpwYXJzZVRvRG91YmxlKGNvbnN0
IFN0cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwCmluZGV4IGY3ZWU2NzQ3NGQzMmI5NDY4OTk2NTI4YzUxYTFmYTc1YWJm
ZjdlZmUuLjI4YWFhNzc1ZjE5ZDUyMWIwZTI5MGMxNDM0MWEwZTdkNGMxNmQyYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVk
ZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1
ZGUgIlJlbmRlclNsaWRlci5oIgorI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJT
bGlkZXJUaHVtYkVsZW1lbnQuaCIKICNpbmNsdWRlICJTdGVwUmFuZ2UuaCIKICNpbmNsdWRlIDxs
aW1pdHM+CkBAIC0xNDgsNyArMTQ5LDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlTW91
c2VEb3duRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAgICAgaWYgKGV2ZW50LT5idXR0b24oKSAh
PSBMZWZ0QnV0dG9uIHx8IGV2ZW50LT50YXJnZXQoKSAhPSBlbGVtZW50KCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGlmIChTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iID0gdG9TbGlkZXJUaHVt
YkVsZW1lbnQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpKQorICAgIGlmIChTbGlkZXJUaHVtYkVs
ZW1lbnQqIHRodW1iID0gc2hhZG93U2xpZGVyVGh1bWIoKSkKICAgICAgICAgdGh1bWItPmRyYWdG
cm9tKGV2ZW50LT5hYnNvbHV0ZUxvY2F0aW9uKCkpOwogfQogCkBAIC0xOTYsNyArMTk3LDggQEAg
dm9pZCBSYW5nZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqIGV2
ZW50KQogCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKCkKIHsKLSAg
ICBlbGVtZW50KCktPnNldFNoYWRvd1Jvb3QoU2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGUoZWxl
bWVudCgpLT5kb2N1bWVudCgpKSk7CisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgZWxl
bWVudCgpLT5lbnN1cmVTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKFNsaWRlclRodW1iRWxlbWVu
dDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSksIGVjKTsKIH0KIAogUmVuZGVyT2JqZWN0
KiBSYW5nZUlucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5k
ZXJTdHlsZSopIGNvbnN0CkBAIC0yNDEsNyArMjQzLDcgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6
bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCkKIAogdm9pZCBSYW5nZUlucHV0VHlwZTo6dmFsdWVD
aGFuZ2VkKCkKIHsKLSAgICB0b1NsaWRlclRodW1iRWxlbWVudChlbGVtZW50KCktPnNoYWRvd1Jv
b3QoKSktPnNldFBvc2l0aW9uRnJvbVZhbHVlKCk7CisgICAgc2hhZG93U2xpZGVyVGh1bWIoKS0+
c2V0UG9zaXRpb25Gcm9tVmFsdWUoKTsKIH0KIAogU3RyaW5nIFJhbmdlSW5wdXRUeXBlOjpmYWxs
YmFja1ZhbHVlKCkKQEAgLTI2NSw0ICsyNjcsMTAgQEAgYm9vbCBSYW5nZUlucHV0VHlwZTo6c2hv
dWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKQogICAgIHJldHVybiB0cnVlOwogfQogCitTbGlkZXJU
aHVtYkVsZW1lbnQqIFJhbmdlSW5wdXRUeXBlOjpzaGFkb3dTbGlkZXJUaHVtYigpIGNvbnN0Cit7
CisgICAgTm9kZSogc2hhZG93ID0gZWxlbWVudCgpLT5zaGFkb3dSb290KCk7CisgICAgcmV0dXJu
IHNoYWRvdyA/IHRvU2xpZGVyVGh1bWJFbGVtZW50KHNoYWRvdy0+Zmlyc3RDaGlsZCgpKSA6IDA7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5
cGUuaAppbmRleCAzNzUyOTg1MjAyYWQyMTQxY2EwOTc1NGU5OTdkYzliMGRiOGNjMDA3Li43NWU3
YTE3NDVjNmVlY2Q3MzU1ZjRkMDJjYjA3OGM4OGJlOWRiNDk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9S
YW5nZUlucHV0VHlwZS5oCkBAIC0zNSw2ICszNSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorY2xhc3MgU2xpZGVyVGh1bWJFbGVtZW50OworCiBjbGFzcyBSYW5nZUlucHV0VHlwZSA6IHB1
YmxpYyBJbnB1dFR5cGUgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPElucHV0VHlw
ZT4gY3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqKTsKQEAgLTY3LDYgKzY5LDggQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIFN0cmluZyBmYWxsYmFja1ZhbHVlKCk7CiAgICAgdmlydHVhbCBTdHJpbmcg
c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpOworCisgICAgU2xpZGVyVGh1bWJFbGVt
ZW50KiBzaGFkb3dTbGlkZXJUaHVtYigpIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAppbmRleCA1OWEx
NDY3OWUzYjA5YzhhNjAyMTc5Nzg5ODJlNTNlZGJjZGVlYjFhLi40ODkxMmQ3MzcxYzJlMDVlYzAx
OTQzMjU2NzllZjY0NWUyZjRiNDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Zh
bGlkYXRpb25NZXNzYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1ZhbGlkYXRpb25N
ZXNzYWdlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlNoYWRv
d1Jvb3QuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
IApAQCAtMTI5LDEyICsxMzAsNyBAQCB2b2lkIFZhbGlkYXRpb25NZXNzYWdlOjpidWlsZEJ1YmJs
ZVRyZWUoVGltZXI8VmFsaWRhdGlvbk1lc3NhZ2U+KikKICAgICAvLyBjb250YWlucyBub24tYWJz
b2x1dGUgb3Igbm9uLWZpeGVkIHJlbmRlcmVycyBhcyBjaGlsZHJlbi4KICAgICBtX2J1YmJsZS0+
Z2V0SW5saW5lU3R5bGVEZWNsKCktPnNldFByb3BlcnR5KENTU1Byb3BlcnR5UG9zaXRpb24sIENT
U1ZhbHVlQWJzb2x1dGUpOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIC8vIEZJWE1F
OiBXZSBuZWVkIGEgd2F5IHRvIGhvc3QgbXVsdGlwbGUgc2hhZG93IHJvb3RzIGluIGEgc2luZ2xl
IG5vZGUsIG9yCi0gICAgLy8gdG8gaW5oZXJpdCBhbiBleGlzdGluZyBzaGFkb3cgdHJlZS4KLSAg
ICBpZiAoaG9zdC0+c2hhZG93Um9vdCgpKQotICAgICAgICBob3N0LT5zaGFkb3dSb290KCktPmFw
cGVuZENoaWxkKG1fYnViYmxlLmdldCgpLCBlYyk7Ci0gICAgZWxzZQotICAgICAgICBob3N0LT5z
ZXRTaGFkb3dSb290KG1fYnViYmxlKTsKKyAgICBob3N0LT5lbnN1cmVTaGFkb3dSb290KCktPmFw
cGVuZENoaWxkKG1fYnViYmxlLmdldCgpLCBlYyk7CiAKICAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+
IGNsaXBwZXIgPSBFbGVtZW50V2l0aFBzZXVkb0lkOjpjcmVhdGUoZG9jLCAiLXdlYmtpdC12YWxp
ZGF0aW9uLWJ1YmJsZS1hcnJvdy1jbGlwcGVyIik7CiAgICAgY2xpcHBlci0+YXBwZW5kQ2hpbGQo
RWxlbWVudFdpdGhQc2V1ZG9JZDo6Y3JlYXRlKGRvYywgIi13ZWJraXQtdmFsaWRhdGlvbi1idWJi
bGUtYXJyb3ciKSwgZWMpOwpAQCAtMTYxLDEyICsxNTcsOCBAQCB2b2lkIFZhbGlkYXRpb25NZXNz
YWdlOjpkZWxldGVCdWJibGVUcmVlKFRpbWVyPFZhbGlkYXRpb25NZXNzYWdlPiopCiAgICAgaWYg
KG1fYnViYmxlKSB7CiAgICAgICAgIG1fYnViYmxlTWVzc2FnZSA9IDA7CiAgICAgICAgIEhUTUxF
bGVtZW50KiBob3N0ID0gdG9IVE1MRWxlbWVudChtX2VsZW1lbnQpOwotICAgICAgICBpZiAobV9i
dWJibGUtPmlzU2hhZG93Um9vdCgpKQotICAgICAgICAgICAgaG9zdC0+c2V0U2hhZG93Um9vdCgw
KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjOwotICAgICAg
ICAgICAgaG9zdC0+c2hhZG93Um9vdCgpLT5yZW1vdmVDaGlsZChtX2J1YmJsZS5nZXQoKSwgZWMp
OwotICAgICAgICB9CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisgICAgICAgIGhvc3QtPnNo
YWRvd1Jvb3QoKS0+cmVtb3ZlQ2hpbGQobV9idWJibGUuZ2V0KCksIGVjKTsKICAgICAgICAgbV9i
dWJibGUgPSAwOwogICAgIH0KICAgICBtX21lc3NhZ2UgPSBTdHJpbmcoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmluZGV4IDYzNTMy
NTkzMzIyMTJkZjA3YWUxZjc4YmU4NzQwYmQ0MjkzNmI3ZmIuLjhhMDZjYjMzZmI1Y2JmY2EwMGZm
YzhhZTZkZmVmNTRkOTFjNzRkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgU2xpZGVy
VGh1bWJFbGVtZW50OjpkcmFnRnJvbShjb25zdCBJbnRQb2ludCYgcG9pbnQpCiAKIHZvaWQgU2xp
ZGVyVGh1bWJFbGVtZW50OjpzZXRQb3NpdGlvbkZyb21Qb2ludChjb25zdCBJbnRQb2ludCYgcG9p
bnQpCiB7Ci0gICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5w
dXRFbGVtZW50Kj4oc2hhZG93SG9zdCgpKTsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9
IGhvc3RJbnB1dCgpOwogICAgIEFTU0VSVChpbnB1dCk7CiAKICAgICBpZiAoIWlucHV0LT5yZW5k
ZXJlcigpIHx8ICFyZW5kZXJlcigpKQpAQCAtMTk4LDYgKzE5OCwxMiBAQCB2b2lkIFNsaWRlclRo
dW1iRWxlbWVudDo6ZGV0YWNoKCkKICAgICBIVE1MRGl2RWxlbWVudDo6ZGV0YWNoKCk7CiB9CiAK
K0hUTUxJbnB1dEVsZW1lbnQqIFNsaWRlclRodW1iRWxlbWVudDo6aG9zdElucHV0KCkKK3sKKyAg
ICBBU1NFUlQocGFyZW50Tm9kZSgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTElucHV0
RWxlbWVudCo+KHBhcmVudE5vZGUoKS0+c2hhZG93SG9zdCgpKTsKK30KKwogY29uc3QgQXRvbWlj
U3RyaW5nJiBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKICAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2xpZGVyVGh1bWIsICgiLXdlYmtp
dC1zbGlkZXItdGh1bWIiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TbGlkZXJUaHVtYkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRl
clRodW1iRWxlbWVudC5oCmluZGV4IDk0MTRhYzQ4YTY5MWUwOGFhY2NkNDI4NTcxYmI1ZWFmYTNh
OWFiZDkuLjJmYTYwY2I1ZTRiOTAwZGExYjRkY2I0MmU4NmRhNGJjY2M1MzBkNTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oCkBAIC00MSw2
ICs0MSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxFbGVtZW50OworY2xh
c3MgSFRNTElucHV0RWxlbWVudDsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRmxvYXRQb2ludDsKIApA
QCAtNjIsNiArNjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnREcmFnZ2luZygpOwogICAg
IHZvaWQgc3RvcERyYWdnaW5nKCk7CiAgICAgdm9pZCBzZXRQb3NpdGlvbkZyb21Qb2ludChjb25z
dCBJbnRQb2ludCYpOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGhvc3RJbnB1dCgpOwogCiAgICAg
RmxvYXRQb2ludCBtX29mZnNldFRvVGh1bWI7CiAgICAgYm9vbCBtX2luRHJhZ01vZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRl
eCA0OWM0NTc4NGFhNzcyOTE0NDcxMjI2YmU1Mzk3ZDc4ZTRhY2IyODVlLi5iOGFkM2QzODQyMDcy
ZmQxM2RiZjc4M2U3ODgyMzA5ZjcxZDYwODAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lk
IE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6YXR0YWNoKCkKICAgICAgICAgcGFyZW50Tm9kZSgp
LT5yZW5kZXJlcigpLT5hZGRDaGlsZChyZW5kZXJlciwgc2libGluZyA/IHNpYmxpbmctPnJlbmRl
cmVyKCkgOiAwKTsKICAgICB9ICAKICAgICBDb250YWluZXJOb2RlOjphdHRhY2goKTsKLSAgICAv
LyBGSVhNRTogQ3VycmVudGx5LCBNZWlkYUNvbnRyb2xJbnB1dCBjaXJjdW12ZW50cyB0aGUgbm9y
bWFsIGF0dGFjaG1lbnQKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5LCBNZWRpYUNvbnRyb2xJbnB1
dCBjaXJjdW12ZW50cyB0aGUgbm9ybWFsIGF0dGFjaG1lbnQKICAgICAvLyBhbmQgc3R5bGUgcmVj
YWxjIGN5Y2xlIGFuZCB0aHVzIHdlIG5lZWQgdG8gYWRkIGV4dHJhIGxvZ2ljIHRvIGJlIGF3YXJl
IG9mCiAgICAgLy8gdGhlIHNoYWRvdyBET00uIFJlbW92ZSB0aGlzIG9uY2UgYWxsIG1lZGlhIGNv
bnRyb2xzIGFyZSB0cmFuc2l0aW9uZWQgdG8gdXNlIHRoZSByZWd1bGFyCiAgICAgLy8gc3R5bGUg
Y2FsY3VsYXRpb24uCkBAIC00ODEsNyArNDgxLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xJbnB1dEVs
ZW1lbnQ6OnVwZGF0ZVN0eWxlKCkKICAgICBlbHNlIGlmIChyZW5kZXJlcigpKQogICAgICAgICBy
ZW5kZXJlcigpLT5zZXRTdHlsZShzdHlsZS5nZXQoKSk7CiAKLSAgICAvLyBGSVhNRTogQ3VycmVu
dGx5LCBNZWlkYUNvbnRyb2xJbnB1dCBjaXJjdW12ZW50cyB0aGUgbm9ybWFsIGF0dGFjaG1lbnQK
KyAgICAvLyBGSVhNRTogQ3VycmVudGx5LCBNZWRpYUNvbnRyb2xJbnB1dCBjaXJjdW12ZW50cyB0
aGUgbm9ybWFsIGF0dGFjaG1lbnQKICAgICAvLyBhbmQgc3R5bGUgcmVjYWxjIGN5Y2xlIGFuZCB0
aHVzIHdlIG5lZWQgdG8gYWRkIGV4dHJhIGxvZ2ljIHRvIGJlIGF3YXJlIG9mCiAgICAgLy8gdGhl
IHNoYWRvdyBET00uIFJlbW92ZSB0aGlzIG9uY2UgYWxsIG1lZGlhIGNvbnRyb2xzIGFyZSB0cmFu
c2l0aW9uZWQgdG8gdXNlCiAgICAgLy8gdGhlIG5ldyBzaGFkb3cgRE9NLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcAppbmRleCAxNjYxYjdhMmM1NTY3OTdmMjRiNTU3
NjFhZjIzYmE5ZTY2NTBkYTdkLi5hZDVhYjFhZGZiZTg0OGRmOWUyZjJiNjE5NmQzYmIyOTQyNjhk
YTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcApAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJNZWRp
YUNvbnRyb2xFbGVtZW50cy5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJO
b2RlLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5o
IgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTEwMSw3ICsxMDIsNyBAQCB2b2lkIFJlbmRl
clNsaWRlcjo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQogCiBJbnRSZWN0IFJlbmRl
clNsaWRlcjo6dGh1bWJSZWN0KCkKIHsKLSAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iRWxl
bWVudCA9IHNsaWRlclRodW1iRWxlbWVudCgpOworICAgIFNsaWRlclRodW1iRWxlbWVudCogdGh1
bWJFbGVtZW50ID0gc2hhZG93U2xpZGVyVGh1bWIoKTsKICAgICBpZiAoIXRodW1iRWxlbWVudCkK
ICAgICAgICAgcmV0dXJuIEludFJlY3QoKTsKIApAQCAtMTI4LDcgKzEyOSw3IEBAIHZvaWQgUmVu
ZGVyU2xpZGVyOjpsYXlvdXQoKQogewogICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKIAotICAg
IFNsaWRlclRodW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJFbGVtZW50KCk7
CisgICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1lbnQgPSBzaGFkb3dTbGlkZXJUaHVt
YigpOwogICAgIFJlbmRlckJveCogdGh1bWIgPSB0aHVtYkVsZW1lbnQgPyB0b1JlbmRlckJveCh0
aHVtYkVsZW1lbnQtPnJlbmRlcmVyKCkpIDogMDsKIAogICAgIEludFNpemUgYmFzZVNpemUoYm9y
ZGVyQW5kUGFkZGluZ1dpZHRoKCksIGJvcmRlckFuZFBhZGRpbmdIZWlnaHQoKSk7CkBAIC0xNzYs
MTQgKzE3NywxNSBAQCB2b2lkIFJlbmRlclNsaWRlcjo6bGF5b3V0KCkKICAgICBzZXROZWVkc0xh
eW91dChmYWxzZSk7CiB9CiAKLVNsaWRlclRodW1iRWxlbWVudCogUmVuZGVyU2xpZGVyOjpzbGlk
ZXJUaHVtYkVsZW1lbnQoKSBjb25zdAorU2xpZGVyVGh1bWJFbGVtZW50KiBSZW5kZXJTbGlkZXI6
OnNoYWRvd1NsaWRlclRodW1iKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdG9TbGlkZXJUaHVtYkVs
ZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSktPnNoYWRvd1Jvb3QoKSk7CisgICAg
Tm9kZSogc2hhZG93ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSktPnNoYWRvd1Jvb3Qo
KTsKKyAgICByZXR1cm4gc2hhZG93ID8gdG9TbGlkZXJUaHVtYkVsZW1lbnQoc2hhZG93LT5maXJz
dENoaWxkKCkpIDogMDsKIH0KIAogYm9vbCBSZW5kZXJTbGlkZXI6OmluRHJhZ01vZGUoKSBjb25z
dAogewotICAgIFNsaWRlclRodW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJF
bGVtZW50KCk7CisgICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1lbnQgPSBzaGFkb3dT
bGlkZXJUaHVtYigpOwogICAgIHJldHVybiB0aHVtYkVsZW1lbnQgJiYgdGh1bWJFbGVtZW50LT5p
bkRyYWdNb2RlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTbGlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuaApp
bmRleCAwMTYyYjcxMDdiYWQ1ZWU2YzUzMmQ1NTliY2U1NTQ0MTBjOTBlMTE3Li40ZTE3ZjMwZDhh
ODExZDE3ZDNlMjg4NDdmMjdmYjI5ZWIzNjVlNTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNsaWRlci5oCkBAIC00Niw4ICs0Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwogCiAgICAgICAgIC8vIEZJWE1FOiBFdmVudHVh
bGx5LCB0aGUgbG9naWMgb2YgbWFuaXB1bGF0aW5nIHNsaWRlciB0aHVtYiBzaG91bGQgbW92ZSB0
bwotICAgICAgICAvLyBTbGlkZXJUaHVtYkVsZW1lbnQgYW5kIGFjY2Vzc2luZyBzbGlkZXJUaHVt
YkVsZW1lbnQgc2hvdWxkIG5vdCBiZSBuZWNlc3NhcnkgaW4gdGhpcyBjbGFzcy4KLSAgICAgICAg
U2xpZGVyVGh1bWJFbGVtZW50KiBzbGlkZXJUaHVtYkVsZW1lbnQoKSBjb25zdDsKKyAgICAgICAg
Ly8gU2xpZGVyVGh1bWJFbGVtZW50IGFuZCBhY2Nlc3Npbmcgc2hhZG93U2xpZGVyVGh1bWIgc2hv
dWxkIG5vdCBiZSBuZWNlc3NhcnkgaW4gdGhpcyBjbGFzcy4KKyAgICAgICAgU2xpZGVyVGh1bWJF
bGVtZW50KiBzaGFkb3dTbGlkZXJUaHVtYigpIGNvbnN0OwogCiAgICAgICAgIHZpcnR1YWwgYm9v
bCByZXF1aXJlc0ZvcmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24oKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZWRjOGNmNGYxYmU5
ODIzODVhYzVjNmExYmE1ZWE1ODZjZWEyMmI0NC4uYjAxNGQ0YTcxNmIwMjRlMGJkNzkyMmNmNzFm
OWIxOTlhYTAyNzJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMS0wNC0wNyAgRG9taW5pYyBDb29uZXkgIDxkb21pbmljY0Bnb29nbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldCBzaGFkb3cg
RE9NIGhhdmUgYSBsaXN0IG9mIG5vZGVzIGF0IHRoZSB0b3AgbGV2ZWwgb2YgYSBzaGFkb3cuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzgxMworCisg
ICAgICAgICogc3JjL1dlYkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJFbGVtZW50
OjpzaGFkb3dSb290KTogc2hhZG93IHJvb3RzIGFyZSBDb250YWluZXJOb2RlcyBub3cKKwogMjAx
MS0wNC0wNyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAg
Tm90IHJldmlld2VkOiByb2xsaW5nIGNocm9taXVtIERFUFMgODA0MjE6ODA3NjcuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVsZW1lbnQuY3BwCmluZGV4IGVlN2VjMDk4MGVjZmI4YWE2
ZDk0NWEzNjMxMDZjNmUzYTFhYTY0NGIuLjY2ZTNlOTU2MGFiYjUzNzVjMzljZGI4YjY5YTk5Mzky
MTQxMTY3YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkVsZW1lbnQuY3BwCkBA
IC05Miw3ICs5Miw3IEBAIFdlYlN0cmluZyBXZWJFbGVtZW50Ojppbm5lclRleHQoKSBjb25zdAog
CiBXZWJOb2RlIFdlYkVsZW1lbnQ6OnNoYWRvd1Jvb3QoKQogewotICAgIHJldHVybiBhZG9wdFJl
Zih1bndyYXA8RWxlbWVudD4oKS0+c2hhZG93Um9vdCgpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
c3RhdGljX2Nhc3Q8Tm9kZSo+KHVud3JhcDxFbGVtZW50PigpLT5zaGFkb3dSb290KCkpKTsKIH0K
IAogV2ViU3RyaW5nIFdlYkVsZW1lbnQ6OmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgpIGNvbnN0
Cg==
</data>
<flag name="review"
          id="81266"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="81328"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>