<?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>109777</bug_id>
          
          <creation_ts>2013-02-13 17:58:41 -0800</creation_ts>
          <short_desc>ShadowRoot needs guardRef() and guardDeref()</short_desc>
          <delta_ts>2013-12-16 15:53:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>110766</dependson>
          <blocked>72352</blocked>
    
    <blocked>108713</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cdn</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>esprehn</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>vsevik</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>832616</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-13 17:58:41 -0800</bug_when>
    <thetext>After http://trac.webkit.org/changeset/137524, ShadowRoot has similar lifecycle characteristics to one of Document&apos;s:
It needs to live even after refcount goes zero. For this purpose, ShadowRoot needs guardRef and guardDeref() and
Scope change code needs to take care of that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832742</commentid>
    <comment_count>1</comment_count>
      <attachid>188264</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-13 22:41:59 -0800</bug_when>
    <thetext>Created attachment 188264
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832755</commentid>
    <comment_count>2</comment_count>
      <attachid>188264</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-13 23:21:41 -0800</bug_when>
    <thetext>Comment on attachment 188264
Patch

Attachment 188264 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16559342</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832762</commentid>
    <comment_count>3</comment_count>
      <attachid>188268</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-13 23:32:37 -0800</bug_when>
    <thetext>Created attachment 188268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832795</commentid>
    <comment_count>4</comment_count>
      <attachid>188268</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 00:41:10 -0800</bug_when>
    <thetext>Comment on attachment 188268
Patch

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

New failing tests:
accessibility/aria-checkbox-checked.html
animations/3d/matrix-transform-type-animation.html
http/tests/appcache/cyrillic-uri.html
accessibility/anchor-linked-anonymous-block-crash.html
animations/animation-add-events-in-handler.html
http/tests/appcache/deferred-events-delete-while-raising.html
animations/additive-transform-animations.html
animations/3d/replace-filling-transform.html
http/tests/appcache/deferred-events-delete-while-raising-timer.html
accessibility/aria-describedby-on-input.html
http/tests/appcache/crash-when-navigating-away-then-back.html
animations/animation-border-overflow.html
animations/animation-direction-alternate-reverse.html
accessibility/accessibility-object-detached.html
http/tests/appcache/abort-cache-ondownloading-manifest-404.html
http/tests/appcache/credential-url.html
http/tests/appcache/access-via-redirect.php
animations/3d/change-transform-in-end-event.html
accessibility/aria-controls-with-tabs.html
http/tests/appcache/destroyed-frame.html
animations/animation-controller-drt-api.html
animations/3d/transform-perspective.html
accessibility/accessibility-node-reparent.html
http/tests/appcache/deferred-events.html
animations/3d/state-at-end-event-transform.html
animations/animation-direction-normal.html
animations/3d/transform-origin-vs-functions.html
accessibility/accessibility-node-memory-management.html
animations/animation-css-rule-types.html
accessibility/adjacent-continuations-cause-assertion-failure.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832819</commentid>
    <comment_count>5</comment_count>
      <attachid>188281</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-14 01:12:57 -0800</bug_when>
    <thetext>Created attachment 188281
For re-executing the test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832882</commentid>
    <comment_count>6</comment_count>
      <attachid>188281</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 02:19:44 -0800</bug_when>
    <thetext>Comment on attachment 188281
For re-executing the test

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

New failing tests:
accessibility/aria-checkbox-checked.html
animations/3d/matrix-transform-type-animation.html
http/tests/appcache/cyrillic-uri.html
accessibility/anchor-linked-anonymous-block-crash.html
animations/animation-add-events-in-handler.html
http/tests/appcache/deferred-events-delete-while-raising.html
animations/additive-transform-animations.html
animations/3d/replace-filling-transform.html
http/tests/appcache/deferred-events-delete-while-raising-timer.html
accessibility/aria-describedby-on-input.html
http/tests/appcache/crash-when-navigating-away-then-back.html
animations/animation-border-overflow.html
animations/animation-direction-alternate-reverse.html
accessibility/accessibility-object-detached.html
http/tests/appcache/abort-cache-ondownloading-manifest-404.html
http/tests/appcache/credential-url.html
animations/animation-controller-drt-api.html
animations/3d/change-transform-in-end-event.html
accessibility/aria-controls-with-tabs.html
canvas/philip/tests/2d.canvas.readonly.html
animations/3d/transform-perspective.html
accessibility/accessibility-node-reparent.html
http/tests/appcache/access-via-redirect.php
http/tests/appcache/deferred-events.html
animations/3d/state-at-end-event-transform.html
animations/animation-direction-normal.html
animations/3d/transform-origin-vs-functions.html
accessibility/accessibility-node-memory-management.html
animations/animation-css-rule-types.html
accessibility/adjacent-continuations-cause-assertion-failure.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832898</commentid>
    <comment_count>7</comment_count>
      <attachid>188281</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 03:21:28 -0800</bug_when>
    <thetext>Comment on attachment 188281
For re-executing the test

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

New failing tests:
accessibility/aria-checkbox-checked.html
animations/3d/matrix-transform-type-animation.html
http/tests/appcache/cyrillic-uri.html
accessibility/anchor-linked-anonymous-block-crash.html
animations/animation-add-events-in-handler.html
http/tests/appcache/deferred-events-delete-while-raising.html
animations/additive-transform-animations.html
animations/3d/replace-filling-transform.html
http/tests/appcache/deferred-events-delete-while-raising-timer.html
accessibility/aria-describedby-on-input.html
http/tests/appcache/crash-when-navigating-away-then-back.html
animations/animation-border-overflow.html
animations/animation-direction-alternate-reverse.html
accessibility/accessibility-object-detached.html
http/tests/appcache/abort-cache-ondownloading-manifest-404.html
http/tests/appcache/credential-url.html
http/tests/appcache/access-via-redirect.php
animations/3d/change-transform-in-end-event.html
accessibility/aria-controls-with-tabs.html
http/tests/appcache/destroyed-frame.html
animations/animation-controller-drt-api.html
animations/3d/transform-perspective.html
accessibility/accessibility-node-reparent.html
http/tests/appcache/deferred-events.html
animations/3d/state-at-end-event-transform.html
animations/animation-direction-normal.html
animations/3d/transform-origin-vs-functions.html
accessibility/accessibility-node-memory-management.html
animations/animation-css-rule-types.html
accessibility/adjacent-continuations-cause-assertion-failure.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833681</commentid>
    <comment_count>8</comment_count>
      <attachid>188477</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-14 21:42:53 -0800</bug_when>
    <thetext>Created attachment 188477
Fixed crashes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833753</commentid>
    <comment_count>9</comment_count>
      <attachid>188477</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-14 23:55:09 -0800</bug_when>
    <thetext>Comment on attachment 188477
Fixed crashes

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

New failing tests:
accessibility/aria-checkbox-checked.html
animations/3d/matrix-transform-type-animation.html
http/tests/appcache/cyrillic-uri.html
accessibility/anchor-linked-anonymous-block-crash.html
animations/animation-add-events-in-handler.html
http/tests/appcache/deferred-events-delete-while-raising.html
animations/additive-transform-animations.html
animations/3d/replace-filling-transform.html
http/tests/appcache/deferred-events-delete-while-raising-timer.html
accessibility/aria-describedby-on-input.html
http/tests/appcache/crash-when-navigating-away-then-back.html
animations/animation-border-overflow.html
animations/animation-direction-alternate-reverse.html
accessibility/accessibility-object-detached.html
http/tests/appcache/abort-cache-ondownloading-manifest-404.html
http/tests/appcache/credential-url.html
http/tests/appcache/access-via-redirect.php
animations/3d/change-transform-in-end-event.html
accessibility/aria-controls-with-tabs.html
http/tests/appcache/destroyed-frame.html
animations/animation-controller-drt-api.html
animations/3d/transform-perspective.html
accessibility/accessibility-node-reparent.html
http/tests/appcache/deferred-events.html
animations/3d/state-at-end-event-transform.html
animations/animation-direction-normal.html
animations/3d/transform-origin-vs-functions.html
accessibility/accessibility-node-memory-management.html
animations/animation-css-rule-types.html
accessibility/adjacent-continuations-cause-assertion-failure.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>833756</commentid>
    <comment_count>10</comment_count>
      <attachid>188477</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-15 00:09:31 -0800</bug_when>
    <thetext>Comment on attachment 188477
Fixed crashes

Attachment 188477 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16559831

New failing tests:
accessibility/anchor-linked-anonymous-block-crash.html
compositing/absolute-inside-out-of-view-fixed.html
animations/3d/matrix-transform-type-animation.html
http/tests/cache/cancel-multiple-post-xhrs.html
animations/3d/state-at-end-event-transform.html
animations/animation-add-events-in-handler.html
animations/additive-transform-animations.html
animations/3d/replace-filling-transform.html
http/tests/cache/history-only-cached-subresource-loads.html
compositing/bounds-in-flipped-writing-mode.html
accessibility/accessibility-node-reparent.html
animations/animation-border-overflow.html
accessibility/accessibility-object-detached.html
accessibility/anonymous-render-block-in-continuation-causes-crash.html
animations/animation-controller-drt-api.html
http/tests/cache/loaded-from-cache-after-reload-within-iframe.html
compositing/absolute-position-changed-with-composited-parent-layer.html
compositing/absolute-position-changed-in-composited-layer.html
http/tests/cache/iframe-304-crash.html
animations/3d/transform-perspective.html
http/tests/cache/cancel-during-failure-crash.html
canvas/philip/tests/2d.canvas.reference.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html
canvas/philip/tests/2d.clearRect.basic.html
animations/3d/transform-origin-vs-functions.html
accessibility/accessibility-node-memory-management.html
animations/animation-css-rule-types.html
http/tests/cache/cached-main-resource.html
canvas/philip/tests/2d.clearRect+fillRect.basic.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836101</commentid>
    <comment_count>11</comment_count>
      <attachid>189015</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-19 01:02:30 -0800</bug_when>
    <thetext>Created attachment 189015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836189</commentid>
    <comment_count>12</comment_count>
      <attachid>189015</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-19 03:21:13 -0800</bug_when>
    <thetext>Comment on attachment 189015
Patch

Attachment 189015 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16628422</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836829</commentid>
    <comment_count>13</comment_count>
      <attachid>189015</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-19 15:10:01 -0800</bug_when>
    <thetext>Comment on attachment 189015
Patch

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

Overall this looks okay, I don&apos;t like the special method for updating the scope. Just add a check in setTreeScope and call that.

What&apos;s the long term plan for all this btw? Is haraken going to fix our if ancestor then child GC behavior? The guard refs appear to just be a hack around that.

&gt; Source/WebCore/ChangeLog:23
&gt; +        - Introduced setTreeScopeOfThisScope() which set Node::m_treeScope without chaning scope&apos;s m_guardRefCount.

changing

&gt; Source/WebCore/dom/Document.h:1582
&gt; +    scope-&gt;guardRef();

if (scope != this) scope-&gt;guardRef();

&gt; Source/WebCore/dom/Document.h:1587
&gt; +inline void Node::setTreeScopeOfThisScope(TreeScope* scope)

This method is confusing.

&gt; Source/WebCore/dom/DocumentFragment.cpp:41
&gt; +    ASSERT(document);

Is there a reason for this change?

&gt; Source/WebCore/dom/TreeScope.cpp:105
&gt; +    m_rootNode-&gt;setTreeScopeOfThisScope(noDocumentInstance());

Clever.

&gt; Source/WebCore/dom/TreeScope.cpp:119
&gt; +    rootNode()-&gt;m_inRemovedLastRefFunction = false;

This seems like a bad place to do this since the value depends on if you call SuperClass::dispose() before or after in your override.

&gt; Source/WebCore/dom/TreeScope.h:107
&gt; +    // Nodes belonging to this document hold guard references -

not a document. Fix the comment.

&gt; Source/WebCore/editing/RemoveNodeCommand.cpp:29
&gt; +#include &quot;Document.h&quot;

This seems like it&apos;s unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837257</commentid>
    <comment_count>14</comment_count>
      <attachid>189015</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-20 01:35:53 -0800</bug_when>
    <thetext>Comment on attachment 189015
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:23
&gt;&gt; +        - Introduced setTreeScopeOfThisScope() which set Node::m_treeScope without chaning scope&apos;s m_guardRefCount.
&gt; 
&gt; changing

Fixed.

&gt;&gt; Source/WebCore/dom/Document.h:1582
&gt;&gt; +    scope-&gt;guardRef();
&gt; 
&gt; if (scope != this) scope-&gt;guardRef();

The condition is rejected by the caller side. 
Anyway, I&apos;ll do this ref/unref on caller side to avoid confusion.

&gt;&gt; Source/WebCore/dom/Document.h:1587
&gt;&gt; +inline void Node::setTreeScopeOfThisScope(TreeScope* scope)
&gt; 
&gt; This method is confusing.

Maybe. Will remove.

&gt;&gt; Source/WebCore/dom/DocumentFragment.cpp:41
&gt;&gt; +    ASSERT(document);
&gt; 
&gt; Is there a reason for this change?

Yep. Now ShadowRoot, a subclass of DocumentFragment, passes null document to DocumentFragment constructor.
And the ShadowRoot change is to align what Document is doing.

&gt;&gt; Source/WebCore/dom/TreeScope.cpp:119
&gt;&gt; +    rootNode()-&gt;m_inRemovedLastRefFunction = false;
&gt; 
&gt; This seems like a bad place to do this since the value depends on if you call SuperClass::dispose() before or after in your override.

Right. Will move to caller side.

&gt;&gt; Source/WebCore/dom/TreeScope.h:107
&gt;&gt; +    // Nodes belonging to this document hold guard references -
&gt; 
&gt; not a document. Fix the comment.

Woa good catch! Will do.

&gt;&gt; Source/WebCore/editing/RemoveNodeCommand.cpp:29
&gt;&gt; +#include &quot;Document.h&quot;
&gt; 
&gt; This seems like it&apos;s unrelated.

Well, I inlined moved some function to Document.h.
The linker told that this file uses it somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837283</commentid>
    <comment_count>15</comment_count>
      <attachid>189268</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-20 02:15:43 -0800</bug_when>
    <thetext>Created attachment 189268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>837304</commentid>
    <comment_count>16</comment_count>
      <attachid>189268</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-20 03:13:53 -0800</bug_when>
    <thetext>Comment on attachment 189268
Patch

Attachment 189268 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16652212</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838060</commentid>
    <comment_count>17</comment_count>
      <attachid>189442</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-20 18:40:10 -0800</bug_when>
    <thetext>Created attachment 189442
Fixing EFL build failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>838103</commentid>
    <comment_count>18</comment_count>
      <attachid>189442</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-02-20 19:38:05 -0800</bug_when>
    <thetext>Comment on attachment 189442
Fixing EFL build failure

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

Couple nits, but otherwise looks good.

&gt; Source/WebCore/dom/TreeScope.h:134
&gt; +    virtual void dispose() { }

I&apos;d make this private.

&gt; Source/WebCore/dom/TreeScopeAdopter.h:48
&gt; +    void setNewScopeTo(Node*) const;

Lets rename this updateTreeScope(Node*)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839357</commentid>
    <comment_count>19</comment_count>
      <attachid>189712</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-22 01:15:01 -0800</bug_when>
    <thetext>Created attachment 189712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840319</commentid>
    <comment_count>20</comment_count>
      <attachid>189910</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-02-23 00:40:36 -0800</bug_when>
    <thetext>Created attachment 189910
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840341</commentid>
    <comment_count>21</comment_count>
      <attachid>189910</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-23 02:51:40 -0800</bug_when>
    <thetext>Comment on attachment 189910
Patch for landing

Clearing flags on attachment: 189910

Committed r143840: &lt;http://trac.webkit.org/changeset/143840&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840342</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-23 02:51:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840874</commentid>
    <comment_count>23</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-25 04:43:13 -0800</bug_when>
    <thetext>This patch caused assertion failures in multiple layout tests,

fullscreen/full-screen-enabled-prefixed.html
fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value.html
fast/forms/month/month-stepup-stepdown.html

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fullscreen%2Ffull-screen-enabled-prefixed.html%2Cfast%2Fdom%2FHTMLMeterElement%2Fmeter-element-repaint-on-update-value.html%2Cfast%2Fforms%2Fmonth%2Fmonth-stepup-stepdown.html

crash log for DumpRenderTree (pid 2101):
STDOUT: &lt;empty&gt;
STDERR: ASSERTION FAILED: node-&gt;treeScope() == m_oldScope
STDERR: ../../third_party/WebKit/Source/WebCore/dom/TreeScopeAdopter.cpp(109) : void WebCore::TreeScopeAdopter::updateTreeScope(WebCore::Node *) const
STDERR: 1   0x74e2a2d WebCore::TreeScopeAdopter::updateTreeScope(WebCore::Node*) const
STDERR: 2   0x74e252a WebCore::TreeScopeAdopter::moveTreeToNewScope(WebCore::Node*) const
STDERR: 3   0x74e2644 WebCore::TreeScopeAdopter::moveTreeToNewScope(WebCore::Node*) const
STDERR: 4   0x74dd7e1 WebCore::TreeScopeAdopter::execute() const
STDERR: 5   0x74dc1f0 WebCore::TreeScope::adoptIfNeeded(WebCore::Node*)
STDERR: 6   0x727c569 WebCore::Private::NodeRemovalDispatcher&lt;WebCore::Node, WebCore::ContainerNode, true&gt;::dispatch(WebCore::Node*, WebCore::ContainerNode*)
STDERR: 7   0x727c4b4 void WebCore::Private::addChildNodesToDeletionQueue&lt;WebCore::Node, WebCore::ContainerNode&gt;(WebCore::Node*&amp;, WebCore::Node*&amp;, WebCore::ContainerNode*)
STDERR: 8   0x7278939 void WebCore::removeDetachedChildrenInContainer&lt;WebCore::Node, WebCore::ContainerNode&gt;(WebCore::ContainerNode*)
STDERR: 9   0x7272514 WebCore::ContainerNode::removeDetachedChildren()
STDERR: 10  0x74bdc6b WebCore::ShadowRoot::dispose()
STDERR: 11  0x74bdcc1 non-virtual thunk to WebCore::ShadowRoot::dispose()
STDERR: 12  0x7431179 WebCore::TreeScope::removedLastRefToScope()
STDERR: 13  0x74299fe WebCore::Node::removedLastRef()
STDERR: 14  0x6529bc4 WebCore::TreeShared&lt;WebCore::Node&gt;::deref()
STDERR: 15  0x7ba472d void WTF::derefIfNotNull&lt;WebCore::ShadowRoot&gt;(WebCore::ShadowRoot*)
STDERR: 16  0x7ba46bd WTF::RefPtr&lt;WebCore::ShadowRoot&gt;::~RefPtr()
STDERR: 17  0x7ba466b WTF::RefPtr&lt;WebCore::ShadowRoot&gt;::~RefPtr()
STDERR: 18  0x73804a4 WebCore::ElementShadow::removeAllShadowRoots()
STDERR: 19  0x73b858e WebCore::ElementShadow::~ElementShadow()
STDERR: 20  0x73b84cb WebCore::ElementShadow::~ElementShadow()
STDERR: 21  0x73b846d void WTF::deleteOwnedPtr&lt;WebCore::ElementShadow&gt;(WebCore::ElementShadow*)
STDERR: 22  0x73beda9 WTF::OwnPtr&lt;WebCore::ElementShadow&gt;::clear()
STDERR: 23  0x73bed45 WTF::OwnPtr&lt;WebCore::ElementShadow&gt;::operator=(nullptr_t)
STDERR: 24  0x7394f12 WebCore::ElementRareData::clearShadow()
STDERR: 25  0x7383409 WebCore::Element::~Element()
STDERR: 26  0x74c9652 WebCore::StyledElement::~StyledElement()
STDERR: 27  0x77e1e4b WebCore::HTMLElement::~HTMLElement()
STDERR: 28  0x765e4ab WebCore::LabelableElement::~LabelableElement()
STDERR: 29  0x76139ab WebCore::HTMLProgressElement::~HTMLProgressElement()
STDERR: 30  0x761395b WebCore::HTMLProgressElement::~HTMLProgressElement()
STDERR: 31  0x76138fe WebCore::HTMLProgressElement::~HTMLProgressElement()
STDERR: Received signal 11 SEGV_MAPERR 0000bbadbeef
STDERR:  [0x00000295287f]
STDERR:  [0x00000295281b]
STDERR:  [0x0000029524ab]
STDERR:  [0x000096f1059b]
STDERR:  [0x0000ffffffff]
STDERR:  [0x0000074e252a]
STDERR:  [0x0000074e2644]
STDERR:  [0x0000074dd7e1]
STDERR:  [0x0000074dc1f0]
STDERR:  [0x00000727c569]
STDERR:  [0x00000727c4b4]
STDERR:  [0x000007278939]
STDERR:  [0x000007272514]
STDERR:  [0x0000074bdc6b]
STDERR:  [0x0000074bdcc1]
STDERR:  [0x000007431179]
STDERR:  [0x0000074299fe]
STDERR:  [0x000006529bc4]
STDERR:  [0x000007ba472d]
STDERR:  [0x000007ba46bd]
STDERR:  [0x000007ba466b]
STDERR:  [0x0000073804a4]
STDERR:  [0x0000073b858e]
STDERR:  [0x0000073b84cb]
STDERR:  [0x0000073b846d]
STDERR:  [0x0000073beda9]
STDERR:  [0x0000073bed45]
STDERR:  [0x000007394f12]
STDERR:  [0x000007383409]
STDERR:  [0x0000074c9652]
STDERR:  [0x0000077e1e4b]
STDERR:  [0x00000765e4ab]
STDERR:  [0x0000076139ab]
STDERR:  [0x00000761395b]
STDERR:  [0x0000076138fe]
STDERR:  [0x000007429a20]
STDERR:  [0x000006529bc4]
STDERR:  [0x000007f29481]
STDERR:  [0x000008c57478]
STDERR:  [0x000007f6f857]
STDERR:  [0x0000030392a6]
STDERR:  [0x000003036802]
STDERR:  [0x000003051a1b]
STDERR:  [0x000003051229]
STDERR:  [0x000002f5a9ab]
STDERR:  [0x00000305213b]
STDERR:  [0x00000305201c]
STDERR:  [0x0000033c5fa6]
STDERR:  [0x0000033d0f70]
STDERR:  [0x000002f1d6ad]
STDERR:  [0x000002f0d8da]
STDERR:  [0x000002f0d7a9]
STDERR:  [0x000002eafdbb]
STDERR:  [0x000008ce3087]
STDERR:  [0x000008ce2408]
STDERR:  [0x000008c872f2]
STDERR:  [0x000008c86ff9]
STDERR:  [0x000008c8a535]
STDERR:  [0x00000962f9bb]
STDERR:  [0x000009485c06]
STDERR:  [0x00000945d00f]
STDERR:  [0x000006629bb5]
STDERR: ax: bbadbeef, bx: 7c214c01, cx: ab63af32, dx: ab63af32
STDERR: di: 9b30552, si: 9b304f6, bp: c0056878, sp: c0056840, ss: 23, flags: 10282
STDERR: ip: 74e2a37, cs: 1b, ds: 23, es: 23, fs: 0, gs: f</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840881</commentid>
    <comment_count>24</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-25 05:04:27 -0800</bug_when>
    <thetext>Filed https://bugs.webkit.org/show_bug.cgi?id=110749</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841076</commentid>
    <comment_count>25</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-02-25 10:13:38 -0800</bug_when>
    <thetext>Rolled out in r143940.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841160</commentid>
    <comment_count>26</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-25 11:47:26 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; Rolled out in r143940.

I don&apos;t think rolling out the patch makes much sense. We&apos;re only seeing failures of an assertion added in this patch.

All these svn churns are ridiculously annoying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847213</commentid>
    <comment_count>27</comment_count>
      <attachid>191385</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-03-04 20:04:25 -0800</bug_when>
    <thetext>Created attachment 191385
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847331</commentid>
    <comment_count>28</comment_count>
      <attachid>191385</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-03-04 23:37:56 -0800</bug_when>
    <thetext>Comment on attachment 191385
Patch for landing

The crash was due to Bug 108713. I included one line fix for that as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847340</commentid>
    <comment_count>29</comment_count>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2013-03-04 23:46:25 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 191385 [details])
&gt; The crash was due to Bug 108713. I included one line fix for that as well.

What was the one line fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847359</commentid>
    <comment_count>30</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2013-03-05 00:05:35 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; (In reply to comment #28)
&gt; &gt; (From update of attachment 191385 [details] [details])
&gt; &gt; The crash was due to Bug 108713. I included one line fix for that as well.
&gt; 
&gt; What was the one line fix?

One copied from https://bugs.webkit.org/attachment.cgi?id=188241&amp;action=review

--- a/Source/WebCore/dom/Element.cpp
+++ b/Source/WebCore/dom/Element.cpp
@@ -2753,6 +2753,7 @@ PassRefPtr&lt;Attr&gt; Element::ensureAttr(const QualifiedName&amp; name)
     RefPtr&lt;Attr&gt; attrNode = findAttrNodeInList(attrNodeList, name);
     if (!attrNode) {
         attrNode = Attr::create(this, name);
+        treeScope()-&gt;adoptIfNeeded(attrNode.get());
         attrNodeList-&gt;append(attrNode);
     }
     return attrNode.release();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847362</commentid>
    <comment_count>31</comment_count>
      <attachid>191385</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 00:10:19 -0800</bug_when>
    <thetext>Comment on attachment 191385
Patch for landing

Clearing flags on attachment: 191385

Committed r144735: &lt;http://trac.webkit.org/changeset/144735&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847363</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 00:10:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960276</commentid>
    <comment_count>33</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-12-16 15:52:19 -0800</bug_when>
    <thetext>*** Bug 108710 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>960279</commentid>
    <comment_count>34</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-12-16 15:53:02 -0800</bug_when>
    <thetext>*** Bug 108713 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188264</attachid>
            <date>2013-02-13 22:41:59 -0800</date>
            <delta_ts>2013-02-13 23:32:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109777-20130214153826.patch</filename>
            <type>text/plain</type>
            <size>14220</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDhiNzIwZTQ5NjA0ZjVm
YTI4YTg2MGIwYWEwMTBlOTc3ZDYyMWFmOS4uZTRkOWExMjcxYTU4NTIxZmZhOWQ0ZWY0MDM5MDQx
Y2QwMGY2NTE4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTAyLTEzICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGd1YXJkUmVmKCkgYW5kIGd1YXJkRGVyZWYoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgbW92ZXMgbV9ndWFyZFJlZkNvdW50
IGZyb20gRG9jdW1lbnQgdG8gVHJlZVNjb3BlLAorICAgICAgICB3aGljaCBhbGxvd3MgU2hhZG93
Um9vdCB0byBiZSBndWFyZGVkIGJ5IGd1YXJkUmVmKCkgbWVjaGFuaXNtIGxpa2UKKyAgICAgICAg
YXMgRG9jdW1lbnQuIEFmdGVyIHIxMzc1MjQsIE5vZGUgcmVmZXJlcyBUcmVlU2NvcGUgaW5zdGVh
ZCBvZgorICAgICAgICBEb2N1bWVudC4gVGhpcyBpcyBuYXR1cmFsIGNvbnNlcXVlbmNlIG9mIHRo
ZSBjaGFuZ2U6IEl0IG5vIGxvbmdlcgorICAgICAgICBtYWtlcyBzZW5zZSB0byBndWFyZCBEb2N1
bWVudCBwb2ludGVyIGluIE5vZGUgbm93LgorCisgICAgICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUg
dHdvICJndWFyZGVkIiBUcmVlU2NvcGUgcmVmZXJlbmNlcy4gT25lIGlzCisgICAgICAgIE5vZGU6
Om1fdHJlZVNjb3BlIGFuZCBhbm90aGVyIGlzIFRyZWVTY29wZTo6bV9wYXJlbnRUcmVlU2NvcGUu
CisgICAgICAgIFRoZSBndWFyZGVkLXJlZiBtYW5hZ2VtZW50IGlzIG5vdyBlbmNhcHN1bGF0ZWQg
aW4gdGhlc2UgdHdvIGNsYXNzZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5
IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNUcmVlU2NvcGUpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9j
dW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWZUb1Njb3BlKToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuaDoKKyAgICAgICAgKERvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6Ok5vZGUpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OnJlbW92ZWRMYXN0UmVmKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoTm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRUcmVlU2NvcGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6CisgICAgICAgIChTYW1lU2l6ZUFz
VHJlZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6VHJlZVNjb3BlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6flRyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGU6OnNldFBhcmVudFRyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6ZGVsZXRpb25IYXNCZWd1bik6CisgICAgICAgIChX
ZWJDb3JlOjpUcmVlU2NvcGU6OmJlZ2luRGVsZXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVNjb3BlOjpyZWZDb3VudCk6IEFkZGVkLgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6cmVtb3ZlZExhc3RSZWZUb1Njb3BlKToKKyAgICAg
ICAgKFRyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6Omd1YXJkUmVmKTog
TW92ZWQgZnJvbSBEb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6Z3VhcmRE
ZXJlZik6IE1vdmVkIGZyb20gRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6
Omd1YXJkUmVmQ291bnQpOiBNb3ZlZCBmcm9tIERvY3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6
VHJlZVNjb3BlOjpkZWxldGlvbkhhc0JlZ3VuKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpU
cmVlU2NvcGU6OmJlZ2luRGVsZXRpb24pOiBBZGRlZC4KKyAgICAgICAgKiBkb20vVHJlZVNjb3Bl
QWRvcHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJl
ZVRvTmV3U2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6bW92ZU5v
ZGVUb05ld0RvY3VtZW50KToKKwogMjAxMy0wMi0xMyAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxs
YUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBDb29yZGluYXRlZCBHcmFwaGljczogYSBsb25n
IHBhZ2UgaXMgc2NhbGVkIHZlcnRpY2FsbHkgd2hpbGUgbG9hZGluZy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5oCmluZGV4IGZlMmVjODVmODRiN2M5MjQ2YThhOTJmOWU2MzkzYjY4MTU0ZTI1
ZTguLmRkZjgxOGRkNTJmODY2NGU2ZDI5ODBjZDZmN2MwODJmY2E3MWNmN2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRhaW5lck5vZGUuaApAQCAtMzYwLDYgKzM2MCwxMyBAQCBwcml2YXRlOgogICAgIENv
bnRhaW5lck5vZGUqIG1fbm9kZTsKIH07CiAKKworLy8gVGhpcyBpcyBwbGFjZWQgaGVyZSBmb3Ig
aW5saW5pbmc6IHJvb3ROb2RlKCkgbmVlZHMgQ29udGFpbmVyTm9kZSBkZWZpbnRpaW9uLgoraW5s
aW5lIGJvb2wgTm9kZTo6aXNUcmVlU2NvcGUoKSBjb25zdAoreworICAgIHJldHVybiB0cmVlU2Nv
cGUoKS0+cm9vdE5vZGUoKSA9PSB0aGlzOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBDb250YWluZXJOb2RlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGE1
YWI5OTRiMDkyMjdlNzRiZWM2NGM1YzA1Nzc5ZDI4NjI1NTgxYzguLjY3MjFhZjUyMTBiOGY1NjM0
ZDA3OWJjNjdiOTViNjA3YjNlNzg2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDA5
LDcgKzQwOSw2IEBAIHVpbnQ2NF90IERvY3VtZW50OjpzX2dsb2JhbFRyZWVWZXJzaW9uID0gMDsK
IERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBp
c1hIVE1MLCBib29sIGlzSFRNTCkKICAgICA6IENvbnRhaW5lck5vZGUoMCwgQ3JlYXRlRG9jdW1l
bnQpCiAgICAgLCBUcmVlU2NvcGUodGhpcykKLSAgICAsIG1fZ3VhcmRSZWZDb3VudCgwKQogICAg
ICwgbV9zdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXIodGhpcywgJkRvY3VtZW50OjpzdHlsZVJl
c29sdmVyVGhyb3dhd2F5VGltZXJGaXJlZCkKICAgICAsIG1fbGFzdFN0eWxlUmVzb2x2ZXJBY2Nl
c3NUaW1lKDApCiAgICAgLCBtX2FjdGl2ZVBhcnNlckNvdW50KDApCkBAIC01ODIsNyArNTgxLDcg
QEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAgQVNTRVJUKG1fcmFuZ2VzLmlzRW1wdHkoKSk7
CiAgICAgQVNTRVJUKCFtX3N0eWxlUmVjYWxjVGltZXIuaXNBY3RpdmUoKSk7CiAgICAgQVNTRVJU
KCFtX3BhcmVudFRyZWVTY29wZSk7Ci0gICAgQVNTRVJUKCFtX2d1YXJkUmVmQ291bnQpOworICAg
IEFTU0VSVCghZ3VhcmRSZWZDb3VudCgpKTsKIAogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5U
KQogICAgIGlmIChtX3RlbXBsYXRlRG9jdW1lbnQpCkBAIC02NDksMTAgKzY0OCwxMCBAQCBEb2N1
bWVudDo6fkRvY3VtZW50KCkKICAgICBJbnNwZWN0b3JDb3VudGVyczo6ZGVjcmVtZW50Q291bnRl
cihJbnNwZWN0b3JDb3VudGVyczo6RG9jdW1lbnRDb3VudGVyKTsKIH0KIAotdm9pZCBEb2N1bWVu
dDo6cmVtb3ZlZExhc3RSZWYoKQordm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWZUb1Njb3Bl
KCkKIHsKICAgICBBU1NFUlQoIW1fZGVsZXRpb25IYXNCZWd1bik7Ci0gICAgaWYgKG1fZ3VhcmRS
ZWZDb3VudCkgeworICAgIGlmIChndWFyZFJlZkNvdW50KCkpIHsKICAgICAgICAgLy8gSWYgcmVt
b3ZpbmcgYSBjaGlsZCByZW1vdmVzIHRoZSBsYXN0IHNlbGYtb25seSByZWYsIHdlIGRvbid0CiAg
ICAgICAgIC8vIHdhbnQgdGhlIHNjb3BlIHRvIGJlIGRlc3RydWN0ZWQgdW50aWwgYWZ0ZXIKICAg
ICAgICAgLy8gcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbiByZXR1cm5zLCBzbyB3ZSBndWFyZCBvdXJz
ZWx2ZXMgd2l0aCBhbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA3MmM4Mzk5M2JlMDdmZjhjMjc2
MjAyOTlhYTIxNjQ5NmNmN2Y1OWU3Li4xNjNiMTU0ZDliNDgwZjczM2Y4OGE4MjM4ZjQ4ZmIzMDA5
MGY0ZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMjI4LDI5ICsyMjgsNiBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgQ29udGFpbmVyTm9kZTo6cmVmOwogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6
OmRlcmVmOwogCi0gICAgLy8gTm9kZXMgYmVsb25naW5nIHRvIHRoaXMgZG9jdW1lbnQgaG9sZCBn
dWFyZCByZWZlcmVuY2VzIC0KLSAgICAvLyB0aGVzZSBhcmUgZW5vdWdoIHRvIGtlZXAgdGhlIGRv
Y3VtZW50IGZyb20gYmVpbmcgZGVzdHJveWVkLCBidXQKLSAgICAvLyBub3QgZW5vdWdoIHRvIGtl
ZXAgaXQgZnJvbSByZW1vdmluZyBpdHMgY2hpbGRyZW4uIFRoaXMgYWxsb3dzIGEKLSAgICAvLyBu
b2RlIHRoYXQgb3V0bGl2ZXMgaXRzIGRvY3VtZW50IHRvIHN0aWxsIGhhdmUgYSB2YWxpZCBkb2N1
bWVudAotICAgIC8vIHBvaW50ZXIgd2l0aG91dCBpbnRyb2R1Y2luZyByZWZlcmVuY2UgY3ljbGVz
LgotICAgIHZvaWQgZ3VhcmRSZWYoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2RlbGV0aW9u
SGFzQmVndW4pOwotICAgICAgICArK21fZ3VhcmRSZWZDb3VudDsKLSAgICB9Ci0KLSAgICB2b2lk
IGd1YXJkRGVyZWYoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2RlbGV0aW9uSGFzQmVndW4p
OwotICAgICAgICAtLW1fZ3VhcmRSZWZDb3VudDsKLSAgICAgICAgaWYgKCFtX2d1YXJkUmVmQ291
bnQgJiYgIXJlZkNvdW50KCkpIHsKLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgICAgICBtX2RlbGV0
aW9uSGFzQmVndW4gPSB0cnVlOwotI2VuZGlmCi0gICAgICAgICAgICBkZWxldGUgdGhpczsKLSAg
ICAgICAgfQotICAgIH0KLQogICAgIEVsZW1lbnQqIGdldEVsZW1lbnRCeUlkKGNvbnN0IEF0b21p
Y1N0cmluZyYgaWQpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVu
ZFBvaW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMTIxNyw3ICsxMTk0LDcgQEAgcHJp
dmF0ZToKICAgICBmcmllbmQgY2xhc3MgTm9kZTsKICAgICBmcmllbmQgY2xhc3MgSWdub3JlRGVz
dHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXI7CiAKLSAgICB2b2lkIHJlbW92ZWRMYXN0UmVm
KCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRMYXN0UmVmVG9TY29wZSgpIE9WRVJSSURFOwog
ICAgIAogICAgIHZvaWQgZGV0YWNoUGFyc2VyKCk7CiAKQEAgLTEyODYsOCArMTI2Myw2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBhZGRMaXN0ZW5lclR5cGUoTGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlw
ZSkgeyBtX2xpc3RlbmVyVHlwZXMgfD0gbGlzdGVuZXJUeXBlOyB9CiAgICAgdm9pZCBhZGRNdXRh
dGlvbkV2ZW50TGlzdGVuZXJUeXBlSWZFbmFibGVkKExpc3RlbmVyVHlwZSk7CiAKLSAgICBpbnQg
bV9ndWFyZFJlZkNvdW50OwotCiAgICAgdm9pZCBzdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJG
aXJlZChUaW1lcjxEb2N1bWVudD4qKTsKICAgICBUaW1lcjxEb2N1bWVudD4gbV9zdHlsZVJlc29s
dmVyVGhyb3dhd2F5VGltZXI7CiAgICAgZG91YmxlIG1fbGFzdFN0eWxlUmVzb2x2ZXJBY2Nlc3NU
aW1lOwpAQCAtMTYwMywxMCArMTU3OCw5IEBAIGlubGluZSBOb2RlOjpOb2RlKERvY3VtZW50KiBk
b2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQogICAgICwgbV9wcmV2aW91cygwKQogICAg
ICwgbV9uZXh0KDApCiB7Ci0gICAgaWYgKGRvY3VtZW50KQotICAgICAgICBkb2N1bWVudC0+Z3Vh
cmRSZWYoKTsKLSAgICBlbHNlCisgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgbV90cmVlU2Nv
cGUgPSBUcmVlU2NvcGU6Om5vRG9jdW1lbnRJbnN0YW5jZSgpOworICAgIG1fdHJlZVNjb3BlLT5n
dWFyZFJlZigpOwogCiAjaWYgIWRlZmluZWQoTkRFQlVHKSB8fCAoZGVmaW5lZChEVU1QX05PREVf
U1RBVElTVElDUykgJiYgRFVNUF9OT0RFX1NUQVRJU1RJQ1MpCiAgICAgdHJhY2tGb3JEZWJ1Z2dp
bmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA4MjAxN2E4ZmUwYjU0NTFhOTgwOTFmMmQ4NTNjNjc1
NjBiNWExYTg3Li4wYmYyOWNjNjgzZWFiOTFkOWRkN2U4YjVmYTk3MjFkMmFhOWMzMGQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCkBAIC04OTIsMTEgKzg5Miw2IEBAIGJvb2wgTm9kZTo6aXNGb2N1c2FibGUo
KSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE5vZGU6OmlzVHJlZVNjb3BlKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gdHJlZVNjb3BlKCktPnJvb3ROb2RlKCkgPT0gdGhpczsKLX0K
LQogYm9vbCBOb2RlOjppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdAog
ewogICAgIHJldHVybiBpc0ZvY3VzYWJsZSgpICYmIHRhYkluZGV4KCkgPj0gMDsKQEAgLTI1NjEs
OCArMjU1Niw4IEBAIHZvaWQgTm9kZTo6cmVtb3ZlZExhc3RSZWYoKQogICAgIC8vIEFuIGV4cGxp
Y2l0IGNoZWNrIGZvciBEb2N1bWVudCBoZXJlIGlzIGJldHRlciB0aGFuIGEgdmlydHVhbCBmdW5j
dGlvbiBzaW5jZSBpdCBpcwogICAgIC8vIGZhc3RlciBmb3Igbm9uLURvY3VtZW50IG5vZGVzLCBh
bmQgYmVjYXVzZSB0aGUgY2FsbCB0byByZW1vdmVkTGFzdFJlZiB0aGF0IGlzIGlubGluZWQKICAg
ICAvLyBhdCBhbGwgZGVyZWYgY2FsbCBzaXRlcyBpcyBzbWFsbGVyIGlmIGl0J3MgYSBub24tdmly
dHVhbCBmdW5jdGlvbi4KLSAgICBpZiAoaXNEb2N1bWVudE5vZGUoKSkgewotICAgICAgICBzdGF0
aWNfY2FzdDxEb2N1bWVudCo+KHRoaXMpLT5yZW1vdmVkTGFzdFJlZigpOworICAgIGlmIChpc1Ry
ZWVTY29wZSgpKSB7CisgICAgICAgIHRyZWVTY29wZSgpLT5yZW1vdmVkTGFzdFJlZlRvU2NvcGUo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRl
eCA5OTY2NDIyOWMyYjYzZDE1OWEzZWMwMGU1ZjJjNDgzMTM0YTUxYWQ4Li42ZWQ3NTAyZWNmYmUy
MmYzMTNjMzQ2ZGUyYzM2NjBmYmQxY2Y4NWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTc3Niw3ICs3NzYs
OCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRIYXNDdXN0b21DYWxsYmFja3MoKSB7IHNldEZs
YWcodHJ1ZSwgSGFzQ3VzdG9tQ2FsbGJhY2tzRmxhZyk7IH0KIAogICAgIERvY3VtZW50KiBkb2N1
bWVudEludGVybmFsKCkgY29uc3QgeyByZXR1cm4gdHJlZVNjb3BlKCktPmRvY3VtZW50U2NvcGUo
KTsgfQotICAgIHZvaWQgc2V0VHJlZVNjb3BlKFRyZWVTY29wZSogc2NvcGUpIHsgbV90cmVlU2Nv
cGUgPSBzY29wZTsgfQorICAgIHZvaWQgc2V0VHJlZVNjb3BlKFRyZWVTY29wZSopOworICAgIGJv
b2wgaXNUcmVlU2NvcGVJbnRlcm5hbCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBj
bGFzcyBUcmVlU2hhcmVkPE5vZGU+OwpAQCAtODk1LDYgKzg5NiwxMyBAQCBpbmxpbmUgdm9pZCBO
b2RlOjpsYXp5UmVhdHRhY2goU2hvdWxkU2V0QXR0YWNoZWQgc2hvdWxkU2V0QXR0YWNoZWQpCiAg
ICAgbGF6eUF0dGFjaChzaG91bGRTZXRBdHRhY2hlZCk7CiB9CiAKK2lubGluZSB2b2lkIE5vZGU6
OnNldFRyZWVTY29wZShUcmVlU2NvcGUqIHNjb3BlKQoreworICAgIHNjb3BlLT5ndWFyZFJlZigp
OworICAgIG1fdHJlZVNjb3BlLT5ndWFyZERlcmVmKCk7CisgICAgbV90cmVlU2NvcGUgPSBzY29w
ZTsKK30KKwogfSAvL25hbWVzcGFjZQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNj
b3BlLmNwcAppbmRleCAwM2I0MmZjZTg1ODY4NjJjYzQ4OTliYjUxMjNlZjk0NTVlOWM1ZTBlLi45
MGFiNWM3ZmQzM2E2MTkxNTYwYzliNmQyYTRiNjgwOGIzYzEyN2VkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVNjb3BlLmNwcApAQCAtNTksNiArNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3Qg
U2FtZVNpemVBc1RyZWVTY29wZSB7CiAgICAgdmlydHVhbCB+U2FtZVNpemVBc1RyZWVTY29wZSgp
OwogICAgIHZvaWQqIHBvaW50ZXJzWzhdOworICAgIGludCBpbnRzWzFdOwogfTsKIAogQ09NUElM
RV9BU1NFUlQoc2l6ZW9mKFRyZWVTY29wZSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNUcmVlU2NvcGUp
LCB0cmVlc2NvcGVfc2hvdWxkX3N0YXlfc21hbGwpOwpAQCAtNjksMTEgKzcwLDEzIEBAIFRyZWVT
Y29wZTo6VHJlZVNjb3BlKENvbnRhaW5lck5vZGUqIHJvb3ROb2RlLCBEb2N1bWVudCogZG9jdW1l
bnQpCiAgICAgOiBtX3Jvb3ROb2RlKHJvb3ROb2RlKQogICAgICwgbV9kb2N1bWVudFNjb3BlKGRv
Y3VtZW50KQogICAgICwgbV9wYXJlbnRUcmVlU2NvcGUoZG9jdW1lbnQpCisgICAgLCBtX2d1YXJk
UmVmQ291bnQoMCkKICAgICAsIG1faWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KElkVGFyZ2V0T2Jz
ZXJ2ZXJSZWdpc3RyeTo6Y3JlYXRlKCkpCiB7CiAgICAgQVNTRVJUKHJvb3ROb2RlKTsKICAgICBB
U1NFUlQoZG9jdW1lbnQpOwogICAgIEFTU0VSVChyb290Tm9kZSAhPSBkb2N1bWVudCk7CisgICAg
bV9wYXJlbnRUcmVlU2NvcGUtPmd1YXJkUmVmKCk7CiB9CiAKIFRyZWVTY29wZTo6VHJlZVNjb3Bl
KERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTk0LDEwICs5NywxNSBAQCBUcmVlU2NvcGU6OlRyZWVT
Y29wZSgpCiAKIFRyZWVTY29wZTo6flRyZWVTY29wZSgpCiB7CisgICAgQVNTRVJUKCFtX2d1YXJk
UmVmQ291bnQpOworCiAgICAgaWYgKG1fc2VsZWN0aW9uKSB7CiAgICAgICAgIG1fc2VsZWN0aW9u
LT5jbGVhclRyZWVTY29wZSgpOwogICAgICAgICBtX3NlbGVjdGlvbiA9IDA7CiAgICAgfQorCisg
ICAgaWYgKG1fcGFyZW50VHJlZVNjb3BlKQorICAgICAgICBtX3BhcmVudFRyZWVTY29wZS0+Z3Vh
cmREZXJlZigpOwogfQogCiB2b2lkIFRyZWVTY29wZTo6ZGVzdHJveVRyZWVTY29wZURhdGEoKQpA
QCAtMTIwLDcgKzEyOCwxMSBAQCB2b2lkIFRyZWVTY29wZTo6c2V0UGFyZW50VHJlZVNjb3BlKFRy
ZWVTY29wZSogbmV3UGFyZW50U2NvcGUpCiAgICAgLy8gRXZlcnkgc2NvcGUgb3RoZXIgdGhhbiBk
b2N1bWVudCBuZWVkcyBhIHBhcmVudCBzY29wZS4KICAgICBBU1NFUlQobmV3UGFyZW50U2NvcGUp
OwogCisgICAgVHJlZVNjb3BlKiBvbGRQYXJlbnRTY29wZSA9IG1fcGFyZW50VHJlZVNjb3BlOwog
ICAgIG1fcGFyZW50VHJlZVNjb3BlID0gbmV3UGFyZW50U2NvcGU7CisgICAgbmV3UGFyZW50U2Nv
cGUtPmd1YXJkUmVmKCk7CisgICAgaWYgKG9sZFBhcmVudFNjb3BlKQorICAgICAgICBvbGRQYXJl
bnRTY29wZS0+Z3VhcmREZXJlZigpOwogICAgIHNldERvY3VtZW50U2NvcGUobmV3UGFyZW50U2Nv
cGUtPmRvY3VtZW50U2NvcGUoKSk7CiB9CiAKQEAgLTQxNSw0ICs0MjcsMjIgQEAgVHJlZVNjb3Bl
KiBjb21tb25UcmVlU2NvcGUoTm9kZSogbm9kZUEsIE5vZGUqIG5vZGVCKQogICAgIHJldHVybiB0
cmVlU2NvcGVzQVtpbmRleEFdID09IHRyZWVTY29wZXNCW2luZGV4Ql0gPyB0cmVlU2NvcGVzQVtp
bmRleEFdIDogMDsKIH0KIAorI2lmbmRlZiBOREVCVUcKK2Jvb2wgVHJlZVNjb3BlOjpkZWxldGlv
bkhhc0JlZ3VuKCkKK3sKKyAgICByZXR1cm4gcm9vdE5vZGUoKSAmJiByb290Tm9kZSgpLT5tX2Rl
bGV0aW9uSGFzQmVndW47Cit9CisKK3ZvaWQgVHJlZVNjb3BlOjpiZWdpbkRlbGV0aW9uKCkKK3sK
KyAgICBBU1NFUlQodGhpcyAhPSBub0RvY3VtZW50SW5zdGFuY2UoKSk7CisgICAgcm9vdE5vZGUo
KS0+bV9kZWxldGlvbkhhc0JlZ3VuID0gdHJ1ZTsKK30KKyNlbmRpZgorCitpbnQgVHJlZVNjb3Bl
OjpyZWZDb3VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJvb3ROb2RlKCktPnJlZkNvdW50KCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmVlU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAppbmRleCBi
ZTUwMGYxMDY0YzhiNzgxNDljZGNkZWQ5MjgxOTFiM2Y1NmIzZWYxLi5hZDAwYjgyOTJkMDczZWE0
NTA4Mzc1MTRhODU1NjI5MjQ5OTA5N2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCkBAIC04OCw2
ICs4OCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhvclN0eWxlcygp
IGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZExhc3RSZWZUb1Njb3BlKCkgeyB9CiAKICAgICAvLyBV
c2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24gbWV0aG9kcyAoZS5nLiwgYXBwZW5kQ2hpbGQo
KSkuCiAgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsKQEAgLTEwNCw2ICsxMDUsMjcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gJmluc3RhbmNlOwogICAgIH0KIAorICAgIC8vIE5vZGVz
IGJlbG9uZ2luZyB0byB0aGlzIGRvY3VtZW50IGhvbGQgZ3VhcmQgcmVmZXJlbmNlcyAtCisgICAg
Ly8gdGhlc2UgYXJlIGVub3VnaCB0byBrZWVwIHRoZSBkb2N1bWVudCBmcm9tIGJlaW5nIGRlc3Ry
b3llZCwgYnV0CisgICAgLy8gbm90IGVub3VnaCB0byBrZWVwIGl0IGZyb20gcmVtb3ZpbmcgaXRz
IGNoaWxkcmVuLiBUaGlzIGFsbG93cyBhCisgICAgLy8gbm9kZSB0aGF0IG91dGxpdmVzIGl0cyBk
b2N1bWVudCB0byBzdGlsbCBoYXZlIGEgdmFsaWQgZG9jdW1lbnQKKyAgICAvLyBwb2ludGVyIHdp
dGhvdXQgaW50cm9kdWNpbmcgcmVmZXJlbmNlIGN5Y2xlcy4KKyAgICB2b2lkIGd1YXJkUmVmKCkK
KyAgICB7CisgICAgICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICAgICAgKytt
X2d1YXJkUmVmQ291bnQ7CisgICAgfQorCisgICAgdm9pZCBndWFyZERlcmVmKCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICAgICAgLS1tX2d1YXJkUmVm
Q291bnQ7CisgICAgICAgIGlmICghbV9ndWFyZFJlZkNvdW50ICYmICFyZWZDb3VudCgpICYmIHRo
aXMgIT0gbm9Eb2N1bWVudEluc3RhbmNlKCkpIHsKKyAgICAgICAgICAgIGJlZ2luRGVsZXRpb24o
KTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzOworICAgICAgICB9CisgICAgfQorCiBwcm90ZWN0
ZWQ6CiAgICAgVHJlZVNjb3BlKENvbnRhaW5lck5vZGUqLCBEb2N1bWVudCopOwogICAgIFRyZWVT
Y29wZShEb2N1bWVudCopOwpAQCAtMTE4LDEyICsxNDAsMjQgQEAgcHJvdGVjdGVkOgogICAgICAg
ICBtX2RvY3VtZW50U2NvcGUgPSBkb2N1bWVudDsKICAgICB9CiAKKyAgICBpbnQgZ3VhcmRSZWZD
b3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZ3VhcmRSZWZDb3VudDsgfQorCiBwcml2YXRlOgogICAg
IFRyZWVTY29wZSgpOwogCisgICAgaW50IHJlZkNvdW50KCkgY29uc3Q7CisjaWZuZGVmIE5ERUJV
RworICAgIGJvb2wgZGVsZXRpb25IYXNCZWd1bigpOworICAgIHZvaWQgYmVnaW5EZWxldGlvbigp
OworI2Vsc2UKKyAgICBib29sIGRlbGV0aW9uSGFzQmVndW4oKSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZvaWQgYmVnaW5EZWxldGlvbigpIHsgfQorI2VuZGlmCisKICAgICBDb250YWluZXJOb2Rl
KiBtX3Jvb3ROb2RlOwogICAgIERvY3VtZW50KiBtX2RvY3VtZW50U2NvcGU7CiAgICAgVHJlZVNj
b3BlKiBtX3BhcmVudFRyZWVTY29wZTsKKyAgICBpbnQgbV9ndWFyZFJlZkNvdW50OwogCiAgICAg
T3duUHRyPERvY3VtZW50T3JkZXJlZE1hcD4gbV9lbGVtZW50c0J5SWQ7CiAgICAgT3duUHRyPERv
Y3VtZW50T3JkZXJlZE1hcD4gbV9pbWFnZU1hcHNCeU5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVNjb3BlQWRvcHRlci5jcHAKaW5kZXggNDFiZmQyNTZjYzRiNWU1ZjMxNzE5NTE4YmUxYjMwODk1
ZTg1OGQxMC4uYTg3Mzk2M2NjZmE0N2YzNGFlZjUwY2U0MmNmYTdjZmIxZWU2OWQ1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcApAQCAtNDAsNiArNDAsOCBAQCB2b2lk
IFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVlVG9OZXdTY29wZShOb2RlKiByb290KSBjb25zdAog
ewogICAgIEFTU0VSVChuZWVkc1Njb3BlQ2hhbmdlKCkpOwogCisgICAgUmVmUHRyPENvbnRhaW5l
ck5vZGU+IHByb3RlY3RPbGRTY29wZShtX29sZFNjb3BlLT5yb290Tm9kZSgpKTsKKwogICAgIC8v
IElmIGFuIGVsZW1lbnQgaXMgbW92ZWQgZnJvbSBhIGRvY3VtZW50IGFuZCB0aGVuIGV2ZW50dWFs
bHkgYmFjayBhZ2FpbiB0aGUgY29sbGVjdGlvbiBjYWNoZSBmb3IKICAgICAvLyB0aGF0IGVsZW1l
bnQgbWF5IGNvbnRhaW4gc3RhbGUgZGF0YSBhcyBjaGFuZ2VzIG1hZGUgdG8gaXQgd2lsbCBoYXZl
IHVwZGF0ZWQgdGhlIERPTVRyZWVWZXJzaW9uCiAgICAgLy8gb2YgdGhlIGRvY3VtZW50IGl0IHdh
cyBtb3ZlZCB0by4gQnkgaW5jcmVhc2luZyB0aGUgRE9NVHJlZVZlcnNpb24gb2YgdGhlIGRvbmF0
aW5nIGRvY3VtZW50IGhlcmUKQEAgLTEwOSw3ICsxMTEsNiBAQCBpbmxpbmUgdm9pZCBUcmVlU2Nv
cGVBZG9wdGVyOjptb3ZlTm9kZVRvTmV3RG9jdW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQqIG9s
ZERvYwogICAgICAgICAgICAgcmFyZURhdGEtPm5vZGVMaXN0cygpLT5hZG9wdERvY3VtZW50KG9s
ZERvY3VtZW50LCBuZXdEb2N1bWVudCk7CiAgICAgfQogCi0gICAgbmV3RG9jdW1lbnQtPmd1YXJk
UmVmKCk7CiAgICAgaWYgKG9sZERvY3VtZW50KQogICAgICAgICBvbGREb2N1bWVudC0+bW92ZU5v
ZGVJdGVyYXRvcnNUb05ld0RvY3VtZW50KG5vZGUsIG5ld0RvY3VtZW50KTsKIApAQCAtMTIzLDkg
KzEyNCw2IEBAIGlubGluZSB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVOb2RlVG9OZXdEb2N1
bWVudChOb2RlKiBub2RlLCBEb2N1bWVudCogb2xkRG9jCiAKICAgICBub2RlLT5kaWRNb3ZlVG9O
ZXdEb2N1bWVudChvbGREb2N1bWVudCk7CiAgICAgQVNTRVJUKGRpZE1vdmVUb05ld0RvY3VtZW50
V2FzQ2FsbGVkKTsKLSAgICAKLSAgICBpZiAob2xkRG9jdW1lbnQpCi0gICAgICAgIG9sZERvY3Vt
ZW50LT5ndWFyZERlcmVmKCk7CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188268</attachid>
            <date>2013-02-13 23:32:37 -0800</date>
            <delta_ts>2013-02-14 01:12:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109777-20130214162904.patch</filename>
            <type>text/plain</type>
            <size>15141</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDhiNzIwZTQ5NjA0ZjVm
YTI4YTg2MGIwYWEwMTBlOTc3ZDYyMWFmOS4uNDYwM2Q3MWEwNDE5Njc5OTU3NDUxZTJiNmRhOTQw
MTA1MDM5NjlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAyLTEzICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGd1YXJkUmVmKCkgYW5kIGd1YXJkRGVyZWYoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgbW92ZXMgbV9ndWFyZFJlZkNvdW50
IGZyb20gRG9jdW1lbnQgdG8gVHJlZVNjb3BlLAorICAgICAgICB3aGljaCBhbGxvd3MgU2hhZG93
Um9vdCB0byBiZSBndWFyZGVkIGJ5IGd1YXJkUmVmKCkgbWVjaGFuaXNtIGxpa2UKKyAgICAgICAg
YXMgRG9jdW1lbnQuIEFmdGVyIHIxMzc1MjQsIE5vZGUgcmVmZXJlcyBUcmVlU2NvcGUgaW5zdGVh
ZCBvZgorICAgICAgICBEb2N1bWVudC4gVGhpcyBpcyBuYXR1cmFsIGNvbnNlcXVlbmNlIG9mIHRo
ZSBjaGFuZ2U6IEl0IG5vIGxvbmdlcgorICAgICAgICBtYWtlcyBzZW5zZSB0byBndWFyZCBEb2N1
bWVudCBwb2ludGVyIGluIE5vZGUgbm93LgorCisgICAgICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUg
dHdvICJndWFyZGVkIiBUcmVlU2NvcGUgcmVmZXJlbmNlcy4gT25lIGlzCisgICAgICAgIE5vZGU6
Om1fdHJlZVNjb3BlIGFuZCBhbm90aGVyIGlzIFRyZWVTY29wZTo6bV9wYXJlbnRUcmVlU2NvcGUu
CisgICAgICAgIFRoZSBndWFyZGVkLXJlZiBtYW5hZ2VtZW50IGlzIG5vdyBlbmNhcHN1bGF0ZWQg
aW4gdGhlc2UgdHdvIGNsYXNzZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5
IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
ZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6aXNUcmVlU2NvcGUpOiBJbmxpbmVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
cmVtb3ZlZExhc3RSZWZUb1Njb3BlKToKKyAgICAgICAgUmVuYW1lZCBmcm9tIHJlbW92ZWRMYXN0
UmVmIHRvIHJlbW92ZWRMYXN0UmVmVG9TY29wZSwgd2hpY2ggaXMgYSB2aXJ0dWFsIGZ1bmNkdGlv
biBvZiBUcmVlU2NvcGUuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpOb2RlKToKKyAgICAgICAgKiBkb20vTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZW1vdmVkTGFzdFJlZik6IE5vdyBjYWxs
cyBUcmVlU2NvcGU6OnJlbW92ZWRMYXN0UmVmVG9TY29wZSgpCisgICAgICAgICogZG9tL05vZGUu
aDoKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0VHJlZVNjb3Bl
KTogQWRkZWQgZ3VhcmRSZWYoKS9ndWFyZERlcmVmKCkgY2FsbHMKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoU2FtZVNpemVBc1RyZWVT
Y29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OlRyZWVTY29wZSk6CisgICAgICAg
IChXZWJDb3JlOjpUcmVlU2NvcGU6On5UcmVlU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVNjb3BlOjpzZXRQYXJlbnRUcmVlU2NvcGUpOiBBZGRlZCBndWFyZFJlZigpL2d1YXJkRGVyZWYo
KSBjYWxscworICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6
OmRlbGV0aW9uSGFzQmVndW4pOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpiZWdpbkRl
bGV0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6cmVmQ291bnQpOiBBZGRlZC4K
KyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6
OnJlbW92ZWRMYXN0UmVmVG9TY29wZSk6IEFkZGVkLgorICAgICAgICAoVHJlZVNjb3BlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6Z3VhcmRSZWYpOiBNb3ZlZCBmcm9tIERvY3VtZW50
LgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpndWFyZERlcmVmKTogTW92ZWQgZnJvbSBE
b2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6Z3VhcmRSZWZDb3VudCk6IE1v
dmVkIGZyb20gRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmRlbGV0aW9u
SGFzQmVndW4pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6YmVnaW5EZWxl
dGlvbik6IEFkZGVkLgorICAgICAgICAqIGRvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVlVG9OZXdTY29wZSk6CisgICAg
ICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlTm9kZVRvTmV3RG9jdW1lbnQpOgor
CiAyMDEzLTAyLTEzICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0Pgog
CiAgICAgICAgIENvb3JkaW5hdGVkIEdyYXBoaWNzOiBhIGxvbmcgcGFnZSBpcyBzY2FsZWQgdmVy
dGljYWxseSB3aGlsZSBsb2FkaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA2NzA5ZGUxOGU2
NWJkMGZiZTliMjQ3MDk5Y2ExOGU3NTY0NDk3MzMxLi5jODg4ZDAxNDE4MWFiMzhhY2EzNTUzZGQ1
YmFiZWUyYjQ4MDc4MGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTQwNyw3ICsxNDA3LDYg
QEAgX19aTks3V2ViQ29yZTROb2RlMTF0ZXh0Q29udGVudEViCiBfX1pON1dlYkNvcmU0Tm9kZTEy
aW5zZXJ0QmVmb3JlRU4zV1RGMTBQYXNzUmVmUHRySVMwX0VFUFMwX1JpYgogX19aTks3V2ViQ29y
ZTROb2RlMTNvd25lckRvY3VtZW50RXYKIF9fWk5LN1dlYkNvcmU0Tm9kZTE0aXNEZXNjZW5kYW50
T2ZFUEtTMF8KLV9fWk5LN1dlYkNvcmU0Tm9kZTExaXNUcmVlU2NvcGVFdgogX19aTks3V2ViQ29y
ZTROb2RlMThnZXRTdWJyZXNvdXJjZVVSTHNFUk4zV1RGMTFMaXN0SGFzaFNldElOU180S1VSTEVM
bTI1NkVOU184S1VSTEhhc2hFRUUKIF9fWk5LN1dlYkNvcmU0Tm9kZTMxbnVtYmVyT2ZTY29wZWRI
VE1MU3R5bGVDaGlsZHJlbkV2CiBfX1pOSzdXZWJDb3JlNE5vZGU5bm9kZUluZGV4RXYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGFpbmVyTm9kZS5oCmluZGV4IGZlMmVjODVmODRiN2M5MjQ2YThhOTJmOWU2Mzkz
YjY4MTU0ZTI1ZTguLmRkZjgxOGRkNTJmODY2NGU2ZDI5ODBjZDZmN2MwODJmY2E3MWNmN2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaApAQCAtMzYwLDYgKzM2MCwxMyBAQCBwcml2YXRl
OgogICAgIENvbnRhaW5lck5vZGUqIG1fbm9kZTsKIH07CiAKKworLy8gVGhpcyBpcyBwbGFjZWQg
aGVyZSBmb3IgaW5saW5pbmc6IHJvb3ROb2RlKCkgbmVlZHMgQ29udGFpbmVyTm9kZSBkZWZpbnRp
aW9uLgoraW5saW5lIGJvb2wgTm9kZTo6aXNUcmVlU2NvcGUoKSBjb25zdAoreworICAgIHJldHVy
biB0cmVlU2NvcGUoKS0+cm9vdE5vZGUoKSA9PSB0aGlzOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBDb250YWluZXJOb2RlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IGE1YWI5OTRiMDkyMjdlNzRiZWM2NGM1YzA1Nzc5ZDI4NjI1NTgxYzguLjY3MjFhZjUy
MTBiOGY1NjM0ZDA3OWJjNjdiOTViNjA3YjNlNzg2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtNDA5LDcgKzQwOSw2IEBAIHVpbnQ2NF90IERvY3VtZW50OjpzX2dsb2JhbFRyZWVWZXJz
aW9uID0gMDsKIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVy
bCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICA6IENvbnRhaW5lck5vZGUoMCwgQ3Jl
YXRlRG9jdW1lbnQpCiAgICAgLCBUcmVlU2NvcGUodGhpcykKLSAgICAsIG1fZ3VhcmRSZWZDb3Vu
dCgwKQogICAgICwgbV9zdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXIodGhpcywgJkRvY3VtZW50
OjpzdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJGaXJlZCkKICAgICAsIG1fbGFzdFN0eWxlUmVz
b2x2ZXJBY2Nlc3NUaW1lKDApCiAgICAgLCBtX2FjdGl2ZVBhcnNlckNvdW50KDApCkBAIC01ODIs
NyArNTgxLDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAgQVNTRVJUKG1fcmFuZ2VzLmlz
RW1wdHkoKSk7CiAgICAgQVNTRVJUKCFtX3N0eWxlUmVjYWxjVGltZXIuaXNBY3RpdmUoKSk7CiAg
ICAgQVNTRVJUKCFtX3BhcmVudFRyZWVTY29wZSk7Ci0gICAgQVNTRVJUKCFtX2d1YXJkUmVmQ291
bnQpOworICAgIEFTU0VSVCghZ3VhcmRSZWZDb3VudCgpKTsKIAogI2lmIEVOQUJMRShURU1QTEFU
RV9FTEVNRU5UKQogICAgIGlmIChtX3RlbXBsYXRlRG9jdW1lbnQpCkBAIC02NDksMTAgKzY0OCwx
MCBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKICAgICBJbnNwZWN0b3JDb3VudGVyczo6ZGVjcmVt
ZW50Q291bnRlcihJbnNwZWN0b3JDb3VudGVyczo6RG9jdW1lbnRDb3VudGVyKTsKIH0KIAotdm9p
ZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYoKQordm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RS
ZWZUb1Njb3BlKCkKIHsKICAgICBBU1NFUlQoIW1fZGVsZXRpb25IYXNCZWd1bik7Ci0gICAgaWYg
KG1fZ3VhcmRSZWZDb3VudCkgeworICAgIGlmIChndWFyZFJlZkNvdW50KCkpIHsKICAgICAgICAg
Ly8gSWYgcmVtb3ZpbmcgYSBjaGlsZCByZW1vdmVzIHRoZSBsYXN0IHNlbGYtb25seSByZWYsIHdl
IGRvbid0CiAgICAgICAgIC8vIHdhbnQgdGhlIHNjb3BlIHRvIGJlIGRlc3RydWN0ZWQgdW50aWwg
YWZ0ZXIKICAgICAgICAgLy8gcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbiByZXR1cm5zLCBzbyB3ZSBn
dWFyZCBvdXJzZWx2ZXMgd2l0aCBhbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA3MmM4Mzk5M2Jl
MDdmZjhjMjc2MjAyOTlhYTIxNjQ5NmNmN2Y1OWU3Li4xNjNiMTU0ZDliNDgwZjczM2Y4OGE4MjM4
ZjQ4ZmIzMDA5MGY0ZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMjI4LDI5ICsyMjgsNiBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgQ29udGFpbmVyTm9kZTo6cmVmOwogICAgIHVzaW5nIENvbnRh
aW5lck5vZGU6OmRlcmVmOwogCi0gICAgLy8gTm9kZXMgYmVsb25naW5nIHRvIHRoaXMgZG9jdW1l
bnQgaG9sZCBndWFyZCByZWZlcmVuY2VzIC0KLSAgICAvLyB0aGVzZSBhcmUgZW5vdWdoIHRvIGtl
ZXAgdGhlIGRvY3VtZW50IGZyb20gYmVpbmcgZGVzdHJveWVkLCBidXQKLSAgICAvLyBub3QgZW5v
dWdoIHRvIGtlZXAgaXQgZnJvbSByZW1vdmluZyBpdHMgY2hpbGRyZW4uIFRoaXMgYWxsb3dzIGEK
LSAgICAvLyBub2RlIHRoYXQgb3V0bGl2ZXMgaXRzIGRvY3VtZW50IHRvIHN0aWxsIGhhdmUgYSB2
YWxpZCBkb2N1bWVudAotICAgIC8vIHBvaW50ZXIgd2l0aG91dCBpbnRyb2R1Y2luZyByZWZlcmVu
Y2UgY3ljbGVzLgotICAgIHZvaWQgZ3VhcmRSZWYoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFt
X2RlbGV0aW9uSGFzQmVndW4pOwotICAgICAgICArK21fZ3VhcmRSZWZDb3VudDsKLSAgICB9Ci0K
LSAgICB2b2lkIGd1YXJkRGVyZWYoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2RlbGV0aW9u
SGFzQmVndW4pOwotICAgICAgICAtLW1fZ3VhcmRSZWZDb3VudDsKLSAgICAgICAgaWYgKCFtX2d1
YXJkUmVmQ291bnQgJiYgIXJlZkNvdW50KCkpIHsKLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgICAg
ICBtX2RlbGV0aW9uSGFzQmVndW4gPSB0cnVlOwotI2VuZGlmCi0gICAgICAgICAgICBkZWxldGUg
dGhpczsKLSAgICAgICAgfQotICAgIH0KLQogICAgIEVsZW1lbnQqIGdldEVsZW1lbnRCeUlkKGNv
bnN0IEF0b21pY1N0cmluZyYgaWQpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIGNhbkNvbnRh
aW5SYW5nZUVuZFBvaW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMTIxNyw3ICsxMTk0
LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTm9kZTsKICAgICBmcmllbmQgY2xhc3Mg
SWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXI7CiAKLSAgICB2b2lkIHJlbW92
ZWRMYXN0UmVmKCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRMYXN0UmVmVG9TY29wZSgpIE9W
RVJSSURFOwogICAgIAogICAgIHZvaWQgZGV0YWNoUGFyc2VyKCk7CiAKQEAgLTEyODYsOCArMTI2
Myw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRMaXN0ZW5lclR5cGUoTGlzdGVuZXJUeXBlIGxp
c3RlbmVyVHlwZSkgeyBtX2xpc3RlbmVyVHlwZXMgfD0gbGlzdGVuZXJUeXBlOyB9CiAgICAgdm9p
ZCBhZGRNdXRhdGlvbkV2ZW50TGlzdGVuZXJUeXBlSWZFbmFibGVkKExpc3RlbmVyVHlwZSk7CiAK
LSAgICBpbnQgbV9ndWFyZFJlZkNvdW50OwotCiAgICAgdm9pZCBzdHlsZVJlc29sdmVyVGhyb3dh
d2F5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKTsKICAgICBUaW1lcjxEb2N1bWVudD4gbV9z
dHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXI7CiAgICAgZG91YmxlIG1fbGFzdFN0eWxlUmVzb2x2
ZXJBY2Nlc3NUaW1lOwpAQCAtMTYwMywxMCArMTU3OCw5IEBAIGlubGluZSBOb2RlOjpOb2RlKERv
Y3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQogICAgICwgbV9wcmV2aW91
cygwKQogICAgICwgbV9uZXh0KDApCiB7Ci0gICAgaWYgKGRvY3VtZW50KQotICAgICAgICBkb2N1
bWVudC0+Z3VhcmRSZWYoKTsKLSAgICBlbHNlCisgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAg
bV90cmVlU2NvcGUgPSBUcmVlU2NvcGU6Om5vRG9jdW1lbnRJbnN0YW5jZSgpOworICAgIG1fdHJl
ZVNjb3BlLT5ndWFyZFJlZigpOwogCiAjaWYgIWRlZmluZWQoTkRFQlVHKSB8fCAoZGVmaW5lZChE
VU1QX05PREVfU1RBVElTVElDUykgJiYgRFVNUF9OT0RFX1NUQVRJU1RJQ1MpCiAgICAgdHJhY2tG
b3JEZWJ1Z2dpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA4MjAxN2E4ZmUwYjU0NTFhOTgwOTFm
MmQ4NTNjNjc1NjBiNWExYTg3Li4wYmYyOWNjNjgzZWFiOTFkOWRkN2U4YjVmYTk3MjFkMmFhOWMz
MGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC04OTIsMTEgKzg5Miw2IEBAIGJvb2wgTm9kZTo6aXNG
b2N1c2FibGUoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE5vZGU6OmlzVHJl
ZVNjb3BlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJlZVNjb3BlKCktPnJvb3ROb2RlKCkgPT0g
dGhpczsKLX0KLQogYm9vbCBOb2RlOjppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQq
KSBjb25zdAogewogICAgIHJldHVybiBpc0ZvY3VzYWJsZSgpICYmIHRhYkluZGV4KCkgPj0gMDsK
QEAgLTI1NjEsOCArMjU1Niw4IEBAIHZvaWQgTm9kZTo6cmVtb3ZlZExhc3RSZWYoKQogICAgIC8v
IEFuIGV4cGxpY2l0IGNoZWNrIGZvciBEb2N1bWVudCBoZXJlIGlzIGJldHRlciB0aGFuIGEgdmly
dHVhbCBmdW5jdGlvbiBzaW5jZSBpdCBpcwogICAgIC8vIGZhc3RlciBmb3Igbm9uLURvY3VtZW50
IG5vZGVzLCBhbmQgYmVjYXVzZSB0aGUgY2FsbCB0byByZW1vdmVkTGFzdFJlZiB0aGF0IGlzIGlu
bGluZWQKICAgICAvLyBhdCBhbGwgZGVyZWYgY2FsbCBzaXRlcyBpcyBzbWFsbGVyIGlmIGl0J3Mg
YSBub24tdmlydHVhbCBmdW5jdGlvbi4KLSAgICBpZiAoaXNEb2N1bWVudE5vZGUoKSkgewotICAg
ICAgICBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KHRoaXMpLT5yZW1vdmVkTGFzdFJlZigpOworICAg
IGlmIChpc1RyZWVTY29wZSgpKSB7CisgICAgICAgIHRyZWVTY29wZSgpLT5yZW1vdmVkTGFzdFJl
ZlRvU2NvcGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNpZm5kZWYgTkRFQlVHCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaAppbmRleCA5OTY2NDIyOWMyYjYzZDE1OWEzZWMwMGU1ZjJjNDgzMTM0YTUxYWQ4Li42ZWQ3
NTAyZWNmYmUyMmYzMTNjMzQ2ZGUyYzM2NjBmYmQxY2Y4NWEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTc3
Niw3ICs3NzYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRIYXNDdXN0b21DYWxsYmFja3Mo
KSB7IHNldEZsYWcodHJ1ZSwgSGFzQ3VzdG9tQ2FsbGJhY2tzRmxhZyk7IH0KIAogICAgIERvY3Vt
ZW50KiBkb2N1bWVudEludGVybmFsKCkgY29uc3QgeyByZXR1cm4gdHJlZVNjb3BlKCktPmRvY3Vt
ZW50U2NvcGUoKTsgfQotICAgIHZvaWQgc2V0VHJlZVNjb3BlKFRyZWVTY29wZSogc2NvcGUpIHsg
bV90cmVlU2NvcGUgPSBzY29wZTsgfQorICAgIHZvaWQgc2V0VHJlZVNjb3BlKFRyZWVTY29wZSop
OworICAgIGJvb2wgaXNUcmVlU2NvcGVJbnRlcm5hbCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAg
IGZyaWVuZCBjbGFzcyBUcmVlU2hhcmVkPE5vZGU+OwpAQCAtODk1LDYgKzg5NiwxMyBAQCBpbmxp
bmUgdm9pZCBOb2RlOjpsYXp5UmVhdHRhY2goU2hvdWxkU2V0QXR0YWNoZWQgc2hvdWxkU2V0QXR0
YWNoZWQpCiAgICAgbGF6eUF0dGFjaChzaG91bGRTZXRBdHRhY2hlZCk7CiB9CiAKK2lubGluZSB2
b2lkIE5vZGU6OnNldFRyZWVTY29wZShUcmVlU2NvcGUqIHNjb3BlKQoreworICAgIHNjb3BlLT5n
dWFyZFJlZigpOworICAgIG1fdHJlZVNjb3BlLT5ndWFyZERlcmVmKCk7CisgICAgbV90cmVlU2Nv
cGUgPSBzY29wZTsKK30KKwogfSAvL25hbWVzcGFjZQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVNjb3BlLmNwcAppbmRleCAwM2I0MmZjZTg1ODY4NjJjYzQ4OTliYjUxMjNlZjk0NTVl
OWM1ZTBlLi45MGFiNWM3ZmQzM2E2MTkxNTYwYzliNmQyYTRiNjgwOGIzYzEyN2VkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtNTksNiArNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBzdHJ1Y3QgU2FtZVNpemVBc1RyZWVTY29wZSB7CiAgICAgdmlydHVhbCB+U2FtZVNpemVBc1Ry
ZWVTY29wZSgpOwogICAgIHZvaWQqIHBvaW50ZXJzWzhdOworICAgIGludCBpbnRzWzFdOwogfTsK
IAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFRyZWVTY29wZSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNU
cmVlU2NvcGUpLCB0cmVlc2NvcGVfc2hvdWxkX3N0YXlfc21hbGwpOwpAQCAtNjksMTEgKzcwLDEz
IEBAIFRyZWVTY29wZTo6VHJlZVNjb3BlKENvbnRhaW5lck5vZGUqIHJvb3ROb2RlLCBEb2N1bWVu
dCogZG9jdW1lbnQpCiAgICAgOiBtX3Jvb3ROb2RlKHJvb3ROb2RlKQogICAgICwgbV9kb2N1bWVu
dFNjb3BlKGRvY3VtZW50KQogICAgICwgbV9wYXJlbnRUcmVlU2NvcGUoZG9jdW1lbnQpCisgICAg
LCBtX2d1YXJkUmVmQ291bnQoMCkKICAgICAsIG1faWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KElk
VGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeTo6Y3JlYXRlKCkpCiB7CiAgICAgQVNTRVJUKHJvb3ROb2Rl
KTsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwogICAgIEFTU0VSVChyb290Tm9kZSAhPSBkb2N1bWVu
dCk7CisgICAgbV9wYXJlbnRUcmVlU2NvcGUtPmd1YXJkUmVmKCk7CiB9CiAKIFRyZWVTY29wZTo6
VHJlZVNjb3BlKERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTk0LDEwICs5NywxNSBAQCBUcmVlU2Nv
cGU6OlRyZWVTY29wZSgpCiAKIFRyZWVTY29wZTo6flRyZWVTY29wZSgpCiB7CisgICAgQVNTRVJU
KCFtX2d1YXJkUmVmQ291bnQpOworCiAgICAgaWYgKG1fc2VsZWN0aW9uKSB7CiAgICAgICAgIG1f
c2VsZWN0aW9uLT5jbGVhclRyZWVTY29wZSgpOwogICAgICAgICBtX3NlbGVjdGlvbiA9IDA7CiAg
ICAgfQorCisgICAgaWYgKG1fcGFyZW50VHJlZVNjb3BlKQorICAgICAgICBtX3BhcmVudFRyZWVT
Y29wZS0+Z3VhcmREZXJlZigpOwogfQogCiB2b2lkIFRyZWVTY29wZTo6ZGVzdHJveVRyZWVTY29w
ZURhdGEoKQpAQCAtMTIwLDcgKzEyOCwxMSBAQCB2b2lkIFRyZWVTY29wZTo6c2V0UGFyZW50VHJl
ZVNjb3BlKFRyZWVTY29wZSogbmV3UGFyZW50U2NvcGUpCiAgICAgLy8gRXZlcnkgc2NvcGUgb3Ro
ZXIgdGhhbiBkb2N1bWVudCBuZWVkcyBhIHBhcmVudCBzY29wZS4KICAgICBBU1NFUlQobmV3UGFy
ZW50U2NvcGUpOwogCisgICAgVHJlZVNjb3BlKiBvbGRQYXJlbnRTY29wZSA9IG1fcGFyZW50VHJl
ZVNjb3BlOwogICAgIG1fcGFyZW50VHJlZVNjb3BlID0gbmV3UGFyZW50U2NvcGU7CisgICAgbmV3
UGFyZW50U2NvcGUtPmd1YXJkUmVmKCk7CisgICAgaWYgKG9sZFBhcmVudFNjb3BlKQorICAgICAg
ICBvbGRQYXJlbnRTY29wZS0+Z3VhcmREZXJlZigpOwogICAgIHNldERvY3VtZW50U2NvcGUobmV3
UGFyZW50U2NvcGUtPmRvY3VtZW50U2NvcGUoKSk7CiB9CiAKQEAgLTQxNSw0ICs0MjcsMjIgQEAg
VHJlZVNjb3BlKiBjb21tb25UcmVlU2NvcGUoTm9kZSogbm9kZUEsIE5vZGUqIG5vZGVCKQogICAg
IHJldHVybiB0cmVlU2NvcGVzQVtpbmRleEFdID09IHRyZWVTY29wZXNCW2luZGV4Ql0gPyB0cmVl
U2NvcGVzQVtpbmRleEFdIDogMDsKIH0KIAorI2lmbmRlZiBOREVCVUcKK2Jvb2wgVHJlZVNjb3Bl
OjpkZWxldGlvbkhhc0JlZ3VuKCkKK3sKKyAgICByZXR1cm4gcm9vdE5vZGUoKSAmJiByb290Tm9k
ZSgpLT5tX2RlbGV0aW9uSGFzQmVndW47Cit9CisKK3ZvaWQgVHJlZVNjb3BlOjpiZWdpbkRlbGV0
aW9uKCkKK3sKKyAgICBBU1NFUlQodGhpcyAhPSBub0RvY3VtZW50SW5zdGFuY2UoKSk7CisgICAg
cm9vdE5vZGUoKS0+bV9kZWxldGlvbkhhc0JlZ3VuID0gdHJ1ZTsKK30KKyNlbmRpZgorCitpbnQg
VHJlZVNjb3BlOjpyZWZDb3VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHJvb3ROb2RlKCktPnJl
ZkNvdW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUu
aAppbmRleCBiZTUwMGYxMDY0YzhiNzgxNDljZGNkZWQ5MjgxOTFiM2Y1NmIzZWYxLi5hZDAwYjgy
OTJkMDczZWE0NTA4Mzc1MTRhODU1NjI5MjQ5OTA5N2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5o
CkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBhcHBseUF1dGhv
clN0eWxlcygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCByZXNldFN0eWxlSW5oZXJpdGFuY2Uo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZExhc3RSZWZUb1Njb3BlKCkgeyB9CiAK
ICAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24gbWV0aG9kcyAoZS5nLiwgYXBw
ZW5kQ2hpbGQoKSkuCiAgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsKQEAgLTEwNCw2ICsx
MDUsMjcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gJmluc3RhbmNlOwogICAgIH0KIAorICAg
IC8vIE5vZGVzIGJlbG9uZ2luZyB0byB0aGlzIGRvY3VtZW50IGhvbGQgZ3VhcmQgcmVmZXJlbmNl
cyAtCisgICAgLy8gdGhlc2UgYXJlIGVub3VnaCB0byBrZWVwIHRoZSBkb2N1bWVudCBmcm9tIGJl
aW5nIGRlc3Ryb3llZCwgYnV0CisgICAgLy8gbm90IGVub3VnaCB0byBrZWVwIGl0IGZyb20gcmVt
b3ZpbmcgaXRzIGNoaWxkcmVuLiBUaGlzIGFsbG93cyBhCisgICAgLy8gbm9kZSB0aGF0IG91dGxp
dmVzIGl0cyBkb2N1bWVudCB0byBzdGlsbCBoYXZlIGEgdmFsaWQgZG9jdW1lbnQKKyAgICAvLyBw
b2ludGVyIHdpdGhvdXQgaW50cm9kdWNpbmcgcmVmZXJlbmNlIGN5Y2xlcy4KKyAgICB2b2lkIGd1
YXJkUmVmKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAg
ICAgICAgKyttX2d1YXJkUmVmQ291bnQ7CisgICAgfQorCisgICAgdm9pZCBndWFyZERlcmVmKCkK
KyAgICB7CisgICAgICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICAgICAgLS1t
X2d1YXJkUmVmQ291bnQ7CisgICAgICAgIGlmICghbV9ndWFyZFJlZkNvdW50ICYmICFyZWZDb3Vu
dCgpICYmIHRoaXMgIT0gbm9Eb2N1bWVudEluc3RhbmNlKCkpIHsKKyAgICAgICAgICAgIGJlZ2lu
RGVsZXRpb24oKTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzOworICAgICAgICB9CisgICAgfQor
CiBwcm90ZWN0ZWQ6CiAgICAgVHJlZVNjb3BlKENvbnRhaW5lck5vZGUqLCBEb2N1bWVudCopOwog
ICAgIFRyZWVTY29wZShEb2N1bWVudCopOwpAQCAtMTE4LDEyICsxNDAsMjQgQEAgcHJvdGVjdGVk
OgogICAgICAgICBtX2RvY3VtZW50U2NvcGUgPSBkb2N1bWVudDsKICAgICB9CiAKKyAgICBpbnQg
Z3VhcmRSZWZDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZ3VhcmRSZWZDb3VudDsgfQorCiBwcml2
YXRlOgogICAgIFRyZWVTY29wZSgpOwogCisgICAgaW50IHJlZkNvdW50KCkgY29uc3Q7CisjaWZu
ZGVmIE5ERUJVRworICAgIGJvb2wgZGVsZXRpb25IYXNCZWd1bigpOworICAgIHZvaWQgYmVnaW5E
ZWxldGlvbigpOworI2Vsc2UKKyAgICBib29sIGRlbGV0aW9uSGFzQmVndW4oKSB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZvaWQgYmVnaW5EZWxldGlvbigpIHsgfQorI2VuZGlmCisKICAgICBDb250
YWluZXJOb2RlKiBtX3Jvb3ROb2RlOwogICAgIERvY3VtZW50KiBtX2RvY3VtZW50U2NvcGU7CiAg
ICAgVHJlZVNjb3BlKiBtX3BhcmVudFRyZWVTY29wZTsKKyAgICBpbnQgbV9ndWFyZFJlZkNvdW50
OwogCiAgICAgT3duUHRyPERvY3VtZW50T3JkZXJlZE1hcD4gbV9lbGVtZW50c0J5SWQ7CiAgICAg
T3duUHRyPERvY3VtZW50T3JkZXJlZE1hcD4gbV9pbWFnZU1hcHNCeU5hbWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAKaW5kZXggNDFiZmQyNTZjYzRiNWU1ZjMxNzE5NTE4
YmUxYjMwODk1ZTg1OGQxMC4uYTg3Mzk2M2NjZmE0N2YzNGFlZjUwY2U0MmNmYTdjZmIxZWU2OWQ1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcApAQCAtNDAsNiArNDAs
OCBAQCB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVlVG9OZXdTY29wZShOb2RlKiByb290
KSBjb25zdAogewogICAgIEFTU0VSVChuZWVkc1Njb3BlQ2hhbmdlKCkpOwogCisgICAgUmVmUHRy
PENvbnRhaW5lck5vZGU+IHByb3RlY3RPbGRTY29wZShtX29sZFNjb3BlLT5yb290Tm9kZSgpKTsK
KwogICAgIC8vIElmIGFuIGVsZW1lbnQgaXMgbW92ZWQgZnJvbSBhIGRvY3VtZW50IGFuZCB0aGVu
IGV2ZW50dWFsbHkgYmFjayBhZ2FpbiB0aGUgY29sbGVjdGlvbiBjYWNoZSBmb3IKICAgICAvLyB0
aGF0IGVsZW1lbnQgbWF5IGNvbnRhaW4gc3RhbGUgZGF0YSBhcyBjaGFuZ2VzIG1hZGUgdG8gaXQg
d2lsbCBoYXZlIHVwZGF0ZWQgdGhlIERPTVRyZWVWZXJzaW9uCiAgICAgLy8gb2YgdGhlIGRvY3Vt
ZW50IGl0IHdhcyBtb3ZlZCB0by4gQnkgaW5jcmVhc2luZyB0aGUgRE9NVHJlZVZlcnNpb24gb2Yg
dGhlIGRvbmF0aW5nIGRvY3VtZW50IGhlcmUKQEAgLTEwOSw3ICsxMTEsNiBAQCBpbmxpbmUgdm9p
ZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlTm9kZVRvTmV3RG9jdW1lbnQoTm9kZSogbm9kZSwgRG9j
dW1lbnQqIG9sZERvYwogICAgICAgICAgICAgcmFyZURhdGEtPm5vZGVMaXN0cygpLT5hZG9wdERv
Y3VtZW50KG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7CiAgICAgfQogCi0gICAgbmV3RG9jdW1l
bnQtPmd1YXJkUmVmKCk7CiAgICAgaWYgKG9sZERvY3VtZW50KQogICAgICAgICBvbGREb2N1bWVu
dC0+bW92ZU5vZGVJdGVyYXRvcnNUb05ld0RvY3VtZW50KG5vZGUsIG5ld0RvY3VtZW50KTsKIApA
QCAtMTIzLDkgKzEyNCw2IEBAIGlubGluZSB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVOb2Rl
VG9OZXdEb2N1bWVudChOb2RlKiBub2RlLCBEb2N1bWVudCogb2xkRG9jCiAKICAgICBub2RlLT5k
aWRNb3ZlVG9OZXdEb2N1bWVudChvbGREb2N1bWVudCk7CiAgICAgQVNTRVJUKGRpZE1vdmVUb05l
d0RvY3VtZW50V2FzQ2FsbGVkKTsKLSAgICAKLSAgICBpZiAob2xkRG9jdW1lbnQpCi0gICAgICAg
IG9sZERvY3VtZW50LT5ndWFyZERlcmVmKCk7CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188281</attachid>
            <date>2013-02-14 01:12:57 -0800</date>
            <delta_ts>2013-02-14 21:42:49 -0800</delta_ts>
            <desc>For re-executing the test</desc>
            <filename>bug-109777-20130214180925.patch</filename>
            <type>text/plain</type>
            <size>15219</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyODU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc2OGZmYzU0NTQyYTMz
ODY2OWZmOTJiN2YxOTI5YTczMDQwNzJkOC4uODlmNTU4ODhjN2FlN2MxNTM4MTg1MTUyM2M5MzVi
YTQyMjUzY2NhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAyLTE0ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGd1YXJkUmVmKCkgYW5kIGd1YXJkRGVyZWYoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgbW92ZXMgbV9ndWFyZFJlZkNvdW50
IGZyb20gRG9jdW1lbnQgdG8gVHJlZVNjb3BlLAorICAgICAgICB3aGljaCBhbGxvd3MgU2hhZG93
Um9vdCB0byBiZSBndWFyZGVkIGJ5IGd1YXJkUmVmKCkgbWVjaGFuaXNtIGxpa2UKKyAgICAgICAg
YXMgRG9jdW1lbnQuIEFmdGVyIHIxMzc1MjQsIE5vZGUgcmVmZXJlcyBUcmVlU2NvcGUgaW5zdGVh
ZCBvZgorICAgICAgICBEb2N1bWVudC4gVGhpcyBpcyBuYXR1cmFsIGNvbnNlcXVlbmNlIG9mIHRo
ZSBjaGFuZ2U6IEl0IG5vIGxvbmdlcgorICAgICAgICBtYWtlcyBzZW5zZSB0byBndWFyZCBEb2N1
bWVudCBwb2ludGVyIGluIE5vZGUgbm93LgorCisgICAgICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUg
dHdvICJndWFyZGVkIiBUcmVlU2NvcGUgcmVmZXJlbmNlcy4gT25lIGlzCisgICAgICAgIE5vZGU6
Om1fdHJlZVNjb3BlIGFuZCBhbm90aGVyIGlzIFRyZWVTY29wZTo6bV9wYXJlbnRUcmVlU2NvcGUu
CisgICAgICAgIFRoZSBndWFyZGVkLXJlZiBtYW5hZ2VtZW50IGlzIG5vdyBlbmNhcHN1bGF0ZWQg
aW4gdGhlc2UgdHdvIGNsYXNzZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5
IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
ZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Tm9kZTo6aXNUcmVlU2NvcGUpOiBJbmxpbmVkLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
cmVtb3ZlZExhc3RSZWZUb1Njb3BlKToKKyAgICAgICAgUmVuYW1lZCBmcm9tIHJlbW92ZWRMYXN0
UmVmIHRvIHJlbW92ZWRMYXN0UmVmVG9TY29wZSwgd2hpY2ggaXMgYSB2aXJ0dWFsIGZ1bmNkdGlv
biBvZiBUcmVlU2NvcGUuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpOb2RlKToKKyAgICAgICAgKiBkb20vTm9k
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZW1vdmVkTGFzdFJlZik6IE5vdyBjYWxs
cyBUcmVlU2NvcGU6OnJlbW92ZWRMYXN0UmVmVG9TY29wZSgpCisgICAgICAgICogZG9tL05vZGUu
aDoKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0VHJlZVNjb3Bl
KTogQWRkZWQgZ3VhcmRSZWYoKS9ndWFyZERlcmVmKCkgY2FsbHMKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoU2FtZVNpemVBc1RyZWVT
Y29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OlRyZWVTY29wZSk6CisgICAgICAg
IChXZWJDb3JlOjpUcmVlU2NvcGU6On5UcmVlU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJl
ZVNjb3BlOjpzZXRQYXJlbnRUcmVlU2NvcGUpOiBBZGRlZCBndWFyZFJlZigpL2d1YXJkRGVyZWYo
KSBjYWxscworICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6
OmRlbGV0aW9uSGFzQmVndW4pOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpiZWdpbkRl
bGV0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6cmVmQ291bnQpOiBBZGRlZC4K
KyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmg6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6
OnJlbW92ZWRMYXN0UmVmVG9TY29wZSk6IEFkZGVkLgorICAgICAgICAoVHJlZVNjb3BlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6Z3VhcmRSZWYpOiBNb3ZlZCBmcm9tIERvY3VtZW50
LgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpndWFyZERlcmVmKTogTW92ZWQgZnJvbSBE
b2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6Z3VhcmRSZWZDb3VudCk6IE1v
dmVkIGZyb20gRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmRlbGV0aW9u
SGFzQmVndW4pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6YmVnaW5EZWxl
dGlvbik6IEFkZGVkLgorICAgICAgICAqIGRvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVlVG9OZXdTY29wZSk6CisgICAg
ICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlTm9kZVRvTmV3RG9jdW1lbnQpOgor
CiAyMDEzLTAyLTEzICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBOYXRpdmUgTWVtb3J5IEluc3RydW1lbnRhdGlvbjogUmVw
b3J0IGNoaWxkIG5vZGVzIGFzIGRpcmVjdCBtZW1iZXJzIG9mIGEgY29udGFpbmVyIG5vZGUgdG8g
bWFrZSB0aGVtIGxvb2sgbGlrZSBhIHRyZWUgaW4gdGhlIHNuYXBzaG90LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCA2NzA5ZGUxOGU2NWJkMGZiZTliMjQ3MDk5Y2ExOGU3NTY0NDk3MzMxLi5jODg4
ZDAxNDE4MWFiMzhhY2EzNTUzZGQ1YmFiZWUyYjQ4MDc4MGE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtMTQwNyw3ICsxNDA3LDYgQEAgX19aTks3V2ViQ29yZTROb2RlMTF0ZXh0Q29udGVudEVi
CiBfX1pON1dlYkNvcmU0Tm9kZTEyaW5zZXJ0QmVmb3JlRU4zV1RGMTBQYXNzUmVmUHRySVMwX0VF
UFMwX1JpYgogX19aTks3V2ViQ29yZTROb2RlMTNvd25lckRvY3VtZW50RXYKIF9fWk5LN1dlYkNv
cmU0Tm9kZTE0aXNEZXNjZW5kYW50T2ZFUEtTMF8KLV9fWk5LN1dlYkNvcmU0Tm9kZTExaXNUcmVl
U2NvcGVFdgogX19aTks3V2ViQ29yZTROb2RlMThnZXRTdWJyZXNvdXJjZVVSTHNFUk4zV1RGMTFM
aXN0SGFzaFNldElOU180S1VSTEVMbTI1NkVOU184S1VSTEhhc2hFRUUKIF9fWk5LN1dlYkNvcmU0
Tm9kZTMxbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbkV2CiBfX1pOSzdXZWJDb3JlNE5v
ZGU5bm9kZUluZGV4RXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCmluZGV4IGZlMmVjODVm
ODRiN2M5MjQ2YThhOTJmOWU2MzkzYjY4MTU0ZTI1ZTguLmRkZjgxOGRkNTJmODY2NGU2ZDI5ODBj
ZDZmN2MwODJmY2E3MWNmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWlu
ZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaApAQCAtMzYw
LDYgKzM2MCwxMyBAQCBwcml2YXRlOgogICAgIENvbnRhaW5lck5vZGUqIG1fbm9kZTsKIH07CiAK
KworLy8gVGhpcyBpcyBwbGFjZWQgaGVyZSBmb3IgaW5saW5pbmc6IHJvb3ROb2RlKCkgbmVlZHMg
Q29udGFpbmVyTm9kZSBkZWZpbnRpaW9uLgoraW5saW5lIGJvb2wgTm9kZTo6aXNUcmVlU2NvcGUo
KSBjb25zdAoreworICAgIHJldHVybiB0cmVlU2NvcGUoKS0+cm9vdE5vZGUoKSA9PSB0aGlzOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBDb250YWluZXJOb2RlX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGE1YWI5OTRiMDkyMjdlNzRiZWM2NGM1YzA1Nzc5
ZDI4NjI1NTgxYzguLjY3MjFhZjUyMTBiOGY1NjM0ZDA3OWJjNjdiOTViNjA3YjNlNzg2NmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDA5LDcgKzQwOSw2IEBAIHVpbnQ2NF90IERvY3Vt
ZW50OjpzX2dsb2JhbFRyZWVWZXJzaW9uID0gMDsKIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSog
ZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICA6
IENvbnRhaW5lck5vZGUoMCwgQ3JlYXRlRG9jdW1lbnQpCiAgICAgLCBUcmVlU2NvcGUodGhpcykK
LSAgICAsIG1fZ3VhcmRSZWZDb3VudCgwKQogICAgICwgbV9zdHlsZVJlc29sdmVyVGhyb3dhd2F5
VGltZXIodGhpcywgJkRvY3VtZW50OjpzdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJGaXJlZCkK
ICAgICAsIG1fbGFzdFN0eWxlUmVzb2x2ZXJBY2Nlc3NUaW1lKDApCiAgICAgLCBtX2FjdGl2ZVBh
cnNlckNvdW50KDApCkBAIC01ODIsNyArNTgxLDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAg
ICAgQVNTRVJUKG1fcmFuZ2VzLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKCFtX3N0eWxlUmVjYWxj
VGltZXIuaXNBY3RpdmUoKSk7CiAgICAgQVNTRVJUKCFtX3BhcmVudFRyZWVTY29wZSk7Ci0gICAg
QVNTRVJUKCFtX2d1YXJkUmVmQ291bnQpOworICAgIEFTU0VSVCghZ3VhcmRSZWZDb3VudCgpKTsK
IAogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQogICAgIGlmIChtX3RlbXBsYXRlRG9jdW1l
bnQpCkBAIC02NDksMTAgKzY0OCwxMCBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKICAgICBJbnNw
ZWN0b3JDb3VudGVyczo6ZGVjcmVtZW50Q291bnRlcihJbnNwZWN0b3JDb3VudGVyczo6RG9jdW1l
bnRDb3VudGVyKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYoKQordm9pZCBE
b2N1bWVudDo6cmVtb3ZlZExhc3RSZWZUb1Njb3BlKCkKIHsKICAgICBBU1NFUlQoIW1fZGVsZXRp
b25IYXNCZWd1bik7Ci0gICAgaWYgKG1fZ3VhcmRSZWZDb3VudCkgeworICAgIGlmIChndWFyZFJl
ZkNvdW50KCkpIHsKICAgICAgICAgLy8gSWYgcmVtb3ZpbmcgYSBjaGlsZCByZW1vdmVzIHRoZSBs
YXN0IHNlbGYtb25seSByZWYsIHdlIGRvbid0CiAgICAgICAgIC8vIHdhbnQgdGhlIHNjb3BlIHRv
IGJlIGRlc3RydWN0ZWQgdW50aWwgYWZ0ZXIKICAgICAgICAgLy8gcmVtb3ZlRGV0YWNoZWRDaGls
ZHJlbiByZXR1cm5zLCBzbyB3ZSBndWFyZCBvdXJzZWx2ZXMgd2l0aCBhbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAppbmRleCA3MmM4Mzk5M2JlMDdmZjhjMjc2MjAyOTlhYTIxNjQ5NmNmN2Y1OWU3Li4xNjNi
MTU0ZDliNDgwZjczM2Y4OGE4MjM4ZjQ4ZmIzMDA5MGY0ZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aApAQCAtMjI4LDI5ICsyMjgsNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcgQ29udGFpbmVyTm9kZTo6
cmVmOwogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OmRlcmVmOwogCi0gICAgLy8gTm9kZXMgYmVs
b25naW5nIHRvIHRoaXMgZG9jdW1lbnQgaG9sZCBndWFyZCByZWZlcmVuY2VzIC0KLSAgICAvLyB0
aGVzZSBhcmUgZW5vdWdoIHRvIGtlZXAgdGhlIGRvY3VtZW50IGZyb20gYmVpbmcgZGVzdHJveWVk
LCBidXQKLSAgICAvLyBub3QgZW5vdWdoIHRvIGtlZXAgaXQgZnJvbSByZW1vdmluZyBpdHMgY2hp
bGRyZW4uIFRoaXMgYWxsb3dzIGEKLSAgICAvLyBub2RlIHRoYXQgb3V0bGl2ZXMgaXRzIGRvY3Vt
ZW50IHRvIHN0aWxsIGhhdmUgYSB2YWxpZCBkb2N1bWVudAotICAgIC8vIHBvaW50ZXIgd2l0aG91
dCBpbnRyb2R1Y2luZyByZWZlcmVuY2UgY3ljbGVzLgotICAgIHZvaWQgZ3VhcmRSZWYoKQotICAg
IHsKLSAgICAgICAgQVNTRVJUKCFtX2RlbGV0aW9uSGFzQmVndW4pOwotICAgICAgICArK21fZ3Vh
cmRSZWZDb3VudDsKLSAgICB9Ci0KLSAgICB2b2lkIGd1YXJkRGVyZWYoKQotICAgIHsKLSAgICAg
ICAgQVNTRVJUKCFtX2RlbGV0aW9uSGFzQmVndW4pOwotICAgICAgICAtLW1fZ3VhcmRSZWZDb3Vu
dDsKLSAgICAgICAgaWYgKCFtX2d1YXJkUmVmQ291bnQgJiYgIXJlZkNvdW50KCkpIHsKLSNpZm5k
ZWYgTkRFQlVHCi0gICAgICAgICAgICBtX2RlbGV0aW9uSGFzQmVndW4gPSB0cnVlOwotI2VuZGlm
Ci0gICAgICAgICAgICBkZWxldGUgdGhpczsKLSAgICAgICAgfQotICAgIH0KLQogICAgIEVsZW1l
bnQqIGdldEVsZW1lbnRCeUlkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpIGNvbnN0OwogCiAgICAg
dmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQpAQCAtMTIxNyw3ICsxMTk0LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTm9k
ZTsKICAgICBmcmllbmQgY2xhc3MgSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50
ZXI7CiAKLSAgICB2b2lkIHJlbW92ZWRMYXN0UmVmKCk7CisgICAgdmlydHVhbCB2b2lkIHJlbW92
ZWRMYXN0UmVmVG9TY29wZSgpIE9WRVJSSURFOwogICAgIAogICAgIHZvaWQgZGV0YWNoUGFyc2Vy
KCk7CiAKQEAgLTEyODYsOCArMTI2Myw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRMaXN0ZW5l
clR5cGUoTGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlwZSkgeyBtX2xpc3RlbmVyVHlwZXMgfD0gbGlz
dGVuZXJUeXBlOyB9CiAgICAgdm9pZCBhZGRNdXRhdGlvbkV2ZW50TGlzdGVuZXJUeXBlSWZFbmFi
bGVkKExpc3RlbmVyVHlwZSk7CiAKLSAgICBpbnQgbV9ndWFyZFJlZkNvdW50OwotCiAgICAgdm9p
ZCBzdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKTsKICAg
ICBUaW1lcjxEb2N1bWVudD4gbV9zdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXI7CiAgICAgZG91
YmxlIG1fbGFzdFN0eWxlUmVzb2x2ZXJBY2Nlc3NUaW1lOwpAQCAtMTYwMywxMCArMTU3OCw5IEBA
IGlubGluZSBOb2RlOjpOb2RlKERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0
eXBlKQogICAgICwgbV9wcmV2aW91cygwKQogICAgICwgbV9uZXh0KDApCiB7Ci0gICAgaWYgKGRv
Y3VtZW50KQotICAgICAgICBkb2N1bWVudC0+Z3VhcmRSZWYoKTsKLSAgICBlbHNlCisgICAgaWYg
KCFkb2N1bWVudCkKICAgICAgICAgbV90cmVlU2NvcGUgPSBUcmVlU2NvcGU6Om5vRG9jdW1lbnRJ
bnN0YW5jZSgpOworICAgIG1fdHJlZVNjb3BlLT5ndWFyZFJlZigpOwogCiAjaWYgIWRlZmluZWQo
TkRFQlVHKSB8fCAoZGVmaW5lZChEVU1QX05PREVfU1RBVElTVElDUykgJiYgRFVNUF9OT0RFX1NU
QVRJU1RJQ1MpCiAgICAgdHJhY2tGb3JEZWJ1Z2dpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAz
ZmQ2NDNiYzhhMGI5OTBmY2Q5M2VlMTFjNGQ0MjJjNTQ5OTdkNzFjLi42Y2MxZjM5MWY2MjM0OGNk
NzRjOWQyNjg2ZmJjZjVmMTkzNTBiOTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC04OTIsMTEgKzg5
Miw2IEBAIGJvb2wgTm9kZTo6aXNGb2N1c2FibGUoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIE5vZGU6OmlzVHJlZVNjb3BlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJlZVNj
b3BlKCktPnJvb3ROb2RlKCkgPT0gdGhpczsKLX0KLQogYm9vbCBOb2RlOjppc0tleWJvYXJkRm9j
dXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdAogewogICAgIHJldHVybiBpc0ZvY3VzYWJsZSgp
ICYmIHRhYkluZGV4KCkgPj0gMDsKQEAgLTI1NjEsOCArMjU1Niw4IEBAIHZvaWQgTm9kZTo6cmVt
b3ZlZExhc3RSZWYoKQogICAgIC8vIEFuIGV4cGxpY2l0IGNoZWNrIGZvciBEb2N1bWVudCBoZXJl
IGlzIGJldHRlciB0aGFuIGEgdmlydHVhbCBmdW5jdGlvbiBzaW5jZSBpdCBpcwogICAgIC8vIGZh
c3RlciBmb3Igbm9uLURvY3VtZW50IG5vZGVzLCBhbmQgYmVjYXVzZSB0aGUgY2FsbCB0byByZW1v
dmVkTGFzdFJlZiB0aGF0IGlzIGlubGluZWQKICAgICAvLyBhdCBhbGwgZGVyZWYgY2FsbCBzaXRl
cyBpcyBzbWFsbGVyIGlmIGl0J3MgYSBub24tdmlydHVhbCBmdW5jdGlvbi4KLSAgICBpZiAoaXNE
b2N1bWVudE5vZGUoKSkgewotICAgICAgICBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KHRoaXMpLT5y
ZW1vdmVkTGFzdFJlZigpOworICAgIGlmIChpc1RyZWVTY29wZSgpKSB7CisgICAgICAgIHRyZWVT
Y29wZSgpLT5yZW1vdmVkTGFzdFJlZlRvU2NvcGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA5OTY2NDIyOWMyYjYzZDE1OWEzZWMwMGU1
ZjJjNDgzMTM0YTUxYWQ4Li42ZWQ3NTAyZWNmYmUyMmYzMTNjMzQ2ZGUyYzM2NjBmYmQxY2Y4NWEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmgKQEAgLTc3Niw3ICs3NzYsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBz
ZXRIYXNDdXN0b21DYWxsYmFja3MoKSB7IHNldEZsYWcodHJ1ZSwgSGFzQ3VzdG9tQ2FsbGJhY2tz
RmxhZyk7IH0KIAogICAgIERvY3VtZW50KiBkb2N1bWVudEludGVybmFsKCkgY29uc3QgeyByZXR1
cm4gdHJlZVNjb3BlKCktPmRvY3VtZW50U2NvcGUoKTsgfQotICAgIHZvaWQgc2V0VHJlZVNjb3Bl
KFRyZWVTY29wZSogc2NvcGUpIHsgbV90cmVlU2NvcGUgPSBzY29wZTsgfQorICAgIHZvaWQgc2V0
VHJlZVNjb3BlKFRyZWVTY29wZSopOworICAgIGJvb2wgaXNUcmVlU2NvcGVJbnRlcm5hbCgpIGNv
bnN0OwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBUcmVlU2hhcmVkPE5vZGU+OwpAQCAt
ODk1LDYgKzg5NiwxMyBAQCBpbmxpbmUgdm9pZCBOb2RlOjpsYXp5UmVhdHRhY2goU2hvdWxkU2V0
QXR0YWNoZWQgc2hvdWxkU2V0QXR0YWNoZWQpCiAgICAgbGF6eUF0dGFjaChzaG91bGRTZXRBdHRh
Y2hlZCk7CiB9CiAKK2lubGluZSB2b2lkIE5vZGU6OnNldFRyZWVTY29wZShUcmVlU2NvcGUqIHNj
b3BlKQoreworICAgIHNjb3BlLT5ndWFyZFJlZigpOworICAgIG1fdHJlZVNjb3BlLT5ndWFyZERl
cmVmKCk7CisgICAgbV90cmVlU2NvcGUgPSBzY29wZTsKK30KKwogfSAvL25hbWVzcGFjZQogCiAj
aWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCAwM2I0MmZjZTg1ODY4
NjJjYzQ4OTliYjUxMjNlZjk0NTVlOWM1ZTBlLi45MGFiNWM3ZmQzM2E2MTkxNTYwYzliNmQyYTRi
NjgwOGIzYzEyN2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtNTksNiArNTksNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgU2FtZVNpemVBc1RyZWVTY29wZSB7CiAgICAg
dmlydHVhbCB+U2FtZVNpemVBc1RyZWVTY29wZSgpOwogICAgIHZvaWQqIHBvaW50ZXJzWzhdOwor
ICAgIGludCBpbnRzWzFdOwogfTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFRyZWVTY29wZSkg
PT0gc2l6ZW9mKFNhbWVTaXplQXNUcmVlU2NvcGUpLCB0cmVlc2NvcGVfc2hvdWxkX3N0YXlfc21h
bGwpOwpAQCAtNjksMTEgKzcwLDEzIEBAIFRyZWVTY29wZTo6VHJlZVNjb3BlKENvbnRhaW5lck5v
ZGUqIHJvb3ROb2RlLCBEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBtX3Jvb3ROb2RlKHJvb3RO
b2RlKQogICAgICwgbV9kb2N1bWVudFNjb3BlKGRvY3VtZW50KQogICAgICwgbV9wYXJlbnRUcmVl
U2NvcGUoZG9jdW1lbnQpCisgICAgLCBtX2d1YXJkUmVmQ291bnQoMCkKICAgICAsIG1faWRUYXJn
ZXRPYnNlcnZlclJlZ2lzdHJ5KElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeTo6Y3JlYXRlKCkpCiB7
CiAgICAgQVNTRVJUKHJvb3ROb2RlKTsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwogICAgIEFTU0VS
VChyb290Tm9kZSAhPSBkb2N1bWVudCk7CisgICAgbV9wYXJlbnRUcmVlU2NvcGUtPmd1YXJkUmVm
KCk7CiB9CiAKIFRyZWVTY29wZTo6VHJlZVNjb3BlKERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTk0
LDEwICs5NywxNSBAQCBUcmVlU2NvcGU6OlRyZWVTY29wZSgpCiAKIFRyZWVTY29wZTo6flRyZWVT
Y29wZSgpCiB7CisgICAgQVNTRVJUKCFtX2d1YXJkUmVmQ291bnQpOworCiAgICAgaWYgKG1fc2Vs
ZWN0aW9uKSB7CiAgICAgICAgIG1fc2VsZWN0aW9uLT5jbGVhclRyZWVTY29wZSgpOwogICAgICAg
ICBtX3NlbGVjdGlvbiA9IDA7CiAgICAgfQorCisgICAgaWYgKG1fcGFyZW50VHJlZVNjb3BlKQor
ICAgICAgICBtX3BhcmVudFRyZWVTY29wZS0+Z3VhcmREZXJlZigpOwogfQogCiB2b2lkIFRyZWVT
Y29wZTo6ZGVzdHJveVRyZWVTY29wZURhdGEoKQpAQCAtMTIwLDcgKzEyOCwxMSBAQCB2b2lkIFRy
ZWVTY29wZTo6c2V0UGFyZW50VHJlZVNjb3BlKFRyZWVTY29wZSogbmV3UGFyZW50U2NvcGUpCiAg
ICAgLy8gRXZlcnkgc2NvcGUgb3RoZXIgdGhhbiBkb2N1bWVudCBuZWVkcyBhIHBhcmVudCBzY29w
ZS4KICAgICBBU1NFUlQobmV3UGFyZW50U2NvcGUpOwogCisgICAgVHJlZVNjb3BlKiBvbGRQYXJl
bnRTY29wZSA9IG1fcGFyZW50VHJlZVNjb3BlOwogICAgIG1fcGFyZW50VHJlZVNjb3BlID0gbmV3
UGFyZW50U2NvcGU7CisgICAgbmV3UGFyZW50U2NvcGUtPmd1YXJkUmVmKCk7CisgICAgaWYgKG9s
ZFBhcmVudFNjb3BlKQorICAgICAgICBvbGRQYXJlbnRTY29wZS0+Z3VhcmREZXJlZigpOwogICAg
IHNldERvY3VtZW50U2NvcGUobmV3UGFyZW50U2NvcGUtPmRvY3VtZW50U2NvcGUoKSk7CiB9CiAK
QEAgLTQxNSw0ICs0MjcsMjIgQEAgVHJlZVNjb3BlKiBjb21tb25UcmVlU2NvcGUoTm9kZSogbm9k
ZUEsIE5vZGUqIG5vZGVCKQogICAgIHJldHVybiB0cmVlU2NvcGVzQVtpbmRleEFdID09IHRyZWVT
Y29wZXNCW2luZGV4Ql0gPyB0cmVlU2NvcGVzQVtpbmRleEFdIDogMDsKIH0KIAorI2lmbmRlZiBO
REVCVUcKK2Jvb2wgVHJlZVNjb3BlOjpkZWxldGlvbkhhc0JlZ3VuKCkKK3sKKyAgICByZXR1cm4g
cm9vdE5vZGUoKSAmJiByb290Tm9kZSgpLT5tX2RlbGV0aW9uSGFzQmVndW47Cit9CisKK3ZvaWQg
VHJlZVNjb3BlOjpiZWdpbkRlbGV0aW9uKCkKK3sKKyAgICBBU1NFUlQodGhpcyAhPSBub0RvY3Vt
ZW50SW5zdGFuY2UoKSk7CisgICAgcm9vdE5vZGUoKS0+bV9kZWxldGlvbkhhc0JlZ3VuID0gdHJ1
ZTsKK30KKyNlbmRpZgorCitpbnQgVHJlZVNjb3BlOjpyZWZDb3VudCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHJvb3ROb2RlKCktPnJlZkNvdW50KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAppbmRleCBiZTUwMGYxMDY0YzhiNzgxNDljZGNkZWQ5Mjgx
OTFiM2Y1NmIzZWYxLi5hZDAwYjgyOTJkMDczZWE0NTA4Mzc1MTRhODU1NjI5MjQ5OTA5N2E1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZS5oCkBAIC04OCw2ICs4OCw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgYm9vbCBhcHBseUF1dGhvclN0eWxlcygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBy
ZXNldFN0eWxlSW5oZXJpdGFuY2UoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlZExh
c3RSZWZUb1Njb3BlKCkgeyB9CiAKICAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRp
b24gbWV0aG9kcyAoZS5nLiwgYXBwZW5kQ2hpbGQoKSkuCiAgICAgdm9pZCBhZG9wdElmTmVlZGVk
KE5vZGUqKTsKQEAgLTEwNCw2ICsxMDUsMjcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gJmlu
c3RhbmNlOwogICAgIH0KIAorICAgIC8vIE5vZGVzIGJlbG9uZ2luZyB0byB0aGlzIGRvY3VtZW50
IGhvbGQgZ3VhcmQgcmVmZXJlbmNlcyAtCisgICAgLy8gdGhlc2UgYXJlIGVub3VnaCB0byBrZWVw
IHRoZSBkb2N1bWVudCBmcm9tIGJlaW5nIGRlc3Ryb3llZCwgYnV0CisgICAgLy8gbm90IGVub3Vn
aCB0byBrZWVwIGl0IGZyb20gcmVtb3ZpbmcgaXRzIGNoaWxkcmVuLiBUaGlzIGFsbG93cyBhCisg
ICAgLy8gbm9kZSB0aGF0IG91dGxpdmVzIGl0cyBkb2N1bWVudCB0byBzdGlsbCBoYXZlIGEgdmFs
aWQgZG9jdW1lbnQKKyAgICAvLyBwb2ludGVyIHdpdGhvdXQgaW50cm9kdWNpbmcgcmVmZXJlbmNl
IGN5Y2xlcy4KKyAgICB2b2lkIGd1YXJkUmVmKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghZGVs
ZXRpb25IYXNCZWd1bigpKTsKKyAgICAgICAgKyttX2d1YXJkUmVmQ291bnQ7CisgICAgfQorCisg
ICAgdm9pZCBndWFyZERlcmVmKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghZGVsZXRpb25IYXNC
ZWd1bigpKTsKKyAgICAgICAgLS1tX2d1YXJkUmVmQ291bnQ7CisgICAgICAgIGlmICghbV9ndWFy
ZFJlZkNvdW50ICYmICFyZWZDb3VudCgpICYmIHRoaXMgIT0gbm9Eb2N1bWVudEluc3RhbmNlKCkp
IHsKKyAgICAgICAgICAgIGJlZ2luRGVsZXRpb24oKTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlz
OworICAgICAgICB9CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgVHJlZVNjb3BlKENvbnRhaW5l
ck5vZGUqLCBEb2N1bWVudCopOwogICAgIFRyZWVTY29wZShEb2N1bWVudCopOwpAQCAtMTE4LDEy
ICsxNDAsMjQgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2RvY3VtZW50U2NvcGUgPSBkb2N1bWVu
dDsKICAgICB9CiAKKyAgICBpbnQgZ3VhcmRSZWZDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZ3Vh
cmRSZWZDb3VudDsgfQorCiBwcml2YXRlOgogICAgIFRyZWVTY29wZSgpOwogCisgICAgaW50IHJl
ZkNvdW50KCkgY29uc3Q7CisjaWZuZGVmIE5ERUJVRworICAgIGJvb2wgZGVsZXRpb25IYXNCZWd1
bigpOworICAgIHZvaWQgYmVnaW5EZWxldGlvbigpOworI2Vsc2UKKyAgICBib29sIGRlbGV0aW9u
SGFzQmVndW4oKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgYmVnaW5EZWxldGlvbigpIHsg
fQorI2VuZGlmCisKICAgICBDb250YWluZXJOb2RlKiBtX3Jvb3ROb2RlOwogICAgIERvY3VtZW50
KiBtX2RvY3VtZW50U2NvcGU7CiAgICAgVHJlZVNjb3BlKiBtX3BhcmVudFRyZWVTY29wZTsKKyAg
ICBpbnQgbV9ndWFyZFJlZkNvdW50OwogCiAgICAgT3duUHRyPERvY3VtZW50T3JkZXJlZE1hcD4g
bV9lbGVtZW50c0J5SWQ7CiAgICAgT3duUHRyPERvY3VtZW50T3JkZXJlZE1hcD4gbV9pbWFnZU1h
cHNCeU5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAKaW5kZXggNDFi
ZmQyNTZjYzRiNWU1ZjMxNzE5NTE4YmUxYjMwODk1ZTg1OGQxMC4uYTg3Mzk2M2NjZmE0N2YzNGFl
ZjUwY2U0MmNmYTdjZmIxZWU2OWQ1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVTY29wZUFkb3B0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9w
dGVyLmNwcApAQCAtNDAsNiArNDAsOCBAQCB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVl
VG9OZXdTY29wZShOb2RlKiByb290KSBjb25zdAogewogICAgIEFTU0VSVChuZWVkc1Njb3BlQ2hh
bmdlKCkpOwogCisgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IHByb3RlY3RPbGRTY29wZShtX29s
ZFNjb3BlLT5yb290Tm9kZSgpKTsKKwogICAgIC8vIElmIGFuIGVsZW1lbnQgaXMgbW92ZWQgZnJv
bSBhIGRvY3VtZW50IGFuZCB0aGVuIGV2ZW50dWFsbHkgYmFjayBhZ2FpbiB0aGUgY29sbGVjdGlv
biBjYWNoZSBmb3IKICAgICAvLyB0aGF0IGVsZW1lbnQgbWF5IGNvbnRhaW4gc3RhbGUgZGF0YSBh
cyBjaGFuZ2VzIG1hZGUgdG8gaXQgd2lsbCBoYXZlIHVwZGF0ZWQgdGhlIERPTVRyZWVWZXJzaW9u
CiAgICAgLy8gb2YgdGhlIGRvY3VtZW50IGl0IHdhcyBtb3ZlZCB0by4gQnkgaW5jcmVhc2luZyB0
aGUgRE9NVHJlZVZlcnNpb24gb2YgdGhlIGRvbmF0aW5nIGRvY3VtZW50IGhlcmUKQEAgLTEwOSw3
ICsxMTEsNiBAQCBpbmxpbmUgdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlTm9kZVRvTmV3RG9j
dW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQqIG9sZERvYwogICAgICAgICAgICAgcmFyZURhdGEt
Pm5vZGVMaXN0cygpLT5hZG9wdERvY3VtZW50KG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7CiAg
ICAgfQogCi0gICAgbmV3RG9jdW1lbnQtPmd1YXJkUmVmKCk7CiAgICAgaWYgKG9sZERvY3VtZW50
KQogICAgICAgICBvbGREb2N1bWVudC0+bW92ZU5vZGVJdGVyYXRvcnNUb05ld0RvY3VtZW50KG5v
ZGUsIG5ld0RvY3VtZW50KTsKIApAQCAtMTIzLDkgKzEyNCw2IEBAIGlubGluZSB2b2lkIFRyZWVT
Y29wZUFkb3B0ZXI6Om1vdmVOb2RlVG9OZXdEb2N1bWVudChOb2RlKiBub2RlLCBEb2N1bWVudCog
b2xkRG9jCiAKICAgICBub2RlLT5kaWRNb3ZlVG9OZXdEb2N1bWVudChvbGREb2N1bWVudCk7CiAg
ICAgQVNTRVJUKGRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKTsKLSAgICAKLSAgICBpZiAo
b2xkRG9jdW1lbnQpCi0gICAgICAgIG9sZERvY3VtZW50LT5ndWFyZERlcmVmKCk7CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188477</attachid>
            <date>2013-02-14 21:42:53 -0800</date>
            <delta_ts>2013-02-19 01:02:24 -0800</delta_ts>
            <desc>Fixed crashes</desc>
            <filename>bug-109777-20130215143919.patch</filename>
            <type>text/plain</type>
            <size>20245</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNkYzRjYTIxNDA4MjY5
NmJiNzgxNWFmNDFjYzE3OTdhMWUxNDRlNi4uNTg3ZmMxYTg0ZmRhYmZmM2IwMWQzMTVkNjQyOWVi
YjVhMzYzOTI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEzLTAyLTE0ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGd1YXJkUmVmKCkgYW5kIGd1YXJkRGVyZWYoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgbW92ZXMgbV9ndWFyZFJlZkNvdW50
IGZyb20gRG9jdW1lbnQgdG8gVHJlZVNjb3BlLAorICAgICAgICB3aGljaCBhbGxvd3MgU2hhZG93
Um9vdCB0byBiZSBndWFyZGVkIGJ5IGd1YXJkUmVmKCkgbWVjaGFuaXNtIGxpa2UKKyAgICAgICAg
YXMgRG9jdW1lbnQuIEFmdGVyIHIxMzc1MjQsIE5vZGUgcmVmZXJlcyBUcmVlU2NvcGUgaW5zdGVh
ZCBvZgorICAgICAgICBEb2N1bWVudC4gVGhpcyBpcyBuYXR1cmFsIGNvbnNlcXVlbmNlIG9mIHRo
ZSBjaGFuZ2U6IEl0IG5vIGxvbmdlcgorICAgICAgICBtYWtlcyBzZW5zZSB0byBndWFyZCBEb2N1
bWVudCBwb2ludGVyIGluIE5vZGUgbm93LgorCisgICAgICAgIC0gRG9jdW1lbnQ6Om1fZ3VhcmRS
ZWZDb3VudCBhbmQgcmVsYXRlZCBmdW5jZHRpb25zIGFyZSBtb3ZlZCB0byBUcmVlU2NvcGUKKyAg
ICAgICAgLSBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYgaXMgZmFjdG9yZWQgb3V0IGludG8gVHJl
ZVNjb3BlOjpyZW1vdmVkTGFzdFJlZlRvU2NvcGUoKSwKKyAgICAgICAgICBUcmVlU2NvcGU6OmRp
c3Bvc2UoKSBhbmQgRG9jdWVudDo6ZGlzcG9zZSgpLiBTaGFkb3dSb290IGFsc28gZ290IGl0cyBv
d24gZGlzcG9zZSgpIGltcGxlbWVudGF0aW9uLgorICAgICAgICAtIE1vdmVkIGd1YXJkUmVmKCkg
YW5kIGd1YXJkRGVyZWYoKSBjYWxscyB0byBUcmVlU2NvcGUgYW5kIE5vZGUuCisgICAgICAgICAg
Tm90ZSB0aGF0IHRoZXJlIGFyZSB0d28gImd1YXJkZWQiIFRyZWVTY29wZSByZWZlcmVuY2VzLiBP
bmUgaXMKKyAgICAgICAgICBOb2RlOjptX3RyZWVTY29wZSBhbmQgYW5vdGhlciBpcyBUcmVlU2Nv
cGU6Om1fcGFyZW50VHJlZVNjb3BlLgorICAgICAgICAgIFRoZSBndWFyZGVkLXJlZiBtYW5hZ2Vt
ZW50IGlzIG5vdyBlbmNhcHN1bGF0ZWQgaW4gdGhlc2UgdHdvIGNsYXNzZXMuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogV2Vi
Q29yZS5leHAuaW46CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGUuaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNUcmVlU2NvcGUpOgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6RG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6ZGlzcG9zZSk6IEV4dHJhY3RlZCBmcm9tIHJlbW92ZUxhc3RSZWYoKQor
ICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZTo6Tm9kZSk6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Tm9kZTo6cmVtb3ZlZExhc3RSZWYpOgorICAgICAgICAqIGRvbS9Ob2RlLmg6Cisg
ICAgICAgIChOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNldFRyZWVTY29wZSk6IEFk
ZGVkIGd1YXJkUmVmKCkvZ3VhcmREZXJlZigpIGNhbGxzLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dDo6ZGlzcG9zZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1No
YWRvd1Jvb3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9UcmVlU2Nv
cGUuY3BwOgorICAgICAgICAoU2FtZVNpemVBc1RyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGU6OlRyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6On5U
cmVlU2NvcGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2Nv
cGU6OmRpc3Bvc2UpOiBBZGRlZCBhIHZpcnR1YWwgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGU6OnNldFBhcmVudFRyZWVTY29wZSk6IEFkZGVkIGd1YXJkUmVmKCkvZ3VhcmRE
ZXJlZigpIGNhbGxzLgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpkZWxldGlvbkhhc0Jl
Z3VuKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6YmVnaW5EZWxldGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OnJlZkNvdW50KToKKyAgICAgICAgKiBkb20vVHJlZVNj
b3BlLmg6CisgICAgICAgIChUcmVlU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3Bl
OjpndWFyZFJlZik6IE1vdmVkIGZyb20gRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpUcmVl
U2NvcGU6Omd1YXJkRGVyZWYpOiBNb3ZlZCBmcm9tIERvY3VtZW50LgorICAgICAgICAoV2ViQ29y
ZTo6VHJlZVNjb3BlOjpoYXNHdWFyZFJlZkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVT
Y29wZTo6ZGVsZXRpb25IYXNCZWd1bik6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmJl
Z2luRGVsZXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpyZW1vdmVkTGFzdFJl
ZlRvU2NvcGUpOiBFeHRyYWN0ZWQgZnJvbSBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYoKQorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld1Njb3BlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZUFkb3B0ZXI6Om1vdmVOb2RlVG9OZXdEb2N1bWVudCk6
CisKIDIwMTMtMDItMTQgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAg
IEluc3BlY3RvciBkb2Vzbid0IHNob3cgcnVsZXMgZnJvbSBwbHVnaW5zU3R5bGVTaGVldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgppbmRleCBmOTcwMDYzOWEyNWM4ZTc4YWU5ZDI0N2FiYjA2NDVlMTAxODRj
NzgyLi4yMTg1ZWRiMjdkNDIzZjI1NDE5NjBmMTZjN2E3YmViNmY3ZmQ2ZTM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgpAQCAtMTQwNyw3ICsxNDA3LDYgQEAgX19aTks3V2ViQ29yZTROb2RlMTF0ZXh0
Q29udGVudEViCiBfX1pON1dlYkNvcmU0Tm9kZTEyaW5zZXJ0QmVmb3JlRU4zV1RGMTBQYXNzUmVm
UHRySVMwX0VFUFMwX1JpYgogX19aTks3V2ViQ29yZTROb2RlMTNvd25lckRvY3VtZW50RXYKIF9f
Wk5LN1dlYkNvcmU0Tm9kZTE0aXNEZXNjZW5kYW50T2ZFUEtTMF8KLV9fWk5LN1dlYkNvcmU0Tm9k
ZTExaXNUcmVlU2NvcGVFdgogX19aTks3V2ViQ29yZTROb2RlMThnZXRTdWJyZXNvdXJjZVVSTHNF
Uk4zV1RGMTFMaXN0SGFzaFNldElOU180S1VSTEVMbTI1NkVOU184S1VSTEhhc2hFRUUKIF9fWk5L
N1dlYkNvcmU0Tm9kZTMxbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbkV2CiBfX1pOSzdX
ZWJDb3JlNE5vZGU5bm9kZUluZGV4RXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
b250YWluZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5oCmluZGV4
IGZlMmVjODVmODRiN2M5MjQ2YThhOTJmOWU2MzkzYjY4MTU0ZTI1ZTguLmRkZjgxOGRkNTJmODY2
NGU2ZDI5ODBjZDZmN2MwODJmY2E3MWNmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db250YWluZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUu
aApAQCAtMzYwLDYgKzM2MCwxMyBAQCBwcml2YXRlOgogICAgIENvbnRhaW5lck5vZGUqIG1fbm9k
ZTsKIH07CiAKKworLy8gVGhpcyBpcyBwbGFjZWQgaGVyZSBmb3IgaW5saW5pbmc6IHJvb3ROb2Rl
KCkgbmVlZHMgQ29udGFpbmVyTm9kZSBkZWZpbnRpaW9uLgoraW5saW5lIGJvb2wgTm9kZTo6aXNU
cmVlU2NvcGUoKSBjb25zdAoreworICAgIHJldHVybiB0cmVlU2NvcGUoKS0+cm9vdE5vZGUoKSA9
PSB0aGlzOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBDb250YWlu
ZXJOb2RlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDRkNjI5NjNjYTExZTUwOThmMGUx
Zjc3NzcyZjFhZDg5MWM1ODhkMzcuLmYwNTBiYmM5ZDMyMzczZmJjMTBkOWFhZDhiYTgzNmFjM2M0
NmI0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDA5LDcgKzQwOSw2IEBAIHVpbnQ2
NF90IERvY3VtZW50OjpzX2dsb2JhbFRyZWVWZXJzaW9uID0gMDsKIERvY3VtZW50OjpEb2N1bWVu
dChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRN
TCkKICAgICA6IENvbnRhaW5lck5vZGUoMCwgQ3JlYXRlRG9jdW1lbnQpCiAgICAgLCBUcmVlU2Nv
cGUodGhpcykKLSAgICAsIG1fZ3VhcmRSZWZDb3VudCgwKQogICAgICwgbV9zdHlsZVJlc29sdmVy
VGhyb3dhd2F5VGltZXIodGhpcywgJkRvY3VtZW50OjpzdHlsZVJlc29sdmVyVGhyb3dhd2F5VGlt
ZXJGaXJlZCkKICAgICAsIG1fbGFzdFN0eWxlUmVzb2x2ZXJBY2Nlc3NUaW1lKDApCiAgICAgLCBt
X2FjdGl2ZVBhcnNlckNvdW50KDApCkBAIC01ODIsNyArNTgxLDcgQEAgRG9jdW1lbnQ6On5Eb2N1
bWVudCgpCiAgICAgQVNTRVJUKG1fcmFuZ2VzLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKCFtX3N0
eWxlUmVjYWxjVGltZXIuaXNBY3RpdmUoKSk7CiAgICAgQVNTRVJUKCFtX3BhcmVudFRyZWVTY29w
ZSk7Ci0gICAgQVNTRVJUKCFtX2d1YXJkUmVmQ291bnQpOworICAgIEFTU0VSVCghaGFzR3VhcmRS
ZWZDb3VudCgpKTsKIAogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQogICAgIGlmIChtX3Rl
bXBsYXRlRG9jdW1lbnQpCkBAIC02NDksNjAgKzY0OCw0MiBAQCBEb2N1bWVudDo6fkRvY3VtZW50
KCkKICAgICBJbnNwZWN0b3JDb3VudGVyczo6ZGVjcmVtZW50Q291bnRlcihJbnNwZWN0b3JDb3Vu
dGVyczo6RG9jdW1lbnRDb3VudGVyKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RS
ZWYoKQordm9pZCBEb2N1bWVudDo6ZGlzcG9zZSgpCiB7Ci0gICAgQVNTRVJUKCFtX2RlbGV0aW9u
SGFzQmVndW4pOwotICAgIGlmIChtX2d1YXJkUmVmQ291bnQpIHsKLSAgICAgICAgLy8gSWYgcmVt
b3ZpbmcgYSBjaGlsZCByZW1vdmVzIHRoZSBsYXN0IHNlbGYtb25seSByZWYsIHdlIGRvbid0Ci0g
ICAgICAgIC8vIHdhbnQgdGhlIHNjb3BlIHRvIGJlIGRlc3RydWN0ZWQgdW50aWwgYWZ0ZXIKLSAg
ICAgICAgLy8gcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbiByZXR1cm5zLCBzbyB3ZSBndWFyZCBvdXJz
ZWx2ZXMgd2l0aCBhbgotICAgICAgICAvLyBleHRyYSBzZWxmLW9ubHkgcmVmLgotICAgICAgICBn
dWFyZFJlZigpOwotCi0gICAgICAgIC8vIFdlIG11c3QgbWFrZSBzdXJlIG5vdCB0byBiZSByZXRh
aW5pbmcgYW55IG9mIG91ciBjaGlsZHJlbiB0aHJvdWdoCi0gICAgICAgIC8vIHRoZXNlIGV4dHJh
IHBvaW50ZXJzIG9yIHdlIHdpbGwgY3JlYXRlIGEgcmVmZXJlbmNlIGN5Y2xlLgotICAgICAgICBt
X2RvY1R5cGUgPSAwOwotICAgICAgICBtX2ZvY3VzZWROb2RlID0gMDsKLSAgICAgICAgbV9ob3Zl
ck5vZGUgPSAwOwotICAgICAgICBtX2FjdGl2ZUVsZW1lbnQgPSAwOwotICAgICAgICBtX3RpdGxl
RWxlbWVudCA9IDA7Ci0gICAgICAgIG1fZG9jdW1lbnRFbGVtZW50ID0gMDsKLSAgICAgICAgbV9j
b250ZXh0RmVhdHVyZXMgPSBDb250ZXh0RmVhdHVyZXM6OmRlZmF1bHRTd2l0Y2goKTsKLSAgICAg
ICAgbV91c2VyQWN0aW9uRWxlbWVudHMuZG9jdW1lbnREaWRSZW1vdmVMYXN0UmVmKCk7CisgICAg
Ly8gV2UgbXVzdCBtYWtlIHN1cmUgbm90IHRvIGJlIHJldGFpbmluZyBhbnkgb2Ygb3VyIGNoaWxk
cmVuIHRocm91Z2gKKyAgICAvLyB0aGVzZSBleHRyYSBwb2ludGVycyBvciB3ZSB3aWxsIGNyZWF0
ZSBhIHJlZmVyZW5jZSBjeWNsZS4KKyAgICBtX2RvY1R5cGUgPSAwOworICAgIG1fZm9jdXNlZE5v
ZGUgPSAwOworICAgIG1faG92ZXJOb2RlID0gMDsKKyAgICBtX2FjdGl2ZUVsZW1lbnQgPSAwOwor
ICAgIG1fdGl0bGVFbGVtZW50ID0gMDsKKyAgICBtX2RvY3VtZW50RWxlbWVudCA9IDA7CisgICAg
bV9jb250ZXh0RmVhdHVyZXMgPSBDb250ZXh0RmVhdHVyZXM6OmRlZmF1bHRTd2l0Y2goKTsKKyAg
ICBtX3VzZXJBY3Rpb25FbGVtZW50cy5kb2N1bWVudERpZFJlbW92ZUxhc3RSZWYoKTsKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQgPSAwOwot
ICAgICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50U3RhY2suY2xlYXIoKTsKKyAgICBtX2Z1bGxTY3Jl
ZW5FbGVtZW50ID0gMDsKKyAgICBtX2Z1bGxTY3JlZW5FbGVtZW50U3RhY2suY2xlYXIoKTsKICNl
bmRpZgogCi0gICAgICAgIGRldGFjaFBhcnNlcigpOworICAgIGRldGFjaFBhcnNlcigpOwogCi0g
ICAgICAgIC8vIHJlbW92ZURldGFjaGVkQ2hpbGRyZW4oKSBkb2Vzbid0IGFsd2F5cyB1bnJlZ2lz
dGVyIElEcywKLSAgICAgICAgLy8gc28gdGVhciBkb3duIHNjb3BlIGluZm9ybWF0aW9uIHVwZnJv
bnQgdG8gYXZvaWQgaGF2aW5nIHN0YWxlIHJlZmVyZW5jZXMgaW4gdGhlIG1hcC4KLSAgICAgICAg
ZGVzdHJveVRyZWVTY29wZURhdGEoKTsKLSAgICAgICAgcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbigp
OworICAgIC8vIHJlbW92ZURldGFjaGVkQ2hpbGRyZW4oKSBkb2Vzbid0IGFsd2F5cyB1bnJlZ2lz
dGVyIElEcywKKyAgICAvLyBzbyB0ZWFyIGRvd24gc2NvcGUgaW5mb3JtYXRpb24gdXBmcm9udCB0
byBhdm9pZCBoYXZpbmcgc3RhbGUgcmVmZXJlbmNlcyBpbiB0aGUgbWFwLgorICAgIGRlc3Ryb3lU
cmVlU2NvcGVEYXRhKCk7CisgICAgcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbigpOwogCi0gICAgICAg
IG1fbWFya2Vycy0+ZGV0YWNoKCk7CisgICAgbV9tYXJrZXJzLT5kZXRhY2goKTsKIAotICAgICAg
ICBtX2Nzc0NhbnZhc0VsZW1lbnRzLmNsZWFyKCk7CisgICAgbV9jc3NDYW52YXNFbGVtZW50cy5j
bGVhcigpOwogCiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQotICAgICAgICAv
LyBGSVhNRTogY29uc2lkZXIgdXNpbmcgQWN0aXZlRE9NT2JqZWN0LgotICAgICAgICBpZiAobV9z
Y3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIpCi0gICAgICAgICAgICBtX3NjcmlwdGVkQW5pbWF0
aW9uQ29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKLSAgICAgICAgbV9zY3JpcHRl
ZEFuaW1hdGlvbkNvbnRyb2xsZXIuY2xlYXIoKTsKLSNlbmRpZgotCi0jaWZuZGVmIE5ERUJVRwot
ICAgICAgICBtX2luUmVtb3ZlZExhc3RSZWZGdW5jdGlvbiA9IGZhbHNlOworICAgIC8vIEZJWE1F
OiBjb25zaWRlciB1c2luZyBBY3RpdmVET01PYmplY3QuCisgICAgaWYgKG1fc2NyaXB0ZWRBbmlt
YXRpb25Db250cm9sbGVyKQorICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci0+
Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKKyAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxl
ci5jbGVhcigpOwogI2VuZGlmCiAKLSAgICAgICAgZ3VhcmREZXJlZigpOwotICAgIH0gZWxzZSB7
Ci0jaWZuZGVmIE5ERUJVRyAKLSAgICAgICAgbV9kZWxldGlvbkhhc0JlZ3VuID0gdHJ1ZTsgCi0j
ZW5kaWYgCi0gICAgICAgIGRlbGV0ZSB0aGlzOwotICAgIH0KKyAgICBUcmVlU2NvcGU6OmRpc3Bv
c2UoKTsKIH0KIAogRWxlbWVudCogRG9jdW1lbnQ6OmdldEVsZW1lbnRCeUlkKGNvbnN0IEF0b21p
Y1N0cmluZyYgaWQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDcyYzgzOTkzYmUwN2Zm
OGMyNzYyMDI5OWFhMjE2NDk2Y2Y3ZjU5ZTcuLmVhMjc3YzYwNDJiYWFmOTRhNmM2ZTBkNGQ4ZDRl
ZDA0ODQ5M2VlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMjgsMjkgKzIyOCw2IEBAIHB1
YmxpYzoKICAgICB1c2luZyBDb250YWluZXJOb2RlOjpyZWY7CiAgICAgdXNpbmcgQ29udGFpbmVy
Tm9kZTo6ZGVyZWY7CiAKLSAgICAvLyBOb2RlcyBiZWxvbmdpbmcgdG8gdGhpcyBkb2N1bWVudCBo
b2xkIGd1YXJkIHJlZmVyZW5jZXMgLQotICAgIC8vIHRoZXNlIGFyZSBlbm91Z2ggdG8ga2VlcCB0
aGUgZG9jdW1lbnQgZnJvbSBiZWluZyBkZXN0cm95ZWQsIGJ1dAotICAgIC8vIG5vdCBlbm91Z2gg
dG8ga2VlcCBpdCBmcm9tIHJlbW92aW5nIGl0cyBjaGlsZHJlbi4gVGhpcyBhbGxvd3MgYQotICAg
IC8vIG5vZGUgdGhhdCBvdXRsaXZlcyBpdHMgZG9jdW1lbnQgdG8gc3RpbGwgaGF2ZSBhIHZhbGlk
IGRvY3VtZW50Ci0gICAgLy8gcG9pbnRlciB3aXRob3V0IGludHJvZHVjaW5nIHJlZmVyZW5jZSBj
eWNsZXMuCi0gICAgdm9pZCBndWFyZFJlZigpCi0gICAgewotICAgICAgICBBU1NFUlQoIW1fZGVs
ZXRpb25IYXNCZWd1bik7Ci0gICAgICAgICsrbV9ndWFyZFJlZkNvdW50OwotICAgIH0KLQotICAg
IHZvaWQgZ3VhcmREZXJlZigpCi0gICAgewotICAgICAgICBBU1NFUlQoIW1fZGVsZXRpb25IYXNC
ZWd1bik7Ci0gICAgICAgIC0tbV9ndWFyZFJlZkNvdW50OwotICAgICAgICBpZiAoIW1fZ3VhcmRS
ZWZDb3VudCAmJiAhcmVmQ291bnQoKSkgewotI2lmbmRlZiBOREVCVUcKLSAgICAgICAgICAgIG1f
ZGVsZXRpb25IYXNCZWd1biA9IHRydWU7Ci0jZW5kaWYKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlz
OwotICAgICAgICB9Ci0gICAgfQotCiAgICAgRWxlbWVudCogZ2V0RWxlbWVudEJ5SWQoY29uc3Qg
QXRvbWljU3RyaW5nJiBpZCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJh
bmdlRW5kUG9pbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC0xMjE3LDggKzExOTQsOCBA
QCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBOb2RlOwogICAgIGZyaWVuZCBjbGFzcyBJZ25v
cmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlcjsKIAotICAgIHZvaWQgcmVtb3ZlZExh
c3RSZWYoKTsKLSAgICAKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpIE9WRVJSSURFOworCiAg
ICAgdm9pZCBkZXRhY2hQYXJzZXIoKTsKIAogICAgIHR5cGVkZWYgdm9pZCAoKkFyZ3VtZW50c0Nh
bGxiYWNrKShjb25zdCBTdHJpbmcmIGtleVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWx1ZVN0cmlu
ZywgRG9jdW1lbnQqLCB2b2lkKiBkYXRhKTsKQEAgLTEyODYsOCArMTI2Myw2IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBhZGRMaXN0ZW5lclR5cGUoTGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlwZSkgeyBt
X2xpc3RlbmVyVHlwZXMgfD0gbGlzdGVuZXJUeXBlOyB9CiAgICAgdm9pZCBhZGRNdXRhdGlvbkV2
ZW50TGlzdGVuZXJUeXBlSWZFbmFibGVkKExpc3RlbmVyVHlwZSk7CiAKLSAgICBpbnQgbV9ndWFy
ZFJlZkNvdW50OwotCiAgICAgdm9pZCBzdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJGaXJlZChU
aW1lcjxEb2N1bWVudD4qKTsKICAgICBUaW1lcjxEb2N1bWVudD4gbV9zdHlsZVJlc29sdmVyVGhy
b3dhd2F5VGltZXI7CiAgICAgZG91YmxlIG1fbGFzdFN0eWxlUmVzb2x2ZXJBY2Nlc3NUaW1lOwpA
QCAtMTYwMywxMCArMTU3OCw5IEBAIGlubGluZSBOb2RlOjpOb2RlKERvY3VtZW50KiBkb2N1bWVu
dCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQogICAgICwgbV9wcmV2aW91cygwKQogICAgICwgbV9u
ZXh0KDApCiB7Ci0gICAgaWYgKGRvY3VtZW50KQotICAgICAgICBkb2N1bWVudC0+Z3VhcmRSZWYo
KTsKLSAgICBlbHNlCisgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgbV90cmVlU2NvcGUgPSBU
cmVlU2NvcGU6Om5vRG9jdW1lbnRJbnN0YW5jZSgpOworICAgIG1fdHJlZVNjb3BlLT5ndWFyZFJl
ZigpOwogCiAjaWYgIWRlZmluZWQoTkRFQlVHKSB8fCAoZGVmaW5lZChEVU1QX05PREVfU1RBVElT
VElDUykgJiYgRFVNUF9OT0RFX1NUQVRJU1RJQ1MpCiAgICAgdHJhY2tGb3JEZWJ1Z2dpbmcoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAppbmRleCAzZmQ2NDNiYzhhMGI5OTBmY2Q5M2VlMTFjNGQ0MjJjNTQ5OTdk
NzFjLi42Y2MxZjM5MWY2MjM0OGNkNzRjOWQyNjg2ZmJjZjVmMTkzNTBiOTg3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCkBAIC04OTIsMTEgKzg5Miw2IEBAIGJvb2wgTm9kZTo6aXNGb2N1c2FibGUoKSBjb25z
dAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE5vZGU6OmlzVHJlZVNjb3BlKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gdHJlZVNjb3BlKCktPnJvb3ROb2RlKCkgPT0gdGhpczsKLX0KLQogYm9v
bCBOb2RlOjppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdAogewogICAg
IHJldHVybiBpc0ZvY3VzYWJsZSgpICYmIHRhYkluZGV4KCkgPj0gMDsKQEAgLTI1NjEsOCArMjU1
Niw4IEBAIHZvaWQgTm9kZTo6cmVtb3ZlZExhc3RSZWYoKQogICAgIC8vIEFuIGV4cGxpY2l0IGNo
ZWNrIGZvciBEb2N1bWVudCBoZXJlIGlzIGJldHRlciB0aGFuIGEgdmlydHVhbCBmdW5jdGlvbiBz
aW5jZSBpdCBpcwogICAgIC8vIGZhc3RlciBmb3Igbm9uLURvY3VtZW50IG5vZGVzLCBhbmQgYmVj
YXVzZSB0aGUgY2FsbCB0byByZW1vdmVkTGFzdFJlZiB0aGF0IGlzIGlubGluZWQKICAgICAvLyBh
dCBhbGwgZGVyZWYgY2FsbCBzaXRlcyBpcyBzbWFsbGVyIGlmIGl0J3MgYSBub24tdmlydHVhbCBm
dW5jdGlvbi4KLSAgICBpZiAoaXNEb2N1bWVudE5vZGUoKSkgewotICAgICAgICBzdGF0aWNfY2Fz
dDxEb2N1bWVudCo+KHRoaXMpLT5yZW1vdmVkTGFzdFJlZigpOworICAgIGlmIChpc1RyZWVTY29w
ZSgpKSB7CisgICAgICAgIHRyZWVTY29wZSgpLT5yZW1vdmVkTGFzdFJlZlRvU2NvcGUoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICNpZm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCA5OTY2
NDIyOWMyYjYzZDE1OWEzZWMwMGU1ZjJjNDgzMTM0YTUxYWQ4Li42ZWQ3NTAyZWNmYmUyMmYzMTNj
MzQ2ZGUyYzM2NjBmYmQxY2Y4NWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTc3Niw3ICs3NzYsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCBzZXRIYXNDdXN0b21DYWxsYmFja3MoKSB7IHNldEZsYWcodHJ1
ZSwgSGFzQ3VzdG9tQ2FsbGJhY2tzRmxhZyk7IH0KIAogICAgIERvY3VtZW50KiBkb2N1bWVudElu
dGVybmFsKCkgY29uc3QgeyByZXR1cm4gdHJlZVNjb3BlKCktPmRvY3VtZW50U2NvcGUoKTsgfQot
ICAgIHZvaWQgc2V0VHJlZVNjb3BlKFRyZWVTY29wZSogc2NvcGUpIHsgbV90cmVlU2NvcGUgPSBz
Y29wZTsgfQorICAgIHZvaWQgc2V0VHJlZVNjb3BlKFRyZWVTY29wZSopOworICAgIGJvb2wgaXNU
cmVlU2NvcGVJbnRlcm5hbCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBU
cmVlU2hhcmVkPE5vZGU+OwpAQCAtODk1LDYgKzg5NiwxMyBAQCBpbmxpbmUgdm9pZCBOb2RlOjps
YXp5UmVhdHRhY2goU2hvdWxkU2V0QXR0YWNoZWQgc2hvdWxkU2V0QXR0YWNoZWQpCiAgICAgbGF6
eUF0dGFjaChzaG91bGRTZXRBdHRhY2hlZCk7CiB9CiAKK2lubGluZSB2b2lkIE5vZGU6OnNldFRy
ZWVTY29wZShUcmVlU2NvcGUqIHNjb3BlKQoreworICAgIHNjb3BlLT5ndWFyZFJlZigpOworICAg
IG1fdHJlZVNjb3BlLT5ndWFyZERlcmVmKCk7CisgICAgbV90cmVlU2NvcGUgPSBzY29wZTsKK30K
KwogfSAvL25hbWVzcGFjZQogCiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3Qu
Y3BwCmluZGV4IDc1OTU5NDViY2NhNWJlNWIwYjE0YmE1YTQzMmFhMmIxYTIxNGFjMzIuLmRiZjJk
ZDVmZWE3MDgzYWNlY2QxYjYzZDkwMjhiNjU0NTU5MDhhYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5jcHAKQEAgLTg5LDYgKzg5LDExIEBAIFNoYWRvd1Jvb3Q6On5TaGFkb3dSb290KCkKICAg
ICAgICAgY2xlYXJSYXJlRGF0YSgpOwogfQogCit2b2lkIFNoYWRvd1Jvb3Q6OmRpc3Bvc2UoKQor
eworICAgIHJlbW92ZURldGFjaGVkQ2hpbGRyZW4oKTsKK30KKwogUGFzc1JlZlB0cjxOb2RlPiBT
aGFkb3dSb290OjpjbG9uZU5vZGUoYm9vbCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMg
PSBEQVRBX0NMT05FX0VSUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IDJkMWNmMjNiMWVi
YmI2ZmQ0NTcyZTBmODkwODliOWZmOTY0ZDdjNmQuLmRiYzcxZGMwYTZjZDYyOGUwM2UwOTQ1MDYx
ZWRjYTY1NjMyMDk5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtMTAwLDYgKzEwMCw3
IEBAIHByaXZhdGU6CiAgICAgU2hhZG93Um9vdChEb2N1bWVudCosIFNoYWRvd1Jvb3RUeXBlKTsK
ICAgICB2aXJ0dWFsIH5TaGFkb3dSb290KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBj
b25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hh
bmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqIGFmdGVyQ2hhbmdlLCBpbnQg
Y2hpbGRDb3VudERlbHRhKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRl
eCAwM2I0MmZjZTg1ODY4NjJjYzQ4OTliYjUxMjNlZjk0NTVlOWM1ZTBlLi4wNTUyYmJiN2RiYWM5
Y2VhNGZlZGNlYTg5MTA5ZjM1Mzk0MGY5OGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApA
QCAtNTksNiArNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgU2FtZVNpemVBc1Ry
ZWVTY29wZSB7CiAgICAgdmlydHVhbCB+U2FtZVNpemVBc1RyZWVTY29wZSgpOwogICAgIHZvaWQq
IHBvaW50ZXJzWzhdOworICAgIGludCBpbnRzWzFdOwogfTsKIAogQ09NUElMRV9BU1NFUlQoc2l6
ZW9mKFRyZWVTY29wZSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNUcmVlU2NvcGUpLCB0cmVlc2NvcGVf
c2hvdWxkX3N0YXlfc21hbGwpOwpAQCAtNjksMTEgKzcwLDEzIEBAIFRyZWVTY29wZTo6VHJlZVNj
b3BlKENvbnRhaW5lck5vZGUqIHJvb3ROb2RlLCBEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBt
X3Jvb3ROb2RlKHJvb3ROb2RlKQogICAgICwgbV9kb2N1bWVudFNjb3BlKGRvY3VtZW50KQogICAg
ICwgbV9wYXJlbnRUcmVlU2NvcGUoZG9jdW1lbnQpCisgICAgLCBtX2d1YXJkUmVmQ291bnQoMCkK
ICAgICAsIG1faWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3Ry
eTo6Y3JlYXRlKCkpCiB7CiAgICAgQVNTRVJUKHJvb3ROb2RlKTsKICAgICBBU1NFUlQoZG9jdW1l
bnQpOwogICAgIEFTU0VSVChyb290Tm9kZSAhPSBkb2N1bWVudCk7CisgICAgbV9wYXJlbnRUcmVl
U2NvcGUtPmd1YXJkUmVmKCk7CiB9CiAKIFRyZWVTY29wZTo6VHJlZVNjb3BlKERvY3VtZW50KiBk
b2N1bWVudCkKQEAgLTk0LDEwICs5NywyMiBAQCBUcmVlU2NvcGU6OlRyZWVTY29wZSgpCiAKIFRy
ZWVTY29wZTo6flRyZWVTY29wZSgpCiB7CisgICAgQVNTRVJUKCFtX2d1YXJkUmVmQ291bnQpOwor
CiAgICAgaWYgKG1fc2VsZWN0aW9uKSB7CiAgICAgICAgIG1fc2VsZWN0aW9uLT5jbGVhclRyZWVT
Y29wZSgpOwogICAgICAgICBtX3NlbGVjdGlvbiA9IDA7CiAgICAgfQorCisgICAgaWYgKG1fcGFy
ZW50VHJlZVNjb3BlKQorICAgICAgICBtX3BhcmVudFRyZWVTY29wZS0+Z3VhcmREZXJlZigpOwor
fQorCit2b2lkIFRyZWVTY29wZTo6ZGlzcG9zZSgpCit7CisjaWZuZGVmIE5ERUJVRworICAgIHJv
b3ROb2RlKCktPm1faW5SZW1vdmVkTGFzdFJlZkZ1bmN0aW9uID0gZmFsc2U7CisjZW5kaWYKIH0K
IAogdm9pZCBUcmVlU2NvcGU6OmRlc3Ryb3lUcmVlU2NvcGVEYXRhKCkKQEAgLTEyMCw3ICsxMzUs
MTEgQEAgdm9pZCBUcmVlU2NvcGU6OnNldFBhcmVudFRyZWVTY29wZShUcmVlU2NvcGUqIG5ld1Bh
cmVudFNjb3BlKQogICAgIC8vIEV2ZXJ5IHNjb3BlIG90aGVyIHRoYW4gZG9jdW1lbnQgbmVlZHMg
YSBwYXJlbnQgc2NvcGUuCiAgICAgQVNTRVJUKG5ld1BhcmVudFNjb3BlKTsKIAorICAgIFRyZWVT
Y29wZSogb2xkUGFyZW50U2NvcGUgPSBtX3BhcmVudFRyZWVTY29wZTsKICAgICBtX3BhcmVudFRy
ZWVTY29wZSA9IG5ld1BhcmVudFNjb3BlOworICAgIG5ld1BhcmVudFNjb3BlLT5ndWFyZFJlZigp
OworICAgIGlmIChvbGRQYXJlbnRTY29wZSkKKyAgICAgICAgb2xkUGFyZW50U2NvcGUtPmd1YXJk
RGVyZWYoKTsKICAgICBzZXREb2N1bWVudFNjb3BlKG5ld1BhcmVudFNjb3BlLT5kb2N1bWVudFNj
b3BlKCkpOwogfQogCkBAIC00MTUsNCArNDM0LDIyIEBAIFRyZWVTY29wZSogY29tbW9uVHJlZVNj
b3BlKE5vZGUqIG5vZGVBLCBOb2RlKiBub2RlQikKICAgICByZXR1cm4gdHJlZVNjb3Blc0FbaW5k
ZXhBXSA9PSB0cmVlU2NvcGVzQltpbmRleEJdID8gdHJlZVNjb3Blc0FbaW5kZXhBXSA6IDA7CiB9
CiAKKyNpZm5kZWYgTkRFQlVHCitib29sIFRyZWVTY29wZTo6ZGVsZXRpb25IYXNCZWd1bigpCit7
CisgICAgcmV0dXJuIHJvb3ROb2RlKCkgJiYgcm9vdE5vZGUoKS0+bV9kZWxldGlvbkhhc0JlZ3Vu
OworfQorCit2b2lkIFRyZWVTY29wZTo6YmVnaW5EZWxldGlvbigpCit7CisgICAgQVNTRVJUKHRo
aXMgIT0gbm9Eb2N1bWVudEluc3RhbmNlKCkpOworICAgIHJvb3ROb2RlKCktPm1fZGVsZXRpb25I
YXNCZWd1biA9IHRydWU7Cit9CisjZW5kaWYKKworaW50IFRyZWVTY29wZTo6cmVmQ291bnQoKSBj
b25zdAoreworICAgIHJldHVybiByb290Tm9kZSgpLT5yZWZDb3VudCgpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKaW5kZXggYmU1MDBmMTA2NGM4Yjc4
MTQ5Y2RjZGVkOTI4MTkxYjNmNTZiM2VmMS4uOWZlY2ZjYWU2MjE0Mjk2OTljYTU4NzE2Y2E4NDE5
MGZlNzhkODZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaApAQCAtMTA0LDEwICsxMDQsMzQgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gJmluc3RhbmNlOwogICAgIH0KIAorICAgIC8vIE5vZGVz
IGJlbG9uZ2luZyB0byB0aGlzIGRvY3VtZW50IGhvbGQgZ3VhcmQgcmVmZXJlbmNlcyAtCisgICAg
Ly8gdGhlc2UgYXJlIGVub3VnaCB0byBrZWVwIHRoZSBkb2N1bWVudCBmcm9tIGJlaW5nIGRlc3Ry
b3llZCwgYnV0CisgICAgLy8gbm90IGVub3VnaCB0byBrZWVwIGl0IGZyb20gcmVtb3ZpbmcgaXRz
IGNoaWxkcmVuLiBUaGlzIGFsbG93cyBhCisgICAgLy8gbm9kZSB0aGF0IG91dGxpdmVzIGl0cyBk
b2N1bWVudCB0byBzdGlsbCBoYXZlIGEgdmFsaWQgZG9jdW1lbnQKKyAgICAvLyBwb2ludGVyIHdp
dGhvdXQgaW50cm9kdWNpbmcgcmVmZXJlbmNlIGN5Y2xlcy4KKyAgICB2b2lkIGd1YXJkUmVmKCkK
KyAgICB7CisgICAgICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICAgICAgKytt
X2d1YXJkUmVmQ291bnQ7CisgICAgfQorCisgICAgdm9pZCBndWFyZERlcmVmKCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICAgICAgLS1tX2d1YXJkUmVm
Q291bnQ7CisgICAgICAgIGlmICghbV9ndWFyZFJlZkNvdW50ICYmICFyZWZDb3VudCgpICYmIHRo
aXMgIT0gbm9Eb2N1bWVudEluc3RhbmNlKCkpIHsKKyAgICAgICAgICAgIGJlZ2luRGVsZXRpb24o
KTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzOworICAgICAgICB9CisgICAgfQorCisgICAgdm9p
ZCByZW1vdmVkTGFzdFJlZlRvU2NvcGUoKTsKKwogcHJvdGVjdGVkOgogICAgIFRyZWVTY29wZShD
b250YWluZXJOb2RlKiwgRG9jdW1lbnQqKTsKICAgICBUcmVlU2NvcGUoRG9jdW1lbnQqKTsKICAg
ICB2aXJ0dWFsIH5UcmVlU2NvcGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpOwogCiAg
ICAgdm9pZCBkZXN0cm95VHJlZVNjb3BlRGF0YSgpOwogICAgIHZvaWQgY2xlYXJEb2N1bWVudFNj
b3BlKCk7CkBAIC0xMTgsMTIgKzE0MiwyNCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fZG9jdW1l
bnRTY29wZSA9IGRvY3VtZW50OwogICAgIH0KIAorICAgIGJvb2wgaGFzR3VhcmRSZWZDb3VudCgp
IGNvbnN0IHsgcmV0dXJuIG1fZ3VhcmRSZWZDb3VudDsgfQorCiBwcml2YXRlOgogICAgIFRyZWVT
Y29wZSgpOwogCisgICAgaW50IHJlZkNvdW50KCkgY29uc3Q7CisjaWZuZGVmIE5ERUJVRworICAg
IGJvb2wgZGVsZXRpb25IYXNCZWd1bigpOworICAgIHZvaWQgYmVnaW5EZWxldGlvbigpOworI2Vs
c2UKKyAgICBib29sIGRlbGV0aW9uSGFzQmVndW4oKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZv
aWQgYmVnaW5EZWxldGlvbigpIHsgfQorI2VuZGlmCisKICAgICBDb250YWluZXJOb2RlKiBtX3Jv
b3ROb2RlOwogICAgIERvY3VtZW50KiBtX2RvY3VtZW50U2NvcGU7CiAgICAgVHJlZVNjb3BlKiBt
X3BhcmVudFRyZWVTY29wZTsKKyAgICBpbnQgbV9ndWFyZFJlZkNvdW50OwogCiAgICAgT3duUHRy
PERvY3VtZW50T3JkZXJlZE1hcD4gbV9lbGVtZW50c0J5SWQ7CiAgICAgT3duUHRyPERvY3VtZW50
T3JkZXJlZE1hcD4gbV9pbWFnZU1hcHNCeU5hbWU7CkBAIC0xNDUsNiArMTgxLDIzIEBAIGlubGlu
ZSBib29sIFRyZWVTY29wZTo6Y29udGFpbnNNdWx0aXBsZUVsZW1lbnRzV2l0aElkKGNvbnN0IEF0
b21pY1N0cmluZyYgaWQpIGNvCiAgICAgcmV0dXJuIG1fZWxlbWVudHNCeUlkICYmIG1fZWxlbWVu
dHNCeUlkLT5jb250YWluc011bHRpcGxlKGlkLmltcGwoKSk7CiB9CiAKK2lubGluZSB2b2lkIFRy
ZWVTY29wZTo6cmVtb3ZlZExhc3RSZWZUb1Njb3BlKCkKK3sKKyAgICBBU1NFUlQoIWRlbGV0aW9u
SGFzQmVndW4oKSk7CisgICAgaWYgKGhhc0d1YXJkUmVmQ291bnQoKSkgeworICAgICAgICAvLyBJ
ZiByZW1vdmluZyBhIGNoaWxkIHJlbW92ZXMgdGhlIGxhc3Qgc2VsZi1vbmx5IHJlZiwgd2UgZG9u
J3QKKyAgICAgICAgLy8gd2FudCB0aGUgc2NvcGUgdG8gYmUgZGVzdHJ1Y3RlZCB1bnRpbCBhZnRl
cgorICAgICAgICAvLyByZW1vdmVEZXRhY2hlZENoaWxkcmVuIHJldHVybnMsIHNvIHdlIGd1YXJk
IG91cnNlbHZlcyB3aXRoIGFuCisgICAgICAgIC8vIGV4dHJhIHNlbGYtb25seSByZWYuCisgICAg
ICAgIGd1YXJkUmVmKCk7CisgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgZ3VhcmREZXJlZigp
OworICAgIH0gZWxzZSB7CisgICAgICAgIGJlZ2luRGVsZXRpb24oKTsKKyAgICAgICAgZGVsZXRl
IHRoaXM7CisgICAgfQorfQorCiBOb2RlKiBub2RlRnJvbVBvaW50KERvY3VtZW50KiwgaW50IHgs
IGludCB5LCBMYXlvdXRQb2ludCogbG9jYWxQb2ludCA9IDApOwogVHJlZVNjb3BlKiBjb21tb25U
cmVlU2NvcGUoTm9kZSosIE5vZGUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVTY29wZUFkb3B0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0
ZXIuY3BwCmluZGV4IDQxYmZkMjU2Y2M0YjVlNWYzMTcxOTUxOGJlMWIzMDg5NWU4NThkMTAuLjRl
OTA1ZDI1Y2FiOWQ5YWE3MTEwMGQ4MTNlMDNiNDk3NzA5ZmMyYmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vVHJlZVNjb3BlQWRvcHRlci5jcHAKQEAgLTQwLDYgKzQwLDggQEAgdm9pZCBUcmVlU2NvcGVB
ZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUoTm9kZSogcm9vdCkgY29uc3QKIHsKICAgICBBU1NF
UlQobmVlZHNTY29wZUNoYW5nZSgpKTsKIAorICAgIG1fb2xkU2NvcGUtPmd1YXJkUmVmKCk7CisK
ICAgICAvLyBJZiBhbiBlbGVtZW50IGlzIG1vdmVkIGZyb20gYSBkb2N1bWVudCBhbmQgdGhlbiBl
dmVudHVhbGx5IGJhY2sgYWdhaW4gdGhlIGNvbGxlY3Rpb24gY2FjaGUgZm9yCiAgICAgLy8gdGhh
dCBlbGVtZW50IG1heSBjb250YWluIHN0YWxlIGRhdGEgYXMgY2hhbmdlcyBtYWRlIHRvIGl0IHdp
bGwgaGF2ZSB1cGRhdGVkIHRoZSBET01UcmVlVmVyc2lvbgogICAgIC8vIG9mIHRoZSBkb2N1bWVu
dCBpdCB3YXMgbW92ZWQgdG8uIEJ5IGluY3JlYXNpbmcgdGhlIERPTVRyZWVWZXJzaW9uIG9mIHRo
ZSBkb25hdGluZyBkb2N1bWVudCBoZXJlCkBAIC03Niw2ICs3OCw4IEBAIHZvaWQgVHJlZVNjb3Bl
QWRvcHRlcjo6bW92ZVRyZWVUb05ld1Njb3BlKE5vZGUqIHJvb3QpIGNvbnN0CiAgICAgICAgICAg
ICAgICAgbW92ZVRyZWVUb05ld0RvY3VtZW50KHNoYWRvdywgb2xkRG9jdW1lbnQsIG5ld0RvY3Vt
ZW50KTsKICAgICAgICAgfQogICAgIH0KKworICAgIG1fb2xkU2NvcGUtPmd1YXJkRGVyZWYoKTsK
IH0KIAogdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3RG9jdW1lbnQoTm9kZSog
cm9vdCwgRG9jdW1lbnQqIG9sZERvY3VtZW50LCBEb2N1bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0
CkBAIC0xMDksNyArMTEzLDYgQEAgaW5saW5lIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZU5v
ZGVUb05ld0RvY3VtZW50KE5vZGUqIG5vZGUsIERvY3VtZW50KiBvbGREb2MKICAgICAgICAgICAg
IHJhcmVEYXRhLT5ub2RlTGlzdHMoKS0+YWRvcHREb2N1bWVudChvbGREb2N1bWVudCwgbmV3RG9j
dW1lbnQpOwogICAgIH0KIAotICAgIG5ld0RvY3VtZW50LT5ndWFyZFJlZigpOwogICAgIGlmIChv
bGREb2N1bWVudCkKICAgICAgICAgb2xkRG9jdW1lbnQtPm1vdmVOb2RlSXRlcmF0b3JzVG9OZXdE
b2N1bWVudChub2RlLCBuZXdEb2N1bWVudCk7CiAKQEAgLTEyMyw5ICsxMjYsNiBAQCBpbmxpbmUg
dm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlTm9kZVRvTmV3RG9jdW1lbnQoTm9kZSogbm9kZSwg
RG9jdW1lbnQqIG9sZERvYwogCiAgICAgbm9kZS0+ZGlkTW92ZVRvTmV3RG9jdW1lbnQob2xkRG9j
dW1lbnQpOwogICAgIEFTU0VSVChkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCk7Ci0gICAg
Ci0gICAgaWYgKG9sZERvY3VtZW50KQotICAgICAgICBvbGREb2N1bWVudC0+Z3VhcmREZXJlZigp
OwogfQogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189015</attachid>
            <date>2013-02-19 01:02:30 -0800</date>
            <delta_ts>2013-02-20 02:15:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109777-20130219175851.patch</filename>
            <type>text/plain</type>
            <size>23395</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzMzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDIwZGMzMTQ0YTNjN2Ew
NDQ2NjRhZDA0NWEwZWMyM2E1ODQ3ZTg0ZS4uMWQzMzk4ZGZiNjRiZWNmMGI4MTBmNzYwNDI1NjVi
ZGI5YjkyOGM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDEzLTAyLTE5ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGd1YXJkUmVmKCkgYW5kIGd1YXJkRGVyZWYoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgbW92ZXMgbV9ndWFyZFJlZkNvdW50
IGZyb20gRG9jdW1lbnQgdG8gVHJlZVNjb3BlLAorICAgICAgICB3aGljaCBhbGxvd3MgU2hhZG93
Um9vdCB0byBiZSBndWFyZGVkIGJ5IGd1YXJkUmVmKCkgbWVjaGFuaXNtIGFzCisgICAgICAgIERv
Y3VtZW50LiBBZnRlciByMTM3NTI0LCBOb2RlIHJlZmVyZXMgVHJlZVNjb3BlIGluc3RlYWQgb2YK
KyAgICAgICAgRG9jdW1lbnQuIFRoaXMgaXMgbmF0dXJhbCBjb25zZXF1ZW5jZSBvZiB0aGUgY2hh
bmdlOiBJdCBubyBsb25nZXIKKyAgICAgICAgbWFrZXMgc2Vuc2UgdG8gZ3VhcmRSZWYoKSBEb2N1
bWVudCBwb2ludGVyIGZyb20gTm9kZS4KKworICAgICAgICBEZXRhaWw6CisKKyAgICAgICAgLSBE
b2N1bWVudDo6bV9ndWFyZFJlZkNvdW50IGFuZCByZWxhdGVkIGZ1bmNkdGlvbnMgYXJlIG1vdmVk
IHRvIFRyZWVTY29wZQorICAgICAgICAtIERvY3VtZW50OjpyZW1vdmVkTGFzdFJlZiBpcyBmYWN0
b3JlZCBvdXQgaW50byBUcmVlU2NvcGU6OnJlbW92ZWRMYXN0UmVmVG9TY29wZSgpLAorICAgICAg
ICAgIFRyZWVTY29wZTo6ZGlzcG9zZSgpIGFuZCBEb2N1ZW50OjpkaXNwb3NlKCkuIFNoYWRvd1Jv
b3QgYWxzbyBnb3QgaXRzIG93biBkaXNwb3NlKCkgaW1wbGVtZW50YXRpb24uCisgICAgICAgIC0g
TW92ZWQgZ3VhcmRSZWYoKSBhbmQgZ3VhcmREZXJlZigpIGNhbGxzIHRvIFRyZWVTY29wZSBhbmQg
Tm9kZS4KKyAgICAgICAgICBOb3RlIHRoYXQgdGhlcmUgYXJlIHR3byAiZ3VhcmRlZCIgVHJlZVNj
b3BlIHJlZmVyZW5jZXMuIE9uZSBpcworICAgICAgICAgIE5vZGU6Om1fdHJlZVNjb3BlIGFuZCBh
bm90aGVyIGlzIFRyZWVTY29wZTo6bV9wYXJlbnRUcmVlU2NvcGUuCisgICAgICAgICAgVGhlIGd1
YXJkZWQtcmVmIG1hbmFnZW1lbnQgaXMgbm93IGVuY2Fwc3VsYXRlZCBpbiB0aGVzZSB0d28gY2xh
c3Nlcy4KKyAgICAgICAgLSBJbnRyb2R1Y2VkIHNldFRyZWVTY29wZU9mVGhpc1Njb3BlKCkgd2hp
Y2ggc2V0IE5vZGU6Om1fdHJlZVNjb3BlIHdpdGhvdXQgY2hhbmluZyBzY29wZSdzIG1fZ3VhcmRS
ZWZDb3VudC4KKyAgICAgICAgICBUcmVlU2NvcGUgc3VibGFzc2VzIGluY2x1ZGluZyBEb2N1bWVu
dCBhbmQgU2hhZG93Um9vdCBuZWVkIHRoaXMgc2luY2UgdGhleSBzaG91bGQgbm90ICJndWFyZCIg
dGhlbXNlbHZlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIENvdmVyZWQgYnkgZXhpc3Rpbmcg
dGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OmRpc3Bvc2UpOiBFeHRyYWN0ZWQgZnJvbSByZW1vdmVkTGFzdFJlZigpCisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpO
b2RlOjppc1RyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5vZGU6OnNldFRyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpzZXRUcmVlU2Nv
cGVPZlRoaXNTY29wZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6Tm9kZSk6Cisg
ICAgICAgICogZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnRGcmFnbWVudDo6RG9jdW1lbnRGcmFnbWVudCk6IFJlbW92ZSBBU1NFUlQoKSBhbmQgbW92
ZSBpdCB0byAuLi4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZSk6
IC4uLiBoZXJlLCB0byBhbGxvdyBOVUxMIGRvY3VtZW50IGZyb20gU2hhZG93Um9vdC4KKyAgICAg
ICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjp+Tm9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpOb2RlOjpyZW1vdmVkTGFzdFJlZik6CisgICAgICAgICogZG9tL05vZGUu
aDoKKyAgICAgICAgKE5vZGUpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QpOiBQYXNzZWQgTlVMTCBkb2N1bWVu
dCB0byBzdXBlcmNsYXNzLiBUaGlzIGFsaWducyB3aGF0IERvY3VtZW50IGlzIGRvaW5nLgorICAg
ICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6ZGlzcG9zZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3Qp
OgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoU2FtZVNpemVBc1RyZWVT
Y29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OlRyZWVTY29wZSk6CisgICAgICAg
IChXZWJDb3JlOjpUcmVlU2NvcGU6On5UcmVlU2NvcGUpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmRpc3Bvc2UpOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlRyZWVTY29wZTo6c2V0UGFyZW50VHJlZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6
OlRyZWVTY29wZTo6ZGVsZXRpb25IYXNCZWd1bik6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2Nv
cGU6OmJlZ2luRGVsZXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpyZWZDb3Vu
dCk6IEFkZGVkLgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAgKFRyZWVTY29w
ZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6Omd1YXJkUmVmKTogUHVsbGVkIHVwIGZy
b20gRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6Omd1YXJkRGVyZWYpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6aGFzR3VhcmRSZWZDb3VudCk6IEFk
ZGVkIHRvIGhpZGUgbV9ndWFyZFJlZkNvdW50LgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3Bl
OjpkZWxldGlvbkhhc0JlZ3VuKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6
OmJlZ2luRGVsZXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6cmVt
b3ZlZExhc3RSZWZUb1Njb3BlKTogUHVsbGVkIHVwIGZyb20gRG9jdW1lbnQuCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUpOgorICAgICAgICAo
V2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6bW92ZU5vZGVUb05ld0RvY3VtZW50KToKKyAgICAg
ICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcDogQ2hhbmdlZCB0byBzZWUgc29tZSBk
ZWZpbnRpb25zIGluIERvY3VtZW50LmgKKwogMjAxMy0wMi0xOSAgS2VudGFybyBIYXJhICA8aGFy
YWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIg
cjE0MzMwNC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNjg0Mzg0ZDY1NDhiN2VjMjk1ODYyNDMz
NzY2YWI5YWYzOGY3ODQ4Ny4uMjljYWUxMDA5ZjM0MjViOTQ2ODQ5Y2Q0YjRiZDdmNWQ4YjJiZDU4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE0MDcsNyArMTQwNyw2IEBAIF9fWk5LN1dlYkNv
cmU0Tm9kZTExdGV4dENvbnRlbnRFYgogX19aTjdXZWJDb3JlNE5vZGUxMmluc2VydEJlZm9yZUVO
M1dURjEwUGFzc1JlZlB0cklTMF9FRVBTMF9SaWIKIF9fWk5LN1dlYkNvcmU0Tm9kZTEzb3duZXJE
b2N1bWVudEV2CiBfX1pOSzdXZWJDb3JlNE5vZGUxNGlzRGVzY2VuZGFudE9mRVBLUzBfCi1fX1pO
SzdXZWJDb3JlNE5vZGUxMWlzVHJlZVNjb3BlRXYKIF9fWk5LN1dlYkNvcmU0Tm9kZTE4Z2V0U3Vi
cmVzb3VyY2VVUkxzRVJOM1dURjExTGlzdEhhc2hTZXRJTlNfNEtVUkxFTG0yNTZFTlNfOEtVUkxI
YXNoRUVFCiBfX1pOSzdXZWJDb3JlNE5vZGUzMW51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRy
ZW5FdgogX19aTks3V2ViQ29yZTROb2RlOW5vZGVJbmRleEV2CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCA1NWI0Yzk4MjRhZjhjMTc3YTFjYmU3YWZlNzk3Njk0MTA4Y2VmMjZkLi5iZTA3ZDVj
NjhjNjQxYjYxMDA1MzEyMGMzMDdhZjUzODZhYjg5ZjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTQwOSw3ICs0MDksNiBAQCB1aW50NjRfdCBEb2N1bWVudDo6c19nbG9iYWxUcmVlVmVy
c2lvbiA9IDA7CiBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1
cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgOiBDb250YWluZXJOb2RlKDAsIENy
ZWF0ZURvY3VtZW50KQogICAgICwgVHJlZVNjb3BlKHRoaXMpCi0gICAgLCBtX2d1YXJkUmVmQ291
bnQoMCkKICAgICAsIG1fc3R5bGVSZXNvbHZlclRocm93YXdheVRpbWVyKHRoaXMsICZEb2N1bWVu
dDo6c3R5bGVSZXNvbHZlclRocm93YXdheVRpbWVyRmlyZWQpCiAgICAgLCBtX2xhc3RTdHlsZVJl
c29sdmVyQWNjZXNzVGltZSgwKQogICAgICwgbV9hY3RpdmVQYXJzZXJDb3VudCgwKQpAQCAtNDgx
LDggKzQ4MCw2IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwm
IHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICAsIG1fdGVtcGxhdGVEb2N1bWVu
dEhvc3QoMCkKICNlbmRpZgogewotICAgIHNldFRyZWVTY29wZSh0aGlzKTsKLQogICAgIG1fcHJp
bnRpbmcgPSBmYWxzZTsKICAgICBtX3BhZ2luYXRlZEZvclNjcmVlbiA9IGZhbHNlOwogCkBAIC01
ODIsNyArNTc5LDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAgQVNTRVJUKG1fcmFuZ2Vz
LmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKCFtX3N0eWxlUmVjYWxjVGltZXIuaXNBY3RpdmUoKSk7
CiAgICAgQVNTRVJUKCFtX3BhcmVudFRyZWVTY29wZSk7Ci0gICAgQVNTRVJUKCFtX2d1YXJkUmVm
Q291bnQpOworICAgIEFTU0VSVCghaGFzR3VhcmRSZWZDb3VudCgpKTsKIAogI2lmIEVOQUJMRShU
RU1QTEFURV9FTEVNRU5UKQogICAgIGlmIChtX3RlbXBsYXRlRG9jdW1lbnQpCkBAIC02NDksNjAg
KzY0Niw0MiBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKICAgICBJbnNwZWN0b3JDb3VudGVyczo6
ZGVjcmVtZW50Q291bnRlcihJbnNwZWN0b3JDb3VudGVyczo6RG9jdW1lbnRDb3VudGVyKTsKIH0K
IAotdm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYoKQordm9pZCBEb2N1bWVudDo6ZGlzcG9z
ZSgpCiB7Ci0gICAgQVNTRVJUKCFtX2RlbGV0aW9uSGFzQmVndW4pOwotICAgIGlmIChtX2d1YXJk
UmVmQ291bnQpIHsKLSAgICAgICAgLy8gSWYgcmVtb3ZpbmcgYSBjaGlsZCByZW1vdmVzIHRoZSBs
YXN0IHNlbGYtb25seSByZWYsIHdlIGRvbid0Ci0gICAgICAgIC8vIHdhbnQgdGhlIHNjb3BlIHRv
IGJlIGRlc3RydWN0ZWQgdW50aWwgYWZ0ZXIKLSAgICAgICAgLy8gcmVtb3ZlRGV0YWNoZWRDaGls
ZHJlbiByZXR1cm5zLCBzbyB3ZSBndWFyZCBvdXJzZWx2ZXMgd2l0aCBhbgotICAgICAgICAvLyBl
eHRyYSBzZWxmLW9ubHkgcmVmLgotICAgICAgICBndWFyZFJlZigpOwotCi0gICAgICAgIC8vIFdl
IG11c3QgbWFrZSBzdXJlIG5vdCB0byBiZSByZXRhaW5pbmcgYW55IG9mIG91ciBjaGlsZHJlbiB0
aHJvdWdoCi0gICAgICAgIC8vIHRoZXNlIGV4dHJhIHBvaW50ZXJzIG9yIHdlIHdpbGwgY3JlYXRl
IGEgcmVmZXJlbmNlIGN5Y2xlLgotICAgICAgICBtX2RvY1R5cGUgPSAwOwotICAgICAgICBtX2Zv
Y3VzZWROb2RlID0gMDsKLSAgICAgICAgbV9ob3Zlck5vZGUgPSAwOwotICAgICAgICBtX2FjdGl2
ZUVsZW1lbnQgPSAwOwotICAgICAgICBtX3RpdGxlRWxlbWVudCA9IDA7Ci0gICAgICAgIG1fZG9j
dW1lbnRFbGVtZW50ID0gMDsKLSAgICAgICAgbV9jb250ZXh0RmVhdHVyZXMgPSBDb250ZXh0RmVh
dHVyZXM6OmRlZmF1bHRTd2l0Y2goKTsKLSAgICAgICAgbV91c2VyQWN0aW9uRWxlbWVudHMuZG9j
dW1lbnREaWRSZW1vdmVMYXN0UmVmKCk7CisgICAgLy8gV2UgbXVzdCBtYWtlIHN1cmUgbm90IHRv
IGJlIHJldGFpbmluZyBhbnkgb2Ygb3VyIGNoaWxkcmVuIHRocm91Z2gKKyAgICAvLyB0aGVzZSBl
eHRyYSBwb2ludGVycyBvciB3ZSB3aWxsIGNyZWF0ZSBhIHJlZmVyZW5jZSBjeWNsZS4KKyAgICBt
X2RvY1R5cGUgPSAwOworICAgIG1fZm9jdXNlZE5vZGUgPSAwOworICAgIG1faG92ZXJOb2RlID0g
MDsKKyAgICBtX2FjdGl2ZUVsZW1lbnQgPSAwOworICAgIG1fdGl0bGVFbGVtZW50ID0gMDsKKyAg
ICBtX2RvY3VtZW50RWxlbWVudCA9IDA7CisgICAgbV9jb250ZXh0RmVhdHVyZXMgPSBDb250ZXh0
RmVhdHVyZXM6OmRlZmF1bHRTd2l0Y2goKTsKKyAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5kb2N1
bWVudERpZFJlbW92ZUxhc3RSZWYoKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAg
ICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQgPSAwOwotICAgICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50
U3RhY2suY2xlYXIoKTsKKyAgICBtX2Z1bGxTY3JlZW5FbGVtZW50ID0gMDsKKyAgICBtX2Z1bGxT
Y3JlZW5FbGVtZW50U3RhY2suY2xlYXIoKTsKICNlbmRpZgogCi0gICAgICAgIGRldGFjaFBhcnNl
cigpOworICAgIGRldGFjaFBhcnNlcigpOwogCi0gICAgICAgIC8vIHJlbW92ZURldGFjaGVkQ2hp
bGRyZW4oKSBkb2Vzbid0IGFsd2F5cyB1bnJlZ2lzdGVyIElEcywKLSAgICAgICAgLy8gc28gdGVh
ciBkb3duIHNjb3BlIGluZm9ybWF0aW9uIHVwZnJvbnQgdG8gYXZvaWQgaGF2aW5nIHN0YWxlIHJl
ZmVyZW5jZXMgaW4gdGhlIG1hcC4KLSAgICAgICAgZGVzdHJveVRyZWVTY29wZURhdGEoKTsKLSAg
ICAgICAgcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbigpOworICAgIC8vIHJlbW92ZURldGFjaGVkQ2hp
bGRyZW4oKSBkb2Vzbid0IGFsd2F5cyB1bnJlZ2lzdGVyIElEcywKKyAgICAvLyBzbyB0ZWFyIGRv
d24gc2NvcGUgaW5mb3JtYXRpb24gdXBmcm9udCB0byBhdm9pZCBoYXZpbmcgc3RhbGUgcmVmZXJl
bmNlcyBpbiB0aGUgbWFwLgorICAgIGRlc3Ryb3lUcmVlU2NvcGVEYXRhKCk7CisgICAgcmVtb3Zl
RGV0YWNoZWRDaGlsZHJlbigpOwogCi0gICAgICAgIG1fbWFya2Vycy0+ZGV0YWNoKCk7CisgICAg
bV9tYXJrZXJzLT5kZXRhY2goKTsKIAotICAgICAgICBtX2Nzc0NhbnZhc0VsZW1lbnRzLmNsZWFy
KCk7CisgICAgbV9jc3NDYW52YXNFbGVtZW50cy5jbGVhcigpOwogCiAjaWYgRU5BQkxFKFJFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FKQotICAgICAgICAvLyBGSVhNRTogY29uc2lkZXIgdXNpbmcgQWN0
aXZlRE9NT2JqZWN0LgotICAgICAgICBpZiAobV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIp
Ci0gICAgICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci0+Y2xlYXJEb2N1bWVu
dFBvaW50ZXIoKTsKLSAgICAgICAgbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY2xlYXIo
KTsKLSNlbmRpZgotCi0jaWZuZGVmIE5ERUJVRwotICAgICAgICBtX2luUmVtb3ZlZExhc3RSZWZG
dW5jdGlvbiA9IGZhbHNlOworICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01P
YmplY3QuCisgICAgaWYgKG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQorICAgICAgICBt
X3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKKyAg
ICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jbGVhcigpOwogI2VuZGlmCiAKLSAgICAg
ICAgZ3VhcmREZXJlZigpOwotICAgIH0gZWxzZSB7Ci0jaWZuZGVmIE5ERUJVRyAKLSAgICAgICAg
bV9kZWxldGlvbkhhc0JlZ3VuID0gdHJ1ZTsgCi0jZW5kaWYgCi0gICAgICAgIGRlbGV0ZSB0aGlz
OwotICAgIH0KKyAgICBUcmVlU2NvcGU6OmRpc3Bvc2UoKTsKIH0KIAogRWxlbWVudCogRG9jdW1l
bnQ6OmdldEVsZW1lbnRCeUlkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IDEyNjQzOGQ3MGVmMDE2MWJjMmFmZThmY2VhNzY4YTRiYzg3MDM3YWIu
LmZmMzNjYTNjNTM1YzlkZmZiODQ3NWVmNjc5ZTU0NGVjODgyYjlhOWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0yMjksMjkgKzIyOSw2IEBAIHB1YmxpYzoKICAgICB1c2luZyBDb250YWluZXJO
b2RlOjpyZWY7CiAgICAgdXNpbmcgQ29udGFpbmVyTm9kZTo6ZGVyZWY7CiAKLSAgICAvLyBOb2Rl
cyBiZWxvbmdpbmcgdG8gdGhpcyBkb2N1bWVudCBob2xkIGd1YXJkIHJlZmVyZW5jZXMgLQotICAg
IC8vIHRoZXNlIGFyZSBlbm91Z2ggdG8ga2VlcCB0aGUgZG9jdW1lbnQgZnJvbSBiZWluZyBkZXN0
cm95ZWQsIGJ1dAotICAgIC8vIG5vdCBlbm91Z2ggdG8ga2VlcCBpdCBmcm9tIHJlbW92aW5nIGl0
cyBjaGlsZHJlbi4gVGhpcyBhbGxvd3MgYQotICAgIC8vIG5vZGUgdGhhdCBvdXRsaXZlcyBpdHMg
ZG9jdW1lbnQgdG8gc3RpbGwgaGF2ZSBhIHZhbGlkIGRvY3VtZW50Ci0gICAgLy8gcG9pbnRlciB3
aXRob3V0IGludHJvZHVjaW5nIHJlZmVyZW5jZSBjeWNsZXMuCi0gICAgdm9pZCBndWFyZFJlZigp
Ci0gICAgewotICAgICAgICBBU1NFUlQoIW1fZGVsZXRpb25IYXNCZWd1bik7Ci0gICAgICAgICsr
bV9ndWFyZFJlZkNvdW50OwotICAgIH0KLQotICAgIHZvaWQgZ3VhcmREZXJlZigpCi0gICAgewot
ICAgICAgICBBU1NFUlQoIW1fZGVsZXRpb25IYXNCZWd1bik7Ci0gICAgICAgIC0tbV9ndWFyZFJl
ZkNvdW50OwotICAgICAgICBpZiAoIW1fZ3VhcmRSZWZDb3VudCAmJiAhcmVmQ291bnQoKSkgewot
I2lmbmRlZiBOREVCVUcKLSAgICAgICAgICAgIG1fZGVsZXRpb25IYXNCZWd1biA9IHRydWU7Ci0j
ZW5kaWYKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzOwotICAgICAgICB9Ci0gICAgfQotCiAgICAg
RWxlbWVudCogZ2V0RWxlbWVudEJ5SWQoY29uc3QgQXRvbWljU3RyaW5nJiBpZCkgY29uc3Q7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CkBAIC0xMjE3LDggKzExOTQsOCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBOb2RlOwogICAgIGZyaWVuZCBjbGFzcyBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNy
ZW1lbnRlcjsKIAotICAgIHZvaWQgcmVtb3ZlZExhc3RSZWYoKTsKLSAgICAKKyAgICB2aXJ0dWFs
IHZvaWQgZGlzcG9zZSgpIE9WRVJSSURFOworCiAgICAgdm9pZCBkZXRhY2hQYXJzZXIoKTsKIAog
ICAgIHR5cGVkZWYgdm9pZCAoKkFyZ3VtZW50c0NhbGxiYWNrKShjb25zdCBTdHJpbmcmIGtleVN0
cmluZywgY29uc3QgU3RyaW5nJiB2YWx1ZVN0cmluZywgRG9jdW1lbnQqLCB2b2lkKiBkYXRhKTsK
QEAgLTEyODYsOCArMTI2Myw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRMaXN0ZW5lclR5cGUo
TGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlwZSkgeyBtX2xpc3RlbmVyVHlwZXMgfD0gbGlzdGVuZXJU
eXBlOyB9CiAgICAgdm9pZCBhZGRNdXRhdGlvbkV2ZW50TGlzdGVuZXJUeXBlSWZFbmFibGVkKExp
c3RlbmVyVHlwZSk7CiAKLSAgICBpbnQgbV9ndWFyZFJlZkNvdW50OwotCiAgICAgdm9pZCBzdHls
ZVJlc29sdmVyVGhyb3dhd2F5VGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qKTsKICAgICBUaW1l
cjxEb2N1bWVudD4gbV9zdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXI7CiAgICAgZG91YmxlIG1f
bGFzdFN0eWxlUmVzb2x2ZXJBY2Nlc3NUaW1lOwpAQCAtMTU5Niw2ICsxNTcxLDI1IEBAIGlubGlu
ZSBib29sIE5vZGU6OmlzRG9jdW1lbnROb2RlKCkgY29uc3QKICAgICByZXR1cm4gdGhpcyA9PSBk
b2N1bWVudEludGVybmFsKCk7CiB9CiAKK2lubGluZSBib29sIE5vZGU6OmlzVHJlZVNjb3BlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gdHJlZVNjb3BlKCktPnJvb3ROb2RlKCkgPT0gdGhpczsKK30K
KworaW5saW5lIHZvaWQgTm9kZTo6c2V0VHJlZVNjb3BlKFRyZWVTY29wZSogc2NvcGUpCit7Cisg
ICAgQVNTRVJUKCFpc1RyZWVTY29wZSgpKTsKKyAgICBzY29wZS0+Z3VhcmRSZWYoKTsKKyAgICBt
X3RyZWVTY29wZS0+Z3VhcmREZXJlZigpOworICAgIG1fdHJlZVNjb3BlID0gc2NvcGU7Cit9CisK
K2lubGluZSB2b2lkIE5vZGU6OnNldFRyZWVTY29wZU9mVGhpc1Njb3BlKFRyZWVTY29wZSogc2Nv
cGUpCit7CisgICAgQVNTRVJUKHNjb3BlLT5yb290Tm9kZSgpID09IHRoaXMgfHwgc2NvcGUgPT0g
VHJlZVNjb3BlOjpub0RvY3VtZW50SW5zdGFuY2UoKSk7CisgICAgbV90cmVlU2NvcGUgPSBzY29w
ZTsKK30KKwogaW5saW5lIE5vZGU6Ok5vZGUoRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rp
b25UeXBlIHR5cGUpCiAgICAgOiBtX25vZGVGbGFncyh0eXBlKQogICAgICwgbV9wYXJlbnRPclNo
YWRvd0hvc3ROb2RlKDApCkBAIC0xNjAzLDEwICsxNTk3LDkgQEAgaW5saW5lIE5vZGU6Ok5vZGUo
RG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25UeXBlIHR5cGUpCiAgICAgLCBtX3ByZXZp
b3VzKDApCiAgICAgLCBtX25leHQoMCkKIHsKLSAgICBpZiAoZG9jdW1lbnQpCi0gICAgICAgIGRv
Y3VtZW50LT5ndWFyZFJlZigpOwotICAgIGVsc2UKKyAgICBpZiAoIW1fdHJlZVNjb3BlKQogICAg
ICAgICBtX3RyZWVTY29wZSA9IFRyZWVTY29wZTo6bm9Eb2N1bWVudEluc3RhbmNlKCk7CisgICAg
bV90cmVlU2NvcGUtPmd1YXJkUmVmKCk7CiAKICNpZiAhZGVmaW5lZChOREVCVUcpIHx8IChkZWZp
bmVkKERVTVBfTk9ERV9TVEFUSVNUSUNTKSAmJiBEVU1QX05PREVfU1RBVElTVElDUykKICAgICB0
cmFja0ZvckRlYnVnZ2luZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3Bw
CmluZGV4IDg1MDE1YjJmNGFhZWQ3OTJkNTVlNTMwNzQ0YTRlZDEzYjUyN2RkNmYuLmU2NjAyNDhj
NTU2OGUyZDEwYWE3ZWNjODRmNTQ5NmIzNzU4NzE5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRGcmFnbWVudC5jcHAKQEAgLTM0LDExICszNCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBEb2N1bWVudEZyYWdtZW50OjpEb2N1bWVudEZyYWdtZW50KERvY3VtZW50KiBkb2N1bWVudCwg
Q29uc3RydWN0aW9uVHlwZSBjb25zdHJ1Y3Rpb25UeXBlKQogICAgIDogQ29udGFpbmVyTm9kZShk
b2N1bWVudCwgY29uc3RydWN0aW9uVHlwZSkKIHsKLSAgICBBU1NFUlQoZG9jdW1lbnQpOwogfQog
CiBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShE
b2N1bWVudCogZG9jdW1lbnQpCiB7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IERvY3VtZW50RnJhZ21lbnQoZG9jdW1lbnQsIE5vZGU6OkNyZWF0ZURvY3Vt
ZW50RnJhZ21lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGU3YzQ2NTAxZDIxOWExZDQ4
ZGI4YmI5Y2MwZDMwZGNhM2Q5OWVjMzQuLjU2MWZkNDMwMWJkM2IxNzQ5MDgyNzE4NDA2OGIyZjlh
N2E5MjM5NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTQ0Miw4ICs0NDIsNyBAQCBOb2RlOjp+Tm9k
ZSgpCiAgICAgaWYgKG1fbmV4dCkKICAgICAgICAgbV9uZXh0LT5zZXRQcmV2aW91c1NpYmxpbmco
MCk7CiAKLSAgICBpZiAoZG9jKQotICAgICAgICBkb2MtPmd1YXJkRGVyZWYoKTsKKyAgICBtX3Ry
ZWVTY29wZS0+Z3VhcmREZXJlZigpOwogCiAgICAgSW5zcGVjdG9yQ291bnRlcnM6OmRlY3JlbWVu
dENvdW50ZXIoSW5zcGVjdG9yQ291bnRlcnM6Ok5vZGVDb3VudGVyKTsKIH0KQEAgLTg5MiwxMSAr
ODkxLDYgQEAgYm9vbCBOb2RlOjppc0ZvY3VzYWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLWJvb2wgTm9kZTo6aXNUcmVlU2NvcGUoKSBjb25zdAotewotICAgIHJldHVybiB0cmVl
U2NvcGUoKS0+cm9vdE5vZGUoKSA9PSB0aGlzOwotfQotCiBib29sIE5vZGU6OmlzS2V5Ym9hcmRG
b2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzRm9jdXNhYmxl
KCkgJiYgdGFiSW5kZXgoKSA+PSAwOwpAQCAtMjU2OCw4ICsyNTYyLDggQEAgdm9pZCBOb2RlOjpy
ZW1vdmVkTGFzdFJlZigpCiAgICAgLy8gQW4gZXhwbGljaXQgY2hlY2sgZm9yIERvY3VtZW50IGhl
cmUgaXMgYmV0dGVyIHRoYW4gYSB2aXJ0dWFsIGZ1bmN0aW9uIHNpbmNlIGl0IGlzCiAgICAgLy8g
ZmFzdGVyIGZvciBub24tRG9jdW1lbnQgbm9kZXMsIGFuZCBiZWNhdXNlIHRoZSBjYWxsIHRvIHJl
bW92ZWRMYXN0UmVmIHRoYXQgaXMgaW5saW5lZAogICAgIC8vIGF0IGFsbCBkZXJlZiBjYWxsIHNp
dGVzIGlzIHNtYWxsZXIgaWYgaXQncyBhIG5vbi12aXJ0dWFsIGZ1bmN0aW9uLgotICAgIGlmIChp
c0RvY3VtZW50Tm9kZSgpKSB7Ci0gICAgICAgIHN0YXRpY19jYXN0PERvY3VtZW50Kj4odGhpcykt
PnJlbW92ZWRMYXN0UmVmKCk7CisgICAgaWYgKGlzVHJlZVNjb3BlKCkpIHsKKyAgICAgICAgdHJl
ZVNjb3BlKCktPnJlbW92ZWRMYXN0UmVmVG9TY29wZSgpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogI2lmbmRlZiBOREVCVUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGE4MzZiZjA2YzcwNmUwNGMzNjIzMTcx
Y2FhNDFiNmNjN2QwMWRmZGQuLmRlYTU1N2QzOTZmN2Y1ZGM0YTQ3ZTc4OWY2N2U5ZmIzNjM1MTky
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaApAQCAtNzY5LDcgKzc2OSw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lk
IHNldEhhc0N1c3RvbVN0eWxlQ2FsbGJhY2tzKCkgeyBzZXRGbGFnKHRydWUsIEhhc0N1c3RvbVN0
eWxlQ2FsbGJhY2tzRmxhZyk7IH0KIAogICAgIERvY3VtZW50KiBkb2N1bWVudEludGVybmFsKCkg
Y29uc3QgeyByZXR1cm4gdHJlZVNjb3BlKCktPmRvY3VtZW50U2NvcGUoKTsgfQotICAgIHZvaWQg
c2V0VHJlZVNjb3BlKFRyZWVTY29wZSogc2NvcGUpIHsgbV90cmVlU2NvcGUgPSBzY29wZTsgfQor
ICAgIHZvaWQgc2V0VHJlZVNjb3BlKFRyZWVTY29wZSopOworICAgIHZvaWQgc2V0VHJlZVNjb3Bl
T2ZUaGlzU2NvcGUoVHJlZVNjb3BlKik7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFRy
ZWVTaGFyZWQ8Tm9kZT47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggYjRmMjQxOTU1
M2M3OTNmZDkwYjUyZmIwMmJkOGI4ZDg5MTllNGIzMi4uYjhjM2VmZjE3OTBiMDQ5Mzc0NWRjMTcx
ZTU3M2FiOTZlMWQ1NDg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtNTIsNyAr
NTIsNyBAQCBlbnVtIFNoYWRvd1Jvb3RVc2FnZU9yaWdpblR5cGUgewogfTsKIAogU2hhZG93Um9v
dDo6U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQsIFNoYWRvd1Jvb3RUeXBlIHR5cGUpCi0g
ICAgOiBEb2N1bWVudEZyYWdtZW50KGRvY3VtZW50LCBDcmVhdGVTaGFkb3dSb290KQorICAgIDog
RG9jdW1lbnRGcmFnbWVudCgwLCBDcmVhdGVTaGFkb3dSb290KQogICAgICwgVHJlZVNjb3BlKHRo
aXMsIGRvY3VtZW50KQogICAgICwgbV9wcmV2KDApCiAgICAgLCBtX25leHQoMCkKQEAgLTYzLDcg
KzYzLDYgQEAgU2hhZG93Um9vdDo6U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQsIFNoYWRv
d1Jvb3RUeXBlIHR5cGUpCiAgICAgLCBtX3JlZ2lzdGVyZWRXaXRoUGFyZW50U2hhZG93Um9vdChm
YWxzZSkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwotICAgIHNldFRyZWVTY29wZSh0aGlzKTsK
IAogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQogICAgIGlmICh0eXBlID09IFNoYWRvd1Jvb3Q6OkF1
dGhvclNoYWRvd1Jvb3QpIHsKQEAgLTg5LDYgKzg4LDEyIEBAIFNoYWRvd1Jvb3Q6On5TaGFkb3dS
b290KCkKICAgICAgICAgY2xlYXJSYXJlRGF0YSgpOwogfQogCit2b2lkIFNoYWRvd1Jvb3Q6OmRp
c3Bvc2UoKQoreworICAgIHJlbW92ZURldGFjaGVkQ2hpbGRyZW4oKTsKKyAgICBUcmVlU2NvcGU6
OmRpc3Bvc2UoKTsKK30KKwogUGFzc1JlZlB0cjxOb2RlPiBTaGFkb3dSb290OjpjbG9uZU5vZGUo
Ym9vbCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSBEQVRBX0NMT05FX0VSUjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IDJkMWNmMjNiMWViYmI2ZmQ0NTcyZTBmODkwODliOWZm
OTY0ZDdjNmQuLmRiYzcxZGMwYTZjZDYyOGUwM2UwOTQ1MDYxZWRjYTY1NjMyMDk5M2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgU2hh
ZG93Um9vdChEb2N1bWVudCosIFNoYWRvd1Jvb3RUeXBlKTsKICAgICB2aXJ0dWFsIH5TaGFkb3dS
b290KCk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBi
ZWZvcmVDaGFuZ2UsIE5vZGUqIGFmdGVyQ2hhbmdlLCBpbnQgY2hpbGRDb3VudERlbHRhKSBPVkVS
UklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCAwM2I0MmZjZTg1ODY4NjJjYzQ4
OTliYjUxMjNlZjk0NTVlOWM1ZTBlLi5mOTI5ZjI5MWU1Nzk4YjQ0NmQ1NjBiYjc2Nzc2NGUxYmZl
MTNmZTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtNTksNiArNTksNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgU2FtZVNpemVBc1RyZWVTY29wZSB7CiAgICAgdmlydHVh
bCB+U2FtZVNpemVBc1RyZWVTY29wZSgpOwogICAgIHZvaWQqIHBvaW50ZXJzWzhdOworICAgIGlu
dCBpbnRzWzFdOwogfTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFRyZWVTY29wZSkgPT0gc2l6
ZW9mKFNhbWVTaXplQXNUcmVlU2NvcGUpLCB0cmVlc2NvcGVfc2hvdWxkX3N0YXlfc21hbGwpOwpA
QCAtNjksMzUgKzcwLDU0IEBAIFRyZWVTY29wZTo6VHJlZVNjb3BlKENvbnRhaW5lck5vZGUqIHJv
b3ROb2RlLCBEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBtX3Jvb3ROb2RlKHJvb3ROb2RlKQog
ICAgICwgbV9kb2N1bWVudFNjb3BlKGRvY3VtZW50KQogICAgICwgbV9wYXJlbnRUcmVlU2NvcGUo
ZG9jdW1lbnQpCisgICAgLCBtX2d1YXJkUmVmQ291bnQoMCkKICAgICAsIG1faWRUYXJnZXRPYnNl
cnZlclJlZ2lzdHJ5KElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeTo6Y3JlYXRlKCkpCiB7CiAgICAg
QVNTRVJUKHJvb3ROb2RlKTsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwogICAgIEFTU0VSVChyb290
Tm9kZSAhPSBkb2N1bWVudCk7CisgICAgbV9wYXJlbnRUcmVlU2NvcGUtPmd1YXJkUmVmKCk7Cisg
ICAgbV9yb290Tm9kZS0+c2V0VHJlZVNjb3BlT2ZUaGlzU2NvcGUodGhpcyk7CiB9CiAKIFRyZWVT
Y29wZTo6VHJlZVNjb3BlKERvY3VtZW50KiBkb2N1bWVudCkKICAgICA6IG1fcm9vdE5vZGUoZG9j
dW1lbnQpCiAgICAgLCBtX2RvY3VtZW50U2NvcGUoZG9jdW1lbnQpCiAgICAgLCBtX3BhcmVudFRy
ZWVTY29wZSgwKQorICAgICwgbV9ndWFyZFJlZkNvdW50KDApCiAgICAgLCBtX2lkVGFyZ2V0T2Jz
ZXJ2ZXJSZWdpc3RyeShJZFRhcmdldE9ic2VydmVyUmVnaXN0cnk6OmNyZWF0ZSgpKQogewogICAg
IEFTU0VSVChkb2N1bWVudCk7CisgICAgbV9yb290Tm9kZS0+c2V0VHJlZVNjb3BlT2ZUaGlzU2Nv
cGUodGhpcyk7CiB9CiAKIFRyZWVTY29wZTo6VHJlZVNjb3BlKCkKICAgICA6IG1fcm9vdE5vZGUo
MCkKICAgICAsIG1fZG9jdW1lbnRTY29wZSgwKQogICAgICwgbV9wYXJlbnRUcmVlU2NvcGUoMCkK
KyAgICAsIG1fZ3VhcmRSZWZDb3VudCgwKQogewogfQogCiBUcmVlU2NvcGU6On5UcmVlU2NvcGUo
KQogeworICAgIEFTU0VSVCghbV9ndWFyZFJlZkNvdW50KTsKKyAgICBtX3Jvb3ROb2RlLT5zZXRU
cmVlU2NvcGVPZlRoaXNTY29wZShub0RvY3VtZW50SW5zdGFuY2UoKSk7CisKICAgICBpZiAobV9z
ZWxlY3Rpb24pIHsKICAgICAgICAgbV9zZWxlY3Rpb24tPmNsZWFyVHJlZVNjb3BlKCk7CiAgICAg
ICAgIG1fc2VsZWN0aW9uID0gMDsKICAgICB9CisKKyAgICBpZiAobV9wYXJlbnRUcmVlU2NvcGUp
CisgICAgICAgIG1fcGFyZW50VHJlZVNjb3BlLT5ndWFyZERlcmVmKCk7Cit9CisKK3ZvaWQgVHJl
ZVNjb3BlOjpkaXNwb3NlKCkKK3sKKyNpZm5kZWYgTkRFQlVHCisgICAgcm9vdE5vZGUoKS0+bV9p
blJlbW92ZWRMYXN0UmVmRnVuY3Rpb24gPSBmYWxzZTsKKyNlbmRpZgogfQogCiB2b2lkIFRyZWVT
Y29wZTo6ZGVzdHJveVRyZWVTY29wZURhdGEoKQpAQCAtMTIwLDYgKzE0MCw5IEBAIHZvaWQgVHJl
ZVNjb3BlOjpzZXRQYXJlbnRUcmVlU2NvcGUoVHJlZVNjb3BlKiBuZXdQYXJlbnRTY29wZSkKICAg
ICAvLyBFdmVyeSBzY29wZSBvdGhlciB0aGFuIGRvY3VtZW50IG5lZWRzIGEgcGFyZW50IHNjb3Bl
LgogICAgIEFTU0VSVChuZXdQYXJlbnRTY29wZSk7CiAKKyAgICBuZXdQYXJlbnRTY29wZS0+Z3Vh
cmRSZWYoKTsKKyAgICBpZiAobV9wYXJlbnRUcmVlU2NvcGUpCisgICAgICAgIG1fcGFyZW50VHJl
ZVNjb3BlLT5ndWFyZERlcmVmKCk7CiAgICAgbV9wYXJlbnRUcmVlU2NvcGUgPSBuZXdQYXJlbnRT
Y29wZTsKICAgICBzZXREb2N1bWVudFNjb3BlKG5ld1BhcmVudFNjb3BlLT5kb2N1bWVudFNjb3Bl
KCkpOwogfQpAQCAtNDE1LDQgKzQzOCwyNCBAQCBUcmVlU2NvcGUqIGNvbW1vblRyZWVTY29wZShO
b2RlKiBub2RlQSwgTm9kZSogbm9kZUIpCiAgICAgcmV0dXJuIHRyZWVTY29wZXNBW2luZGV4QV0g
PT0gdHJlZVNjb3Blc0JbaW5kZXhCXSA/IHRyZWVTY29wZXNBW2luZGV4QV0gOiAwOwogfQogCisj
aWZuZGVmIE5ERUJVRworYm9vbCBUcmVlU2NvcGU6OmRlbGV0aW9uSGFzQmVndW4oKQoreworICAg
IHJldHVybiByb290Tm9kZSgpICYmIHJvb3ROb2RlKCktPm1fZGVsZXRpb25IYXNCZWd1bjsKK30K
Kwordm9pZCBUcmVlU2NvcGU6OmJlZ2luRGVsZXRpb24oKQoreworICAgIEFTU0VSVCh0aGlzICE9
IG5vRG9jdW1lbnRJbnN0YW5jZSgpKTsKKyAgICByb290Tm9kZSgpLT5tX2RlbGV0aW9uSGFzQmVn
dW4gPSB0cnVlOworfQorI2VuZGlmCisKK2ludCBUcmVlU2NvcGU6OnJlZkNvdW50KCkgY29uc3QK
K3sKKyAgICBpZiAoTm9kZSogcm9vdCA9IHJvb3ROb2RlKCkpCisgICAgICAgIHJldHVybiByb290
LT5yZWZDb3VudCgpOworICAgIHJldHVybiAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVHJlZVNjb3BlLmgKaW5kZXggYmU1MDBmMTA2NGM4Yjc4MTQ5Y2RjZGVkOTI4MTkx
YjNmNTZiM2VmMS4uOWZlY2ZjYWU2MjE0Mjk2OTljYTU4NzE2Y2E4NDE5MGZlNzhkODZhNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlU2NvcGUuaApAQCAtMTA0LDEwICsxMDQsMzQgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gJmluc3RhbmNlOwogICAgIH0KIAorICAgIC8vIE5vZGVzIGJlbG9uZ2luZyB0byB0
aGlzIGRvY3VtZW50IGhvbGQgZ3VhcmQgcmVmZXJlbmNlcyAtCisgICAgLy8gdGhlc2UgYXJlIGVu
b3VnaCB0byBrZWVwIHRoZSBkb2N1bWVudCBmcm9tIGJlaW5nIGRlc3Ryb3llZCwgYnV0CisgICAg
Ly8gbm90IGVub3VnaCB0byBrZWVwIGl0IGZyb20gcmVtb3ZpbmcgaXRzIGNoaWxkcmVuLiBUaGlz
IGFsbG93cyBhCisgICAgLy8gbm9kZSB0aGF0IG91dGxpdmVzIGl0cyBkb2N1bWVudCB0byBzdGls
bCBoYXZlIGEgdmFsaWQgZG9jdW1lbnQKKyAgICAvLyBwb2ludGVyIHdpdGhvdXQgaW50cm9kdWNp
bmcgcmVmZXJlbmNlIGN5Y2xlcy4KKyAgICB2b2lkIGd1YXJkUmVmKCkKKyAgICB7CisgICAgICAg
IEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICAgICAgKyttX2d1YXJkUmVmQ291bnQ7
CisgICAgfQorCisgICAgdm9pZCBndWFyZERlcmVmKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCgh
ZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICAgICAgLS1tX2d1YXJkUmVmQ291bnQ7CisgICAgICAg
IGlmICghbV9ndWFyZFJlZkNvdW50ICYmICFyZWZDb3VudCgpICYmIHRoaXMgIT0gbm9Eb2N1bWVu
dEluc3RhbmNlKCkpIHsKKyAgICAgICAgICAgIGJlZ2luRGVsZXRpb24oKTsKKyAgICAgICAgICAg
IGRlbGV0ZSB0aGlzOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCByZW1vdmVkTGFzdFJl
ZlRvU2NvcGUoKTsKKwogcHJvdGVjdGVkOgogICAgIFRyZWVTY29wZShDb250YWluZXJOb2RlKiwg
RG9jdW1lbnQqKTsKICAgICBUcmVlU2NvcGUoRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5UcmVl
U2NvcGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpOwogCiAgICAgdm9pZCBkZXN0cm95
VHJlZVNjb3BlRGF0YSgpOwogICAgIHZvaWQgY2xlYXJEb2N1bWVudFNjb3BlKCk7CkBAIC0xMTgs
MTIgKzE0MiwyNCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fZG9jdW1lbnRTY29wZSA9IGRvY3Vt
ZW50OwogICAgIH0KIAorICAgIGJvb2wgaGFzR3VhcmRSZWZDb3VudCgpIGNvbnN0IHsgcmV0dXJu
IG1fZ3VhcmRSZWZDb3VudDsgfQorCiBwcml2YXRlOgogICAgIFRyZWVTY29wZSgpOwogCisgICAg
aW50IHJlZkNvdW50KCkgY29uc3Q7CisjaWZuZGVmIE5ERUJVRworICAgIGJvb2wgZGVsZXRpb25I
YXNCZWd1bigpOworICAgIHZvaWQgYmVnaW5EZWxldGlvbigpOworI2Vsc2UKKyAgICBib29sIGRl
bGV0aW9uSGFzQmVndW4oKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgYmVnaW5EZWxldGlv
bigpIHsgfQorI2VuZGlmCisKICAgICBDb250YWluZXJOb2RlKiBtX3Jvb3ROb2RlOwogICAgIERv
Y3VtZW50KiBtX2RvY3VtZW50U2NvcGU7CiAgICAgVHJlZVNjb3BlKiBtX3BhcmVudFRyZWVTY29w
ZTsKKyAgICBpbnQgbV9ndWFyZFJlZkNvdW50OwogCiAgICAgT3duUHRyPERvY3VtZW50T3JkZXJl
ZE1hcD4gbV9lbGVtZW50c0J5SWQ7CiAgICAgT3duUHRyPERvY3VtZW50T3JkZXJlZE1hcD4gbV9p
bWFnZU1hcHNCeU5hbWU7CkBAIC0xNDUsNiArMTgxLDIzIEBAIGlubGluZSBib29sIFRyZWVTY29w
ZTo6Y29udGFpbnNNdWx0aXBsZUVsZW1lbnRzV2l0aElkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQp
IGNvCiAgICAgcmV0dXJuIG1fZWxlbWVudHNCeUlkICYmIG1fZWxlbWVudHNCeUlkLT5jb250YWlu
c011bHRpcGxlKGlkLmltcGwoKSk7CiB9CiAKK2lubGluZSB2b2lkIFRyZWVTY29wZTo6cmVtb3Zl
ZExhc3RSZWZUb1Njb3BlKCkKK3sKKyAgICBBU1NFUlQoIWRlbGV0aW9uSGFzQmVndW4oKSk7Cisg
ICAgaWYgKGhhc0d1YXJkUmVmQ291bnQoKSkgeworICAgICAgICAvLyBJZiByZW1vdmluZyBhIGNo
aWxkIHJlbW92ZXMgdGhlIGxhc3Qgc2VsZi1vbmx5IHJlZiwgd2UgZG9uJ3QKKyAgICAgICAgLy8g
d2FudCB0aGUgc2NvcGUgdG8gYmUgZGVzdHJ1Y3RlZCB1bnRpbCBhZnRlcgorICAgICAgICAvLyBy
ZW1vdmVEZXRhY2hlZENoaWxkcmVuIHJldHVybnMsIHNvIHdlIGd1YXJkIG91cnNlbHZlcyB3aXRo
IGFuCisgICAgICAgIC8vIGV4dHJhIHNlbGYtb25seSByZWYuCisgICAgICAgIGd1YXJkUmVmKCk7
CisgICAgICAgIGRpc3Bvc2UoKTsKKyAgICAgICAgZ3VhcmREZXJlZigpOworICAgIH0gZWxzZSB7
CisgICAgICAgIGJlZ2luRGVsZXRpb24oKTsKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQor
fQorCiBOb2RlKiBub2RlRnJvbVBvaW50KERvY3VtZW50KiwgaW50IHgsIGludCB5LCBMYXlvdXRQ
b2ludCogbG9jYWxQb2ludCA9IDApOwogVHJlZVNjb3BlKiBjb21tb25UcmVlU2NvcGUoTm9kZSos
IE5vZGUqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCmluZGV4IDQx
YmZkMjU2Y2M0YjVlNWYzMTcxOTUxOGJlMWIzMDg5NWU4NThkMTAuLjRlOTA1ZDI1Y2FiOWQ5YWE3
MTEwMGQ4MTNlMDNiNDk3NzA5ZmMyYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGVBZG9wdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRv
cHRlci5jcHAKQEAgLTQwLDYgKzQwLDggQEAgdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJl
ZVRvTmV3U2NvcGUoTm9kZSogcm9vdCkgY29uc3QKIHsKICAgICBBU1NFUlQobmVlZHNTY29wZUNo
YW5nZSgpKTsKIAorICAgIG1fb2xkU2NvcGUtPmd1YXJkUmVmKCk7CisKICAgICAvLyBJZiBhbiBl
bGVtZW50IGlzIG1vdmVkIGZyb20gYSBkb2N1bWVudCBhbmQgdGhlbiBldmVudHVhbGx5IGJhY2sg
YWdhaW4gdGhlIGNvbGxlY3Rpb24gY2FjaGUgZm9yCiAgICAgLy8gdGhhdCBlbGVtZW50IG1heSBj
b250YWluIHN0YWxlIGRhdGEgYXMgY2hhbmdlcyBtYWRlIHRvIGl0IHdpbGwgaGF2ZSB1cGRhdGVk
IHRoZSBET01UcmVlVmVyc2lvbgogICAgIC8vIG9mIHRoZSBkb2N1bWVudCBpdCB3YXMgbW92ZWQg
dG8uIEJ5IGluY3JlYXNpbmcgdGhlIERPTVRyZWVWZXJzaW9uIG9mIHRoZSBkb25hdGluZyBkb2N1
bWVudCBoZXJlCkBAIC03Niw2ICs3OCw4IEBAIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRy
ZWVUb05ld1Njb3BlKE5vZGUqIHJvb3QpIGNvbnN0CiAgICAgICAgICAgICAgICAgbW92ZVRyZWVU
b05ld0RvY3VtZW50KHNoYWRvdywgb2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKICAgICAgICAg
fQogICAgIH0KKworICAgIG1fb2xkU2NvcGUtPmd1YXJkRGVyZWYoKTsKIH0KIAogdm9pZCBUcmVl
U2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3RG9jdW1lbnQoTm9kZSogcm9vdCwgRG9jdW1lbnQq
IG9sZERvY3VtZW50LCBEb2N1bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0CkBAIC0xMDksNyArMTEz
LDYgQEAgaW5saW5lIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZU5vZGVUb05ld0RvY3VtZW50
KE5vZGUqIG5vZGUsIERvY3VtZW50KiBvbGREb2MKICAgICAgICAgICAgIHJhcmVEYXRhLT5ub2Rl
TGlzdHMoKS0+YWRvcHREb2N1bWVudChvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQpOwogICAgIH0K
IAotICAgIG5ld0RvY3VtZW50LT5ndWFyZFJlZigpOwogICAgIGlmIChvbGREb2N1bWVudCkKICAg
ICAgICAgb2xkRG9jdW1lbnQtPm1vdmVOb2RlSXRlcmF0b3JzVG9OZXdEb2N1bWVudChub2RlLCBu
ZXdEb2N1bWVudCk7CiAKQEAgLTEyMyw5ICsxMjYsNiBAQCBpbmxpbmUgdm9pZCBUcmVlU2NvcGVB
ZG9wdGVyOjptb3ZlTm9kZVRvTmV3RG9jdW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQqIG9sZERv
YwogCiAgICAgbm9kZS0+ZGlkTW92ZVRvTmV3RG9jdW1lbnQob2xkRG9jdW1lbnQpOwogICAgIEFT
U0VSVChkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCk7Ci0gICAgCi0gICAgaWYgKG9sZERv
Y3VtZW50KQotICAgICAgICBvbGREb2N1bWVudC0+Z3VhcmREZXJlZigpOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCmluZGV4IDBlMWQzMDU4
OTIyODM5ZmZlYWY5MmZkNmJiNWQxNGUxMGYzMTNlNTQuLmRhYjUzNWVjNTYzODczYmI0NWQxYTA3
ZTJhMjYyYmFkNmY2OTQ0YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVt
b3ZlTm9kZUNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9k
ZUNvbW1hbmQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiUmVtb3ZlTm9kZUNvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189268</attachid>
            <date>2013-02-20 02:15:43 -0800</date>
            <delta_ts>2013-02-20 18:40:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109777-20130220191204.patch</filename>
            <type>text/plain</type>
            <size>23608</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NmMjdlOGYzZDY5M2Zj
Zjk1N2MzMjdiZjAxZGQ1NDZiYWZjYWRhOC4uZjEwZjY3MDVmYjExNWRhNmEwNmUxMzRhNDE1MmVh
YzMxZmNiZGJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEzLTAyLTE5ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGd1YXJkUmVmKCkgYW5kIGd1YXJkRGVyZWYoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgbW92ZXMgbV9ndWFyZFJlZkNvdW50
IGZyb20gRG9jdW1lbnQgdG8gVHJlZVNjb3BlLAorICAgICAgICB3aGljaCBhbGxvd3MgU2hhZG93
Um9vdCB0byBiZSBndWFyZGVkIGJ5IGd1YXJkUmVmKCkgbWVjaGFuaXNtIGFzCisgICAgICAgIERv
Y3VtZW50LiBBZnRlciByMTM3NTI0LCBOb2RlIHJlZmVyZXMgVHJlZVNjb3BlIGluc3RlYWQgb2YK
KyAgICAgICAgRG9jdW1lbnQuIFRoaXMgaXMgbmF0dXJhbCBjb25zZXF1ZW5jZSBvZiB0aGUgY2hh
bmdlOiBJdCBubyBsb25nZXIKKyAgICAgICAgbWFrZXMgc2Vuc2UgdG8gZ3VhcmRSZWYoKSBEb2N1
bWVudCBwb2ludGVyIGZyb20gTm9kZS4KKworICAgICAgICBEZXRhaWw6CisKKyAgICAgICAgLSBE
b2N1bWVudDo6bV9ndWFyZFJlZkNvdW50IGFuZCByZWxhdGVkIGZ1bmNkdGlvbnMgYXJlIG1vdmVk
IHRvIFRyZWVTY29wZQorICAgICAgICAtIERvY3VtZW50OjpyZW1vdmVkTGFzdFJlZiBpcyBmYWN0
b3JlZCBvdXQgaW50byBUcmVlU2NvcGU6OnJlbW92ZWRMYXN0UmVmVG9TY29wZSgpLAorICAgICAg
ICAgIFRyZWVTY29wZTo6ZGlzcG9zZSgpIGFuZCBEb2N1ZW50OjpkaXNwb3NlKCkuIFNoYWRvd1Jv
b3QgYWxzbyBnb3QgaXRzIG93biBkaXNwb3NlKCkgaW1wbGVtZW50YXRpb24uCisgICAgICAgIC0g
TW92ZWQgZ3VhcmRSZWYoKSBhbmQgZ3VhcmREZXJlZigpIGNhbGxzIHRvIFRyZWVTY29wZSBhbmQg
Tm9kZS4KKyAgICAgICAgICBOb3RlIHRoYXQgdGhlcmUgYXJlIHR3byAiZ3VhcmRlZCIgVHJlZVNj
b3BlIHJlZmVyZW5jZXMuIE9uZSBpcworICAgICAgICAgIE5vZGU6Om1fdHJlZVNjb3BlIGFuZCBh
bm90aGVyIGlzIFRyZWVTY29wZTo6bV9wYXJlbnRUcmVlU2NvcGUuCisgICAgICAgICAgVGhlIGd1
YXJkZWQtcmVmIG1hbmFnZW1lbnQgaXMgbm93IGVuY2Fwc3VsYXRlZCBpbiB0aGVzZSB0d28gY2xh
c3Nlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMu
CisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRp
c3Bvc2UpOiBFeHRyYWN0ZWQgZnJvbSByZW1vdmVkTGFzdFJlZigpCisgICAgICAgICogZG9tL0Rv
Y3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc1RyZWVTY29wZSk6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlOjpOb2RlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpEb2N1bWVudEZyYWdtZW50
KTogUmVtb3ZlIEFTU0VSVCgpIGFuZCBtb3ZlIGl0IHRvIC4uLgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKTogLi4uIGhlcmUsIHRvIGFsbG93IE5VTEwgZG9jdW1l
bnQgZnJvbSBTaGFkb3dSb290LgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6On5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlbW92ZWRMYXN0
UmVmKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0
VHJlZVNjb3BlKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290OjpTaGFkb3dSb290KTogUGFzc2VkIE5VTEwgZG9jdW1lbnQgdG8gc3Vw
ZXJjbGFzcy4gVGhpcyBhbGlnbnMgd2hhdCBEb2N1bWVudCBpcyBkb2luZy4KKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd1Jvb3Q6OmRpc3Bvc2UpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vU2hhZG93
Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5j
cHA6CisgICAgICAgIChTYW1lU2l6ZUFzVHJlZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlRy
ZWVTY29wZTo6VHJlZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6flRyZWVT
Y29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmRpc3Bvc2UpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6c2V0UGFyZW50VHJlZVNjb3BlKToKKyAgICAgICAg
KFdlYkNvcmU6OlRyZWVTY29wZTo6ZGVsZXRpb25IYXNCZWd1bik6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGU6OmJlZ2luRGVsZXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3Bl
OjpyZWZDb3VudCk6IEFkZGVkLgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlRyZWVTY29wZTo6Z3VhcmRSZWYpOiBQdWxsZWQgdXAgZnJvbSBEb2N1bWVudC4K
KyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6Z3VhcmREZXJlZik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpoYXNHdWFyZFJlZkNvdW50KTogQWRkZWQgdG8gaGlkZSBt
X2d1YXJkUmVmQ291bnQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmRlbGV0aW9uSGFz
QmVndW4pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6YmVnaW5EZWxldGlv
bik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpyZW1vdmVkTGFzdFJlZlRv
U2NvcGUpOiBQdWxsZWQgdXAgZnJvbSBEb2N1bWVudC4KKyAgICAgICAgKiBkb20vVHJlZVNjb3Bl
QWRvcHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJl
ZVRvTmV3U2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlQWRvcHRlcjo6bW92ZU5v
ZGVUb05ld0RvY3VtZW50KToKKyAgICAgICAgKiBlZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNw
cDogQ2hhbmdlZCB0byBzZWUgc29tZSBkZWZpbnRpb25zIGluIERvY3VtZW50LmgKKwogMjAxMy0w
Mi0xOSAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBG
ZXcgbWV0aG9kcyBpbiBXZWJHTFJlbmRlcmluZ0NvbnRleHQuaWRsIGhhdmUgaW5jb3JyZWN0IHNp
Z25hdHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNTYxYTAxNTkxODY0N2U3NGZhNmJkOTNh
ZWM1ZThjM2E1NGM0NDllNy4uODRmYTM4NDc1ZDE1MGYwNmY5NWEyMjAxOThjNGJlYmQyNTg3MTNh
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE0MDgsNyArMTQwOCw2IEBAIF9fWk5LN1dlYkNv
cmU0Tm9kZTExdGV4dENvbnRlbnRFYgogX19aTjdXZWJDb3JlNE5vZGUxMmluc2VydEJlZm9yZUVO
M1dURjEwUGFzc1JlZlB0cklTMF9FRVBTMF9SaWIKIF9fWk5LN1dlYkNvcmU0Tm9kZTEzb3duZXJE
b2N1bWVudEV2CiBfX1pOSzdXZWJDb3JlNE5vZGUxNGlzRGVzY2VuZGFudE9mRVBLUzBfCi1fX1pO
SzdXZWJDb3JlNE5vZGUxMWlzVHJlZVNjb3BlRXYKIF9fWk5LN1dlYkNvcmU0Tm9kZTE4Z2V0U3Vi
cmVzb3VyY2VVUkxzRVJOM1dURjExTGlzdEhhc2hTZXRJTlNfNEtVUkxFTG0yNTZFTlNfOEtVUkxI
YXNoRUVFCiBfX1pOSzdXZWJDb3JlNE5vZGUzMW51bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRy
ZW5FdgogX19aTks3V2ViQ29yZTROb2RlOW5vZGVJbmRleEV2CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCA3NDc1MTFmNDA1NGY5MmI4YThiMzFiMzA1MWM2MDliODYyNjY1YTRlLi4xM2EyNTAw
Y2M2NWJjYmJmODU2ODMwYTZmZjJkYTRlN2E4MzgxOGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTQwOSw3ICs0MDksNiBAQCB1aW50NjRfdCBEb2N1bWVudDo6c19nbG9iYWxUcmVlVmVy
c2lvbiA9IDA7CiBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1
cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAgICAgOiBDb250YWluZXJOb2RlKDAsIENy
ZWF0ZURvY3VtZW50KQogICAgICwgVHJlZVNjb3BlKHRoaXMpCi0gICAgLCBtX2d1YXJkUmVmQ291
bnQoMCkKICAgICAsIG1fc3R5bGVSZXNvbHZlclRocm93YXdheVRpbWVyKHRoaXMsICZEb2N1bWVu
dDo6c3R5bGVSZXNvbHZlclRocm93YXdheVRpbWVyRmlyZWQpCiAgICAgLCBtX2xhc3RTdHlsZVJl
c29sdmVyQWNjZXNzVGltZSgwKQogICAgICwgbV9hY3RpdmVQYXJzZXJDb3VudCgwKQpAQCAtNDgx
LDggKzQ4MCw2IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwm
IHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICAsIG1fdGVtcGxhdGVEb2N1bWVu
dEhvc3QoMCkKICNlbmRpZgogewotICAgIHNldFRyZWVTY29wZSh0aGlzKTsKLQogICAgIG1fcHJp
bnRpbmcgPSBmYWxzZTsKICAgICBtX3BhZ2luYXRlZEZvclNjcmVlbiA9IGZhbHNlOwogCkBAIC01
ODIsNyArNTc5LDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVudCgpCiAgICAgQVNTRVJUKG1fcmFuZ2Vz
LmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKCFtX3N0eWxlUmVjYWxjVGltZXIuaXNBY3RpdmUoKSk7
CiAgICAgQVNTRVJUKCFtX3BhcmVudFRyZWVTY29wZSk7Ci0gICAgQVNTRVJUKCFtX2d1YXJkUmVm
Q291bnQpOworICAgIEFTU0VSVCghaGFzR3VhcmRSZWZDb3VudCgpKTsKIAogI2lmIEVOQUJMRShU
RU1QTEFURV9FTEVNRU5UKQogICAgIGlmIChtX3RlbXBsYXRlRG9jdW1lbnQpCkBAIC02NDksNjAg
KzY0Niw0MCBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKICAgICBJbnNwZWN0b3JDb3VudGVyczo6
ZGVjcmVtZW50Q291bnRlcihJbnNwZWN0b3JDb3VudGVyczo6RG9jdW1lbnRDb3VudGVyKTsKIH0K
IAotdm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYoKQordm9pZCBEb2N1bWVudDo6ZGlzcG9z
ZSgpCiB7Ci0gICAgQVNTRVJUKCFtX2RlbGV0aW9uSGFzQmVndW4pOwotICAgIGlmIChtX2d1YXJk
UmVmQ291bnQpIHsKLSAgICAgICAgLy8gSWYgcmVtb3ZpbmcgYSBjaGlsZCByZW1vdmVzIHRoZSBs
YXN0IHNlbGYtb25seSByZWYsIHdlIGRvbid0Ci0gICAgICAgIC8vIHdhbnQgdGhlIHNjb3BlIHRv
IGJlIGRlc3RydWN0ZWQgdW50aWwgYWZ0ZXIKLSAgICAgICAgLy8gcmVtb3ZlRGV0YWNoZWRDaGls
ZHJlbiByZXR1cm5zLCBzbyB3ZSBndWFyZCBvdXJzZWx2ZXMgd2l0aCBhbgotICAgICAgICAvLyBl
eHRyYSBzZWxmLW9ubHkgcmVmLgotICAgICAgICBndWFyZFJlZigpOwotCi0gICAgICAgIC8vIFdl
IG11c3QgbWFrZSBzdXJlIG5vdCB0byBiZSByZXRhaW5pbmcgYW55IG9mIG91ciBjaGlsZHJlbiB0
aHJvdWdoCi0gICAgICAgIC8vIHRoZXNlIGV4dHJhIHBvaW50ZXJzIG9yIHdlIHdpbGwgY3JlYXRl
IGEgcmVmZXJlbmNlIGN5Y2xlLgotICAgICAgICBtX2RvY1R5cGUgPSAwOwotICAgICAgICBtX2Zv
Y3VzZWROb2RlID0gMDsKLSAgICAgICAgbV9ob3Zlck5vZGUgPSAwOwotICAgICAgICBtX2FjdGl2
ZUVsZW1lbnQgPSAwOwotICAgICAgICBtX3RpdGxlRWxlbWVudCA9IDA7Ci0gICAgICAgIG1fZG9j
dW1lbnRFbGVtZW50ID0gMDsKLSAgICAgICAgbV9jb250ZXh0RmVhdHVyZXMgPSBDb250ZXh0RmVh
dHVyZXM6OmRlZmF1bHRTd2l0Y2goKTsKLSAgICAgICAgbV91c2VyQWN0aW9uRWxlbWVudHMuZG9j
dW1lbnREaWRSZW1vdmVMYXN0UmVmKCk7CisgICAgLy8gV2UgbXVzdCBtYWtlIHN1cmUgbm90IHRv
IGJlIHJldGFpbmluZyBhbnkgb2Ygb3VyIGNoaWxkcmVuIHRocm91Z2gKKyAgICAvLyB0aGVzZSBl
eHRyYSBwb2ludGVycyBvciB3ZSB3aWxsIGNyZWF0ZSBhIHJlZmVyZW5jZSBjeWNsZS4KKyAgICBt
X2RvY1R5cGUgPSAwOworICAgIG1fZm9jdXNlZE5vZGUgPSAwOworICAgIG1faG92ZXJOb2RlID0g
MDsKKyAgICBtX2FjdGl2ZUVsZW1lbnQgPSAwOworICAgIG1fdGl0bGVFbGVtZW50ID0gMDsKKyAg
ICBtX2RvY3VtZW50RWxlbWVudCA9IDA7CisgICAgbV9jb250ZXh0RmVhdHVyZXMgPSBDb250ZXh0
RmVhdHVyZXM6OmRlZmF1bHRTd2l0Y2goKTsKKyAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5kb2N1
bWVudERpZFJlbW92ZUxhc3RSZWYoKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAg
ICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQgPSAwOwotICAgICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50
U3RhY2suY2xlYXIoKTsKKyAgICBtX2Z1bGxTY3JlZW5FbGVtZW50ID0gMDsKKyAgICBtX2Z1bGxT
Y3JlZW5FbGVtZW50U3RhY2suY2xlYXIoKTsKICNlbmRpZgogCi0gICAgICAgIGRldGFjaFBhcnNl
cigpOworICAgIGRldGFjaFBhcnNlcigpOwogCi0gICAgICAgIC8vIHJlbW92ZURldGFjaGVkQ2hp
bGRyZW4oKSBkb2Vzbid0IGFsd2F5cyB1bnJlZ2lzdGVyIElEcywKLSAgICAgICAgLy8gc28gdGVh
ciBkb3duIHNjb3BlIGluZm9ybWF0aW9uIHVwZnJvbnQgdG8gYXZvaWQgaGF2aW5nIHN0YWxlIHJl
ZmVyZW5jZXMgaW4gdGhlIG1hcC4KLSAgICAgICAgZGVzdHJveVRyZWVTY29wZURhdGEoKTsKLSAg
ICAgICAgcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbigpOworICAgIC8vIHJlbW92ZURldGFjaGVkQ2hp
bGRyZW4oKSBkb2Vzbid0IGFsd2F5cyB1bnJlZ2lzdGVyIElEcywKKyAgICAvLyBzbyB0ZWFyIGRv
d24gc2NvcGUgaW5mb3JtYXRpb24gdXBmcm9udCB0byBhdm9pZCBoYXZpbmcgc3RhbGUgcmVmZXJl
bmNlcyBpbiB0aGUgbWFwLgorICAgIGRlc3Ryb3lUcmVlU2NvcGVEYXRhKCk7CisgICAgcmVtb3Zl
RGV0YWNoZWRDaGlsZHJlbigpOwogCi0gICAgICAgIG1fbWFya2Vycy0+ZGV0YWNoKCk7CisgICAg
bV9tYXJrZXJzLT5kZXRhY2goKTsKIAotICAgICAgICBtX2Nzc0NhbnZhc0VsZW1lbnRzLmNsZWFy
KCk7CisgICAgbV9jc3NDYW52YXNFbGVtZW50cy5jbGVhcigpOwogCiAjaWYgRU5BQkxFKFJFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FKQotICAgICAgICAvLyBGSVhNRTogY29uc2lkZXIgdXNpbmcgQWN0
aXZlRE9NT2JqZWN0LgotICAgICAgICBpZiAobV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIp
Ci0gICAgICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci0+Y2xlYXJEb2N1bWVu
dFBvaW50ZXIoKTsKLSAgICAgICAgbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY2xlYXIo
KTsKLSNlbmRpZgotCi0jaWZuZGVmIE5ERUJVRwotICAgICAgICBtX2luUmVtb3ZlZExhc3RSZWZG
dW5jdGlvbiA9IGZhbHNlOworICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01P
YmplY3QuCisgICAgaWYgKG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQorICAgICAgICBt
X3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsKKyAg
ICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jbGVhcigpOwogI2VuZGlmCi0KLSAgICAg
ICAgZ3VhcmREZXJlZigpOwotICAgIH0gZWxzZSB7Ci0jaWZuZGVmIE5ERUJVRyAKLSAgICAgICAg
bV9kZWxldGlvbkhhc0JlZ3VuID0gdHJ1ZTsgCi0jZW5kaWYgCi0gICAgICAgIGRlbGV0ZSB0aGlz
OwotICAgIH0KIH0KIAogRWxlbWVudCogRG9jdW1lbnQ6OmdldEVsZW1lbnRCeUlkKGNvbnN0IEF0
b21pY1N0cmluZyYgaWQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDEyNjQzOGQ3MGVm
MDE2MWJjMmFmZThmY2VhNzY4YTRiYzg3MDM3YWIuLjE0ZWM3NDMwNDE5ZDk3MmZmNTcyNDEwZDVk
YzgzMWE1ZGIxMmQ5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMjksMjkgKzIyOSw2IEBA
IHB1YmxpYzoKICAgICB1c2luZyBDb250YWluZXJOb2RlOjpyZWY7CiAgICAgdXNpbmcgQ29udGFp
bmVyTm9kZTo6ZGVyZWY7CiAKLSAgICAvLyBOb2RlcyBiZWxvbmdpbmcgdG8gdGhpcyBkb2N1bWVu
dCBob2xkIGd1YXJkIHJlZmVyZW5jZXMgLQotICAgIC8vIHRoZXNlIGFyZSBlbm91Z2ggdG8ga2Vl
cCB0aGUgZG9jdW1lbnQgZnJvbSBiZWluZyBkZXN0cm95ZWQsIGJ1dAotICAgIC8vIG5vdCBlbm91
Z2ggdG8ga2VlcCBpdCBmcm9tIHJlbW92aW5nIGl0cyBjaGlsZHJlbi4gVGhpcyBhbGxvd3MgYQot
ICAgIC8vIG5vZGUgdGhhdCBvdXRsaXZlcyBpdHMgZG9jdW1lbnQgdG8gc3RpbGwgaGF2ZSBhIHZh
bGlkIGRvY3VtZW50Ci0gICAgLy8gcG9pbnRlciB3aXRob3V0IGludHJvZHVjaW5nIHJlZmVyZW5j
ZSBjeWNsZXMuCi0gICAgdm9pZCBndWFyZFJlZigpCi0gICAgewotICAgICAgICBBU1NFUlQoIW1f
ZGVsZXRpb25IYXNCZWd1bik7Ci0gICAgICAgICsrbV9ndWFyZFJlZkNvdW50OwotICAgIH0KLQot
ICAgIHZvaWQgZ3VhcmREZXJlZigpCi0gICAgewotICAgICAgICBBU1NFUlQoIW1fZGVsZXRpb25I
YXNCZWd1bik7Ci0gICAgICAgIC0tbV9ndWFyZFJlZkNvdW50OwotICAgICAgICBpZiAoIW1fZ3Vh
cmRSZWZDb3VudCAmJiAhcmVmQ291bnQoKSkgewotI2lmbmRlZiBOREVCVUcKLSAgICAgICAgICAg
IG1fZGVsZXRpb25IYXNCZWd1biA9IHRydWU7Ci0jZW5kaWYKLSAgICAgICAgICAgIGRlbGV0ZSB0
aGlzOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgRWxlbWVudCogZ2V0RWxlbWVudEJ5SWQoY29u
c3QgQXRvbWljU3RyaW5nJiBpZCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29udGFp
blJhbmdlRW5kUG9pbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC0xMjE3LDggKzExOTQs
OCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBOb2RlOwogICAgIGZyaWVuZCBjbGFzcyBJ
Z25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlcjsKIAotICAgIHZvaWQgcmVtb3Zl
ZExhc3RSZWYoKTsKLSAgICAKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpIE9WRVJSSURFOwor
CiAgICAgdm9pZCBkZXRhY2hQYXJzZXIoKTsKIAogICAgIHR5cGVkZWYgdm9pZCAoKkFyZ3VtZW50
c0NhbGxiYWNrKShjb25zdCBTdHJpbmcmIGtleVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWx1ZVN0
cmluZywgRG9jdW1lbnQqLCB2b2lkKiBkYXRhKTsKQEAgLTEyODYsOCArMTI2Myw2IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBhZGRMaXN0ZW5lclR5cGUoTGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlwZSkg
eyBtX2xpc3RlbmVyVHlwZXMgfD0gbGlzdGVuZXJUeXBlOyB9CiAgICAgdm9pZCBhZGRNdXRhdGlv
bkV2ZW50TGlzdGVuZXJUeXBlSWZFbmFibGVkKExpc3RlbmVyVHlwZSk7CiAKLSAgICBpbnQgbV9n
dWFyZFJlZkNvdW50OwotCiAgICAgdm9pZCBzdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJGaXJl
ZChUaW1lcjxEb2N1bWVudD4qKTsKICAgICBUaW1lcjxEb2N1bWVudD4gbV9zdHlsZVJlc29sdmVy
VGhyb3dhd2F5VGltZXI7CiAgICAgZG91YmxlIG1fbGFzdFN0eWxlUmVzb2x2ZXJBY2Nlc3NUaW1l
OwpAQCAtMTU5Niw2ICsxNTcxLDExIEBAIGlubGluZSBib29sIE5vZGU6OmlzRG9jdW1lbnROb2Rl
KCkgY29uc3QKICAgICByZXR1cm4gdGhpcyA9PSBkb2N1bWVudEludGVybmFsKCk7CiB9CiAKK2lu
bGluZSBib29sIE5vZGU6OmlzVHJlZVNjb3BlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJlZVNj
b3BlKCktPnJvb3ROb2RlKCkgPT0gdGhpczsKK30KKwogaW5saW5lIE5vZGU6Ok5vZGUoRG9jdW1l
bnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25UeXBlIHR5cGUpCiAgICAgOiBtX25vZGVGbGFncyh0
eXBlKQogICAgICwgbV9wYXJlbnRPclNoYWRvd0hvc3ROb2RlKDApCkBAIC0xNjAzLDEwICsxNTgz
LDkgQEAgaW5saW5lIE5vZGU6Ok5vZGUoRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25U
eXBlIHR5cGUpCiAgICAgLCBtX3ByZXZpb3VzKDApCiAgICAgLCBtX25leHQoMCkKIHsKLSAgICBp
ZiAoZG9jdW1lbnQpCi0gICAgICAgIGRvY3VtZW50LT5ndWFyZFJlZigpOwotICAgIGVsc2UKKyAg
ICBpZiAoIW1fdHJlZVNjb3BlKQogICAgICAgICBtX3RyZWVTY29wZSA9IFRyZWVTY29wZTo6bm9E
b2N1bWVudEluc3RhbmNlKCk7CisgICAgbV90cmVlU2NvcGUtPmd1YXJkUmVmKCk7CiAKICNpZiAh
ZGVmaW5lZChOREVCVUcpIHx8IChkZWZpbmVkKERVTVBfTk9ERV9TVEFUSVNUSUNTKSAmJiBEVU1Q
X05PREVfU1RBVElTVElDUykKICAgICB0cmFja0ZvckRlYnVnZ2luZygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCmluZGV4IDg1MDE1YjJmNGFhZWQ3OTJkNTVlNTMwNzQ0
YTRlZDEzYjUyN2RkNmYuLmU2NjAyNDhjNTU2OGUyZDEwYWE3ZWNjODRmNTQ5NmIzNzU4NzE5ZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKQEAgLTM0LDExICszNCwx
MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBEb2N1bWVudEZyYWdtZW50OjpEb2N1bWVudEZyYWdt
ZW50KERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSBjb25zdHJ1Y3Rpb25UeXBl
KQogICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCwgY29uc3RydWN0aW9uVHlwZSkKIHsKLSAg
ICBBU1NFUlQoZG9jdW1lbnQpOwogfQogCiBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERv
Y3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CisgICAgQVNTRVJU
KGRvY3VtZW50KTsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERvY3VtZW50RnJhZ21lbnQoZG9j
dW1lbnQsIE5vZGU6OkNyZWF0ZURvY3VtZW50RnJhZ21lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3Bw
CmluZGV4IGU3YzQ2NTAxZDIxOWExZDQ4ZGI4YmI5Y2MwZDMwZGNhM2Q5OWVjMzQuLmZhN2NhYTg2
YWI2ODQzZjI1ZTZjMDc4NjRhMDU2OTQ4YWZjNDcyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTQ0
Miw4ICs0NDIsNyBAQCBOb2RlOjp+Tm9kZSgpCiAgICAgaWYgKG1fbmV4dCkKICAgICAgICAgbV9u
ZXh0LT5zZXRQcmV2aW91c1NpYmxpbmcoMCk7CiAKLSAgICBpZiAoZG9jKQotICAgICAgICBkb2Mt
Pmd1YXJkRGVyZWYoKTsKKyAgICBtX3RyZWVTY29wZS0+Z3VhcmREZXJlZigpOwogCiAgICAgSW5z
cGVjdG9yQ291bnRlcnM6OmRlY3JlbWVudENvdW50ZXIoSW5zcGVjdG9yQ291bnRlcnM6Ok5vZGVD
b3VudGVyKTsKIH0KQEAgLTg5MiwxMSArODkxLDYgQEAgYm9vbCBOb2RlOjppc0ZvY3VzYWJsZSgp
IGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgTm9kZTo6aXNUcmVlU2NvcGUoKSBj
b25zdAotewotICAgIHJldHVybiB0cmVlU2NvcGUoKS0+cm9vdE5vZGUoKSA9PSB0aGlzOwotfQot
CiBib29sIE5vZGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGlzRm9jdXNhYmxlKCkgJiYgdGFiSW5kZXgoKSA+PSAwOwpAQCAtMjU2MSw2
ICsyNTU1LDMxIEBAIFBhc3NSZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4gTm9kZTo6cHJvcGVydHlO
b2RlTGlzdChjb25zdCBTdHJpbmcmIG5hbWUpCiB9CiAjZW5kaWYKIAorLy8gVGhpcyBpcyBoZXJl
IGZvciBpbmxpbmluZworaW5saW5lIHZvaWQgVHJlZVNjb3BlOjpyZW1vdmVkTGFzdFJlZlRvU2Nv
cGUoKQoreworICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICBpZiAobV9ndWFy
ZFJlZkNvdW50KSB7CisgICAgICAgIC8vIElmIHJlbW92aW5nIGEgY2hpbGQgcmVtb3ZlcyB0aGUg
bGFzdCBzZWxmLW9ubHkgcmVmLCB3ZSBkb24ndAorICAgICAgICAvLyB3YW50IHRoZSBzY29wZSB0
byBiZSBkZXN0cnVjdGVkIHVudGlsIGFmdGVyCisgICAgICAgIC8vIHJlbW92ZURldGFjaGVkQ2hp
bGRyZW4gcmV0dXJucywgc28gd2UgZ3VhcmQgb3Vyc2VsdmVzIHdpdGggYW4KKyAgICAgICAgLy8g
ZXh0cmEgc2VsZi1vbmx5IHJlZi4KKyAgICAgICAgZ3VhcmRSZWYoKTsKKyAgICAgICAgZGlzcG9z
ZSgpOworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgLy8gV2UgbmVlZCB0byBkbyB0aGlzIHJpZ2h0
IG5vdyBzaW5jZSBndWFyZERlcmVmKCkgY2FuIGRlbGV0ZSB0aGlzLgorICAgICAgICByb290Tm9k
ZSgpLT5tX2luUmVtb3ZlZExhc3RSZWZGdW5jdGlvbiA9IGZhbHNlOworI2VuZGlmCisgICAgICAg
IGd1YXJkRGVyZWYoKTsKKyAgICB9IGVsc2UgeworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgcm9v
dE5vZGUoKS0+bV9pblJlbW92ZWRMYXN0UmVmRnVuY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgYmVn
aW5EZWxldGlvbigpOworI2VuZGlmCisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KK30KKwog
Ly8gSXQncyBpbXBvcnRhbnQgbm90IHRvIGlubGluZSByZW1vdmVkTGFzdFJlZiwgYmVjYXVzZSB3
ZSBkb24ndCB3YW50IHRvIGlubGluZSB0aGUgY29kZSB0bwogLy8gZGVsZXRlIGEgTm9kZSBhdCBl
YWNoIGRlcmVmIGNhbGwgc2l0ZS4KIHZvaWQgTm9kZTo6cmVtb3ZlZExhc3RSZWYoKQpAQCAtMjU2
OCwxMCArMjU4NywxMSBAQCB2b2lkIE5vZGU6OnJlbW92ZWRMYXN0UmVmKCkKICAgICAvLyBBbiBl
eHBsaWNpdCBjaGVjayBmb3IgRG9jdW1lbnQgaGVyZSBpcyBiZXR0ZXIgdGhhbiBhIHZpcnR1YWwg
ZnVuY3Rpb24gc2luY2UgaXQgaXMKICAgICAvLyBmYXN0ZXIgZm9yIG5vbi1Eb2N1bWVudCBub2Rl
cywgYW5kIGJlY2F1c2UgdGhlIGNhbGwgdG8gcmVtb3ZlZExhc3RSZWYgdGhhdCBpcyBpbmxpbmVk
CiAgICAgLy8gYXQgYWxsIGRlcmVmIGNhbGwgc2l0ZXMgaXMgc21hbGxlciBpZiBpdCdzIGEgbm9u
LXZpcnR1YWwgZnVuY3Rpb24uCi0gICAgaWYgKGlzRG9jdW1lbnROb2RlKCkpIHsKLSAgICAgICAg
c3RhdGljX2Nhc3Q8RG9jdW1lbnQqPih0aGlzKS0+cmVtb3ZlZExhc3RSZWYoKTsKKyAgICBpZiAo
aXNUcmVlU2NvcGUoKSkgeworICAgICAgICB0cmVlU2NvcGUoKS0+cmVtb3ZlZExhc3RSZWZUb1Nj
b3BlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICNpZm5kZWYgTkRFQlVHCiAgICAgbV9k
ZWxldGlvbkhhc0JlZ3VuID0gdHJ1ZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3Bw
CmluZGV4IGI0ZjI0MTk1NTNjNzkzZmQ5MGI1MmZiMDJiZDhiOGQ4OTE5ZTRiMzIuLjExNDNiYTM0
ODk5NzBlMTk2YTZlMWRlNTdiNmJmYzE4NzAzMWQ3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgZW51bSBTaGFkb3dSb290VXNhZ2VPcmlnaW5UeXBlIHsK
IH07CiAKIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50LCBTaGFkb3dS
b290VHlwZSB0eXBlKQotICAgIDogRG9jdW1lbnRGcmFnbWVudChkb2N1bWVudCwgQ3JlYXRlU2hh
ZG93Um9vdCkKKyAgICA6IERvY3VtZW50RnJhZ21lbnQoMCwgQ3JlYXRlU2hhZG93Um9vdCkKICAg
ICAsIFRyZWVTY29wZSh0aGlzLCBkb2N1bWVudCkKICAgICAsIG1fcHJldigwKQogICAgICwgbV9u
ZXh0KDApCkBAIC02Myw3ICs2Myw2IEBAIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQq
IGRvY3VtZW50LCBTaGFkb3dSb290VHlwZSB0eXBlKQogICAgICwgbV9yZWdpc3RlcmVkV2l0aFBh
cmVudFNoYWRvd1Jvb3QoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKLSAgICBzZXRU
cmVlU2NvcGUodGhpcyk7CiAKICNpZiBQTEFURk9STShDSFJPTUlVTSkKICAgICBpZiAodHlwZSA9
PSBTaGFkb3dSb290OjpBdXRob3JTaGFkb3dSb290KSB7CkBAIC04OSw2ICs4OCwxMSBAQCBTaGFk
b3dSb290Ojp+U2hhZG93Um9vdCgpCiAgICAgICAgIGNsZWFyUmFyZURhdGEoKTsKIH0KIAordm9p
ZCBTaGFkb3dSb290OjpkaXNwb3NlKCkKK3sKKyAgICByZW1vdmVEZXRhY2hlZENoaWxkcmVuKCk7
Cit9CisKIFBhc3NSZWZQdHI8Tm9kZT4gU2hhZG93Um9vdDo6Y2xvbmVOb2RlKGJvb2wsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIGVjID0gREFUQV9DTE9ORV9FUlI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuaAppbmRleCAyZDFjZjIzYjFlYmJiNmZkNDU3MmUwZjg5MDg5YjlmZjk2NGQ3YzZkLi5k
YmM3MWRjMGE2Y2Q2MjhlMDNlMDk0NTA2MWVkY2E2NTYzMjA5OTNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmgKQEAgLTEwMCw2ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIFNoYWRvd1Jvb3QoRG9j
dW1lbnQqLCBTaGFkb3dSb290VHlwZSk7CiAgICAgdmlydHVhbCB+U2hhZG93Um9vdCgpOwogCisg
ICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2hp
bGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IGNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdl
LCBOb2RlKiBhZnRlckNoYW5nZSwgaW50IGNoaWxkQ291bnREZWx0YSkgT1ZFUlJJREU7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggNDU0YWY1ZGE5ZGZhODY2MGRlMGUzMTI0OWJlZjk4
NmUxY2M3ZDBiOC4uMzgwOWQ1ZDdlMDJkYjllNjg0MmUxZGFhNDBhYTg4YjQxY2I2NTRmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTU5LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogc3RydWN0IFNhbWVTaXplQXNUcmVlU2NvcGUgewogICAgIHZpcnR1YWwgflNhbWVTaXpl
QXNUcmVlU2NvcGUoKTsKICAgICB2b2lkKiBwb2ludGVyc1s4XTsKKyAgICBpbnQgaW50c1sxXTsK
IH07CiAKIENPTVBJTEVfQVNTRVJUKHNpemVvZihUcmVlU2NvcGUpID09IHNpemVvZihTYW1lU2l6
ZUFzVHJlZVNjb3BlKSwgdHJlZXNjb3BlX3Nob3VsZF9zdGF5X3NtYWxsKTsKQEAgLTY5LDM1ICs3
MCw0NyBAQCBUcmVlU2NvcGU6OlRyZWVTY29wZShDb250YWluZXJOb2RlKiByb290Tm9kZSwgRG9j
dW1lbnQqIGRvY3VtZW50KQogICAgIDogbV9yb290Tm9kZShyb290Tm9kZSkKICAgICAsIG1fZG9j
dW1lbnRTY29wZShkb2N1bWVudCkKICAgICAsIG1fcGFyZW50VHJlZVNjb3BlKGRvY3VtZW50KQor
ICAgICwgbV9ndWFyZFJlZkNvdW50KDApCiAgICAgLCBtX2lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3Ry
eShJZFRhcmdldE9ic2VydmVyUmVnaXN0cnk6OmNyZWF0ZSgpKQogewogICAgIEFTU0VSVChyb290
Tm9kZSk7CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKICAgICBBU1NFUlQocm9vdE5vZGUgIT0gZG9j
dW1lbnQpOworICAgIG1fcGFyZW50VHJlZVNjb3BlLT5ndWFyZFJlZigpOworICAgIG1fcm9vdE5v
ZGUtPnNldFRyZWVTY29wZSh0aGlzKTsKIH0KIAogVHJlZVNjb3BlOjpUcmVlU2NvcGUoRG9jdW1l
bnQqIGRvY3VtZW50KQogICAgIDogbV9yb290Tm9kZShkb2N1bWVudCkKICAgICAsIG1fZG9jdW1l
bnRTY29wZShkb2N1bWVudCkKICAgICAsIG1fcGFyZW50VHJlZVNjb3BlKDApCisgICAgLCBtX2d1
YXJkUmVmQ291bnQoMCkKICAgICAsIG1faWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KElkVGFyZ2V0
T2JzZXJ2ZXJSZWdpc3RyeTo6Y3JlYXRlKCkpCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKKyAg
ICBtX3Jvb3ROb2RlLT5zZXRUcmVlU2NvcGUodGhpcyk7CiB9CiAKIFRyZWVTY29wZTo6VHJlZVNj
b3BlKCkKICAgICA6IG1fcm9vdE5vZGUoMCkKICAgICAsIG1fZG9jdW1lbnRTY29wZSgwKQogICAg
ICwgbV9wYXJlbnRUcmVlU2NvcGUoMCkKKyAgICAsIG1fZ3VhcmRSZWZDb3VudCgwKQogewogfQog
CiBUcmVlU2NvcGU6On5UcmVlU2NvcGUoKQogeworICAgIEFTU0VSVCghbV9ndWFyZFJlZkNvdW50
KTsKKyAgICBtX3Jvb3ROb2RlLT5zZXRUcmVlU2NvcGUobm9Eb2N1bWVudEluc3RhbmNlKCkpOwor
CiAgICAgaWYgKG1fc2VsZWN0aW9uKSB7CiAgICAgICAgIG1fc2VsZWN0aW9uLT5jbGVhclRyZWVT
Y29wZSgpOwogICAgICAgICBtX3NlbGVjdGlvbiA9IDA7CiAgICAgfQorCisgICAgaWYgKG1fcGFy
ZW50VHJlZVNjb3BlKQorICAgICAgICBtX3BhcmVudFRyZWVTY29wZS0+Z3VhcmREZXJlZigpOwog
fQogCiB2b2lkIFRyZWVTY29wZTo6ZGVzdHJveVRyZWVTY29wZURhdGEoKQpAQCAtMTIwLDYgKzEz
Myw5IEBAIHZvaWQgVHJlZVNjb3BlOjpzZXRQYXJlbnRUcmVlU2NvcGUoVHJlZVNjb3BlKiBuZXdQ
YXJlbnRTY29wZSkKICAgICAvLyBFdmVyeSBzY29wZSBvdGhlciB0aGFuIGRvY3VtZW50IG5lZWRz
IGEgcGFyZW50IHNjb3BlLgogICAgIEFTU0VSVChuZXdQYXJlbnRTY29wZSk7CiAKKyAgICBuZXdQ
YXJlbnRTY29wZS0+Z3VhcmRSZWYoKTsKKyAgICBpZiAobV9wYXJlbnRUcmVlU2NvcGUpCisgICAg
ICAgIG1fcGFyZW50VHJlZVNjb3BlLT5ndWFyZERlcmVmKCk7CiAgICAgbV9wYXJlbnRUcmVlU2Nv
cGUgPSBuZXdQYXJlbnRTY29wZTsKICAgICBzZXREb2N1bWVudFNjb3BlKG5ld1BhcmVudFNjb3Bl
LT5kb2N1bWVudFNjb3BlKCkpOwogfQpAQCAtNDE1LDQgKzQzMSwyNCBAQCBUcmVlU2NvcGUqIGNv
bW1vblRyZWVTY29wZShOb2RlKiBub2RlQSwgTm9kZSogbm9kZUIpCiAgICAgcmV0dXJuIHRyZWVT
Y29wZXNBW2luZGV4QV0gPT0gdHJlZVNjb3Blc0JbaW5kZXhCXSA/IHRyZWVTY29wZXNBW2luZGV4
QV0gOiAwOwogfQogCisjaWZuZGVmIE5ERUJVRworYm9vbCBUcmVlU2NvcGU6OmRlbGV0aW9uSGFz
QmVndW4oKQoreworICAgIHJldHVybiByb290Tm9kZSgpICYmIHJvb3ROb2RlKCktPm1fZGVsZXRp
b25IYXNCZWd1bjsKK30KKwordm9pZCBUcmVlU2NvcGU6OmJlZ2luRGVsZXRpb24oKQoreworICAg
IEFTU0VSVCh0aGlzICE9IG5vRG9jdW1lbnRJbnN0YW5jZSgpKTsKKyAgICByb290Tm9kZSgpLT5t
X2RlbGV0aW9uSGFzQmVndW4gPSB0cnVlOworfQorI2VuZGlmCisKK2ludCBUcmVlU2NvcGU6OnJl
ZkNvdW50KCkgY29uc3QKK3sKKyAgICBpZiAoTm9kZSogcm9vdCA9IHJvb3ROb2RlKCkpCisgICAg
ICAgIHJldHVybiByb290LT5yZWZDb3VudCgpOworICAgIHJldHVybiAwOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKaW5kZXggYmU1MDBmMTA2NGM4Yjc4
MTQ5Y2RjZGVkOTI4MTkxYjNmNTZiM2VmMS4uOTZlODk4MGM1NDA3OWZhZWYzMDVkZTk2Nzc5MzQx
MzA4NGYyNDI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaApAQCAtMTA0LDEwICsxMDQsMzQgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gJmluc3RhbmNlOwogICAgIH0KIAorICAgIC8vIE5vZGVz
IGJlbG9uZ2luZyB0byB0aGlzIHNjb3BlIGhvbGQgZ3VhcmQgcmVmZXJlbmNlcyAtCisgICAgLy8g
dGhlc2UgYXJlIGVub3VnaCB0byBrZWVwIHRoZSBzY29wZSBmcm9tIGJlaW5nIGRlc3Ryb3llZCwg
YnV0CisgICAgLy8gbm90IGVub3VnaCB0byBrZWVwIGl0IGZyb20gcmVtb3ZpbmcgaXRzIGNoaWxk
cmVuLiBUaGlzIGFsbG93cyBhCisgICAgLy8gbm9kZSB0aGF0IG91dGxpdmVzIGl0cyBzY29wZSB0
byBzdGlsbCBoYXZlIGEgdmFsaWQgZG9jdW1lbnQKKyAgICAvLyBwb2ludGVyIHdpdGhvdXQgaW50
cm9kdWNpbmcgcmVmZXJlbmNlIGN5Y2xlcy4KKyAgICB2b2lkIGd1YXJkUmVmKCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICAgICAgKyttX2d1YXJkUmVm
Q291bnQ7CisgICAgfQorCisgICAgdm9pZCBndWFyZERlcmVmKCkKKyAgICB7CisgICAgICAgIEFT
U0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICAgICAgLS1tX2d1YXJkUmVmQ291bnQ7Cisg
ICAgICAgIGlmICghbV9ndWFyZFJlZkNvdW50ICYmICFyZWZDb3VudCgpICYmIHRoaXMgIT0gbm9E
b2N1bWVudEluc3RhbmNlKCkpIHsKKyAgICAgICAgICAgIGJlZ2luRGVsZXRpb24oKTsKKyAgICAg
ICAgICAgIGRlbGV0ZSB0aGlzOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCByZW1vdmVk
TGFzdFJlZlRvU2NvcGUoKTsKKwogcHJvdGVjdGVkOgogICAgIFRyZWVTY29wZShDb250YWluZXJO
b2RlKiwgRG9jdW1lbnQqKTsKICAgICBUcmVlU2NvcGUoRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFs
IH5UcmVlU2NvcGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpIHsgfQogCiAgICAgdm9p
ZCBkZXN0cm95VHJlZVNjb3BlRGF0YSgpOwogICAgIHZvaWQgY2xlYXJEb2N1bWVudFNjb3BlKCk7
CkBAIC0xMTgsMTIgKzE0MiwyNCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fZG9jdW1lbnRTY29w
ZSA9IGRvY3VtZW50OwogICAgIH0KIAorICAgIGJvb2wgaGFzR3VhcmRSZWZDb3VudCgpIGNvbnN0
IHsgcmV0dXJuIG1fZ3VhcmRSZWZDb3VudDsgfQorCiBwcml2YXRlOgogICAgIFRyZWVTY29wZSgp
OwogCisgICAgaW50IHJlZkNvdW50KCkgY29uc3Q7CisjaWZuZGVmIE5ERUJVRworICAgIGJvb2wg
ZGVsZXRpb25IYXNCZWd1bigpOworICAgIHZvaWQgYmVnaW5EZWxldGlvbigpOworI2Vsc2UKKyAg
ICBib29sIGRlbGV0aW9uSGFzQmVndW4oKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgYmVn
aW5EZWxldGlvbigpIHsgfQorI2VuZGlmCisKICAgICBDb250YWluZXJOb2RlKiBtX3Jvb3ROb2Rl
OwogICAgIERvY3VtZW50KiBtX2RvY3VtZW50U2NvcGU7CiAgICAgVHJlZVNjb3BlKiBtX3BhcmVu
dFRyZWVTY29wZTsKKyAgICBpbnQgbV9ndWFyZFJlZkNvdW50OwogCiAgICAgT3duUHRyPERvY3Vt
ZW50T3JkZXJlZE1hcD4gbV9lbGVtZW50c0J5SWQ7CiAgICAgT3duUHRyPERvY3VtZW50T3JkZXJl
ZE1hcD4gbV9pbWFnZU1hcHNCeU5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlQWRvcHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRl
ci5jcHAKaW5kZXggNDFiZmQyNTZjYzRiNWU1ZjMxNzE5NTE4YmUxYjMwODk1ZTg1OGQxMC4uNzNi
NTZhM2UyYzI1OTVmNzE4ZTQ0OWYwNTU5MzQ3ZjUxODhkODcxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9UcmVlU2NvcGVBZG9wdGVyLmNwcApAQCAtNDAsNiArNDAsOCBAQCB2b2lkIFRyZWVTY29wZUFk
b3B0ZXI6Om1vdmVUcmVlVG9OZXdTY29wZShOb2RlKiByb290KSBjb25zdAogewogICAgIEFTU0VS
VChuZWVkc1Njb3BlQ2hhbmdlKCkpOwogCisgICAgbV9vbGRTY29wZS0+Z3VhcmRSZWYoKTsKKwog
ICAgIC8vIElmIGFuIGVsZW1lbnQgaXMgbW92ZWQgZnJvbSBhIGRvY3VtZW50IGFuZCB0aGVuIGV2
ZW50dWFsbHkgYmFjayBhZ2FpbiB0aGUgY29sbGVjdGlvbiBjYWNoZSBmb3IKICAgICAvLyB0aGF0
IGVsZW1lbnQgbWF5IGNvbnRhaW4gc3RhbGUgZGF0YSBhcyBjaGFuZ2VzIG1hZGUgdG8gaXQgd2ls
bCBoYXZlIHVwZGF0ZWQgdGhlIERPTVRyZWVWZXJzaW9uCiAgICAgLy8gb2YgdGhlIGRvY3VtZW50
IGl0IHdhcyBtb3ZlZCB0by4gQnkgaW5jcmVhc2luZyB0aGUgRE9NVHJlZVZlcnNpb24gb2YgdGhl
IGRvbmF0aW5nIGRvY3VtZW50IGhlcmUKQEAgLTUxLDcgKzUzLDcgQEAgdm9pZCBUcmVlU2NvcGVB
ZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUoTm9kZSogcm9vdCkgY29uc3QKICAgICAgICAgb2xk
RG9jdW1lbnQtPmluY0RPTVRyZWVWZXJzaW9uKCk7CiAKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBy
b290OyBub2RlOyBub2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dChub2RlLCByb290KSkgewotICAg
ICAgICBub2RlLT5zZXRUcmVlU2NvcGUobV9uZXdTY29wZSk7CisgICAgICAgIHNldE5ld1Njb3Bl
VG8obm9kZSk7CiAKICAgICAgICAgaWYgKHdpbGxNb3ZlVG9OZXdEb2N1bWVudCkKICAgICAgICAg
ICAgIG1vdmVOb2RlVG9OZXdEb2N1bWVudChub2RlLCBvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQp
OwpAQCAtNzYsNiArNzgsOCBAQCB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVlVG9OZXdT
Y29wZShOb2RlKiByb290KSBjb25zdAogICAgICAgICAgICAgICAgIG1vdmVUcmVlVG9OZXdEb2N1
bWVudChzaGFkb3csIG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7CiAgICAgICAgIH0KICAgICB9
CisKKyAgICBtX29sZFNjb3BlLT5ndWFyZERlcmVmKCk7CiB9CiAKIHZvaWQgVHJlZVNjb3BlQWRv
cHRlcjo6bW92ZVRyZWVUb05ld0RvY3VtZW50KE5vZGUqIHJvb3QsIERvY3VtZW50KiBvbGREb2N1
bWVudCwgRG9jdW1lbnQqIG5ld0RvY3VtZW50KSBjb25zdApAQCAtOTksNiArMTAzLDE1IEBAIHZv
aWQgVHJlZVNjb3BlQWRvcHRlcjo6ZW5zdXJlRGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQo
RG9jdW1lbnQqIG9sZERvY3VtZW50CiB9CiAjZW5kaWYKIAoraW5saW5lIHZvaWQgVHJlZVNjb3Bl
QWRvcHRlcjo6c2V0TmV3U2NvcGVUbyhOb2RlKiBub2RlKSBjb25zdAoreworICAgIEFTU0VSVCgh
bm9kZS0+aXNUcmVlU2NvcGUoKSk7CisgICAgQVNTRVJUKG5vZGUtPnRyZWVTY29wZSgpID09IG1f
b2xkU2NvcGUpOworICAgIG1fbmV3U2NvcGUtPmd1YXJkUmVmKCk7CisgICAgbV9vbGRTY29wZS0+
Z3VhcmREZXJlZigpOworICAgIG5vZGUtPnNldFRyZWVTY29wZShtX25ld1Njb3BlKTsKK30KKwog
aW5saW5lIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZU5vZGVUb05ld0RvY3VtZW50KE5vZGUq
IG5vZGUsIERvY3VtZW50KiBvbGREb2N1bWVudCwgRG9jdW1lbnQqIG5ld0RvY3VtZW50KSBjb25z
dAogewogICAgIEFTU0VSVCghbm9kZS0+aW5Eb2N1bWVudCgpIHx8IG9sZERvY3VtZW50ICE9IG5l
d0RvY3VtZW50KTsKQEAgLTEwOSw3ICsxMjIsNiBAQCBpbmxpbmUgdm9pZCBUcmVlU2NvcGVBZG9w
dGVyOjptb3ZlTm9kZVRvTmV3RG9jdW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQqIG9sZERvYwog
ICAgICAgICAgICAgcmFyZURhdGEtPm5vZGVMaXN0cygpLT5hZG9wdERvY3VtZW50KG9sZERvY3Vt
ZW50LCBuZXdEb2N1bWVudCk7CiAgICAgfQogCi0gICAgbmV3RG9jdW1lbnQtPmd1YXJkUmVmKCk7
CiAgICAgaWYgKG9sZERvY3VtZW50KQogICAgICAgICBvbGREb2N1bWVudC0+bW92ZU5vZGVJdGVy
YXRvcnNUb05ld0RvY3VtZW50KG5vZGUsIG5ld0RvY3VtZW50KTsKIApAQCAtMTIzLDkgKzEzNSw2
IEBAIGlubGluZSB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVOb2RlVG9OZXdEb2N1bWVudChO
b2RlKiBub2RlLCBEb2N1bWVudCogb2xkRG9jCiAKICAgICBub2RlLT5kaWRNb3ZlVG9OZXdEb2N1
bWVudChvbGREb2N1bWVudCk7CiAgICAgQVNTRVJUKGRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2Fs
bGVkKTsKLSAgICAKLSAgICBpZiAob2xkRG9jdW1lbnQpCi0gICAgICAgIG9sZERvY3VtZW50LT5n
dWFyZERlcmVmKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGVBZG9wdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5oCmlu
ZGV4IDRjYTQxODIxOTBjZGFjYzU4MzJkYWJiYzBlZDQ2ZWY0MmZmYmZjMzMuLjZjNTY1NmNmZTk1
NDE4Mjk4MTIwM2JiYzQ2YjI4ZGU4MWQyODhhZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9UcmVlU2NvcGVBZG9wdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29w
ZUFkb3B0ZXIuaApAQCAtNDUsNiArNDUsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToK
KyAgICB2b2lkIHNldE5ld1Njb3BlVG8oTm9kZSopIGNvbnN0OwogICAgIHZvaWQgbW92ZVRyZWVU
b05ld1Njb3BlKE5vZGUqKSBjb25zdDsKICAgICB2b2lkIG1vdmVUcmVlVG9OZXdEb2N1bWVudChO
b2RlKiwgRG9jdW1lbnQqIG9sZERvY3VtZW50LCBEb2N1bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0
OwogICAgIHZvaWQgbW92ZU5vZGVUb05ld0RvY3VtZW50KE5vZGUqLCBEb2N1bWVudCogb2xkRG9j
dW1lbnQsIERvY3VtZW50KiBuZXdEb2N1bWVudCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1JlbW92ZU5vZGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCmluZGV4IDBlMWQzMDU4OTIyODM5ZmZlYWY5MmZk
NmJiNWQxNGUxMGYzMTNlNTQuLmRhYjUzNWVjNTYzODczYmI0NWQxYTA3ZTJhMjYyYmFkNmY2OTQ0
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlTm9kZUNvbW1hbmQuY3BwCkBA
IC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVtb3ZlTm9k
ZUNvbW1hbmQuaCIKIAorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZVBsYWNlaG9sZGVyLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189442</attachid>
            <date>2013-02-20 18:40:10 -0800</date>
            <delta_ts>2013-02-22 01:14:56 -0800</delta_ts>
            <desc>Fixing EFL build failure</desc>
            <filename>bug-109777-20130221113631.patch</filename>
            <type>text/plain</type>
            <size>23904</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDFmZGJjMjhiOGQ5MjNl
ZTRkY2NiNjgyZjZlODhlMGVlMzAyNTdmNS4uNTU4MGY4ZWU4ZjNkZDAyYTdjN2MyNWJhYzM0MmFl
MjUzODJlZTZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDEzLTAyLTE5ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGd1YXJkUmVmKCkgYW5kIGd1YXJkRGVyZWYoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgbW92ZXMgbV9ndWFyZFJlZkNvdW50
IGZyb20gRG9jdW1lbnQgdG8gVHJlZVNjb3BlLAorICAgICAgICB3aGljaCBhbGxvd3MgU2hhZG93
Um9vdCB0byBiZSBndWFyZGVkIGJ5IGd1YXJkUmVmKCkgbWVjaGFuaXNtIGFzCisgICAgICAgIERv
Y3VtZW50LiBBZnRlciByMTM3NTI0LCBOb2RlIHJlZmVyZXMgVHJlZVNjb3BlIGluc3RlYWQgb2YK
KyAgICAgICAgRG9jdW1lbnQuIFRoaXMgaXMgbmF0dXJhbCBjb25zZXF1ZW5jZSBvZiB0aGUgY2hh
bmdlOiBJdCBubyBsb25nZXIKKyAgICAgICAgbWFrZXMgc2Vuc2UgdG8gZ3VhcmRSZWYoKSBEb2N1
bWVudCBwb2ludGVyIGZyb20gTm9kZS4KKworICAgICAgICBEZXRhaWw6CisKKyAgICAgICAgLSBE
b2N1bWVudDo6bV9ndWFyZFJlZkNvdW50IGFuZCByZWxhdGVkIGZ1bmNkdGlvbnMgYXJlIG1vdmVk
IHRvIFRyZWVTY29wZQorICAgICAgICAtIERvY3VtZW50OjpyZW1vdmVkTGFzdFJlZiBpcyBmYWN0
b3JlZCBvdXQgaW50byBUcmVlU2NvcGU6OnJlbW92ZWRMYXN0UmVmVG9TY29wZSgpLAorICAgICAg
ICAgIFRyZWVTY29wZTo6ZGlzcG9zZSgpIGFuZCBEb2N1ZW50OjpkaXNwb3NlKCkuIFNoYWRvd1Jv
b3QgYWxzbyBnb3QgaXRzIG93biBkaXNwb3NlKCkgaW1wbGVtZW50YXRpb24uCisgICAgICAgIC0g
TW92ZWQgZ3VhcmRSZWYoKSBhbmQgZ3VhcmREZXJlZigpIGNhbGxzIHRvIFRyZWVTY29wZSBhbmQg
Tm9kZS4KKyAgICAgICAgICBOb3RlIHRoYXQgdGhlcmUgYXJlIHR3byAiZ3VhcmRlZCIgVHJlZVNj
b3BlIHJlZmVyZW5jZXMuIE9uZSBpcworICAgICAgICAgIE5vZGU6Om1fdHJlZVNjb3BlIGFuZCBh
bm90aGVyIGlzIFRyZWVTY29wZTo6bV9wYXJlbnRUcmVlU2NvcGUuCisgICAgICAgICAgVGhlIGd1
YXJkZWQtcmVmIG1hbmFnZW1lbnQgaXMgbm93IGVuY2Fwc3VsYXRlZCBpbiB0aGVzZSB0d28gY2xh
c3Nlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMu
CisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRp
c3Bvc2UpOiBFeHRyYWN0ZWQgZnJvbSByZW1vdmVkTGFzdFJlZigpCisgICAgICAgICogZG9tL0Rv
Y3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc1RyZWVTY29wZSk6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlOjpOb2RlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpEb2N1bWVudEZyYWdtZW50
KTogUmVtb3ZlIEFTU0VSVCgpIGFuZCBtb3ZlIGl0IHRvIC4uLgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKTogLi4uIGhlcmUsIHRvIGFsbG93IE5VTEwgZG9jdW1l
bnQgZnJvbSBTaGFkb3dSb290LgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6On5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlbW92ZWRMYXN0
UmVmKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0
VHJlZVNjb3BlKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290OjpTaGFkb3dSb290KTogUGFzc2VkIE5VTEwgZG9jdW1lbnQgdG8gc3Vw
ZXJjbGFzcy4gVGhpcyBhbGlnbnMgd2hhdCBEb2N1bWVudCBpcyBkb2luZy4KKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd1Jvb3Q6OmRpc3Bvc2UpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vU2hhZG93
Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5j
cHA6CisgICAgICAgIChTYW1lU2l6ZUFzVHJlZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlRy
ZWVTY29wZTo6VHJlZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6flRyZWVT
Y29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmRpc3Bvc2UpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6c2V0UGFyZW50VHJlZVNjb3BlKToKKyAgICAgICAg
KFdlYkNvcmU6OlRyZWVTY29wZTo6ZGVsZXRpb25IYXNCZWd1bik6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGU6OmJlZ2luRGVsZXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3Bl
OjpyZWZDb3VudCk6IEFkZGVkLgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDogVHVybmVkIG1f
cm9vdE5vZGUgdG8gTm9kZSogZnJvbSBDb250YWluZXJOb2RlKiBmb3IgTm9kZTo6aXNUcmVlU2Nv
cGUgdG8gYmUgaW5saW5lZC4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6Z3VhcmRSZWYp
OiBQdWxsZWQgdXAgZnJvbSBEb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6
Z3VhcmREZXJlZik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpoYXNHdWFy
ZFJlZkNvdW50KTogQWRkZWQgdG8gaGlkZSBtX2d1YXJkUmVmQ291bnQuCisgICAgICAgIChXZWJD
b3JlOjpUcmVlU2NvcGU6OmRlbGV0aW9uSGFzQmVndW4pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlRyZWVTY29wZTo6YmVnaW5EZWxldGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
VHJlZVNjb3BlOjpyZW1vdmVkTGFzdFJlZlRvU2NvcGUpOiBQdWxsZWQgdXAgZnJvbSBEb2N1bWVu
dC4KKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUpOgorICAgICAgICAoV2ViQ29y
ZTo6VHJlZVNjb3BlQWRvcHRlcjo6bW92ZU5vZGVUb05ld0RvY3VtZW50KToKKwogMjAxMy0wMi0y
MCAgQnJhbmRvbiBKb25lcyAgPGJham9uZXNAZ29vZ2xlLmNvbT4KICAKICAgICAgICAgUHJpbnRp
bmcgV2ViR0wgY2FudmFzZXMgaW4gQ2hyb21lIHVzZXMgc3RhbGUgZGF0YSBhZnRlciBmaXJzdCBw
cmludApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA1NjFhMDE1OTE4NjQ3ZTc0ZmE2YmQ5M2FlYzVl
OGMzYTU0YzQ0OWU3Li44NGZhMzg0NzVkMTUwZjA2Zjk1YTIyMDE5OGM0YmViZDI1ODcxM2E5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTQwOCw3ICsxNDA4LDYgQEAgX19aTks3V2ViQ29yZTRO
b2RlMTF0ZXh0Q29udGVudEViCiBfX1pON1dlYkNvcmU0Tm9kZTEyaW5zZXJ0QmVmb3JlRU4zV1RG
MTBQYXNzUmVmUHRySVMwX0VFUFMwX1JpYgogX19aTks3V2ViQ29yZTROb2RlMTNvd25lckRvY3Vt
ZW50RXYKIF9fWk5LN1dlYkNvcmU0Tm9kZTE0aXNEZXNjZW5kYW50T2ZFUEtTMF8KLV9fWk5LN1dl
YkNvcmU0Tm9kZTExaXNUcmVlU2NvcGVFdgogX19aTks3V2ViQ29yZTROb2RlMThnZXRTdWJyZXNv
dXJjZVVSTHNFUk4zV1RGMTFMaXN0SGFzaFNldElOU180S1VSTEVMbTI1NkVOU184S1VSTEhhc2hF
RUUKIF9fWk5LN1dlYkNvcmU0Tm9kZTMxbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbkV2
CiBfX1pOSzdXZWJDb3JlNE5vZGU5bm9kZUluZGV4RXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDAyYzkyYTFjYjk0MDA0OWZjMGY5ZjUzMzY4OWY0NGNhYmNkNDZkN2UuLmNkNzJhNWM0OGQ2
OTYxY2IxZjExNjk0YzczNWNlZGE5ZjhmNWFlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtNDA5LDcgKzQwOSw2IEBAIHVpbnQ2NF90IERvY3VtZW50OjpzX2dsb2JhbFRyZWVWZXJzaW9u
ID0gMDsKIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwg
Ym9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkKICAgICA6IENvbnRhaW5lck5vZGUoMCwgQ3JlYXRl
RG9jdW1lbnQpCiAgICAgLCBUcmVlU2NvcGUodGhpcykKLSAgICAsIG1fZ3VhcmRSZWZDb3VudCgw
KQogICAgICwgbV9zdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXIodGhpcywgJkRvY3VtZW50Ojpz
dHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJGaXJlZCkKICAgICAsIG1fbGFzdFN0eWxlUmVzb2x2
ZXJBY2Nlc3NUaW1lKDApCiAgICAgLCBtX2FjdGl2ZVBhcnNlckNvdW50KDApCkBAIC00ODEsOCAr
NDgwLDYgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJs
LCBib29sIGlzWEhUTUwsIGJvb2wgaXNIVE1MKQogICAgICwgbV90ZW1wbGF0ZURvY3VtZW50SG9z
dCgwKQogI2VuZGlmCiB7Ci0gICAgc2V0VHJlZVNjb3BlKHRoaXMpOwotCiAgICAgbV9wcmludGlu
ZyA9IGZhbHNlOwogICAgIG1fcGFnaW5hdGVkRm9yU2NyZWVuID0gZmFsc2U7CiAKQEAgLTU4Miw3
ICs1NzksNyBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKICAgICBBU1NFUlQobV9yYW5nZXMuaXNF
bXB0eSgpKTsKICAgICBBU1NFUlQoIW1fc3R5bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpKTsKICAg
ICBBU1NFUlQoIW1fcGFyZW50VHJlZVNjb3BlKTsKLSAgICBBU1NFUlQoIW1fZ3VhcmRSZWZDb3Vu
dCk7CisgICAgQVNTRVJUKCFoYXNHdWFyZFJlZkNvdW50KCkpOwogCiAjaWYgRU5BQkxFKFRFTVBM
QVRFX0VMRU1FTlQpCiAgICAgaWYgKG1fdGVtcGxhdGVEb2N1bWVudCkKQEAgLTY0OSw2MCArNjQ2
LDQwIEBAIERvY3VtZW50Ojp+RG9jdW1lbnQoKQogICAgIEluc3BlY3RvckNvdW50ZXJzOjpkZWNy
ZW1lbnRDb3VudGVyKEluc3BlY3RvckNvdW50ZXJzOjpEb2N1bWVudENvdW50ZXIpOwogfQogCi12
b2lkIERvY3VtZW50OjpyZW1vdmVkTGFzdFJlZigpCit2b2lkIERvY3VtZW50OjpkaXNwb3NlKCkK
IHsKLSAgICBBU1NFUlQoIW1fZGVsZXRpb25IYXNCZWd1bik7Ci0gICAgaWYgKG1fZ3VhcmRSZWZD
b3VudCkgewotICAgICAgICAvLyBJZiByZW1vdmluZyBhIGNoaWxkIHJlbW92ZXMgdGhlIGxhc3Qg
c2VsZi1vbmx5IHJlZiwgd2UgZG9uJ3QKLSAgICAgICAgLy8gd2FudCB0aGUgc2NvcGUgdG8gYmUg
ZGVzdHJ1Y3RlZCB1bnRpbCBhZnRlcgotICAgICAgICAvLyByZW1vdmVEZXRhY2hlZENoaWxkcmVu
IHJldHVybnMsIHNvIHdlIGd1YXJkIG91cnNlbHZlcyB3aXRoIGFuCi0gICAgICAgIC8vIGV4dHJh
IHNlbGYtb25seSByZWYuCi0gICAgICAgIGd1YXJkUmVmKCk7Ci0KLSAgICAgICAgLy8gV2UgbXVz
dCBtYWtlIHN1cmUgbm90IHRvIGJlIHJldGFpbmluZyBhbnkgb2Ygb3VyIGNoaWxkcmVuIHRocm91
Z2gKLSAgICAgICAgLy8gdGhlc2UgZXh0cmEgcG9pbnRlcnMgb3Igd2Ugd2lsbCBjcmVhdGUgYSBy
ZWZlcmVuY2UgY3ljbGUuCi0gICAgICAgIG1fZG9jVHlwZSA9IDA7Ci0gICAgICAgIG1fZm9jdXNl
ZE5vZGUgPSAwOwotICAgICAgICBtX2hvdmVyTm9kZSA9IDA7Ci0gICAgICAgIG1fYWN0aXZlRWxl
bWVudCA9IDA7Ci0gICAgICAgIG1fdGl0bGVFbGVtZW50ID0gMDsKLSAgICAgICAgbV9kb2N1bWVu
dEVsZW1lbnQgPSAwOwotICAgICAgICBtX2NvbnRleHRGZWF0dXJlcyA9IENvbnRleHRGZWF0dXJl
czo6ZGVmYXVsdFN3aXRjaCgpOwotICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5kb2N1bWVu
dERpZFJlbW92ZUxhc3RSZWYoKTsKKyAgICAvLyBXZSBtdXN0IG1ha2Ugc3VyZSBub3QgdG8gYmUg
cmV0YWluaW5nIGFueSBvZiBvdXIgY2hpbGRyZW4gdGhyb3VnaAorICAgIC8vIHRoZXNlIGV4dHJh
IHBvaW50ZXJzIG9yIHdlIHdpbGwgY3JlYXRlIGEgcmVmZXJlbmNlIGN5Y2xlLgorICAgIG1fZG9j
VHlwZSA9IDA7CisgICAgbV9mb2N1c2VkTm9kZSA9IDA7CisgICAgbV9ob3Zlck5vZGUgPSAwOwor
ICAgIG1fYWN0aXZlRWxlbWVudCA9IDA7CisgICAgbV90aXRsZUVsZW1lbnQgPSAwOworICAgIG1f
ZG9jdW1lbnRFbGVtZW50ID0gMDsKKyAgICBtX2NvbnRleHRGZWF0dXJlcyA9IENvbnRleHRGZWF0
dXJlczo6ZGVmYXVsdFN3aXRjaCgpOworICAgIG1fdXNlckFjdGlvbkVsZW1lbnRzLmRvY3VtZW50
RGlkUmVtb3ZlTGFzdFJlZigpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICAgICAg
bV9mdWxsU2NyZWVuRWxlbWVudCA9IDA7Ci0gICAgICAgIG1fZnVsbFNjcmVlbkVsZW1lbnRTdGFj
ay5jbGVhcigpOworICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQgPSAwOworICAgIG1fZnVsbFNjcmVl
bkVsZW1lbnRTdGFjay5jbGVhcigpOwogI2VuZGlmCiAKLSAgICAgICAgZGV0YWNoUGFyc2VyKCk7
CisgICAgZGV0YWNoUGFyc2VyKCk7CiAKLSAgICAgICAgLy8gcmVtb3ZlRGV0YWNoZWRDaGlsZHJl
bigpIGRvZXNuJ3QgYWx3YXlzIHVucmVnaXN0ZXIgSURzLAotICAgICAgICAvLyBzbyB0ZWFyIGRv
d24gc2NvcGUgaW5mb3JtYXRpb24gdXBmcm9udCB0byBhdm9pZCBoYXZpbmcgc3RhbGUgcmVmZXJl
bmNlcyBpbiB0aGUgbWFwLgotICAgICAgICBkZXN0cm95VHJlZVNjb3BlRGF0YSgpOwotICAgICAg
ICByZW1vdmVEZXRhY2hlZENoaWxkcmVuKCk7CisgICAgLy8gcmVtb3ZlRGV0YWNoZWRDaGlsZHJl
bigpIGRvZXNuJ3QgYWx3YXlzIHVucmVnaXN0ZXIgSURzLAorICAgIC8vIHNvIHRlYXIgZG93biBz
Y29wZSBpbmZvcm1hdGlvbiB1cGZyb250IHRvIGF2b2lkIGhhdmluZyBzdGFsZSByZWZlcmVuY2Vz
IGluIHRoZSBtYXAuCisgICAgZGVzdHJveVRyZWVTY29wZURhdGEoKTsKKyAgICByZW1vdmVEZXRh
Y2hlZENoaWxkcmVuKCk7CiAKLSAgICAgICAgbV9tYXJrZXJzLT5kZXRhY2goKTsKKyAgICBtX21h
cmtlcnMtPmRldGFjaCgpOwogCi0gICAgICAgIG1fY3NzQ2FudmFzRWxlbWVudHMuY2xlYXIoKTsK
KyAgICBtX2Nzc0NhbnZhc0VsZW1lbnRzLmNsZWFyKCk7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9B
TklNQVRJT05fRlJBTUUpCi0gICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVE
T01PYmplY3QuCi0gICAgICAgIGlmIChtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcikKLSAg
ICAgICAgICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLT5jbGVhckRvY3VtZW50UG9p
bnRlcigpOwotICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jbGVhcigpOwot
I2VuZGlmCi0KLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgIG1faW5SZW1vdmVkTGFzdFJlZkZ1bmN0
aW9uID0gZmFsc2U7CisgICAgLy8gRklYTUU6IGNvbnNpZGVyIHVzaW5nIEFjdGl2ZURPTU9iamVj
dC4KKyAgICBpZiAobV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIpCisgICAgICAgIG1fc2Ny
aXB0ZWRBbmltYXRpb25Db250cm9sbGVyLT5jbGVhckRvY3VtZW50UG9pbnRlcigpOworICAgIG1f
c2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNsZWFyKCk7CiAjZW5kaWYKLQotICAgICAgICBn
dWFyZERlcmVmKCk7Ci0gICAgfSBlbHNlIHsKLSNpZm5kZWYgTkRFQlVHIAotICAgICAgICBtX2Rl
bGV0aW9uSGFzQmVndW4gPSB0cnVlOyAKLSNlbmRpZiAKLSAgICAgICAgZGVsZXRlIHRoaXM7Ci0g
ICAgfQogfQogCiBFbGVtZW50KiBEb2N1bWVudDo6Z2V0RWxlbWVudEJ5SWQoY29uc3QgQXRvbWlj
U3RyaW5nJiBpZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMTI2NDM4ZDcwZWYwMTYx
YmMyYWZlOGZjZWE3NjhhNGJjODcwMzdhYi4uOTYxZTUxYWRhMWFiYWRkODY5ZjQyZWNmOTIzMmEw
M2NkZjBkMzVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTIyOSwyOSArMjI5LDYgQEAgcHVi
bGljOgogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OnJlZjsKICAgICB1c2luZyBDb250YWluZXJO
b2RlOjpkZXJlZjsKIAotICAgIC8vIE5vZGVzIGJlbG9uZ2luZyB0byB0aGlzIGRvY3VtZW50IGhv
bGQgZ3VhcmQgcmVmZXJlbmNlcyAtCi0gICAgLy8gdGhlc2UgYXJlIGVub3VnaCB0byBrZWVwIHRo
ZSBkb2N1bWVudCBmcm9tIGJlaW5nIGRlc3Ryb3llZCwgYnV0Ci0gICAgLy8gbm90IGVub3VnaCB0
byBrZWVwIGl0IGZyb20gcmVtb3ZpbmcgaXRzIGNoaWxkcmVuLiBUaGlzIGFsbG93cyBhCi0gICAg
Ly8gbm9kZSB0aGF0IG91dGxpdmVzIGl0cyBkb2N1bWVudCB0byBzdGlsbCBoYXZlIGEgdmFsaWQg
ZG9jdW1lbnQKLSAgICAvLyBwb2ludGVyIHdpdGhvdXQgaW50cm9kdWNpbmcgcmVmZXJlbmNlIGN5
Y2xlcy4KLSAgICB2b2lkIGd1YXJkUmVmKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9kZWxl
dGlvbkhhc0JlZ3VuKTsKLSAgICAgICAgKyttX2d1YXJkUmVmQ291bnQ7Ci0gICAgfQotCi0gICAg
dm9pZCBndWFyZERlcmVmKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9kZWxldGlvbkhhc0Jl
Z3VuKTsKLSAgICAgICAgLS1tX2d1YXJkUmVmQ291bnQ7Ci0gICAgICAgIGlmICghbV9ndWFyZFJl
ZkNvdW50ICYmICFyZWZDb3VudCgpKSB7Ci0jaWZuZGVmIE5ERUJVRwotICAgICAgICAgICAgbV9k
ZWxldGlvbkhhc0JlZ3VuID0gdHJ1ZTsKLSNlbmRpZgotICAgICAgICAgICAgZGVsZXRlIHRoaXM7
Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICBFbGVtZW50KiBnZXRFbGVtZW50QnlJZChjb25zdCBB
dG9taWNTdHJpbmcmIGlkKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFu
Z2VFbmRQb2ludCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAgLTEyMTcsOCArMTE5NCw4IEBA
IHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE5vZGU7CiAgICAgZnJpZW5kIGNsYXNzIElnbm9y
ZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyOwogCi0gICAgdm9pZCByZW1vdmVkTGFz
dFJlZigpOwotICAgIAorICAgIHZpcnR1YWwgdm9pZCBkaXNwb3NlKCkgT1ZFUlJJREU7CisKICAg
ICB2b2lkIGRldGFjaFBhcnNlcigpOwogCiAgICAgdHlwZWRlZiB2b2lkICgqQXJndW1lbnRzQ2Fs
bGJhY2spKGNvbnN0IFN0cmluZyYga2V5U3RyaW5nLCBjb25zdCBTdHJpbmcmIHZhbHVlU3RyaW5n
LCBEb2N1bWVudCosIHZvaWQqIGRhdGEpOwpAQCAtMTI4Niw4ICsxMjYzLDYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGFkZExpc3RlbmVyVHlwZShMaXN0ZW5lclR5cGUgbGlzdGVuZXJUeXBlKSB7IG1f
bGlzdGVuZXJUeXBlcyB8PSBsaXN0ZW5lclR5cGU7IH0KICAgICB2b2lkIGFkZE11dGF0aW9uRXZl
bnRMaXN0ZW5lclR5cGVJZkVuYWJsZWQoTGlzdGVuZXJUeXBlKTsKIAotICAgIGludCBtX2d1YXJk
UmVmQ291bnQ7Ci0KICAgICB2b2lkIHN0eWxlUmVzb2x2ZXJUaHJvd2F3YXlUaW1lckZpcmVkKFRp
bWVyPERvY3VtZW50PiopOwogICAgIFRpbWVyPERvY3VtZW50PiBtX3N0eWxlUmVzb2x2ZXJUaHJv
d2F3YXlUaW1lcjsKICAgICBkb3VibGUgbV9sYXN0U3R5bGVSZXNvbHZlckFjY2Vzc1RpbWU7CkBA
IC0xNjAzLDEwICsxNTc4LDkgQEAgaW5saW5lIE5vZGU6Ok5vZGUoRG9jdW1lbnQqIGRvY3VtZW50
LCBDb25zdHJ1Y3Rpb25UeXBlIHR5cGUpCiAgICAgLCBtX3ByZXZpb3VzKDApCiAgICAgLCBtX25l
eHQoMCkKIHsKLSAgICBpZiAoZG9jdW1lbnQpCi0gICAgICAgIGRvY3VtZW50LT5ndWFyZFJlZigp
OwotICAgIGVsc2UKKyAgICBpZiAoIW1fdHJlZVNjb3BlKQogICAgICAgICBtX3RyZWVTY29wZSA9
IFRyZWVTY29wZTo6bm9Eb2N1bWVudEluc3RhbmNlKCk7CisgICAgbV90cmVlU2NvcGUtPmd1YXJk
UmVmKCk7CiAKICNpZiAhZGVmaW5lZChOREVCVUcpIHx8IChkZWZpbmVkKERVTVBfTk9ERV9TVEFU
SVNUSUNTKSAmJiBEVU1QX05PREVfU1RBVElTVElDUykKICAgICB0cmFja0ZvckRlYnVnZ2luZygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCmluZGV4IDg1MDE1YjJmNGFh
ZWQ3OTJkNTVlNTMwNzQ0YTRlZDEzYjUyN2RkNmYuLmU2NjAyNDhjNTU2OGUyZDEwYWE3ZWNjODRm
NTQ5NmIzNzU4NzE5ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZy
YWdtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAK
QEAgLTM0LDExICszNCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBEb2N1bWVudEZyYWdtZW50
OjpEb2N1bWVudEZyYWdtZW50KERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSBj
b25zdHJ1Y3Rpb25UeXBlKQogICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCwgY29uc3RydWN0
aW9uVHlwZSkKIHsKLSAgICBBU1NFUlQoZG9jdW1lbnQpOwogfQogCiBQYXNzUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IERvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQp
CiB7CisgICAgQVNTRVJUKGRvY3VtZW50KTsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERvY3Vt
ZW50RnJhZ21lbnQoZG9jdW1lbnQsIE5vZGU6OkNyZWF0ZURvY3VtZW50RnJhZ21lbnQpKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCmluZGV4IGU3YzQ2NTAxZDIxOWExZDQ4ZGI4YmI5Y2MwZDMwZGNhM2Q5
OWVjMzQuLmZhN2NhYTg2YWI2ODQzZjI1ZTZjMDc4NjRhMDU2OTQ4YWZjNDcyNzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKQEAgLTQ0Miw4ICs0NDIsNyBAQCBOb2RlOjp+Tm9kZSgpCiAgICAgaWYgKG1fbmV4
dCkKICAgICAgICAgbV9uZXh0LT5zZXRQcmV2aW91c1NpYmxpbmcoMCk7CiAKLSAgICBpZiAoZG9j
KQotICAgICAgICBkb2MtPmd1YXJkRGVyZWYoKTsKKyAgICBtX3RyZWVTY29wZS0+Z3VhcmREZXJl
ZigpOwogCiAgICAgSW5zcGVjdG9yQ291bnRlcnM6OmRlY3JlbWVudENvdW50ZXIoSW5zcGVjdG9y
Q291bnRlcnM6Ok5vZGVDb3VudGVyKTsKIH0KQEAgLTg5MiwxMSArODkxLDYgQEAgYm9vbCBOb2Rl
Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgTm9kZTo6
aXNUcmVlU2NvcGUoKSBjb25zdAotewotICAgIHJldHVybiB0cmVlU2NvcGUoKS0+cm9vdE5vZGUo
KSA9PSB0aGlzOwotfQotCiBib29sIE5vZGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRF
dmVudCopIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzRm9jdXNhYmxlKCkgJiYgdGFiSW5kZXgoKSA+
PSAwOwpAQCAtMjU2MSw2ICsyNTU1LDMxIEBAIFBhc3NSZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4g
Tm9kZTo6cHJvcGVydHlOb2RlTGlzdChjb25zdCBTdHJpbmcmIG5hbWUpCiB9CiAjZW5kaWYKIAor
Ly8gVGhpcyBpcyBoZXJlIGZvciBpbmxpbmluZworaW5saW5lIHZvaWQgVHJlZVNjb3BlOjpyZW1v
dmVkTGFzdFJlZlRvU2NvcGUoKQoreworICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsK
KyAgICBpZiAobV9ndWFyZFJlZkNvdW50KSB7CisgICAgICAgIC8vIElmIHJlbW92aW5nIGEgY2hp
bGQgcmVtb3ZlcyB0aGUgbGFzdCBzZWxmLW9ubHkgcmVmLCB3ZSBkb24ndAorICAgICAgICAvLyB3
YW50IHRoZSBzY29wZSB0byBiZSBkZXN0cnVjdGVkIHVudGlsIGFmdGVyCisgICAgICAgIC8vIHJl
bW92ZURldGFjaGVkQ2hpbGRyZW4gcmV0dXJucywgc28gd2UgZ3VhcmQgb3Vyc2VsdmVzIHdpdGgg
YW4KKyAgICAgICAgLy8gZXh0cmEgc2VsZi1vbmx5IHJlZi4KKyAgICAgICAgZ3VhcmRSZWYoKTsK
KyAgICAgICAgZGlzcG9zZSgpOworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgLy8gV2UgbmVlZCB0
byBkbyB0aGlzIHJpZ2h0IG5vdyBzaW5jZSBndWFyZERlcmVmKCkgY2FuIGRlbGV0ZSB0aGlzLgor
ICAgICAgICByb290Tm9kZSgpLT5tX2luUmVtb3ZlZExhc3RSZWZGdW5jdGlvbiA9IGZhbHNlOwor
I2VuZGlmCisgICAgICAgIGd1YXJkRGVyZWYoKTsKKyAgICB9IGVsc2UgeworI2lmbmRlZiBOREVC
VUcKKyAgICAgICAgcm9vdE5vZGUoKS0+bV9pblJlbW92ZWRMYXN0UmVmRnVuY3Rpb24gPSBmYWxz
ZTsKKyAgICAgICAgYmVnaW5EZWxldGlvbigpOworI2VuZGlmCisgICAgICAgIGRlbGV0ZSB0aGlz
OworICAgIH0KK30KKwogLy8gSXQncyBpbXBvcnRhbnQgbm90IHRvIGlubGluZSByZW1vdmVkTGFz
dFJlZiwgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvIGlubGluZSB0aGUgY29kZSB0bwogLy8gZGVs
ZXRlIGEgTm9kZSBhdCBlYWNoIGRlcmVmIGNhbGwgc2l0ZS4KIHZvaWQgTm9kZTo6cmVtb3ZlZExh
c3RSZWYoKQpAQCAtMjU2OCwxMCArMjU4NywxMSBAQCB2b2lkIE5vZGU6OnJlbW92ZWRMYXN0UmVm
KCkKICAgICAvLyBBbiBleHBsaWNpdCBjaGVjayBmb3IgRG9jdW1lbnQgaGVyZSBpcyBiZXR0ZXIg
dGhhbiBhIHZpcnR1YWwgZnVuY3Rpb24gc2luY2UgaXQgaXMKICAgICAvLyBmYXN0ZXIgZm9yIG5v
bi1Eb2N1bWVudCBub2RlcywgYW5kIGJlY2F1c2UgdGhlIGNhbGwgdG8gcmVtb3ZlZExhc3RSZWYg
dGhhdCBpcyBpbmxpbmVkCiAgICAgLy8gYXQgYWxsIGRlcmVmIGNhbGwgc2l0ZXMgaXMgc21hbGxl
ciBpZiBpdCdzIGEgbm9uLXZpcnR1YWwgZnVuY3Rpb24uCi0gICAgaWYgKGlzRG9jdW1lbnROb2Rl
KCkpIHsKLSAgICAgICAgc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPih0aGlzKS0+cmVtb3ZlZExhc3RS
ZWYoKTsKKyAgICBpZiAoaXNUcmVlU2NvcGUoKSkgeworICAgICAgICB0cmVlU2NvcGUoKS0+cmVt
b3ZlZExhc3RSZWZUb1Njb3BlKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICNpZm5kZWYg
TkRFQlVHCiAgICAgbV9kZWxldGlvbkhhc0JlZ3VuID0gdHJ1ZTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgK
aW5kZXggYTgzNmJmMDZjNzA2ZTA0YzM2MjMxNzFjYWE0MWI2Y2M3ZDAxZGZkZC4uNzEwYzFjNmYz
MjcxY2NiMjMyZWIyZTNmZDUzOTEwZDdhNzQyOWFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0yNDgsNyAr
MjQ4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0luc2VydGlvblBvaW50Tm9kZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBib29sIGlzRG9jdW1lbnROb2RlKCkgY29u
c3Q7Ci0gICAgYm9vbCBpc1RyZWVTY29wZSgpIGNvbnN0OworICAgIGJvb2wgaXNUcmVlU2NvcGUo
KSBjb25zdCB7IHJldHVybiB0cmVlU2NvcGUoKS0+cm9vdE5vZGUoKSA9PSB0aGlzOyB9CiAgICAg
Ym9vbCBpc0RvY3VtZW50RnJhZ21lbnQoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzRG9jdW1l
bnRGcmFnbWVudEZsYWcpOyB9CiAgICAgYm9vbCBpc1NoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVy
biBpc0RvY3VtZW50RnJhZ21lbnQoKSAmJiBpc1RyZWVTY29wZSgpOyB9CiAgICAgYm9vbCBpc0lu
c2VydGlvblBvaW50KCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhOZWVkc1NoYWRvd1RyZWVXYWxr
ZXJGbGFnKSAmJiBpc0luc2VydGlvblBvaW50Tm9kZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5jcHAKaW5kZXggYjRmMjQxOTU1M2M3OTNmZDkwYjUyZmIwMmJkOGI4ZDg5MTllNGIzMi4uMTE0
M2JhMzQ4OTk3MGUxOTZhNmUxZGU1N2I2YmZjMTg3MDMxZDc2MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcApAQCAtNTIsNyArNTIsNyBAQCBlbnVtIFNoYWRvd1Jvb3RVc2FnZU9yaWdpblR5
cGUgewogfTsKIAogU2hhZG93Um9vdDo6U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQsIFNo
YWRvd1Jvb3RUeXBlIHR5cGUpCi0gICAgOiBEb2N1bWVudEZyYWdtZW50KGRvY3VtZW50LCBDcmVh
dGVTaGFkb3dSb290KQorICAgIDogRG9jdW1lbnRGcmFnbWVudCgwLCBDcmVhdGVTaGFkb3dSb290
KQogICAgICwgVHJlZVNjb3BlKHRoaXMsIGRvY3VtZW50KQogICAgICwgbV9wcmV2KDApCiAgICAg
LCBtX25leHQoMCkKQEAgLTYzLDcgKzYzLDYgQEAgU2hhZG93Um9vdDo6U2hhZG93Um9vdChEb2N1
bWVudCogZG9jdW1lbnQsIFNoYWRvd1Jvb3RUeXBlIHR5cGUpCiAgICAgLCBtX3JlZ2lzdGVyZWRX
aXRoUGFyZW50U2hhZG93Um9vdChmYWxzZSkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwotICAg
IHNldFRyZWVTY29wZSh0aGlzKTsKIAogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQogICAgIGlmICh0
eXBlID09IFNoYWRvd1Jvb3Q6OkF1dGhvclNoYWRvd1Jvb3QpIHsKQEAgLTg5LDYgKzg4LDExIEBA
IFNoYWRvd1Jvb3Q6On5TaGFkb3dSb290KCkKICAgICAgICAgY2xlYXJSYXJlRGF0YSgpOwogfQog
Cit2b2lkIFNoYWRvd1Jvb3Q6OmRpc3Bvc2UoKQoreworICAgIHJlbW92ZURldGFjaGVkQ2hpbGRy
ZW4oKTsKK30KKwogUGFzc1JlZlB0cjxOb2RlPiBTaGFkb3dSb290OjpjbG9uZU5vZGUoYm9vbCwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgZWMgPSBEQVRBX0NMT05FX0VSUjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5oCmluZGV4IDJkMWNmMjNiMWViYmI2ZmQ0NTcyZTBmODkwODliOWZmOTY0ZDdj
NmQuLmRiYzcxZGMwYTZjZDYyOGUwM2UwOTQ1MDYxZWRjYTY1NjMyMDk5M2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3QuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgU2hhZG93Um9v
dChEb2N1bWVudCosIFNoYWRvd1Jvb3RUeXBlKTsKICAgICB2aXJ0dWFsIH5TaGFkb3dSb290KCk7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCBjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVD
aGFuZ2UsIE5vZGUqIGFmdGVyQ2hhbmdlLCBpbnQgY2hpbGRDb3VudERlbHRhKSBPVkVSUklERTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCA0NTRhZjVkYTlkZmE4NjYwZGUwZTMxMjQ5
YmVmOTg2ZTFjYzdkMGI4Li4zODA5ZDVkN2UwMmRiOWU2ODQyZTFkYWE0MGFhODhiNDFjYjY1NGYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtNTksNiArNTksNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBzdHJ1Y3QgU2FtZVNpemVBc1RyZWVTY29wZSB7CiAgICAgdmlydHVhbCB+U2Ft
ZVNpemVBc1RyZWVTY29wZSgpOwogICAgIHZvaWQqIHBvaW50ZXJzWzhdOworICAgIGludCBpbnRz
WzFdOwogfTsKIAogQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFRyZWVTY29wZSkgPT0gc2l6ZW9mKFNh
bWVTaXplQXNUcmVlU2NvcGUpLCB0cmVlc2NvcGVfc2hvdWxkX3N0YXlfc21hbGwpOwpAQCAtNjks
MzUgKzcwLDQ3IEBAIFRyZWVTY29wZTo6VHJlZVNjb3BlKENvbnRhaW5lck5vZGUqIHJvb3ROb2Rl
LCBEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBtX3Jvb3ROb2RlKHJvb3ROb2RlKQogICAgICwg
bV9kb2N1bWVudFNjb3BlKGRvY3VtZW50KQogICAgICwgbV9wYXJlbnRUcmVlU2NvcGUoZG9jdW1l
bnQpCisgICAgLCBtX2d1YXJkUmVmQ291bnQoMCkKICAgICAsIG1faWRUYXJnZXRPYnNlcnZlclJl
Z2lzdHJ5KElkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeTo6Y3JlYXRlKCkpCiB7CiAgICAgQVNTRVJU
KHJvb3ROb2RlKTsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwogICAgIEFTU0VSVChyb290Tm9kZSAh
PSBkb2N1bWVudCk7CisgICAgbV9wYXJlbnRUcmVlU2NvcGUtPmd1YXJkUmVmKCk7CisgICAgbV9y
b290Tm9kZS0+c2V0VHJlZVNjb3BlKHRoaXMpOwogfQogCiBUcmVlU2NvcGU6OlRyZWVTY29wZShE
b2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBtX3Jvb3ROb2RlKGRvY3VtZW50KQogICAgICwgbV9k
b2N1bWVudFNjb3BlKGRvY3VtZW50KQogICAgICwgbV9wYXJlbnRUcmVlU2NvcGUoMCkKKyAgICAs
IG1fZ3VhcmRSZWZDb3VudCgwKQogICAgICwgbV9pZFRhcmdldE9ic2VydmVyUmVnaXN0cnkoSWRU
YXJnZXRPYnNlcnZlclJlZ2lzdHJ5OjpjcmVhdGUoKSkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQp
OworICAgIG1fcm9vdE5vZGUtPnNldFRyZWVTY29wZSh0aGlzKTsKIH0KIAogVHJlZVNjb3BlOjpU
cmVlU2NvcGUoKQogICAgIDogbV9yb290Tm9kZSgwKQogICAgICwgbV9kb2N1bWVudFNjb3BlKDAp
CiAgICAgLCBtX3BhcmVudFRyZWVTY29wZSgwKQorICAgICwgbV9ndWFyZFJlZkNvdW50KDApCiB7
CiB9CiAKIFRyZWVTY29wZTo6flRyZWVTY29wZSgpCiB7CisgICAgQVNTRVJUKCFtX2d1YXJkUmVm
Q291bnQpOworICAgIG1fcm9vdE5vZGUtPnNldFRyZWVTY29wZShub0RvY3VtZW50SW5zdGFuY2Uo
KSk7CisKICAgICBpZiAobV9zZWxlY3Rpb24pIHsKICAgICAgICAgbV9zZWxlY3Rpb24tPmNsZWFy
VHJlZVNjb3BlKCk7CiAgICAgICAgIG1fc2VsZWN0aW9uID0gMDsKICAgICB9CisKKyAgICBpZiAo
bV9wYXJlbnRUcmVlU2NvcGUpCisgICAgICAgIG1fcGFyZW50VHJlZVNjb3BlLT5ndWFyZERlcmVm
KCk7CiB9CiAKIHZvaWQgVHJlZVNjb3BlOjpkZXN0cm95VHJlZVNjb3BlRGF0YSgpCkBAIC0xMjAs
NiArMTMzLDkgQEAgdm9pZCBUcmVlU2NvcGU6OnNldFBhcmVudFRyZWVTY29wZShUcmVlU2NvcGUq
IG5ld1BhcmVudFNjb3BlKQogICAgIC8vIEV2ZXJ5IHNjb3BlIG90aGVyIHRoYW4gZG9jdW1lbnQg
bmVlZHMgYSBwYXJlbnQgc2NvcGUuCiAgICAgQVNTRVJUKG5ld1BhcmVudFNjb3BlKTsKIAorICAg
IG5ld1BhcmVudFNjb3BlLT5ndWFyZFJlZigpOworICAgIGlmIChtX3BhcmVudFRyZWVTY29wZSkK
KyAgICAgICAgbV9wYXJlbnRUcmVlU2NvcGUtPmd1YXJkRGVyZWYoKTsKICAgICBtX3BhcmVudFRy
ZWVTY29wZSA9IG5ld1BhcmVudFNjb3BlOwogICAgIHNldERvY3VtZW50U2NvcGUobmV3UGFyZW50
U2NvcGUtPmRvY3VtZW50U2NvcGUoKSk7CiB9CkBAIC00MTUsNCArNDMxLDI0IEBAIFRyZWVTY29w
ZSogY29tbW9uVHJlZVNjb3BlKE5vZGUqIG5vZGVBLCBOb2RlKiBub2RlQikKICAgICByZXR1cm4g
dHJlZVNjb3Blc0FbaW5kZXhBXSA9PSB0cmVlU2NvcGVzQltpbmRleEJdID8gdHJlZVNjb3Blc0Fb
aW5kZXhBXSA6IDA7CiB9CiAKKyNpZm5kZWYgTkRFQlVHCitib29sIFRyZWVTY29wZTo6ZGVsZXRp
b25IYXNCZWd1bigpCit7CisgICAgcmV0dXJuIHJvb3ROb2RlKCkgJiYgcm9vdE5vZGUoKS0+bV9k
ZWxldGlvbkhhc0JlZ3VuOworfQorCit2b2lkIFRyZWVTY29wZTo6YmVnaW5EZWxldGlvbigpCit7
CisgICAgQVNTRVJUKHRoaXMgIT0gbm9Eb2N1bWVudEluc3RhbmNlKCkpOworICAgIHJvb3ROb2Rl
KCktPm1fZGVsZXRpb25IYXNCZWd1biA9IHRydWU7Cit9CisjZW5kaWYKKworaW50IFRyZWVTY29w
ZTo6cmVmQ291bnQoKSBjb25zdAoreworICAgIGlmIChOb2RlKiByb290ID0gcm9vdE5vZGUoKSkK
KyAgICAgICAgcmV0dXJuIHJvb3QtPnJlZkNvdW50KCk7CisgICAgcmV0dXJuIDA7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAppbmRleCBiZTUwMGYxMDY0
YzhiNzgxNDljZGNkZWQ5MjgxOTFiM2Y1NmIzZWYxLi5hMzM2YTVhYzI0MDJhYzFlNzM2NGZkZDYw
Yjc5N2Q3YWI5NDRhYzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCkBAIC05Miw3ICs5Miw3IEBA
IHB1YmxpYzoKICAgICAvLyBVc2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24gbWV0aG9kcyAo
ZS5nLiwgYXBwZW5kQ2hpbGQoKSkuCiAgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsKIAot
ICAgIENvbnRhaW5lck5vZGUqIHJvb3ROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9yb290Tm9kZTsg
fQorICAgIE5vZGUqIHJvb3ROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9yb290Tm9kZTsgfQogCiAg
ICAgSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5JiBpZFRhcmdldE9ic2VydmVyUmVnaXN0cnkoKSBj
b25zdCB7IHJldHVybiAqbV9pZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuZ2V0KCk7IH0KIApAQCAt
MTA0LDEwICsxMDQsMzQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gJmluc3RhbmNlOwogICAg
IH0KIAorICAgIC8vIE5vZGVzIGJlbG9uZ2luZyB0byB0aGlzIHNjb3BlIGhvbGQgZ3VhcmQgcmVm
ZXJlbmNlcyAtCisgICAgLy8gdGhlc2UgYXJlIGVub3VnaCB0byBrZWVwIHRoZSBzY29wZSBmcm9t
IGJlaW5nIGRlc3Ryb3llZCwgYnV0CisgICAgLy8gbm90IGVub3VnaCB0byBrZWVwIGl0IGZyb20g
cmVtb3ZpbmcgaXRzIGNoaWxkcmVuLiBUaGlzIGFsbG93cyBhCisgICAgLy8gbm9kZSB0aGF0IG91
dGxpdmVzIGl0cyBzY29wZSB0byBzdGlsbCBoYXZlIGEgdmFsaWQgZG9jdW1lbnQKKyAgICAvLyBw
b2ludGVyIHdpdGhvdXQgaW50cm9kdWNpbmcgcmVmZXJlbmNlIGN5Y2xlcy4KKyAgICB2b2lkIGd1
YXJkUmVmKCkKKyAgICB7CisgICAgICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAg
ICAgICAgKyttX2d1YXJkUmVmQ291bnQ7CisgICAgfQorCisgICAgdm9pZCBndWFyZERlcmVmKCkK
KyAgICB7CisgICAgICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICAgICAgLS1t
X2d1YXJkUmVmQ291bnQ7CisgICAgICAgIGlmICghbV9ndWFyZFJlZkNvdW50ICYmICFyZWZDb3Vu
dCgpICYmIHRoaXMgIT0gbm9Eb2N1bWVudEluc3RhbmNlKCkpIHsKKyAgICAgICAgICAgIGJlZ2lu
RGVsZXRpb24oKTsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzOworICAgICAgICB9CisgICAgfQor
CisgICAgdm9pZCByZW1vdmVkTGFzdFJlZlRvU2NvcGUoKTsKKwogcHJvdGVjdGVkOgogICAgIFRy
ZWVTY29wZShDb250YWluZXJOb2RlKiwgRG9jdW1lbnQqKTsKICAgICBUcmVlU2NvcGUoRG9jdW1l
bnQqKTsKICAgICB2aXJ0dWFsIH5UcmVlU2NvcGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9z
ZSgpIHsgfQogCiAgICAgdm9pZCBkZXN0cm95VHJlZVNjb3BlRGF0YSgpOwogICAgIHZvaWQgY2xl
YXJEb2N1bWVudFNjb3BlKCk7CkBAIC0xMTgsMTIgKzE0MiwyNCBAQCBwcm90ZWN0ZWQ6CiAgICAg
ICAgIG1fZG9jdW1lbnRTY29wZSA9IGRvY3VtZW50OwogICAgIH0KIAorICAgIGJvb2wgaGFzR3Vh
cmRSZWZDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fZ3VhcmRSZWZDb3VudDsgfQorCiBwcml2YXRl
OgogICAgIFRyZWVTY29wZSgpOwogCi0gICAgQ29udGFpbmVyTm9kZSogbV9yb290Tm9kZTsKKyAg
ICBpbnQgcmVmQ291bnQoKSBjb25zdDsKKyNpZm5kZWYgTkRFQlVHCisgICAgYm9vbCBkZWxldGlv
bkhhc0JlZ3VuKCk7CisgICAgdm9pZCBiZWdpbkRlbGV0aW9uKCk7CisjZWxzZQorICAgIGJvb2wg
ZGVsZXRpb25IYXNCZWd1bigpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9pZCBiZWdpbkRlbGV0
aW9uKCkgeyB9CisjZW5kaWYKKworICAgIE5vZGUqIG1fcm9vdE5vZGU7CiAgICAgRG9jdW1lbnQq
IG1fZG9jdW1lbnRTY29wZTsKICAgICBUcmVlU2NvcGUqIG1fcGFyZW50VHJlZVNjb3BlOworICAg
IGludCBtX2d1YXJkUmVmQ291bnQ7CiAKICAgICBPd25QdHI8RG9jdW1lbnRPcmRlcmVkTWFwPiBt
X2VsZW1lbnRzQnlJZDsKICAgICBPd25QdHI8RG9jdW1lbnRPcmRlcmVkTWFwPiBtX2ltYWdlTWFw
c0J5TmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcAppbmRleCA0MWJm
ZDI1NmNjNGI1ZTVmMzE3MTk1MThiZTFiMzA4OTVlODU4ZDEwLi43M2I1NmEzZTJjMjU5NWY3MThl
NDQ5ZjA1NTkzNDdmNTE4OGQ4NzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVNjb3BlQWRvcHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0
ZXIuY3BwCkBAIC00MCw2ICs0MCw4IEBAIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVU
b05ld1Njb3BlKE5vZGUqIHJvb3QpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG5lZWRzU2NvcGVDaGFu
Z2UoKSk7CiAKKyAgICBtX29sZFNjb3BlLT5ndWFyZFJlZigpOworCiAgICAgLy8gSWYgYW4gZWxl
bWVudCBpcyBtb3ZlZCBmcm9tIGEgZG9jdW1lbnQgYW5kIHRoZW4gZXZlbnR1YWxseSBiYWNrIGFn
YWluIHRoZSBjb2xsZWN0aW9uIGNhY2hlIGZvcgogICAgIC8vIHRoYXQgZWxlbWVudCBtYXkgY29u
dGFpbiBzdGFsZSBkYXRhIGFzIGNoYW5nZXMgbWFkZSB0byBpdCB3aWxsIGhhdmUgdXBkYXRlZCB0
aGUgRE9NVHJlZVZlcnNpb24KICAgICAvLyBvZiB0aGUgZG9jdW1lbnQgaXQgd2FzIG1vdmVkIHRv
LiBCeSBpbmNyZWFzaW5nIHRoZSBET01UcmVlVmVyc2lvbiBvZiB0aGUgZG9uYXRpbmcgZG9jdW1l
bnQgaGVyZQpAQCAtNTEsNyArNTMsNyBAQCB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVl
VG9OZXdTY29wZShOb2RlKiByb290KSBjb25zdAogICAgICAgICBvbGREb2N1bWVudC0+aW5jRE9N
VHJlZVZlcnNpb24oKTsKIAogICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3Q7IG5vZGU7IG5vZGUg
PSBOb2RlVHJhdmVyc2FsOjpuZXh0KG5vZGUsIHJvb3QpKSB7Ci0gICAgICAgIG5vZGUtPnNldFRy
ZWVTY29wZShtX25ld1Njb3BlKTsKKyAgICAgICAgc2V0TmV3U2NvcGVUbyhub2RlKTsKIAogICAg
ICAgICBpZiAod2lsbE1vdmVUb05ld0RvY3VtZW50KQogICAgICAgICAgICAgbW92ZU5vZGVUb05l
d0RvY3VtZW50KG5vZGUsIG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7CkBAIC03Niw2ICs3OCw4
IEBAIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld1Njb3BlKE5vZGUqIHJvb3Qp
IGNvbnN0CiAgICAgICAgICAgICAgICAgbW92ZVRyZWVUb05ld0RvY3VtZW50KHNoYWRvdywgb2xk
RG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKICAgICAgICAgfQogICAgIH0KKworICAgIG1fb2xkU2Nv
cGUtPmd1YXJkRGVyZWYoKTsKIH0KIAogdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRv
TmV3RG9jdW1lbnQoTm9kZSogcm9vdCwgRG9jdW1lbnQqIG9sZERvY3VtZW50LCBEb2N1bWVudCog
bmV3RG9jdW1lbnQpIGNvbnN0CkBAIC05OSw2ICsxMDMsMTUgQEAgdm9pZCBUcmVlU2NvcGVBZG9w
dGVyOjplbnN1cmVEaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZChEb2N1bWVudCogb2xkRG9j
dW1lbnQKIH0KICNlbmRpZgogCitpbmxpbmUgdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjpzZXROZXdT
Y29wZVRvKE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFub2RlLT5pc1RyZWVTY29w
ZSgpKTsKKyAgICBBU1NFUlQobm9kZS0+dHJlZVNjb3BlKCkgPT0gbV9vbGRTY29wZSk7CisgICAg
bV9uZXdTY29wZS0+Z3VhcmRSZWYoKTsKKyAgICBtX29sZFNjb3BlLT5ndWFyZERlcmVmKCk7Cisg
ICAgbm9kZS0+c2V0VHJlZVNjb3BlKG1fbmV3U2NvcGUpOworfQorCiBpbmxpbmUgdm9pZCBUcmVl
U2NvcGVBZG9wdGVyOjptb3ZlTm9kZVRvTmV3RG9jdW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQq
IG9sZERvY3VtZW50LCBEb2N1bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KCFub2RlLT5pbkRvY3VtZW50KCkgfHwgb2xkRG9jdW1lbnQgIT0gbmV3RG9jdW1lbnQpOwpAQCAt
MTA5LDcgKzEyMiw2IEBAIGlubGluZSB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVOb2RlVG9O
ZXdEb2N1bWVudChOb2RlKiBub2RlLCBEb2N1bWVudCogb2xkRG9jCiAgICAgICAgICAgICByYXJl
RGF0YS0+bm9kZUxpc3RzKCktPmFkb3B0RG9jdW1lbnQob2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50
KTsKICAgICB9CiAKLSAgICBuZXdEb2N1bWVudC0+Z3VhcmRSZWYoKTsKICAgICBpZiAob2xkRG9j
dW1lbnQpCiAgICAgICAgIG9sZERvY3VtZW50LT5tb3ZlTm9kZUl0ZXJhdG9yc1RvTmV3RG9jdW1l
bnQobm9kZSwgbmV3RG9jdW1lbnQpOwogCkBAIC0xMjMsOSArMTM1LDYgQEAgaW5saW5lIHZvaWQg
VHJlZVNjb3BlQWRvcHRlcjo6bW92ZU5vZGVUb05ld0RvY3VtZW50KE5vZGUqIG5vZGUsIERvY3Vt
ZW50KiBvbGREb2MKIAogICAgIG5vZGUtPmRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERvY3VtZW50
KTsKICAgICBBU1NFUlQoZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQpOwotICAgIAotICAg
IGlmIChvbGREb2N1bWVudCkKLSAgICAgICAgb2xkRG9jdW1lbnQtPmd1YXJkRGVyZWYoKTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmgKaW5kZXggNGNhNDE4MjE5MGNk
YWNjNTgzMmRhYmJjMGVkNDZlZjQyZmZiZmMzMy4uNmM1NjU2Y2ZlOTU0MTgyOTgxMjAzYmJjNDZi
MjhkZTgxZDI4OGFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFk
b3B0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5oCkBAIC00
NSw2ICs0NSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgorICAgIHZvaWQgc2V0TmV3
U2NvcGVUbyhOb2RlKikgY29uc3Q7CiAgICAgdm9pZCBtb3ZlVHJlZVRvTmV3U2NvcGUoTm9kZSop
IGNvbnN0OwogICAgIHZvaWQgbW92ZVRyZWVUb05ld0RvY3VtZW50KE5vZGUqLCBEb2N1bWVudCog
b2xkRG9jdW1lbnQsIERvY3VtZW50KiBuZXdEb2N1bWVudCkgY29uc3Q7CiAgICAgdm9pZCBtb3Zl
Tm9kZVRvTmV3RG9jdW1lbnQoTm9kZSosIERvY3VtZW50KiBvbGREb2N1bWVudCwgRG9jdW1lbnQq
IG5ld0RvY3VtZW50KSBjb25zdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189712</attachid>
            <date>2013-02-22 01:15:01 -0800</date>
            <delta_ts>2013-02-23 00:40:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109777-20130222181120.patch</filename>
            <type>text/plain</type>
            <size>23800</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU5MTk4MWJkNzdmNDIx
YjQyZDkzYWZlNGNiOTM2MWM2NGIwYTgwZS4uOWY1MGQzNjZiMjdlYWM4MGM2OTFhYTkyNDhlY2Nl
Mzg5Nzg2Mzg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDEzLTAyLTE5ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGd1YXJkUmVmKCkgYW5kIGd1YXJkRGVyZWYoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgbW92ZXMgbV9ndWFyZFJlZkNvdW50
IGZyb20gRG9jdW1lbnQgdG8gVHJlZVNjb3BlLAorICAgICAgICB3aGljaCBhbGxvd3MgU2hhZG93
Um9vdCB0byBiZSBndWFyZGVkIGJ5IGd1YXJkUmVmKCkgbWVjaGFuaXNtIGFzCisgICAgICAgIERv
Y3VtZW50LiBBZnRlciByMTM3NTI0LCBOb2RlIHJlZmVyZXMgVHJlZVNjb3BlIGluc3RlYWQgb2YK
KyAgICAgICAgRG9jdW1lbnQuIFRoaXMgaXMgbmF0dXJhbCBjb25zZXF1ZW5jZSBvZiB0aGUgY2hh
bmdlOiBJdCBubyBsb25nZXIKKyAgICAgICAgbWFrZXMgc2Vuc2UgdG8gZ3VhcmRSZWYoKSBEb2N1
bWVudCBwb2ludGVyIGZyb20gTm9kZS4KKworICAgICAgICBEZXRhaWw6CisKKyAgICAgICAgLSBE
b2N1bWVudDo6bV9ndWFyZFJlZkNvdW50IGFuZCByZWxhdGVkIGZ1bmNkdGlvbnMgYXJlIG1vdmVk
IHRvIFRyZWVTY29wZQorICAgICAgICAtIERvY3VtZW50OjpyZW1vdmVkTGFzdFJlZiBpcyBmYWN0
b3JlZCBvdXQgaW50byBUcmVlU2NvcGU6OnJlbW92ZWRMYXN0UmVmVG9TY29wZSgpLAorICAgICAg
ICAgIFRyZWVTY29wZTo6ZGlzcG9zZSgpIGFuZCBEb2N1ZW50OjpkaXNwb3NlKCkuIFNoYWRvd1Jv
b3QgYWxzbyBnb3QgaXRzIG93biBkaXNwb3NlKCkgaW1wbGVtZW50YXRpb24uCisgICAgICAgIC0g
TW92ZWQgZ3VhcmRSZWYoKSBhbmQgZ3VhcmREZXJlZigpIGNhbGxzIHRvIFRyZWVTY29wZSBhbmQg
Tm9kZS4KKyAgICAgICAgICBOb3RlIHRoYXQgdGhlcmUgYXJlIHR3byAiZ3VhcmRlZCIgVHJlZVNj
b3BlIHJlZmVyZW5jZXMuIE9uZSBpcworICAgICAgICAgIE5vZGU6Om1fdHJlZVNjb3BlIGFuZCBh
bm90aGVyIGlzIFRyZWVTY29wZTo6bV9wYXJlbnRUcmVlU2NvcGUuCisgICAgICAgICAgVGhlIGd1
YXJkZWQtcmVmIG1hbmFnZW1lbnQgaXMgbm93IGVuY2Fwc3VsYXRlZCBpbiB0aGVzZSB0d28gY2xh
c3Nlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMuIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMu
CisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp+RG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRp
c3Bvc2UpOiBFeHRyYWN0ZWQgZnJvbSByZW1vdmVkTGFzdFJlZigpCisgICAgICAgICogZG9tL0Rv
Y3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjppc1RyZWVTY29wZSk6CisgICAgICAg
IChXZWJDb3JlOjpOb2RlOjpOb2RlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRGcmFnbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50OjpEb2N1bWVudEZyYWdtZW50
KTogUmVtb3ZlIEFTU0VSVCgpIGFuZCBtb3ZlIGl0IHRvIC4uLgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRGcmFnbWVudDo6Y3JlYXRlKTogLi4uIGhlcmUsIHRvIGFsbG93IE5VTEwgZG9jdW1l
bnQgZnJvbSBTaGFkb3dSb290LgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6On5Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnJlbW92ZWRMYXN0
UmVmKToKKyAgICAgICAgKiBkb20vTm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6c2V0
VHJlZVNjb3BlKToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290OjpTaGFkb3dSb290KTogUGFzc2VkIE5VTEwgZG9jdW1lbnQgdG8gc3Vw
ZXJjbGFzcy4gVGhpcyBhbGlnbnMgd2hhdCBEb2N1bWVudCBpcyBkb2luZy4KKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd1Jvb3Q6OmRpc3Bvc2UpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vU2hhZG93
Um9vdC5oOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5j
cHA6CisgICAgICAgIChTYW1lU2l6ZUFzVHJlZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlRy
ZWVTY29wZTo6VHJlZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6flRyZWVT
Y29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmRpc3Bvc2UpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6c2V0UGFyZW50VHJlZVNjb3BlKToKKyAgICAgICAg
KFdlYkNvcmU6OlRyZWVTY29wZTo6ZGVsZXRpb25IYXNCZWd1bik6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGU6OmJlZ2luRGVsZXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3Bl
OjpyZWZDb3VudCk6IEFkZGVkLgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuaDogVHVybmVkIG1f
cm9vdE5vZGUgdG8gTm9kZSogZnJvbSBDb250YWluZXJOb2RlKiBmb3IgTm9kZTo6aXNUcmVlU2Nv
cGUgdG8gYmUgaW5saW5lZC4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6Z3VhcmRSZWYp
OiBQdWxsZWQgdXAgZnJvbSBEb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6
Z3VhcmREZXJlZik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpoYXNHdWFy
ZFJlZkNvdW50KTogQWRkZWQgdG8gaGlkZSBtX2d1YXJkUmVmQ291bnQuCisgICAgICAgIChXZWJD
b3JlOjpUcmVlU2NvcGU6OmRlbGV0aW9uSGFzQmVndW4pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlRyZWVTY29wZTo6YmVnaW5EZWxldGlvbik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
VHJlZVNjb3BlOjpyZW1vdmVkTGFzdFJlZlRvU2NvcGUpOiBQdWxsZWQgdXAgZnJvbSBEb2N1bWVu
dC4KKyAgICAgICAgKiBkb20vVHJlZVNjb3BlQWRvcHRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUpOgorICAgICAgICAoV2ViQ29y
ZTo6VHJlZVNjb3BlQWRvcHRlcjo6bW92ZU5vZGVUb05ld0RvY3VtZW50KToKKwogMjAxMy0wMi0y
MSAgUGhpbGlwIFJvZ2VycyAgPHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBkZWVw
IGNvcHkgb2YgSW1hZ2VCdWZmZXIgaW4gdGlsZWQgU1ZHIGJhY2tncm91bmRzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IDllZmMyYzI4MTk2YTVjZDc2NDc1ZWQ2Y2RjZmY2N2I4OGFiNzJlYmUuLjYx
MWE2NDA5ZjMwZDMwNzUyMGZkZWYzOTJhYWYzZTAxZDNiMjM5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC0xNDE0LDcgKzE0MTQsNiBAQCBfX1pOSzdXZWJDb3JlNE5vZGUxMXRleHRDb250ZW50
RWIKIF9fWk43V2ViQ29yZTROb2RlMTJpbnNlcnRCZWZvcmVFTjNXVEYxMFBhc3NSZWZQdHJJUzBf
RUVQUzBfUmliCiBfX1pOSzdXZWJDb3JlNE5vZGUxM293bmVyRG9jdW1lbnRFdgogX19aTks3V2Vi
Q29yZTROb2RlMTRpc0Rlc2NlbmRhbnRPZkVQS1MwXwotX19aTks3V2ViQ29yZTROb2RlMTFpc1Ry
ZWVTY29wZUV2CiBfX1pOSzdXZWJDb3JlNE5vZGUxOGdldFN1YnJlc291cmNlVVJMc0VSTjNXVEYx
MUxpc3RIYXNoU2V0SU5TXzRLVVJMRUxtMjU2RU5TXzhLVVJMSGFzaEVFRQogX19aTks3V2ViQ29y
ZTROb2RlMzFudW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuRXYKIF9fWk5LN1dlYkNvcmU0
Tm9kZTlub2RlSW5kZXhFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggODA3YjVhODk5NmU4
NjAxYWZhMThjNTdjYmM0YjFjMzQ2OTU1MWEyOS4uNzVmMDYxZTYxZGQ1YjFjOThmNzQ4Yzg1YzVj
NThjMzkwNDI0NTdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00MDksNyArNDA5LDYg
QEAgdWludDY0X3QgRG9jdW1lbnQ6OnNfZ2xvYmFsVHJlZVZlcnNpb24gPSAwOwogRG9jdW1lbnQ6
OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJv
b2wgaXNIVE1MKQogICAgIDogQ29udGFpbmVyTm9kZSgwLCBDcmVhdGVEb2N1bWVudCkKICAgICAs
IFRyZWVTY29wZSh0aGlzKQotICAgICwgbV9ndWFyZFJlZkNvdW50KDApCiAgICAgLCBtX3N0eWxl
UmVzb2x2ZXJUaHJvd2F3YXlUaW1lcih0aGlzLCAmRG9jdW1lbnQ6OnN0eWxlUmVzb2x2ZXJUaHJv
d2F3YXlUaW1lckZpcmVkKQogICAgICwgbV9sYXN0U3R5bGVSZXNvbHZlckFjY2Vzc1RpbWUoMCkK
ICAgICAsIG1fYWN0aXZlUGFyc2VyQ291bnQoMCkKQEAgLTQ4MSw4ICs0ODAsNiBAQCBEb2N1bWVu
dDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwg
Ym9vbCBpc0hUTUwpCiAgICAgLCBtX3RlbXBsYXRlRG9jdW1lbnRIb3N0KDApCiAjZW5kaWYKIHsK
LSAgICBzZXRUcmVlU2NvcGUodGhpcyk7Ci0KICAgICBtX3ByaW50aW5nID0gZmFsc2U7CiAgICAg
bV9wYWdpbmF0ZWRGb3JTY3JlZW4gPSBmYWxzZTsKIApAQCAtNTgyLDcgKzU3OSw3IEBAIERvY3Vt
ZW50Ojp+RG9jdW1lbnQoKQogICAgIEFTU0VSVChtX3Jhbmdlcy5pc0VtcHR5KCkpOwogICAgIEFT
U0VSVCghbV9zdHlsZVJlY2FsY1RpbWVyLmlzQWN0aXZlKCkpOwogICAgIEFTU0VSVCghbV9wYXJl
bnRUcmVlU2NvcGUpOwotICAgIEFTU0VSVCghbV9ndWFyZFJlZkNvdW50KTsKKyAgICBBU1NFUlQo
IWhhc0d1YXJkUmVmQ291bnQoKSk7CiAKICNpZiBFTkFCTEUoVEVNUExBVEVfRUxFTUVOVCkKICAg
ICBpZiAobV90ZW1wbGF0ZURvY3VtZW50KQpAQCAtNjQ5LDYwICs2NDYsNDAgQEAgRG9jdW1lbnQ6
On5Eb2N1bWVudCgpCiAgICAgSW5zcGVjdG9yQ291bnRlcnM6OmRlY3JlbWVudENvdW50ZXIoSW5z
cGVjdG9yQ291bnRlcnM6OkRvY3VtZW50Q291bnRlcik7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnJl
bW92ZWRMYXN0UmVmKCkKK3ZvaWQgRG9jdW1lbnQ6OmRpc3Bvc2UoKQogewotICAgIEFTU0VSVCgh
bV9kZWxldGlvbkhhc0JlZ3VuKTsKLSAgICBpZiAobV9ndWFyZFJlZkNvdW50KSB7Ci0gICAgICAg
IC8vIElmIHJlbW92aW5nIGEgY2hpbGQgcmVtb3ZlcyB0aGUgbGFzdCBzZWxmLW9ubHkgcmVmLCB3
ZSBkb24ndAotICAgICAgICAvLyB3YW50IHRoZSBzY29wZSB0byBiZSBkZXN0cnVjdGVkIHVudGls
IGFmdGVyCi0gICAgICAgIC8vIHJlbW92ZURldGFjaGVkQ2hpbGRyZW4gcmV0dXJucywgc28gd2Ug
Z3VhcmQgb3Vyc2VsdmVzIHdpdGggYW4KLSAgICAgICAgLy8gZXh0cmEgc2VsZi1vbmx5IHJlZi4K
LSAgICAgICAgZ3VhcmRSZWYoKTsKLQotICAgICAgICAvLyBXZSBtdXN0IG1ha2Ugc3VyZSBub3Qg
dG8gYmUgcmV0YWluaW5nIGFueSBvZiBvdXIgY2hpbGRyZW4gdGhyb3VnaAotICAgICAgICAvLyB0
aGVzZSBleHRyYSBwb2ludGVycyBvciB3ZSB3aWxsIGNyZWF0ZSBhIHJlZmVyZW5jZSBjeWNsZS4K
LSAgICAgICAgbV9kb2NUeXBlID0gMDsKLSAgICAgICAgbV9mb2N1c2VkTm9kZSA9IDA7Ci0gICAg
ICAgIG1faG92ZXJOb2RlID0gMDsKLSAgICAgICAgbV9hY3RpdmVFbGVtZW50ID0gMDsKLSAgICAg
ICAgbV90aXRsZUVsZW1lbnQgPSAwOwotICAgICAgICBtX2RvY3VtZW50RWxlbWVudCA9IDA7Ci0g
ICAgICAgIG1fY29udGV4dEZlYXR1cmVzID0gQ29udGV4dEZlYXR1cmVzOjpkZWZhdWx0U3dpdGNo
KCk7Ci0gICAgICAgIG1fdXNlckFjdGlvbkVsZW1lbnRzLmRvY3VtZW50RGlkUmVtb3ZlTGFzdFJl
ZigpOworICAgIC8vIFdlIG11c3QgbWFrZSBzdXJlIG5vdCB0byBiZSByZXRhaW5pbmcgYW55IG9m
IG91ciBjaGlsZHJlbiB0aHJvdWdoCisgICAgLy8gdGhlc2UgZXh0cmEgcG9pbnRlcnMgb3Igd2Ug
d2lsbCBjcmVhdGUgYSByZWZlcmVuY2UgY3ljbGUuCisgICAgbV9kb2NUeXBlID0gMDsKKyAgICBt
X2ZvY3VzZWROb2RlID0gMDsKKyAgICBtX2hvdmVyTm9kZSA9IDA7CisgICAgbV9hY3RpdmVFbGVt
ZW50ID0gMDsKKyAgICBtX3RpdGxlRWxlbWVudCA9IDA7CisgICAgbV9kb2N1bWVudEVsZW1lbnQg
PSAwOworICAgIG1fY29udGV4dEZlYXR1cmVzID0gQ29udGV4dEZlYXR1cmVzOjpkZWZhdWx0U3dp
dGNoKCk7CisgICAgbV91c2VyQWN0aW9uRWxlbWVudHMuZG9jdW1lbnREaWRSZW1vdmVMYXN0UmVm
KCk7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgICAgICBtX2Z1bGxTY3JlZW5FbGVt
ZW50ID0gMDsKLSAgICAgICAgbV9mdWxsU2NyZWVuRWxlbWVudFN0YWNrLmNsZWFyKCk7CisgICAg
bV9mdWxsU2NyZWVuRWxlbWVudCA9IDA7CisgICAgbV9mdWxsU2NyZWVuRWxlbWVudFN0YWNrLmNs
ZWFyKCk7CiAjZW5kaWYKIAotICAgICAgICBkZXRhY2hQYXJzZXIoKTsKKyAgICBkZXRhY2hQYXJz
ZXIoKTsKIAotICAgICAgICAvLyByZW1vdmVEZXRhY2hlZENoaWxkcmVuKCkgZG9lc24ndCBhbHdh
eXMgdW5yZWdpc3RlciBJRHMsCi0gICAgICAgIC8vIHNvIHRlYXIgZG93biBzY29wZSBpbmZvcm1h
dGlvbiB1cGZyb250IHRvIGF2b2lkIGhhdmluZyBzdGFsZSByZWZlcmVuY2VzIGluIHRoZSBtYXAu
Ci0gICAgICAgIGRlc3Ryb3lUcmVlU2NvcGVEYXRhKCk7Ci0gICAgICAgIHJlbW92ZURldGFjaGVk
Q2hpbGRyZW4oKTsKKyAgICAvLyByZW1vdmVEZXRhY2hlZENoaWxkcmVuKCkgZG9lc24ndCBhbHdh
eXMgdW5yZWdpc3RlciBJRHMsCisgICAgLy8gc28gdGVhciBkb3duIHNjb3BlIGluZm9ybWF0aW9u
IHVwZnJvbnQgdG8gYXZvaWQgaGF2aW5nIHN0YWxlIHJlZmVyZW5jZXMgaW4gdGhlIG1hcC4KKyAg
ICBkZXN0cm95VHJlZVNjb3BlRGF0YSgpOworICAgIHJlbW92ZURldGFjaGVkQ2hpbGRyZW4oKTsK
IAotICAgICAgICBtX21hcmtlcnMtPmRldGFjaCgpOworICAgIG1fbWFya2Vycy0+ZGV0YWNoKCk7
CiAKLSAgICAgICAgbV9jc3NDYW52YXNFbGVtZW50cy5jbGVhcigpOworICAgIG1fY3NzQ2FudmFz
RWxlbWVudHMuY2xlYXIoKTsKIAogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkK
LSAgICAgICAgLy8gRklYTUU6IGNvbnNpZGVyIHVzaW5nIEFjdGl2ZURPTU9iamVjdC4KLSAgICAg
ICAgaWYgKG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQotICAgICAgICAgICAgbV9zY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXItPmNsZWFyRG9jdW1lbnRQb2ludGVyKCk7Ci0gICAgICAg
IG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNsZWFyKCk7Ci0jZW5kaWYKLQotI2lmbmRl
ZiBOREVCVUcKLSAgICAgICAgbV9pblJlbW92ZWRMYXN0UmVmRnVuY3Rpb24gPSBmYWxzZTsKKyAg
ICAvLyBGSVhNRTogY29uc2lkZXIgdXNpbmcgQWN0aXZlRE9NT2JqZWN0LgorICAgIGlmIChtX3Nj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcikKKyAgICAgICAgbV9zY3JpcHRlZEFuaW1hdGlvbkNv
bnRyb2xsZXItPmNsZWFyRG9jdW1lbnRQb2ludGVyKCk7CisgICAgbV9zY3JpcHRlZEFuaW1hdGlv
bkNvbnRyb2xsZXIuY2xlYXIoKTsKICNlbmRpZgotCi0gICAgICAgIGd1YXJkRGVyZWYoKTsKLSAg
ICB9IGVsc2UgewotI2lmbmRlZiBOREVCVUcgCi0gICAgICAgIG1fZGVsZXRpb25IYXNCZWd1biA9
IHRydWU7IAotI2VuZGlmIAotICAgICAgICBkZWxldGUgdGhpczsKLSAgICB9CiB9CiAKIEVsZW1l
bnQqIERvY3VtZW50OjpnZXRFbGVtZW50QnlJZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAppbmRleCAxMjY0MzhkNzBlZjAxNjFiYzJhZmU4ZmNlYTc2OGE0
YmM4NzAzN2FiLi45NjFlNTFhZGExYWJhZGQ4NjlmNDJlY2Y5MjMyYTAzY2RmMGQzNWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaApAQCAtMjI5LDI5ICsyMjksNiBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
Q29udGFpbmVyTm9kZTo6cmVmOwogICAgIHVzaW5nIENvbnRhaW5lck5vZGU6OmRlcmVmOwogCi0g
ICAgLy8gTm9kZXMgYmVsb25naW5nIHRvIHRoaXMgZG9jdW1lbnQgaG9sZCBndWFyZCByZWZlcmVu
Y2VzIC0KLSAgICAvLyB0aGVzZSBhcmUgZW5vdWdoIHRvIGtlZXAgdGhlIGRvY3VtZW50IGZyb20g
YmVpbmcgZGVzdHJveWVkLCBidXQKLSAgICAvLyBub3QgZW5vdWdoIHRvIGtlZXAgaXQgZnJvbSBy
ZW1vdmluZyBpdHMgY2hpbGRyZW4uIFRoaXMgYWxsb3dzIGEKLSAgICAvLyBub2RlIHRoYXQgb3V0
bGl2ZXMgaXRzIGRvY3VtZW50IHRvIHN0aWxsIGhhdmUgYSB2YWxpZCBkb2N1bWVudAotICAgIC8v
IHBvaW50ZXIgd2l0aG91dCBpbnRyb2R1Y2luZyByZWZlcmVuY2UgY3ljbGVzLgotICAgIHZvaWQg
Z3VhcmRSZWYoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2RlbGV0aW9uSGFzQmVndW4pOwot
ICAgICAgICArK21fZ3VhcmRSZWZDb3VudDsKLSAgICB9Ci0KLSAgICB2b2lkIGd1YXJkRGVyZWYo
KQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX2RlbGV0aW9uSGFzQmVndW4pOwotICAgICAgICAt
LW1fZ3VhcmRSZWZDb3VudDsKLSAgICAgICAgaWYgKCFtX2d1YXJkUmVmQ291bnQgJiYgIXJlZkNv
dW50KCkpIHsKLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgICAgICBtX2RlbGV0aW9uSGFzQmVndW4g
PSB0cnVlOwotI2VuZGlmCi0gICAgICAgICAgICBkZWxldGUgdGhpczsKLSAgICAgICAgfQotICAg
IH0KLQogICAgIEVsZW1lbnQqIGdldEVsZW1lbnRCeUlkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQp
IGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMTIxNyw4ICsxMTk0LDggQEAgcHJpdmF0ZToKICAgICBm
cmllbmQgY2xhc3MgTm9kZTsKICAgICBmcmllbmQgY2xhc3MgSWdub3JlRGVzdHJ1Y3RpdmVXcml0
ZUNvdW50SW5jcmVtZW50ZXI7CiAKLSAgICB2b2lkIHJlbW92ZWRMYXN0UmVmKCk7Ci0gICAgCisg
ICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSBPVkVSUklERTsKKwogICAgIHZvaWQgZGV0YWNoUGFy
c2VyKCk7CiAKICAgICB0eXBlZGVmIHZvaWQgKCpBcmd1bWVudHNDYWxsYmFjaykoY29uc3QgU3Ry
aW5nJiBrZXlTdHJpbmcsIGNvbnN0IFN0cmluZyYgdmFsdWVTdHJpbmcsIERvY3VtZW50Kiwgdm9p
ZCogZGF0YSk7CkBAIC0xMjg2LDggKzEyNjMsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRkTGlz
dGVuZXJUeXBlKExpc3RlbmVyVHlwZSBsaXN0ZW5lclR5cGUpIHsgbV9saXN0ZW5lclR5cGVzIHw9
IGxpc3RlbmVyVHlwZTsgfQogICAgIHZvaWQgYWRkTXV0YXRpb25FdmVudExpc3RlbmVyVHlwZUlm
RW5hYmxlZChMaXN0ZW5lclR5cGUpOwogCi0gICAgaW50IG1fZ3VhcmRSZWZDb3VudDsKLQogICAg
IHZvaWQgc3R5bGVSZXNvbHZlclRocm93YXdheVRpbWVyRmlyZWQoVGltZXI8RG9jdW1lbnQ+Kik7
CiAgICAgVGltZXI8RG9jdW1lbnQ+IG1fc3R5bGVSZXNvbHZlclRocm93YXdheVRpbWVyOwogICAg
IGRvdWJsZSBtX2xhc3RTdHlsZVJlc29sdmVyQWNjZXNzVGltZTsKQEAgLTE2MDMsMTAgKzE1Nzgs
OSBAQCBpbmxpbmUgTm9kZTo6Tm9kZShEb2N1bWVudCogZG9jdW1lbnQsIENvbnN0cnVjdGlvblR5
cGUgdHlwZSkKICAgICAsIG1fcHJldmlvdXMoMCkKICAgICAsIG1fbmV4dCgwKQogewotICAgIGlm
IChkb2N1bWVudCkKLSAgICAgICAgZG9jdW1lbnQtPmd1YXJkUmVmKCk7Ci0gICAgZWxzZQorICAg
IGlmICghbV90cmVlU2NvcGUpCiAgICAgICAgIG1fdHJlZVNjb3BlID0gVHJlZVNjb3BlOjpub0Rv
Y3VtZW50SW5zdGFuY2UoKTsKKyAgICBtX3RyZWVTY29wZS0+Z3VhcmRSZWYoKTsKIAogI2lmICFk
ZWZpbmVkKE5ERUJVRykgfHwgKGRlZmluZWQoRFVNUF9OT0RFX1NUQVRJU1RJQ1MpICYmIERVTVBf
Tk9ERV9TVEFUSVNUSUNTKQogICAgIHRyYWNrRm9yRGVidWdnaW5nKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRGcmFnbWVudC5jcHAKaW5kZXggODUwMTViMmY0YWFlZDc5MmQ1NWU1MzA3NDRh
NGVkMTNiNTI3ZGQ2Zi4uZTY2MDI0OGM1NTY4ZTJkMTBhYTdlY2M4NGY1NDk2YjM3NTg3MTlmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtMzQsMTEgKzM0LDEx
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIERvY3VtZW50RnJhZ21lbnQ6OkRvY3VtZW50RnJhZ21l
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25UeXBlIGNvbnN0cnVjdGlvblR5cGUp
CiAgICAgOiBDb250YWluZXJOb2RlKGRvY3VtZW50LCBjb25zdHJ1Y3Rpb25UeXBlKQogewotICAg
IEFTU0VSVChkb2N1bWVudCk7CiB9CiAKIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRG9j
dW1lbnRGcmFnbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKKyAgICBBU1NFUlQo
ZG9jdW1lbnQpOwogICAgIHJldHVybiBhZG9wdFJlZihuZXcgRG9jdW1lbnRGcmFnbWVudChkb2N1
bWVudCwgTm9kZTo6Q3JlYXRlRG9jdW1lbnRGcmFnbWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
aW5kZXggZTdjNDY1MDFkMjE5YTFkNDhkYjhiYjljYzBkMzBkY2EzZDk5ZWMzNC4uZmE3Y2FhODZh
YjY4NDNmMjVlNmMwNzg2NGEwNTY5NDhhZmM0NzI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtNDQy
LDggKzQ0Miw3IEBAIE5vZGU6On5Ob2RlKCkKICAgICBpZiAobV9uZXh0KQogICAgICAgICBtX25l
eHQtPnNldFByZXZpb3VzU2libGluZygwKTsKIAotICAgIGlmIChkb2MpCi0gICAgICAgIGRvYy0+
Z3VhcmREZXJlZigpOworICAgIG1fdHJlZVNjb3BlLT5ndWFyZERlcmVmKCk7CiAKICAgICBJbnNw
ZWN0b3JDb3VudGVyczo6ZGVjcmVtZW50Q291bnRlcihJbnNwZWN0b3JDb3VudGVyczo6Tm9kZUNv
dW50ZXIpOwogfQpAQCAtODkyLDExICs4OTEsNiBAQCBib29sIE5vZGU6OmlzRm9jdXNhYmxlKCkg
Y29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBOb2RlOjppc1RyZWVTY29wZSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIHRyZWVTY29wZSgpLT5yb290Tm9kZSgpID09IHRoaXM7Ci19Ci0K
IGJvb2wgTm9kZTo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QKIHsK
ICAgICByZXR1cm4gaXNGb2N1c2FibGUoKSAmJiB0YWJJbmRleCgpID49IDA7CkBAIC0yNTYxLDYg
KzI1NTUsMzEgQEAgUGFzc1JlZlB0cjxQcm9wZXJ0eU5vZGVMaXN0PiBOb2RlOjpwcm9wZXJ0eU5v
ZGVMaXN0KGNvbnN0IFN0cmluZyYgbmFtZSkKIH0KICNlbmRpZgogCisvLyBUaGlzIGlzIGhlcmUg
Zm9yIGlubGluaW5nCitpbmxpbmUgdm9pZCBUcmVlU2NvcGU6OnJlbW92ZWRMYXN0UmVmVG9TY29w
ZSgpCit7CisgICAgQVNTRVJUKCFkZWxldGlvbkhhc0JlZ3VuKCkpOworICAgIGlmIChtX2d1YXJk
UmVmQ291bnQpIHsKKyAgICAgICAgLy8gSWYgcmVtb3ZpbmcgYSBjaGlsZCByZW1vdmVzIHRoZSBs
YXN0IHNlbGYtb25seSByZWYsIHdlIGRvbid0CisgICAgICAgIC8vIHdhbnQgdGhlIHNjb3BlIHRv
IGJlIGRlc3RydWN0ZWQgdW50aWwgYWZ0ZXIKKyAgICAgICAgLy8gcmVtb3ZlRGV0YWNoZWRDaGls
ZHJlbiByZXR1cm5zLCBzbyB3ZSBndWFyZCBvdXJzZWx2ZXMgd2l0aCBhbgorICAgICAgICAvLyBl
eHRyYSBzZWxmLW9ubHkgcmVmLgorICAgICAgICBndWFyZFJlZigpOworICAgICAgICBkaXNwb3Nl
KCk7CisjaWZuZGVmIE5ERUJVRworICAgICAgICAvLyBXZSBuZWVkIHRvIGRvIHRoaXMgcmlnaHQg
bm93IHNpbmNlIGd1YXJkRGVyZWYoKSBjYW4gZGVsZXRlIHRoaXMuCisgICAgICAgIHJvb3ROb2Rl
KCktPm1faW5SZW1vdmVkTGFzdFJlZkZ1bmN0aW9uID0gZmFsc2U7CisjZW5kaWYKKyAgICAgICAg
Z3VhcmREZXJlZigpOworICAgIH0gZWxzZSB7CisjaWZuZGVmIE5ERUJVRworICAgICAgICByb290
Tm9kZSgpLT5tX2luUmVtb3ZlZExhc3RSZWZGdW5jdGlvbiA9IGZhbHNlOworICAgICAgICBiZWdp
bkRlbGV0aW9uKCk7CisjZW5kaWYKKyAgICAgICAgZGVsZXRlIHRoaXM7CisgICAgfQorfQorCiAv
LyBJdCdzIGltcG9ydGFudCBub3QgdG8gaW5saW5lIHJlbW92ZWRMYXN0UmVmLCBiZWNhdXNlIHdl
IGRvbid0IHdhbnQgdG8gaW5saW5lIHRoZSBjb2RlIHRvCiAvLyBkZWxldGUgYSBOb2RlIGF0IGVh
Y2ggZGVyZWYgY2FsbCBzaXRlLgogdm9pZCBOb2RlOjpyZW1vdmVkTGFzdFJlZigpCkBAIC0yNTY4
LDEwICsyNTg3LDExIEBAIHZvaWQgTm9kZTo6cmVtb3ZlZExhc3RSZWYoKQogICAgIC8vIEFuIGV4
cGxpY2l0IGNoZWNrIGZvciBEb2N1bWVudCBoZXJlIGlzIGJldHRlciB0aGFuIGEgdmlydHVhbCBm
dW5jdGlvbiBzaW5jZSBpdCBpcwogICAgIC8vIGZhc3RlciBmb3Igbm9uLURvY3VtZW50IG5vZGVz
LCBhbmQgYmVjYXVzZSB0aGUgY2FsbCB0byByZW1vdmVkTGFzdFJlZiB0aGF0IGlzIGlubGluZWQK
ICAgICAvLyBhdCBhbGwgZGVyZWYgY2FsbCBzaXRlcyBpcyBzbWFsbGVyIGlmIGl0J3MgYSBub24t
dmlydHVhbCBmdW5jdGlvbi4KLSAgICBpZiAoaXNEb2N1bWVudE5vZGUoKSkgewotICAgICAgICBz
dGF0aWNfY2FzdDxEb2N1bWVudCo+KHRoaXMpLT5yZW1vdmVkTGFzdFJlZigpOworICAgIGlmIChp
c1RyZWVTY29wZSgpKSB7CisgICAgICAgIHRyZWVTY29wZSgpLT5yZW1vdmVkTGFzdFJlZlRvU2Nv
cGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKwogI2lmbmRlZiBOREVCVUcKICAgICBtX2Rl
bGV0aW9uSGFzQmVndW4gPSB0cnVlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBhODM2YmYwNmM3
MDZlMDRjMzYyMzE3MWNhYTQxYjZjYzdkMDFkZmRkLi43MTBjMWM2ZjMyNzFjY2IyMzJlYjJlM2Zk
NTM5MTBkN2E3NDI5YWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTI0OCw3ICsyNDgsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBib29sIGlzSW5zZXJ0aW9uUG9pbnROb2RlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIGJvb2wgaXNEb2N1bWVudE5vZGUoKSBjb25zdDsKLSAgICBib29sIGlz
VHJlZVNjb3BlKCkgY29uc3Q7CisgICAgYm9vbCBpc1RyZWVTY29wZSgpIGNvbnN0IHsgcmV0dXJu
IHRyZWVTY29wZSgpLT5yb290Tm9kZSgpID09IHRoaXM7IH0KICAgICBib29sIGlzRG9jdW1lbnRG
cmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuIGdldEZsYWcoSXNEb2N1bWVudEZyYWdtZW50RmxhZyk7
IH0KICAgICBib29sIGlzU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIGlzRG9jdW1lbnRGcmFn
bWVudCgpICYmIGlzVHJlZVNjb3BlKCk7IH0KICAgICBib29sIGlzSW5zZXJ0aW9uUG9pbnQoKSBj
b25zdCB7IHJldHVybiBnZXRGbGFnKE5lZWRzU2hhZG93VHJlZVdhbGtlckZsYWcpICYmIGlzSW5z
ZXJ0aW9uUG9pbnROb2RlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBiNGYy
NDE5NTUzYzc5M2ZkOTBiNTJmYjAyYmQ4YjhkODkxOWU0YjMyLi4xMTQzYmEzNDg5OTcwZTE5NmE2
ZTFkZTU3YjZiZmMxODcwMzFkNzYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC01
Miw3ICs1Miw3IEBAIGVudW0gU2hhZG93Um9vdFVzYWdlT3JpZ2luVHlwZSB7CiB9OwogCiBTaGFk
b3dSb290OjpTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCwgU2hhZG93Um9vdFR5cGUgdHlw
ZSkKLSAgICA6IERvY3VtZW50RnJhZ21lbnQoZG9jdW1lbnQsIENyZWF0ZVNoYWRvd1Jvb3QpCisg
ICAgOiBEb2N1bWVudEZyYWdtZW50KDAsIENyZWF0ZVNoYWRvd1Jvb3QpCiAgICAgLCBUcmVlU2Nv
cGUodGhpcywgZG9jdW1lbnQpCiAgICAgLCBtX3ByZXYoMCkKICAgICAsIG1fbmV4dCgwKQpAQCAt
NjMsNyArNjMsNiBAQCBTaGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50KiBkb2N1bWVudCwg
U2hhZG93Um9vdFR5cGUgdHlwZSkKICAgICAsIG1fcmVnaXN0ZXJlZFdpdGhQYXJlbnRTaGFkb3dS
b290KGZhbHNlKQogewogICAgIEFTU0VSVChkb2N1bWVudCk7Ci0gICAgc2V0VHJlZVNjb3BlKHRo
aXMpOwogCiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgaWYgKHR5cGUgPT0gU2hhZG93Um9v
dDo6QXV0aG9yU2hhZG93Um9vdCkgewpAQCAtODksNiArODgsMTEgQEAgU2hhZG93Um9vdDo6flNo
YWRvd1Jvb3QoKQogICAgICAgICBjbGVhclJhcmVEYXRhKCk7CiB9CiAKK3ZvaWQgU2hhZG93Um9v
dDo6ZGlzcG9zZSgpCit7CisgICAgcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbigpOworfQorCiBQYXNz
UmVmUHRyPE5vZGU+IFNoYWRvd1Jvb3Q6OmNsb25lTm9kZShib29sLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBlYyA9IERBVEFfQ0xPTkVfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKaW5k
ZXggMmQxY2YyM2IxZWJiYjZmZDQ1NzJlMGY4OTA4OWI5ZmY5NjRkN2M2ZC4uZGJjNzFkYzBhNmNk
NjI4ZTAzZTA5NDUwNjFlZGNhNjU2MzIwOTkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCkBA
IC0xMDAsNiArMTAwLDcgQEAgcHJpdmF0ZToKICAgICBTaGFkb3dSb290KERvY3VtZW50KiwgU2hh
ZG93Um9vdFR5cGUpOwogICAgIHZpcnR1YWwgflNoYWRvd1Jvb3QoKTsKIAorICAgIHZpcnR1YWwg
dm9pZCBkaXNwb3NlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGNoaWxkVHlwZUFsbG93
ZWQoTm9kZVR5cGUpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNo
YW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5nZSwgTm9kZSogYWZ0
ZXJDaGFuZ2UsIGludCBjaGlsZENvdW50RGVsdGEpIE9WRVJSSURFOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGUuY3BwCmluZGV4IDQ1NGFmNWRhOWRmYTg2NjBkZTBlMzEyNDliZWY5ODZlMWNjN2QwYjgu
LjM4MDlkNWQ3ZTAyZGI5ZTY4NDJlMWRhYTQwYWE4OGI0MWNiNjU0ZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGUuY3BwCkBAIC01OSw2ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVj
dCBTYW1lU2l6ZUFzVHJlZVNjb3BlIHsKICAgICB2aXJ0dWFsIH5TYW1lU2l6ZUFzVHJlZVNjb3Bl
KCk7CiAgICAgdm9pZCogcG9pbnRlcnNbOF07CisgICAgaW50IGludHNbMV07CiB9OwogCiBDT01Q
SUxFX0FTU0VSVChzaXplb2YoVHJlZVNjb3BlKSA9PSBzaXplb2YoU2FtZVNpemVBc1RyZWVTY29w
ZSksIHRyZWVzY29wZV9zaG91bGRfc3RheV9zbWFsbCk7CkBAIC02OSwzNSArNzAsNDcgQEAgVHJl
ZVNjb3BlOjpUcmVlU2NvcGUoQ29udGFpbmVyTm9kZSogcm9vdE5vZGUsIERvY3VtZW50KiBkb2N1
bWVudCkKICAgICA6IG1fcm9vdE5vZGUocm9vdE5vZGUpCiAgICAgLCBtX2RvY3VtZW50U2NvcGUo
ZG9jdW1lbnQpCiAgICAgLCBtX3BhcmVudFRyZWVTY29wZShkb2N1bWVudCkKKyAgICAsIG1fZ3Vh
cmRSZWZDb3VudCgwKQogICAgICwgbV9pZFRhcmdldE9ic2VydmVyUmVnaXN0cnkoSWRUYXJnZXRP
YnNlcnZlclJlZ2lzdHJ5OjpjcmVhdGUoKSkKIHsKICAgICBBU1NFUlQocm9vdE5vZGUpOwogICAg
IEFTU0VSVChkb2N1bWVudCk7CiAgICAgQVNTRVJUKHJvb3ROb2RlICE9IGRvY3VtZW50KTsKKyAg
ICBtX3BhcmVudFRyZWVTY29wZS0+Z3VhcmRSZWYoKTsKKyAgICBtX3Jvb3ROb2RlLT5zZXRUcmVl
U2NvcGUodGhpcyk7CiB9CiAKIFRyZWVTY29wZTo6VHJlZVNjb3BlKERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICA6IG1fcm9vdE5vZGUoZG9jdW1lbnQpCiAgICAgLCBtX2RvY3VtZW50U2NvcGUoZG9j
dW1lbnQpCiAgICAgLCBtX3BhcmVudFRyZWVTY29wZSgwKQorICAgICwgbV9ndWFyZFJlZkNvdW50
KDApCiAgICAgLCBtX2lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeShJZFRhcmdldE9ic2VydmVyUmVn
aXN0cnk6OmNyZWF0ZSgpKQogewogICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgbV9yb290Tm9k
ZS0+c2V0VHJlZVNjb3BlKHRoaXMpOwogfQogCiBUcmVlU2NvcGU6OlRyZWVTY29wZSgpCiAgICAg
OiBtX3Jvb3ROb2RlKDApCiAgICAgLCBtX2RvY3VtZW50U2NvcGUoMCkKICAgICAsIG1fcGFyZW50
VHJlZVNjb3BlKDApCisgICAgLCBtX2d1YXJkUmVmQ291bnQoMCkKIHsKIH0KIAogVHJlZVNjb3Bl
Ojp+VHJlZVNjb3BlKCkKIHsKKyAgICBBU1NFUlQoIW1fZ3VhcmRSZWZDb3VudCk7CisgICAgbV9y
b290Tm9kZS0+c2V0VHJlZVNjb3BlKG5vRG9jdW1lbnRJbnN0YW5jZSgpKTsKKwogICAgIGlmICht
X3NlbGVjdGlvbikgewogICAgICAgICBtX3NlbGVjdGlvbi0+Y2xlYXJUcmVlU2NvcGUoKTsKICAg
ICAgICAgbV9zZWxlY3Rpb24gPSAwOwogICAgIH0KKworICAgIGlmIChtX3BhcmVudFRyZWVTY29w
ZSkKKyAgICAgICAgbV9wYXJlbnRUcmVlU2NvcGUtPmd1YXJkRGVyZWYoKTsKIH0KIAogdm9pZCBU
cmVlU2NvcGU6OmRlc3Ryb3lUcmVlU2NvcGVEYXRhKCkKQEAgLTEyMCw2ICsxMzMsOSBAQCB2b2lk
IFRyZWVTY29wZTo6c2V0UGFyZW50VHJlZVNjb3BlKFRyZWVTY29wZSogbmV3UGFyZW50U2NvcGUp
CiAgICAgLy8gRXZlcnkgc2NvcGUgb3RoZXIgdGhhbiBkb2N1bWVudCBuZWVkcyBhIHBhcmVudCBz
Y29wZS4KICAgICBBU1NFUlQobmV3UGFyZW50U2NvcGUpOwogCisgICAgbmV3UGFyZW50U2NvcGUt
Pmd1YXJkUmVmKCk7CisgICAgaWYgKG1fcGFyZW50VHJlZVNjb3BlKQorICAgICAgICBtX3BhcmVu
dFRyZWVTY29wZS0+Z3VhcmREZXJlZigpOwogICAgIG1fcGFyZW50VHJlZVNjb3BlID0gbmV3UGFy
ZW50U2NvcGU7CiAgICAgc2V0RG9jdW1lbnRTY29wZShuZXdQYXJlbnRTY29wZS0+ZG9jdW1lbnRT
Y29wZSgpKTsKIH0KQEAgLTQxNSw0ICs0MzEsMjQgQEAgVHJlZVNjb3BlKiBjb21tb25UcmVlU2Nv
cGUoTm9kZSogbm9kZUEsIE5vZGUqIG5vZGVCKQogICAgIHJldHVybiB0cmVlU2NvcGVzQVtpbmRl
eEFdID09IHRyZWVTY29wZXNCW2luZGV4Ql0gPyB0cmVlU2NvcGVzQVtpbmRleEFdIDogMDsKIH0K
IAorI2lmbmRlZiBOREVCVUcKK2Jvb2wgVHJlZVNjb3BlOjpkZWxldGlvbkhhc0JlZ3VuKCkKK3sK
KyAgICByZXR1cm4gcm9vdE5vZGUoKSAmJiByb290Tm9kZSgpLT5tX2RlbGV0aW9uSGFzQmVndW47
Cit9CisKK3ZvaWQgVHJlZVNjb3BlOjpiZWdpbkRlbGV0aW9uKCkKK3sKKyAgICBBU1NFUlQodGhp
cyAhPSBub0RvY3VtZW50SW5zdGFuY2UoKSk7CisgICAgcm9vdE5vZGUoKS0+bV9kZWxldGlvbkhh
c0JlZ3VuID0gdHJ1ZTsKK30KKyNlbmRpZgorCitpbnQgVHJlZVNjb3BlOjpyZWZDb3VudCgpIGNv
bnN0Cit7CisgICAgaWYgKE5vZGUqIHJvb3QgPSByb290Tm9kZSgpKQorICAgICAgICByZXR1cm4g
cm9vdC0+cmVmQ291bnQoKTsKKyAgICByZXR1cm4gMDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCmluZGV4IGJlNTAwZjEwNjRjOGI3ODE0OWNkY2RlZDky
ODE5MWIzZjU2YjNlZjEuLmU1NDAxNTJjOTczOWNlMDhmZjc4NDU1N2M0ZTJiMzRiMWVlMjIxMzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgogICAgIC8v
IFVzZWQgYnkgdGhlIGJhc2ljIERPTSBtdXRhdGlvbiBtZXRob2RzIChlLmcuLCBhcHBlbmRDaGls
ZCgpKS4KICAgICB2b2lkIGFkb3B0SWZOZWVkZWQoTm9kZSopOwogCi0gICAgQ29udGFpbmVyTm9k
ZSogcm9vdE5vZGUoKSBjb25zdCB7IHJldHVybiBtX3Jvb3ROb2RlOyB9CisgICAgTm9kZSogcm9v
dE5vZGUoKSBjb25zdCB7IHJldHVybiBtX3Jvb3ROb2RlOyB9CiAKICAgICBJZFRhcmdldE9ic2Vy
dmVyUmVnaXN0cnkmIGlkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeSgpIGNvbnN0IHsgcmV0dXJuICpt
X2lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeS5nZXQoKTsgfQogCkBAIC0xMDQsNiArMTA0LDI5IEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuICZpbnN0YW5jZTsKICAgICB9CiAKKyAgICAvLyBOb2Rl
cyBiZWxvbmdpbmcgdG8gdGhpcyBzY29wZSBob2xkIGd1YXJkIHJlZmVyZW5jZXMgLQorICAgIC8v
IHRoZXNlIGFyZSBlbm91Z2ggdG8ga2VlcCB0aGUgc2NvcGUgZnJvbSBiZWluZyBkZXN0cm95ZWQs
IGJ1dAorICAgIC8vIG5vdCBlbm91Z2ggdG8ga2VlcCBpdCBmcm9tIHJlbW92aW5nIGl0cyBjaGls
ZHJlbi4gVGhpcyBhbGxvd3MgYQorICAgIC8vIG5vZGUgdGhhdCBvdXRsaXZlcyBpdHMgc2NvcGUg
dG8gc3RpbGwgaGF2ZSBhIHZhbGlkIGRvY3VtZW50CisgICAgLy8gcG9pbnRlciB3aXRob3V0IGlu
dHJvZHVjaW5nIHJlZmVyZW5jZSBjeWNsZXMuCisgICAgdm9pZCBndWFyZFJlZigpCisgICAgewor
ICAgICAgICBBU1NFUlQoIWRlbGV0aW9uSGFzQmVndW4oKSk7CisgICAgICAgICsrbV9ndWFyZFJl
ZkNvdW50OworICAgIH0KKworICAgIHZvaWQgZ3VhcmREZXJlZigpCisgICAgeworICAgICAgICBB
U1NFUlQoIWRlbGV0aW9uSGFzQmVndW4oKSk7CisgICAgICAgIC0tbV9ndWFyZFJlZkNvdW50Owor
ICAgICAgICBpZiAoIW1fZ3VhcmRSZWZDb3VudCAmJiAhcmVmQ291bnQoKSAmJiB0aGlzICE9IG5v
RG9jdW1lbnRJbnN0YW5jZSgpKSB7CisgICAgICAgICAgICBiZWdpbkRlbGV0aW9uKCk7CisgICAg
ICAgICAgICBkZWxldGUgdGhpczsKKyAgICAgICAgfQorICAgIH0KKworICAgIHZvaWQgcmVtb3Zl
ZExhc3RSZWZUb1Njb3BlKCk7CisKIHByb3RlY3RlZDoKICAgICBUcmVlU2NvcGUoQ29udGFpbmVy
Tm9kZSosIERvY3VtZW50Kik7CiAgICAgVHJlZVNjb3BlKERvY3VtZW50Kik7CkBAIC0xMTgsMTIg
KzE0MSwyNiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIG1fZG9jdW1lbnRTY29wZSA9IGRvY3VtZW50
OwogICAgIH0KIAorICAgIGJvb2wgaGFzR3VhcmRSZWZDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
Z3VhcmRSZWZDb3VudDsgfQorCiBwcml2YXRlOgogICAgIFRyZWVTY29wZSgpOwogCi0gICAgQ29u
dGFpbmVyTm9kZSogbV9yb290Tm9kZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpIHsgfQor
CisgICAgaW50IHJlZkNvdW50KCkgY29uc3Q7CisjaWZuZGVmIE5ERUJVRworICAgIGJvb2wgZGVs
ZXRpb25IYXNCZWd1bigpOworICAgIHZvaWQgYmVnaW5EZWxldGlvbigpOworI2Vsc2UKKyAgICBi
b29sIGRlbGV0aW9uSGFzQmVndW4oKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgYmVnaW5E
ZWxldGlvbigpIHsgfQorI2VuZGlmCisKKyAgICBOb2RlKiBtX3Jvb3ROb2RlOwogICAgIERvY3Vt
ZW50KiBtX2RvY3VtZW50U2NvcGU7CiAgICAgVHJlZVNjb3BlKiBtX3BhcmVudFRyZWVTY29wZTsK
KyAgICBpbnQgbV9ndWFyZFJlZkNvdW50OwogCiAgICAgT3duUHRyPERvY3VtZW50T3JkZXJlZE1h
cD4gbV9lbGVtZW50c0J5SWQ7CiAgICAgT3duUHRyPERvY3VtZW50T3JkZXJlZE1hcD4gbV9pbWFn
ZU1hcHNCeU5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRv
cHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5jcHAKaW5kZXgg
NDFiZmQyNTZjYzRiNWU1ZjMxNzE5NTE4YmUxYjMwODk1ZTg1OGQxMC4uMjU1MGMyZDJlMzNkYWQx
YmUxZWIwZTg2NzQxOThkYzFiYmU4MGQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1RyZWVTY29wZUFkb3B0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVB
ZG9wdGVyLmNwcApAQCAtNDAsNiArNDAsOCBAQCB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVU
cmVlVG9OZXdTY29wZShOb2RlKiByb290KSBjb25zdAogewogICAgIEFTU0VSVChuZWVkc1Njb3Bl
Q2hhbmdlKCkpOwogCisgICAgbV9vbGRTY29wZS0+Z3VhcmRSZWYoKTsKKwogICAgIC8vIElmIGFu
IGVsZW1lbnQgaXMgbW92ZWQgZnJvbSBhIGRvY3VtZW50IGFuZCB0aGVuIGV2ZW50dWFsbHkgYmFj
ayBhZ2FpbiB0aGUgY29sbGVjdGlvbiBjYWNoZSBmb3IKICAgICAvLyB0aGF0IGVsZW1lbnQgbWF5
IGNvbnRhaW4gc3RhbGUgZGF0YSBhcyBjaGFuZ2VzIG1hZGUgdG8gaXQgd2lsbCBoYXZlIHVwZGF0
ZWQgdGhlIERPTVRyZWVWZXJzaW9uCiAgICAgLy8gb2YgdGhlIGRvY3VtZW50IGl0IHdhcyBtb3Zl
ZCB0by4gQnkgaW5jcmVhc2luZyB0aGUgRE9NVHJlZVZlcnNpb24gb2YgdGhlIGRvbmF0aW5nIGRv
Y3VtZW50IGhlcmUKQEAgLTUxLDcgKzUzLDcgQEAgdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3Zl
VHJlZVRvTmV3U2NvcGUoTm9kZSogcm9vdCkgY29uc3QKICAgICAgICAgb2xkRG9jdW1lbnQtPmlu
Y0RPTVRyZWVWZXJzaW9uKCk7CiAKICAgICBmb3IgKE5vZGUqIG5vZGUgPSByb290OyBub2RlOyBu
b2RlID0gTm9kZVRyYXZlcnNhbDo6bmV4dChub2RlLCByb290KSkgewotICAgICAgICBub2RlLT5z
ZXRUcmVlU2NvcGUobV9uZXdTY29wZSk7CisgICAgICAgIHVwZGF0ZVRyZWVTY29wZShub2RlKTsK
IAogICAgICAgICBpZiAod2lsbE1vdmVUb05ld0RvY3VtZW50KQogICAgICAgICAgICAgbW92ZU5v
ZGVUb05ld0RvY3VtZW50KG5vZGUsIG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7CkBAIC03Niw2
ICs3OCw4IEBAIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld1Njb3BlKE5vZGUq
IHJvb3QpIGNvbnN0CiAgICAgICAgICAgICAgICAgbW92ZVRyZWVUb05ld0RvY3VtZW50KHNoYWRv
dywgb2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKICAgICAgICAgfQogICAgIH0KKworICAgIG1f
b2xkU2NvcGUtPmd1YXJkRGVyZWYoKTsKIH0KIAogdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3Zl
VHJlZVRvTmV3RG9jdW1lbnQoTm9kZSogcm9vdCwgRG9jdW1lbnQqIG9sZERvY3VtZW50LCBEb2N1
bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0CkBAIC05OSw2ICsxMDMsMTUgQEAgdm9pZCBUcmVlU2Nv
cGVBZG9wdGVyOjplbnN1cmVEaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZChEb2N1bWVudCog
b2xkRG9jdW1lbnQKIH0KICNlbmRpZgogCitpbmxpbmUgdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjp1
cGRhdGVUcmVlU2NvcGUoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBBU1NFUlQoIW5vZGUtPmlz
VHJlZVNjb3BlKCkpOworICAgIEFTU0VSVChub2RlLT50cmVlU2NvcGUoKSA9PSBtX29sZFNjb3Bl
KTsKKyAgICBtX25ld1Njb3BlLT5ndWFyZFJlZigpOworICAgIG1fb2xkU2NvcGUtPmd1YXJkRGVy
ZWYoKTsKKyAgICBub2RlLT5zZXRUcmVlU2NvcGUobV9uZXdTY29wZSk7Cit9CisKIGlubGluZSB2
b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVOb2RlVG9OZXdEb2N1bWVudChOb2RlKiBub2RlLCBE
b2N1bWVudCogb2xkRG9jdW1lbnQsIERvY3VtZW50KiBuZXdEb2N1bWVudCkgY29uc3QKIHsKICAg
ICBBU1NFUlQoIW5vZGUtPmluRG9jdW1lbnQoKSB8fCBvbGREb2N1bWVudCAhPSBuZXdEb2N1bWVu
dCk7CkBAIC0xMDksNyArMTIyLDYgQEAgaW5saW5lIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92
ZU5vZGVUb05ld0RvY3VtZW50KE5vZGUqIG5vZGUsIERvY3VtZW50KiBvbGREb2MKICAgICAgICAg
ICAgIHJhcmVEYXRhLT5ub2RlTGlzdHMoKS0+YWRvcHREb2N1bWVudChvbGREb2N1bWVudCwgbmV3
RG9jdW1lbnQpOwogICAgIH0KIAotICAgIG5ld0RvY3VtZW50LT5ndWFyZFJlZigpOwogICAgIGlm
IChvbGREb2N1bWVudCkKICAgICAgICAgb2xkRG9jdW1lbnQtPm1vdmVOb2RlSXRlcmF0b3JzVG9O
ZXdEb2N1bWVudChub2RlLCBuZXdEb2N1bWVudCk7CiAKQEAgLTEyMyw5ICsxMzUsNiBAQCBpbmxp
bmUgdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlTm9kZVRvTmV3RG9jdW1lbnQoTm9kZSogbm9k
ZSwgRG9jdW1lbnQqIG9sZERvYwogCiAgICAgbm9kZS0+ZGlkTW92ZVRvTmV3RG9jdW1lbnQob2xk
RG9jdW1lbnQpOwogICAgIEFTU0VSVChkaWRNb3ZlVG9OZXdEb2N1bWVudFdhc0NhbGxlZCk7Ci0g
ICAgCi0gICAgaWYgKG9sZERvY3VtZW50KQotICAgICAgICBvbGREb2N1bWVudC0+Z3VhcmREZXJl
ZigpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRv
cHRlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuaAppbmRleCA0Y2E0
MTgyMTkwY2RhY2M1ODMyZGFiYmMwZWQ0NmVmNDJmZmJmYzMzLi5jZWE0ZGNhN2QzMDU3ZDk3NGQw
MDczZmZkOTJkMjA3MGM4MWE4ODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVNjb3BlQWRvcHRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVy
LmgKQEAgLTQ1LDYgKzQ1LDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6CisgICAgdm9p
ZCB1cGRhdGVUcmVlU2NvcGUoTm9kZSopIGNvbnN0OwogICAgIHZvaWQgbW92ZVRyZWVUb05ld1Nj
b3BlKE5vZGUqKSBjb25zdDsKICAgICB2b2lkIG1vdmVUcmVlVG9OZXdEb2N1bWVudChOb2RlKiwg
RG9jdW1lbnQqIG9sZERvY3VtZW50LCBEb2N1bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0OwogICAg
IHZvaWQgbW92ZU5vZGVUb05ld0RvY3VtZW50KE5vZGUqLCBEb2N1bWVudCogb2xkRG9jdW1lbnQs
IERvY3VtZW50KiBuZXdEb2N1bWVudCkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189910</attachid>
            <date>2013-02-23 00:40:36 -0800</date>
            <delta_ts>2013-03-04 20:04:19 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-109777-20130223173654.patch</filename>
            <type>text/plain</type>
            <size>23798</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjdhYjJhMjQ3MDg1YWY4
YzAxYzdmYjhlYWNlY2IzM2MzNGRiN2MzZS4uYTcxMjUzZjQzMGU2MWIxYWQ2YTA2YTgyYzRkNGM5
MTRlYTE4MjYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDEzLTAyLTE5ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGd1YXJkUmVmKCkgYW5kIGd1YXJkRGVyZWYoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGlt
aXRyaSBHbGF6a292LgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1vdmVzIG1fZ3VhcmRSZWZDb3Vu
dCBmcm9tIERvY3VtZW50IHRvIFRyZWVTY29wZSwKKyAgICAgICAgd2hpY2ggYWxsb3dzIFNoYWRv
d1Jvb3QgdG8gYmUgZ3VhcmRlZCBieSBndWFyZFJlZigpIG1lY2hhbmlzbSBhcworICAgICAgICBE
b2N1bWVudC4gQWZ0ZXIgcjEzNzUyNCwgTm9kZSByZWZlcmVzIFRyZWVTY29wZSBpbnN0ZWFkIG9m
CisgICAgICAgIERvY3VtZW50LiBUaGlzIGlzIG5hdHVyYWwgY29uc2VxdWVuY2Ugb2YgdGhlIGNo
YW5nZTogSXQgbm8gbG9uZ2VyCisgICAgICAgIG1ha2VzIHNlbnNlIHRvIGd1YXJkUmVmKCkgRG9j
dW1lbnQgcG9pbnRlciBmcm9tIE5vZGUuCisKKyAgICAgICAgRGV0YWlsOgorCisgICAgICAgIC0g
RG9jdW1lbnQ6Om1fZ3VhcmRSZWZDb3VudCBhbmQgcmVsYXRlZCBmdW5jZHRpb25zIGFyZSBtb3Zl
ZCB0byBUcmVlU2NvcGUKKyAgICAgICAgLSBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYgaXMgZmFj
dG9yZWQgb3V0IGludG8gVHJlZVNjb3BlOjpyZW1vdmVkTGFzdFJlZlRvU2NvcGUoKSwKKyAgICAg
ICAgICBUcmVlU2NvcGU6OmRpc3Bvc2UoKSBhbmQgRG9jdWVudDo6ZGlzcG9zZSgpLiBTaGFkb3dS
b290IGFsc28gZ290IGl0cyBvd24gZGlzcG9zZSgpIGltcGxlbWVudGF0aW9uLgorICAgICAgICAt
IE1vdmVkIGd1YXJkUmVmKCkgYW5kIGd1YXJkRGVyZWYoKSBjYWxscyB0byBUcmVlU2NvcGUgYW5k
IE5vZGUuCisgICAgICAgICAgTm90ZSB0aGF0IHRoZXJlIGFyZSB0d28gImd1YXJkZWQiIFRyZWVT
Y29wZSByZWZlcmVuY2VzLiBPbmUgaXMKKyAgICAgICAgICBOb2RlOjptX3RyZWVTY29wZSBhbmQg
YW5vdGhlciBpcyBUcmVlU2NvcGU6Om1fcGFyZW50VHJlZVNjb3BlLgorICAgICAgICAgIFRoZSBn
dWFyZGVkLXJlZiBtYW5hZ2VtZW50IGlzIG5vdyBlbmNhcHN1bGF0ZWQgaW4gdGhlc2UgdHdvIGNs
YXNzZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpk
aXNwb3NlKTogRXh0cmFjdGVkIGZyb20gcmVtb3ZlZExhc3RSZWYoKQorICAgICAgICAqIGRvbS9E
b2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNUcmVlU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6Tm9kZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJhZ21lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudDo6RG9jdW1lbnRGcmFnbWVu
dCk6IFJlbW92ZSBBU1NFUlQoKSBhbmQgbW92ZSBpdCB0byAuLi4KKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZSk6IC4uLiBoZXJlLCB0byBhbGxvdyBOVUxMIGRvY3Vt
ZW50IGZyb20gU2hhZG93Um9vdC4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjp+Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZW1vdmVkTGFz
dFJlZik6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNl
dFRyZWVTY29wZSk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6IFBhc3NlZCBOVUxMIGRvY3VtZW50IHRvIHN1
cGVyY2xhc3MuIFRoaXMgYWxpZ25zIHdoYXQgRG9jdW1lbnQgaXMgZG9pbmcuCisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dSb290OjpkaXNwb3NlKTogQWRkZWQuCisgICAgICAgICogZG9tL1NoYWRv
d1Jvb3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUu
Y3BwOgorICAgICAgICAoU2FtZVNpemVBc1RyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpU
cmVlU2NvcGU6OlRyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6On5UcmVl
U2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpkaXNwb3NlKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OnNldFBhcmVudFRyZWVTY29wZSk6CisgICAgICAg
IChXZWJDb3JlOjpUcmVlU2NvcGU6OmRlbGV0aW9uSGFzQmVndW4pOgorICAgICAgICAoV2ViQ29y
ZTo6VHJlZVNjb3BlOjpiZWdpbkRlbGV0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29w
ZTo6cmVmQ291bnQpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmg6IFR1cm5lZCBt
X3Jvb3ROb2RlIHRvIE5vZGUqIGZyb20gQ29udGFpbmVyTm9kZSogZm9yIE5vZGU6OmlzVHJlZVNj
b3BlIHRvIGJlIGlubGluZWQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6Omd1YXJkUmVm
KTogUHVsbGVkIHVwIGZyb20gRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6
Omd1YXJkRGVyZWYpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6aGFzR3Vh
cmRSZWZDb3VudCk6IEFkZGVkIHRvIGhpZGUgbV9ndWFyZFJlZkNvdW50LgorICAgICAgICAoV2Vi
Q29yZTo6VHJlZVNjb3BlOjpkZWxldGlvbkhhc0JlZ3VuKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpUcmVlU2NvcGU6OmJlZ2luRGVsZXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlRyZWVTY29wZTo6cmVtb3ZlZExhc3RSZWZUb1Njb3BlKTogUHVsbGVkIHVwIGZyb20gRG9jdW1l
bnQuCisgICAgICAgICogZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld1Njb3BlKToKKyAgICAgICAgKFdlYkNv
cmU6OlRyZWVTY29wZUFkb3B0ZXI6Om1vdmVOb2RlVG9OZXdEb2N1bWVudCk6CisKIDIwMTMtMDIt
MjMgIEphc29uIEFuZGVyc3NlbiAgPGphbmRlcnNzZW5AZ21haWwuY29tPgogCiAgICAgICAgIE1v
dmUgc2V0QXV0b2ZpbGxlZCBmcm9tIFRlc3RSdW5uZXIgdG8gV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgppbmRleCBhNWUzMTc1ZjNhZGU5YjA4MmM2Y2Q3NjJmZGQzZWNlNWIwYmQ3MmYwLi44YzQ3
YzNmYjY3MDBiNDU3ZjJkYjQ4YzI5NzlmYjA5Mzk4YmU5ZGI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgpAQCAtMTQxMyw3ICsxNDEzLDYgQEAgX19aTks3V2ViQ29yZTROb2RlMTF0ZXh0Q29udGVudEVi
CiBfX1pON1dlYkNvcmU0Tm9kZTEyaW5zZXJ0QmVmb3JlRU4zV1RGMTBQYXNzUmVmUHRySVMwX0VF
UFMwX1JpYgogX19aTks3V2ViQ29yZTROb2RlMTNvd25lckRvY3VtZW50RXYKIF9fWk5LN1dlYkNv
cmU0Tm9kZTE0aXNEZXNjZW5kYW50T2ZFUEtTMF8KLV9fWk5LN1dlYkNvcmU0Tm9kZTExaXNUcmVl
U2NvcGVFdgogX19aTks3V2ViQ29yZTROb2RlMThnZXRTdWJyZXNvdXJjZVVSTHNFUk4zV1RGMTFM
aXN0SGFzaFNldElOU180S1VSTEVMbTI1NkVOU184S1VSTEhhc2hFRUUKIF9fWk5LN1dlYkNvcmU0
Tm9kZTMxbnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbkV2CiBfX1pOSzdXZWJDb3JlNE5v
ZGU5bm9kZUluZGV4RXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGRlYmI5NTRhYWZmOTdh
ODViZDczYmZkYTY2Mjk2YzRiZmFhOTVjMmIuLjc4YzFiYzJjNjA5OWE5NzZlYTZjMDViZjc4NDkw
YmQwMjEzNTI2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDEzLDcgKzQxMyw2IEBA
IHVpbnQ2NF90IERvY3VtZW50OjpzX2dsb2JhbFRyZWVWZXJzaW9uID0gMDsKIERvY3VtZW50OjpE
b2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29s
IGlzSFRNTCkKICAgICA6IENvbnRhaW5lck5vZGUoMCwgQ3JlYXRlRG9jdW1lbnQpCiAgICAgLCBU
cmVlU2NvcGUodGhpcykKLSAgICAsIG1fZ3VhcmRSZWZDb3VudCgwKQogICAgICwgbV9zdHlsZVJl
c29sdmVyVGhyb3dhd2F5VGltZXIodGhpcywgJkRvY3VtZW50OjpzdHlsZVJlc29sdmVyVGhyb3dh
d2F5VGltZXJGaXJlZCkKICAgICAsIG1fbGFzdFN0eWxlUmVzb2x2ZXJBY2Nlc3NUaW1lKDApCiAg
ICAgLCBtX2FjdGl2ZVBhcnNlckNvdW50KDApCkBAIC00ODUsOCArNDg0LDYgQEAgRG9jdW1lbnQ6
OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJv
b2wgaXNIVE1MKQogICAgICwgbV90ZW1wbGF0ZURvY3VtZW50SG9zdCgwKQogI2VuZGlmCiB7Ci0g
ICAgc2V0VHJlZVNjb3BlKHRoaXMpOwotCiAgICAgbV9wcmludGluZyA9IGZhbHNlOwogICAgIG1f
cGFnaW5hdGVkRm9yU2NyZWVuID0gZmFsc2U7CiAKQEAgLTU4Niw3ICs1ODMsNyBAQCBEb2N1bWVu
dDo6fkRvY3VtZW50KCkKICAgICBBU1NFUlQobV9yYW5nZXMuaXNFbXB0eSgpKTsKICAgICBBU1NF
UlQoIW1fc3R5bGVSZWNhbGNUaW1lci5pc0FjdGl2ZSgpKTsKICAgICBBU1NFUlQoIW1fcGFyZW50
VHJlZVNjb3BlKTsKLSAgICBBU1NFUlQoIW1fZ3VhcmRSZWZDb3VudCk7CisgICAgQVNTRVJUKCFo
YXNHdWFyZFJlZkNvdW50KCkpOwogCiAjaWYgRU5BQkxFKFRFTVBMQVRFX0VMRU1FTlQpCiAgICAg
aWYgKG1fdGVtcGxhdGVEb2N1bWVudCkKQEAgLTY1Myw2MCArNjUwLDQwIEBAIERvY3VtZW50Ojp+
RG9jdW1lbnQoKQogICAgIEluc3BlY3RvckNvdW50ZXJzOjpkZWNyZW1lbnRDb3VudGVyKEluc3Bl
Y3RvckNvdW50ZXJzOjpEb2N1bWVudENvdW50ZXIpOwogfQogCi12b2lkIERvY3VtZW50OjpyZW1v
dmVkTGFzdFJlZigpCit2b2lkIERvY3VtZW50OjpkaXNwb3NlKCkKIHsKLSAgICBBU1NFUlQoIW1f
ZGVsZXRpb25IYXNCZWd1bik7Ci0gICAgaWYgKG1fZ3VhcmRSZWZDb3VudCkgewotICAgICAgICAv
LyBJZiByZW1vdmluZyBhIGNoaWxkIHJlbW92ZXMgdGhlIGxhc3Qgc2VsZi1vbmx5IHJlZiwgd2Ug
ZG9uJ3QKLSAgICAgICAgLy8gd2FudCB0aGUgc2NvcGUgdG8gYmUgZGVzdHJ1Y3RlZCB1bnRpbCBh
ZnRlcgotICAgICAgICAvLyByZW1vdmVEZXRhY2hlZENoaWxkcmVuIHJldHVybnMsIHNvIHdlIGd1
YXJkIG91cnNlbHZlcyB3aXRoIGFuCi0gICAgICAgIC8vIGV4dHJhIHNlbGYtb25seSByZWYuCi0g
ICAgICAgIGd1YXJkUmVmKCk7Ci0KLSAgICAgICAgLy8gV2UgbXVzdCBtYWtlIHN1cmUgbm90IHRv
IGJlIHJldGFpbmluZyBhbnkgb2Ygb3VyIGNoaWxkcmVuIHRocm91Z2gKLSAgICAgICAgLy8gdGhl
c2UgZXh0cmEgcG9pbnRlcnMgb3Igd2Ugd2lsbCBjcmVhdGUgYSByZWZlcmVuY2UgY3ljbGUuCi0g
ICAgICAgIG1fZG9jVHlwZSA9IDA7Ci0gICAgICAgIG1fZm9jdXNlZE5vZGUgPSAwOwotICAgICAg
ICBtX2hvdmVyTm9kZSA9IDA7Ci0gICAgICAgIG1fYWN0aXZlRWxlbWVudCA9IDA7Ci0gICAgICAg
IG1fdGl0bGVFbGVtZW50ID0gMDsKLSAgICAgICAgbV9kb2N1bWVudEVsZW1lbnQgPSAwOwotICAg
ICAgICBtX2NvbnRleHRGZWF0dXJlcyA9IENvbnRleHRGZWF0dXJlczo6ZGVmYXVsdFN3aXRjaCgp
OwotICAgICAgICBtX3VzZXJBY3Rpb25FbGVtZW50cy5kb2N1bWVudERpZFJlbW92ZUxhc3RSZWYo
KTsKKyAgICAvLyBXZSBtdXN0IG1ha2Ugc3VyZSBub3QgdG8gYmUgcmV0YWluaW5nIGFueSBvZiBv
dXIgY2hpbGRyZW4gdGhyb3VnaAorICAgIC8vIHRoZXNlIGV4dHJhIHBvaW50ZXJzIG9yIHdlIHdp
bGwgY3JlYXRlIGEgcmVmZXJlbmNlIGN5Y2xlLgorICAgIG1fZG9jVHlwZSA9IDA7CisgICAgbV9m
b2N1c2VkTm9kZSA9IDA7CisgICAgbV9ob3Zlck5vZGUgPSAwOworICAgIG1fYWN0aXZlRWxlbWVu
dCA9IDA7CisgICAgbV90aXRsZUVsZW1lbnQgPSAwOworICAgIG1fZG9jdW1lbnRFbGVtZW50ID0g
MDsKKyAgICBtX2NvbnRleHRGZWF0dXJlcyA9IENvbnRleHRGZWF0dXJlczo6ZGVmYXVsdFN3aXRj
aCgpOworICAgIG1fdXNlckFjdGlvbkVsZW1lbnRzLmRvY3VtZW50RGlkUmVtb3ZlTGFzdFJlZigp
OwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICAgICAgbV9mdWxsU2NyZWVuRWxlbWVu
dCA9IDA7Ci0gICAgICAgIG1fZnVsbFNjcmVlbkVsZW1lbnRTdGFjay5jbGVhcigpOworICAgIG1f
ZnVsbFNjcmVlbkVsZW1lbnQgPSAwOworICAgIG1fZnVsbFNjcmVlbkVsZW1lbnRTdGFjay5jbGVh
cigpOwogI2VuZGlmCiAKLSAgICAgICAgZGV0YWNoUGFyc2VyKCk7CisgICAgZGV0YWNoUGFyc2Vy
KCk7CiAKLSAgICAgICAgLy8gcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbigpIGRvZXNuJ3QgYWx3YXlz
IHVucmVnaXN0ZXIgSURzLAotICAgICAgICAvLyBzbyB0ZWFyIGRvd24gc2NvcGUgaW5mb3JtYXRp
b24gdXBmcm9udCB0byBhdm9pZCBoYXZpbmcgc3RhbGUgcmVmZXJlbmNlcyBpbiB0aGUgbWFwLgot
ICAgICAgICBkZXN0cm95VHJlZVNjb3BlRGF0YSgpOwotICAgICAgICByZW1vdmVEZXRhY2hlZENo
aWxkcmVuKCk7CisgICAgLy8gcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbigpIGRvZXNuJ3QgYWx3YXlz
IHVucmVnaXN0ZXIgSURzLAorICAgIC8vIHNvIHRlYXIgZG93biBzY29wZSBpbmZvcm1hdGlvbiB1
cGZyb250IHRvIGF2b2lkIGhhdmluZyBzdGFsZSByZWZlcmVuY2VzIGluIHRoZSBtYXAuCisgICAg
ZGVzdHJveVRyZWVTY29wZURhdGEoKTsKKyAgICByZW1vdmVEZXRhY2hlZENoaWxkcmVuKCk7CiAK
LSAgICAgICAgbV9tYXJrZXJzLT5kZXRhY2goKTsKKyAgICBtX21hcmtlcnMtPmRldGFjaCgpOwog
Ci0gICAgICAgIG1fY3NzQ2FudmFzRWxlbWVudHMuY2xlYXIoKTsKKyAgICBtX2Nzc0NhbnZhc0Vs
ZW1lbnRzLmNsZWFyKCk7CiAKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCi0g
ICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVET01PYmplY3QuCi0gICAgICAg
IGlmIChtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcikKLSAgICAgICAgICAgIG1fc2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyLT5jbGVhckRvY3VtZW50UG9pbnRlcigpOwotICAgICAgICBt
X3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jbGVhcigpOwotI2VuZGlmCi0KLSNpZm5kZWYg
TkRFQlVHCi0gICAgICAgIG1faW5SZW1vdmVkTGFzdFJlZkZ1bmN0aW9uID0gZmFsc2U7CisgICAg
Ly8gRklYTUU6IGNvbnNpZGVyIHVzaW5nIEFjdGl2ZURPTU9iamVjdC4KKyAgICBpZiAobV9zY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIpCisgICAgICAgIG1fc2NyaXB0ZWRBbmltYXRpb25Db250
cm9sbGVyLT5jbGVhckRvY3VtZW50UG9pbnRlcigpOworICAgIG1fc2NyaXB0ZWRBbmltYXRpb25D
b250cm9sbGVyLmNsZWFyKCk7CiAjZW5kaWYKLQotICAgICAgICBndWFyZERlcmVmKCk7Ci0gICAg
fSBlbHNlIHsKLSNpZm5kZWYgTkRFQlVHIAotICAgICAgICBtX2RlbGV0aW9uSGFzQmVndW4gPSB0
cnVlOyAKLSNlbmRpZiAKLSAgICAgICAgZGVsZXRlIHRoaXM7Ci0gICAgfQogfQogCiBFbGVtZW50
KiBEb2N1bWVudDo6Z2V0RWxlbWVudEJ5SWQoY29uc3QgQXRvbWljU3RyaW5nJiBpZCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMTI2NDM4ZDcwZWYwMTYxYmMyYWZlOGZjZWE3NjhhNGJj
ODcwMzdhYi4uOTYxZTUxYWRhMWFiYWRkODY5ZjQyZWNmOTIzMmEwM2NkZjBkMzVkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTIyOSwyOSArMjI5LDYgQEAgcHVibGljOgogICAgIHVzaW5nIENv
bnRhaW5lck5vZGU6OnJlZjsKICAgICB1c2luZyBDb250YWluZXJOb2RlOjpkZXJlZjsKIAotICAg
IC8vIE5vZGVzIGJlbG9uZ2luZyB0byB0aGlzIGRvY3VtZW50IGhvbGQgZ3VhcmQgcmVmZXJlbmNl
cyAtCi0gICAgLy8gdGhlc2UgYXJlIGVub3VnaCB0byBrZWVwIHRoZSBkb2N1bWVudCBmcm9tIGJl
aW5nIGRlc3Ryb3llZCwgYnV0Ci0gICAgLy8gbm90IGVub3VnaCB0byBrZWVwIGl0IGZyb20gcmVt
b3ZpbmcgaXRzIGNoaWxkcmVuLiBUaGlzIGFsbG93cyBhCi0gICAgLy8gbm9kZSB0aGF0IG91dGxp
dmVzIGl0cyBkb2N1bWVudCB0byBzdGlsbCBoYXZlIGEgdmFsaWQgZG9jdW1lbnQKLSAgICAvLyBw
b2ludGVyIHdpdGhvdXQgaW50cm9kdWNpbmcgcmVmZXJlbmNlIGN5Y2xlcy4KLSAgICB2b2lkIGd1
YXJkUmVmKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9kZWxldGlvbkhhc0JlZ3VuKTsKLSAg
ICAgICAgKyttX2d1YXJkUmVmQ291bnQ7Ci0gICAgfQotCi0gICAgdm9pZCBndWFyZERlcmVmKCkK
LSAgICB7Ci0gICAgICAgIEFTU0VSVCghbV9kZWxldGlvbkhhc0JlZ3VuKTsKLSAgICAgICAgLS1t
X2d1YXJkUmVmQ291bnQ7Ci0gICAgICAgIGlmICghbV9ndWFyZFJlZkNvdW50ICYmICFyZWZDb3Vu
dCgpKSB7Ci0jaWZuZGVmIE5ERUJVRwotICAgICAgICAgICAgbV9kZWxldGlvbkhhc0JlZ3VuID0g
dHJ1ZTsKLSNlbmRpZgotICAgICAgICAgICAgZGVsZXRlIHRoaXM7Ci0gICAgICAgIH0KLSAgICB9
Ci0KICAgICBFbGVtZW50KiBnZXRFbGVtZW50QnlJZChjb25zdCBBdG9taWNTdHJpbmcmIGlkKSBj
b25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Db250YWluUmFuZ2VFbmRQb2ludCgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KQEAgLTEyMTcsOCArMTE5NCw4IEBAIHByaXZhdGU6CiAgICAgZnJp
ZW5kIGNsYXNzIE5vZGU7CiAgICAgZnJpZW5kIGNsYXNzIElnbm9yZURlc3RydWN0aXZlV3JpdGVD
b3VudEluY3JlbWVudGVyOwogCi0gICAgdm9pZCByZW1vdmVkTGFzdFJlZigpOwotICAgIAorICAg
IHZpcnR1YWwgdm9pZCBkaXNwb3NlKCkgT1ZFUlJJREU7CisKICAgICB2b2lkIGRldGFjaFBhcnNl
cigpOwogCiAgICAgdHlwZWRlZiB2b2lkICgqQXJndW1lbnRzQ2FsbGJhY2spKGNvbnN0IFN0cmlu
ZyYga2V5U3RyaW5nLCBjb25zdCBTdHJpbmcmIHZhbHVlU3RyaW5nLCBEb2N1bWVudCosIHZvaWQq
IGRhdGEpOwpAQCAtMTI4Niw4ICsxMjYzLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZExpc3Rl
bmVyVHlwZShMaXN0ZW5lclR5cGUgbGlzdGVuZXJUeXBlKSB7IG1fbGlzdGVuZXJUeXBlcyB8PSBs
aXN0ZW5lclR5cGU7IH0KICAgICB2b2lkIGFkZE11dGF0aW9uRXZlbnRMaXN0ZW5lclR5cGVJZkVu
YWJsZWQoTGlzdGVuZXJUeXBlKTsKIAotICAgIGludCBtX2d1YXJkUmVmQ291bnQ7Ci0KICAgICB2
b2lkIHN0eWxlUmVzb2x2ZXJUaHJvd2F3YXlUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50PiopOwog
ICAgIFRpbWVyPERvY3VtZW50PiBtX3N0eWxlUmVzb2x2ZXJUaHJvd2F3YXlUaW1lcjsKICAgICBk
b3VibGUgbV9sYXN0U3R5bGVSZXNvbHZlckFjY2Vzc1RpbWU7CkBAIC0xNjAzLDEwICsxNTc4LDkg
QEAgaW5saW5lIE5vZGU6Ok5vZGUoRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25UeXBl
IHR5cGUpCiAgICAgLCBtX3ByZXZpb3VzKDApCiAgICAgLCBtX25leHQoMCkKIHsKLSAgICBpZiAo
ZG9jdW1lbnQpCi0gICAgICAgIGRvY3VtZW50LT5ndWFyZFJlZigpOwotICAgIGVsc2UKKyAgICBp
ZiAoIW1fdHJlZVNjb3BlKQogICAgICAgICBtX3RyZWVTY29wZSA9IFRyZWVTY29wZTo6bm9Eb2N1
bWVudEluc3RhbmNlKCk7CisgICAgbV90cmVlU2NvcGUtPmd1YXJkUmVmKCk7CiAKICNpZiAhZGVm
aW5lZChOREVCVUcpIHx8IChkZWZpbmVkKERVTVBfTk9ERV9TVEFUSVNUSUNTKSAmJiBEVU1QX05P
REVfU1RBVElTVElDUykKICAgICB0cmFja0ZvckRlYnVnZ2luZygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50RnJhZ21lbnQuY3BwCmluZGV4IDg1MDE1YjJmNGFhZWQ3OTJkNTVlNTMwNzQ0YTRl
ZDEzYjUyN2RkNmYuLmU2NjAyNDhjNTU2OGUyZDEwYWE3ZWNjODRmNTQ5NmIzNzU4NzE5ZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKQEAgLTM0LDExICszNCwxMSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBEb2N1bWVudEZyYWdtZW50OjpEb2N1bWVudEZyYWdtZW50
KERvY3VtZW50KiBkb2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSBjb25zdHJ1Y3Rpb25UeXBlKQog
ICAgIDogQ29udGFpbmVyTm9kZShkb2N1bWVudCwgY29uc3RydWN0aW9uVHlwZSkKIHsKLSAgICBB
U1NFUlQoZG9jdW1lbnQpOwogfQogCiBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IERvY3Vt
ZW50RnJhZ21lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CisgICAgQVNTRVJUKGRv
Y3VtZW50KTsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERvY3VtZW50RnJhZ21lbnQoZG9jdW1l
bnQsIE5vZGU6OkNyZWF0ZURvY3VtZW50RnJhZ21lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmlu
ZGV4IGU3YzQ2NTAxZDIxOWExZDQ4ZGI4YmI5Y2MwZDMwZGNhM2Q5OWVjMzQuLmZhN2NhYTg2YWI2
ODQzZjI1ZTZjMDc4NjRhMDU2OTQ4YWZjNDcyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTQ0Miw4
ICs0NDIsNyBAQCBOb2RlOjp+Tm9kZSgpCiAgICAgaWYgKG1fbmV4dCkKICAgICAgICAgbV9uZXh0
LT5zZXRQcmV2aW91c1NpYmxpbmcoMCk7CiAKLSAgICBpZiAoZG9jKQotICAgICAgICBkb2MtPmd1
YXJkRGVyZWYoKTsKKyAgICBtX3RyZWVTY29wZS0+Z3VhcmREZXJlZigpOwogCiAgICAgSW5zcGVj
dG9yQ291bnRlcnM6OmRlY3JlbWVudENvdW50ZXIoSW5zcGVjdG9yQ291bnRlcnM6Ok5vZGVDb3Vu
dGVyKTsKIH0KQEAgLTg5MiwxMSArODkxLDYgQEAgYm9vbCBOb2RlOjppc0ZvY3VzYWJsZSgpIGNv
bnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgTm9kZTo6aXNUcmVlU2NvcGUoKSBjb25z
dAotewotICAgIHJldHVybiB0cmVlU2NvcGUoKS0+cm9vdE5vZGUoKSA9PSB0aGlzOwotfQotCiBi
b29sIE5vZGU6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCopIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIGlzRm9jdXNhYmxlKCkgJiYgdGFiSW5kZXgoKSA+PSAwOwpAQCAtMjU2MSw2ICsy
NTU1LDMxIEBAIFBhc3NSZWZQdHI8UHJvcGVydHlOb2RlTGlzdD4gTm9kZTo6cHJvcGVydHlOb2Rl
TGlzdChjb25zdCBTdHJpbmcmIG5hbWUpCiB9CiAjZW5kaWYKIAorLy8gVGhpcyBpcyBoZXJlIGZv
ciBpbmxpbmluZworaW5saW5lIHZvaWQgVHJlZVNjb3BlOjpyZW1vdmVkTGFzdFJlZlRvU2NvcGUo
KQoreworICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICBpZiAobV9ndWFyZFJl
ZkNvdW50KSB7CisgICAgICAgIC8vIElmIHJlbW92aW5nIGEgY2hpbGQgcmVtb3ZlcyB0aGUgbGFz
dCBzZWxmLW9ubHkgcmVmLCB3ZSBkb24ndAorICAgICAgICAvLyB3YW50IHRoZSBzY29wZSB0byBi
ZSBkZXN0cnVjdGVkIHVudGlsIGFmdGVyCisgICAgICAgIC8vIHJlbW92ZURldGFjaGVkQ2hpbGRy
ZW4gcmV0dXJucywgc28gd2UgZ3VhcmQgb3Vyc2VsdmVzIHdpdGggYW4KKyAgICAgICAgLy8gZXh0
cmEgc2VsZi1vbmx5IHJlZi4KKyAgICAgICAgZ3VhcmRSZWYoKTsKKyAgICAgICAgZGlzcG9zZSgp
OworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgLy8gV2UgbmVlZCB0byBkbyB0aGlzIHJpZ2h0IG5v
dyBzaW5jZSBndWFyZERlcmVmKCkgY2FuIGRlbGV0ZSB0aGlzLgorICAgICAgICByb290Tm9kZSgp
LT5tX2luUmVtb3ZlZExhc3RSZWZGdW5jdGlvbiA9IGZhbHNlOworI2VuZGlmCisgICAgICAgIGd1
YXJkRGVyZWYoKTsKKyAgICB9IGVsc2UgeworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgcm9vdE5v
ZGUoKS0+bV9pblJlbW92ZWRMYXN0UmVmRnVuY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgYmVnaW5E
ZWxldGlvbigpOworI2VuZGlmCisgICAgICAgIGRlbGV0ZSB0aGlzOworICAgIH0KK30KKwogLy8g
SXQncyBpbXBvcnRhbnQgbm90IHRvIGlubGluZSByZW1vdmVkTGFzdFJlZiwgYmVjYXVzZSB3ZSBk
b24ndCB3YW50IHRvIGlubGluZSB0aGUgY29kZSB0bwogLy8gZGVsZXRlIGEgTm9kZSBhdCBlYWNo
IGRlcmVmIGNhbGwgc2l0ZS4KIHZvaWQgTm9kZTo6cmVtb3ZlZExhc3RSZWYoKQpAQCAtMjU2OCwx
MCArMjU4NywxMSBAQCB2b2lkIE5vZGU6OnJlbW92ZWRMYXN0UmVmKCkKICAgICAvLyBBbiBleHBs
aWNpdCBjaGVjayBmb3IgRG9jdW1lbnQgaGVyZSBpcyBiZXR0ZXIgdGhhbiBhIHZpcnR1YWwgZnVu
Y3Rpb24gc2luY2UgaXQgaXMKICAgICAvLyBmYXN0ZXIgZm9yIG5vbi1Eb2N1bWVudCBub2Rlcywg
YW5kIGJlY2F1c2UgdGhlIGNhbGwgdG8gcmVtb3ZlZExhc3RSZWYgdGhhdCBpcyBpbmxpbmVkCiAg
ICAgLy8gYXQgYWxsIGRlcmVmIGNhbGwgc2l0ZXMgaXMgc21hbGxlciBpZiBpdCdzIGEgbm9uLXZp
cnR1YWwgZnVuY3Rpb24uCi0gICAgaWYgKGlzRG9jdW1lbnROb2RlKCkpIHsKLSAgICAgICAgc3Rh
dGljX2Nhc3Q8RG9jdW1lbnQqPih0aGlzKS0+cmVtb3ZlZExhc3RSZWYoKTsKKyAgICBpZiAoaXNU
cmVlU2NvcGUoKSkgeworICAgICAgICB0cmVlU2NvcGUoKS0+cmVtb3ZlZExhc3RSZWZUb1Njb3Bl
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKICNpZm5kZWYgTkRFQlVHCiAgICAgbV9kZWxl
dGlvbkhhc0JlZ3VuID0gdHJ1ZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKaW5kZXggYTgzNmJmMDZjNzA2
ZTA0YzM2MjMxNzFjYWE0MWI2Y2M3ZDAxZGZkZC4uNzEwYzFjNmYzMjcxY2NiMjMyZWIyZTNmZDUz
OTEwZDdhNzQyOWFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCkBAIC0yNDgsNyArMjQ4LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBpc0luc2VydGlvblBvaW50Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKICAgICBib29sIGlzRG9jdW1lbnROb2RlKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1Ry
ZWVTY29wZSgpIGNvbnN0OworICAgIGJvb2wgaXNUcmVlU2NvcGUoKSBjb25zdCB7IHJldHVybiB0
cmVlU2NvcGUoKS0+cm9vdE5vZGUoKSA9PSB0aGlzOyB9CiAgICAgYm9vbCBpc0RvY3VtZW50RnJh
Z21lbnQoKSBjb25zdCB7IHJldHVybiBnZXRGbGFnKElzRG9jdW1lbnRGcmFnbWVudEZsYWcpOyB9
CiAgICAgYm9vbCBpc1NoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBpc0RvY3VtZW50RnJhZ21l
bnQoKSAmJiBpc1RyZWVTY29wZSgpOyB9CiAgICAgYm9vbCBpc0luc2VydGlvblBvaW50KCkgY29u
c3QgeyByZXR1cm4gZ2V0RmxhZyhOZWVkc1NoYWRvd1RyZWVXYWxrZXJGbGFnKSAmJiBpc0luc2Vy
dGlvblBvaW50Tm9kZSgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKaW5kZXggYjRmMjQx
OTU1M2M3OTNmZDkwYjUyZmIwMmJkOGI4ZDg5MTllNGIzMi4uMTE0M2JhMzQ4OTk3MGUxOTZhNmUx
ZGU1N2I2YmZjMTg3MDMxZDc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcApAQCAtNTIs
NyArNTIsNyBAQCBlbnVtIFNoYWRvd1Jvb3RVc2FnZU9yaWdpblR5cGUgewogfTsKIAogU2hhZG93
Um9vdDo6U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQsIFNoYWRvd1Jvb3RUeXBlIHR5cGUp
Ci0gICAgOiBEb2N1bWVudEZyYWdtZW50KGRvY3VtZW50LCBDcmVhdGVTaGFkb3dSb290KQorICAg
IDogRG9jdW1lbnRGcmFnbWVudCgwLCBDcmVhdGVTaGFkb3dSb290KQogICAgICwgVHJlZVNjb3Bl
KHRoaXMsIGRvY3VtZW50KQogICAgICwgbV9wcmV2KDApCiAgICAgLCBtX25leHQoMCkKQEAgLTYz
LDcgKzYzLDYgQEAgU2hhZG93Um9vdDo6U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQsIFNo
YWRvd1Jvb3RUeXBlIHR5cGUpCiAgICAgLCBtX3JlZ2lzdGVyZWRXaXRoUGFyZW50U2hhZG93Um9v
dChmYWxzZSkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOwotICAgIHNldFRyZWVTY29wZSh0aGlz
KTsKIAogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQogICAgIGlmICh0eXBlID09IFNoYWRvd1Jvb3Q6
OkF1dGhvclNoYWRvd1Jvb3QpIHsKQEAgLTg5LDYgKzg4LDExIEBAIFNoYWRvd1Jvb3Q6On5TaGFk
b3dSb290KCkKICAgICAgICAgY2xlYXJSYXJlRGF0YSgpOwogfQogCit2b2lkIFNoYWRvd1Jvb3Q6
OmRpc3Bvc2UoKQoreworICAgIHJlbW92ZURldGFjaGVkQ2hpbGRyZW4oKTsKK30KKwogUGFzc1Jl
ZlB0cjxOb2RlPiBTaGFkb3dSb290OjpjbG9uZU5vZGUoYm9vbCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgZWMgPSBEQVRBX0NMT05FX0VSUjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4
IDJkMWNmMjNiMWViYmI2ZmQ0NTcyZTBmODkwODliOWZmOTY0ZDdjNmQuLmRiYzcxZGMwYTZjZDYy
OGUwM2UwOTQ1MDYxZWRjYTY1NjMyMDk5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAt
MTAwLDYgKzEwMCw3IEBAIHByaXZhdGU6CiAgICAgU2hhZG93Um9vdChEb2N1bWVudCosIFNoYWRv
d1Jvb3RUeXBlKTsKICAgICB2aXJ0dWFsIH5TaGFkb3dSb290KCk7CiAKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcG9zZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2Vk
KE5vZGVUeXBlKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFu
Z2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqIGFmdGVy
Q2hhbmdlLCBpbnQgY2hpbGRDb3VudERlbHRhKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNj
b3BlLmNwcAppbmRleCA0NTRhZjVkYTlkZmE4NjYwZGUwZTMxMjQ5YmVmOTg2ZTFjYzdkMGI4Li4z
ODA5ZDVkN2UwMmRiOWU2ODQyZTFkYWE0MGFhODhiNDFjYjY1NGYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJl
ZVNjb3BlLmNwcApAQCAtNTksNiArNTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3Qg
U2FtZVNpemVBc1RyZWVTY29wZSB7CiAgICAgdmlydHVhbCB+U2FtZVNpemVBc1RyZWVTY29wZSgp
OwogICAgIHZvaWQqIHBvaW50ZXJzWzhdOworICAgIGludCBpbnRzWzFdOwogfTsKIAogQ09NUElM
RV9BU1NFUlQoc2l6ZW9mKFRyZWVTY29wZSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNUcmVlU2NvcGUp
LCB0cmVlc2NvcGVfc2hvdWxkX3N0YXlfc21hbGwpOwpAQCAtNjksMzUgKzcwLDQ3IEBAIFRyZWVT
Y29wZTo6VHJlZVNjb3BlKENvbnRhaW5lck5vZGUqIHJvb3ROb2RlLCBEb2N1bWVudCogZG9jdW1l
bnQpCiAgICAgOiBtX3Jvb3ROb2RlKHJvb3ROb2RlKQogICAgICwgbV9kb2N1bWVudFNjb3BlKGRv
Y3VtZW50KQogICAgICwgbV9wYXJlbnRUcmVlU2NvcGUoZG9jdW1lbnQpCisgICAgLCBtX2d1YXJk
UmVmQ291bnQoMCkKICAgICAsIG1faWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KElkVGFyZ2V0T2Jz
ZXJ2ZXJSZWdpc3RyeTo6Y3JlYXRlKCkpCiB7CiAgICAgQVNTRVJUKHJvb3ROb2RlKTsKICAgICBB
U1NFUlQoZG9jdW1lbnQpOwogICAgIEFTU0VSVChyb290Tm9kZSAhPSBkb2N1bWVudCk7CisgICAg
bV9wYXJlbnRUcmVlU2NvcGUtPmd1YXJkUmVmKCk7CisgICAgbV9yb290Tm9kZS0+c2V0VHJlZVNj
b3BlKHRoaXMpOwogfQogCiBUcmVlU2NvcGU6OlRyZWVTY29wZShEb2N1bWVudCogZG9jdW1lbnQp
CiAgICAgOiBtX3Jvb3ROb2RlKGRvY3VtZW50KQogICAgICwgbV9kb2N1bWVudFNjb3BlKGRvY3Vt
ZW50KQogICAgICwgbV9wYXJlbnRUcmVlU2NvcGUoMCkKKyAgICAsIG1fZ3VhcmRSZWZDb3VudCgw
KQogICAgICwgbV9pZFRhcmdldE9ic2VydmVyUmVnaXN0cnkoSWRUYXJnZXRPYnNlcnZlclJlZ2lz
dHJ5OjpjcmVhdGUoKSkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQpOworICAgIG1fcm9vdE5vZGUt
PnNldFRyZWVTY29wZSh0aGlzKTsKIH0KIAogVHJlZVNjb3BlOjpUcmVlU2NvcGUoKQogICAgIDog
bV9yb290Tm9kZSgwKQogICAgICwgbV9kb2N1bWVudFNjb3BlKDApCiAgICAgLCBtX3BhcmVudFRy
ZWVTY29wZSgwKQorICAgICwgbV9ndWFyZFJlZkNvdW50KDApCiB7CiB9CiAKIFRyZWVTY29wZTo6
flRyZWVTY29wZSgpCiB7CisgICAgQVNTRVJUKCFtX2d1YXJkUmVmQ291bnQpOworICAgIG1fcm9v
dE5vZGUtPnNldFRyZWVTY29wZShub0RvY3VtZW50SW5zdGFuY2UoKSk7CisKICAgICBpZiAobV9z
ZWxlY3Rpb24pIHsKICAgICAgICAgbV9zZWxlY3Rpb24tPmNsZWFyVHJlZVNjb3BlKCk7CiAgICAg
ICAgIG1fc2VsZWN0aW9uID0gMDsKICAgICB9CisKKyAgICBpZiAobV9wYXJlbnRUcmVlU2NvcGUp
CisgICAgICAgIG1fcGFyZW50VHJlZVNjb3BlLT5ndWFyZERlcmVmKCk7CiB9CiAKIHZvaWQgVHJl
ZVNjb3BlOjpkZXN0cm95VHJlZVNjb3BlRGF0YSgpCkBAIC0xMjAsNiArMTMzLDkgQEAgdm9pZCBU
cmVlU2NvcGU6OnNldFBhcmVudFRyZWVTY29wZShUcmVlU2NvcGUqIG5ld1BhcmVudFNjb3BlKQog
ICAgIC8vIEV2ZXJ5IHNjb3BlIG90aGVyIHRoYW4gZG9jdW1lbnQgbmVlZHMgYSBwYXJlbnQgc2Nv
cGUuCiAgICAgQVNTRVJUKG5ld1BhcmVudFNjb3BlKTsKIAorICAgIG5ld1BhcmVudFNjb3BlLT5n
dWFyZFJlZigpOworICAgIGlmIChtX3BhcmVudFRyZWVTY29wZSkKKyAgICAgICAgbV9wYXJlbnRU
cmVlU2NvcGUtPmd1YXJkRGVyZWYoKTsKICAgICBtX3BhcmVudFRyZWVTY29wZSA9IG5ld1BhcmVu
dFNjb3BlOwogICAgIHNldERvY3VtZW50U2NvcGUobmV3UGFyZW50U2NvcGUtPmRvY3VtZW50U2Nv
cGUoKSk7CiB9CkBAIC00MTUsNCArNDMxLDI0IEBAIFRyZWVTY29wZSogY29tbW9uVHJlZVNjb3Bl
KE5vZGUqIG5vZGVBLCBOb2RlKiBub2RlQikKICAgICByZXR1cm4gdHJlZVNjb3Blc0FbaW5kZXhB
XSA9PSB0cmVlU2NvcGVzQltpbmRleEJdID8gdHJlZVNjb3Blc0FbaW5kZXhBXSA6IDA7CiB9CiAK
KyNpZm5kZWYgTkRFQlVHCitib29sIFRyZWVTY29wZTo6ZGVsZXRpb25IYXNCZWd1bigpCit7Cisg
ICAgcmV0dXJuIHJvb3ROb2RlKCkgJiYgcm9vdE5vZGUoKS0+bV9kZWxldGlvbkhhc0JlZ3VuOwor
fQorCit2b2lkIFRyZWVTY29wZTo6YmVnaW5EZWxldGlvbigpCit7CisgICAgQVNTRVJUKHRoaXMg
IT0gbm9Eb2N1bWVudEluc3RhbmNlKCkpOworICAgIHJvb3ROb2RlKCktPm1fZGVsZXRpb25IYXNC
ZWd1biA9IHRydWU7Cit9CisjZW5kaWYKKworaW50IFRyZWVTY29wZTo6cmVmQ291bnQoKSBjb25z
dAoreworICAgIGlmIChOb2RlKiByb290ID0gcm9vdE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIHJv
b3QtPnJlZkNvdW50KCk7CisgICAgcmV0dXJuIDA7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlU2NvcGUuaAppbmRleCBiZTUwMGYxMDY0YzhiNzgxNDljZGNkZWQ5Mjgx
OTFiM2Y1NmIzZWYxLi5lNTQwMTUyYzk3MzljZTA4ZmY3ODQ1NTdjNGUyYjM0YjFlZTIyMTM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZS5oCkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICAvLyBV
c2VkIGJ5IHRoZSBiYXNpYyBET00gbXV0YXRpb24gbWV0aG9kcyAoZS5nLiwgYXBwZW5kQ2hpbGQo
KSkuCiAgICAgdm9pZCBhZG9wdElmTmVlZGVkKE5vZGUqKTsKIAotICAgIENvbnRhaW5lck5vZGUq
IHJvb3ROb2RlKCkgY29uc3QgeyByZXR1cm4gbV9yb290Tm9kZTsgfQorICAgIE5vZGUqIHJvb3RO
b2RlKCkgY29uc3QgeyByZXR1cm4gbV9yb290Tm9kZTsgfQogCiAgICAgSWRUYXJnZXRPYnNlcnZl
clJlZ2lzdHJ5JiBpZFRhcmdldE9ic2VydmVyUmVnaXN0cnkoKSBjb25zdCB7IHJldHVybiAqbV9p
ZFRhcmdldE9ic2VydmVyUmVnaXN0cnkuZ2V0KCk7IH0KIApAQCAtMTA0LDYgKzEwNCwyOSBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiAmaW5zdGFuY2U7CiAgICAgfQogCisgICAgLy8gTm9kZXMg
YmVsb25naW5nIHRvIHRoaXMgc2NvcGUgaG9sZCBndWFyZCByZWZlcmVuY2VzIC0KKyAgICAvLyB0
aGVzZSBhcmUgZW5vdWdoIHRvIGtlZXAgdGhlIHNjb3BlIGZyb20gYmVpbmcgZGVzdHJveWVkLCBi
dXQKKyAgICAvLyBub3QgZW5vdWdoIHRvIGtlZXAgaXQgZnJvbSByZW1vdmluZyBpdHMgY2hpbGRy
ZW4uIFRoaXMgYWxsb3dzIGEKKyAgICAvLyBub2RlIHRoYXQgb3V0bGl2ZXMgaXRzIHNjb3BlIHRv
IHN0aWxsIGhhdmUgYSB2YWxpZCBkb2N1bWVudAorICAgIC8vIHBvaW50ZXIgd2l0aG91dCBpbnRy
b2R1Y2luZyByZWZlcmVuY2UgY3ljbGVzLgorICAgIHZvaWQgZ3VhcmRSZWYoKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKCFkZWxldGlvbkhhc0JlZ3VuKCkpOworICAgICAgICArK21fZ3VhcmRSZWZD
b3VudDsKKyAgICB9CisKKyAgICB2b2lkIGd1YXJkRGVyZWYoKQorICAgIHsKKyAgICAgICAgQVNT
RVJUKCFkZWxldGlvbkhhc0JlZ3VuKCkpOworICAgICAgICAtLW1fZ3VhcmRSZWZDb3VudDsKKyAg
ICAgICAgaWYgKCFtX2d1YXJkUmVmQ291bnQgJiYgIXJlZkNvdW50KCkgJiYgdGhpcyAhPSBub0Rv
Y3VtZW50SW5zdGFuY2UoKSkgeworICAgICAgICAgICAgYmVnaW5EZWxldGlvbigpOworICAgICAg
ICAgICAgZGVsZXRlIHRoaXM7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2b2lkIHJlbW92ZWRM
YXN0UmVmVG9TY29wZSgpOworCiBwcm90ZWN0ZWQ6CiAgICAgVHJlZVNjb3BlKENvbnRhaW5lck5v
ZGUqLCBEb2N1bWVudCopOwogICAgIFRyZWVTY29wZShEb2N1bWVudCopOwpAQCAtMTE4LDEyICsx
NDEsMjYgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX2RvY3VtZW50U2NvcGUgPSBkb2N1bWVudDsK
ICAgICB9CiAKKyAgICBib29sIGhhc0d1YXJkUmVmQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2d1
YXJkUmVmQ291bnQ7IH0KKwogcHJpdmF0ZToKICAgICBUcmVlU2NvcGUoKTsKIAotICAgIENvbnRh
aW5lck5vZGUqIG1fcm9vdE5vZGU7CisgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSB7IH0KKwor
ICAgIGludCByZWZDb3VudCgpIGNvbnN0OworI2lmbmRlZiBOREVCVUcKKyAgICBib29sIGRlbGV0
aW9uSGFzQmVndW4oKTsKKyAgICB2b2lkIGJlZ2luRGVsZXRpb24oKTsKKyNlbHNlCisgICAgYm9v
bCBkZWxldGlvbkhhc0JlZ3VuKCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIGJlZ2luRGVs
ZXRpb24oKSB7IH0KKyNlbmRpZgorCisgICAgTm9kZSogbV9yb290Tm9kZTsKICAgICBEb2N1bWVu
dCogbV9kb2N1bWVudFNjb3BlOwogICAgIFRyZWVTY29wZSogbV9wYXJlbnRUcmVlU2NvcGU7Cisg
ICAgaW50IG1fZ3VhcmRSZWZDb3VudDsKIAogICAgIE93blB0cjxEb2N1bWVudE9yZGVyZWRNYXA+
IG1fZWxlbWVudHNCeUlkOwogICAgIE93blB0cjxEb2N1bWVudE9yZGVyZWRNYXA+IG1faW1hZ2VN
YXBzQnlOYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwCmluZGV4IDQx
YmZkMjU2Y2M0YjVlNWYzMTcxOTUxOGJlMWIzMDg5NWU4NThkMTAuLjI1NTBjMmQyZTMzZGFkMWJl
MWViMGU4Njc0MTk4ZGMxYmJlODBkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9U
cmVlU2NvcGVBZG9wdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRv
cHRlci5jcHAKQEAgLTQwLDYgKzQwLDggQEAgdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJl
ZVRvTmV3U2NvcGUoTm9kZSogcm9vdCkgY29uc3QKIHsKICAgICBBU1NFUlQobmVlZHNTY29wZUNo
YW5nZSgpKTsKIAorICAgIG1fb2xkU2NvcGUtPmd1YXJkUmVmKCk7CisKICAgICAvLyBJZiBhbiBl
bGVtZW50IGlzIG1vdmVkIGZyb20gYSBkb2N1bWVudCBhbmQgdGhlbiBldmVudHVhbGx5IGJhY2sg
YWdhaW4gdGhlIGNvbGxlY3Rpb24gY2FjaGUgZm9yCiAgICAgLy8gdGhhdCBlbGVtZW50IG1heSBj
b250YWluIHN0YWxlIGRhdGEgYXMgY2hhbmdlcyBtYWRlIHRvIGl0IHdpbGwgaGF2ZSB1cGRhdGVk
IHRoZSBET01UcmVlVmVyc2lvbgogICAgIC8vIG9mIHRoZSBkb2N1bWVudCBpdCB3YXMgbW92ZWQg
dG8uIEJ5IGluY3JlYXNpbmcgdGhlIERPTVRyZWVWZXJzaW9uIG9mIHRoZSBkb25hdGluZyBkb2N1
bWVudCBoZXJlCkBAIC01MSw3ICs1Myw3IEBAIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRy
ZWVUb05ld1Njb3BlKE5vZGUqIHJvb3QpIGNvbnN0CiAgICAgICAgIG9sZERvY3VtZW50LT5pbmNE
T01UcmVlVmVyc2lvbigpOwogCiAgICAgZm9yIChOb2RlKiBub2RlID0gcm9vdDsgbm9kZTsgbm9k
ZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQobm9kZSwgcm9vdCkpIHsKLSAgICAgICAgbm9kZS0+c2V0
VHJlZVNjb3BlKG1fbmV3U2NvcGUpOworICAgICAgICB1cGRhdGVUcmVlU2NvcGUobm9kZSk7CiAK
ICAgICAgICAgaWYgKHdpbGxNb3ZlVG9OZXdEb2N1bWVudCkKICAgICAgICAgICAgIG1vdmVOb2Rl
VG9OZXdEb2N1bWVudChub2RlLCBvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQpOwpAQCAtNzYsNiAr
NzgsOCBAQCB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVUcmVlVG9OZXdTY29wZShOb2RlKiBy
b290KSBjb25zdAogICAgICAgICAgICAgICAgIG1vdmVUcmVlVG9OZXdEb2N1bWVudChzaGFkb3cs
IG9sZERvY3VtZW50LCBuZXdEb2N1bWVudCk7CiAgICAgICAgIH0KICAgICB9CisKKyAgICBtX29s
ZFNjb3BlLT5ndWFyZERlcmVmKCk7CiB9CiAKIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRy
ZWVUb05ld0RvY3VtZW50KE5vZGUqIHJvb3QsIERvY3VtZW50KiBvbGREb2N1bWVudCwgRG9jdW1l
bnQqIG5ld0RvY3VtZW50KSBjb25zdApAQCAtOTksNiArMTAzLDE1IEBAIHZvaWQgVHJlZVNjb3Bl
QWRvcHRlcjo6ZW5zdXJlRGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQoRG9jdW1lbnQqIG9s
ZERvY3VtZW50CiB9CiAjZW5kaWYKIAoraW5saW5lIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6dXBk
YXRlVHJlZVNjb3BlKE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgQVNTRVJUKCFub2RlLT5pc1Ry
ZWVTY29wZSgpKTsKKyAgICBBU1NFUlQobm9kZS0+dHJlZVNjb3BlKCkgPT0gbV9vbGRTY29wZSk7
CisgICAgbV9uZXdTY29wZS0+Z3VhcmRSZWYoKTsKKyAgICBtX29sZFNjb3BlLT5ndWFyZERlcmVm
KCk7CisgICAgbm9kZS0+c2V0VHJlZVNjb3BlKG1fbmV3U2NvcGUpOworfQorCiBpbmxpbmUgdm9p
ZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlTm9kZVRvTmV3RG9jdW1lbnQoTm9kZSogbm9kZSwgRG9j
dW1lbnQqIG9sZERvY3VtZW50LCBEb2N1bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0CiB7CiAgICAg
QVNTRVJUKCFub2RlLT5pbkRvY3VtZW50KCkgfHwgb2xkRG9jdW1lbnQgIT0gbmV3RG9jdW1lbnQp
OwpAQCAtMTA5LDcgKzEyMiw2IEBAIGlubGluZSB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVO
b2RlVG9OZXdEb2N1bWVudChOb2RlKiBub2RlLCBEb2N1bWVudCogb2xkRG9jCiAgICAgICAgICAg
ICByYXJlRGF0YS0+bm9kZUxpc3RzKCktPmFkb3B0RG9jdW1lbnQob2xkRG9jdW1lbnQsIG5ld0Rv
Y3VtZW50KTsKICAgICB9CiAKLSAgICBuZXdEb2N1bWVudC0+Z3VhcmRSZWYoKTsKICAgICBpZiAo
b2xkRG9jdW1lbnQpCiAgICAgICAgIG9sZERvY3VtZW50LT5tb3ZlTm9kZUl0ZXJhdG9yc1RvTmV3
RG9jdW1lbnQobm9kZSwgbmV3RG9jdW1lbnQpOwogCkBAIC0xMjMsOSArMTM1LDYgQEAgaW5saW5l
IHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZU5vZGVUb05ld0RvY3VtZW50KE5vZGUqIG5vZGUs
IERvY3VtZW50KiBvbGREb2MKIAogICAgIG5vZGUtPmRpZE1vdmVUb05ld0RvY3VtZW50KG9sZERv
Y3VtZW50KTsKICAgICBBU1NFUlQoZGlkTW92ZVRvTmV3RG9jdW1lbnRXYXNDYWxsZWQpOwotICAg
IAotICAgIGlmIChvbGREb2N1bWVudCkKLSAgICAgICAgb2xkRG9jdW1lbnQtPmd1YXJkRGVyZWYo
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmgKaW5kZXggNGNhNDE4
MjE5MGNkYWNjNTgzMmRhYmJjMGVkNDZlZjQyZmZiZmMzMy4uY2VhNGRjYTdkMzA1N2Q5NzRkMDA3
M2ZmZDkyZDIwNzBjODFhODg2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVT
Y29wZUFkb3B0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5o
CkBAIC00NSw2ICs0NSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgorICAgIHZvaWQg
dXBkYXRlVHJlZVNjb3BlKE5vZGUqKSBjb25zdDsKICAgICB2b2lkIG1vdmVUcmVlVG9OZXdTY29w
ZShOb2RlKikgY29uc3Q7CiAgICAgdm9pZCBtb3ZlVHJlZVRvTmV3RG9jdW1lbnQoTm9kZSosIERv
Y3VtZW50KiBvbGREb2N1bWVudCwgRG9jdW1lbnQqIG5ld0RvY3VtZW50KSBjb25zdDsKICAgICB2
b2lkIG1vdmVOb2RlVG9OZXdEb2N1bWVudChOb2RlKiwgRG9jdW1lbnQqIG9sZERvY3VtZW50LCBE
b2N1bWVudCogbmV3RG9jdW1lbnQpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191385</attachid>
            <date>2013-03-04 20:04:25 -0800</date>
            <delta_ts>2013-03-05 00:10:19 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-109777-20130305130032.patch</filename>
            <type>text/plain</type>
            <size>24654</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWJiZWRmNjAxNzk5YjVm
MWFiMjc2OGQ5YWI1MzhjMGY3ODE2NGM0ZS4uOGI3ZmJiMDk4NGNmM2Y4YmE2YzZhMTNjMjA3Zjk4
MWYyZjNhMjRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEzLTAzLTA0ICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaGFkb3dSb290IG5l
ZWRzIGd1YXJkUmVmKCkgYW5kIGd1YXJkRGVyZWYoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5Nzc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGlt
aXRyaSBHbGF6a292LgorCisgICAgICAgIFRoaXMgY2hhbmdlIG1vdmVzIG1fZ3VhcmRSZWZDb3Vu
dCBmcm9tIERvY3VtZW50IHRvIFRyZWVTY29wZSwKKyAgICAgICAgd2hpY2ggYWxsb3dzIFNoYWRv
d1Jvb3QgdG8gYmUgZ3VhcmRlZCBieSBndWFyZFJlZigpIG1lY2hhbmlzbSBhcworICAgICAgICBE
b2N1bWVudC4gQWZ0ZXIgcjEzNzUyNCwgTm9kZSByZWZlcmVzIFRyZWVTY29wZSBpbnN0ZWFkIG9m
CisgICAgICAgIERvY3VtZW50LiBUaGlzIGlzIG5hdHVyYWwgY29uc2VxdWVuY2Ugb2YgdGhlIGNo
YW5nZTogSXQgbm8gbG9uZ2VyCisgICAgICAgIG1ha2VzIHNlbnNlIHRvIGd1YXJkUmVmKCkgRG9j
dW1lbnQgcG9pbnRlciBmcm9tIE5vZGUuCisKKyAgICAgICAgRGV0YWlsOgorCisgICAgICAgIC0g
RG9jdW1lbnQ6Om1fZ3VhcmRSZWZDb3VudCBhbmQgcmVsYXRlZCBmdW5jZHRpb25zIGFyZSBtb3Zl
ZCB0byBUcmVlU2NvcGUKKyAgICAgICAgLSBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYgaXMgZmFj
dG9yZWQgb3V0IGludG8gVHJlZVNjb3BlOjpyZW1vdmVkTGFzdFJlZlRvU2NvcGUoKSwKKyAgICAg
ICAgICBUcmVlU2NvcGU6OmRpc3Bvc2UoKSBhbmQgRG9jdWVudDo6ZGlzcG9zZSgpLiBTaGFkb3dS
b290IGFsc28gZ290IGl0cyBvd24gZGlzcG9zZSgpIGltcGxlbWVudGF0aW9uLgorICAgICAgICAt
IE1vdmVkIGd1YXJkUmVmKCkgYW5kIGd1YXJkRGVyZWYoKSBjYWxscyB0byBUcmVlU2NvcGUgYW5k
IE5vZGUuCisgICAgICAgICAgTm90ZSB0aGF0IHRoZXJlIGFyZSB0d28gImd1YXJkZWQiIFRyZWVT
Y29wZSByZWZlcmVuY2VzLiBPbmUgaXMKKyAgICAgICAgICBOb2RlOjptX3RyZWVTY29wZSBhbmQg
YW5vdGhlciBpcyBUcmVlU2NvcGU6Om1fcGFyZW50VHJlZVNjb3BlLgorICAgICAgICAgIFRoZSBn
dWFyZGVkLXJlZiBtYW5hZ2VtZW50IGlzIG5vdyBlbmNhcHN1bGF0ZWQgaW4gdGhlc2UgdHdvIGNs
YXNzZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpEb2N1bWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpEb2N1bWVudDo6fkRvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpk
aXNwb3NlKTogRXh0cmFjdGVkIGZyb20gcmVtb3ZlZExhc3RSZWYoKQorICAgICAgICAqIGRvbS9E
b2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXNUcmVlU2NvcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6Tm9kZSk6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJhZ21lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudDo6RG9jdW1lbnRGcmFnbWVu
dCk6IFJlbW92ZSBBU1NFUlQoKSBhbmQgbW92ZSBpdCB0byAuLi4KKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50RnJhZ21lbnQ6OmNyZWF0ZSk6IC4uLiBoZXJlLCB0byBhbGxvdyBOVUxMIGRvY3Vt
ZW50IGZyb20gU2hhZG93Um9vdC4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjp+Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpyZW1vdmVkTGFz
dFJlZik6CisgICAgICAgICogZG9tL05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OnNl
dFRyZWVTY29wZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RWxlbWVudDo6ZW5zdXJlQXR0cik6IFRoaXMgaGFzIGJlZW4gd3JvbmcgYW5kIGlzIGZpeGVk
IGluIHRoaXMgcmV2aXNpb24gc2luY2UgdGhlIGluY29ycmVjdG5lc3MgaXMgdW52ZWlsZWQgYnkg
dGhpcyBjaGFuZ2UuCisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhZG93Um9vdDo6U2hhZG93Um9vdCk6IFBhc3NlZCBOVUxMIGRvY3VtZW50IHRvIHN1
cGVyY2xhc3MuIFRoaXMgYWxpZ25zIHdoYXQgRG9jdW1lbnQgaXMgZG9pbmcuCisgICAgICAgIChX
ZWJDb3JlOjpTaGFkb3dSb290OjpkaXNwb3NlKTogQWRkZWQuCisgICAgICAgICogZG9tL1NoYWRv
d1Jvb3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUu
Y3BwOgorICAgICAgICAoU2FtZVNpemVBc1RyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpU
cmVlU2NvcGU6OlRyZWVTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6On5UcmVl
U2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNjb3BlOjpkaXNwb3NlKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OnNldFBhcmVudFRyZWVTY29wZSk6CisgICAgICAg
IChXZWJDb3JlOjpUcmVlU2NvcGU6OmRlbGV0aW9uSGFzQmVndW4pOgorICAgICAgICAoV2ViQ29y
ZTo6VHJlZVNjb3BlOjpiZWdpbkRlbGV0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29w
ZTo6cmVmQ291bnQpOiBBZGRlZC4KKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmg6IFR1cm5lZCBt
X3Jvb3ROb2RlIHRvIE5vZGUqIGZyb20gQ29udGFpbmVyTm9kZSogZm9yIE5vZGU6OmlzVHJlZVNj
b3BlIHRvIGJlIGlubGluZWQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6Omd1YXJkUmVm
KTogUHVsbGVkIHVwIGZyb20gRG9jdW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6
Omd1YXJkRGVyZWYpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6aGFzR3Vh
cmRSZWZDb3VudCk6IEFkZGVkIHRvIGhpZGUgbV9ndWFyZFJlZkNvdW50LgorICAgICAgICAoV2Vi
Q29yZTo6VHJlZVNjb3BlOjpkZWxldGlvbkhhc0JlZ3VuKTogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpUcmVlU2NvcGU6OmJlZ2luRGVsZXRpb24pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlRyZWVTY29wZTo6cmVtb3ZlZExhc3RSZWZUb1Njb3BlKTogUHVsbGVkIHVwIGZyb20gRG9jdW1l
bnQuCisgICAgICAgICogZG9tL1RyZWVTY29wZUFkb3B0ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRyZWVUb05ld1Njb3BlKToKKyAgICAgICAgKFdlYkNv
cmU6OlRyZWVTY29wZUFkb3B0ZXI6Om1vdmVOb2RlVG9OZXdEb2N1bWVudCk6CisKIDIwMTMtMDMt
MDQgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBw
b3J0IFdlYlNwZWVjaCAtIFNwZWVjaCBTeW50aGVzaXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXgg
MzM3OTljYTMxZWMyOWZlMTk3MWM5MWUxZjliNWYwMjJjMTJhOWEyYS4uODZlZDcyMTNlZGVkN2U1
ZWE4YTc2NzIzZTI4ZGJmOTE4ZmM2Mzc1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTE0MjMs
NyArMTQyMyw2IEBAIF9fWk5LN1dlYkNvcmU0Tm9kZTExdGV4dENvbnRlbnRFYgogX19aTjdXZWJD
b3JlNE5vZGUxMmluc2VydEJlZm9yZUVOM1dURjEwUGFzc1JlZlB0cklTMF9FRVBTMF9SaWIKIF9f
Wk5LN1dlYkNvcmU0Tm9kZTEzb3duZXJEb2N1bWVudEV2CiBfX1pOSzdXZWJDb3JlNE5vZGUxNGlz
RGVzY2VuZGFudE9mRVBLUzBfCi1fX1pOSzdXZWJDb3JlNE5vZGUxMWlzVHJlZVNjb3BlRXYKIF9f
Wk5LN1dlYkNvcmU0Tm9kZTE4Z2V0U3VicmVzb3VyY2VVUkxzRVJOM1dURjExTGlzdEhhc2hTZXRJ
TlNfNEtVUkxFTG0yNTZFTlNfOEtVUkxIYXNoRUVFCiBfX1pOSzdXZWJDb3JlNE5vZGUzMW51bWJl
ck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW5FdgogX19aTks3V2ViQ29yZTROb2RlOW5vZGVJbmRl
eEV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA1YjhjNjQ2YmJlOWE2YjdmZDI3MGU5YjVj
OWI0N2QxYTQ0ZGFlYzZkLi5lZmYyN2IzMjgyMWE3YjBiZGMzNTc5ZTE1Y2U3MWQ1ZDljNzNiOWY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQxNyw3ICs0MTcsNiBAQCB1aW50NjRfdCBE
b2N1bWVudDo6c19nbG9iYWxUcmVlVmVyc2lvbiA9IDA7CiBEb2N1bWVudDo6RG9jdW1lbnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1cmwsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpCiAg
ICAgOiBDb250YWluZXJOb2RlKDAsIENyZWF0ZURvY3VtZW50KQogICAgICwgVHJlZVNjb3BlKHRo
aXMpCi0gICAgLCBtX2d1YXJkUmVmQ291bnQoMCkKICAgICAsIG1fc3R5bGVSZXNvbHZlclRocm93
YXdheVRpbWVyKHRoaXMsICZEb2N1bWVudDo6c3R5bGVSZXNvbHZlclRocm93YXdheVRpbWVyRmly
ZWQpCiAgICAgLCBtX2xhc3RTdHlsZVJlc29sdmVyQWNjZXNzVGltZSgwKQogICAgICwgbV9hY3Rp
dmVQYXJzZXJDb3VudCgwKQpAQCAtNDg5LDggKzQ4OCw2IEBAIERvY3VtZW50OjpEb2N1bWVudChG
cmFtZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCkK
ICAgICAsIG1fdGVtcGxhdGVEb2N1bWVudEhvc3QoMCkKICNlbmRpZgogewotICAgIHNldFRyZWVT
Y29wZSh0aGlzKTsKLQogICAgIG1fcHJpbnRpbmcgPSBmYWxzZTsKICAgICBtX3BhZ2luYXRlZEZv
clNjcmVlbiA9IGZhbHNlOwogCkBAIC01OTAsNyArNTg3LDcgQEAgRG9jdW1lbnQ6On5Eb2N1bWVu
dCgpCiAgICAgQVNTRVJUKG1fcmFuZ2VzLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKCFtX3N0eWxl
UmVjYWxjVGltZXIuaXNBY3RpdmUoKSk7CiAgICAgQVNTRVJUKCFtX3BhcmVudFRyZWVTY29wZSk7
Ci0gICAgQVNTRVJUKCFtX2d1YXJkUmVmQ291bnQpOworICAgIEFTU0VSVCghaGFzR3VhcmRSZWZD
b3VudCgpKTsKIAogI2lmIEVOQUJMRShURU1QTEFURV9FTEVNRU5UKQogICAgIGlmIChtX3RlbXBs
YXRlRG9jdW1lbnQpCkBAIC02NTcsNjQgKzY1NCw0NSBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkK
ICAgICBJbnNwZWN0b3JDb3VudGVyczo6ZGVjcmVtZW50Q291bnRlcihJbnNwZWN0b3JDb3VudGVy
czo6RG9jdW1lbnRDb3VudGVyKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYo
KQordm9pZCBEb2N1bWVudDo6ZGlzcG9zZSgpCiB7CiAgICAgQVNTRVJUKCFtX2RlbGV0aW9uSGFz
QmVndW4pOwotICAgIGlmIChtX2d1YXJkUmVmQ291bnQpIHsKLSAgICAgICAgLy8gSWYgcmVtb3Zp
bmcgYSBjaGlsZCByZW1vdmVzIHRoZSBsYXN0IHNlbGYtb25seSByZWYsIHdlIGRvbid0Ci0gICAg
ICAgIC8vIHdhbnQgdGhlIHNjb3BlIHRvIGJlIGRlc3RydWN0ZWQgdW50aWwgYWZ0ZXIKLSAgICAg
ICAgLy8gcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbiByZXR1cm5zLCBzbyB3ZSBndWFyZCBvdXJzZWx2
ZXMgd2l0aCBhbgotICAgICAgICAvLyBleHRyYSBzZWxmLW9ubHkgcmVmLgotICAgICAgICBndWFy
ZFJlZigpOwotCi0gICAgICAgIC8vIFdlIG11c3QgbWFrZSBzdXJlIG5vdCB0byBiZSByZXRhaW5p
bmcgYW55IG9mIG91ciBjaGlsZHJlbiB0aHJvdWdoCi0gICAgICAgIC8vIHRoZXNlIGV4dHJhIHBv
aW50ZXJzIG9yIHdlIHdpbGwgY3JlYXRlIGEgcmVmZXJlbmNlIGN5Y2xlLgotICAgICAgICBtX2Rv
Y1R5cGUgPSAwOwotICAgICAgICBtX2ZvY3VzZWROb2RlID0gMDsKLSAgICAgICAgbV9ob3Zlck5v
ZGUgPSAwOwotICAgICAgICBtX2FjdGl2ZUVsZW1lbnQgPSAwOwotICAgICAgICBtX3RpdGxlRWxl
bWVudCA9IDA7Ci0gICAgICAgIG1fZG9jdW1lbnRFbGVtZW50ID0gMDsKLSAgICAgICAgbV9jb250
ZXh0RmVhdHVyZXMgPSBDb250ZXh0RmVhdHVyZXM6OmRlZmF1bHRTd2l0Y2goKTsKLSAgICAgICAg
bV91c2VyQWN0aW9uRWxlbWVudHMuZG9jdW1lbnREaWRSZW1vdmVMYXN0UmVmKCk7CisgICAgLy8g
V2UgbXVzdCBtYWtlIHN1cmUgbm90IHRvIGJlIHJldGFpbmluZyBhbnkgb2Ygb3VyIGNoaWxkcmVu
IHRocm91Z2gKKyAgICAvLyB0aGVzZSBleHRyYSBwb2ludGVycyBvciB3ZSB3aWxsIGNyZWF0ZSBh
IHJlZmVyZW5jZSBjeWNsZS4KKyAgICBtX2RvY1R5cGUgPSAwOworICAgIG1fZm9jdXNlZE5vZGUg
PSAwOworICAgIG1faG92ZXJOb2RlID0gMDsKKyAgICBtX2FjdGl2ZUVsZW1lbnQgPSAwOworICAg
IG1fdGl0bGVFbGVtZW50ID0gMDsKKyAgICBtX2RvY3VtZW50RWxlbWVudCA9IDA7CisgICAgbV9j
b250ZXh0RmVhdHVyZXMgPSBDb250ZXh0RmVhdHVyZXM6OmRlZmF1bHRTd2l0Y2goKTsKKyAgICBt
X3VzZXJBY3Rpb25FbGVtZW50cy5kb2N1bWVudERpZFJlbW92ZUxhc3RSZWYoKTsKICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgICAgIG1fZnVsbFNjcmVlbkVsZW1lbnQgPSAwOwotICAg
ICAgICBtX2Z1bGxTY3JlZW5FbGVtZW50U3RhY2suY2xlYXIoKTsKKyAgICBtX2Z1bGxTY3JlZW5F
bGVtZW50ID0gMDsKKyAgICBtX2Z1bGxTY3JlZW5FbGVtZW50U3RhY2suY2xlYXIoKTsKICNlbmRp
ZgogCi0gICAgICAgIGRldGFjaFBhcnNlcigpOworICAgIGRldGFjaFBhcnNlcigpOwogCiAjaWYg
RU5BQkxFKENVU1RPTV9FTEVNRU5UUykKLSAgICAgICAgbV9yZWdpc3RyeS5jbGVhcigpOworICAg
IG1fcmVnaXN0cnkuY2xlYXIoKTsKICNlbmRpZgogCi0gICAgICAgIC8vIHJlbW92ZURldGFjaGVk
Q2hpbGRyZW4oKSBkb2Vzbid0IGFsd2F5cyB1bnJlZ2lzdGVyIElEcywKLSAgICAgICAgLy8gc28g
dGVhciBkb3duIHNjb3BlIGluZm9ybWF0aW9uIHVwZnJvbnQgdG8gYXZvaWQgaGF2aW5nIHN0YWxl
IHJlZmVyZW5jZXMgaW4gdGhlIG1hcC4KLSAgICAgICAgZGVzdHJveVRyZWVTY29wZURhdGEoKTsK
LSAgICAgICAgcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbigpOworICAgIC8vIHJlbW92ZURldGFjaGVk
Q2hpbGRyZW4oKSBkb2Vzbid0IGFsd2F5cyB1bnJlZ2lzdGVyIElEcywKKyAgICAvLyBzbyB0ZWFy
IGRvd24gc2NvcGUgaW5mb3JtYXRpb24gdXBmcm9udCB0byBhdm9pZCBoYXZpbmcgc3RhbGUgcmVm
ZXJlbmNlcyBpbiB0aGUgbWFwLgorICAgIGRlc3Ryb3lUcmVlU2NvcGVEYXRhKCk7CisgICAgcmVt
b3ZlRGV0YWNoZWRDaGlsZHJlbigpOwogCi0gICAgICAgIG1fbWFya2Vycy0+ZGV0YWNoKCk7Cisg
ICAgbV9tYXJrZXJzLT5kZXRhY2goKTsKIAotICAgICAgICBtX2Nzc0NhbnZhc0VsZW1lbnRzLmNs
ZWFyKCk7CisgICAgbV9jc3NDYW52YXNFbGVtZW50cy5jbGVhcigpOwogCiAjaWYgRU5BQkxFKFJF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQotICAgICAgICAvLyBGSVhNRTogY29uc2lkZXIgdXNpbmcg
QWN0aXZlRE9NT2JqZWN0LgotICAgICAgICBpZiAobV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xs
ZXIpCi0gICAgICAgICAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci0+Y2xlYXJEb2N1
bWVudFBvaW50ZXIoKTsKLSAgICAgICAgbV9zY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuY2xl
YXIoKTsKLSNlbmRpZgotCi0jaWZuZGVmIE5ERUJVRwotICAgICAgICBtX2luUmVtb3ZlZExhc3RS
ZWZGdW5jdGlvbiA9IGZhbHNlOworICAgIC8vIEZJWE1FOiBjb25zaWRlciB1c2luZyBBY3RpdmVE
T01PYmplY3QuCisgICAgaWYgKG1fc2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKQorICAgICAg
ICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci0+Y2xlYXJEb2N1bWVudFBvaW50ZXIoKTsK
KyAgICBtX3NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jbGVhcigpOwogI2VuZGlmCi0KLSAg
ICAgICAgZ3VhcmREZXJlZigpOwotICAgIH0gZWxzZSB7Ci0jaWZuZGVmIE5ERUJVRyAKLSAgICAg
ICAgbV9kZWxldGlvbkhhc0JlZ3VuID0gdHJ1ZTsgCi0jZW5kaWYgCi0gICAgICAgIGRlbGV0ZSB0
aGlzOwotICAgIH0KIH0KIAogRWxlbWVudCogRG9jdW1lbnQ6OmdldEVsZW1lbnRCeUlkKGNvbnN0
IEF0b21pY1N0cmluZyYgaWQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDA2MzYzZDNh
NTRlYjI2OTIxZGMwYmExMDQ5MzY0ZWQzOGI4Y2ZjNTUuLjFhZDYxNTEzNTNiNmFlNDI4ODdjYWU4
YTUzMjU3ODM5OWU2NGU2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yMzEsMjkgKzIzMSw2
IEBAIHB1YmxpYzoKICAgICB1c2luZyBDb250YWluZXJOb2RlOjpyZWY7CiAgICAgdXNpbmcgQ29u
dGFpbmVyTm9kZTo6ZGVyZWY7CiAKLSAgICAvLyBOb2RlcyBiZWxvbmdpbmcgdG8gdGhpcyBkb2N1
bWVudCBob2xkIGd1YXJkIHJlZmVyZW5jZXMgLQotICAgIC8vIHRoZXNlIGFyZSBlbm91Z2ggdG8g
a2VlcCB0aGUgZG9jdW1lbnQgZnJvbSBiZWluZyBkZXN0cm95ZWQsIGJ1dAotICAgIC8vIG5vdCBl
bm91Z2ggdG8ga2VlcCBpdCBmcm9tIHJlbW92aW5nIGl0cyBjaGlsZHJlbi4gVGhpcyBhbGxvd3Mg
YQotICAgIC8vIG5vZGUgdGhhdCBvdXRsaXZlcyBpdHMgZG9jdW1lbnQgdG8gc3RpbGwgaGF2ZSBh
IHZhbGlkIGRvY3VtZW50Ci0gICAgLy8gcG9pbnRlciB3aXRob3V0IGludHJvZHVjaW5nIHJlZmVy
ZW5jZSBjeWNsZXMuCi0gICAgdm9pZCBndWFyZFJlZigpCi0gICAgewotICAgICAgICBBU1NFUlQo
IW1fZGVsZXRpb25IYXNCZWd1bik7Ci0gICAgICAgICsrbV9ndWFyZFJlZkNvdW50OwotICAgIH0K
LQotICAgIHZvaWQgZ3VhcmREZXJlZigpCi0gICAgewotICAgICAgICBBU1NFUlQoIW1fZGVsZXRp
b25IYXNCZWd1bik7Ci0gICAgICAgIC0tbV9ndWFyZFJlZkNvdW50OwotICAgICAgICBpZiAoIW1f
Z3VhcmRSZWZDb3VudCAmJiAhcmVmQ291bnQoKSkgewotI2lmbmRlZiBOREVCVUcKLSAgICAgICAg
ICAgIG1fZGVsZXRpb25IYXNCZWd1biA9IHRydWU7Ci0jZW5kaWYKLSAgICAgICAgICAgIGRlbGV0
ZSB0aGlzOwotICAgICAgICB9Ci0gICAgfQotCiAgICAgRWxlbWVudCogZ2V0RWxlbWVudEJ5SWQo
Y29uc3QgQXRvbWljU3RyaW5nJiBpZCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuQ29u
dGFpblJhbmdlRW5kUG9pbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC0xMjI2LDggKzEy
MDMsOCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBOb2RlOwogICAgIGZyaWVuZCBjbGFz
cyBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlcjsKIAotICAgIHZvaWQgcmVt
b3ZlZExhc3RSZWYoKTsKLSAgICAKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcG9zZSgpIE9WRVJSSURF
OworCiAgICAgdm9pZCBkZXRhY2hQYXJzZXIoKTsKIAogICAgIHR5cGVkZWYgdm9pZCAoKkFyZ3Vt
ZW50c0NhbGxiYWNrKShjb25zdCBTdHJpbmcmIGtleVN0cmluZywgY29uc3QgU3RyaW5nJiB2YWx1
ZVN0cmluZywgRG9jdW1lbnQqLCB2b2lkKiBkYXRhKTsKQEAgLTEyOTUsOCArMTI3Miw2IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBhZGRMaXN0ZW5lclR5cGUoTGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlw
ZSkgeyBtX2xpc3RlbmVyVHlwZXMgfD0gbGlzdGVuZXJUeXBlOyB9CiAgICAgdm9pZCBhZGRNdXRh
dGlvbkV2ZW50TGlzdGVuZXJUeXBlSWZFbmFibGVkKExpc3RlbmVyVHlwZSk7CiAKLSAgICBpbnQg
bV9ndWFyZFJlZkNvdW50OwotCiAgICAgdm9pZCBzdHlsZVJlc29sdmVyVGhyb3dhd2F5VGltZXJG
aXJlZChUaW1lcjxEb2N1bWVudD4qKTsKICAgICBUaW1lcjxEb2N1bWVudD4gbV9zdHlsZVJlc29s
dmVyVGhyb3dhd2F5VGltZXI7CiAgICAgZG91YmxlIG1fbGFzdFN0eWxlUmVzb2x2ZXJBY2Nlc3NU
aW1lOwpAQCAtMTYxNiwxMCArMTU5MSw5IEBAIGlubGluZSBOb2RlOjpOb2RlKERvY3VtZW50KiBk
b2N1bWVudCwgQ29uc3RydWN0aW9uVHlwZSB0eXBlKQogICAgICwgbV9wcmV2aW91cygwKQogICAg
ICwgbV9uZXh0KDApCiB7Ci0gICAgaWYgKGRvY3VtZW50KQotICAgICAgICBkb2N1bWVudC0+Z3Vh
cmRSZWYoKTsKLSAgICBlbHNlCisgICAgaWYgKCFtX3RyZWVTY29wZSkKICAgICAgICAgbV90cmVl
U2NvcGUgPSBUcmVlU2NvcGU6Om5vRG9jdW1lbnRJbnN0YW5jZSgpOworICAgIG1fdHJlZVNjb3Bl
LT5ndWFyZFJlZigpOwogCiAjaWYgIWRlZmluZWQoTkRFQlVHKSB8fCAoZGVmaW5lZChEVU1QX05P
REVfU1RBVElTVElDUykgJiYgRFVNUF9OT0RFX1NUQVRJU1RJQ1MpCiAgICAgdHJhY2tGb3JEZWJ1
Z2dpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcAppbmRleCA4NTAx
NWIyZjRhYWVkNzkyZDU1ZTUzMDc0NGE0ZWQxM2I1MjdkZDZmLi5lNjYwMjQ4YzU1NjhlMmQxMGFh
N2VjYzg0ZjU0OTZiMzc1ODcxOWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRGcmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21l
bnQuY3BwCkBAIC0zNCwxMSArMzQsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogRG9jdW1lbnRG
cmFnbWVudDo6RG9jdW1lbnRGcmFnbWVudChEb2N1bWVudCogZG9jdW1lbnQsIENvbnN0cnVjdGlv
blR5cGUgY29uc3RydWN0aW9uVHlwZSkKICAgICA6IENvbnRhaW5lck5vZGUoZG9jdW1lbnQsIGNv
bnN0cnVjdGlvblR5cGUpCiB7Ci0gICAgQVNTRVJUKGRvY3VtZW50KTsKIH0KIAogUGFzc1JlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBEb2N1bWVudEZyYWdtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50KQogeworICAgIEFTU0VSVChkb2N1bWVudCk7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBEb2N1bWVudEZyYWdtZW50KGRvY3VtZW50LCBOb2RlOjpDcmVhdGVEb2N1bWVudEZyYWdtZW50
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBiMDJhZDM1Yzc4MTI4ODIxZmM4Yjll
MWQxNWVkZjk1ZDdiZTI5YjBkLi45NTMxODU1ZWVlMGZjNWNlODJkMmNmNWEzMzU4NmIzNzE5ZTE3
MzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yNzUzLDYgKzI3NTMsNyBAQCBQYXNzUmVm
UHRyPEF0dHI+IEVsZW1lbnQ6OmVuc3VyZUF0dHIoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkK
ICAgICBSZWZQdHI8QXR0cj4gYXR0ck5vZGUgPSBmaW5kQXR0ck5vZGVJbkxpc3QoYXR0ck5vZGVM
aXN0LCBuYW1lKTsKICAgICBpZiAoIWF0dHJOb2RlKSB7CiAgICAgICAgIGF0dHJOb2RlID0gQXR0
cjo6Y3JlYXRlKHRoaXMsIG5hbWUpOworICAgICAgICB0cmVlU2NvcGUoKS0+YWRvcHRJZk5lZWRl
ZChhdHRyTm9kZS5nZXQoKSk7CiAgICAgICAgIGF0dHJOb2RlTGlzdC0+YXBwZW5kKGF0dHJOb2Rl
KTsKICAgICB9CiAgICAgcmV0dXJuIGF0dHJOb2RlLnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApp
bmRleCAxNDQ1YTAwOTk3NDVjZTNhNGY3MzNkMGZjZGFjZDY4ZThhZDI1NDcyLi5kYzExYzk3NmJj
NzEzYTNjOGMzYmUzNDAxZWNmM2E4MjlkMzI0YWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC00NDIs
OCArNDQyLDcgQEAgTm9kZTo6fk5vZGUoKQogICAgIGlmIChtX25leHQpCiAgICAgICAgIG1fbmV4
dC0+c2V0UHJldmlvdXNTaWJsaW5nKDApOwogCi0gICAgaWYgKGRvYykKLSAgICAgICAgZG9jLT5n
dWFyZERlcmVmKCk7CisgICAgbV90cmVlU2NvcGUtPmd1YXJkRGVyZWYoKTsKIAogICAgIEluc3Bl
Y3RvckNvdW50ZXJzOjpkZWNyZW1lbnRDb3VudGVyKEluc3BlY3RvckNvdW50ZXJzOjpOb2RlQ291
bnRlcik7CiB9CkBAIC04OTIsMTEgKzg5MSw2IEBAIGJvb2wgTm9kZTo6aXNGb2N1c2FibGUoKSBj
b25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIE5vZGU6OmlzVHJlZVNjb3BlKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gdHJlZVNjb3BlKCktPnJvb3ROb2RlKCkgPT0gdGhpczsKLX0KLQog
Ym9vbCBOb2RlOjppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdAogewog
ICAgIHJldHVybiBpc0ZvY3VzYWJsZSgpICYmIHRhYkluZGV4KCkgPj0gMDsKQEAgLTI1NjcsNiAr
MjU2MSwzMSBAQCBQYXNzUmVmUHRyPFByb3BlcnR5Tm9kZUxpc3Q+IE5vZGU6OnByb3BlcnR5Tm9k
ZUxpc3QoY29uc3QgU3RyaW5nJiBuYW1lKQogfQogI2VuZGlmCiAKKy8vIFRoaXMgaXMgaGVyZSBm
b3IgaW5saW5pbmcKK2lubGluZSB2b2lkIFRyZWVTY29wZTo6cmVtb3ZlZExhc3RSZWZUb1Njb3Bl
KCkKK3sKKyAgICBBU1NFUlQoIWRlbGV0aW9uSGFzQmVndW4oKSk7CisgICAgaWYgKG1fZ3VhcmRS
ZWZDb3VudCkgeworICAgICAgICAvLyBJZiByZW1vdmluZyBhIGNoaWxkIHJlbW92ZXMgdGhlIGxh
c3Qgc2VsZi1vbmx5IHJlZiwgd2UgZG9uJ3QKKyAgICAgICAgLy8gd2FudCB0aGUgc2NvcGUgdG8g
YmUgZGVzdHJ1Y3RlZCB1bnRpbCBhZnRlcgorICAgICAgICAvLyByZW1vdmVEZXRhY2hlZENoaWxk
cmVuIHJldHVybnMsIHNvIHdlIGd1YXJkIG91cnNlbHZlcyB3aXRoIGFuCisgICAgICAgIC8vIGV4
dHJhIHNlbGYtb25seSByZWYuCisgICAgICAgIGd1YXJkUmVmKCk7CisgICAgICAgIGRpc3Bvc2Uo
KTsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIC8vIFdlIG5lZWQgdG8gZG8gdGhpcyByaWdodCBu
b3cgc2luY2UgZ3VhcmREZXJlZigpIGNhbiBkZWxldGUgdGhpcy4KKyAgICAgICAgcm9vdE5vZGUo
KS0+bV9pblJlbW92ZWRMYXN0UmVmRnVuY3Rpb24gPSBmYWxzZTsKKyNlbmRpZgorICAgICAgICBn
dWFyZERlcmVmKCk7CisgICAgfSBlbHNlIHsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIHJvb3RO
b2RlKCktPm1faW5SZW1vdmVkTGFzdFJlZkZ1bmN0aW9uID0gZmFsc2U7CisgICAgICAgIGJlZ2lu
RGVsZXRpb24oKTsKKyNlbmRpZgorICAgICAgICBkZWxldGUgdGhpczsKKyAgICB9Cit9CisKIC8v
IEl0J3MgaW1wb3J0YW50IG5vdCB0byBpbmxpbmUgcmVtb3ZlZExhc3RSZWYsIGJlY2F1c2Ugd2Ug
ZG9uJ3Qgd2FudCB0byBpbmxpbmUgdGhlIGNvZGUgdG8KIC8vIGRlbGV0ZSBhIE5vZGUgYXQgZWFj
aCBkZXJlZiBjYWxsIHNpdGUuCiB2b2lkIE5vZGU6OnJlbW92ZWRMYXN0UmVmKCkKQEAgLTI1NzQs
MTAgKzI1OTMsMTEgQEAgdm9pZCBOb2RlOjpyZW1vdmVkTGFzdFJlZigpCiAgICAgLy8gQW4gZXhw
bGljaXQgY2hlY2sgZm9yIERvY3VtZW50IGhlcmUgaXMgYmV0dGVyIHRoYW4gYSB2aXJ0dWFsIGZ1
bmN0aW9uIHNpbmNlIGl0IGlzCiAgICAgLy8gZmFzdGVyIGZvciBub24tRG9jdW1lbnQgbm9kZXMs
IGFuZCBiZWNhdXNlIHRoZSBjYWxsIHRvIHJlbW92ZWRMYXN0UmVmIHRoYXQgaXMgaW5saW5lZAog
ICAgIC8vIGF0IGFsbCBkZXJlZiBjYWxsIHNpdGVzIGlzIHNtYWxsZXIgaWYgaXQncyBhIG5vbi12
aXJ0dWFsIGZ1bmN0aW9uLgotICAgIGlmIChpc0RvY3VtZW50Tm9kZSgpKSB7Ci0gICAgICAgIHN0
YXRpY19jYXN0PERvY3VtZW50Kj4odGhpcyktPnJlbW92ZWRMYXN0UmVmKCk7CisgICAgaWYgKGlz
VHJlZVNjb3BlKCkpIHsKKyAgICAgICAgdHJlZVNjb3BlKCktPnJlbW92ZWRMYXN0UmVmVG9TY29w
ZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQorCiAjaWZuZGVmIE5ERUJVRwogICAgIG1fZGVs
ZXRpb25IYXNCZWd1biA9IHRydWU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCmluZGV4IGE4MzZiZjA2Yzcw
NmUwNGMzNjIzMTcxY2FhNDFiNmNjN2QwMWRmZGQuLjcxMGMxYzZmMzI3MWNjYjIzMmViMmUzZmQ1
MzkxMGQ3YTc0MjlhYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAtMjQ4LDcgKzI0OCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgaXNJbnNlcnRpb25Qb2ludE5vZGUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgYm9vbCBpc0RvY3VtZW50Tm9kZSgpIGNvbnN0OwotICAgIGJvb2wgaXNU
cmVlU2NvcGUoKSBjb25zdDsKKyAgICBib29sIGlzVHJlZVNjb3BlKCkgY29uc3QgeyByZXR1cm4g
dHJlZVNjb3BlKCktPnJvb3ROb2RlKCkgPT0gdGhpczsgfQogICAgIGJvb2wgaXNEb2N1bWVudEZy
YWdtZW50KCkgY29uc3QgeyByZXR1cm4gZ2V0RmxhZyhJc0RvY3VtZW50RnJhZ21lbnRGbGFnKTsg
fQogICAgIGJvb2wgaXNTaGFkb3dSb290KCkgY29uc3QgeyByZXR1cm4gaXNEb2N1bWVudEZyYWdt
ZW50KCkgJiYgaXNUcmVlU2NvcGUoKTsgfQogICAgIGJvb2wgaXNJbnNlcnRpb25Qb2ludCgpIGNv
bnN0IHsgcmV0dXJuIGdldEZsYWcoTmVlZHNTaGFkb3dUcmVlV2Fsa2VyRmxhZykgJiYgaXNJbnNl
cnRpb25Qb2ludE5vZGUoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IGI0ZjI0
MTk1NTNjNzkzZmQ5MGI1MmZiMDJiZDhiOGQ4OTE5ZTRiMzIuLjExNDNiYTM0ODk5NzBlMTk2YTZl
MWRlNTdiNmJmYzE4NzAzMWQ3NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTUy
LDcgKzUyLDcgQEAgZW51bSBTaGFkb3dSb290VXNhZ2VPcmlnaW5UeXBlIHsKIH07CiAKIFNoYWRv
d1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50LCBTaGFkb3dSb290VHlwZSB0eXBl
KQotICAgIDogRG9jdW1lbnRGcmFnbWVudChkb2N1bWVudCwgQ3JlYXRlU2hhZG93Um9vdCkKKyAg
ICA6IERvY3VtZW50RnJhZ21lbnQoMCwgQ3JlYXRlU2hhZG93Um9vdCkKICAgICAsIFRyZWVTY29w
ZSh0aGlzLCBkb2N1bWVudCkKICAgICAsIG1fcHJldigwKQogICAgICwgbV9uZXh0KDApCkBAIC02
Myw3ICs2Myw2IEBAIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50LCBT
aGFkb3dSb290VHlwZSB0eXBlKQogICAgICwgbV9yZWdpc3RlcmVkV2l0aFBhcmVudFNoYWRvd1Jv
b3QoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKLSAgICBzZXRUcmVlU2NvcGUodGhp
cyk7CiAKICNpZiBQTEFURk9STShDSFJPTUlVTSkKICAgICBpZiAodHlwZSA9PSBTaGFkb3dSb290
OjpBdXRob3JTaGFkb3dSb290KSB7CkBAIC04OSw2ICs4OCwxMSBAQCBTaGFkb3dSb290Ojp+U2hh
ZG93Um9vdCgpCiAgICAgICAgIGNsZWFyUmFyZURhdGEoKTsKIH0KIAordm9pZCBTaGFkb3dSb290
OjpkaXNwb3NlKCkKK3sKKyAgICByZW1vdmVEZXRhY2hlZENoaWxkcmVuKCk7Cit9CisKIFBhc3NS
ZWZQdHI8Tm9kZT4gU2hhZG93Um9vdDo6Y2xvbmVOb2RlKGJvb2wsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIGVjID0gREFUQV9DTE9ORV9FUlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRl
eCAyZDFjZjIzYjFlYmJiNmZkNDU3MmUwZjg5MDg5YjlmZjk2NGQ3YzZkLi5kYmM3MWRjMGE2Y2Q2
MjhlMDNlMDk0NTA2MWVkY2E2NTYzMjA5OTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAg
LTEwMCw2ICsxMDAsNyBAQCBwcml2YXRlOgogICAgIFNoYWRvd1Jvb3QoRG9jdW1lbnQqLCBTaGFk
b3dSb290VHlwZSk7CiAgICAgdmlydHVhbCB+U2hhZG93Um9vdCgpOwogCisgICAgdmlydHVhbCB2
b2lkIGRpc3Bvc2UoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dl
ZChOb2RlVHlwZSkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hh
bmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2RlKiBhZnRl
ckNoYW5nZSwgaW50IGNoaWxkQ291bnREZWx0YSkgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVT
Y29wZS5jcHAKaW5kZXggNDU0YWY1ZGE5ZGZhODY2MGRlMGUzMTI0OWJlZjk4NmUxY2M3ZDBiOC4u
MzgwOWQ1ZDdlMDJkYjllNjg0MmUxZGFhNDBhYTg4YjQxY2I2NTRmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Ry
ZWVTY29wZS5jcHAKQEAgLTU5LDYgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0
IFNhbWVTaXplQXNUcmVlU2NvcGUgewogICAgIHZpcnR1YWwgflNhbWVTaXplQXNUcmVlU2NvcGUo
KTsKICAgICB2b2lkKiBwb2ludGVyc1s4XTsKKyAgICBpbnQgaW50c1sxXTsKIH07CiAKIENPTVBJ
TEVfQVNTRVJUKHNpemVvZihUcmVlU2NvcGUpID09IHNpemVvZihTYW1lU2l6ZUFzVHJlZVNjb3Bl
KSwgdHJlZXNjb3BlX3Nob3VsZF9zdGF5X3NtYWxsKTsKQEAgLTY5LDM1ICs3MCw0NyBAQCBUcmVl
U2NvcGU6OlRyZWVTY29wZShDb250YWluZXJOb2RlKiByb290Tm9kZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQogICAgIDogbV9yb290Tm9kZShyb290Tm9kZSkKICAgICAsIG1fZG9jdW1lbnRTY29wZShk
b2N1bWVudCkKICAgICAsIG1fcGFyZW50VHJlZVNjb3BlKGRvY3VtZW50KQorICAgICwgbV9ndWFy
ZFJlZkNvdW50KDApCiAgICAgLCBtX2lkVGFyZ2V0T2JzZXJ2ZXJSZWdpc3RyeShJZFRhcmdldE9i
c2VydmVyUmVnaXN0cnk6OmNyZWF0ZSgpKQogewogICAgIEFTU0VSVChyb290Tm9kZSk7CiAgICAg
QVNTRVJUKGRvY3VtZW50KTsKICAgICBBU1NFUlQocm9vdE5vZGUgIT0gZG9jdW1lbnQpOworICAg
IG1fcGFyZW50VHJlZVNjb3BlLT5ndWFyZFJlZigpOworICAgIG1fcm9vdE5vZGUtPnNldFRyZWVT
Y29wZSh0aGlzKTsKIH0KIAogVHJlZVNjb3BlOjpUcmVlU2NvcGUoRG9jdW1lbnQqIGRvY3VtZW50
KQogICAgIDogbV9yb290Tm9kZShkb2N1bWVudCkKICAgICAsIG1fZG9jdW1lbnRTY29wZShkb2N1
bWVudCkKICAgICAsIG1fcGFyZW50VHJlZVNjb3BlKDApCisgICAgLCBtX2d1YXJkUmVmQ291bnQo
MCkKICAgICAsIG1faWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KElkVGFyZ2V0T2JzZXJ2ZXJSZWdp
c3RyeTo6Y3JlYXRlKCkpCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKKyAgICBtX3Jvb3ROb2Rl
LT5zZXRUcmVlU2NvcGUodGhpcyk7CiB9CiAKIFRyZWVTY29wZTo6VHJlZVNjb3BlKCkKICAgICA6
IG1fcm9vdE5vZGUoMCkKICAgICAsIG1fZG9jdW1lbnRTY29wZSgwKQogICAgICwgbV9wYXJlbnRU
cmVlU2NvcGUoMCkKKyAgICAsIG1fZ3VhcmRSZWZDb3VudCgwKQogewogfQogCiBUcmVlU2NvcGU6
On5UcmVlU2NvcGUoKQogeworICAgIEFTU0VSVCghbV9ndWFyZFJlZkNvdW50KTsKKyAgICBtX3Jv
b3ROb2RlLT5zZXRUcmVlU2NvcGUobm9Eb2N1bWVudEluc3RhbmNlKCkpOworCiAgICAgaWYgKG1f
c2VsZWN0aW9uKSB7CiAgICAgICAgIG1fc2VsZWN0aW9uLT5jbGVhclRyZWVTY29wZSgpOwogICAg
ICAgICBtX3NlbGVjdGlvbiA9IDA7CiAgICAgfQorCisgICAgaWYgKG1fcGFyZW50VHJlZVNjb3Bl
KQorICAgICAgICBtX3BhcmVudFRyZWVTY29wZS0+Z3VhcmREZXJlZigpOwogfQogCiB2b2lkIFRy
ZWVTY29wZTo6ZGVzdHJveVRyZWVTY29wZURhdGEoKQpAQCAtMTIwLDYgKzEzMyw5IEBAIHZvaWQg
VHJlZVNjb3BlOjpzZXRQYXJlbnRUcmVlU2NvcGUoVHJlZVNjb3BlKiBuZXdQYXJlbnRTY29wZSkK
ICAgICAvLyBFdmVyeSBzY29wZSBvdGhlciB0aGFuIGRvY3VtZW50IG5lZWRzIGEgcGFyZW50IHNj
b3BlLgogICAgIEFTU0VSVChuZXdQYXJlbnRTY29wZSk7CiAKKyAgICBuZXdQYXJlbnRTY29wZS0+
Z3VhcmRSZWYoKTsKKyAgICBpZiAobV9wYXJlbnRUcmVlU2NvcGUpCisgICAgICAgIG1fcGFyZW50
VHJlZVNjb3BlLT5ndWFyZERlcmVmKCk7CiAgICAgbV9wYXJlbnRUcmVlU2NvcGUgPSBuZXdQYXJl
bnRTY29wZTsKICAgICBzZXREb2N1bWVudFNjb3BlKG5ld1BhcmVudFNjb3BlLT5kb2N1bWVudFNj
b3BlKCkpOwogfQpAQCAtNDE1LDQgKzQzMSwyNCBAQCBUcmVlU2NvcGUqIGNvbW1vblRyZWVTY29w
ZShOb2RlKiBub2RlQSwgTm9kZSogbm9kZUIpCiAgICAgcmV0dXJuIHRyZWVTY29wZXNBW2luZGV4
QV0gPT0gdHJlZVNjb3Blc0JbaW5kZXhCXSA/IHRyZWVTY29wZXNBW2luZGV4QV0gOiAwOwogfQog
CisjaWZuZGVmIE5ERUJVRworYm9vbCBUcmVlU2NvcGU6OmRlbGV0aW9uSGFzQmVndW4oKQorewor
ICAgIHJldHVybiByb290Tm9kZSgpICYmIHJvb3ROb2RlKCktPm1fZGVsZXRpb25IYXNCZWd1bjsK
K30KKwordm9pZCBUcmVlU2NvcGU6OmJlZ2luRGVsZXRpb24oKQoreworICAgIEFTU0VSVCh0aGlz
ICE9IG5vRG9jdW1lbnRJbnN0YW5jZSgpKTsKKyAgICByb290Tm9kZSgpLT5tX2RlbGV0aW9uSGFz
QmVndW4gPSB0cnVlOworfQorI2VuZGlmCisKK2ludCBUcmVlU2NvcGU6OnJlZkNvdW50KCkgY29u
c3QKK3sKKyAgICBpZiAoTm9kZSogcm9vdCA9IHJvb3ROb2RlKCkpCisgICAgICAgIHJldHVybiBy
b290LT5yZWZDb3VudCgpOworICAgIHJldHVybiAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlLmgKaW5kZXggYmU1MDBmMTA2NGM4Yjc4MTQ5Y2RjZGVkOTI4
MTkxYjNmNTZiM2VmMS4uZTU0MDE1MmM5NzM5Y2UwOGZmNzg0NTU3YzRlMmIzNGIxZWUyMjEzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlU2NvcGUuaApAQCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgLy8g
VXNlZCBieSB0aGUgYmFzaWMgRE9NIG11dGF0aW9uIG1ldGhvZHMgKGUuZy4sIGFwcGVuZENoaWxk
KCkpLgogICAgIHZvaWQgYWRvcHRJZk5lZWRlZChOb2RlKik7CiAKLSAgICBDb250YWluZXJOb2Rl
KiByb290Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdE5vZGU7IH0KKyAgICBOb2RlKiByb290
Tm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdE5vZGU7IH0KIAogICAgIElkVGFyZ2V0T2JzZXJ2
ZXJSZWdpc3RyeSYgaWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5KCkgY29uc3QgeyByZXR1cm4gKm1f
aWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmdldCgpOyB9CiAKQEAgLTEwNCw2ICsxMDQsMjkgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gJmluc3RhbmNlOwogICAgIH0KIAorICAgIC8vIE5vZGVz
IGJlbG9uZ2luZyB0byB0aGlzIHNjb3BlIGhvbGQgZ3VhcmQgcmVmZXJlbmNlcyAtCisgICAgLy8g
dGhlc2UgYXJlIGVub3VnaCB0byBrZWVwIHRoZSBzY29wZSBmcm9tIGJlaW5nIGRlc3Ryb3llZCwg
YnV0CisgICAgLy8gbm90IGVub3VnaCB0byBrZWVwIGl0IGZyb20gcmVtb3ZpbmcgaXRzIGNoaWxk
cmVuLiBUaGlzIGFsbG93cyBhCisgICAgLy8gbm9kZSB0aGF0IG91dGxpdmVzIGl0cyBzY29wZSB0
byBzdGlsbCBoYXZlIGEgdmFsaWQgZG9jdW1lbnQKKyAgICAvLyBwb2ludGVyIHdpdGhvdXQgaW50
cm9kdWNpbmcgcmVmZXJlbmNlIGN5Y2xlcy4KKyAgICB2b2lkIGd1YXJkUmVmKCkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICAgICAgKyttX2d1YXJkUmVm
Q291bnQ7CisgICAgfQorCisgICAgdm9pZCBndWFyZERlcmVmKCkKKyAgICB7CisgICAgICAgIEFT
U0VSVCghZGVsZXRpb25IYXNCZWd1bigpKTsKKyAgICAgICAgLS1tX2d1YXJkUmVmQ291bnQ7Cisg
ICAgICAgIGlmICghbV9ndWFyZFJlZkNvdW50ICYmICFyZWZDb3VudCgpICYmIHRoaXMgIT0gbm9E
b2N1bWVudEluc3RhbmNlKCkpIHsKKyAgICAgICAgICAgIGJlZ2luRGVsZXRpb24oKTsKKyAgICAg
ICAgICAgIGRlbGV0ZSB0aGlzOworICAgICAgICB9CisgICAgfQorCisgICAgdm9pZCByZW1vdmVk
TGFzdFJlZlRvU2NvcGUoKTsKKwogcHJvdGVjdGVkOgogICAgIFRyZWVTY29wZShDb250YWluZXJO
b2RlKiwgRG9jdW1lbnQqKTsKICAgICBUcmVlU2NvcGUoRG9jdW1lbnQqKTsKQEAgLTExOCwxMiAr
MTQxLDI2IEBAIHByb3RlY3RlZDoKICAgICAgICAgbV9kb2N1bWVudFNjb3BlID0gZG9jdW1lbnQ7
CiAgICAgfQogCisgICAgYm9vbCBoYXNHdWFyZFJlZkNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9n
dWFyZFJlZkNvdW50OyB9CisKIHByaXZhdGU6CiAgICAgVHJlZVNjb3BlKCk7CiAKLSAgICBDb250
YWluZXJOb2RlKiBtX3Jvb3ROb2RlOworICAgIHZpcnR1YWwgdm9pZCBkaXNwb3NlKCkgeyB9CisK
KyAgICBpbnQgcmVmQ291bnQoKSBjb25zdDsKKyNpZm5kZWYgTkRFQlVHCisgICAgYm9vbCBkZWxl
dGlvbkhhc0JlZ3VuKCk7CisgICAgdm9pZCBiZWdpbkRlbGV0aW9uKCk7CisjZWxzZQorICAgIGJv
b2wgZGVsZXRpb25IYXNCZWd1bigpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9pZCBiZWdpbkRl
bGV0aW9uKCkgeyB9CisjZW5kaWYKKworICAgIE5vZGUqIG1fcm9vdE5vZGU7CiAgICAgRG9jdW1l
bnQqIG1fZG9jdW1lbnRTY29wZTsKICAgICBUcmVlU2NvcGUqIG1fcGFyZW50VHJlZVNjb3BlOwor
ICAgIGludCBtX2d1YXJkUmVmQ291bnQ7CiAKICAgICBPd25QdHI8RG9jdW1lbnRPcmRlcmVkTWFw
PiBtX2VsZW1lbnRzQnlJZDsKICAgICBPd25QdHI8RG9jdW1lbnRPcmRlcmVkTWFwPiBtX2ltYWdl
TWFwc0J5TmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9w
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9wdGVyLmNwcAppbmRleCA0
MWJmZDI1NmNjNGI1ZTVmMzE3MTk1MThiZTFiMzA4OTVlODU4ZDEwLi4yNTUwYzJkMmUzM2RhZDFi
ZTFlYjBlODY3NDE5OGRjMWJiZTgwZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
VHJlZVNjb3BlQWRvcHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFk
b3B0ZXIuY3BwCkBAIC00MCw2ICs0MCw4IEBAIHZvaWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZVRy
ZWVUb05ld1Njb3BlKE5vZGUqIHJvb3QpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG5lZWRzU2NvcGVD
aGFuZ2UoKSk7CiAKKyAgICBtX29sZFNjb3BlLT5ndWFyZFJlZigpOworCiAgICAgLy8gSWYgYW4g
ZWxlbWVudCBpcyBtb3ZlZCBmcm9tIGEgZG9jdW1lbnQgYW5kIHRoZW4gZXZlbnR1YWxseSBiYWNr
IGFnYWluIHRoZSBjb2xsZWN0aW9uIGNhY2hlIGZvcgogICAgIC8vIHRoYXQgZWxlbWVudCBtYXkg
Y29udGFpbiBzdGFsZSBkYXRhIGFzIGNoYW5nZXMgbWFkZSB0byBpdCB3aWxsIGhhdmUgdXBkYXRl
ZCB0aGUgRE9NVHJlZVZlcnNpb24KICAgICAvLyBvZiB0aGUgZG9jdW1lbnQgaXQgd2FzIG1vdmVk
IHRvLiBCeSBpbmNyZWFzaW5nIHRoZSBET01UcmVlVmVyc2lvbiBvZiB0aGUgZG9uYXRpbmcgZG9j
dW1lbnQgaGVyZQpAQCAtNTEsNyArNTMsNyBAQCB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVU
cmVlVG9OZXdTY29wZShOb2RlKiByb290KSBjb25zdAogICAgICAgICBvbGREb2N1bWVudC0+aW5j
RE9NVHJlZVZlcnNpb24oKTsKIAogICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3Q7IG5vZGU7IG5v
ZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KG5vZGUsIHJvb3QpKSB7Ci0gICAgICAgIG5vZGUtPnNl
dFRyZWVTY29wZShtX25ld1Njb3BlKTsKKyAgICAgICAgdXBkYXRlVHJlZVNjb3BlKG5vZGUpOwog
CiAgICAgICAgIGlmICh3aWxsTW92ZVRvTmV3RG9jdW1lbnQpCiAgICAgICAgICAgICBtb3ZlTm9k
ZVRvTmV3RG9jdW1lbnQobm9kZSwgb2xkRG9jdW1lbnQsIG5ld0RvY3VtZW50KTsKQEAgLTc2LDYg
Kzc4LDggQEAgdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3ZlVHJlZVRvTmV3U2NvcGUoTm9kZSog
cm9vdCkgY29uc3QKICAgICAgICAgICAgICAgICBtb3ZlVHJlZVRvTmV3RG9jdW1lbnQoc2hhZG93
LCBvbGREb2N1bWVudCwgbmV3RG9jdW1lbnQpOwogICAgICAgICB9CiAgICAgfQorCisgICAgbV9v
bGRTY29wZS0+Z3VhcmREZXJlZigpOwogfQogCiB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVU
cmVlVG9OZXdEb2N1bWVudChOb2RlKiByb290LCBEb2N1bWVudCogb2xkRG9jdW1lbnQsIERvY3Vt
ZW50KiBuZXdEb2N1bWVudCkgY29uc3QKQEAgLTk5LDYgKzEwMywxNSBAQCB2b2lkIFRyZWVTY29w
ZUFkb3B0ZXI6OmVuc3VyZURpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKERvY3VtZW50KiBv
bGREb2N1bWVudAogfQogI2VuZGlmCiAKK2lubGluZSB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6OnVw
ZGF0ZVRyZWVTY29wZShOb2RlKiBub2RlKSBjb25zdAoreworICAgIEFTU0VSVCghbm9kZS0+aXNU
cmVlU2NvcGUoKSk7CisgICAgQVNTRVJUKG5vZGUtPnRyZWVTY29wZSgpID09IG1fb2xkU2NvcGUp
OworICAgIG1fbmV3U2NvcGUtPmd1YXJkUmVmKCk7CisgICAgbV9vbGRTY29wZS0+Z3VhcmREZXJl
ZigpOworICAgIG5vZGUtPnNldFRyZWVTY29wZShtX25ld1Njb3BlKTsKK30KKwogaW5saW5lIHZv
aWQgVHJlZVNjb3BlQWRvcHRlcjo6bW92ZU5vZGVUb05ld0RvY3VtZW50KE5vZGUqIG5vZGUsIERv
Y3VtZW50KiBvbGREb2N1bWVudCwgRG9jdW1lbnQqIG5ld0RvY3VtZW50KSBjb25zdAogewogICAg
IEFTU0VSVCghbm9kZS0+aW5Eb2N1bWVudCgpIHx8IG9sZERvY3VtZW50ICE9IG5ld0RvY3VtZW50
KTsKQEAgLTEwOSw3ICsxMjIsNiBAQCBpbmxpbmUgdm9pZCBUcmVlU2NvcGVBZG9wdGVyOjptb3Zl
Tm9kZVRvTmV3RG9jdW1lbnQoTm9kZSogbm9kZSwgRG9jdW1lbnQqIG9sZERvYwogICAgICAgICAg
ICAgcmFyZURhdGEtPm5vZGVMaXN0cygpLT5hZG9wdERvY3VtZW50KG9sZERvY3VtZW50LCBuZXdE
b2N1bWVudCk7CiAgICAgfQogCi0gICAgbmV3RG9jdW1lbnQtPmd1YXJkUmVmKCk7CiAgICAgaWYg
KG9sZERvY3VtZW50KQogICAgICAgICBvbGREb2N1bWVudC0+bW92ZU5vZGVJdGVyYXRvcnNUb05l
d0RvY3VtZW50KG5vZGUsIG5ld0RvY3VtZW50KTsKIApAQCAtMTIzLDkgKzEzNSw2IEBAIGlubGlu
ZSB2b2lkIFRyZWVTY29wZUFkb3B0ZXI6Om1vdmVOb2RlVG9OZXdEb2N1bWVudChOb2RlKiBub2Rl
LCBEb2N1bWVudCogb2xkRG9jCiAKICAgICBub2RlLT5kaWRNb3ZlVG9OZXdEb2N1bWVudChvbGRE
b2N1bWVudCk7CiAgICAgQVNTRVJUKGRpZE1vdmVUb05ld0RvY3VtZW50V2FzQ2FsbGVkKTsKLSAg
ICAKLSAgICBpZiAob2xkRG9jdW1lbnQpCi0gICAgICAgIG9sZERvY3VtZW50LT5ndWFyZERlcmVm
KCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGVBZG9w
dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlQWRvcHRlci5oCmluZGV4IDRjYTQx
ODIxOTBjZGFjYzU4MzJkYWJiYzBlZDQ2ZWY0MmZmYmZjMzMuLmNlYTRkY2E3ZDMwNTdkOTc0ZDAw
NzNmZmQ5MmQyMDcwYzgxYTg4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVl
U2NvcGVBZG9wdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZUFkb3B0ZXIu
aApAQCAtNDUsNiArNDUsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKKyAgICB2b2lk
IHVwZGF0ZVRyZWVTY29wZShOb2RlKikgY29uc3Q7CiAgICAgdm9pZCBtb3ZlVHJlZVRvTmV3U2Nv
cGUoTm9kZSopIGNvbnN0OwogICAgIHZvaWQgbW92ZVRyZWVUb05ld0RvY3VtZW50KE5vZGUqLCBE
b2N1bWVudCogb2xkRG9jdW1lbnQsIERvY3VtZW50KiBuZXdEb2N1bWVudCkgY29uc3Q7CiAgICAg
dm9pZCBtb3ZlTm9kZVRvTmV3RG9jdW1lbnQoTm9kZSosIERvY3VtZW50KiBvbGREb2N1bWVudCwg
RG9jdW1lbnQqIG5ld0RvY3VtZW50KSBjb25zdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>