<?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>72587</bug_id>
          
          <creation_ts>2011-11-17 01:29:33 -0800</creation_ts>
          <short_desc>Web Inspector: get rid of Panel::reset in the front-end.</short_desc>
          <delta_ts>2011-11-21 08:04:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>72887</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>504656</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-17 01:29:33 -0800</bug_when>
    <thetext>Patch to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504667</commentid>
    <comment_count>1</comment_count>
      <attachid>115544</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-17 02:04:20 -0800</bug_when>
    <thetext>Created attachment 115544
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504680</commentid>
    <comment_count>2</comment_count>
      <attachid>115544</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 02:32:43 -0800</bug_when>
    <thetext>Comment on attachment 115544
Patch

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

New failing tests:
inspector/extensions/extensions-events.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504845</commentid>
    <comment_count>3</comment_count>
      <attachid>115544</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2011-11-17 07:48:10 -0800</bug_when>
    <thetext>Comment on attachment 115544
Patch

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

&gt; Source/WebCore/ChangeLog:4
&gt; +        Web Inspector: get rid of Panel::reset in the front-end.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=72587

Please describe the reason/motivation for these changes. I&apos;ve been trying to get back into the inspector code and not having good descriptions for changes are unhelpful. I&apos;m going to r- any change that does not have a useful description/motivation. The bugilla bug doesn&apos;t help either.

The same goes for describing what changes are in the methods in the ChangeLog.

&gt; Source/WebCore/inspector/InspectorInstrumentation.cpp:-647
&gt; -#if ENABLE(JAVASCRIPT_DEBUGGER)
&gt; -        if (InspectorDebuggerAgent* debuggerAgent = instrumentingAgents-&gt;inspectorDebuggerAgent()) {
&gt; -            KURL url = inspectorAgent-&gt;inspectedURLWithoutFragment();
&gt; -            debuggerAgent-&gt;inspectedURLChanged(url);
&gt; -        }
&gt; -#endif

Is this now assumed?

&gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:70
&gt; -        var frameId = event.data;
&gt; -        this._frameManifestRemoved(frameId);
&gt; +        var frame = event.data;
&gt; +        this._frameManifestRemoved(frame.id);

Seems unrelated to this change.

&gt; Source/WebCore/inspector/front-end/ElementsPanel.js:345
&gt; -        this._highlightCurrentSearchResult(true);
&gt; +        this._highlightCurrentSearchResult();

Seems unrelated to this change.

&gt; Source/WebCore/inspector/front-end/ElementsPanel.js:357
&gt; -        this._highlightCurrentSearchResult(false);
&gt; +        this._highlightCurrentSearchResult();

Seems unrelated to this change.

&gt; Source/WebCore/inspector/front-end/JavaScriptContextManager.js:65
&gt; -        var frameId = event.data;
&gt; -        var context = this._frameIdToContext[frameId];
&gt; +        var frame = event.data;
&gt; +        var context = this._frameIdToContext[frame.id];

Seems unrelated to this change.

&gt; Source/WebCore/inspector/front-end/JavaScriptContextManager.js:69
&gt; -        delete this._frameIdToContext[frameId];
&gt; +        delete this._frameIdToContext[frame.id];

Seems unrelated to this change.

&gt; Source/WebCore/inspector/front-end/JavaScriptContextManager.js:98
&gt; -        return this._frame.id
&gt; +        return this._frame.id;

Seems unrelated to this change.

&gt; Source/WebCore/inspector/front-end/ResourceTreeModel.js:189
&gt; -        this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, frameId);
&gt; +        this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, frame);

Seems unrelated to this change.

&gt; Source/WebCore/inspector/front-end/ResourceTreeModel.js:312
&gt; -            this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, subframes[i].id);
&gt; +            this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, subframes[i]);

Seems unrelated to this change.

&gt; Source/WebCore/inspector/front-end/ResourcesPanel.js:230
&gt; +            // Reset on main frame detach
&gt; +            this._reset();

It seems odd that the main frame can detach.

&gt; Source/WebCore/inspector/front-end/ResourcesPanel.js:237
&gt; -        delete this._treeElementForFrameId[frameId];
&gt; +        delete this._treeElementForFrameId[frame.id];

Seems unrelated to this change.

&gt; Source/WebCore/inspector/front-end/externs.js:183
&gt; +}

Wrong patch?

&gt; Source/WebCore/inspector/front-end/inspector.js:675
&gt;  WebInspector.reset = function()
&gt;  {

So what is reset called for now? Why do we need this still?

&gt; Source/WebCore/inspector/generate-protocol-externs:73
&gt; +def dash_to_camelcase(word):
&gt; +    return &quot;&quot;.join(x.capitalize() or &quot;-&quot; for x in word.split(&quot;-&quot;))

Wrong patch?

&gt; Source/WebCore/inspector/generate-protocol-externs:166
&gt; +    if &quot;capabilities&quot; in domain:
&gt; +        for capability in domain[&quot;capabilities&quot;]:
&gt; +            output_file.write(&quot;/** @type {string} */\n&quot;)
&gt; +            output_file.write(&quot;%sAgent.capability%s;\n&quot; % (domain_name, dash_to_camelcase(capability[&quot;name&quot;])));

Wrong patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505693</commentid>
    <comment_count>4</comment_count>
      <attachid>115544</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-18 05:21:23 -0800</bug_when>
    <thetext>Comment on attachment 115544
Patch

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

I&apos;ll extract compilation fixes from this patch.

&gt;&gt; Source/WebCore/inspector/InspectorInstrumentation.cpp:-647
&gt;&gt; -#endif
&gt; 
&gt; Is this now assumed?

We are now resetting debugger state upon windowObjectCleared event.

&gt;&gt; Source/WebCore/inspector/front-end/ApplicationCacheModel.js:70
&gt;&gt; +        this._frameManifestRemoved(frame.id);
&gt; 
&gt; Seems unrelated to this change.

This is related to this change, event&apos;s data is now frame, not frame&apos;s id.

&gt;&gt; Source/WebCore/inspector/front-end/ElementsPanel.js:345
&gt;&gt; +        this._highlightCurrentSearchResult();
&gt; 
&gt; Seems unrelated to this change.

This method does not accept parameters. JS compilation failed and I applied the drive-by fix.

&gt;&gt; Source/WebCore/inspector/front-end/JavaScriptContextManager.js:65
&gt;&gt; +        var context = this._frameIdToContext[frame.id];
&gt; 
&gt; Seems unrelated to this change.

Related.

&gt;&gt; Source/WebCore/inspector/front-end/JavaScriptContextManager.js:98
&gt;&gt; +        return this._frame.id;
&gt; 
&gt; Seems unrelated to this change.

Related.

&gt;&gt; Source/WebCore/inspector/front-end/ResourceTreeModel.js:189
&gt;&gt; +        this.dispatchEventToListeners(WebInspector.ResourceTreeModel.EventTypes.FrameDetached, frame);
&gt; 
&gt; Seems unrelated to this change.

This is related.

&gt;&gt; Source/WebCore/inspector/front-end/ResourceTreeModel.js:312

&gt; 
&gt; Seems unrelated to this change.

This is related.

&gt;&gt; Source/WebCore/inspector/front-end/ResourcesPanel.js:230
&gt;&gt; +            this._reset();
&gt; 
&gt; It seems odd that the main frame can detach.

We generate this event for navigation.

&gt;&gt; Source/WebCore/inspector/front-end/ResourcesPanel.js:237
&gt;&gt; +        delete this._treeElementForFrameId[frame.id];
&gt; 
&gt; Seems unrelated to this change.

ditto

&gt;&gt; Source/WebCore/inspector/front-end/externs.js:183
&gt;&gt; +}
&gt; 
&gt; Wrong patch?

Also a drive-by for compilation fix.

&gt;&gt; Source/WebCore/inspector/front-end/inspector.js:675
&gt;&gt;  {
&gt; 
&gt; So what is reset called for now? Why do we need this still?

I&apos;ll remote it as soon as the two calls below are also eliminated.

&gt;&gt; Source/WebCore/inspector/generate-protocol-externs:73
&gt;&gt; +    return &quot;&quot;.join(x.capitalize() or &quot;-&quot; for x in word.split(&quot;-&quot;))
&gt; 
&gt; Wrong patch?

Drive-by compilation fix.

&gt;&gt; Source/WebCore/inspector/generate-protocol-externs:166
&gt;&gt; +            output_file.write(&quot;%sAgent.capability%s;\n&quot; % (domain_name, dash_to_camelcase(capability[&quot;name&quot;])));
&gt; 
&gt; Wrong patch?

Drive-by compilation fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505718</commentid>
    <comment_count>5</comment_count>
      <attachid>115794</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-18 05:55:08 -0800</bug_when>
    <thetext>Created attachment 115794
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505740</commentid>
    <comment_count>6</comment_count>
      <attachid>115794</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-18 06:39:50 -0800</bug_when>
    <thetext>Comment on attachment 115794
Patch

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

New failing tests:
inspector/extensions/extensions-events.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505782</commentid>
    <comment_count>7</comment_count>
      <attachid>115807</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-18 07:47:01 -0800</bug_when>
    <thetext>Created attachment 115807
[Patch] Same with reset removed from protocol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505788</commentid>
    <comment_count>8</comment_count>
      <attachid>115807</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-11-18 08:01:00 -0800</bug_when>
    <thetext>Comment on attachment 115807
[Patch] Same with reset removed from protocol.

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

&gt; Source/WebCore/inspector/Inspector.json:1959
&gt; +                &quot;name&quot;: &quot;globalObjectCleared&quot;,

This event should contain identifier of the global object that was cleared. But since now we don&apos;t have such entity in the protocol we may add it later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505805</commentid>
    <comment_count>9</comment_count>
      <attachid>115807</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-18 08:20:04 -0800</bug_when>
    <thetext>Comment on attachment 115807
[Patch] Same with reset removed from protocol.

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

New failing tests:
inspector/extensions/extensions-events.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506897</commentid>
    <comment_count>10</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-11-21 05:37:22 -0800</bug_when>
    <thetext>Committed r100906: &lt;http://trac.webkit.org/changeset/100906&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115544</attachid>
            <date>2011-11-17 02:04:20 -0800</date>
            <delta_ts>2011-11-18 05:54:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72587-20111117140418.patch</filename>
            <type>text/plain</type>
            <size>22024</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjgwNGExYzVjNjVlMjkz
ZTM2YzVjOGQ5ODM4MGU3Y2Y0MWQxNDk5NS4uMTVlYmIzZDU0M2QwNzRlMGVkOThjYzRlMDhlMDNj
MzFkOTcyNzc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDExLTExLTE3ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBnZXQgcmlkIG9mIFBhbmVsOjpyZXNldCBpbiB0aGUgZnJvbnQtZW5kLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3Iu
anNvbjoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDbGVhck1haW5GcmFt
ZVdpbmRvd09iamVjdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdl
bnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xlYXJXaW5k
b3dPYmplY3RJbldvcmxkSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENvbW1pdExvYWRJbXBsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5BcHBs
aWNhdGlvbkNhY2hlTW9kZWwucHJvdG90eXBlLl9mcmFtZURldGFjaGVkKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUuX2dsb2JhbE9iamVjdENsZWFyZWQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyRGlzcGF0Y2hlci5wcm90b3R5cGUuZ2xvYmFsT2JqZWN0
Q2xlYXJlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlLl9kZWJ1Z2dlclJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5w
cm90b3R5cGUuanVtcFRvTmV4dFNlYXJjaFJlc3VsdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RWxlbWVudHNQYW5lbC5wcm90b3R5cGUuanVtcFRvUHJldmlvdXNTZWFyY2hSZXN1bHQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5wcm90b3R5cGUu
X2ZyYW1lRGV0YWNoZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VU
cmVlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJv
dG90eXBlLl9mcmFtZURldGFjaGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlc1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnBy
b3RvdHlwZS5fcmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnBy
b3RvdHlwZS5fZnJhbWVEZXRhY2hlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZS5fZGVidWdnZXJXYXNEaXNhYmxlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLnByb3RvdHlwZS5fcmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
ZXh0ZXJucy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5zaG93UGFuZWxGb3JBbmNob3JOYXZp
Z2F0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5yZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2dlbmVyYXRl
LXByb3RvY29sLWV4dGVybnM6CisKIDIwMTEtMTEtMTcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBDU1AgcmVwb3J0LW9ubHkgbW9kZSBkb2Vzbid0IHdvcmsgZnJv
bSBhbiBIVFRQIGhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmlu
ZGV4IDkyNTQ0ZTMwYjNkNmQ4NmZjMzJiMWJiMzljNjQ3NTc1NjBkZmU1MDguLmU2MTY1YzhjNTNh
YTExZTA3YWNhMjU4ZDhkMzEzMzBhZTExMTcwOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yLmpzb24KQEAgLTE5NTksNiArMTk1OSwxMCBAQAogICAgICAgICAgICAgICAgICJo
aWRkZW4iOiB0cnVlCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgICJuYW1lIjogImdsb2JhbE9iamVjdENsZWFyZWQiLAorICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJDYWxsZWQgd2hlbiBnbG9iYWwgaGFzIGJlZW4gY2xlYXJlZCBhbmQgZGVidWdn
ZXIgY2xpZW50IHNob3VsZCByZXNldCBpdHMgc3RhdGUuIEhhcHBlbnMgdXBvbiBuYXZpZ2F0aW9u
IG9yIHJlbG9hZC4iCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICJuYW1lIjogInNjcmlwdFBhcnNlZCIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2NyaXB0SWQiLCAiJHJlZiI6ICJT
Y3JpcHRJZCIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBzY3JpcHQgcGFyc2Vk
LiIgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcAppbmRleCBlMTgyMDVjYzhhOGY1YTM0YzQxOGNkMTUwM2QyMDU4ZTM3YmE2YmUy
Li5mNzI1ZGE4NDQ3YzQ3ZTQ0MjRkMDI5YWQ0NmViZTY4MWRkOWZkZDdkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwCkBAIC0x
NjQsMTAgKzE2NCwxMiBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnNldEJyZWFrcG9p
bnRzQWN0aXZlKEVycm9yU3RyaW5nKiwgYm9vbCBhY3RpdmUpCiAgICAgICAgIHNjcmlwdERlYnVn
U2VydmVyKCkuZGVhY3RpdmF0ZUJyZWFrcG9pbnRzKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudDo6aW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKQordm9pZCBJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDbGVhck1haW5GcmFtZVdpbmRvd09iamVjdCgpCiB7CiAg
ICAgbV9zY3JpcHRzLmNsZWFyKCk7CiAgICAgbV9icmVha3BvaW50SWRUb0RlYnVnU2VydmVyQnJl
YWtwb2ludElkcy5jbGVhcigpOworICAgIGlmIChtX2Zyb250ZW5kKQorICAgICAgICBtX2Zyb250
ZW5kLT5nbG9iYWxPYmplY3RDbGVhcmVkKCk7CiB9CiAKIHN0YXRpYyBQYXNzUmVmUHRyPEluc3Bl
Y3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JCcmVha3BvaW50Q29va2llKGNvbnN0IFN0cmluZyYg
dXJsLCBpbnQgbGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBjb25k
aXRpb24sIGJvb2wgaXNSZWdleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5oCmluZGV4IDIxMThhMWU1ZmJiZmQ4OWJmZmQyNWYyMjg1MGNi
N2UwYTI5ZDc3MmMuLmZlOGY0MmMwYzEzODYyN2NjZTFhN2IzZWEwMmY3M2NlOWYwODllYWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQu
aApAQCAtNzIsNyArNzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGcm9udGVuZChJbnNwZWN0
b3JGcm9udGVuZCopOwogICAgIHZvaWQgY2xlYXJGcm9udGVuZCgpOwogCi0gICAgdm9pZCBpbnNw
ZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICB2b2lkIGRpZENsZWFyTWFp
bkZyYW1lV2luZG93T2JqZWN0KCk7CiAKICAgICAvLyBQYXJ0IG9mIHRoZSBwcm90b2NvbC4KICAg
ICB2b2lkIHNldEJyZWFrcG9pbnRzQWN0aXZlKEVycm9yU3RyaW5nKiwgYm9vbCBhY3RpdmUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmNwcAppbmRleCBiZDJiOWU1MGU0OWQ0ODUwMmEwOTc2ZWRmMmFmODkyMTAxMmZjYjdjLi40
Y2I4ZGM3ZmIxMTIyNWU3MTJjMDdiYzM3MDYwNGU1Y2EyNmE5MTE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAt
OTMsMTAgKzkzLDE3IEBAIHN0YXRpYyBib29sIGV2ZW50SGFzTGlzdGVuZXJzKGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBET01XaW5kb3cqIHdpbmRvdywKIAogdm9pZCBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZEltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRnJhbWUqIGZyYW1lLCBET01XcmFwcGVy
V29ybGQqIHdvcmxkKQogewotICAgIGlmIChJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9
IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpKQorICAgIEluc3BlY3Rv
clBhZ2VBZ2VudCogcGFnZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFn
ZUFnZW50KCk7CisgICAgaWYgKHBhZ2VBZ2VudCkKICAgICAgICAgcGFnZUFnZW50LT5kaWRDbGVh
cldpbmRvd09iamVjdEluV29ybGQoZnJhbWUsIHdvcmxkKTsKICAgICBpZiAoSW5zcGVjdG9yQWdl
bnQqIGluc3BlY3RvckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yQWdlbnQo
KSkKICAgICAgICAgaW5zcGVjdG9yQWdlbnQtPmRpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChm
cmFtZSwgd29ybGQpOworI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQorICAgIGlmIChJ
bnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50
cy0+aW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpKSB7CisgICAgICAgIGlmIChwYWdlQWdlbnQgJiYg
d29ybGQgPT0gbWFpblRocmVhZE5vcm1hbFdvcmxkKCkgJiYgZnJhbWUgPT0gcGFnZUFnZW50LT5t
YWluRnJhbWUoKSkKKyAgICAgICAgICAgIGRlYnVnZ2VyQWdlbnQtPmRpZENsZWFyTWFpbkZyYW1l
V2luZG93T2JqZWN0KCk7CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjppbnNwZWN0ZWRQYWdlRGVzdHJveWVkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
KiBpbnN0cnVtZW50aW5nQWdlbnRzKQpAQCAtNjM4LDEzICs2NDUsNiBAQCB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkQ29tbWl0TG9hZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyog
aW5zdHJ1bWVudAogCiAgICAgICAgIGlmIChJbnNwZWN0b3JSZXNvdXJjZUFnZW50KiByZXNvdXJj
ZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUmVzb3VyY2VBZ2VudCgpKQog
ICAgICAgICAgICAgcmVzb3VyY2VBZ2VudC0+bWFpbkZyYW1lTmF2aWdhdGVkKGxvYWRlcik7Ci0K
LSNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKLSAgICAgICAgaWYgKEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0
b3JEZWJ1Z2dlckFnZW50KCkpIHsKLSAgICAgICAgICAgIEtVUkwgdXJsID0gaW5zcGVjdG9yQWdl
bnQtPmluc3BlY3RlZFVSTFdpdGhvdXRGcmFnbWVudCgpOwotICAgICAgICAgICAgZGVidWdnZXJB
Z2VudC0+aW5zcGVjdGVkVVJMQ2hhbmdlZCh1cmwpOwotICAgICAgICB9Ci0jZW5kaWYKICNpZiBF
TkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikgJiYgVVNFKEpTQykKICAgICAgICAgaWYgKEluc3Bl
Y3RvclByb2ZpbGVyQWdlbnQqIHByb2ZpbGVyQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5p
bnNwZWN0b3JQcm9maWxlckFnZW50KCkpIHsKICAgICAgICAgICAgIHByb2ZpbGVyQWdlbnQtPnN0
b3BVc2VySW5pdGlhdGVkUHJvZmlsaW5nKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBsaWNhdGlvbkNhY2hlTW9kZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5qcwppbmRl
eCA5ZjMwNWViMjlmNzAzMTBkYTY2NGY1YWFhYThjYmE1ZjY1ZjQ3MzJlLi44YjY4N2Q5MzI1OGE2
MzU1YmU5NzNlMDM4NzA3Y2U5ZmM5NzQxODQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5qcwpAQCAt
NjYsOCArNjYsOCBAQCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlw
ZSA9IHsKICAgICAKICAgICBfZnJhbWVEZXRhY2hlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewot
ICAgICAgICB2YXIgZnJhbWVJZCA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIHRoaXMuX2ZyYW1lTWFu
aWZlc3RSZW1vdmVkKGZyYW1lSWQpOworICAgICAgICB2YXIgZnJhbWUgPSBldmVudC5kYXRhOwor
ICAgICAgICB0aGlzLl9mcmFtZU1hbmlmZXN0UmVtb3ZlZChmcmFtZS5pZCk7CiAgICAgfSwKICAg
ICAKICAgICBfbWFpbkZyYW1lTmF2aWdhdGVkOiBmdW5jdGlvbigpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKaW5kZXggY2IzNWQ5
YjY0MzI1ODk3YmY4Mzg3YWFjNjk4MGY2NDdjZThhODUyNi4uZjZjZjUxZWQzN2FkMWEwMDRlMTMx
Y2RkZmRmNjMwMjU0NzU3OWY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwpAQCAtNzQsNyArNzQsNyBAQCBXZWJJbnNwZWN0
b3IuRGVidWdnZXJNb2RlbC5FdmVudHMgPSB7CiAgICAgUGFyc2VkU2NyaXB0U291cmNlOiAicGFy
c2VkLXNjcmlwdC1zb3VyY2UiLAogICAgIEZhaWxlZFRvUGFyc2VTY3JpcHRTb3VyY2U6ICJmYWls
ZWQtdG8tcGFyc2Utc2NyaXB0LXNvdXJjZSIsCiAgICAgQnJlYWtwb2ludFJlc29sdmVkOiAiYnJl
YWtwb2ludC1yZXNvbHZlZCIsCi0gICAgUmVzZXQ6ICJyZXNldCIKKyAgICBHbG9iYWxPYmplY3RD
bGVhcmVkOiAiZ2xvYmFsLW9iamVjdC1jbGVhcmVkIgogfQogCiBXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNb2RlbC5CcmVha1JlYXNvbiA9IHsKQEAgLTIxOCwxMSArMjE4LDExIEBAIFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRS
ZXNvbHZlZCwge2JyZWFrcG9pbnRJZDogYnJlYWtwb2ludElkLCBsb2NhdGlvbjogbG9jYXRpb259
KTsKICAgICB9LAogCi0gICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICBfZ2xvYmFsT2JqZWN0Q2xl
YXJlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fZGVidWdnZXJQYXVzZWREZXRh
aWxzID0gbnVsbDsKICAgICAgICAgdGhpcy5fc2NyaXB0cyA9IHt9OwotICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMu
UmVzZXQpOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuR2xvYmFsT2JqZWN0Q2xlYXJlZCk7CiAgICAgfSwKIAog
ICAgIC8qKgpAQCAtMzk1LDYgKzM5NSwxMSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJEaXNwYXRj
aGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fZGVidWdnZXJNb2RlbC5fZGVidWdnZXJX
YXNEaXNhYmxlZCgpOwogICAgIH0sCiAKKyAgICBnbG9iYWxPYmplY3RDbGVhcmVkOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICB0aGlzLl9kZWJ1Z2dlck1vZGVsLl9nbG9iYWxPYmplY3RDbGVh
cmVkKCk7CisgICAgfSwKKwogICAgIC8qKgogICAgICAqIEBwYXJhbSB7RGVidWdnZXJBZ2VudC5T
Y3JpcHRJZH0gc2NyaXB0SWQKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gc291cmNlVVJMCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggYjUzNDM1ZTUwNmZiZDQ0Y2UyYWJiYmMwMzAz
YWYxZjE3OTRiYzMyOS4uYjQyNTU4ZTNjYTg1NGEzZjIzYWM2MzI5ZjAzMGJmZmU4YmJjYzJiMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtNDcsNyArNDcsNyBAQCBXZWJJbnNw
ZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1bmN0aW9uKCkKICAgICBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
ck1vZGVsLkV2ZW50cy5GYWlsZWRUb1BhcnNlU2NyaXB0U291cmNlLCB0aGlzLl9mYWlsZWRUb1Bh
cnNlU2NyaXB0U291cmNlLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5EZWJ1Z2dl
clBhdXNlZCwgdGhpcy5fZGVidWdnZXJQYXVzZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5k
ZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwu
RXZlbnRzLkRlYnVnZ2VyUmVzdW1lZCwgdGhpcy5fZGVidWdnZXJSZXN1bWVkLCB0aGlzKTsKLSAg
ICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5SZXNldCwgdGhpcy5fZGVidWdnZXJSZXNldCwgdGhpcyk7
CisgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuR2xvYmFsT2JqZWN0Q2xlYXJlZCwgdGhpcy5fZGVi
dWdnZXJSZXNldCwgdGhpcyk7CiAKICAgICBXZWJJbnNwZWN0b3IuY29uc29sZS5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xlTW9kZWwuRXZlbnRzLk1lc3NhZ2VBZGRlZCwgdGhp
cy5fY29uc29sZU1lc3NhZ2VBZGRlZCwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29uc29sZU1vZGVsLkV2ZW50cy5Db25zb2xl
Q2xlYXJlZCwgdGhpcy5fY29uc29sZUNsZWFyZWQsIHRoaXMpOwpAQCAtNjUsNiArNjUsNyBAQCBX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMgPSB7CiAgICAgQnJl
YWtwb2ludFJlbW92ZWQ6ICJicmVha3BvaW50LXJlbW92ZWQiLAogICAgIERlYnVnZ2VyUGF1c2Vk
OiAiZGVidWdnZXItcGF1c2VkIiwKICAgICBEZWJ1Z2dlclJlc3VtZWQ6ICJkZWJ1Z2dlci1yZXN1
bWVkIiwKKyAgICBEZWJ1Z2dlclJlc2V0OiAiZGVidWdnZXItcmVzZXQiLAogICAgIENhbGxGcmFt
ZVNlbGVjdGVkOiAiY2FsbC1mcmFtZS1zZWxlY3RlZCIsCiAgICAgQ29uc29sZUNvbW1hbmRFdmFs
dWF0ZWRJblNlbGVjdGVkQ2FsbEZyYW1lOiAiY29uc29sZS1jb21tYW5kLWV2YWx1YXRlZC1pbi1z
ZWxlY3RlZC1jYWxsLWZyYW1lIiwKICAgICBFeGVjdXRpb25MaW5lQ2hhbmdlZDogImV4ZWN1dGlv
bi1saW5lLWNoYW5nZWQiCkBAIC02NTgsNiArNjU5LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9wcmVzZW50YXRp
b25DYWxsRnJhbWVzID0gW107CiAgICAgICAgIHRoaXMuX3NlbGVjdGVkQ2FsbEZyYW1lID0gbnVs
bDsKICAgICAgICAgdGhpcy5fYnJlYWtwb2ludE1hbmFnZXIuZGVidWdnZXJSZXNldCgpOworICAg
ICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5FdmVudHMuRGVidWdnZXJSZXNldCk7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMK
aW5kZXggNTFmZTcxYWVhZWU3YzMyNTY4MzFlYTVhMzI2NTY5OGMxYWMyODliYy4uOGFhZTk2ZjIy
MmExN2ZhYzUwZDZjYjhkNDMxZjVlZDdkMTQyMjczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcwpAQCAtMzQyLDcgKzM0Miw3
IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYg
KCsrdGhpcy5fY3VycmVudFNlYXJjaFJlc3VsdEluZGV4ID49IHRoaXMuX3NlYXJjaFJlc3VsdHMu
bGVuZ3RoKQogICAgICAgICAgICAgdGhpcy5fY3VycmVudFNlYXJjaFJlc3VsdEluZGV4ID0gMDsK
ICAgICAgICAgICAgIAotICAgICAgICB0aGlzLl9oaWdobGlnaHRDdXJyZW50U2VhcmNoUmVzdWx0
KHRydWUpOworICAgICAgICB0aGlzLl9oaWdobGlnaHRDdXJyZW50U2VhcmNoUmVzdWx0KCk7CiAg
ICAgfSwKIAogICAgIGp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0OiBmdW5jdGlvbigpCkBAIC0z
NTQsNyArMzU0LDcgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICBpZiAoLS10aGlzLl9jdXJyZW50U2VhcmNoUmVzdWx0SW5kZXggPCAwKQogICAgICAg
ICAgICAgdGhpcy5fY3VycmVudFNlYXJjaFJlc3VsdEluZGV4ID0gKHRoaXMuX3NlYXJjaFJlc3Vs
dHMubGVuZ3RoIC0gMSk7CiAKLSAgICAgICAgdGhpcy5faGlnaGxpZ2h0Q3VycmVudFNlYXJjaFJl
c3VsdChmYWxzZSk7CisgICAgICAgIHRoaXMuX2hpZ2hsaWdodEN1cnJlbnRTZWFyY2hSZXN1bHQo
KTsKICAgICB9LAogCiAgICAgX2hpZ2hsaWdodEN1cnJlbnRTZWFyY2hSZXN1bHQ6IGZ1bmN0aW9u
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2YVNj
cmlwdENvbnRleHRNYW5hZ2VyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMKaW5kZXggOGY2NjQzY2NjNzkxOWU2ZThiNDg2
ZTliYzkwMjUwY2Q1NTIzNzcxMC4uMzdmYmNiYTdkMzhlY2ZkMTE1YmFmOWVjOGYwMzk2ODU4MDRm
MDMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9KYXZh
U2NyaXB0Q29udGV4dE1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMKQEAgLTYxLDEyICs2MSwxMiBAQCBX
ZWJJbnNwZWN0b3IuSmF2YVNjcmlwdENvbnRleHRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKIAogICAg
IF9mcmFtZURldGFjaGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHZhciBmcmFt
ZUlkID0gZXZlbnQuZGF0YTsKLSAgICAgICAgdmFyIGNvbnRleHQgPSB0aGlzLl9mcmFtZUlkVG9D
b250ZXh0W2ZyYW1lSWRdOworICAgICAgICB2YXIgZnJhbWUgPSBldmVudC5kYXRhOworICAgICAg
ICB2YXIgY29udGV4dCA9IHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRbZnJhbWUuaWRdOwogICAgICAg
ICBpZiAoIWNvbnRleHQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHRoaXMuX2NvbnNv
bGVWaWV3LnJlbW92ZUNvbnRleHQoY29udGV4dCk7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9mcmFt
ZUlkVG9Db250ZXh0W2ZyYW1lSWRdOworICAgICAgICBkZWxldGUgdGhpcy5fZnJhbWVJZFRvQ29u
dGV4dFtmcmFtZS5pZF07CiAgICAgfSwKIH0KIApAQCAtOTUsNyArOTUsNyBAQCBXZWJJbnNwZWN0
b3IuRnJhbWVFdmFsdWF0aW9uQ29udGV4dC5wcm90b3R5cGUgPQogCiAgICAgZ2V0IGZyYW1lSWQo
KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX2ZyYW1lLmlkCisgICAgICAgIHJldHVybiB0
aGlzLl9mcmFtZS5pZDsKICAgICB9LAogCiAgICAgZ2V0IHVybCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qcwppbmRl
eCAzOTdiMzA5YzlhOWYxMzE4MmI1OTdmMDVlMjk3YWQ2ZjZjZmQ0MTdmLi43M2ZjNjg5MTQ4MGU1
NTU4ZjMxMmVlYmQ2ODJhMzRkMjhlMTkzMDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKQEAgLTE4Niw3ICsx
ODYsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgZGVsZXRlIHRoaXMuX2ZyYW1lSWRzW2ZyYW1lSWRdOwogICAgICAgICB9CiAKLSAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVEZXRhY2hlZCwgZnJhbWVJZCk7CisgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2Rl
bC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIGZyYW1lKTsKICAgICB9LAogCiAgICAgX29uUmVz
b3VyY2VTdGFydGVkOiBmdW5jdGlvbihldmVudCkKQEAgLTMwOSw3ICszMDksNyBAQCBXZWJJbnNw
ZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9jbGVh
clJlc291cmNlcyhmcmFtZUlkLCBsb2FkZXJUb1ByZXNlcnZlSWQpOwogICAgICAgICB2YXIgc3Vi
ZnJhbWVzID0gdGhpcy5fc3ViZnJhbWVzW2ZyYW1lSWRdOwogICAgICAgICBmb3IgKHZhciBpID0g
MDsgc3ViZnJhbWVzICYmIGkgPCBzdWJmcmFtZXMubGVuZ3RoOyArKyBpKSB7Ci0gICAgICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwuRXZlbnRUeXBlcy5GcmFtZURldGFjaGVkLCBzdWJmcmFtZXNbaV0uaWQpOworICAgICAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVEZXRhY2hlZCwgc3ViZnJhbWVzW2ldKTsKICAgICAg
ICAgICAgIHRoaXMuX2NsZWFyQ2hpbGRGcmFtZXNBbmRSZXNvdXJjZXMoc3ViZnJhbWVzW2ldLmlk
LCBsb2FkZXJUb1ByZXNlcnZlSWQpOwogICAgICAgICB9CiAgICAgICAgIGRlbGV0ZSB0aGlzLl9z
dWJmcmFtZXNbZnJhbWVJZF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwppbmRleCA0ODkwZTM3ODkwNWRhNzlkNWJiNWM2ODZm
NDI2MTg1MzE5YzRjOTY0Li45MGQwMjcxN2UyMTYxNThkNjhlODNiMWVkNTVlOTc0MmYyYzNhNTE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNl
c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VzUGFuZWwuanMKQEAgLTE0Miw3ICsxNDIsNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5zaG93UmVzb3VyY2UoV2ViSW5zcGVj
dG9yLm1haW5SZXNvdXJjZSk7CiAgICAgfSwKIAotICAgIHJlc2V0OiBmdW5jdGlvbigpCisgICAg
X3Jlc2V0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLnJlc291cmNlc0xpc3RUcmVl
RWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwogICAgICAgICB0aGlzLl90cmVlRWxlbWVudEZvckZy
YW1lSWQgPSB7fTsKQEAgLTE4OSw3ICsxODksNyBAQCBXZWJJbnNwZWN0b3IuUmVzb3VyY2VzUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBl
cy5GcmFtZURldGFjaGVkLCB0aGlzLl9mcmFtZURldGFjaGVkLCB0aGlzKTsKICAgICAgICAgV2Vi
SW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuUmVzb3VyY2VBZGRlZCwgdGhpcy5fcmVzb3Vy
Y2VBZGRlZCwgdGhpcyk7CiAgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVz
LkNhY2hlZFJlc291cmNlc0xvYWRlZCwgdGhpcy5fY2FjaGVkUmVzb3VyY2VzTG9hZGVkLCB0aGlz
KTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuV2lsbExvYWRDYWNo
ZWRSZXNvdXJjZXMsIHRoaXMucmVzZXQsIHRoaXMpOworICAgICAgICBXZWJJbnNwZWN0b3IucmVz
b3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwuRXZlbnRUeXBlcy5XaWxsTG9hZENhY2hlZFJlc291cmNlcywgdGhpcy5fcmVzZXQsIHRo
aXMpOwogCiAgICAgICAgIGZ1bmN0aW9uIHBvcHVsYXRlRnJhbWUoZnJhbWVJZCkKICAgICAgICAg
ewpAQCAtMjI0LDEyICsyMjQsMTcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlc1BhbmVsLnByb3Rv
dHlwZSA9IHsKIAogICAgIF9mcmFtZURldGFjaGVkOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0g
ICAgICAgIHZhciBmcmFtZUlkID0gZXZlbnQuZGF0YTsKLSAgICAgICAgdmFyIGZyYW1lVHJlZUVs
ZW1lbnQgPSB0aGlzLl90cmVlRWxlbWVudEZvckZyYW1lSWRbZnJhbWVJZF07CisgICAgICAgIHZh
ciBmcmFtZSA9IGV2ZW50LmRhdGE7CisgICAgICAgIGlmICghZnJhbWUucGFyZW50SWQpIHsKKyAg
ICAgICAgICAgIC8vIFJlc2V0IG9uIG1haW4gZnJhbWUgZGV0YWNoCisgICAgICAgICAgICB0aGlz
Ll9yZXNldCgpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGZyYW1lVHJlZUVsZW1lbnQgPSB0
aGlzLl90cmVlRWxlbWVudEZvckZyYW1lSWRbZnJhbWUuaWRdOwogICAgICAgICBpZiAoIWZyYW1l
VHJlZUVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgZGVsZXRlIHRoaXMu
X3RyZWVFbGVtZW50Rm9yRnJhbWVJZFtmcmFtZUlkXTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3Ry
ZWVFbGVtZW50Rm9yRnJhbWVJZFtmcmFtZS5pZF07CiAgICAgICAgIGlmIChmcmFtZVRyZWVFbGVt
ZW50LnBhcmVudCkKICAgICAgICAgICAgIGZyYW1lVHJlZUVsZW1lbnQucGFyZW50LnJlbW92ZUNo
aWxkKGZyYW1lVHJlZUVsZW1lbnQpOwogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDQ5ZDUxMWQ5OGFmOTkzMzQ4
ZjVlNzNkZmQwYWFkYWVkZjVlZGIxMzMuLjRmMzZkODg2N2NmZTA1NWE5Zjc2NDliMzAwNjVmZTVh
NTQzOTZhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0c1BhbmVsLmpzCkBAIC0xNjUsNyArMTY1LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbCA9IGZ1bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsKQogCiAgICAgdGhpcy5fZGVidWdnZXJF
bmFibGVkID0gUHJlZmVyZW5jZXMuZGVidWdnZXJBbHdheXNFbmFibGVkOwogCi0gICAgdGhpcy5y
ZXNldCgpOworICAgIHRoaXMuX3Jlc2V0KGZhbHNlKTsKIAogICAgIFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZl
bnRzLkRlYnVnZ2VyV2FzRW5hYmxlZCwgdGhpcy5fZGVidWdnZXJXYXNFbmFibGVkLCB0aGlzKTsK
ICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5EZWJ1Z2dlcldhc0Rpc2FibGVkLCB0aGlzLl9kZWJ1
Z2dlcldhc0Rpc2FibGVkLCB0aGlzKTsKQEAgLTE4Miw2ICsxODIsNyBAQCBXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsID0gZnVuY3Rpb24ocHJlc2VudGF0aW9uTW9kZWwpCiAgICAgdGhpcy5fcHJl
c2VudGF0aW9uTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbC5FdmVudHMuQ2FsbEZyYW1lU2VsZWN0ZWQsIHRoaXMuX2NhbGxGcmFtZVNl
bGVjdGVkLCB0aGlzKTsKICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5Db25zb2xl
Q29tbWFuZEV2YWx1YXRlZEluU2VsZWN0ZWRDYWxsRnJhbWUsIHRoaXMuX2NvbnNvbGVDb21tYW5k
RXZhbHVhdGVkSW5TZWxlY3RlZENhbGxGcmFtZSwgdGhpcyk7CiAgICAgdGhpcy5fcHJlc2VudGF0
aW9uTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRp
b25Nb2RlbC5FdmVudHMuRXhlY3V0aW9uTGluZUNoYW5nZWQsIHRoaXMuX2V4ZWN1dGlvbkxpbmVD
aGFuZ2VkLCB0aGlzKTsKKyAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5EZWJ1Z2dl
clJlc2V0LCB0aGlzLl9yZXNldC5iaW5kKHRoaXMsIGZhbHNlKSk7CiAgICAgCiAgICAgdmFyIGVu
YWJsZURlYnVnZ2VyID0gUHJlZmVyZW5jZXMuZGVidWdnZXJBbHdheXNFbmFibGVkIHx8IFdlYklu
c3BlY3Rvci5zZXR0aW5ncy5kZWJ1Z2dlckVuYWJsZWQuZ2V0KCk7CiAgICAgaWYgKGVuYWJsZURl
YnVnZ2VyKQpAQCAtNTI2LDcgKzUyNyw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMuX2RlYnVnZ2Vy
RW5hYmxlZCA9IHRydWU7Ci0gICAgICAgIHRoaXMucmVzZXQodHJ1ZSk7CisgICAgICAgIHRoaXMu
X3Jlc2V0KHRydWUpOwogICAgIH0sCiAKICAgICBfZGVidWdnZXJXYXNEaXNhYmxlZDogZnVuY3Rp
b24oKQpAQCAtNTM1LDEwICs1MzYsMTAgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdGhpcy5fZGVidWdnZXJF
bmFibGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMucmVzZXQodHJ1ZSk7CisgICAgICAgIHRoaXMu
X3Jlc2V0KHRydWUpOwogICAgIH0sCiAKLSAgICByZXNldDogZnVuY3Rpb24ocHJlc2VydmVJdGVt
cykKKyAgICBfcmVzZXQ6IGZ1bmN0aW9uKHByZXNlcnZlSXRlbXMpCiAgICAgewogICAgICAgICB0
aGlzLnZpc2libGVWaWV3ID0gbnVsbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9leHRlcm5zLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9leHRlcm5zLmpzCmluZGV4IDU1ZjkzNmVmZDI0MDNmOWMyY2ZjOTQzYmVmYzllOWMy
NTk5NmFjMjMuLjJiZTc2ZGE4NTlkOTQ4OTlkMmRmNWFjOGVhOWM5Mzg1NjI0MTFiYmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZXh0ZXJucy5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMuanMKQEAgLTE3NCwz
ICsxNzQsMTAgQEAgZnVuY3Rpb24gRXh0ZW5zaW9uUmVsb2FkT3B0aW9ucygpIHsKICAqIEB0eXBl
IHtXZWJJbnNwZWN0b3IuSGFuZGxlclJlZ2lzdHJ5fQogICovCiBXZWJJbnNwZWN0b3Iub3BlbkFu
Y2hvckxvY2F0aW9uUmVnaXN0cnkgPSBudWxsOworCisvKioKKyAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlBhbmVsfSBwYW5lbAorICovCitXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsRm9yQW5jaG9yTmF2
aWdhdGlvbiA9IGZ1bmN0aW9uKHBhbmVsKQoreworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCAzMmU0ZGNmZWRlZDMwNmYxZWVhYjNm
MzM1YjUzYTcyNGIyNjhjYzk4Li44NWE3YjdlYjdiMDFhZTUxNzVlOGY3ZTcwYjJhN2ZjNzliNWFk
ZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcwpAQCAtNjczLDE3ICs2NzMsNiBAQCBXZWJJbnNwZWN0b3Iuc3RhcnRVc2VySW5pdGlhdGVk
RGVidWdnaW5nID0gZnVuY3Rpb24oKQogCiBXZWJJbnNwZWN0b3IucmVzZXQgPSBmdW5jdGlvbigp
CiB7Ci0gICAgdGhpcy5kZWJ1Z2dlck1vZGVsLnJlc2V0KCk7Ci0gICAgZm9yICh2YXIgcGFuZWxO
YW1lIGluIHRoaXMucGFuZWxzKSB7Ci0gICAgICAgIHZhciBwYW5lbCA9IHRoaXMucGFuZWxzW3Bh
bmVsTmFtZV07Ci0gICAgICAgIGlmICgicmVzZXQiIGluIHBhbmVsKQotICAgICAgICAgICAgcGFu
ZWwucmVzZXQoKTsKLSAgICB9Ci0KLSAgICB0aGlzLmRvbUFnZW50LmhpZGVET01Ob2RlSGlnaGxp
Z2h0KCk7Ci0KLSAgICBpZiAoIVdlYkluc3BlY3Rvci5zZXR0aW5ncy5wcmVzZXJ2ZUNvbnNvbGVM
b2cuZ2V0KCkpCi0gICAgICAgIHRoaXMuY29uc29sZS5jbGVhck1lc3NhZ2VzKCk7CiAgICAgdGhp
cy5leHRlbnNpb25TZXJ2ZXIubm90aWZ5SW5zcGVjdG9yUmVzZXQoKTsKICAgICBpZiAodGhpcy53
b3JrZXJNYW5hZ2VyKQogICAgICAgICB0aGlzLndvcmtlck1hbmFnZXIucmVzZXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9nZW5lcmF0ZS1wcm90b2NvbC1leHRlcm5z
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2dlbmVyYXRlLXByb3RvY29sLWV4dGVybnMKaW5k
ZXggMjk5ZDlmYzY4MjQ1MGU4NzRjN2IyZWVkMjI5ZTI1NDJhN2U2ZGM0Yi4uMTdiZTQxYzhhOWI3
MTc5ZTZhNTNlNTBjZGY0MWI3YzgxZWYzMmZkNCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2dlbmVyYXRlLXByb3RvY29sLWV4dGVybnMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2dlbmVyYXRlLXByb3RvY29sLWV4dGVybnMKQEAgLTY5LDYgKzY5LDggQEAgZGVm
IGZ1bGxfcXVhbGlmaWVkX3R5cGVfaWQoZG9tYWluX25hbWUsIHR5cGVfaWQpOgogICAgICAgIHJl
dHVybiAiJXMuJXMiICUgKGRvbWFpbl9uYW1lLCB0eXBlX2lkKQogICAgIHJldHVybiB0eXBlX2lk
CiAgICAgCitkZWYgZGFzaF90b19jYW1lbGNhc2Uod29yZCk6CisgICAgcmV0dXJuICIiLmpvaW4o
eC5jYXBpdGFsaXplKCkgb3IgIi0iIGZvciB4IGluIHdvcmQuc3BsaXQoIi0iKSkKIAogZGVmIHBh
cmFtX3R5cGUoZG9tYWluX25hbWUsIHBhcmFtKToKICAgICBpZiAidHlwZSIgaW4gcGFyYW06CkBA
IC0xNTgsNiArMTYwLDEwIEBAIGZvciBkb21haW4gaW4ganNvbl9hcGk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBvdXRwdXRfZmlsZS53cml0ZSgiICogQHBhcmFtIHslc30gJXNcbiIgJSAocGFy
YW1fdHlwZShkb21haW5fbmFtZSwgcGFyYW0pLCBwYXJhbVsibmFtZSJdKSkKICAgICAgICAgICAg
ICAgICBvdXRwdXRfZmlsZS53cml0ZSgiICovXG4iKQogICAgICAgICAgICAgb3V0cHV0X2ZpbGUu
d3JpdGUoIiVzQWdlbnQuRGlzcGF0Y2hlci5wcm90b3R5cGUuJXMgPSBmdW5jdGlvbiglcykge307
XG4iICUgKGRvbWFpbl9uYW1lLCBldmVudFsibmFtZSJdLCAiLCAiLmpvaW4ocGFyYW1zKSkpOwor
ICAgIGlmICJjYXBhYmlsaXRpZXMiIGluIGRvbWFpbjoKKyAgICAgICAgZm9yIGNhcGFiaWxpdHkg
aW4gZG9tYWluWyJjYXBhYmlsaXRpZXMiXToKKyAgICAgICAgICAgIG91dHB1dF9maWxlLndyaXRl
KCIvKiogQHR5cGUge3N0cmluZ30gKi9cbiIpCisgICAgICAgICAgICBvdXRwdXRfZmlsZS53cml0
ZSgiJXNBZ2VudC5jYXBhYmlsaXR5JXM7XG4iICUgKGRvbWFpbl9uYW1lLCBkYXNoX3RvX2NhbWVs
Y2FzZShjYXBhYmlsaXR5WyJuYW1lIl0pKSk7CiAgICAgb3V0cHV0X2ZpbGUud3JpdGUoIi8qKlxu
ICogQHBhcmFtIHslc0FnZW50LkRpc3BhdGNoZXJ9IGRpc3BhdGNoZXJcbiAqL1xuIiAlIGRvbWFp
bl9uYW1lKQogICAgIG91dHB1dF9maWxlLndyaXRlKCJJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVy
JXNEaXNwYXRjaGVyID0gZnVuY3Rpb24oZGlzcGF0Y2hlcikge31cbiIgJSBkb21haW5fbmFtZSk7
CiBvdXRwdXRfZmlsZS5jbG9zZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115794</attachid>
            <date>2011-11-18 05:55:08 -0800</date>
            <delta_ts>2011-11-18 07:46:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72587-20111118175506.patch</filename>
            <type>text/plain</type>
            <size>19160</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY4ZmU0ZWNhM2Y0OGFj
Yzk1NmE2MzYxYTlkMTFlM2M3NTUyMWM3OC4uZjljYzVjNDM1NzRjNzVkYTZiNWViMWFmODliZmM4
MzhhYmUwMTlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDExLTExLTE3ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBnZXQgcmlkIG9mIFBhbmVsOjpyZXNldCBpbiB0aGUgZnJvbnQtZW5kLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1ODcKKworICAgICAgICBJJ20g
c2xvd2x5IGdldHRpbmcgcmlkIG9mIHRoZSBJbnNwZWN0b3IgcHJvdG9jb2wgZG9tYWluLiBJdCBj
dXJyZW50bHkKKyAgICAgICAgY29udGFpbnMgbWV0aG9kcyB0aGF0IGRpZCBub3QgZmluZCB0aGVp
ciBob21lIGluIHRoZSBtZWFuaW5nZnVsIGRvbWFpbnMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkQ2xlYXJNYWluRnJhbWVXaW5kb3dP
YmplY3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsZWFyV2luZG93T2JqZWN0
SW5Xb3JsZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRDb21taXRMb2FkSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBs
aWNhdGlvbkNhY2hlTW9kZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25D
YWNoZU1vZGVsLnByb3RvdHlwZS5fZnJhbWVEZXRhY2hlZCk6CisgICAgICAgICogaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyTW9kZWwucHJvdG90eXBlLl9nbG9iYWxPYmplY3RDbGVhcmVkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlckRpc3BhdGNoZXIucHJvdG90eXBlLmdsb2JhbE9iamVjdENsZWFyZWQp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlw
ZS5fZGVidWdnZXJSZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50
c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBl
Lmp1bXBUb05leHRTZWFyY2hSZXN1bHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRz
UGFuZWwucHJvdG90eXBlLmp1bXBUb1ByZXZpb3VzU2VhcmNoUmVzdWx0KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIucHJvdG90eXBlLl9mcmFtZURl
dGFjaGVkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVs
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZS5f
ZnJhbWVEZXRhY2hlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQ
YW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUu
X3Jlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUu
X2ZyYW1lRGV0YWNoZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1Bh
bmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2Rl
YnVnZ2VyV2FzRGlzYWJsZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUuX3Jlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2V4dGVybnMu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsRm9yQW5jaG9yTmF2aWdhdGlvbik6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IucmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9nZW5lcmF0ZS1wcm90b2Nv
bC1leHRlcm5zOgorCiAyMDExLTExLTE4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xl
LmNvbT4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQ6IHJlc3RvcmUgZnJvbnQtZW5kIGNvbXBpbGFi
aWxpdHkgdmlhIHVwZGF0aW5nIGV4dGVybnMgYW5kIEpTIGdlbmVyYXRvci4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgppbmRleCA5MjU0NGUzMGIzZDZkODZmYzMyYjFiYjM5
YzY0NzU3NTYwZGZlNTA4Li5lNjE2NWM4YzUzYWExMWUwN2FjYTI1OGQ4ZDMxMzMwYWUxMTE3MDky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0xOTU5LDYgKzE5
NTksMTAgQEAKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQogICAgICAgICAgICAgfSwK
ICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJnbG9iYWxPYmplY3RDbGVh
cmVkIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ2FsbGVkIHdoZW4gZ2xvYmFs
IGhhcyBiZWVuIGNsZWFyZWQgYW5kIGRlYnVnZ2VyIGNsaWVudCBzaG91bGQgcmVzZXQgaXRzIHN0
YXRlLiBIYXBwZW5zIHVwb24gbmF2aWdhdGlvbiBvciByZWxvYWQuIgorICAgICAgICAgICAgfSwK
KyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJzY3JpcHRQYXJzZWQiLAog
ICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInNjcmlwdElkIiwgIiRyZWYiOiAiU2NyaXB0SWQiLCAiZGVzY3JpcHRpb24iOiAiSWRl
bnRpZmllciBvZiB0aGUgc2NyaXB0IHBhcnNlZC4iIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggZTE4MjA1Y2M4YThm
NWEzNGM0MThjZDE1MDNkMjA1OGUzN2JhNmJlMi4uZjcyNWRhODQ0N2M0N2U0NDI0ZDAyOWFkNDZl
YmU2ODFkZDlmZGQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAtMTY0LDEwICsxNjQsMTIgQEAgdm9pZCBJbnNwZWN0
b3JEZWJ1Z2dlckFnZW50OjpzZXRCcmVha3BvaW50c0FjdGl2ZShFcnJvclN0cmluZyosIGJvb2wg
YWN0aXZlKQogICAgICAgICBzY3JpcHREZWJ1Z1NlcnZlcigpLmRlYWN0aXZhdGVCcmVha3BvaW50
cygpOwogfQogCi12b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6Omluc3BlY3RlZFVSTENoYW5n
ZWQoY29uc3QgU3RyaW5nJikKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6ZGlkQ2xlYXJN
YWluRnJhbWVXaW5kb3dPYmplY3QoKQogewogICAgIG1fc2NyaXB0cy5jbGVhcigpOwogICAgIG1f
YnJlYWtwb2ludElkVG9EZWJ1Z1NlcnZlckJyZWFrcG9pbnRJZHMuY2xlYXIoKTsKKyAgICBpZiAo
bV9mcm9udGVuZCkKKyAgICAgICAgbV9mcm9udGVuZC0+Z2xvYmFsT2JqZWN0Q2xlYXJlZCgpOwog
fQogCiBzdGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQnJl
YWtwb2ludENvb2tpZShjb25zdCBTdHJpbmcmIHVybCwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1
bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgY29uZGl0aW9uLCBib29sIGlzUmVnZXgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaAppbmRleCAy
MTE4YTFlNWZiYmZkODliZmZkMjVmMjI4NTBjYjdlMGEyOWQ3NzJjLi5mZThmNDJjMGMxMzg2Mjdj
Y2UxYTdiM2VhMDJmNzNjZTlmMDg5ZWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0RnJvbnRlbmQoSW5zcGVjdG9yRnJvbnRlbmQqKTsKICAgICB2b2lkIGNsZWFy
RnJvbnRlbmQoKTsKIAotICAgIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcm
IHVybCk7CisgICAgdm9pZCBkaWRDbGVhck1haW5GcmFtZVdpbmRvd09iamVjdCgpOwogCiAgICAg
Ly8gUGFydCBvZiB0aGUgcHJvdG9jb2wuCiAgICAgdm9pZCBzZXRCcmVha3BvaW50c0FjdGl2ZShF
cnJvclN0cmluZyosIGJvb2wgYWN0aXZlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggYmQyYjllNTBlNDlkNDg1
MDJhMDk3NmVkZjJhZjg5MjEwMTJmY2I3Yy4uNGNiOGRjN2ZiMTEyMjVlNzEyYzA3YmMzNzA2MDRl
NWNhMjZhOTExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTkzLDEwICs5MywxNyBAQCBzdGF0aWMgYm9vbCBl
dmVudEhhc0xpc3RlbmVycyhjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRE9NV2luZG93
KiB3aW5kb3csCiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDbGVhcldpbmRv
d09iamVjdEluV29ybGRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2Vu
dHMsIEZyYW1lKiBmcmFtZSwgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCkKIHsKLSAgICBpZiAoSW5z
cGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0
b3JQYWdlQWdlbnQoKSkKKyAgICBJbnNwZWN0b3JQYWdlQWdlbnQqIHBhZ2VBZ2VudCA9IGluc3Ry
dW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvclBhZ2VBZ2VudCgpOworICAgIGlmIChwYWdlQWdlbnQp
CiAgICAgICAgIHBhZ2VBZ2VudC0+ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkKGZyYW1lLCB3
b3JsZCk7CiAgICAgaWYgKEluc3BlY3RvckFnZW50KiBpbnNwZWN0b3JBZ2VudCA9IGluc3RydW1l
bnRpbmdBZ2VudHMtPmluc3BlY3RvckFnZW50KCkpCiAgICAgICAgIGluc3BlY3RvckFnZW50LT5k
aWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoZnJhbWUsIHdvcmxkKTsKKyNpZiBFTkFCTEUoSkFW
QVNDUklQVF9ERUJVR0dFUikKKyAgICBpZiAoSW5zcGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdn
ZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMtPmluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSkg
eworICAgICAgICBpZiAocGFnZUFnZW50ICYmIHdvcmxkID09IG1haW5UaHJlYWROb3JtYWxXb3Js
ZCgpICYmIGZyYW1lID09IHBhZ2VBZ2VudC0+bWFpbkZyYW1lKCkpCisgICAgICAgICAgICBkZWJ1
Z2dlckFnZW50LT5kaWRDbGVhck1haW5GcmFtZVdpbmRvd09iamVjdCgpOworICAgIH0KKyNlbmRp
ZgogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aW5zcGVjdGVkUGFnZURlc3Ry
b3llZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cykKQEAgLTYz
OCwxMyArNjQ1LDYgQEAgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENvbW1pdExv
YWRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnQKIAogICAgICAgICBpZiAoSW5z
cGVjdG9yUmVzb3VyY2VBZ2VudCogcmVzb3VyY2VBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvclJlc291cmNlQWdlbnQoKSkKICAgICAgICAgICAgIHJlc291cmNlQWdlbnQtPm1h
aW5GcmFtZU5hdmlnYXRlZChsb2FkZXIpOwotCi0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdH
RVIpCi0gICAgICAgIGlmIChJbnNwZWN0b3JEZWJ1Z2dlckFnZW50KiBkZWJ1Z2dlckFnZW50ID0g
aW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yRGVidWdnZXJBZ2VudCgpKSB7Ci0gICAgICAg
ICAgICBLVVJMIHVybCA9IGluc3BlY3RvckFnZW50LT5pbnNwZWN0ZWRVUkxXaXRob3V0RnJhZ21l
bnQoKTsKLSAgICAgICAgICAgIGRlYnVnZ2VyQWdlbnQtPmluc3BlY3RlZFVSTENoYW5nZWQodXJs
KTsKLSAgICAgICAgfQotI2VuZGlmCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYm
IFVTRShKU0MpCiAgICAgICAgIGlmIChJbnNwZWN0b3JQcm9maWxlckFnZW50KiBwcm9maWxlckFn
ZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUHJvZmlsZXJBZ2VudCgpKSB7CiAg
ICAgICAgICAgICBwcm9maWxlckFnZW50LT5zdG9wVXNlckluaXRpYXRlZFByb2ZpbGluZyh0cnVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXBwbGlj
YXRpb25DYWNoZU1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9B
cHBsaWNhdGlvbkNhY2hlTW9kZWwuanMKaW5kZXggOWYzMDVlYjI5ZjcwMzEwZGE2NjRmNWFhYWE4
Y2JhNWY2NWY0NzMyZS4uOGI2ODdkOTMyNThhNjM1NWJlOTczZTAzODcwN2NlOWZjOTc0MTg0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBsaWNhdGlv
bkNhY2hlTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9B
cHBsaWNhdGlvbkNhY2hlTW9kZWwuanMKQEAgLTY2LDggKzY2LDggQEAgV2ViSW5zcGVjdG9yLkFw
cGxpY2F0aW9uQ2FjaGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgCiAgICAgX2ZyYW1lRGV0YWNo
ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGZyYW1lSWQgPSBldmVudC5k
YXRhOwotICAgICAgICB0aGlzLl9mcmFtZU1hbmlmZXN0UmVtb3ZlZChmcmFtZUlkKTsKKyAgICAg
ICAgdmFyIGZyYW1lID0gZXZlbnQuZGF0YTsKKyAgICAgICAgdGhpcy5fZnJhbWVNYW5pZmVzdFJl
bW92ZWQoZnJhbWUuaWQpOwogICAgIH0sCiAgICAgCiAgICAgX21haW5GcmFtZU5hdmlnYXRlZDog
ZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9EZWJ1Z2dlck1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZWJ1Z2dlck1vZGVsLmpzCmluZGV4IGNiMzVkOWI2NDMyNTg5N2JmODM4N2FhYzY5ODBmNjQ3Y2U4
YTg1MjYuLmY2Y2Y1MWVkMzdhZDFhMDA0ZTEzMWNkZGZkZjYzMDI1NDc1NzlmOTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMK
QEAgLTc0LDcgKzc0LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzID0gewog
ICAgIFBhcnNlZFNjcmlwdFNvdXJjZTogInBhcnNlZC1zY3JpcHQtc291cmNlIiwKICAgICBGYWls
ZWRUb1BhcnNlU2NyaXB0U291cmNlOiAiZmFpbGVkLXRvLXBhcnNlLXNjcmlwdC1zb3VyY2UiLAog
ICAgIEJyZWFrcG9pbnRSZXNvbHZlZDogImJyZWFrcG9pbnQtcmVzb2x2ZWQiLAotICAgIFJlc2V0
OiAicmVzZXQiCisgICAgR2xvYmFsT2JqZWN0Q2xlYXJlZDogImdsb2JhbC1vYmplY3QtY2xlYXJl
ZCIKIH0KIAogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuQnJlYWtSZWFzb24gPSB7CkBAIC0y
MTgsMTEgKzIxOCwxMSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1
Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVzb2x2ZWQsIHticmVha3BvaW50SWQ6IGJyZWFr
cG9pbnRJZCwgbG9jYXRpb246IGxvY2F0aW9ufSk7CiAgICAgfSwKIAotICAgIHJlc2V0OiBmdW5j
dGlvbigpCisgICAgX2dsb2JhbE9iamVjdENsZWFyZWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAg
ICAgIHRoaXMuX2RlYnVnZ2VyUGF1c2VkRGV0YWlscyA9IG51bGw7CiAgICAgICAgIHRoaXMuX3Nj
cmlwdHMgPSB7fTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLlJlc2V0KTsKKyAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkdsb2Jh
bE9iamVjdENsZWFyZWQpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTM5NSw2ICszOTUsMTEgQEAg
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRo
aXMuX2RlYnVnZ2VyTW9kZWwuX2RlYnVnZ2VyV2FzRGlzYWJsZWQoKTsKICAgICB9LAogCisgICAg
Z2xvYmFsT2JqZWN0Q2xlYXJlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fZGVi
dWdnZXJNb2RlbC5fZ2xvYmFsT2JqZWN0Q2xlYXJlZCgpOworICAgIH0sCisKICAgICAvKioKICAg
ICAgKiBAcGFyYW0ge0RlYnVnZ2VyQWdlbnQuU2NyaXB0SWR9IHNjcmlwdElkCiAgICAgICogQHBh
cmFtIHtzdHJpbmd9IHNvdXJjZVVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4
IGI1MzQzNWU1MDZmYmQ0NGNlMmFiYmJjMDMwM2FmMWYxNzk0YmMzMjkuLmI0MjU1OGUzY2E4NTRh
M2YyM2FjNjMyOWYwMzBiZmZlOGJiY2MyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
anMKQEAgLTQ3LDcgKzQ3LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuRmFpbGVkVG9QYXJzZVNj
cmlwdFNvdXJjZSwgdGhpcy5fZmFpbGVkVG9QYXJzZVNjcmlwdFNvdXJjZSwgdGhpcyk7CiAgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5FdmVudHMuRGVidWdnZXJQYXVzZWQsIHRoaXMuX2RlYnVnZ2VyUGF1c2Vk
LCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVy
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5EZWJ1Z2dlclJlc3VtZWQsIHRoaXMu
X2RlYnVnZ2VyUmVzdW1lZCwgdGhpcyk7Ci0gICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuUmVzZXQs
IHRoaXMuX2RlYnVnZ2VyUmVzZXQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1v
ZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkds
b2JhbE9iamVjdENsZWFyZWQsIHRoaXMuX2RlYnVnZ2VyUmVzZXQsIHRoaXMpOwogCiAgICAgV2Vi
SW5zcGVjdG9yLmNvbnNvbGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQ29uc29sZU1v
ZGVsLkV2ZW50cy5NZXNzYWdlQWRkZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdlQWRkZWQsIHRoaXMp
OwogICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LkNvbnNvbGVNb2RlbC5FdmVudHMuQ29uc29sZUNsZWFyZWQsIHRoaXMuX2NvbnNvbGVDbGVhcmVk
LCB0aGlzKTsKQEAgLTY1LDYgKzY1LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwuRXZlbnRzID0gewogICAgIEJyZWFrcG9pbnRSZW1vdmVkOiAiYnJlYWtwb2ludC1y
ZW1vdmVkIiwKICAgICBEZWJ1Z2dlclBhdXNlZDogImRlYnVnZ2VyLXBhdXNlZCIsCiAgICAgRGVi
dWdnZXJSZXN1bWVkOiAiZGVidWdnZXItcmVzdW1lZCIsCisgICAgRGVidWdnZXJSZXNldDogImRl
YnVnZ2VyLXJlc2V0IiwKICAgICBDYWxsRnJhbWVTZWxlY3RlZDogImNhbGwtZnJhbWUtc2VsZWN0
ZWQiLAogICAgIENvbnNvbGVDb21tYW5kRXZhbHVhdGVkSW5TZWxlY3RlZENhbGxGcmFtZTogImNv
bnNvbGUtY29tbWFuZC1ldmFsdWF0ZWQtaW4tc2VsZWN0ZWQtY2FsbC1mcmFtZSIsCiAgICAgRXhl
Y3V0aW9uTGluZUNoYW5nZWQ6ICJleGVjdXRpb24tbGluZS1jaGFuZ2VkIgpAQCAtNjU4LDYgKzY1
OSw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uQ2FsbEZyYW1lcyA9IFtdOwogICAgICAgICB0
aGlzLl9zZWxlY3RlZENhbGxGcmFtZSA9IG51bGw7CiAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRN
YW5hZ2VyLmRlYnVnZ2VyUmVzZXQoKTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLkRlYnVn
Z2VyUmVzZXQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcwppbmRleCA4
ZjY2NDNjY2M3OTE5ZTZlOGI0ODZlOWJjOTAyNTBjZDU1MjM3NzEwLi4zN2ZiY2JhN2QzOGVjZmQx
MTViYWY5ZWM4ZjAzOTY4NTgwNGYwMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcwpA
QCAtNjEsMTIgKzYxLDEyIEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIu
cHJvdG90eXBlID0gewogCiAgICAgX2ZyYW1lRGV0YWNoZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAg
IHsKLSAgICAgICAgdmFyIGZyYW1lSWQgPSBldmVudC5kYXRhOwotICAgICAgICB2YXIgY29udGV4
dCA9IHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRbZnJhbWVJZF07CisgICAgICAgIHZhciBmcmFtZSA9
IGV2ZW50LmRhdGE7CisgICAgICAgIHZhciBjb250ZXh0ID0gdGhpcy5fZnJhbWVJZFRvQ29udGV4
dFtmcmFtZS5pZF07CiAgICAgICAgIGlmICghY29udGV4dCkKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgdGhpcy5fY29uc29sZVZpZXcucmVtb3ZlQ29udGV4dChjb250ZXh0KTsKLSAgICAg
ICAgZGVsZXRlIHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRbZnJhbWVJZF07CisgICAgICAgIGRlbGV0
ZSB0aGlzLl9mcmFtZUlkVG9Db250ZXh0W2ZyYW1lLmlkXTsKICAgICB9LAogfQogCkBAIC05NSw3
ICs5NSw3IEBAIFdlYkluc3BlY3Rvci5GcmFtZUV2YWx1YXRpb25Db250ZXh0LnByb3RvdHlwZSA9
CiAKICAgICBnZXQgZnJhbWVJZCgpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZnJhbWUu
aWQKKyAgICAgICAgcmV0dXJuIHRoaXMuX2ZyYW1lLmlkOwogICAgIH0sCiAKICAgICBnZXQgdXJs
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3Vy
Y2VUcmVlTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291
cmNlVHJlZU1vZGVsLmpzCmluZGV4IDM5N2IzMDljOWE5ZjEzMTgyYjU5N2YwNWUyOTdhZDZmNmNm
ZDQxN2YuLjczZmM2ODkxNDgwZTU1NThmMzEyZWViZDY4MmEzNGQyOGUxOTMwMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVN
b2RlbC5qcwpAQCAtMTg2LDcgKzE4Niw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fZnJhbWVJZHNbZnJhbWVJ
ZF07CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZURldGFjaGVkLCBm
cmFtZUlkKTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVEZXRhY2hlZCwgZnJhbWUpOwog
ICAgIH0sCiAKICAgICBfb25SZXNvdXJjZVN0YXJ0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMzA5
LDcgKzMwOSw3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHRoaXMuX2NsZWFyUmVzb3VyY2VzKGZyYW1lSWQsIGxvYWRlclRvUHJlc2VydmVJ
ZCk7CiAgICAgICAgIHZhciBzdWJmcmFtZXMgPSB0aGlzLl9zdWJmcmFtZXNbZnJhbWVJZF07CiAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBzdWJmcmFtZXMgJiYgaSA8IHN1YmZyYW1lcy5sZW5ndGg7
ICsrIGkpIHsKLSAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIHN1YmZy
YW1lc1tpXS5pZCk7CisgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhX
ZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5GcmFtZURldGFjaGVkLCBz
dWJmcmFtZXNbaV0pOwogICAgICAgICAgICAgdGhpcy5fY2xlYXJDaGlsZEZyYW1lc0FuZFJlc291
cmNlcyhzdWJmcmFtZXNbaV0uaWQsIGxvYWRlclRvUHJlc2VydmVJZCk7CiAgICAgICAgIH0KICAg
ICAgICAgZGVsZXRlIHRoaXMuX3N1YmZyYW1lc1tmcmFtZUlkXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlc1BhbmVsLmpzCmluZGV4IDQ4OTBl
Mzc4OTA1ZGE3OWQ1YmI1YzY4NmY0MjYxODUzMTljNGM5NjQuLjkwZDAyNzE3ZTIxNjE1OGQ2OGU4
M2IxZWQ1NWU5NzQyZjJjM2E1MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcwpAQCAtMTQyLDcgKzE0Miw3IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLnNo
b3dSZXNvdXJjZShXZWJJbnNwZWN0b3IubWFpblJlc291cmNlKTsKICAgICB9LAogCi0gICAgcmVz
ZXQ6IGZ1bmN0aW9uKCkKKyAgICBfcmVzZXQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRo
aXMucmVzb3VyY2VzTGlzdFRyZWVFbGVtZW50LnJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIHRo
aXMuX3RyZWVFbGVtZW50Rm9yRnJhbWVJZCA9IHt9OwpAQCAtMTg5LDcgKzE4OSw3IEBAIFdlYklu
c3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIFdlYkluc3BlY3Rv
ci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIHRoaXMuX2ZyYW1lRGV0YWNoZWQs
IHRoaXMpOwogICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5SZXNvdXJj
ZUFkZGVkLCB0aGlzLl9yZXNvdXJjZUFkZGVkLCB0aGlzKTsKICAgICAgICAgV2ViSW5zcGVjdG9y
LnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZU1vZGVsLkV2ZW50VHlwZXMuQ2FjaGVkUmVzb3VyY2VzTG9hZGVkLCB0aGlzLl9jYWNoZWRS
ZXNvdXJjZXNMb2FkZWQsIHRoaXMpOwotICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVl
TW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZl
bnRUeXBlcy5XaWxsTG9hZENhY2hlZFJlc291cmNlcywgdGhpcy5yZXNldCwgdGhpcyk7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLldpbGxMb2FkQ2FjaGVkUmVzb3Vy
Y2VzLCB0aGlzLl9yZXNldCwgdGhpcyk7CiAKICAgICAgICAgZnVuY3Rpb24gcG9wdWxhdGVGcmFt
ZShmcmFtZUlkKQogICAgICAgICB7CkBAIC0yMjQsMTIgKzIyNCwxNyBAQCBXZWJJbnNwZWN0b3Iu
UmVzb3VyY2VzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX2ZyYW1lRGV0YWNoZWQ6IGZ1bmN0
aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGZyYW1lSWQgPSBldmVudC5kYXRhOwotICAg
ICAgICB2YXIgZnJhbWVUcmVlRWxlbWVudCA9IHRoaXMuX3RyZWVFbGVtZW50Rm9yRnJhbWVJZFtm
cmFtZUlkXTsKKyAgICAgICAgdmFyIGZyYW1lID0gZXZlbnQuZGF0YTsKKyAgICAgICAgaWYgKCFm
cmFtZS5wYXJlbnRJZCkgeworICAgICAgICAgICAgLy8gUmVzZXQgb24gbWFpbiBmcmFtZSBkZXRh
Y2gKKyAgICAgICAgICAgIHRoaXMuX3Jlc2V0KCk7CisgICAgICAgIH0KKworICAgICAgICB2YXIg
ZnJhbWVUcmVlRWxlbWVudCA9IHRoaXMuX3RyZWVFbGVtZW50Rm9yRnJhbWVJZFtmcmFtZS5pZF07
CiAgICAgICAgIGlmICghZnJhbWVUcmVlRWxlbWVudCkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBkZWxldGUgdGhpcy5fdHJlZUVsZW1lbnRGb3JGcmFtZUlkW2ZyYW1lSWRdOworICAg
ICAgICBkZWxldGUgdGhpcy5fdHJlZUVsZW1lbnRGb3JGcmFtZUlkW2ZyYW1lLmlkXTsKICAgICAg
ICAgaWYgKGZyYW1lVHJlZUVsZW1lbnQucGFyZW50KQogICAgICAgICAgICAgZnJhbWVUcmVlRWxl
bWVudC5wYXJlbnQucmVtb3ZlQ2hpbGQoZnJhbWVUcmVlRWxlbWVudCk7CiAgICAgfSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5k
ZXggNDlkNTExZDk4YWY5OTMzNDhmNWU3M2RmZDBhYWRhZWRmNWVkYjEzMy4uNGYzNmQ4ODY3Y2Zl
MDU1YTlmNzY0OWIzMDA2NWZlNWE1NDM5NmFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTE2NSw3ICsxNjUsNyBAQCBX
ZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVuY3Rpb24ocHJlc2VudGF0aW9uTW9kZWwpCiAK
ICAgICB0aGlzLl9kZWJ1Z2dlckVuYWJsZWQgPSBQcmVmZXJlbmNlcy5kZWJ1Z2dlckFsd2F5c0Vu
YWJsZWQ7CiAKLSAgICB0aGlzLnJlc2V0KCk7CisgICAgdGhpcy5fcmVzZXQoZmFsc2UpOwogCiAg
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuRGVidWdnZXJXYXNFbmFibGVkLCB0aGlzLl9kZWJ1Z2dl
cldhc0VuYWJsZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkRlYnVnZ2VyV2Fz
RGlzYWJsZWQsIHRoaXMuX2RlYnVnZ2VyV2FzRGlzYWJsZWQsIHRoaXMpOwpAQCAtMTgyLDYgKzE4
Miw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbihwcmVzZW50YXRpb25N
b2RlbCkKICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5DYWxsRnJhbWVTZWxlY3Rl
ZCwgdGhpcy5fY2FsbEZyYW1lU2VsZWN0ZWQsIHRoaXMpOwogICAgIHRoaXMuX3ByZXNlbnRhdGlv
bk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwuRXZlbnRzLkNvbnNvbGVDb21tYW5kRXZhbHVhdGVkSW5TZWxlY3RlZENhbGxGcmFtZSwg
dGhpcy5fY29uc29sZUNvbW1hbmRFdmFsdWF0ZWRJblNlbGVjdGVkQ2FsbEZyYW1lLCB0aGlzKTsK
ICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5FeGVjdXRpb25MaW5lQ2hhbmdlZCwg
dGhpcy5fZXhlY3V0aW9uTGluZUNoYW5nZWQsIHRoaXMpOworICAgIHRoaXMuX3ByZXNlbnRhdGlv
bk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwuRXZlbnRzLkRlYnVnZ2VyUmVzZXQsIHRoaXMuX3Jlc2V0LmJpbmQodGhpcywgZmFsc2Up
KTsKICAgICAKICAgICB2YXIgZW5hYmxlRGVidWdnZXIgPSBQcmVmZXJlbmNlcy5kZWJ1Z2dlckFs
d2F5c0VuYWJsZWQgfHwgV2ViSW5zcGVjdG9yLnNldHRpbmdzLmRlYnVnZ2VyRW5hYmxlZC5nZXQo
KTsKICAgICBpZiAoZW5hYmxlRGVidWdnZXIpCkBAIC01MjYsNyArNTI3LDcgQEAgV2ViSW5zcGVj
dG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgdGhpcy5fZGVidWdnZXJFbmFibGVkID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5yZXNldCh0
cnVlKTsKKyAgICAgICAgdGhpcy5fcmVzZXQodHJ1ZSk7CiAgICAgfSwKIAogICAgIF9kZWJ1Z2dl
cldhc0Rpc2FibGVkOiBmdW5jdGlvbigpCkBAIC01MzUsMTAgKzUzNiwxMCBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICB0aGlzLl9kZWJ1Z2dlckVuYWJsZWQgPSBmYWxzZTsKLSAgICAgICAgdGhpcy5yZXNldCh0
cnVlKTsKKyAgICAgICAgdGhpcy5fcmVzZXQodHJ1ZSk7CiAgICAgfSwKIAotICAgIHJlc2V0OiBm
dW5jdGlvbihwcmVzZXJ2ZUl0ZW1zKQorICAgIF9yZXNldDogZnVuY3Rpb24ocHJlc2VydmVJdGVt
cykKICAgICB7CiAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcgPSBudWxsOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDMyZTRkY2Zl
ZGVkMzA2ZjFlZWFiM2YzMzViNTNhNzI0YjI2OGNjOTguLjg1YTdiN2ViN2IwMWFlNTE3NWU4Zjdl
NzBiMmE3ZmM3OWI1YWRlZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzCkBAIC02NzMsMTcgKzY3Myw2IEBAIFdlYkluc3BlY3Rvci5zdGFy
dFVzZXJJbml0aWF0ZWREZWJ1Z2dpbmcgPSBmdW5jdGlvbigpCiAKIFdlYkluc3BlY3Rvci5yZXNl
dCA9IGZ1bmN0aW9uKCkKIHsKLSAgICB0aGlzLmRlYnVnZ2VyTW9kZWwucmVzZXQoKTsKLSAgICBm
b3IgKHZhciBwYW5lbE5hbWUgaW4gdGhpcy5wYW5lbHMpIHsKLSAgICAgICAgdmFyIHBhbmVsID0g
dGhpcy5wYW5lbHNbcGFuZWxOYW1lXTsKLSAgICAgICAgaWYgKCJyZXNldCIgaW4gcGFuZWwpCi0g
ICAgICAgICAgICBwYW5lbC5yZXNldCgpOwotICAgIH0KLQotICAgIHRoaXMuZG9tQWdlbnQuaGlk
ZURPTU5vZGVIaWdobGlnaHQoKTsKLQotICAgIGlmICghV2ViSW5zcGVjdG9yLnNldHRpbmdzLnBy
ZXNlcnZlQ29uc29sZUxvZy5nZXQoKSkKLSAgICAgICAgdGhpcy5jb25zb2xlLmNsZWFyTWVzc2Fn
ZXMoKTsKICAgICB0aGlzLmV4dGVuc2lvblNlcnZlci5ub3RpZnlJbnNwZWN0b3JSZXNldCgpOwog
ICAgIGlmICh0aGlzLndvcmtlck1hbmFnZXIpCiAgICAgICAgIHRoaXMud29ya2VyTWFuYWdlci5y
ZXNldCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115807</attachid>
            <date>2011-11-18 07:47:01 -0800</date>
            <delta_ts>2011-11-18 08:20:04 -0800</delta_ts>
            <desc>[Patch] Same with reset removed from protocol.</desc>
            <filename>bug-72587-20111118194658.patch</filename>
            <type>text/plain</type>
            <size>28215</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWY4ZmU0ZWNhM2Y0OGFj
Yzk1NmE2MzYxYTlkMTFlM2M3NTUyMWM3OC4uMDdiMzQwOTNhZTAzOGUzOWU3MTI5MjIwYzg0NDgw
ODRmZjEzMjhmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYxIEBACiAyMDExLTExLTE4ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAorICAgICAgICBXZWIgSW5zcGVjdG9y
OiBnZXQgcmlkIG9mIFBhbmVsOjpyZXNldCBpbiB0aGUgZnJvbnQtZW5kLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI1ODcKKworICAgICAgICBJJ20g
c2xvd2x5IGdldHRpbmcgcmlkIG9mIHRoZSBJbnNwZWN0b3IgcHJvdG9jb2wgZG9tYWluLiBJdCBj
dXJyZW50bHkKKyAgICAgICAgY29udGFpbnMgbWV0aG9kcyB0aGF0IGRpZCBub3QgZmluZCB0aGVp
ciBob21lIGluIHRoZSBtZWFuaW5nZnVsIGRvbWFpbnMuCisgICAgICAgIFRoaXMgY2hhbmdlIHJl
bW92ZXMgcmVzZXQgcHJvdG9jb2wgbWV0aG9kLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JBZ2VudDo6ZGlkQ29tbWl0TG9hZCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRGVidWdnZXJB
Z2VudDo6ZGlkQ2xlYXJNYWluRnJhbWVXaW5kb3dPYmplY3QpOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZEltcGwpOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9BcHBsaWNhdGlvbkNhY2hlTW9kZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZU1vZGVsLnByb3RvdHlwZS5fZnJhbWVO
YXZpZ2F0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNb2RlbC5w
cm90b3R5cGUuX2ZyYW1lRGV0YWNoZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
RGVidWdnZXJNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnBy
b3RvdHlwZS5fZ2xvYmFsT2JqZWN0Q2xlYXJlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVi
dWdnZXJEaXNwYXRjaGVyLnByb3RvdHlwZS5nbG9iYWxPYmplY3RDbGVhcmVkKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanM6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2RlYnVnZ2Vy
UmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlcik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fbWFpbkZyYW1lTmF2aWdhdGVkKToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIucHJvdG90
eXBlLl9mcmFtZURldGFjaGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GcmFtZUV2YWx1YXRp
b25Db250ZXh0LnByb3RvdHlwZS5nZXQgZnJhbWVJZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9OZXR3b3JrTG9nLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2cp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2cucHJvdG90eXBlLl9tYWluRnJhbWVO
YXZpZ2F0ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUuX21haW5GcmFtZU5hdmlnYXRlZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2RlbC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUuX2ZyYW1lTmF2aWdh
dGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5wcm90b3R5cGUu
X2ZyYW1lRGV0YWNoZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVs
LnByb3RvdHlwZS5fY2xlYXJDaGlsZEZyYW1lc0FuZFJlc291cmNlcyk6CisgICAgICAgICogaW5z
cGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX3Jlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SZXNvdXJjZXNQYW5lbC5wcm90b3R5cGUuX2ZyYW1lRGV0YWNoZWQpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2RlYnVnZ2VyV2FzRGlzYWJsZWQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3Jlc2V0KToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlck1hbmFnZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuV29ya2VyTWFuYWdlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuV29ya2VyTWFuYWdlci5w
cm90b3R5cGUuX21haW5GcmFtZU5hdmlnYXRlZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9pbnNwZWN0b3IuanM6CisKKzIwMTEtMTEtMTggIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1h
bkBnb29nbGUuY29tPgorCiAgICAgICAgIE5vdCByZXZpZXdlZDogcmVzdG9yZSBmcm9udC1lbmQg
Y29tcGlsYWJpbGl0eSB2aWEgdXBkYXRpbmcgZXh0ZXJucyBhbmQgSlMgZ2VuZXJhdG9yLgogCiAg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDkyNTQ0ZTMwYjNkNmQ4NmZjMzJiMWJi
MzljNjQ3NTc1NjBkZmU1MDguLjVjNWYyN2UyNjk4NzRjMDQ1ODRmMTdjNTBhMjk1NTI2ZjZmODFk
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTE3LDkgKzE3
LDYgQEAKICAgICAgICAgICAgICAgICAibmFtZSI6ICJkaXNjb25uZWN0RnJvbUJhY2tlbmQiCiAg
ICAgICAgICAgICB9LAogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJuYW1lIjogInJl
c2V0IgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFt
ZSI6ICJzaG93UGFuZWwiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInBhbmVsIiwgInR5cGUiOiAic3RyaW5nIiB9CkBAIC0x
OTU5LDYgKzE5NTYsMTAgQEAKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQogICAgICAg
ICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAibmFtZSI6ICJnbG9iYWxP
YmplY3RDbGVhcmVkIiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ2FsbGVkIHdo
ZW4gZ2xvYmFsIGhhcyBiZWVuIGNsZWFyZWQgYW5kIGRlYnVnZ2VyIGNsaWVudCBzaG91bGQgcmVz
ZXQgaXRzIHN0YXRlLiBIYXBwZW5zIHVwb24gbmF2aWdhdGlvbiBvciByZWxvYWQuIgorICAgICAg
ICAgICAgfSwKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJzY3JpcHRQ
YXJzZWQiLAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInNjcmlwdElkIiwgIiRyZWYiOiAiU2NyaXB0SWQiLCAiZGVzY3JpcHRp
b24iOiAiSWRlbnRpZmllciBvZiB0aGUgc2NyaXB0IHBhcnNlZC4iIH0sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcAppbmRleCBlMzNlYzliYThhOTkyMjA0NzZj
MDYxNDkxYTQzZTkxOWIwMzkxMzZmLi43ZTE1NTRjMDhlY2IzZmQzNjFhZWE5YTQ2NzY2MWI1NjBj
MDM0YjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5jcHAK
QEAgLTEzNiw5ICsxMzYsNiBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpjbGVhckZyb250ZW5kKCkK
IHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRpZENvbW1pdExvYWQoKQogewogICAgIG1fZGlkQ29tbWl0
TG9hZEZpcmVkID0gdHJ1ZTsKLSAgICBpZiAobV9mcm9udGVuZCkKLSAgICAgICAgbV9mcm9udGVu
ZC0+aW5zcGVjdG9yKCktPnJlc2V0KCk7Ci0KICAgICBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+
ZGlzY2FyZEluamVjdGVkU2NyaXB0cygpOwogI2lmIEVOQUJMRShXT1JLRVJTKQogICAgIG1fd29y
a2Vycy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckRlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRlYnVnZ2VyQWdlbnQuY3BwCmluZGV4IGUxODIwNWNjOGE4ZjVhMzRjNDE4Y2QxNTAzZDIwNThl
MzdiYTZiZTIuLmY3MjVkYTg0NDdjNDdlNDQyNGQwMjlhZDQ2ZWJlNjgxZGQ5ZmRkN2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdnZXJBZ2VudC5j
cHAKQEAgLTE2NCwxMCArMTY0LDEyIEBAIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0
QnJlYWtwb2ludHNBY3RpdmUoRXJyb3JTdHJpbmcqLCBib29sIGFjdGl2ZSkKICAgICAgICAgc2Ny
aXB0RGVidWdTZXJ2ZXIoKS5kZWFjdGl2YXRlQnJlYWtwb2ludHMoKTsKIH0KIAotdm9pZCBJbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50OjppbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpCit2
b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZENsZWFyTWFpbkZyYW1lV2luZG93T2JqZWN0
KCkKIHsKICAgICBtX3NjcmlwdHMuY2xlYXIoKTsKICAgICBtX2JyZWFrcG9pbnRJZFRvRGVidWdT
ZXJ2ZXJCcmVha3BvaW50SWRzLmNsZWFyKCk7CisgICAgaWYgKG1fZnJvbnRlbmQpCisgICAgICAg
IG1fZnJvbnRlbmQtPmdsb2JhbE9iamVjdENsZWFyZWQoKTsKIH0KIAogc3RhdGljIFBhc3NSZWZQ
dHI8SW5zcGVjdG9yT2JqZWN0PiBidWlsZE9iamVjdEZvckJyZWFrcG9pbnRDb29raWUoY29uc3Qg
U3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJp
bmcmIGNvbmRpdGlvbiwgYm9vbCBpc1JlZ2V4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKaW5kZXggMjExOGExZTVmYmJmZDg5YmZmZDI1
ZjIyODUwY2I3ZTBhMjlkNzcyYy4uZmU4ZjQyYzBjMTM4NjI3Y2NlMWE3YjNlYTAyZjczY2U5ZjA4
OWVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRlYnVn
Z2VyQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudC5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZyb250ZW5k
KEluc3BlY3RvckZyb250ZW5kKik7CiAgICAgdm9pZCBjbGVhckZyb250ZW5kKCk7CiAKLSAgICB2
b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJiB1cmwpOworICAgIHZvaWQgZGlk
Q2xlYXJNYWluRnJhbWVXaW5kb3dPYmplY3QoKTsKIAogICAgIC8vIFBhcnQgb2YgdGhlIHByb3Rv
Y29sLgogICAgIHZvaWQgc2V0QnJlYWtwb2ludHNBY3RpdmUoRXJyb3JTdHJpbmcqLCBib29sIGFj
dGl2ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwCmluZGV4IGJkMmI5ZTUwZTQ5ZDQ4NTAyYTA5NzZlZGYyYWY4OTIxMDEy
ZmNiN2MuLjRjYjhkYzdmYjExMjI1ZTcxMmMwN2JjMzcwNjA0ZTVjYTI2YTkxMTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24u
Y3BwCkBAIC05MywxMCArOTMsMTcgQEAgc3RhdGljIGJvb2wgZXZlbnRIYXNMaXN0ZW5lcnMoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIERPTVdpbmRvdyogd2luZG93LAogCiB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSogZnJhbWUsIERP
TVdyYXBwZXJXb3JsZCogd29ybGQpCiB7Ci0gICAgaWYgKEluc3BlY3RvclBhZ2VBZ2VudCogcGFn
ZUFnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9yUGFnZUFnZW50KCkpCisgICAg
SW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNw
ZWN0b3JQYWdlQWdlbnQoKTsKKyAgICBpZiAocGFnZUFnZW50KQogICAgICAgICBwYWdlQWdlbnQt
PmRpZENsZWFyV2luZG93T2JqZWN0SW5Xb3JsZChmcmFtZSwgd29ybGQpOwogICAgIGlmIChJbnNw
ZWN0b3JBZ2VudCogaW5zcGVjdG9yQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0
b3JBZ2VudCgpKQogICAgICAgICBpbnNwZWN0b3JBZ2VudC0+ZGlkQ2xlYXJXaW5kb3dPYmplY3RJ
bldvcmxkKGZyYW1lLCB3b3JsZCk7CisjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCisg
ICAgaWYgKEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLT5pbnNwZWN0b3JEZWJ1Z2dlckFnZW50KCkpIHsKKyAgICAgICAgaWYgKHBhZ2VB
Z2VudCAmJiB3b3JsZCA9PSBtYWluVGhyZWFkTm9ybWFsV29ybGQoKSAmJiBmcmFtZSA9PSBwYWdl
QWdlbnQtPm1haW5GcmFtZSgpKQorICAgICAgICAgICAgZGVidWdnZXJBZ2VudC0+ZGlkQ2xlYXJN
YWluRnJhbWVXaW5kb3dPYmplY3QoKTsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWRJbXBsKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMpCkBAIC02MzgsMTMgKzY0NSw2IEBAIHZvaWQg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDb21taXRMb2FkSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzKiBpbnN0cnVtZW50CiAKICAgICAgICAgaWYgKEluc3BlY3RvclJlc291cmNlQWdlbnQq
IHJlc291cmNlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLT5pbnNwZWN0b3JSZXNvdXJjZUFn
ZW50KCkpCiAgICAgICAgICAgICByZXNvdXJjZUFnZW50LT5tYWluRnJhbWVOYXZpZ2F0ZWQobG9h
ZGVyKTsKLQotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgICAgICBpZiAoSW5z
cGVjdG9yRGVidWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2VudHMt
Pmluc3BlY3RvckRlYnVnZ2VyQWdlbnQoKSkgewotICAgICAgICAgICAgS1VSTCB1cmwgPSBpbnNw
ZWN0b3JBZ2VudC0+aW5zcGVjdGVkVVJMV2l0aG91dEZyYWdtZW50KCk7Ci0gICAgICAgICAgICBk
ZWJ1Z2dlckFnZW50LT5pbnNwZWN0ZWRVUkxDaGFuZ2VkKHVybCk7Ci0gICAgICAgIH0KLSNlbmRp
ZgogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBVU0UoSlNDKQogICAgICAgICBp
ZiAoSW5zcGVjdG9yUHJvZmlsZXJBZ2VudCogcHJvZmlsZXJBZ2VudCA9IGluc3RydW1lbnRpbmdB
Z2VudHMtPmluc3BlY3RvclByb2ZpbGVyQWdlbnQoKSkgewogICAgICAgICAgICAgcHJvZmlsZXJB
Z2VudC0+c3RvcFVzZXJJbml0aWF0ZWRQcm9maWxpbmcodHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZU1vZGVs
LmpzCmluZGV4IDlmMzA1ZWIyOWY3MDMxMGRhNjY0ZjVhYWFhOGNiYTVmNjVmNDczMmUuLmI0MTRi
YWI3NmJlNDE3N2VlYmQyZmZjMGFlYzkzYTUyMzQ0YzgwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZU1vZGVsLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQXBwbGljYXRpb25DYWNoZU1vZGVs
LmpzCkBAIC01NCw3ICs1NCw3IEBAIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwu
RXZlbnRUeXBlcyA9IHsKIFdlYkluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlTW9kZWwucHJvdG90
eXBlID0gewogICAgIF9mcmFtZU5hdmlnYXRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAg
ICAgICBpZiAoZXZlbnQuZGF0YS5pc01haW5GcmFtZSkgeworICAgICAgICBpZiAoZXZlbnQuZGF0
YVsiaXNNYWluRnJhbWUiXSkgewogICAgICAgICAgICAgdGhpcy5fbWFpbkZyYW1lTmF2aWdhdGVk
KCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTY2LDggKzY2LDggQEAgV2Vi
SW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgCiAgICAg
X2ZyYW1lRGV0YWNoZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdmFyIGZyYW1l
SWQgPSBldmVudC5kYXRhOwotICAgICAgICB0aGlzLl9mcmFtZU1hbmlmZXN0UmVtb3ZlZChmcmFt
ZUlkKTsKKyAgICAgICAgdmFyIGZyYW1lID0gZXZlbnQuZGF0YTsKKyAgICAgICAgdGhpcy5fZnJh
bWVNYW5pZmVzdFJlbW92ZWQoZnJhbWUuaWQpOwogICAgIH0sCiAgICAgCiAgICAgX21haW5GcmFt
ZU5hdmlnYXRlZDogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCmluZGV4IGNiMzVkOWI2NDMyNTg5N2JmODM4N2Fh
YzY5ODBmNjQ3Y2U4YTg1MjYuLmY2Y2Y1MWVkMzdhZDFhMDA0ZTEzMWNkZGZkZjYzMDI1NDc1Nzlm
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdn
ZXJNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVn
Z2VyTW9kZWwuanMKQEAgLTc0LDcgKzc0LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwu
RXZlbnRzID0gewogICAgIFBhcnNlZFNjcmlwdFNvdXJjZTogInBhcnNlZC1zY3JpcHQtc291cmNl
IiwKICAgICBGYWlsZWRUb1BhcnNlU2NyaXB0U291cmNlOiAiZmFpbGVkLXRvLXBhcnNlLXNjcmlw
dC1zb3VyY2UiLAogICAgIEJyZWFrcG9pbnRSZXNvbHZlZDogImJyZWFrcG9pbnQtcmVzb2x2ZWQi
LAotICAgIFJlc2V0OiAicmVzZXQiCisgICAgR2xvYmFsT2JqZWN0Q2xlYXJlZDogImdsb2JhbC1v
YmplY3QtY2xlYXJlZCIKIH0KIAogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuQnJlYWtSZWFz
b24gPSB7CkBAIC0yMTgsMTEgKzIxOCwxMSBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVzb2x2ZWQsIHticmVha3Bv
aW50SWQ6IGJyZWFrcG9pbnRJZCwgbG9jYXRpb246IGxvY2F0aW9ufSk7CiAgICAgfSwKIAotICAg
IHJlc2V0OiBmdW5jdGlvbigpCisgICAgX2dsb2JhbE9iamVjdENsZWFyZWQ6IGZ1bmN0aW9uKCkK
ICAgICB7CiAgICAgICAgIHRoaXMuX2RlYnVnZ2VyUGF1c2VkRGV0YWlscyA9IG51bGw7CiAgICAg
ICAgIHRoaXMuX3NjcmlwdHMgPSB7fTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLlJlc2V0KTsKKyAgICAgICAg
dGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwu
RXZlbnRzLkdsb2JhbE9iamVjdENsZWFyZWQpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTM5NSw2
ICszOTUsMTEgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHRoaXMuX2RlYnVnZ2VyTW9kZWwuX2RlYnVnZ2VyV2FzRGlzYWJsZWQoKTsKICAg
ICB9LAogCisgICAgZ2xvYmFsT2JqZWN0Q2xlYXJlZDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgdGhpcy5fZGVidWdnZXJNb2RlbC5fZ2xvYmFsT2JqZWN0Q2xlYXJlZCgpOworICAgIH0sCisK
ICAgICAvKioKICAgICAgKiBAcGFyYW0ge0RlYnVnZ2VyQWdlbnQuU2NyaXB0SWR9IHNjcmlwdElk
CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHNvdXJjZVVSTApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLmpzCmluZGV4IGI1MzQzNWU1MDZmYmQ0NGNlMmFiYmJjMDMwM2FmMWYxNzk0YmMzMjkuLmI0
MjU1OGUzY2E4NTRhM2YyM2FjNjMyOWYwMzBiZmZlOGJiY2MyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwuanMKQEAgLTQ3LDcgKzQ3LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9k
ZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuRmFp
bGVkVG9QYXJzZVNjcmlwdFNvdXJjZSwgdGhpcy5fZmFpbGVkVG9QYXJzZVNjcmlwdFNvdXJjZSwg
dGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuRGVidWdnZXJQYXVzZWQsIHRoaXMuX2Rl
YnVnZ2VyUGF1c2VkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5EZWJ1Z2dlclJl
c3VtZWQsIHRoaXMuX2RlYnVnZ2VyUmVzdW1lZCwgdGhpcyk7Ci0gICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5F
dmVudHMuUmVzZXQsIHRoaXMuX2RlYnVnZ2VyUmVzZXQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9k
ZWwuRXZlbnRzLkdsb2JhbE9iamVjdENsZWFyZWQsIHRoaXMuX2RlYnVnZ2VyUmVzZXQsIHRoaXMp
OwogCiAgICAgV2ViSW5zcGVjdG9yLmNvbnNvbGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuQ29uc29sZU1vZGVsLkV2ZW50cy5NZXNzYWdlQWRkZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdl
QWRkZWQsIHRoaXMpOwogICAgIFdlYkluc3BlY3Rvci5jb25zb2xlLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkNvbnNvbGVNb2RlbC5FdmVudHMuQ29uc29sZUNsZWFyZWQsIHRoaXMuX2Nv
bnNvbGVDbGVhcmVkLCB0aGlzKTsKQEAgLTY1LDYgKzY1LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzID0gewogICAgIEJyZWFrcG9pbnRSZW1vdmVkOiAi
YnJlYWtwb2ludC1yZW1vdmVkIiwKICAgICBEZWJ1Z2dlclBhdXNlZDogImRlYnVnZ2VyLXBhdXNl
ZCIsCiAgICAgRGVidWdnZXJSZXN1bWVkOiAiZGVidWdnZXItcmVzdW1lZCIsCisgICAgRGVidWdn
ZXJSZXNldDogImRlYnVnZ2VyLXJlc2V0IiwKICAgICBDYWxsRnJhbWVTZWxlY3RlZDogImNhbGwt
ZnJhbWUtc2VsZWN0ZWQiLAogICAgIENvbnNvbGVDb21tYW5kRXZhbHVhdGVkSW5TZWxlY3RlZENh
bGxGcmFtZTogImNvbnNvbGUtY29tbWFuZC1ldmFsdWF0ZWQtaW4tc2VsZWN0ZWQtY2FsbC1mcmFt
ZSIsCiAgICAgRXhlY3V0aW9uTGluZUNoYW5nZWQ6ICJleGVjdXRpb24tbGluZS1jaGFuZ2VkIgpA
QCAtNjU4LDYgKzY1OSw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uQ2FsbEZyYW1lcyA9IFtd
OwogICAgICAgICB0aGlzLl9zZWxlY3RlZENhbGxGcmFtZSA9IG51bGw7CiAgICAgICAgIHRoaXMu
X2JyZWFrcG9pbnRNYW5hZ2VyLmRlYnVnZ2VyUmVzZXQoKTsKKyAgICAgICAgdGhpcy5kaXNwYXRj
aEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
RXZlbnRzLkRlYnVnZ2VyUmVzZXQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwppbmRleCBkMTBhYjBh
YjBiOWQyYWMzYjA5MGZjNTM5M2IzMzIxMzA0MWQ4MmNhLi5lNGY4Y2EzZDc4MDEyOWQzZjYzMDBl
ODYxNWZlYjhmNDMyY2UxNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAtMTA1LDcgKzEwNSw3IEBAIFdlYklu
c3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9wb3N0
Tm90aWZpY2F0aW9uKCJpbnNwZWN0ZWRVUkxDaGFuZ2VkIiwgdXJsKTsKICAgICB9LAogCi0gICAg
bm90aWZ5SW5zcGVjdG9yUmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICBfbWFpbkZyYW1lTmF2aWdhdGVk
OiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAgIHRoaXMuX3Bvc3ROb3RpZmljYXRpb24o
InJlc2V0Iik7CiAgICAgfSwKQEAgLTU0OCw2ICs1NDgsNyBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5z
aW9uU2VydmVyLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VU
cmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwu
RXZlbnRUeXBlcy5JbnNwZWN0ZWRVUkxDaGFuZ2VkLAogICAgICAgICAgICAgdGhpcy5faW5zcGVj
dGVkVVJMQ2hhbmdlZCwgdGhpcyk7CisgICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVN
b2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVu
dFR5cGVzLk1haW5GcmFtZU5hdmlnYXRlZCwgdGhpcy5fbWFpbkZyYW1lTmF2aWdhdGVkLCB0aGlz
KTsKICAgICAgICAgSW5zcGVjdG9yRXh0ZW5zaW9uUmVnaXN0cnkuZ2V0RXh0ZW5zaW9uc0FzeW5j
KCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcwppbmRleCA4ZjY2NDNjY2M3
OTE5ZTZlOGI0ODZlOWJjOTAyNTBjZDU1MjM3NzEwLi4zN2ZiY2JhN2QzOGVjZmQxMTViYWY5ZWM4
ZjAzOTY4NTgwNGYwMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0phdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcwpAQCAtNjEsMTIg
KzYxLDEyIEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIucHJvdG90eXBl
ID0gewogCiAgICAgX2ZyYW1lRGV0YWNoZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAg
ICAgdmFyIGZyYW1lSWQgPSBldmVudC5kYXRhOwotICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMu
X2ZyYW1lSWRUb0NvbnRleHRbZnJhbWVJZF07CisgICAgICAgIHZhciBmcmFtZSA9IGV2ZW50LmRh
dGE7CisgICAgICAgIHZhciBjb250ZXh0ID0gdGhpcy5fZnJhbWVJZFRvQ29udGV4dFtmcmFtZS5p
ZF07CiAgICAgICAgIGlmICghY29udGV4dCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
dGhpcy5fY29uc29sZVZpZXcucmVtb3ZlQ29udGV4dChjb250ZXh0KTsKLSAgICAgICAgZGVsZXRl
IHRoaXMuX2ZyYW1lSWRUb0NvbnRleHRbZnJhbWVJZF07CisgICAgICAgIGRlbGV0ZSB0aGlzLl9m
cmFtZUlkVG9Db250ZXh0W2ZyYW1lLmlkXTsKICAgICB9LAogfQogCkBAIC05NSw3ICs5NSw3IEBA
IFdlYkluc3BlY3Rvci5GcmFtZUV2YWx1YXRpb25Db250ZXh0LnByb3RvdHlwZSA9CiAKICAgICBn
ZXQgZnJhbWVJZCgpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fZnJhbWUuaWQKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2ZyYW1lLmlkOwogICAgIH0sCiAKICAgICBnZXQgdXJsKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0xvZy5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya0xvZy5qcwppbmRleCA3
NDM4YTZlNTEzMDM1ZDA2ZWI5ZTA3YWJlNWMyMDNmNzI5YmVmM2IxLi43Mjg4MWU3ZTRkZmUxYmJi
ZDg0NDVmMDc2OWRhNmMwNzQ5M2M5YzY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtMb2cuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9OZXR3b3JrTG9nLmpzCkBAIC0zNSw3ICszNSw3IEBAIFdlYkluc3BlY3Rv
ci5OZXR3b3JrTG9nID0gZnVuY3Rpb24oKQogewogICAgIHRoaXMuX3Jlc291cmNlcyA9IFtdOwog
ICAgIFdlYkluc3BlY3Rvci5uZXR3b3JrTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5OZXR3b3JrTWFuYWdlci5FdmVudFR5cGVzLlJlc291cmNlU3RhcnRlZCwgdGhpcy5fb25S
ZXNvdXJjZVN0YXJ0ZWQsIHRoaXMpOwotICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2Rl
bC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5
cGVzLkZyYW1lTmF2aWdhdGVkLCB0aGlzLl9mcmFtZU5hdmlnYXRlZCwgdGhpcyk7CisgICAgV2Vi
SW5zcGVjdG9yLnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9y
LlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMuTWFpbkZyYW1lTmF2aWdhdGVkLCB0aGlzLl9t
YWluRnJhbWVOYXZpZ2F0ZWQsIHRoaXMpOwogfQogCiBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZy5w
cm90b3R5cGUgPSB7CkBAIC00NywxMCArNDcsOCBAQCBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZy5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZXM7CiAgICAgfSwKIAot
ICAgIF9mcmFtZU5hdmlnYXRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgX21haW5GcmFtZU5hdmln
YXRlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICBpZiAoIWV2ZW50LmRhdGEuaXNN
YWluRnJhbWUpCi0gICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8vIFByZXNlcnZlIHJlc291
cmNlcyBmcm9tIHRoZSBuZXcgc2Vzc2lvbi4KICAgICAgICAgdmFyIG9sZFJlc291cmNlcyA9IHRo
aXMuX3Jlc291cmNlcy5zcGxpY2UoMCwgdGhpcy5fcmVzb3VyY2VzLmxlbmd0aCk7CiAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgb2xkUmVzb3VyY2VzLmxlbmd0aDsgKytpKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCmluZGV4
IDU4ZDZhMDMyNWI5NzcwNTQxODA0MzM3NDAwYjQ4ZWFiMDhmMDhiMDUuLjI2ZWY0YTAyMGUxYWRl
M2QxYWRjMTRmOThjOWM5MTYwMzgxMGQ3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCkBAIC02MSw3ICs2MSw3IEBAIFdlYklu
c3BlY3Rvci5OZXR3b3JrTG9nVmlldyA9IGZ1bmN0aW9uKCkKICAgICBXZWJJbnNwZWN0b3IubmV0
d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuTmV0d29ya01hbmFnZXIu
RXZlbnRUeXBlcy5SZXNvdXJjZVVwZGF0ZWQsIHRoaXMuX29uUmVzb3VyY2VVcGRhdGVkLCB0aGlz
KTsKICAgICBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuTmV0d29ya01hbmFnZXIuRXZlbnRUeXBlcy5SZXNvdXJjZUZpbmlzaGVkLCB0aGlz
Ll9vblJlc291cmNlVXBkYXRlZCwgdGhpcyk7CiAKLSAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VU
cmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwu
RXZlbnRUeXBlcy5GcmFtZU5hdmlnYXRlZCwgdGhpcy5fZnJhbWVOYXZpZ2F0ZWQsIHRoaXMpOwor
ICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLk1haW5GcmFtZU5hdmlnYXRlZCwg
dGhpcy5fbWFpbkZyYW1lTmF2aWdhdGVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IucmVzb3Vy
Y2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9k
ZWwuRXZlbnRUeXBlcy5PbkxvYWQsIHRoaXMuX29uTG9hZEV2ZW50RmlyZWQsIHRoaXMpOwogICAg
IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkRPTUNvbnRlbnRMb2FkZWQsIHRoaXMu
X2RvbUNvbnRlbnRMb2FkZWRFdmVudEZpcmVkLCB0aGlzKTsKIApAQCAtNzk0LDExICs3OTQsOCBA
QCBXZWJJbnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
Ll9yZXNldCgpOwogICAgIH0sCiAKLSAgICBfZnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKGV2ZW50
KQorICAgIF9tYWluRnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAg
ICAgaWYgKCFldmVudC5kYXRhLmlzTWFpbkZyYW1lKQotICAgICAgICAgICAgcmV0dXJuOwotCiAg
ICAgICAgIHZhciBsb2FkZXJJZCA9IGV2ZW50LmRhdGEubG9hZGVySWQ7CiAgICAgICAgIC8vIE1h
aW4gZnJhbWUgY29tbWl0dGVkIGxvYWQuCiAgICAgICAgIGlmICh0aGlzLl9wcmVzZXJ2ZUxvZ1Rv
Z2dsZS50b2dnbGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9PYmplY3QuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVj
dC5qcwppbmRleCA3NGU0MTliNTk1MDM1ZDNlMjlmZWJmNmRmNDI3OTZlYzY4YzkyNjEyLi5lM2Rh
YjhlMWI5ZDg2OGI5MzhjN2U4ZDk0NDZlZTlmMGY1ZDExMGIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdC5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL09iamVjdC5qcwpAQCAtMzcsNiArMzcsOCBAQCBXZWJJbnNw
ZWN0b3IuT2JqZWN0LnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBhZGRFdmVudExpc3RlbmVy
OiBmdW5jdGlvbihldmVudFR5cGUsIGxpc3RlbmVyLCB0aGlzT2JqZWN0KQogICAgIHsKKyAgICAg
ICAgY29uc29sZS5hc3NlcnQobGlzdGVuZXIpOworCiAgICAgICAgIGlmICghdGhpcy5fbGlzdGVu
ZXJzKQogICAgICAgICAgICAgdGhpcy5fbGlzdGVuZXJzID0ge307CiAgICAgICAgIGlmICghdGhp
cy5fbGlzdGVuZXJzW2V2ZW50VHlwZV0pCkBAIC01MSw2ICs1Myw4IEBAIFdlYkluc3BlY3Rvci5P
YmplY3QucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHJlbW92ZUV2ZW50TGlzdGVuZXI6IGZ1
bmN0aW9uKGV2ZW50VHlwZSwgbGlzdGVuZXIsIHRoaXNPYmplY3QpCiAgICAgeworICAgICAgICBj
b25zb2xlLmFzc2VydChsaXN0ZW5lcik7CisKICAgICAgICAgaWYgKCF0aGlzLl9saXN0ZW5lcnMg
fHwgIXRoaXMuX2xpc3RlbmVyc1tldmVudFR5cGVdKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB2YXIgbGlzdGVuZXJzID0gdGhpcy5fbGlzdGVuZXJzW2V2ZW50VHlwZV07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVs
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNvdXJjZVRyZWVNb2Rl
bC5qcwppbmRleCAzOTdiMzA5YzlhOWYxMzE4MmI1OTdmMDVlMjk3YWQ2ZjZjZmQ0MTdmLi5jYTJh
Yzc4YWQwYTdlMzAyNDdhNTU0MWE3MjNjZDcwZDA1NjA4MDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jlc291cmNlVHJlZU1vZGVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2VUcmVlTW9kZWwuanMKQEAg
LTU0LDYgKzU0LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50VHlwZXMg
PSB7CiAgICAgRnJhbWVBZGRlZDogIkZyYW1lQWRkZWQiLAogICAgIEZyYW1lTmF2aWdhdGVkOiAi
RnJhbWVOYXZpZ2F0ZWQiLAogICAgIEZyYW1lRGV0YWNoZWQ6ICJGcmFtZURldGFjaGVkIiwKKyAg
ICBNYWluRnJhbWVOYXZpZ2F0ZWQ6ICJNYWluRnJhbWVOYXZpZ2F0ZWQiLAogICAgIFJlc291cmNl
QWRkZWQ6ICJSZXNvdXJjZUFkZGVkIiwKICAgICBXaWxsTG9hZENhY2hlZFJlc291cmNlczogIldp
bGxMb2FkQ2FjaGVkUmVzb3VyY2VzIiwKICAgICBDYWNoZWRSZXNvdXJjZXNMb2FkZWQ6ICJDYWNo
ZWRSZXNvdXJjZXNMb2FkZWQiLApAQCAtMTUxLDYgKzE1Miw4IEBAIFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAgICAgICAgLy8gRGlzcGF0
Y2ggZnJhbWUgbmF2aWdhdGVkIGV2ZW50IHRvIGNsaWVudHMgcHJpb3IgdG8gZmlsbGluZyBpdCB3
aXRoIHRoZSByZXNvdXJjZXMuCiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lTmF2aWdhdGVk
LCB7IGZyYW1lOiBmcmFtZSwgbG9hZGVySWQ6IGxvYWRlcklkLCBpc01haW5GcmFtZTogaXNNYWlu
RnJhbWUgfSk7CisgICAgICAgIGlmIChpc01haW5GcmFtZSkKKyAgICAgICAgICAgIHRoaXMuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVu
dFR5cGVzLk1haW5GcmFtZU5hdmlnYXRlZCwgeyBmcmFtZTogZnJhbWUsIGxvYWRlcklkOiBsb2Fk
ZXJJZCB9KTsKIAogICAgICAgICAvLyBGaWxsIGZyYW1lIHdpdGggcmV0YWluZWQgcmVzb3VyY2Vz
ICh0aGUgb25lcyBsb2FkZWQgdXNpbmcgbmV3IGxvYWRlcikuCiAgICAgICAgIHZhciByZXNvdXJj
ZXNGb3JGcmFtZSA9IHRoaXMuX3Jlc291cmNlc0J5RnJhbWVJZFtmcmFtZS5pZF07CkBAIC0xODYs
NyArMTg5LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9mcmFtZUlkc1tmcmFtZUlkXTsKICAgICAgICAgfQog
Ci0gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIGZyYW1lSWQpOworICAgICAg
ICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVl
TW9kZWwuRXZlbnRUeXBlcy5GcmFtZURldGFjaGVkLCBmcmFtZSk7CiAgICAgfSwKIAogICAgIF9v
blJlc291cmNlU3RhcnRlZDogZnVuY3Rpb24oZXZlbnQpCkBAIC0zMDksNyArMzEyLDcgQEAgV2Vi
SW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5f
Y2xlYXJSZXNvdXJjZXMoZnJhbWVJZCwgbG9hZGVyVG9QcmVzZXJ2ZUlkKTsKICAgICAgICAgdmFy
IHN1YmZyYW1lcyA9IHRoaXMuX3N1YmZyYW1lc1tmcmFtZUlkXTsKICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IHN1YmZyYW1lcyAmJiBpIDwgc3ViZnJhbWVzLmxlbmd0aDsgKysgaSkgewotICAgICAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZU1vZGVsLkV2ZW50VHlwZXMuRnJhbWVEZXRhY2hlZCwgc3ViZnJhbWVzW2ldLmlkKTsKKyAg
ICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SZXNv
dXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLkZyYW1lRGV0YWNoZWQsIHN1YmZyYW1lc1tpXSk7CiAg
ICAgICAgICAgICB0aGlzLl9jbGVhckNoaWxkRnJhbWVzQW5kUmVzb3VyY2VzKHN1YmZyYW1lc1tp
XS5pZCwgbG9hZGVyVG9QcmVzZXJ2ZUlkKTsKICAgICAgICAgfQogICAgICAgICBkZWxldGUgdGhp
cy5fc3ViZnJhbWVzW2ZyYW1lSWRdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9SZXNvdXJjZXNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUmVzb3VyY2VzUGFuZWwuanMKaW5kZXggNDg5MGUzNzg5MDVkYTc5ZDViYjVj
Njg2ZjQyNjE4NTMxOWM0Yzk2NC4uOTBkMDI3MTdlMjE2MTU4ZDY4ZTgzYjFlZDU1ZTk3NDJmMmMz
YTUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SZXNv
dXJjZXNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jl
c291cmNlc1BhbmVsLmpzCkBAIC0xNDIsNyArMTQyLDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNl
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuc2hvd1Jlc291cmNlKFdlYklu
c3BlY3Rvci5tYWluUmVzb3VyY2UpOwogICAgIH0sCiAKLSAgICByZXNldDogZnVuY3Rpb24oKQor
ICAgIF9yZXNldDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5yZXNvdXJjZXNMaXN0
VHJlZUVsZW1lbnQucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgdGhpcy5fdHJlZUVsZW1lbnRG
b3JGcmFtZUlkID0ge307CkBAIC0xODksNyArMTg5LDcgQEAgV2ViSW5zcGVjdG9yLlJlc291cmNl
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLnJlc291cmNlVHJlZU1v
ZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNlVHJlZU1vZGVsLkV2ZW50
VHlwZXMuRnJhbWVEZXRhY2hlZCwgdGhpcy5fZnJhbWVEZXRhY2hlZCwgdGhpcyk7CiAgICAgICAg
IFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLlJlc291cmNlQWRkZWQsIHRoaXMuX3Jl
c291cmNlQWRkZWQsIHRoaXMpOwogICAgICAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9k
ZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRU
eXBlcy5DYWNoZWRSZXNvdXJjZXNMb2FkZWQsIHRoaXMuX2NhY2hlZFJlc291cmNlc0xvYWRlZCwg
dGhpcyk7Ci0gICAgICAgIFdlYkluc3BlY3Rvci5yZXNvdXJjZVRyZWVNb2RlbC5hZGRFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5SZXNvdXJjZVRyZWVNb2RlbC5FdmVudFR5cGVzLldpbGxMb2Fk
Q2FjaGVkUmVzb3VyY2VzLCB0aGlzLnJlc2V0LCB0aGlzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9y
LnJlc291cmNlVHJlZU1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJlc291cmNl
VHJlZU1vZGVsLkV2ZW50VHlwZXMuV2lsbExvYWRDYWNoZWRSZXNvdXJjZXMsIHRoaXMuX3Jlc2V0
LCB0aGlzKTsKIAogICAgICAgICBmdW5jdGlvbiBwb3B1bGF0ZUZyYW1lKGZyYW1lSWQpCiAgICAg
ICAgIHsKQEAgLTIyNCwxMiArMjI0LDE3IEBAIFdlYkluc3BlY3Rvci5SZXNvdXJjZXNQYW5lbC5w
cm90b3R5cGUgPSB7CiAKICAgICBfZnJhbWVEZXRhY2hlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAg
ewotICAgICAgICB2YXIgZnJhbWVJZCA9IGV2ZW50LmRhdGE7Ci0gICAgICAgIHZhciBmcmFtZVRy
ZWVFbGVtZW50ID0gdGhpcy5fdHJlZUVsZW1lbnRGb3JGcmFtZUlkW2ZyYW1lSWRdOworICAgICAg
ICB2YXIgZnJhbWUgPSBldmVudC5kYXRhOworICAgICAgICBpZiAoIWZyYW1lLnBhcmVudElkKSB7
CisgICAgICAgICAgICAvLyBSZXNldCBvbiBtYWluIGZyYW1lIGRldGFjaAorICAgICAgICAgICAg
dGhpcy5fcmVzZXQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBmcmFtZVRyZWVFbGVtZW50
ID0gdGhpcy5fdHJlZUVsZW1lbnRGb3JGcmFtZUlkW2ZyYW1lLmlkXTsKICAgICAgICAgaWYgKCFm
cmFtZVRyZWVFbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGRlbGV0ZSB0
aGlzLl90cmVlRWxlbWVudEZvckZyYW1lSWRbZnJhbWVJZF07CisgICAgICAgIGRlbGV0ZSB0aGlz
Ll90cmVlRWxlbWVudEZvckZyYW1lSWRbZnJhbWUuaWRdOwogICAgICAgICBpZiAoZnJhbWVUcmVl
RWxlbWVudC5wYXJlbnQpCiAgICAgICAgICAgICBmcmFtZVRyZWVFbGVtZW50LnBhcmVudC5yZW1v
dmVDaGlsZChmcmFtZVRyZWVFbGVtZW50KTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCA0OWQ1MTFkOThhZjk5
MzM0OGY1ZTczZGZkMGFhZGFlZGY1ZWRiMTMzLi40ZjM2ZDg4NjdjZmUwNTVhOWY3NjQ5YjMwMDY1
ZmU1YTU0Mzk2YWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtMTY1LDcgKzE2NSw3IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwgPSBmdW5jdGlvbihwcmVzZW50YXRpb25Nb2RlbCkKIAogICAgIHRoaXMuX2RlYnVn
Z2VyRW5hYmxlZCA9IFByZWZlcmVuY2VzLmRlYnVnZ2VyQWx3YXlzRW5hYmxlZDsKIAotICAgIHRo
aXMucmVzZXQoKTsKKyAgICB0aGlzLl9yZXNldChmYWxzZSk7CiAKICAgICBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVs
LkV2ZW50cy5EZWJ1Z2dlcldhc0VuYWJsZWQsIHRoaXMuX2RlYnVnZ2VyV2FzRW5hYmxlZCwgdGhp
cyk7CiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuRGVidWdnZXJXYXNEaXNhYmxlZCwgdGhpcy5f
ZGVidWdnZXJXYXNEaXNhYmxlZCwgdGhpcyk7CkBAIC0xODIsNiArMTgyLDcgQEAgV2ViSW5zcGVj
dG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKHByZXNlbnRhdGlvbk1vZGVsKQogICAgIHRoaXMu
X3ByZXNlbnRhdGlvbk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLkNhbGxGcmFtZVNlbGVjdGVkLCB0aGlzLl9jYWxsRnJh
bWVTZWxlY3RlZCwgdGhpcyk7CiAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuQ29u
c29sZUNvbW1hbmRFdmFsdWF0ZWRJblNlbGVjdGVkQ2FsbEZyYW1lLCB0aGlzLl9jb25zb2xlQ29t
bWFuZEV2YWx1YXRlZEluU2VsZWN0ZWRDYWxsRnJhbWUsIHRoaXMpOwogICAgIHRoaXMuX3ByZXNl
bnRhdGlvbk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwuRXZlbnRzLkV4ZWN1dGlvbkxpbmVDaGFuZ2VkLCB0aGlzLl9leGVjdXRpb25M
aW5lQ2hhbmdlZCwgdGhpcyk7CisgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuRGVi
dWdnZXJSZXNldCwgdGhpcy5fcmVzZXQuYmluZCh0aGlzLCBmYWxzZSkpOwogICAgIAogICAgIHZh
ciBlbmFibGVEZWJ1Z2dlciA9IFByZWZlcmVuY2VzLmRlYnVnZ2VyQWx3YXlzRW5hYmxlZCB8fCBX
ZWJJbnNwZWN0b3Iuc2V0dGluZ3MuZGVidWdnZXJFbmFibGVkLmdldCgpOwogICAgIGlmIChlbmFi
bGVEZWJ1Z2dlcikKQEAgLTUyNiw3ICs1MjcsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB0aGlzLl9kZWJ1
Z2dlckVuYWJsZWQgPSB0cnVlOwotICAgICAgICB0aGlzLnJlc2V0KHRydWUpOworICAgICAgICB0
aGlzLl9yZXNldCh0cnVlKTsKICAgICB9LAogCiAgICAgX2RlYnVnZ2VyV2FzRGlzYWJsZWQ6IGZ1
bmN0aW9uKCkKQEAgLTUzNSwxMCArNTM2LDEwIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIHRoaXMuX2RlYnVn
Z2VyRW5hYmxlZCA9IGZhbHNlOwotICAgICAgICB0aGlzLnJlc2V0KHRydWUpOworICAgICAgICB0
aGlzLl9yZXNldCh0cnVlKTsKICAgICB9LAogCi0gICAgcmVzZXQ6IGZ1bmN0aW9uKHByZXNlcnZl
SXRlbXMpCisgICAgX3Jlc2V0OiBmdW5jdGlvbihwcmVzZXJ2ZUl0ZW1zKQogICAgIHsKICAgICAg
ICAgdGhpcy52aXNpYmxlVmlldyA9IG51bGw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdlci5qcwppbmRleCA2MWVjNjQ0NGZmMThhOWUz
ZDFmNmEyMGIxNzRjMDhiNzE3NDZhMGI0Li4wNTYyMTEyYTFhNzJlYjdhOWRhYjQzZjk3MTk1ZmQ0
OWEwNGVlOWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1dvcmtlck1hbmFnZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Xb3JrZXJNYW5hZ2VyLmpzCkBAIC02Nyw2ICs2Nyw4IEBAIFdlYkluc3BlY3Rvci5Xb3JrZXJN
YW5hZ2VyLmxvYWRDb21wbGV0ZWQgPSBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBXZWJJbnNw
ZWN0b3IuV29ya2VyTWFuYWdlci5fY2FsY3VsYXRlV29ya2VySW5zcGVjdG9yVGl0bGUoKTsKICAg
ICB9CisKKyAgICBXZWJJbnNwZWN0b3IucmVzb3VyY2VUcmVlTW9kZWwuYWRkRXZlbnRMaXN0ZW5l
cihXZWJJbnNwZWN0b3IuUmVzb3VyY2VUcmVlTW9kZWwuRXZlbnRUeXBlcy5NYWluRnJhbWVOYXZp
Z2F0ZWQsIFdlYkluc3BlY3Rvci53b3JrZXJNYW5hZ2VyLl9tYWluRnJhbWVOYXZpZ2F0ZWQsIFdl
Ykluc3BlY3Rvci53b3JrZXJNYW5hZ2VyKTsKIH0KIAogV2ViSW5zcGVjdG9yLldvcmtlck1hbmFn
ZXIuX2luaXRpYWxpemVEZWRpY2F0ZWRXb3JrZXJGcm9udGVuZCA9IGZ1bmN0aW9uKHdvcmtlcklk
KQpAQCAtMTc5LDcgKzE4MSw3IEBAIFdlYkluc3BlY3Rvci5Xb3JrZXJNYW5hZ2VyLnByb3RvdHlw
ZSA9IHsKICAgICAgICAgICAgIHdvcmtlckluc3BlY3RvcldpbmRvdy5jbG9zZSgpOwogICAgIH0s
CiAKLSAgICByZXNldDogZnVuY3Rpb24oKQorICAgIF9tYWluRnJhbWVOYXZpZ2F0ZWQ6IGZ1bmN0
aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgZm9yICh2YXIgd29ya2VySWQgaW4gdGhpcy5fd29y
a2VySWRUb1dpbmRvdykKICAgICAgICAgICAgIHRoaXMuY2xvc2VXb3JrZXJJbnNwZWN0b3Iod29y
a2VySWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcwppbmRleCAzMmU0ZGNmZWRlZDMwNmYxZWVhYjNmMzM1YjUzYTcyNGIyNjhjYzk4Li41Nzhj
Nzk4MjMxZjEwZjRlNmMzN2FlNmI3ZTA0M2IzNzgzZGE0MGNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAtNjcxLDI0ICs2NzEsNiBA
QCBXZWJJbnNwZWN0b3Iuc3RhcnRVc2VySW5pdGlhdGVkRGVidWdnaW5nID0gZnVuY3Rpb24oKQog
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmVuYWJsZURlYnVnZ2VyKCk7CiB9CiAKLVdl
Ykluc3BlY3Rvci5yZXNldCA9IGZ1bmN0aW9uKCkKLXsKLSAgICB0aGlzLmRlYnVnZ2VyTW9kZWwu
cmVzZXQoKTsKLSAgICBmb3IgKHZhciBwYW5lbE5hbWUgaW4gdGhpcy5wYW5lbHMpIHsKLSAgICAg
ICAgdmFyIHBhbmVsID0gdGhpcy5wYW5lbHNbcGFuZWxOYW1lXTsKLSAgICAgICAgaWYgKCJyZXNl
dCIgaW4gcGFuZWwpCi0gICAgICAgICAgICBwYW5lbC5yZXNldCgpOwotICAgIH0KLQotICAgIHRo
aXMuZG9tQWdlbnQuaGlkZURPTU5vZGVIaWdobGlnaHQoKTsKLQotICAgIGlmICghV2ViSW5zcGVj
dG9yLnNldHRpbmdzLnByZXNlcnZlQ29uc29sZUxvZy5nZXQoKSkKLSAgICAgICAgdGhpcy5jb25z
b2xlLmNsZWFyTWVzc2FnZXMoKTsKLSAgICB0aGlzLmV4dGVuc2lvblNlcnZlci5ub3RpZnlJbnNw
ZWN0b3JSZXNldCgpOwotICAgIGlmICh0aGlzLndvcmtlck1hbmFnZXIpCi0gICAgICAgIHRoaXMu
d29ya2VyTWFuYWdlci5yZXNldCgpOwotfQotCiBXZWJJbnNwZWN0b3IuYnJpbmdUb0Zyb250ID0g
ZnVuY3Rpb24oKQogewogICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5icmluZ1RvRnJvbnQoKTsK
</data>
<flag name="review"
          id="114817"
          type_id="1"
          status="+"
          setter="yurys"
    />
    <flag name="commit-queue"
          id="114826"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>