<?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>65612</bug_id>
          
          <creation_ts>2011-08-03 05:31:58 -0700</creation_ts>
          <short_desc>Web Inspector: draft implementation of source mapping listeners.</short_desc>
          <delta_ts>2011-08-08 08:51:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</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>445820</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-03 05:31:58 -0700</bug_when>
    <thetext>Web Inspector: draft implementation of source mapping listeners.

Refactor anchors creation: move anchor updating code to ScriptsPanel since we have model.addSourceMappingListener now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445821</commentid>
    <comment_count>1</comment_count>
      <attachid>102768</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-03 05:32:57 -0700</bug_when>
    <thetext>Created attachment 102768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445833</commentid>
    <comment_count>2</comment_count>
      <attachid>102768</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-03 05:56:18 -0700</bug_when>
    <thetext>Comment on attachment 102768
Patch

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

New failing tests:
http/tests/inspector-enabled/console-clear-arguments-on-frame-remove.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445860</commentid>
    <comment_count>3</comment_count>
      <attachid>102783</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-03 07:19:05 -0700</bug_when>
    <thetext>Created attachment 102783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446421</commentid>
    <comment_count>4</comment_count>
      <attachid>102783</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-04 03:08:39 -0700</bug_when>
    <thetext>Comment on attachment 102783
Patch

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

&gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:125
&gt; +        this._sourceMappingListeners.push(listener);

Nit: You could do addEventListener(sourceId, listener) followed by a dispatchEvent(this.sourceId)...

&gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:572
&gt; +            model.addSourceMappingListener(url, null, formatAnchor);

Could we test anchor update?

&gt; Source/WebCore/inspector/front-end/inspector.js:1323
&gt; +WebInspector._linkifyLocation = function(url, oneBasedLineNumber, oneBasedColumnNumber, classes, tooltipText, preferredPanel)

Call sites should probably do WebInspector.debuggerPresentationModel.linkifyLocation(location), where location is raw &apos;script&apos; location.

&gt; Source/WebCore/inspector/front-end/inspector.js:1325
&gt; +    if (preferredPanel === &quot;scripts&quot; &amp;&amp; !WebInspector.debuggerModel.scriptsForURL(url).length)

Either this code or WebInspector._showAnchorLocation should fall back to &quot;resources&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446453</commentid>
    <comment_count>5</comment_count>
      <attachid>102902</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-04 06:04:02 -0700</bug_when>
    <thetext>Created attachment 102902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446457</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-04 06:11:21 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 102783 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102783&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:125
&gt; &gt; +        this._sourceMappingListeners.push(listener);
&gt; 
&gt; Nit: You could do addEventListener(sourceId, listener) followed by a dispatchEvent(this.sourceId)...

Unfortunately, sourceId isn&apos;t a good id since there may be several scripts linked to one RawSourceCode instance.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:572
&gt; &gt; +            model.addSourceMappingListener(url, null, formatAnchor);
&gt; 
&gt; Could we test anchor update?

It is tested by testConsoleMessagesForFormattedScripts in script-formatter.html.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/inspector.js:1323
&gt; &gt; +WebInspector._linkifyLocation = function(url, oneBasedLineNumber, oneBasedColumnNumber, classes, tooltipText, preferredPanel)
&gt; 
&gt; Call sites should probably do WebInspector.debuggerPresentationModel.linkifyLocation(location), where location is raw &apos;script&apos; location.

Done.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/inspector.js:1325
&gt; &gt; +    if (preferredPanel === &quot;scripts&quot; &amp;&amp; !WebInspector.debuggerModel.scriptsForURL(url).length)
&gt; 
&gt; Either this code or WebInspector._showAnchorLocation should fall back to &quot;resources&quot;.

Not all anchors are created by linkifyResourceAsNode, some of them don&apos;t have preferred_panel attribute. Code in WebInspector._showAnchorLocation is needed for such anchors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446458</commentid>
    <comment_count>7</comment_count>
      <attachid>102902</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-04 06:27:30 -0700</bug_when>
    <thetext>Comment on attachment 102902
Patch

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

New failing tests:
http/tests/inspector/console-resource-errors.html
http/tests/inspector/console-xhr-logging.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446467</commentid>
    <comment_count>8</comment_count>
      <attachid>102905</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-04 06:46:58 -0700</bug_when>
    <thetext>Created attachment 102905
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446480</commentid>
    <comment_count>9</comment_count>
      <attachid>102909</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-04 07:07:31 -0700</bug_when>
    <thetext>Created attachment 102909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446481</commentid>
    <comment_count>10</comment_count>
      <attachid>102910</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-04 07:08:30 -0700</bug_when>
    <thetext>Created attachment 102910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447223</commentid>
    <comment_count>11</comment_count>
      <attachid>102910</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-05 08:47:35 -0700</bug_when>
    <thetext>Comment on attachment 102910
Patch

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

&gt; Source/WebCore/inspector/front-end/EventListenersSidebarPane.js:240
&gt; +            var url = this.eventListener.location.scriptId;

Please add yet another FIXME on the location structure + use of column.

&gt; Source/WebCore/inspector/front-end/ProfileDataGridTree.js:101
&gt; +            var urlElement = WebInspector.debuggerPresentationModel.linkifyLocation(this.profileNode.url, lineNumber, 0, &quot;profile-node-file&quot;);

Do you know what url is?

&gt; Source/WebCore/inspector/front-end/TimelinePanel.js:1128
&gt; +                    return this._linkifyLocation(this.stackTrace[0].url, this.stackTrace[0].lineNumber, this.stackTrace[0].columnNumber);

Extract method receiving ConsoleCallFrame</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>448022</commentid>
    <comment_count>12</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-08 08:51:03 -0700</bug_when>
    <thetext>Committed r92598: &lt;http://trac.webkit.org/changeset/92598&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102768</attachid>
            <date>2011-08-03 05:32:57 -0700</date>
            <delta_ts>2011-08-03 07:18:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65612-20110803163255.patch</filename>
            <type>text/plain</type>
            <size>13390</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIxOTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZGI3OTZkOWMyNzY3ZDA0
MDFkZmM4ZDUyOWExZTU0NTAzNDRhNDZhLi42NDI5ZmFkYTc2MzhhOTkwM2E4Mzg4NWJmOGI3NWJi
MjliMDFkMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMDgtMDMgIFBhdmVs
IFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogZHJhZnQgaW1wbGVtZW50YXRpb24gb2Ygc291cmNlIG1hcHBpbmcgbGlzdGVuZXJzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MTIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMgLSBpdCBpcyByZWZhY3RvcmluZywgbW9kaWZpZWQgY29kZSBjb3ZlcmVkIGJ5IHNjcmlwdC1m
b3JtYXR0ZXIuaHRtbCB0ZXN0LgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwucHJvdG90eXBlLmFkZFNvdXJjZU1hcHBpbmdMaXN0ZW5lcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUucmVtb3Zl
U291cmNlTWFwcGluZ0xpc3RlbmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5zZXRGb3JtYXRTb3VyY2VGaWxlcyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2FkZENv
bnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5jb250aW51ZVRvTGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3NldEJyZWFrcG9pbnRJbkRlYnVn
Z2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnBy
b3RvdHlwZS5fYnJlYWtwb2ludEFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fZGVidWdnZXJSZXNldCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25DYWxsRnJhbWUucHJvdG90eXBlLnNvdXJjZUxpbmUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2ZvbGRlckFuZERpc3BsYXlOYW1l
Rm9yU2NyaXB0VVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlLmNyZWF0ZUFuY2hvci5mb3JtYXRBbmNob3IuZGlkR2V0TG9jYXRpb24pOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuY3JlYXRlQW5jaG9yLmZvcm1hdEFu
Y2hvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5jcmVh
dGVBbmNob3IpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLl9zaG93U2V0dGluZ3NTY3JlZW4pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZSk6CisKIDIwMTEtMDctMzAgIFBhdmVsIFBv
ZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogbWVyZ2UgRm9ybWF0dGVkU291cmNlRmlsZSBpbnRvIFNvdXJjZUZpbGUuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuanMKaW5kZXggMzMwYTQ1NDZmMDA0OGE4ODdkODQ2ZGIwNzIwNDcwMjVk
OTI4MDRhNS4uZWEwY2IxYjU1N2NjNWFhZGExMmJiYTY2NWNiM2VmZmU1MDgzZTVlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtMzQsNyArMzQsOCBAQCBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9mb3JtYXR0
ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlcigpOwogICAgIHRoaXMuX3NvdXJj
ZUZpbGVzID0ge307CiAgICAgdGhpcy5fbWVzc2FnZXMgPSBbXTsKLSAgICB0aGlzLl9hbmNob3Jz
ID0gW107CisgICAgLy8gRklYTUU6IG1vdmUgdGhpcyB0byBSYXdTb3VyY2VDb2RlIHdoZW4gaXQn
cyBub3QgcmUtY3JlYXRlZCBpbiBwcmV0dHktcHJpbnQgbW9kZS4KKyAgICB0aGlzLl9zb3VyY2VN
YXBwaW5nTGlzdGVuZXJzID0gW107CiAgICAgdGhpcy5fYnJlYWtwb2ludHNCeURlYnVnZ2VySWQg
PSB7fTsKICAgICB0aGlzLl9icmVha3BvaW50c1dpdGhvdXRTb3VyY2VGaWxlID0ge307CiAKQEAg
LTg2LDcgKzg3LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlRmlsZXNbdGhpcy5fY3JlYXRl
U291cmNlRmlsZUlkKHNjcmlwdFVSTCldOwogICAgIH0sCiAKLSAgICBfc2NyaXB0TG9jYXRpb25U
b1VJTG9jYXRpb246IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc291cmNlSWQsIGxpbmVOdW1iZXIsIGNv
bHVtbk51bWJlciwgY2FsbGJhY2spCisgICAgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb246IGZ1bmN0
aW9uKHNvdXJjZVVSTCwgc291cmNlSWQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY2FsbGJh
Y2spCiAgICAgewogICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVGb3JT
Y3JpcHQoc291cmNlVVJMLCBzb3VyY2VJZCk7CiAKQEAgLTEwMCw3ICsxMDEsNyBAQCBXZWJJbnNw
ZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHNv
dXJjZUZpbGUuY3JlYXRlU291cmNlTWFwcGluZ0lmTmVlZGVkKGRpZENyZWF0ZVNvdXJjZU1hcHBp
bmcpOwogICAgIH0sCiAKLSAgICBfdWlMb2NhdGlvblRvU2NyaXB0TG9jYXRpb246IGZ1bmN0aW9u
KHNvdXJjZUZpbGVJZCwgbGluZU51bWJlciwgY2FsbGJhY2spCisgICAgdWlMb2NhdGlvblRvUmF3
TG9jYXRpb246IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51bWJlciwgY2FsbGJhY2spCiAg
ICAgewogICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVzW3NvdXJjZUZp
bGVJZF07CiAKQEAgLTExOSwyMCArMTIwLDE0IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fc291cmNlRmlsZXNbc291
cmNlRmlsZUlkXS5yZXF1ZXN0Q29udGVudChjYWxsYmFjayk7CiAgICAgfSwKIAotICAgIHJlZ2lz
dGVyQW5jaG9yOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNvdXJjZUlkLCBsaW5lTnVtYmVyLCBjb2x1
bW5OdW1iZXIsIHVwZGF0ZUhhbmRsZXIpCisgICAgYWRkU291cmNlTWFwcGluZ0xpc3RlbmVyOiBm
dW5jdGlvbihzb3VyY2VVUkwsIHNvdXJjZUlkLCBsaXN0ZW5lcikKICAgICB7Ci0gICAgICAgIHZh
ciBhbmNob3IgPSB7IHNvdXJjZVVSTDogc291cmNlVVJMLCBzb3VyY2VJZDogc291cmNlSWQsIGxp
bmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyLCB1cGRhdGVI
YW5kbGVyOiB1cGRhdGVIYW5kbGVyIH07Ci0gICAgICAgIHRoaXMuX2FuY2hvcnMucHVzaChhbmNo
b3IpOwotICAgICAgICB0aGlzLl91cGRhdGVBbmNob3IoYW5jaG9yKTsKKyAgICAgICAgdGhpcy5f
c291cmNlTWFwcGluZ0xpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTsKICAgICB9LAogCi0gICAgX3Vw
ZGF0ZUFuY2hvcjogZnVuY3Rpb24oYW5jaG9yKQorICAgIHJlbW92ZVNvdXJjZU1hcHBpbmdMaXN0
ZW5lcjogZnVuY3Rpb24oc291cmNlVVJMLCBzb3VyY2VJZCwgbGlzdGVuZXIpCiAgICAgewotICAg
ICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVGb3JTY3JpcHQoYW5jaG9yLnNv
dXJjZVVSTCwgYW5jaG9yLnNvdXJjZUlkKTsKLSAgICAgICAgaWYgKCFzb3VyY2VGaWxlKQotICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3NjcmlwdExvY2F0aW9uVG9VSUxvY2F0
aW9uKGFuY2hvci5zb3VyY2VVUkwsIGFuY2hvci5zb3VyY2VJZCwgYW5jaG9yLmxpbmVOdW1iZXIs
IGFuY2hvci5jb2x1bW5OdW1iZXIsIGFuY2hvci51cGRhdGVIYW5kbGVyKTsKKyAgICAgICAgLy8g
RklYTUU6IGltcGxlbWVudCB0aGlzLgogICAgIH0sCiAKICAgICBfcGFyc2VkU2NyaXB0U291cmNl
OiBmdW5jdGlvbihldmVudCkKQEAgLTI4MSw4ICsyNzYsOSBAQCBXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICB0aGlzLl9hZGRDb25zb2xl
TWVzc2FnZShtZXNzYWdlc1tpXSk7CiAKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlz
Ll9hbmNob3JzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdGhpcy5fdXBkYXRlQW5jaG9yKHRo
aXMuX2FuY2hvcnNbaV0pOworICAgICAgICAvLyBGSVhNRTogbW92ZSB0aGlzIHRvIFJhd1NvdXJj
ZUNvZGUuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc291cmNlTWFwcGluZ0xp
c3RlbmVycy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMuX3NvdXJjZU1hcHBpbmdMaXN0
ZW5lcnNbaV0oKTsKIAogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY2Fs
bEZyYW1lcykKICAgICAgICAgICAgIHRoaXMuX2RlYnVnZ2VyUGF1c2VkKCk7CkBAIC0zMTUsNyAr
MzExLDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAgICAvLyBGSVhNRSg2MjcyNSk6IHN0YWNrIHRyYWNlIGxpbmUvY29sdW1uIG51
bWJlcnMgYXJlIG9uZS1iYXNlZC4KICAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSBtZXNzYWdlLnN0
YWNrVHJhY2UgPyBtZXNzYWdlLnN0YWNrVHJhY2VbMF0ubGluZU51bWJlciAtIDEgOiBtZXNzYWdl
LmxpbmUgLSAxOwogICAgICAgICB2YXIgY29sdW1uTnVtYmVyID0gbWVzc2FnZS5zdGFja1RyYWNl
ID8gbWVzc2FnZS5zdGFja1RyYWNlWzBdLmNvbHVtbk51bWJlciAtIDEgOiAwOwotICAgICAgICB0
aGlzLl9zY3JpcHRMb2NhdGlvblRvVUlMb2NhdGlvbihtZXNzYWdlLnVybCwgbnVsbCwgbGluZU51
bWJlciwgY29sdW1uTnVtYmVyLCBkaWRHZXRVSUxvY2F0aW9uLmJpbmQodGhpcykpOworICAgICAg
ICB0aGlzLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKG1lc3NhZ2UudXJsLCBudWxsLCBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXIsIGRpZEdldFVJTG9jYXRpb24uYmluZCh0aGlzKSk7CiAgICAgfSwK
IAogICAgIF9jb25zb2xlQ2xlYXJlZDogZnVuY3Rpb24oKQpAQCAtMzMyLDcgKzMyOCw3IEBAIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY29udGludWVUb0xv
Y2F0aW9uKGxvY2F0aW9uKTsKICAgICAgICAgfQotICAgICAgICB0aGlzLl91aUxvY2F0aW9uVG9T
Y3JpcHRMb2NhdGlvbihzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIsIGRpZEdldFNjcmlwdExvY2F0
aW9uKTsKKyAgICAgICAgdGhpcy51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbihzb3VyY2VGaWxlSWQs
IGxpbmVOdW1iZXIsIGRpZEdldFNjcmlwdExvY2F0aW9uKTsKICAgICB9LAogCiAgICAgYnJlYWtw
b2ludHNGb3JTb3VyY2VGaWxlSWQ6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCkKQEAgLTM5MSw3ICsz
ODcsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtw
b2ludEJ5U291cmNlSWQobG9jYXRpb24sIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBkaWRTZXRCcmVh
a3BvaW50LmJpbmQodGhpcykpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHRo
aXMuX3VpTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uKGJyZWFrcG9pbnQuc291cmNlRmlsZS5pZCwg
YnJlYWtwb2ludC5saW5lTnVtYmVyLCBkaWRHZXRTY3JpcHRMb2NhdGlvbi5iaW5kKHRoaXMpKTsK
KyAgICAgICAgdGhpcy51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbihicmVha3BvaW50LnNvdXJjZUZp
bGUuaWQsIGJyZWFrcG9pbnQubGluZU51bWJlciwgZGlkR2V0U2NyaXB0TG9jYXRpb24uYmluZCh0
aGlzKSk7CiAgICAgfSwKIAogICAgIF9yZW1vdmVCcmVha3BvaW50RnJvbURlYnVnZ2VyOiBmdW5j
dGlvbihicmVha3BvaW50LCBjYWxsYmFjaykKQEAgLTQ5MSw3ICs0ODcsNyBAQCBXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAg
ICAgICAgLy8gUmVmaW5lIGxpbmUgbnVtYmVyIGJhc2VkIG9uIHJlc29sdmVkIGxvY2F0aW9uLgog
ICAgICAgICBpZiAoYnJlYWtwb2ludC5sb2NhdGlvbikKLSAgICAgICAgICAgIHRoaXMuX3Njcmlw
dExvY2F0aW9uVG9VSUxvY2F0aW9uKG51bGwsIGJyZWFrcG9pbnQubG9jYXRpb24uc291cmNlSWQs
IGJyZWFrcG9pbnQubG9jYXRpb24ubGluZU51bWJlciwgYnJlYWtwb2ludC5sb2NhdGlvbi5jb2x1
bW5OdW1iZXIsIGRpZEdldFVJTG9jYXRpb24uYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlz
LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKG51bGwsIGJyZWFrcG9pbnQubG9jYXRpb24uc291cmNl
SWQsIGJyZWFrcG9pbnQubG9jYXRpb24ubGluZU51bWJlciwgYnJlYWtwb2ludC5sb2NhdGlvbi5j
b2x1bW5OdW1iZXIsIGRpZEdldFVJTG9jYXRpb24uYmluZCh0aGlzKSk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHVwZGF0ZVNvdXJjZUZpbGVCcmVha3BvaW50c0FuZERpc3BhdGNoRXZlbnQu
Y2FsbCh0aGlzKTsKICAgICB9LApAQCAtNjU4LDcgKzY1NCw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICBfZGVidWdnZXJSZXNldDog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVzZXQoKTsKLSAgICAgICAgdGhpcy5f
YW5jaG9ycyA9IFtdOworICAgICAgICB0aGlzLl9zb3VyY2VNYXBwaW5nTGlzdGVuZXJzID0gW107
CiAgICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbkNhbGxGcmFtZXMgPSBbXTsKICAgICAgICAgdGhp
cy5fc2VsZWN0ZWRDYWxsRnJhbWVJbmRleCA9IDA7CiAgICAgfQpAQCAtNzgxLDcgKzc3Nyw3IEBA
IFdlYkluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgewog
ICAgICAgICB2YXIgbG9jYXRpb24gPSB0aGlzLl9jYWxsRnJhbWUubG9jYXRpb247CiAgICAgICAg
IGlmICghdGhpcy5pc0ludGVybmFsU2NyaXB0KQotICAgICAgICAgICAgdGhpcy5fbW9kZWwuX3Nj
cmlwdExvY2F0aW9uVG9VSUxvY2F0aW9uKG51bGwsIGxvY2F0aW9uLnNvdXJjZUlkLCBsb2NhdGlv
bi5saW5lTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGNhbGxiYWNrKTsKKyAgICAgICAg
ICAgIHRoaXMuX21vZGVsLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKG51bGwsIGxvY2F0aW9uLnNv
dXJjZUlkLCBsb2NhdGlvbi5saW5lTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGNhbGxi
YWNrKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY2FsbGJhY2sodW5kZWZpbmVkLCBsb2Nh
dGlvbi5saW5lTnVtYmVyKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9QYW5lbC5qcwppbmRleCBmY2RlZDFiZGJjNzU4ZjFjZTQ5ZGZlYjY0NjYxMGI0OTdiN2Mw
YzlkLi43OWYwYzJjODllZjc1ODJhZTViYTA5NTIyNmYxOGI4YWRmM2UxYThlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKQEAgLTM5OSw3ICszOTksNiBA
QCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGxp
bmtUZXh0ID0gdGhpcy5mb3JtYXRBbmNob3JUZXh0KHVybCwgbGluZU51bWJlcik7CiAgICAgICAg
IHZhciBhbmNob3IgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSh1cmwsIGxpbmtUZXh0
LCBjbGFzc2VzLCBmYWxzZSwgdG9vbHRpcFRleHQpOwotICAgICAgICBhbmNob3Iuc2V0QXR0cmli
dXRlKCJwcmVmZXJyZWRfcGFuZWwiLCAicmVzb3VyY2VzIik7CiAgICAgICAgIGlmIChsaW5lTnVt
YmVyICE9PSB1bmRlZmluZWQpCiAgICAgICAgICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJsaW5l
X251bWJlciIsIGxpbmVOdW1iZXIpOwogICAgICAgICByZXR1cm4gYW5jaG9yOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCA5
Y2ZlNGVhMzVjODJkYzNhNjgyNDE0ZmMwZGEwYWJkOGZjMmMyZWM4Li5mYWEyMDU5MmI5MmQ4OTli
NTM1YjQ4ZWQ2NTMzMTdjOTIxOTViNmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtMzI0LDcgKzMyNCw3IEBAIFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIGlmIChmb2xkZXJO
YW1lLmxlbmd0aCA+IDgwKQogICAgICAgICAgICAgZm9sZGVyTmFtZSA9ICJcdTIwMjYiICsgZm9s
ZGVyTmFtZS5zdWJzdHJpbmcoZm9sZGVyTmFtZS5sZW5ndGggLSA4MCk7Ci0gCisKICAgICAgICAg
cmV0dXJuIHsgZm9sZGVyTmFtZTogZm9sZGVyTmFtZSwgZGlzcGxheU5hbWU6IGRpc3BsYXlOYW1l
fTsKICAgICB9LAogCkBAIC01NTAsOCArNTUwLDI3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogICAgIGNyZWF0ZUFuY2hvcjogZnVuY3Rpb24odXJsLCBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXIsIGNsYXNzZXMsIHRvb2x0aXBUZXh0KQogICAgIHsKICAgICAgICAg
dmFyIGFuY2hvciA9IFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuY3JlYXRlQW5jaG9yLmNh
bGwodGhpcywgdXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNsYXNzZXMsIHRvb2x0aXBU
ZXh0KTsKLSAgICAgICAgaWYgKGxpbmVOdW1iZXIgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAg
IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnJlZ2lzdGVyQW5jaG9yKHVybCwgbnVsbCwgbGluZU51
bWJlciwgY29sdW1uTnVtYmVyLCB0aGlzLl91cGRhdGVBbmNob3IuYmluZCh0aGlzLCBhbmNob3Ip
KTsKKyAgICAgICAgdmFyIG1vZGVsID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWw7CisgICAgICAg
IHZhciBmb3JtYXRUZXh0ID0gdGhpcy5mb3JtYXRBbmNob3JUZXh0LmJpbmQodGhpcyk7CisKKyAg
ICAgICAgZnVuY3Rpb24gZm9ybWF0QW5jaG9yKCkKKyAgICAgICAgeworICAgICAgICAgICAgZnVu
Y3Rpb24gZGlkR2V0TG9jYXRpb24oc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIHZhciBzb3VyY2VGaWxlID0gbW9kZWwuc291cmNlRmlsZShz
b3VyY2VGaWxlSWQpOworICAgICAgICAgICAgICAgIHZhciB1cmwgPSBzb3VyY2VGaWxlLnVybCB8
fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFtKSIpOworICAgICAgICAgICAgICAgIGFu
Y2hvci50ZXh0Q29udGVudCA9IGZvcm1hdFRleHQodXJsLCBsaW5lTnVtYmVyKTsKKyAgICAgICAg
ICAgICAgICAvLyBVc2VkIGZvciBzaG93aW5nIGFuY2hvciBsb2NhdGlvbi4KKyAgICAgICAgICAg
ICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJzb3VyY2VfZmlsZV9pZCIsIHNvdXJjZUZpbGVJZCk7
CisgICAgICAgICAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgibGluZV9udW1iZXIiLCBsaW5l
TnVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1vZGVsLnJhd0xvY2F0aW9uVG9V
SUxvY2F0aW9uKHVybCwgbnVsbCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBkaWRHZXRMb2Nh
dGlvbik7CisgICAgICAgIH0KKworICAgICAgICBpZiAobGluZU51bWJlciAhPT0gdW5kZWZpbmVk
KSB7CisgICAgICAgICAgICBmb3JtYXRBbmNob3IoKTsKKyAgICAgICAgICAgIG1vZGVsLmFkZFNv
dXJjZU1hcHBpbmdMaXN0ZW5lcih1cmwsIG51bGwsIGZvcm1hdEFuY2hvcik7CisgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIGFuY2hvcjsKICAgICB9LAogCkBAIC01NjUsMTcgKzU4NCw2IEBAIFdl
Ykluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9zaG93
U291cmNlTGluZShhbmNob3IuZ2V0QXR0cmlidXRlKCJzb3VyY2VfZmlsZV9pZCIpLCBwYXJzZUlu
dChhbmNob3IuZ2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIpKSk7CiAgICAgfSwKIAotICAgIF91
cGRhdGVBbmNob3I6IGZ1bmN0aW9uKGFuY2hvciwgc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKQot
ICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5z
b3VyY2VGaWxlKHNvdXJjZUZpbGVJZCk7Ci0gICAgICAgIHZhciB1cmwgPSBzb3VyY2VGaWxlLnVy
bCB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFtKSIpOwotICAgICAgICBhbmNob3Iu
dGV4dENvbnRlbnQgPSB0aGlzLmZvcm1hdEFuY2hvclRleHQodXJsLCBsaW5lTnVtYmVyKQotICAg
ICAgICAvLyBVc2VkIGZvciBzaG93aW5nIGFuY2hvciBsb2NhdGlvbi4KLSAgICAgICAgYW5jaG9y
LnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlwdHMiKTsKLSAgICAgICAgYW5j
aG9yLnNldEF0dHJpYnV0ZSgic291cmNlX2ZpbGVfaWQiLCBzb3VyY2VGaWxlSWQpOwotICAgICAg
ICBhbmNob3Iuc2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIsIGxpbmVOdW1iZXIpOwotICAgIH0s
Ci0KICAgICBfc2hvd1NvdXJjZUxpbmU6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51bWJl
cikKICAgICB7CiAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3Nob3dTb3VyY2VGcmFt
ZUFuZEFkZFRvSGlzdG9yeShzb3VyY2VGaWxlSWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCBiZDU5MDlmMzUxNzlmYzQ4YTYzOTJk
NjcxYzI1MzAxNTM2NDU3Y2FkLi4zZmQ0ODU4YTgwNmYxZTFlYzIyZjU0M2VmYTI3ZGYyMmY4Y2Uz
MWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcwpAQCAtMjQwLDcgKzI0MCw3IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAgICAgICAgICAg
ICB0aGlzLl9zZXR0aW5nc0J1dHRvbi50b2dnbGVkID0gZmFsc2U7CiAgICAgICAgICAgICBkZWxl
dGUgdGhpcy5fc2V0dGluZ3NTY3JlZW47CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAgICAg
aWYgKCF0aGlzLl9zZXR0aW5nc1NjcmVlbikgewogICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NT
Y3JlZW4gPSBuZXcgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuKCk7CiAgICAgICAgICAgICB0
aGlzLl9zZXR0aW5nc1NjcmVlbi5zaG93KG9uaGlkZS5iaW5kKHRoaXMpKTsKQEAgLTEzMjIsMTAg
KzEzMjIsMTMgQEAgV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkwgPSBmdW5jdGlvbih1cmwsIGxpbmtU
ZXh0LCBjbGFzc2VzLCBpc0V4dGVybmFsLCB0b29sdGlwVGUKIAogV2ViSW5zcGVjdG9yLmxpbmtp
ZnlSZXNvdXJjZUFzTm9kZSA9IGZ1bmN0aW9uKHVybCwgcHJlZmVycmVkUGFuZWwsIG9uZUJhc2Vk
TGluZU51bWJlciwgY2xhc3NlcywgdG9vbHRpcFRleHQpCiB7Ci0gICAgcHJlZmVycmVkUGFuZWwg
PSBwcmVmZXJyZWRQYW5lbCB8fCAic2NyaXB0cyI7CisgICAgaWYgKHByZWZlcnJlZFBhbmVsID09
PSAic2NyaXB0cyIgJiYgIVdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdHNGb3JVUkwo
dXJsKS5sZW5ndGgpCisgICAgICAgIHByZWZlcnJlZFBhbmVsID0gInJlc291cmNlcyI7CiAgICAg
Ly8gRklYTUUoNjI3MjUpOiBzdGFjayB0cmFjZSBsaW5lL2NvbHVtbiBudW1iZXJzIGFyZSBvbmUt
YmFzZWQuCiAgICAgdmFyIGxpbmVOdW1iZXIgPSBvbmVCYXNlZExpbmVOdW1iZXIgPyBvbmVCYXNl
ZExpbmVOdW1iZXIgLSAxIDogdW5kZWZpbmVkOwotICAgIHJldHVybiB0aGlzLnBhbmVsc1twcmVm
ZXJyZWRQYW5lbF0uY3JlYXRlQW5jaG9yKHVybCwgbGluZU51bWJlciwgMCwgY2xhc3NlcywgdG9v
bHRpcFRleHQpOworICAgIHZhciBhbmNob3IgPSB0aGlzLnBhbmVsc1twcmVmZXJyZWRQYW5lbF0u
Y3JlYXRlQW5jaG9yKHVybCwgbGluZU51bWJlciwgMCwgY2xhc3NlcywgdG9vbHRpcFRleHQpOwor
ICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsIHByZWZlcnJlZFBhbmVs
KTsKKyAgICByZXR1cm4gYW5jaG9yOwogfQogCiBXZWJJbnNwZWN0b3IubGlua2lmeUNhbGxGcmFt
ZUFzTm9kZSA9IGZ1bmN0aW9uKGNhbGxGcmFtZSwgY2xhc3NlcywgdG9vbHRpcFRleHQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102783</attachid>
            <date>2011-08-03 07:19:05 -0700</date>
            <delta_ts>2011-08-04 06:03:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65612-20110803181903.patch</filename>
            <type>text/plain</type>
            <size>14401</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIxOTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZGI3OTZkOWMyNzY3ZDA0
MDFkZmM4ZDUyOWExZTU0NTAzNDRhNDZhLi42NDI5ZmFkYTc2MzhhOTkwM2E4Mzg4NWJmOGI3NWJi
MjliMDFkMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMDgtMDMgIFBhdmVs
IFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogZHJhZnQgaW1wbGVtZW50YXRpb24gb2Ygc291cmNlIG1hcHBpbmcgbGlzdGVuZXJzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU2MTIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVz
dHMgLSBpdCBpcyByZWZhY3RvcmluZywgbW9kaWZpZWQgY29kZSBjb3ZlcmVkIGJ5IHNjcmlwdC1m
b3JtYXR0ZXIuaHRtbCB0ZXN0LgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwucHJvdG90eXBlLmFkZFNvdXJjZU1hcHBpbmdMaXN0ZW5lcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUucmVtb3Zl
U291cmNlTWFwcGluZ0xpc3RlbmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5zZXRGb3JtYXRTb3VyY2VGaWxlcyk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2FkZENv
bnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5jb250aW51ZVRvTGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3NldEJyZWFrcG9pbnRJbkRlYnVn
Z2VyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnBy
b3RvdHlwZS5fYnJlYWtwb2ludEFkZGVkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fZGVidWdnZXJSZXNldCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUHJlc2VuYXRpb25DYWxsRnJhbWUucHJvdG90eXBlLnNvdXJjZUxpbmUpOgor
ICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2ZvbGRlckFuZERpc3BsYXlOYW1l
Rm9yU2NyaXB0VVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlLmNyZWF0ZUFuY2hvci5mb3JtYXRBbmNob3IuZGlkR2V0TG9jYXRpb24pOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuY3JlYXRlQW5jaG9yLmZvcm1hdEFu
Y2hvcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5jcmVh
dGVBbmNob3IpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLl9zaG93U2V0dGluZ3NTY3JlZW4pOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZSk6CisKIDIwMTEtMDctMzAgIFBhdmVsIFBv
ZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogbWVyZ2UgRm9ybWF0dGVkU291cmNlRmlsZSBpbnRvIFNvdXJjZUZpbGUuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuanMKaW5kZXggMzMwYTQ1NDZmMDA0OGE4ODdkODQ2ZGIwNzIwNDcwMjVk
OTI4MDRhNS4uZWEwY2IxYjU1N2NjNWFhZGExMmJiYTY2NWNiM2VmZmU1MDgzZTVlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtMzQsNyArMzQsOCBAQCBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9mb3JtYXR0
ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlcigpOwogICAgIHRoaXMuX3NvdXJj
ZUZpbGVzID0ge307CiAgICAgdGhpcy5fbWVzc2FnZXMgPSBbXTsKLSAgICB0aGlzLl9hbmNob3Jz
ID0gW107CisgICAgLy8gRklYTUU6IG1vdmUgdGhpcyB0byBSYXdTb3VyY2VDb2RlIHdoZW4gaXQn
cyBub3QgcmUtY3JlYXRlZCBpbiBwcmV0dHktcHJpbnQgbW9kZS4KKyAgICB0aGlzLl9zb3VyY2VN
YXBwaW5nTGlzdGVuZXJzID0gW107CiAgICAgdGhpcy5fYnJlYWtwb2ludHNCeURlYnVnZ2VySWQg
PSB7fTsKICAgICB0aGlzLl9icmVha3BvaW50c1dpdGhvdXRTb3VyY2VGaWxlID0ge307CiAKQEAg
LTg2LDcgKzg3LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJv
dG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fc291cmNlRmlsZXNbdGhpcy5fY3JlYXRl
U291cmNlRmlsZUlkKHNjcmlwdFVSTCldOwogICAgIH0sCiAKLSAgICBfc2NyaXB0TG9jYXRpb25U
b1VJTG9jYXRpb246IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc291cmNlSWQsIGxpbmVOdW1iZXIsIGNv
bHVtbk51bWJlciwgY2FsbGJhY2spCisgICAgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb246IGZ1bmN0
aW9uKHNvdXJjZVVSTCwgc291cmNlSWQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY2FsbGJh
Y2spCiAgICAgewogICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVGb3JT
Y3JpcHQoc291cmNlVVJMLCBzb3VyY2VJZCk7CiAKQEAgLTEwMCw3ICsxMDEsNyBAQCBXZWJJbnNw
ZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHNv
dXJjZUZpbGUuY3JlYXRlU291cmNlTWFwcGluZ0lmTmVlZGVkKGRpZENyZWF0ZVNvdXJjZU1hcHBp
bmcpOwogICAgIH0sCiAKLSAgICBfdWlMb2NhdGlvblRvU2NyaXB0TG9jYXRpb246IGZ1bmN0aW9u
KHNvdXJjZUZpbGVJZCwgbGluZU51bWJlciwgY2FsbGJhY2spCisgICAgdWlMb2NhdGlvblRvUmF3
TG9jYXRpb246IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51bWJlciwgY2FsbGJhY2spCiAg
ICAgewogICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVzW3NvdXJjZUZp
bGVJZF07CiAKQEAgLTExOSwyMCArMTIwLDE0IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fc291cmNlRmlsZXNbc291
cmNlRmlsZUlkXS5yZXF1ZXN0Q29udGVudChjYWxsYmFjayk7CiAgICAgfSwKIAotICAgIHJlZ2lz
dGVyQW5jaG9yOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNvdXJjZUlkLCBsaW5lTnVtYmVyLCBjb2x1
bW5OdW1iZXIsIHVwZGF0ZUhhbmRsZXIpCisgICAgYWRkU291cmNlTWFwcGluZ0xpc3RlbmVyOiBm
dW5jdGlvbihzb3VyY2VVUkwsIHNvdXJjZUlkLCBsaXN0ZW5lcikKICAgICB7Ci0gICAgICAgIHZh
ciBhbmNob3IgPSB7IHNvdXJjZVVSTDogc291cmNlVVJMLCBzb3VyY2VJZDogc291cmNlSWQsIGxp
bmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyLCB1cGRhdGVI
YW5kbGVyOiB1cGRhdGVIYW5kbGVyIH07Ci0gICAgICAgIHRoaXMuX2FuY2hvcnMucHVzaChhbmNo
b3IpOwotICAgICAgICB0aGlzLl91cGRhdGVBbmNob3IoYW5jaG9yKTsKKyAgICAgICAgdGhpcy5f
c291cmNlTWFwcGluZ0xpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTsKICAgICB9LAogCi0gICAgX3Vw
ZGF0ZUFuY2hvcjogZnVuY3Rpb24oYW5jaG9yKQorICAgIHJlbW92ZVNvdXJjZU1hcHBpbmdMaXN0
ZW5lcjogZnVuY3Rpb24oc291cmNlVVJMLCBzb3VyY2VJZCwgbGlzdGVuZXIpCiAgICAgewotICAg
ICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVGb3JTY3JpcHQoYW5jaG9yLnNv
dXJjZVVSTCwgYW5jaG9yLnNvdXJjZUlkKTsKLSAgICAgICAgaWYgKCFzb3VyY2VGaWxlKQotICAg
ICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3NjcmlwdExvY2F0aW9uVG9VSUxvY2F0
aW9uKGFuY2hvci5zb3VyY2VVUkwsIGFuY2hvci5zb3VyY2VJZCwgYW5jaG9yLmxpbmVOdW1iZXIs
IGFuY2hvci5jb2x1bW5OdW1iZXIsIGFuY2hvci51cGRhdGVIYW5kbGVyKTsKKyAgICAgICAgLy8g
RklYTUU6IGltcGxlbWVudCB0aGlzLgogICAgIH0sCiAKICAgICBfcGFyc2VkU2NyaXB0U291cmNl
OiBmdW5jdGlvbihldmVudCkKQEAgLTI4MSw4ICsyNzYsOSBAQCBXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbWVzc2FnZXMubGVuZ3RoOyArK2kpCiAgICAgICAgICAgICB0aGlzLl9hZGRDb25zb2xl
TWVzc2FnZShtZXNzYWdlc1tpXSk7CiAKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlz
Ll9hbmNob3JzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdGhpcy5fdXBkYXRlQW5jaG9yKHRo
aXMuX2FuY2hvcnNbaV0pOworICAgICAgICAvLyBGSVhNRTogbW92ZSB0aGlzIHRvIFJhd1NvdXJj
ZUNvZGUuCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc291cmNlTWFwcGluZ0xp
c3RlbmVycy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMuX3NvdXJjZU1hcHBpbmdMaXN0
ZW5lcnNbaV0oKTsKIAogICAgICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY2Fs
bEZyYW1lcykKICAgICAgICAgICAgIHRoaXMuX2RlYnVnZ2VyUGF1c2VkKCk7CkBAIC0zMTUsNyAr
MzExLDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAgICAvLyBGSVhNRSg2MjcyNSk6IHN0YWNrIHRyYWNlIGxpbmUvY29sdW1uIG51
bWJlcnMgYXJlIG9uZS1iYXNlZC4KICAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSBtZXNzYWdlLnN0
YWNrVHJhY2UgPyBtZXNzYWdlLnN0YWNrVHJhY2VbMF0ubGluZU51bWJlciAtIDEgOiBtZXNzYWdl
LmxpbmUgLSAxOwogICAgICAgICB2YXIgY29sdW1uTnVtYmVyID0gbWVzc2FnZS5zdGFja1RyYWNl
ID8gbWVzc2FnZS5zdGFja1RyYWNlWzBdLmNvbHVtbk51bWJlciAtIDEgOiAwOwotICAgICAgICB0
aGlzLl9zY3JpcHRMb2NhdGlvblRvVUlMb2NhdGlvbihtZXNzYWdlLnVybCwgbnVsbCwgbGluZU51
bWJlciwgY29sdW1uTnVtYmVyLCBkaWRHZXRVSUxvY2F0aW9uLmJpbmQodGhpcykpOworICAgICAg
ICB0aGlzLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKG1lc3NhZ2UudXJsLCBudWxsLCBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXIsIGRpZEdldFVJTG9jYXRpb24uYmluZCh0aGlzKSk7CiAgICAgfSwK
IAogICAgIF9jb25zb2xlQ2xlYXJlZDogZnVuY3Rpb24oKQpAQCAtMzMyLDcgKzMyOCw3IEBAIFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY29udGludWVUb0xv
Y2F0aW9uKGxvY2F0aW9uKTsKICAgICAgICAgfQotICAgICAgICB0aGlzLl91aUxvY2F0aW9uVG9T
Y3JpcHRMb2NhdGlvbihzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIsIGRpZEdldFNjcmlwdExvY2F0
aW9uKTsKKyAgICAgICAgdGhpcy51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbihzb3VyY2VGaWxlSWQs
IGxpbmVOdW1iZXIsIGRpZEdldFNjcmlwdExvY2F0aW9uKTsKICAgICB9LAogCiAgICAgYnJlYWtw
b2ludHNGb3JTb3VyY2VGaWxlSWQ6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCkKQEAgLTM5MSw3ICsz
ODcsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtw
b2ludEJ5U291cmNlSWQobG9jYXRpb24sIGJyZWFrcG9pbnQuY29uZGl0aW9uLCBkaWRTZXRCcmVh
a3BvaW50LmJpbmQodGhpcykpOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHRo
aXMuX3VpTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uKGJyZWFrcG9pbnQuc291cmNlRmlsZS5pZCwg
YnJlYWtwb2ludC5saW5lTnVtYmVyLCBkaWRHZXRTY3JpcHRMb2NhdGlvbi5iaW5kKHRoaXMpKTsK
KyAgICAgICAgdGhpcy51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbihicmVha3BvaW50LnNvdXJjZUZp
bGUuaWQsIGJyZWFrcG9pbnQubGluZU51bWJlciwgZGlkR2V0U2NyaXB0TG9jYXRpb24uYmluZCh0
aGlzKSk7CiAgICAgfSwKIAogICAgIF9yZW1vdmVCcmVha3BvaW50RnJvbURlYnVnZ2VyOiBmdW5j
dGlvbihicmVha3BvaW50LCBjYWxsYmFjaykKQEAgLTQ5MSw3ICs0ODcsNyBAQCBXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KICAg
ICAgICAgLy8gUmVmaW5lIGxpbmUgbnVtYmVyIGJhc2VkIG9uIHJlc29sdmVkIGxvY2F0aW9uLgog
ICAgICAgICBpZiAoYnJlYWtwb2ludC5sb2NhdGlvbikKLSAgICAgICAgICAgIHRoaXMuX3Njcmlw
dExvY2F0aW9uVG9VSUxvY2F0aW9uKG51bGwsIGJyZWFrcG9pbnQubG9jYXRpb24uc291cmNlSWQs
IGJyZWFrcG9pbnQubG9jYXRpb24ubGluZU51bWJlciwgYnJlYWtwb2ludC5sb2NhdGlvbi5jb2x1
bW5OdW1iZXIsIGRpZEdldFVJTG9jYXRpb24uYmluZCh0aGlzKSk7CisgICAgICAgICAgICB0aGlz
LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKG51bGwsIGJyZWFrcG9pbnQubG9jYXRpb24uc291cmNl
SWQsIGJyZWFrcG9pbnQubG9jYXRpb24ubGluZU51bWJlciwgYnJlYWtwb2ludC5sb2NhdGlvbi5j
b2x1bW5OdW1iZXIsIGRpZEdldFVJTG9jYXRpb24uYmluZCh0aGlzKSk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHVwZGF0ZVNvdXJjZUZpbGVCcmVha3BvaW50c0FuZERpc3BhdGNoRXZlbnQu
Y2FsbCh0aGlzKTsKICAgICB9LApAQCAtNjU4LDcgKzY1NCw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1
Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICBfZGVidWdnZXJSZXNldDog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5fcmVzZXQoKTsKLSAgICAgICAgdGhpcy5f
YW5jaG9ycyA9IFtdOworICAgICAgICB0aGlzLl9zb3VyY2VNYXBwaW5nTGlzdGVuZXJzID0gW107
CiAgICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbkNhbGxGcmFtZXMgPSBbXTsKICAgICAgICAgdGhp
cy5fc2VsZWN0ZWRDYWxsRnJhbWVJbmRleCA9IDA7CiAgICAgfQpAQCAtNzgxLDcgKzc3Nyw3IEBA
IFdlYkluc3BlY3Rvci5QcmVzZW5hdGlvbkNhbGxGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgewog
ICAgICAgICB2YXIgbG9jYXRpb24gPSB0aGlzLl9jYWxsRnJhbWUubG9jYXRpb247CiAgICAgICAg
IGlmICghdGhpcy5pc0ludGVybmFsU2NyaXB0KQotICAgICAgICAgICAgdGhpcy5fbW9kZWwuX3Nj
cmlwdExvY2F0aW9uVG9VSUxvY2F0aW9uKG51bGwsIGxvY2F0aW9uLnNvdXJjZUlkLCBsb2NhdGlv
bi5saW5lTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGNhbGxiYWNrKTsKKyAgICAgICAg
ICAgIHRoaXMuX21vZGVsLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKG51bGwsIGxvY2F0aW9uLnNv
dXJjZUlkLCBsb2NhdGlvbi5saW5lTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGNhbGxi
YWNrKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY2FsbGJhY2sodW5kZWZpbmVkLCBsb2Nh
dGlvbi5saW5lTnVtYmVyKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9QYW5lbC5qcwppbmRleCBmY2RlZDFiZGJjNzU4ZjFjZTQ5ZGZlYjY0NjYxMGI0OTdiN2Mw
YzlkLi43OWYwYzJjODllZjc1ODJhZTViYTA5NTIyNmYxOGI4YWRmM2UxYThlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUGFuZWwuanMKQEAgLTM5OSw3ICszOTksNiBA
QCBXZWJJbnNwZWN0b3IuUGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGxp
bmtUZXh0ID0gdGhpcy5mb3JtYXRBbmNob3JUZXh0KHVybCwgbGluZU51bWJlcik7CiAgICAgICAg
IHZhciBhbmNob3IgPSBXZWJJbnNwZWN0b3IubGlua2lmeVVSTEFzTm9kZSh1cmwsIGxpbmtUZXh0
LCBjbGFzc2VzLCBmYWxzZSwgdG9vbHRpcFRleHQpOwotICAgICAgICBhbmNob3Iuc2V0QXR0cmli
dXRlKCJwcmVmZXJyZWRfcGFuZWwiLCAicmVzb3VyY2VzIik7CiAgICAgICAgIGlmIChsaW5lTnVt
YmVyICE9PSB1bmRlZmluZWQpCiAgICAgICAgICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJsaW5l
X251bWJlciIsIGxpbmVOdW1iZXIpOwogICAgICAgICByZXR1cm4gYW5jaG9yOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCA5
Y2ZlNGVhMzVjODJkYzNhNjgyNDE0ZmMwZGEwYWJkOGZjMmMyZWM4Li5mYWEyMDU5MmI5MmQ4OTli
NTM1YjQ4ZWQ2NTMzMTdjOTIxOTViNmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtMzI0LDcgKzMyNCw3IEBAIFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIGlmIChmb2xkZXJO
YW1lLmxlbmd0aCA+IDgwKQogICAgICAgICAgICAgZm9sZGVyTmFtZSA9ICJcdTIwMjYiICsgZm9s
ZGVyTmFtZS5zdWJzdHJpbmcoZm9sZGVyTmFtZS5sZW5ndGggLSA4MCk7Ci0gCisKICAgICAgICAg
cmV0dXJuIHsgZm9sZGVyTmFtZTogZm9sZGVyTmFtZSwgZGlzcGxheU5hbWU6IGRpc3BsYXlOYW1l
fTsKICAgICB9LAogCkBAIC01NTAsOCArNTUwLDI3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogICAgIGNyZWF0ZUFuY2hvcjogZnVuY3Rpb24odXJsLCBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXIsIGNsYXNzZXMsIHRvb2x0aXBUZXh0KQogICAgIHsKICAgICAgICAg
dmFyIGFuY2hvciA9IFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUuY3JlYXRlQW5jaG9yLmNh
bGwodGhpcywgdXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIGNsYXNzZXMsIHRvb2x0aXBU
ZXh0KTsKLSAgICAgICAgaWYgKGxpbmVOdW1iZXIgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAg
IHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnJlZ2lzdGVyQW5jaG9yKHVybCwgbnVsbCwgbGluZU51
bWJlciwgY29sdW1uTnVtYmVyLCB0aGlzLl91cGRhdGVBbmNob3IuYmluZCh0aGlzLCBhbmNob3Ip
KTsKKyAgICAgICAgdmFyIG1vZGVsID0gdGhpcy5fcHJlc2VudGF0aW9uTW9kZWw7CisgICAgICAg
IHZhciBmb3JtYXRUZXh0ID0gdGhpcy5mb3JtYXRBbmNob3JUZXh0LmJpbmQodGhpcyk7CisKKyAg
ICAgICAgZnVuY3Rpb24gZm9ybWF0QW5jaG9yKCkKKyAgICAgICAgeworICAgICAgICAgICAgZnVu
Y3Rpb24gZGlkR2V0TG9jYXRpb24oc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIHZhciBzb3VyY2VGaWxlID0gbW9kZWwuc291cmNlRmlsZShz
b3VyY2VGaWxlSWQpOworICAgICAgICAgICAgICAgIHZhciB1cmwgPSBzb3VyY2VGaWxlLnVybCB8
fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFtKSIpOworICAgICAgICAgICAgICAgIGFu
Y2hvci50ZXh0Q29udGVudCA9IGZvcm1hdFRleHQodXJsLCBsaW5lTnVtYmVyKTsKKyAgICAgICAg
ICAgICAgICAvLyBVc2VkIGZvciBzaG93aW5nIGFuY2hvciBsb2NhdGlvbi4KKyAgICAgICAgICAg
ICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJzb3VyY2VfZmlsZV9pZCIsIHNvdXJjZUZpbGVJZCk7
CisgICAgICAgICAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgibGluZV9udW1iZXIiLCBsaW5l
TnVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1vZGVsLnJhd0xvY2F0aW9uVG9V
SUxvY2F0aW9uKHVybCwgbnVsbCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBkaWRHZXRMb2Nh
dGlvbik7CisgICAgICAgIH0KKworICAgICAgICBpZiAobGluZU51bWJlciAhPT0gdW5kZWZpbmVk
KSB7CisgICAgICAgICAgICBmb3JtYXRBbmNob3IoKTsKKyAgICAgICAgICAgIG1vZGVsLmFkZFNv
dXJjZU1hcHBpbmdMaXN0ZW5lcih1cmwsIG51bGwsIGZvcm1hdEFuY2hvcik7CisgICAgICAgIH0K
ICAgICAgICAgcmV0dXJuIGFuY2hvcjsKICAgICB9LAogCkBAIC01NjUsMTcgKzU4NCw2IEBAIFdl
Ykluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9zaG93
U291cmNlTGluZShhbmNob3IuZ2V0QXR0cmlidXRlKCJzb3VyY2VfZmlsZV9pZCIpLCBwYXJzZUlu
dChhbmNob3IuZ2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIpKSk7CiAgICAgfSwKIAotICAgIF91
cGRhdGVBbmNob3I6IGZ1bmN0aW9uKGFuY2hvciwgc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKQot
ICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5z
b3VyY2VGaWxlKHNvdXJjZUZpbGVJZCk7Ci0gICAgICAgIHZhciB1cmwgPSBzb3VyY2VGaWxlLnVy
bCB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFtKSIpOwotICAgICAgICBhbmNob3Iu
dGV4dENvbnRlbnQgPSB0aGlzLmZvcm1hdEFuY2hvclRleHQodXJsLCBsaW5lTnVtYmVyKQotICAg
ICAgICAvLyBVc2VkIGZvciBzaG93aW5nIGFuY2hvciBsb2NhdGlvbi4KLSAgICAgICAgYW5jaG9y
LnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlwdHMiKTsKLSAgICAgICAgYW5j
aG9yLnNldEF0dHJpYnV0ZSgic291cmNlX2ZpbGVfaWQiLCBzb3VyY2VGaWxlSWQpOwotICAgICAg
ICBhbmNob3Iuc2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIsIGxpbmVOdW1iZXIpOwotICAgIH0s
Ci0KICAgICBfc2hvd1NvdXJjZUxpbmU6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51bWJl
cikKICAgICB7CiAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3Nob3dTb3VyY2VGcmFt
ZUFuZEFkZFRvSGlzdG9yeShzb3VyY2VGaWxlSWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCBiZDU5MDlmMzUxNzlmYzQ4YTYzOTJk
NjcxYzI1MzAxNTM2NDU3Y2FkLi5hMzFjZTYxZGMzODNkODFiZWY5NjMzNTY3YmJiZmEzMTBlNmIx
MzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3Bl
Y3Rvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5qcwpAQCAtMjQwLDcgKzI0MCw3IEBAIHZhciBXZWJJbnNwZWN0b3IgPSB7CiAgICAgICAgICAg
ICB0aGlzLl9zZXR0aW5nc0J1dHRvbi50b2dnbGVkID0gZmFsc2U7CiAgICAgICAgICAgICBkZWxl
dGUgdGhpcy5fc2V0dGluZ3NTY3JlZW47CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAgICAg
aWYgKCF0aGlzLl9zZXR0aW5nc1NjcmVlbikgewogICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NT
Y3JlZW4gPSBuZXcgV2ViSW5zcGVjdG9yLlNldHRpbmdzU2NyZWVuKCk7CiAgICAgICAgICAgICB0
aGlzLl9zZXR0aW5nc1NjcmVlbi5zaG93KG9uaGlkZS5iaW5kKHRoaXMpKTsKQEAgLTEzMjAsMTkg
KzEzMjAsMjYgQEAgV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkwgPSBmdW5jdGlvbih1cmwsIGxpbmtU
ZXh0LCBjbGFzc2VzLCBpc0V4dGVybmFsLCB0b29sdGlwVGUKICAgICByZXR1cm4gV2ViSW5zcGVj
dG9yLmxpbmtpZnlVUkxBc05vZGUodXJsLCBsaW5rVGV4dCwgY2xhc3NlcywgaXNFeHRlcm5hbCwg
dG9vbHRpcFRleHQpLm91dGVySFRNTDsKIH0KIAotV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJj
ZUFzTm9kZSA9IGZ1bmN0aW9uKHVybCwgcHJlZmVycmVkUGFuZWwsIG9uZUJhc2VkTGluZU51bWJl
ciwgY2xhc3NlcywgdG9vbHRpcFRleHQpCitXZWJJbnNwZWN0b3IuX2xpbmtpZnlMb2NhdGlvbiA9
IGZ1bmN0aW9uKHVybCwgb25lQmFzZWRMaW5lTnVtYmVyLCBvbmVCYXNlZENvbHVtbk51bWJlciwg
Y2xhc3NlcywgdG9vbHRpcFRleHQsIHByZWZlcnJlZFBhbmVsKQogewotICAgIHByZWZlcnJlZFBh
bmVsID0gcHJlZmVycmVkUGFuZWwgfHwgInNjcmlwdHMiOworICAgIGlmIChwcmVmZXJyZWRQYW5l
bCA9PT0gInNjcmlwdHMiICYmICFXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRzRm9y
VVJMKHVybCkubGVuZ3RoKQorICAgICAgICBwcmVmZXJyZWRQYW5lbCA9ICJyZXNvdXJjZXMiOwog
ICAgIC8vIEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1bW4gbnVtYmVycyBhcmUg
b25lLWJhc2VkLgogICAgIHZhciBsaW5lTnVtYmVyID0gb25lQmFzZWRMaW5lTnVtYmVyID8gb25l
QmFzZWRMaW5lTnVtYmVyIC0gMSA6IHVuZGVmaW5lZDsKLSAgICByZXR1cm4gdGhpcy5wYW5lbHNb
cHJlZmVycmVkUGFuZWxdLmNyZWF0ZUFuY2hvcih1cmwsIGxpbmVOdW1iZXIsIDAsIGNsYXNzZXMs
IHRvb2x0aXBUZXh0KTsKKyAgICB2YXIgY29sdW1uTnVtYmVyID0gb25lQmFzZWRDb2x1bW5OdW1i
ZXIgPyBvbmVCYXNlZENvbHVtbk51bWJlciAtIDEgOiAwOworICAgIHZhciBhbmNob3IgPSB0aGlz
LnBhbmVsc1twcmVmZXJyZWRQYW5lbF0uY3JlYXRlQW5jaG9yKHVybCwgbGluZU51bWJlciwgY29s
dW1uTnVtYmVyLCBjbGFzc2VzLCB0b29sdGlwVGV4dCk7CisgICAgYW5jaG9yLnNldEF0dHJpYnV0
ZSgicHJlZmVycmVkX3BhbmVsIiwgcHJlZmVycmVkUGFuZWwpOworICAgIHJldHVybiBhbmNob3I7
Cit9CisKK1dlYkluc3BlY3Rvci5saW5raWZ5UmVzb3VyY2VBc05vZGUgPSBmdW5jdGlvbih1cmws
IHByZWZlcnJlZFBhbmVsLCBvbmVCYXNlZExpbmVOdW1iZXIsIGNsYXNzZXMsIHRvb2x0aXBUZXh0
KQoreworICAgIHJldHVybiB0aGlzLl9saW5raWZ5TG9jYXRpb24odXJsLCBvbmVCYXNlZExpbmVO
dW1iZXIsIDAsIGNsYXNzZXMsIHRvb2x0aXBUZXh0LCBwcmVmZXJyZWRQYW5lbCk7CiB9CiAKIFdl
Ykluc3BlY3Rvci5saW5raWZ5Q2FsbEZyYW1lQXNOb2RlID0gZnVuY3Rpb24oY2FsbEZyYW1lLCBj
bGFzc2VzLCB0b29sdGlwVGV4dCkKIHsKLSAgICAvLyBGSVhNRSg2MjcyNSk6IHN0YWNrIHRyYWNl
IGxpbmUvY29sdW1uIG51bWJlcnMgYXJlIG9uZS1iYXNlZC4KLSAgICB2YXIgY29sdW1uTnVtYmVy
ID0gY2FsbEZyYW1lLmNvbHVtbk51bWJlciA/IGNhbGxGcmFtZS5jb2x1bW5OdW1iZXIgLSAxIDog
MDsKLSAgICByZXR1cm4gdGhpcy5wYW5lbHMuc2NyaXB0cy5jcmVhdGVBbmNob3IoY2FsbEZyYW1l
LnVybCwgY2FsbEZyYW1lLmxpbmVOdW1iZXIgLSAxLCBjb2x1bW5OdW1iZXIsIGNsYXNzZXMsIHRv
b2x0aXBUZXh0KTsKKyAgICByZXR1cm4gdGhpcy5fbGlua2lmeUxvY2F0aW9uKGNhbGxGcmFtZS51
cmwsIGNhbGxGcmFtZS5saW5lTnVtYmVyLCBjYWxsRnJhbWUuY29sdW1uTnVtYmVyLCBjbGFzc2Vz
LCB0b29sdGlwVGV4dCwgInNjcmlwdHMiKTsKIH0KIAogV2ViSW5zcGVjdG9yLnJlc291cmNlVVJM
Rm9yUmVsYXRlZE5vZGUgPSBmdW5jdGlvbihub2RlLCB1cmwpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102902</attachid>
            <date>2011-08-04 06:04:02 -0700</date>
            <delta_ts>2011-08-04 06:46:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65612-20110804170400.patch</filename>
            <type>text/plain</type>
            <size>25759</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIzNjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YjhiZmYzOGMyYjQxYWQx
YmQ5ZTFiM2Q2ZjE3ZGNkMjM2ZGZhZjAyLi5jNzM5YjViZTMyZGUwNDY5MzFmZmQ0NjNhNDNjYWY3
OTc0NDQ0ODg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDgtMDQgIFBhdmVs
IFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogcmVmYWN0b3IgbGlua3MgY3JlYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIGl0IGlzIHJlZmFjdG9yaW5nLCBt
b2RpZmllZCBjb2RlIGNvdmVyZWQgYnkgc2NyaXB0LWZvcm1hdHRlci5odG1sIHRlc3QuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fZm9ybWF0TWVzc2FnZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlLl9saW5raWZ5TG9jYXRp
b24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fcG9w
dWxhdGVTdGFja1RyYWNlVHJlZUVsZW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5hZGRTb3VyY2VNYXBwaW5nTGlzdGVuZXIpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
LnJlbW92ZVNvdXJjZU1hcHBpbmdMaXN0ZW5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUubGlua2lmeUxvY2F0aW9uLnVwZGF0ZUFu
Y2hvci5kaWRHZXRMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbC5wcm90b3R5cGUubGlua2lmeUxvY2F0aW9uLnVwZGF0ZUFuY2hvcik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUu
bGlua2lmeUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLnByb3RvdHlwZS5zZXRGb3JtYXRTb3VyY2VGaWxlcyk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3NvdXJjZUZpbGVG
b3JTY3JpcHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwucHJvdG90eXBlLl9kZWJ1Z2dlclJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9OZXR3b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0Rh
dGFHcmlkTm9kZS5wcm90b3R5cGUuX3JlZnJlc2hJbml0aWF0b3JDZWxsKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvUHJvZmlsZURhdGFHcmlkVHJlZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxl
RGF0YUdyaWROb2RlLnByb3RvdHlwZS5jcmVhdGVDZWxsKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlLl9mb2xkZXJBbmREaXNwbGF5TmFtZUZvclNjcmlwdFVSTCk6CisgICAg
ICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uLmxpbmtpZnlVbmNvcHlhYmxlKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGltZWxpbmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQucHJvdG90eXBlLl9nZXRSZWNvcmRE
ZXRhaWxzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJl
Y29yZC5wcm90b3R5cGUuX2xpbmtpZnlMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbC5Qb3B1cENvbnRlbnRIZWxwZXIucHJvdG90eXBlLl9hcHBlbmRMaW5rUm93
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLlBvcHVwQ29udGVudEhlbHBl
ci5wcm90b3R5cGUuX2FwcGVuZFN0YWNrVHJhY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9zaG93U2V0dGluZ3NT
Y3JlZW4pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLmZvcm1hdExpbmtUZXh0KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5saW5raWZ5UmVzb3VyY2VBc05vZGUpOgorCiAyMDExLTA4LTA0ICBUb21t
eSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFt
IEFQSTogUmVuYW1lIFN0cmVhbUV2ZW50IHRvIE1lZGlhU3RyZWFtRXZlbnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDE2ZTYw
MjEzMjI5OTVlZjg5ZDY5MDZkZGNlMDliZjQyMmQ5Njc2NGUuLmExNDMwYWQ1ODRjOWY3Y2IxMDU1
Yzk5Yjg1OGFjOGRkZGFjNmM2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Db25zb2xlVmlldy5qcwpAQCAtNzQwLDcgKzc0MCw3IEBAIFdlYkluc3BlY3Rv
ci5Db25zb2xlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIFByZXZlbnQgaW5maW5pdGUg
ZXhwYW5zaW9uIG9mIGNyb3NzLXJlZmVyZW5jaW5nIGFycmF5cy4KICAgICAgICAgcmV0dXJuIHRo
aXMuX2Zvcm1hdChvdXRwdXQsIG91dHB1dC5zdWJ0eXBlICYmIG91dHB1dC5zdWJ0eXBlID09PSAi
YXJyYXkiKTsKICAgICB9LAotICAgIAorCiAgICAgZ2V0IHNjcm9sbExlZnQoKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIHRoaXMubWVzc2FnZXNFbGVtZW50LnNjcm9sbExlZnQ7CkBAIC04NDQsMTAg
Kzg0NCwxMCBAQCBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gewogICAg
ICAgICB0aGlzLl9mb3JtYXR0ZWRNZXNzYWdlLmNsYXNzTmFtZSA9ICJjb25zb2xlLW1lc3NhZ2Ut
dGV4dCBzb3VyY2UtY29kZSI7CiAKICAgICAgICAgaWYgKHRoaXMuX3N0YWNrVHJhY2UgJiYgdGhp
cy5fc3RhY2tUcmFjZS5sZW5ndGggJiYgdGhpcy5fc3RhY2tUcmFjZVswXS51cmwpIHsKLSAgICAg
ICAgICAgIHZhciB1cmxFbGVtZW50ID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlDYWxsRnJhbWVBc05v
ZGUodGhpcy5fc3RhY2tUcmFjZVswXSwgImNvbnNvbGUtbWVzc2FnZS11cmwiKTsKKyAgICAgICAg
ICAgIHZhciB1cmxFbGVtZW50ID0gdGhpcy5fbGlua2lmeUxvY2F0aW9uKHRoaXMuX3N0YWNrVHJh
Y2VbMF0udXJsLCB0aGlzLl9zdGFja1RyYWNlWzBdLmxpbmVOdW1iZXIsIHRoaXMuX3N0YWNrVHJh
Y2VbMF0uY29sdW1uTnVtYmVyKTsKICAgICAgICAgICAgIHRoaXMuX2Zvcm1hdHRlZE1lc3NhZ2Uu
YXBwZW5kQ2hpbGQodXJsRWxlbWVudCk7CiAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51cmwgJiYg
dGhpcy51cmwgIT09ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgICAgICB2YXIgdXJsRWxlbWVudCA9
IFdlYkluc3BlY3Rvci5saW5raWZ5UmVzb3VyY2VBc05vZGUodGhpcy51cmwsICJzY3JpcHRzIiwg
dGhpcy5saW5lLCAiY29uc29sZS1tZXNzYWdlLXVybCIpOworICAgICAgICAgICAgdmFyIHVybEVs
ZW1lbnQgPSB0aGlzLl9saW5raWZ5TG9jYXRpb24odGhpcy51cmwsIHRoaXMubGluZU51bWJlciwg
MCk7CiAgICAgICAgICAgICB0aGlzLl9mb3JtYXR0ZWRNZXNzYWdlLmFwcGVuZENoaWxkKHVybEVs
ZW1lbnQpOwogICAgICAgICB9CiAKQEAgLTg4MCw2ICs4ODAsMTQgQEAgV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5tZXNzYWdlID0gdGhpcy5f
Zm9ybWF0dGVkTWVzc2FnZS50ZXh0Q29udGVudDsKICAgICB9LAogCisgICAgX2xpbmtpZnlMb2Nh
dGlvbjogZnVuY3Rpb24odXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCisgICAgeworICAg
ICAgICAvLyBGSVhNRSg2MjcyNSk6IHN0YWNrIHRyYWNlIGxpbmUvY29sdW1uIG51bWJlcnMgYXJl
IG9uZS1iYXNlZC4KKyAgICAgICAgbGluZU51bWJlciA9IGxpbmVOdW1iZXIgPyBsaW5lTnVtYmVy
IC0gMSA6IDA7CisgICAgICAgIGNvbHVtbk51bWJlciA9IGNvbHVtbk51bWJlciA/IGNvbHVtbk51
bWJlciAtIDEgOiAwOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwubGlua2lmeUxvY2F0aW9uKHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVy
LCAiY29uc29sZS1tZXNzYWdlLXVybCIpOworICAgIH0sCisKICAgICBpc0Vycm9yT3JXYXJuaW5n
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gKHRoaXMubGV2ZWwgPT09IFdlYklu
c3BlY3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuV2FybmluZyB8fCB0aGlzLmxldmVs
ID09PSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yKTsKQEAg
LTEwNDQsNyArMTA1Miw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKG1lc3NhZ2VUZXh0RWxlbWVudCk7
CiAKICAgICAgICAgICAgIGlmIChmcmFtZS51cmwpIHsKLSAgICAgICAgICAgICAgICB2YXIgdXJs
RWxlbWVudCA9IFdlYkluc3BlY3Rvci5saW5raWZ5Q2FsbEZyYW1lQXNOb2RlKGZyYW1lLCAiY29u
c29sZS1tZXNzYWdlLXVybCIpOworICAgICAgICAgICAgICAgIHZhciB1cmxFbGVtZW50ID0gdGhp
cy5fbGlua2lmeUxvY2F0aW9uKGZyYW1lLnVybCwgZnJhbWUubGluZU51bWJlciwgZnJhbWUuY29s
dW1uTnVtYmVyKTsKICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKHVybEVsZW1l
bnQpOwogICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXgg
MzMwYTQ1NDZmMDA0OGE4ODdkODQ2ZGIwNzIwNDcwMjVkOTI4MDRhNS4uOWE2YmZhNWZlZDAxZmQ2
N2EyMWY0MDVkMTU0NjE2MzZmMzE1ODA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5q
cwpAQCAtMzQsNyArMzQsOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9mb3JtYXR0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNj
cmlwdEZvcm1hdHRlcigpOwogICAgIHRoaXMuX3NvdXJjZUZpbGVzID0ge307CiAgICAgdGhpcy5f
bWVzc2FnZXMgPSBbXTsKLSAgICB0aGlzLl9hbmNob3JzID0gW107CisgICAgLy8gRklYTUU6IG1v
dmUgdGhpcyB0byBSYXdTb3VyY2VDb2RlIHdoZW4gaXQncyBub3QgcmUtY3JlYXRlZCBpbiBwcmV0
dHktcHJpbnQgbW9kZS4KKyAgICB0aGlzLl9zb3VyY2VNYXBwaW5nTGlzdGVuZXJzID0gW107CiAg
ICAgdGhpcy5fYnJlYWtwb2ludHNCeURlYnVnZ2VySWQgPSB7fTsKICAgICB0aGlzLl9icmVha3Bv
aW50c1dpdGhvdXRTb3VyY2VGaWxlID0ge307CiAKQEAgLTExOSwyMCArMTIwLDQyIEBAIFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
dGhpcy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXS5yZXF1ZXN0Q29udGVudChjYWxsYmFjayk7
CiAgICAgfSwKIAotICAgIHJlZ2lzdGVyQW5jaG9yOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNvdXJj
ZUlkLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHVwZGF0ZUhhbmRsZXIpCisgICAgYWRkU291
cmNlTWFwcGluZ0xpc3RlbmVyOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNvdXJjZUlkLCBsaXN0ZW5l
cikKICAgICB7Ci0gICAgICAgIHZhciBhbmNob3IgPSB7IHNvdXJjZVVSTDogc291cmNlVVJMLCBz
b3VyY2VJZDogc291cmNlSWQsIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjog
Y29sdW1uTnVtYmVyLCB1cGRhdGVIYW5kbGVyOiB1cGRhdGVIYW5kbGVyIH07Ci0gICAgICAgIHRo
aXMuX2FuY2hvcnMucHVzaChhbmNob3IpOwotICAgICAgICB0aGlzLl91cGRhdGVBbmNob3IoYW5j
aG9yKTsKKyAgICAgICAgdGhpcy5fc291cmNlTWFwcGluZ0xpc3RlbmVycy5wdXNoKGxpc3RlbmVy
KTsKICAgICB9LAogCi0gICAgX3VwZGF0ZUFuY2hvcjogZnVuY3Rpb24oYW5jaG9yKQorICAgIHJl
bW92ZVNvdXJjZU1hcHBpbmdMaXN0ZW5lcjogZnVuY3Rpb24oc291cmNlVVJMLCBzb3VyY2VJZCwg
bGlzdGVuZXIpCiAgICAgewotICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZp
bGVGb3JTY3JpcHQoYW5jaG9yLnNvdXJjZVVSTCwgYW5jaG9yLnNvdXJjZUlkKTsKLSAgICAgICAg
aWYgKCFzb3VyY2VGaWxlKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAvLyBGSVhNRTog
aW1wbGVtZW50IHRoaXMuCisgICAgfSwKIAotICAgICAgICB0aGlzLl9zY3JpcHRMb2NhdGlvblRv
VUlMb2NhdGlvbihhbmNob3Iuc291cmNlVVJMLCBhbmNob3Iuc291cmNlSWQsIGFuY2hvci5saW5l
TnVtYmVyLCBhbmNob3IuY29sdW1uTnVtYmVyLCBhbmNob3IudXBkYXRlSGFuZGxlcik7CisgICAg
bGlua2lmeUxvY2F0aW9uOiBmdW5jdGlvbihzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51
bWJlciwgY2xhc3NlcykKKyAgICB7CisgICAgICAgIHZhciBsaW5rVGV4dCA9IFdlYkluc3BlY3Rv
ci5mb3JtYXRMaW5rVGV4dChzb3VyY2VVUkwsIGxpbmVOdW1iZXIpOworICAgICAgICB2YXIgYW5j
aG9yID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUoc291cmNlVVJMLCBsaW5rVGV4dCwg
Y2xhc3NlcywgZmFsc2UpOworCisgICAgICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNl
RmlsZUZvclNjcmlwdChzb3VyY2VVUkwpOworICAgICAgICBpZiAoIXNvdXJjZUZpbGUpIHsKKyAg
ICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJyZXNvdXJj
ZXMiKTsKKyAgICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoImxpbmVfbnVtYmVyIiwgbGlu
ZU51bWJlcik7CisgICAgICAgICAgICByZXR1cm4gYW5jaG9yOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gdXBkYXRlQW5jaG9yKCkKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rp
b24gZGlkR2V0TG9jYXRpb24oc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIGFuY2hvci50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5mb3Jt
YXRMaW5rVGV4dChzb3VyY2VGaWxlLnVybCwgbGluZU51bWJlcik7CisgICAgICAgICAgICAgICAg
YW5jaG9yLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlwdHMiKTsKKyAgICAg
ICAgICAgICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJzb3VyY2VfZmlsZV9pZCIsIHNvdXJjZUZp
bGVJZCk7CisgICAgICAgICAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgibGluZV9udW1iZXIi
LCBsaW5lTnVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuX3NjcmlwdExv
Y2F0aW9uVG9VSUxvY2F0aW9uKHNvdXJjZVVSTCwgbnVsbCwgbGluZU51bWJlciwgY29sdW1uTnVt
YmVyLCBkaWRHZXRMb2NhdGlvbi5iaW5kKHRoaXMpKTsKKyAgICAgICAgfQorICAgICAgICB1cGRh
dGVBbmNob3IuY2FsbCh0aGlzKTsKKyAgICAgICAgdGhpcy5hZGRTb3VyY2VNYXBwaW5nTGlzdGVu
ZXIoc291cmNlVVJMLCBudWxsLCB1cGRhdGVBbmNob3IuYmluZCh0aGlzKSk7CisgICAgICAgIHJl
dHVybiBhbmNob3I7CiAgICAgfSwKIAogICAgIF9wYXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9u
KGV2ZW50KQpAQCAtMjgxLDggKzMwNCw5IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNz
YWdlcy5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIHRoaXMuX2FkZENvbnNvbGVNZXNzYWdlKG1l
c3NhZ2VzW2ldKTsKIAotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2FuY2hvcnMu
bGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB0aGlzLl91cGRhdGVBbmNob3IodGhpcy5fYW5jaG9y
c1tpXSk7CisgICAgICAgIC8vIEZJWE1FOiBtb3ZlIHRoaXMgdG8gUmF3U291cmNlQ29kZS4KKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zb3VyY2VNYXBwaW5nTGlzdGVuZXJzLmxl
bmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy5fc291cmNlTWFwcGluZ0xpc3RlbmVyc1tpXSgp
OwogCiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5jYWxsRnJhbWVzKQog
ICAgICAgICAgICAgdGhpcy5fZGVidWdnZXJQYXVzZWQoKTsKQEAgLTYxNiw4ICs2NDAsMTIgQEAg
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogCiAg
ICAgX3NvdXJjZUZpbGVGb3JTY3JpcHQ6IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc291cmNlSWQpCiAg
ICAgewotICAgICAgICBpZiAoIXNvdXJjZVVSTCkKLSAgICAgICAgICAgIHNvdXJjZVVSTCA9IFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNvdXJjZUlEKHNvdXJjZUlkKS5zb3Vy
Y2VVUkw7CisgICAgICAgIGlmICghc291cmNlVVJMKSB7CisgICAgICAgICAgICB2YXIgc2NyaXB0
ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoc291cmNlSWQp
OworICAgICAgICAgICAgaWYgKCFzY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgc291cmNlVVJMID0gc2NyaXB0LnNvdXJjZVVSTDsKKyAgICAgICAgfQogICAgICAg
ICByZXR1cm4gdGhpcy5fc291cmNlRmlsZXNbdGhpcy5fY3JlYXRlU291cmNlRmlsZUlkKHNvdXJj
ZVVSTCwgc291cmNlSWQpXTsKICAgICB9LAogCkBAIC02NTgsNyArNjg2LDcgQEAgV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgIF9kZWJ1Z2dl
clJlc2V0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9yZXNldCgpOwotICAgICAg
ICB0aGlzLl9hbmNob3JzID0gW107CisgICAgICAgIHRoaXMuX3NvdXJjZU1hcHBpbmdMaXN0ZW5l
cnMgPSBbXTsKICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uQ2FsbEZyYW1lcyA9IFtdOwogICAg
ICAgICB0aGlzLl9zZWxlY3RlZENhbGxGcmFtZUluZGV4ID0gMDsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJh
clBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVu
ZXJzU2lkZWJhclBhbmUuanMKaW5kZXggMzMzMjNiMGQ5NDI1NGIwZjU4ZWRjZmYzMmI5MGI0MWU1
ZTgyMjA1NS4uY2YyYTRjYWUyMjFjNmE0OTJhNjc2NzllYmY5NjgyMDg4OWIxYzYzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1Np
ZGViYXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZl
bnRMaXN0ZW5lcnNTaWRlYmFyUGFuZS5qcwpAQCAtMjM2LDcgKzIzNiwxMSBAQCBXZWJJbnNwZWN0
b3IuRXZlbnRMaXN0ZW5lckJhci5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIFJlcXVpcmVzIHRo
YXQgRnVuY3Rpb24udG9TdHJpbmcoKSByZXR1cm4gYXQgbGVhc3QgdGhlIGZ1bmN0aW9uJ3Mgc2ln
bmF0dXJlLgogICAgICAgICBpZiAodGhpcy5ldmVudExpc3RlbmVyLmxvY2F0aW9uKSB7CiAgICAg
ICAgICAgICB0aGlzLnN1YnRpdGxlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAgICAgICAg
ICAgdGhpcy5zdWJ0aXRsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoV2ViSW5zcGVjdG9yLmxpbmtpZnlS
ZXNvdXJjZUFzTm9kZSh0aGlzLmV2ZW50TGlzdGVuZXIubG9jYXRpb24uc291cmNlSWQsICJzY3Jp
cHRzIiwgdGhpcy5ldmVudExpc3RlbmVyLmxvY2F0aW9uLmxpbmVOdW1iZXIpKTsKKyAgICAgICAg
ICAgIC8vIEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1bW4gbnVtYmVycyBhcmUg
b25lLWJhc2VkLgorICAgICAgICAgICAgdmFyIHVybCA9IHRoaXMuZXZlbnRMaXN0ZW5lci5sb2Nh
dGlvbi5zb3VyY2VJZDsKKyAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gdGhpcy5ldmVudExp
c3RlbmVyLmxvY2F0aW9uLmxpbmVOdW1iZXIgLSAxOworICAgICAgICAgICAgdmFyIHVybEVsZW1l
bnQgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRp
b24odXJsLCBsaW5lTnVtYmVyLCAwKTsKKyAgICAgICAgICAgIHRoaXMuc3VidGl0bGVFbGVtZW50
LmFwcGVuZENoaWxkKHVybEVsZW1lbnQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
dmFyIG1hdGNoID0gdGhpcy5ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5Lm1hdGNoKC9mdW5jdGlv
biAoW15cKF0rPylcKC8pOwogICAgICAgICAgICAgaWYgKG1hdGNoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwppbmRleCAwOWExZjFm
YzRmYTBiOWVkMjBlYzBjYTM0ZjczMDhlMTJlMTM5ZTdjLi40ZTYxNjY1MWZjZTA0NGFhZTc2ODdm
YTRmMDMyMDhmYmRkMjdkNDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwpAQCAtMTk3NywxMSArMTk3NywxMiBAQCBXZWJJbnNw
ZWN0b3IuTmV0d29ya0RhdGFHcmlkTm9kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgdGhpcy5faW5p
dGlhdG9yQ2VsbC50aXRsZSA9IHRvcEZyYW1lLnVybCArICI6IiArIHRvcEZyYW1lLmxpbmVOdW1i
ZXI7Ci0gICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhdG9yQ2VsbC5hcHBlbmRDaGlsZChXZWJJ
bnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHRvcEZyYW1lLnVybCwgInNjcmlwdHMiLCB0
b3BGcmFtZS5saW5lTnVtYmVyKSk7CisgICAgICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odG9w
RnJhbWUudXJsLCB0b3BGcmFtZS5saW5lTnVtYmVyIC0gMSwgMCk7CisgICAgICAgICAgICAgICAg
dGhpcy5faW5pdGlhdG9yQ2VsbC5hcHBlbmRDaGlsZCh1cmxFbGVtZW50KTsKICAgICAgICAgICAg
ICAgICB0aGlzLl9hcHBlbmRTdWJ0aXRsZSh0aGlzLl9pbml0aWF0b3JDZWxsLCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlNjcmlwdCIpKTsKICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGluaXRpYXRv
ci50eXBlID09PSAicGFyc2VyIgogICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYXRvckNlbGwu
dGl0bGUgPSBpbml0aWF0b3IudXJsICsgIjoiICsgaW5pdGlhdG9yLmxpbmVOdW1iZXI7Ci0gICAg
ICAgICAgICAgICAgdGhpcy5faW5pdGlhdG9yQ2VsbC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0b3Iu
bGlua2lmeVJlc291cmNlQXNOb2RlKGluaXRpYXRvci51cmwsICJyZXNvdXJjZXMiLCBpbml0aWF0
b3IubGluZU51bWJlcikpOworICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYXRvckNlbGwuYXBw
ZW5kQ2hpbGQoV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZShpbml0aWF0b3IudXJs
LCBpbml0aWF0b3IubGluZU51bWJlciAtIDEpKTsKICAgICAgICAgICAgICAgICB0aGlzLl9hcHBl
bmRTdWJ0aXRsZSh0aGlzLl9pbml0aWF0b3JDZWxsLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBh
cnNlciIpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUGFuZWwuanMKaW5kZXggZmNkZWQxYmRiYzc1OGYxY2U0OWRmZWI2NDY2
MTBiNDk3YjdjMGM5ZC4uN2FlZDc3NWQ0MTYyN2M3M2IwNjVhNjk2YjI2NzU3NTZhNmFlNDNlNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC0zOTUs
MjQgKzM5NSw2IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICB2aXNpYmxlVmlldy5yZXNpemUoKTsKICAgICB9LAogCi0gICAgY3JlYXRlQW5jaG9yOiBmdW5j
dGlvbih1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY2xhc3NlcywgdG9vbHRpcFRleHQp
Ci0gICAgewotICAgICAgICB2YXIgbGlua1RleHQgPSB0aGlzLmZvcm1hdEFuY2hvclRleHQodXJs
LCBsaW5lTnVtYmVyKTsKLSAgICAgICAgdmFyIGFuY2hvciA9IFdlYkluc3BlY3Rvci5saW5raWZ5
VVJMQXNOb2RlKHVybCwgbGlua1RleHQsIGNsYXNzZXMsIGZhbHNlLCB0b29sdGlwVGV4dCk7Ci0g
ICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJyZXNvdXJjZXMi
KTsKLSAgICAgICAgaWYgKGxpbmVOdW1iZXIgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIGFu
Y2hvci5zZXRBdHRyaWJ1dGUoImxpbmVfbnVtYmVyIiwgbGluZU51bWJlcik7Ci0gICAgICAgIHJl
dHVybiBhbmNob3I7Ci0gICAgfSwKLQotICAgIGZvcm1hdEFuY2hvclRleHQ6IGZ1bmN0aW9uKHVy
bCwgbGluZU51bWJlcikKLSAgICB7Ci0gICAgICAgIHZhciB0ZXh0ID0gV2ViSW5zcGVjdG9yLmRp
c3BsYXlOYW1lRm9yVVJMKHVybCk7Ci0gICAgICAgIGlmIChsaW5lTnVtYmVyICE9PSB1bmRlZmlu
ZWQpCi0gICAgICAgICAgICB0ZXh0ICs9ICI6IiArIChsaW5lTnVtYmVyICsgMSk7Ci0gICAgICAg
IHJldHVybiB0ZXh0OwotICAgIH0sCi0KICAgICBjYW5TaG93QW5jaG9yTG9jYXRpb246IGZ1bmN0
aW9uKGFuY2hvcikKICAgICB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFHcmlkVHJlZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFHcmlkVHJlZS5q
cwppbmRleCA3OTg4Njc0NTM2ZjU4MWJiNjMzZTkwYTgzMGE3MmI1YWM4YzY2YTRhLi41NDJlOTM1
ZjNiZGYyMzc0NDJlZDQ4YjJkMTI2NWQ5MjI4NWUwNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVEYXRhR3JpZFRyZWUuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlRGF0YUdyaWRUcmVlLmpzCkBA
IC05NiwxMCArOTYsOSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90b3R5
cGUgPSB7CiAgICAgICAgICAgICBjZWxsLmFkZFN0eWxlQ2xhc3MoImhpZ2hsaWdodCIpOwogCiAg
ICAgICAgIGlmICh0aGlzLnByb2ZpbGVOb2RlLnVybCkgewotICAgICAgICAgICAgdmFyIGxpbmVO
dW1iZXI7Ci0gICAgICAgICAgICBpZiAodGhpcy5wcm9maWxlTm9kZS5saW5lTnVtYmVyID4gMCkK
LSAgICAgICAgICAgICAgICBsaW5lTnVtYmVyID0gdGhpcy5wcm9maWxlTm9kZS5saW5lTnVtYmVy
OwotICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBXZWJJbnNwZWN0b3IubGlua2lmeVJlc291
cmNlQXNOb2RlKHRoaXMucHJvZmlsZU5vZGUudXJsLCAic2NyaXB0cyIsIGxpbmVOdW1iZXIsICJw
cm9maWxlLW5vZGUtZmlsZSIpOworICAgICAgICAgICAgLy8gRklYTUUoNjI3MjUpOiBzdGFjayB0
cmFjZSBsaW5lL2NvbHVtbiBudW1iZXJzIGFyZSBvbmUtYmFzZWQuCisgICAgICAgICAgICB2YXIg
bGluZU51bWJlciA9IHRoaXMucHJvZmlsZU5vZGUubGluZU51bWJlciA/IHRoaXMucHJvZmlsZU5v
ZGUubGluZU51bWJlciAtIDEgOiAwOworICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odGhpcy5w
cm9maWxlTm9kZS51cmwsIGxpbmVOdW1iZXIsIDAsICJwcm9maWxlLW5vZGUtZmlsZSIpOwogICAg
ICAgICAgICAgY2VsbC5pbnNlcnRCZWZvcmUodXJsRWxlbWVudCwgY2VsbC5maXJzdENoaWxkKTsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0c1BhbmVsLmpzCmluZGV4IGE1NjMyNmQzMzg1ZDU1MmMwOWFiNjIyNzQ2ZDYxMmU5MTM3
N2NiYzUuLjVlMjIxNWVhZDBjNjEzODdmZjhhNWFkMzhkNzlmNTczM2QwMGRiM2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBA
IC0yOCw3ICsyOCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbigpCiB7
CiAgICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcywgInNjcmlwdHMiKTsKIAotICAgIHRo
aXMuX3ByZXNlbnRhdGlvbk1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsKCk7CisgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwgPSBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbDsKIAogICAgIHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMo
KTsKIApAQCAtMzI0LDcgKzMyNCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlID0gewogCiAgICAgICAgIGlmIChmb2xkZXJOYW1lLmxlbmd0aCA+IDgwKQogICAgICAgICAg
ICAgZm9sZGVyTmFtZSA9ICJcdTIwMjYiICsgZm9sZGVyTmFtZS5zdWJzdHJpbmcoZm9sZGVyTmFt
ZS5sZW5ndGggLSA4MCk7Ci0gCisKICAgICAgICAgcmV0dXJuIHsgZm9sZGVyTmFtZTogZm9sZGVy
TmFtZSwgZGlzcGxheU5hbWU6IGRpc3BsYXlOYW1lfTsKICAgICB9LAogCkBAIC01NDUsMTQgKzU0
NSw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgeC5zaG93KHRoaXMudmlld3NDb250YWluZXJFbGVtZW50KTsKICAgICB9LAogCi0gICAgY3Jl
YXRlQW5jaG9yOiBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY2xhc3Nl
cywgdG9vbHRpcFRleHQpCi0gICAgewotICAgICAgICB2YXIgYW5jaG9yID0gV2ViSW5zcGVjdG9y
LlBhbmVsLnByb3RvdHlwZS5jcmVhdGVBbmNob3IuY2FsbCh0aGlzLCB1cmwsIGxpbmVOdW1iZXIs
IGNvbHVtbk51bWJlciwgY2xhc3NlcywgdG9vbHRpcFRleHQpOwotICAgICAgICBpZiAobGluZU51
bWJlciAhPT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwu
cmVnaXN0ZXJBbmNob3IodXJsLCBudWxsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHRoaXMu
X3VwZGF0ZUFuY2hvci5iaW5kKHRoaXMsIGFuY2hvcikpOwotICAgICAgICByZXR1cm4gYW5jaG9y
OwotICAgIH0sCi0KICAgICBjYW5TaG93QW5jaG9yTG9jYXRpb246IGZ1bmN0aW9uKGFuY2hvcikK
ICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9kZWJ1Z2dlckVuYWJsZWQgJiYgdGhpcy5fcHJl
c2VudGF0aW9uTW9kZWwuc291cmNlRmlsZUZvclNjcmlwdFVSTChhbmNob3IuaHJlZik7CkBAIC01
NjMsMTcgKzU1NSw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewog
ICAgICAgICB0aGlzLl9zaG93U291cmNlTGluZShhbmNob3IuZ2V0QXR0cmlidXRlKCJzb3VyY2Vf
ZmlsZV9pZCIpLCBwYXJzZUludChhbmNob3IuZ2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIpKSk7
CiAgICAgfSwKIAotICAgIF91cGRhdGVBbmNob3I6IGZ1bmN0aW9uKGFuY2hvciwgc291cmNlRmls
ZUlkLCBsaW5lTnVtYmVyKQotICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9w
cmVzZW50YXRpb25Nb2RlbC5zb3VyY2VGaWxlKHNvdXJjZUZpbGVJZCk7Ci0gICAgICAgIHZhciB1
cmwgPSBzb3VyY2VGaWxlLnVybCB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFtKSIp
OwotICAgICAgICBhbmNob3IudGV4dENvbnRlbnQgPSB0aGlzLmZvcm1hdEFuY2hvclRleHQodXJs
LCBsaW5lTnVtYmVyKQotICAgICAgICAvLyBVc2VkIGZvciBzaG93aW5nIGFuY2hvciBsb2NhdGlv
bi4KLSAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlw
dHMiKTsKLSAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgic291cmNlX2ZpbGVfaWQiLCBzb3Vy
Y2VGaWxlSWQpOwotICAgICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIsIGxp
bmVOdW1iZXIpOwotICAgIH0sCi0KICAgICBfc2hvd1NvdXJjZUxpbmU6IGZ1bmN0aW9uKHNvdXJj
ZUZpbGVJZCwgbGluZU51bWJlcikKICAgICB7CiAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRo
aXMuX3Nob3dTb3VyY2VGcmFtZUFuZEFkZFRvSGlzdG9yeShzb3VyY2VGaWxlSWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFu
ZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBh
bmUuanMKaW5kZXggZGNiMjIyOGUzMmRiMjM2ZDBhOTc3Njg4MWFmZWFmNWQyYzNjMzU4MS4uMDA0
Mjg5ZWVkNGNkMjE4ODc1ZTk3ZWM5N2E1OGIwMmRkMThlOGNhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCkBA
IC04MzYsNyArODM2LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydGllc1NlY3Rpb24gPSBm
dW5jdGlvbihwYXJlbnRQYW5lLCBzdHlsZVJ1bGUsIGVkaXRhYmxlLAogCiAgICAgZnVuY3Rpb24g
bGlua2lmeVVuY29weWFibGUodXJsLCBsaW5lKQogICAgIHsKLSAgICAgICAgdmFyIGxpbmsgPSBX
ZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHVybCwgInJlc291cmNlcyIsIGxpbmUg
KyAxKTsKKyAgICAgICAgdmFyIGxpbmsgPSBXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNO
b2RlKHVybCwgbGluZSk7CiAgICAgICAgIHJldHVybiBsaW5rOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4
IGY1YzRjZjdkZGIwYjYxZDcyY2FhMWFiMGQ1OWJkNmNjYzI2MDU2NWEuLjNmMjM1Y2ZjZmJkZDMz
NjVjMjRmZDYyNmIxMTdlYjJmYmZhNDYxZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTExMTUsMjEgKzExMTUsMjcg
QEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlw
ZS5HQ0V2ZW50OgogICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
IiVzIGNvbGxlY3RlZCIsIE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMuZGF0YS51c2VkSGVhcFNp
emVEZWx0YSkpOwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5S
ZWNvcmRUeXBlLlRpbWVyRmlyZToKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zY3JpcHRO
YW1lID8gV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZSh0aGlzLnNjcmlwdE5hbWUs
ICJzY3JpcHRzIiwgdGhpcy5zY3JpcHRMaW5lLCAiIiwgIiIpIDogdGhpcy5kYXRhLnRpbWVySWQ7
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NyaXB0TmFtZSA/IHRoaXMuX2xpbmtpZnlM
b2NhdGlvbih0aGlzLnNjcmlwdE5hbWUsIHRoaXMuc2NyaXB0TGluZSwgMCkgOiB0aGlzLmRhdGEu
dGltZXJJZDsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVj
b3JkVHlwZS5GdW5jdGlvbkNhbGw6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NyaXB0
TmFtZSA/IFdlYkluc3BlY3Rvci5saW5raWZ5UmVzb3VyY2VBc05vZGUodGhpcy5zY3JpcHROYW1l
LCAic2NyaXB0cyIsIHRoaXMuc2NyaXB0TGluZSwgIiIsICIiKSA6IG51bGw7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHRoaXMuc2NyaXB0TmFtZSA/IHRoaXMuX2xpbmtpZnlMb2NhdGlvbih0aGlz
LnNjcmlwdE5hbWUsIHRoaXMuc2NyaXB0TGluZSwgMCkgOiBudWxsOwogICAgICAgICAgICAgY2Fz
ZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkV2ZW50RGlzcGF0Y2g6CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YSA/IHRoaXMuZGF0YS50eXBlIDogbnVsbDsK
ICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5Q
YWludDoKICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhLndpZHRoICsgIlx1MjAwOVx1
MDBkN1x1MjAwOSIgKyB0aGlzLmRhdGEuaGVpZ2h0OwogICAgICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlRpbWVySW5zdGFsbDoKICAgICAgICAgICAg
IGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5UaW1lclJlbW92ZToK
LSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdGFja1RyYWNlID8gV2ViSW5zcGVjdG9yLmxp
bmtpZnlDYWxsRnJhbWVBc05vZGUodGhpcy5zdGFja1RyYWNlWzBdLCAiIikgOiB0aGlzLmRhdGEu
dGltZXJJZDsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGFja1RyYWNlKQorICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gdGhpcy5fbGlua2lmeUxvY2F0aW9uKHRoaXMuc3RhY2tUcmFjZVsw
XS51cmwsIHRoaXMuc3RhY2tUcmFjZVswXS5saW5lTnVtYmVyLCB0aGlzLnN0YWNrVHJhY2VbMF0u
Y29sdW1uTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
IHJldHVybiB0aGlzLmRhdGEudGltZXJJZDsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5QYXJzZUhUTUw6CiAgICAgICAgICAgICBjYXNlIFdl
Ykluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuUmVjYWxjdWxhdGVTdHlsZXM6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhY2tUcmFjZSA/IFdlYkluc3BlY3Rvci5saW5r
aWZ5Q2FsbEZyYW1lQXNOb2RlKHRoaXMuc3RhY2tUcmFjZVswXSwgIiIpIDogbnVsbDsKKyAgICAg
ICAgICAgICAgICBpZiAodGhpcy5zdGFja1RyYWNlKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gdGhpcy5fbGlua2lmeUxvY2F0aW9uKHRoaXMuc3RhY2tUcmFjZVswXS51cmwsIHRoaXMuc3Rh
Y2tUcmFjZVswXS5saW5lTnVtYmVyLCB0aGlzLnN0YWNrVHJhY2VbMF0uY29sdW1uTnVtYmVyKTsK
KyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwog
ICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkV2
YWx1YXRlU2NyaXB0OgotICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVybCA/IFdlYkluc3Bl
Y3Rvci5saW5raWZ5UmVzb3VyY2VBc05vZGUodGhpcy51cmwsICJzY3JpcHRzIiwgdGhpcy5kYXRh
LmxpbmVOdW1iZXIsICIiLCAiIikgOiBudWxsOworICAgICAgICAgICAgICAgIHJldHVybiB0aGlz
LnVybCA/IHRoaXMuX2xpbmtpZnlMb2NhdGlvbih0aGlzLnVybCwgdGhpcy5kYXRhLmxpbmVOdW1i
ZXIsIDApIDogbnVsbDsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdl
bnQuUmVjb3JkVHlwZS5YSFJSZWFkeVN0YXRlQ2hhbmdlOgogICAgICAgICAgICAgY2FzZSBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlhIUkxvYWQ6CiAgICAgICAgICAgICBj
YXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuU2NoZWR1bGVSZXNvdXJj
ZVJlcXVlc3Q6CkBAIC0xMTQ1LDYgKzExNTEsMTQgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAg
ICBfbGlua2lmeUxvY2F0aW9uOiBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJl
cikKKyAgICB7CisgICAgICAgIC8vIEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1
bW4gbnVtYmVycyBhcmUgb25lLWJhc2VkLgorICAgICAgICBsaW5lTnVtYmVyID0gbGluZU51bWJl
ciA/IGxpbmVOdW1iZXIgLSAxIDogMDsKKyAgICAgICAgY29sdW1uTnVtYmVyID0gY29sdW1uTnVt
YmVyID8gY29sdW1uTnVtYmVyIC0gMSA6IDA7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odXJsLCBsaW5lTnVtYmVy
LCBjb2x1bW5OdW1iZXIsICJ0aW1lbGluZS1kZXRhaWxzIik7CisgICAgfSwKKwogICAgIF9jYWxj
dWxhdGVBZ2dyZWdhdGVkU3RhdHM6IGZ1bmN0aW9uKGNhdGVnb3JpZXMpCiAgICAgewogICAgICAg
ICB0aGlzLl9hZ2dyZWdhdGVkU3RhdHMgPSB7fTsKQEAgLTEyMTIsNyArMTIyNiw3IEBAIFdlYklu
c3BlY3Rvci5UaW1lbGluZVBhbmVsLlBvcHVwQ29udGVudEhlbHBlci5wcm90b3R5cGUgPSB7CiAK
ICAgICBfYXBwZW5kTGlua1JvdzogZnVuY3Rpb24odGl0bGUsIHNjcmlwdE5hbWUsIHNjcmlwdExp
bmUpCiAgICAgewotICAgICAgICB2YXIgbGluayA9IFdlYkluc3BlY3Rvci5saW5raWZ5UmVzb3Vy
Y2VBc05vZGUoc2NyaXB0TmFtZSwgInNjcmlwdHMiLCBzY3JpcHRMaW5lLCAidGltZWxpbmUtZGV0
YWlscyIpOworICAgICAgICB2YXIgbGluayA9IHRoaXMuX2xpbmtpZnlMb2NhdGlvbihzY3JpcHRO
YW1lLCBzY3JpcHRMaW5lLCAwKTsKICAgICAgICAgdGhpcy5fYXBwZW5kRWxlbWVudFJvdyh0aXRs
ZSwgbGluayk7CiAgICAgfSwKIApAQCAtMTIyNyw3ICsxMjQxLDggQEAgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lUGFuZWwuUG9wdXBDb250ZW50SGVscGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAg
IHJvdy5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDZWxsKHN0YWNrRnJhbWUuZnVuY3Rpb25OYW1l
ID8gc3RhY2tGcmFtZS5mdW5jdGlvbk5hbWUgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihhbm9u
eW1vdXMgZnVuY3Rpb24pIiksICJ0aW1lbGluZS1mdW5jdGlvbi1uYW1lIikpOwogICAgICAgICAg
ICAgcm93LmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNlbGwoIiBAICIpKTsKICAgICAgICAgICAg
IHZhciBsaW5rQ2VsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7Ci0gICAgICAgICAg
ICBsaW5rQ2VsbC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0b3IubGlua2lmeUNhbGxGcmFtZUFzTm9k
ZShzdGFja0ZyYW1lLCAidGltZWxpbmUtZGV0YWlscyIpKTsKKyAgICAgICAgICAgIHZhciB1cmxF
bGVtZW50ID0gdGhpcy5fbGlua2lmeUxvY2F0aW9uKHN0YWNrRnJhbWUudXJsLCBzdGFja0ZyYW1l
LmxpbmVOdW1iZXIsIHN0YWNrRnJhbWUuY29sdW1uTnVtYmVyKTsKKyAgICAgICAgICAgIGxpbmtD
ZWxsLmFwcGVuZENoaWxkKHVybEVsZW1lbnQpOwogICAgICAgICAgICAgcm93LmFwcGVuZENoaWxk
KGxpbmtDZWxsKTsKICAgICAgICAgICAgIGZyYW1lc1RhYmxlLmFwcGVuZENoaWxkKHJvdyk7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
aW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuanMKaW5kZXggZTEzYWVmNjllZjBlMWM5ZTg0MjQ4ZDUzNmVjYjEzOGI5NjZlNTc1Ny4uN2E1
Zjg4Yjc5Zjk1NTAwNjBkNjI1ZWZkMzMyZmJiOTZiMTQ1NThkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTI0MCw3ICsyNDAsNyBA
QCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0b24u
dG9nZ2xlZCA9IGZhbHNlOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NldHRpbmdzU2NyZWVu
OwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGlmICghdGhpcy5fc2V0dGluZ3NTY3Jl
ZW4pIHsKICAgICAgICAgICAgIHRoaXMuX3NldHRpbmdzU2NyZWVuID0gbmV3IFdlYkluc3BlY3Rv
ci5TZXR0aW5nc1NjcmVlbigpOwogICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4uc2hv
dyhvbmhpZGUuYmluZCh0aGlzKSk7CkBAIC01MTksNiArNTE5LDcgQEAgV2ViSW5zcGVjdG9yLmRv
TG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuY3NzTW9kZWwgPSBuZXcgV2ViSW5z
cGVjdG9yLkNTU1N0eWxlTW9kZWwoKTsKICAgICB0aGlzLmRlYnVnZ2VyTW9kZWwgPSBuZXcgV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwoKTsKKyAgICB0aGlzLmRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwoKTsKIAog
ICAgIHRoaXMuc2VhcmNoQ29udHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2VhcmNoQ29udHJv
bGxlcigpOwogICAgIHRoaXMuZG9tQnJlYWtwb2ludHNTaWRlYmFyUGFuZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZSgpOwpAQCAtMTMyMCwxOSArMTMyMSwyMSBA
QCBXZWJJbnNwZWN0b3IubGlua2lmeVVSTCA9IGZ1bmN0aW9uKHVybCwgbGlua1RleHQsIGNsYXNz
ZXMsIGlzRXh0ZXJuYWwsIHRvb2x0aXBUZQogICAgIHJldHVybiBXZWJJbnNwZWN0b3IubGlua2lm
eVVSTEFzTm9kZSh1cmwsIGxpbmtUZXh0LCBjbGFzc2VzLCBpc0V4dGVybmFsLCB0b29sdGlwVGV4
dCkub3V0ZXJIVE1MOwogfQogCi1XZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlID0g
ZnVuY3Rpb24odXJsLCBwcmVmZXJyZWRQYW5lbCwgb25lQmFzZWRMaW5lTnVtYmVyLCBjbGFzc2Vz
LCB0b29sdGlwVGV4dCkKK1dlYkluc3BlY3Rvci5mb3JtYXRMaW5rVGV4dCA9IGZ1bmN0aW9uKHVy
bCwgbGluZU51bWJlcikKIHsKLSAgICBwcmVmZXJyZWRQYW5lbCA9IHByZWZlcnJlZFBhbmVsIHx8
ICJzY3JpcHRzIjsKLSAgICAvLyBGSVhNRSg2MjcyNSk6IHN0YWNrIHRyYWNlIGxpbmUvY29sdW1u
IG51bWJlcnMgYXJlIG9uZS1iYXNlZC4KLSAgICB2YXIgbGluZU51bWJlciA9IG9uZUJhc2VkTGlu
ZU51bWJlciA/IG9uZUJhc2VkTGluZU51bWJlciAtIDEgOiB1bmRlZmluZWQ7Ci0gICAgcmV0dXJu
IHRoaXMucGFuZWxzW3ByZWZlcnJlZFBhbmVsXS5jcmVhdGVBbmNob3IodXJsLCBsaW5lTnVtYmVy
LCAwLCBjbGFzc2VzLCB0b29sdGlwVGV4dCk7CisgICAgdmFyIHRleHQgPSBXZWJJbnNwZWN0b3Iu
ZGlzcGxheU5hbWVGb3JVUkwodXJsKTsKKyAgICBpZiAobGluZU51bWJlciAhPT0gdW5kZWZpbmVk
KQorICAgICAgICB0ZXh0ICs9ICI6IiArIChsaW5lTnVtYmVyICsgMSk7CisgICAgcmV0dXJuIHRl
eHQ7CiB9CiAKLVdlYkluc3BlY3Rvci5saW5raWZ5Q2FsbEZyYW1lQXNOb2RlID0gZnVuY3Rpb24o
Y2FsbEZyYW1lLCBjbGFzc2VzLCB0b29sdGlwVGV4dCkKK1dlYkluc3BlY3Rvci5saW5raWZ5UmVz
b3VyY2VBc05vZGUgPSBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNsYXNzZXMsIHRvb2x0aXBU
ZXh0KQogewotICAgIC8vIEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1bW4gbnVt
YmVycyBhcmUgb25lLWJhc2VkLgotICAgIHZhciBjb2x1bW5OdW1iZXIgPSBjYWxsRnJhbWUuY29s
dW1uTnVtYmVyID8gY2FsbEZyYW1lLmNvbHVtbk51bWJlciAtIDEgOiAwOwotICAgIHJldHVybiB0
aGlzLnBhbmVscy5zY3JpcHRzLmNyZWF0ZUFuY2hvcihjYWxsRnJhbWUudXJsLCBjYWxsRnJhbWUu
bGluZU51bWJlciAtIDEsIGNvbHVtbk51bWJlciwgY2xhc3NlcywgdG9vbHRpcFRleHQpOworICAg
IHZhciBsaW5rVGV4dCA9IHRoaXMuZm9ybWF0TGlua1RleHQodXJsLCBsaW5lTnVtYmVyKTsKKyAg
ICB2YXIgYW5jaG9yID0gdGhpcy5saW5raWZ5VVJMQXNOb2RlKHVybCwgbGlua1RleHQsIGNsYXNz
ZXMsIGZhbHNlLCB0b29sdGlwVGV4dCk7CisgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgicHJlZmVy
cmVkX3BhbmVsIiwgInJlc291cmNlcyIpOworICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoImxpbmVf
bnVtYmVyIiwgbGluZU51bWJlcik7CisgICAgcmV0dXJuIGFuY2hvcjsKIH0KIAogV2ViSW5zcGVj
dG9yLnJlc291cmNlVVJMRm9yUmVsYXRlZE5vZGUgPSBmdW5jdGlvbihub2RlLCB1cmwpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102905</attachid>
            <date>2011-08-04 06:46:58 -0700</date>
            <delta_ts>2011-08-04 07:07:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65612-20110804174656.patch</filename>
            <type>text/plain</type>
            <size>27190</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIzNjUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy1zeW50YXgtZXJyb3ItZXhwZWN0
ZWQudHh0CmluZGV4IDljYjAxYzJhN2JiYTE4NTVjNWRhOGNmOWY0MzIwNTYxYWZhMmE4ZmYuLjc1
NjhlYjA0ZDMyY2NiYWRhMDVkYWQzNDdjZGIyMWY1NDAxZjgyMzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLXN5bnRheC1lcnJvci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb2ctc3lu
dGF4LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIENPTlNPTEUgTUVTU0FHRTog
bGluZSAxOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKScKIFRlc3RzIHRoYXQgc3lu
dGF4IGVycm9ycyBhcmUgbG9nZ2VkIGludG8gY29uc29sZSBhbmQgZG9lc24ndCBjYXVzZSBicm93
c2VyIGNyYXNoLgogCi1zeW50YXgtZXJyb3IuanM6MVN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRv
a2VuICcpJworc3ludGF4LWVycm9yLmpzU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJykn
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtbG9nLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy1zeW50YXgt
ZXJyb3ItZXhwZWN0ZWQudHh0CmluZGV4IDY5NjllZjEzMDdlMzQyZjU5ZDMyMTM0NTM0Yzc5YzVh
ZGY2ODk4ZWUuLjU4ZWQ3OGNlY2JhZTM0MTViMmY1NzYzNDBiZGY4ZjBlYzEzMDhiNzMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtbG9nLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb2ctc3ludGF4LWVycm9y
LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBV
bmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiApCiBUZXN0cyB0aGF0IHN5bnRh
eCBlcnJvcnMgYXJlIGxvZ2dlZCBpbnRvIGNvbnNvbGUgYW5kIGRvZXNuJ3QgY2F1c2UgYnJvd3Nl
ciBjcmFzaC4KIAotc3ludGF4LWVycm9yLmpzOjFVbmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiApCitzeW50YXgtZXJyb3IuanNVbmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5YjhiZmYzOGMyYjQxYWQxYmQ5ZTFiM2Q2ZjE3
ZGNkMjM2ZGZhZjAyLi5jNzM5YjViZTMyZGUwNDY5MzFmZmQ0NjNhNDNjYWY3OTc0NDQ0ODg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDgtMDQgIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcmVmYWN0
b3IgbGlua3MgY3JlYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIGl0IGlzIHJlZmFjdG9yaW5nLCBtb2RpZmllZCBjb2Rl
IGNvdmVyZWQgYnkgc2NyaXB0LWZvcm1hdHRlci5odG1sIHRlc3QuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fZm9ybWF0TWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlLl9saW5raWZ5TG9jYXRpb24pOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fcG9wdWxhdGVTdGFja1Ry
YWNlVHJlZUVsZW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5hZGRTb3VyY2VNYXBwaW5nTGlzdGVuZXIpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLnJlbW92ZVNvdXJj
ZU1hcHBpbmdMaXN0ZW5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5wcm90b3R5cGUubGlua2lmeUxvY2F0aW9uLnVwZGF0ZUFuY2hvci5kaWRHZXRM
b2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5wcm90b3R5cGUubGlua2lmeUxvY2F0aW9uLnVwZGF0ZUFuY2hvcik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUubGlua2lmeUxvY2F0
aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnBy
b3RvdHlwZS5zZXRGb3JtYXRTb3VyY2VGaWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3NvdXJjZUZpbGVGb3JTY3JpcHQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
Ll9kZWJ1Z2dlclJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlz
dGVuZXJzU2lkZWJhclBhbmUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0RhdGFHcmlkTm9kZS5w
cm90b3R5cGUuX3JlZnJlc2hJbml0aWF0b3JDZWxsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1BhbmVsLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURh
dGFHcmlkVHJlZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2Rl
LnByb3RvdHlwZS5jcmVhdGVDZWxsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlLl9mb2xkZXJBbmREaXNwbGF5TmFtZUZvclNjcmlwdFVSTCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uLmxpbmtpZnlVbmNvcHlhYmxlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxp
bmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQucHJvdG90eXBlLl9nZXRSZWNvcmREZXRhaWxzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5
cGUuX2xpbmtpZnlMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5l
bC5Qb3B1cENvbnRlbnRIZWxwZXIucHJvdG90eXBlLl9hcHBlbmRMaW5rUm93KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLlBvcHVwQ29udGVudEhlbHBlci5wcm90b3R5cGUu
X2FwcGVuZFN0YWNrVHJhY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9zaG93U2V0dGluZ3NTY3JlZW4pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLmZvcm1hdExpbmtUZXh0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5saW5raWZ5UmVzb3VyY2VBc05vZGUpOgorCiAyMDExLTA4LTA0ICBUb21teSBXaWRlbmZseWNo
dCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFtIEFQSTogUmVuYW1l
IFN0cmVhbUV2ZW50IHRvIE1lZGlhU3RyZWFtRXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDE2ZTYwMjEzMjI5OTVlZjg5
ZDY5MDZkZGNlMDliZjQyMmQ5Njc2NGUuLjk0NDFhNmE2YzhlZjc5MGE3MDI5ZmU1NjVkY2YxZWVm
YTY1ZjQ4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
Q29uc29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9D
b25zb2xlVmlldy5qcwpAQCAtNzQwLDcgKzc0MCw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmll
dy5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIFByZXZlbnQgaW5maW5pdGUgZXhwYW5zaW9uIG9m
IGNyb3NzLXJlZmVyZW5jaW5nIGFycmF5cy4KICAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdChv
dXRwdXQsIG91dHB1dC5zdWJ0eXBlICYmIG91dHB1dC5zdWJ0eXBlID09PSAiYXJyYXkiKTsKICAg
ICB9LAotICAgIAorCiAgICAgZ2V0IHNjcm9sbExlZnQoKQogICAgIHsKICAgICAgICAgcmV0dXJu
IHRoaXMubWVzc2FnZXNFbGVtZW50LnNjcm9sbExlZnQ7CkBAIC04NDQsMTAgKzg0NCwxMCBAQCBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9m
b3JtYXR0ZWRNZXNzYWdlLmNsYXNzTmFtZSA9ICJjb25zb2xlLW1lc3NhZ2UtdGV4dCBzb3VyY2Ut
Y29kZSI7CiAKICAgICAgICAgaWYgKHRoaXMuX3N0YWNrVHJhY2UgJiYgdGhpcy5fc3RhY2tUcmFj
ZS5sZW5ndGggJiYgdGhpcy5fc3RhY2tUcmFjZVswXS51cmwpIHsKLSAgICAgICAgICAgIHZhciB1
cmxFbGVtZW50ID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlDYWxsRnJhbWVBc05vZGUodGhpcy5fc3Rh
Y2tUcmFjZVswXSwgImNvbnNvbGUtbWVzc2FnZS11cmwiKTsKKyAgICAgICAgICAgIHZhciB1cmxF
bGVtZW50ID0gdGhpcy5fbGlua2lmeUxvY2F0aW9uKHRoaXMuX3N0YWNrVHJhY2VbMF0udXJsLCB0
aGlzLl9zdGFja1RyYWNlWzBdLmxpbmVOdW1iZXIsIHRoaXMuX3N0YWNrVHJhY2VbMF0uY29sdW1u
TnVtYmVyKTsKICAgICAgICAgICAgIHRoaXMuX2Zvcm1hdHRlZE1lc3NhZ2UuYXBwZW5kQ2hpbGQo
dXJsRWxlbWVudCk7CiAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51cmwgJiYgdGhpcy51cmwgIT09
ICJ1bmRlZmluZWQiKSB7Ci0gICAgICAgICAgICB2YXIgdXJsRWxlbWVudCA9IFdlYkluc3BlY3Rv
ci5saW5raWZ5UmVzb3VyY2VBc05vZGUodGhpcy51cmwsICJzY3JpcHRzIiwgdGhpcy5saW5lLCAi
Y29uc29sZS1tZXNzYWdlLXVybCIpOworICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSB0aGlz
Ll9saW5raWZ5TG9jYXRpb24odGhpcy51cmwsIHRoaXMubGluZU51bWJlciwgMCk7CiAgICAgICAg
ICAgICB0aGlzLl9mb3JtYXR0ZWRNZXNzYWdlLmFwcGVuZENoaWxkKHVybEVsZW1lbnQpOwogICAg
ICAgICB9CiAKQEAgLTg4MCw2ICs4ODAsMTQgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdl
LnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5tZXNzYWdlID0gdGhpcy5fZm9ybWF0dGVkTWVz
c2FnZS50ZXh0Q29udGVudDsKICAgICB9LAogCisgICAgX2xpbmtpZnlMb2NhdGlvbjogZnVuY3Rp
b24odXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCisgICAgeworICAgICAgICAvLyBGSVhN
RSg2MjcyNSk6IHN0YWNrIHRyYWNlIGxpbmUvY29sdW1uIG51bWJlcnMgYXJlIG9uZS1iYXNlZC4K
KyAgICAgICAgbGluZU51bWJlciA9IGxpbmVOdW1iZXIgPyBsaW5lTnVtYmVyIC0gMSA6IGxpbmVO
dW1iZXI7CisgICAgICAgIGNvbHVtbk51bWJlciA9IGNvbHVtbk51bWJlciA/IGNvbHVtbk51bWJl
ciAtIDEgOiAwOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwubGlua2lmeUxvY2F0aW9uKHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCAi
Y29uc29sZS1tZXNzYWdlLXVybCIpOworICAgIH0sCisKICAgICBpc0Vycm9yT3JXYXJuaW5nOiBm
dW5jdGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gKHRoaXMubGV2ZWwgPT09IFdlYkluc3Bl
Y3Rvci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuV2FybmluZyB8fCB0aGlzLmxldmVsID09
PSBXZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yKTsKQEAgLTEw
NDQsNyArMTA1Miw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKG1lc3NhZ2VUZXh0RWxlbWVudCk7CiAK
ICAgICAgICAgICAgIGlmIChmcmFtZS51cmwpIHsKLSAgICAgICAgICAgICAgICB2YXIgdXJsRWxl
bWVudCA9IFdlYkluc3BlY3Rvci5saW5raWZ5Q2FsbEZyYW1lQXNOb2RlKGZyYW1lLCAiY29uc29s
ZS1tZXNzYWdlLXVybCIpOworICAgICAgICAgICAgICAgIHZhciB1cmxFbGVtZW50ID0gdGhpcy5f
bGlua2lmeUxvY2F0aW9uKGZyYW1lLnVybCwgZnJhbWUubGluZU51bWJlciwgZnJhbWUuY29sdW1u
TnVtYmVyKTsKICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKHVybEVsZW1lbnQp
OwogICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggMzMw
YTQ1NDZmMDA0OGE4ODdkODQ2ZGIwNzIwNDcwMjVkOTI4MDRhNS4uOWE2YmZhNWZlZDAxZmQ2N2Ey
MWY0MDVkMTU0NjE2MzZmMzE1ODA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpA
QCAtMzQsNyArMzQsOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9
IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9mb3JtYXR0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlw
dEZvcm1hdHRlcigpOwogICAgIHRoaXMuX3NvdXJjZUZpbGVzID0ge307CiAgICAgdGhpcy5fbWVz
c2FnZXMgPSBbXTsKLSAgICB0aGlzLl9hbmNob3JzID0gW107CisgICAgLy8gRklYTUU6IG1vdmUg
dGhpcyB0byBSYXdTb3VyY2VDb2RlIHdoZW4gaXQncyBub3QgcmUtY3JlYXRlZCBpbiBwcmV0dHkt
cHJpbnQgbW9kZS4KKyAgICB0aGlzLl9zb3VyY2VNYXBwaW5nTGlzdGVuZXJzID0gW107CiAgICAg
dGhpcy5fYnJlYWtwb2ludHNCeURlYnVnZ2VySWQgPSB7fTsKICAgICB0aGlzLl9icmVha3BvaW50
c1dpdGhvdXRTb3VyY2VGaWxlID0ge307CiAKQEAgLTExOSwyMCArMTIwLDQyIEBAIFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhp
cy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXS5yZXF1ZXN0Q29udGVudChjYWxsYmFjayk7CiAg
ICAgfSwKIAotICAgIHJlZ2lzdGVyQW5jaG9yOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNvdXJjZUlk
LCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHVwZGF0ZUhhbmRsZXIpCisgICAgYWRkU291cmNl
TWFwcGluZ0xpc3RlbmVyOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNvdXJjZUlkLCBsaXN0ZW5lcikK
ICAgICB7Ci0gICAgICAgIHZhciBhbmNob3IgPSB7IHNvdXJjZVVSTDogc291cmNlVVJMLCBzb3Vy
Y2VJZDogc291cmNlSWQsIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29s
dW1uTnVtYmVyLCB1cGRhdGVIYW5kbGVyOiB1cGRhdGVIYW5kbGVyIH07Ci0gICAgICAgIHRoaXMu
X2FuY2hvcnMucHVzaChhbmNob3IpOwotICAgICAgICB0aGlzLl91cGRhdGVBbmNob3IoYW5jaG9y
KTsKKyAgICAgICAgdGhpcy5fc291cmNlTWFwcGluZ0xpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTsK
ICAgICB9LAogCi0gICAgX3VwZGF0ZUFuY2hvcjogZnVuY3Rpb24oYW5jaG9yKQorICAgIHJlbW92
ZVNvdXJjZU1hcHBpbmdMaXN0ZW5lcjogZnVuY3Rpb24oc291cmNlVVJMLCBzb3VyY2VJZCwgbGlz
dGVuZXIpCiAgICAgewotICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVG
b3JTY3JpcHQoYW5jaG9yLnNvdXJjZVVSTCwgYW5jaG9yLnNvdXJjZUlkKTsKLSAgICAgICAgaWYg
KCFzb3VyY2VGaWxlKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAvLyBGSVhNRTogaW1w
bGVtZW50IHRoaXMuCisgICAgfSwKIAotICAgICAgICB0aGlzLl9zY3JpcHRMb2NhdGlvblRvVUlM
b2NhdGlvbihhbmNob3Iuc291cmNlVVJMLCBhbmNob3Iuc291cmNlSWQsIGFuY2hvci5saW5lTnVt
YmVyLCBhbmNob3IuY29sdW1uTnVtYmVyLCBhbmNob3IudXBkYXRlSGFuZGxlcik7CisgICAgbGlu
a2lmeUxvY2F0aW9uOiBmdW5jdGlvbihzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJl
ciwgY2xhc3NlcykKKyAgICB7CisgICAgICAgIHZhciBsaW5rVGV4dCA9IFdlYkluc3BlY3Rvci5m
b3JtYXRMaW5rVGV4dChzb3VyY2VVUkwsIGxpbmVOdW1iZXIpOworICAgICAgICB2YXIgYW5jaG9y
ID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUoc291cmNlVVJMLCBsaW5rVGV4dCwgY2xh
c3NlcywgZmFsc2UpOworCisgICAgICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmls
ZUZvclNjcmlwdChzb3VyY2VVUkwpOworICAgICAgICBpZiAoIXNvdXJjZUZpbGUpIHsKKyAgICAg
ICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJyZXNvdXJjZXMi
KTsKKyAgICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoImxpbmVfbnVtYmVyIiwgbGluZU51
bWJlcik7CisgICAgICAgICAgICByZXR1cm4gYW5jaG9yOworICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gdXBkYXRlQW5jaG9yKCkKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rpb24g
ZGlkR2V0TG9jYXRpb24oc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIGFuY2hvci50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5mb3JtYXRM
aW5rVGV4dChzb3VyY2VGaWxlLnVybCwgbGluZU51bWJlcik7CisgICAgICAgICAgICAgICAgYW5j
aG9yLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlwdHMiKTsKKyAgICAgICAg
ICAgICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJzb3VyY2VfZmlsZV9pZCIsIHNvdXJjZUZpbGVJ
ZCk7CisgICAgICAgICAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgibGluZV9udW1iZXIiLCBs
aW5lTnVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuX3NjcmlwdExvY2F0
aW9uVG9VSUxvY2F0aW9uKHNvdXJjZVVSTCwgbnVsbCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVy
LCBkaWRHZXRMb2NhdGlvbi5iaW5kKHRoaXMpKTsKKyAgICAgICAgfQorICAgICAgICB1cGRhdGVB
bmNob3IuY2FsbCh0aGlzKTsKKyAgICAgICAgdGhpcy5hZGRTb3VyY2VNYXBwaW5nTGlzdGVuZXIo
c291cmNlVVJMLCBudWxsLCB1cGRhdGVBbmNob3IuYmluZCh0aGlzKSk7CisgICAgICAgIHJldHVy
biBhbmNob3I7CiAgICAgfSwKIAogICAgIF9wYXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKGV2
ZW50KQpAQCAtMjgxLDggKzMwNCw5IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNzYWdl
cy5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIHRoaXMuX2FkZENvbnNvbGVNZXNzYWdlKG1lc3Nh
Z2VzW2ldKTsKIAotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2FuY2hvcnMubGVu
Z3RoOyArK2kpCi0gICAgICAgICAgICB0aGlzLl91cGRhdGVBbmNob3IodGhpcy5fYW5jaG9yc1tp
XSk7CisgICAgICAgIC8vIEZJWE1FOiBtb3ZlIHRoaXMgdG8gUmF3U291cmNlQ29kZS4KKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zb3VyY2VNYXBwaW5nTGlzdGVuZXJzLmxlbmd0
aDsgKytpKQorICAgICAgICAgICAgdGhpcy5fc291cmNlTWFwcGluZ0xpc3RlbmVyc1tpXSgpOwog
CiAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5jYWxsRnJhbWVzKQogICAg
ICAgICAgICAgdGhpcy5fZGVidWdnZXJQYXVzZWQoKTsKQEAgLTYxNiw4ICs2NDAsMTIgQEAgV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogCiAgICAg
X3NvdXJjZUZpbGVGb3JTY3JpcHQ6IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc291cmNlSWQpCiAgICAg
ewotICAgICAgICBpZiAoIXNvdXJjZVVSTCkKLSAgICAgICAgICAgIHNvdXJjZVVSTCA9IFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNvdXJjZUlEKHNvdXJjZUlkKS5zb3VyY2VV
Ukw7CisgICAgICAgIGlmICghc291cmNlVVJMKSB7CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0g
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoc291cmNlSWQpOwor
ICAgICAgICAgICAgaWYgKCFzY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgc291cmNlVVJMID0gc2NyaXB0LnNvdXJjZVVSTDsKKyAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gdGhpcy5fc291cmNlRmlsZXNbdGhpcy5fY3JlYXRlU291cmNlRmlsZUlkKHNvdXJjZVVS
TCwgc291cmNlSWQpXTsKICAgICB9LAogCkBAIC02NTgsNyArNjg2LDcgQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgIF9kZWJ1Z2dlclJl
c2V0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9yZXNldCgpOwotICAgICAgICB0
aGlzLl9hbmNob3JzID0gW107CisgICAgICAgIHRoaXMuX3NvdXJjZU1hcHBpbmdMaXN0ZW5lcnMg
PSBbXTsKICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uQ2FsbEZyYW1lcyA9IFtdOwogICAgICAg
ICB0aGlzLl9zZWxlY3RlZENhbGxGcmFtZUluZGV4ID0gMDsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBh
bmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJz
U2lkZWJhclBhbmUuanMKaW5kZXggMzMzMjNiMGQ5NDI1NGIwZjU4ZWRjZmYzMmI5MGI0MWU1ZTgy
MjA1NS4uY2YyYTRjYWUyMjFjNmE0OTJhNjc2NzllYmY5NjgyMDg4OWIxYzYzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGVi
YXJQYW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRM
aXN0ZW5lcnNTaWRlYmFyUGFuZS5qcwpAQCAtMjM2LDcgKzIzNiwxMSBAQCBXZWJJbnNwZWN0b3Iu
RXZlbnRMaXN0ZW5lckJhci5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIFJlcXVpcmVzIHRoYXQg
RnVuY3Rpb24udG9TdHJpbmcoKSByZXR1cm4gYXQgbGVhc3QgdGhlIGZ1bmN0aW9uJ3Mgc2lnbmF0
dXJlLgogICAgICAgICBpZiAodGhpcy5ldmVudExpc3RlbmVyLmxvY2F0aW9uKSB7CiAgICAgICAg
ICAgICB0aGlzLnN1YnRpdGxlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAgICAgICAgICAg
dGhpcy5zdWJ0aXRsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNv
dXJjZUFzTm9kZSh0aGlzLmV2ZW50TGlzdGVuZXIubG9jYXRpb24uc291cmNlSWQsICJzY3JpcHRz
IiwgdGhpcy5ldmVudExpc3RlbmVyLmxvY2F0aW9uLmxpbmVOdW1iZXIpKTsKKyAgICAgICAgICAg
IC8vIEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1bW4gbnVtYmVycyBhcmUgb25l
LWJhc2VkLgorICAgICAgICAgICAgdmFyIHVybCA9IHRoaXMuZXZlbnRMaXN0ZW5lci5sb2NhdGlv
bi5zb3VyY2VJZDsKKyAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gdGhpcy5ldmVudExpc3Rl
bmVyLmxvY2F0aW9uLmxpbmVOdW1iZXIgLSAxOworICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQg
PSBXZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24o
dXJsLCBsaW5lTnVtYmVyLCAwKTsKKyAgICAgICAgICAgIHRoaXMuc3VidGl0bGVFbGVtZW50LmFw
cGVuZENoaWxkKHVybEVsZW1lbnQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdmFy
IG1hdGNoID0gdGhpcy5ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5Lm1hdGNoKC9mdW5jdGlvbiAo
W15cKF0rPylcKC8pOwogICAgICAgICAgICAgaWYgKG1hdGNoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwppbmRleCAwOWExZjFmYzRm
YTBiOWVkMjBlYzBjYTM0ZjczMDhlMTJlMTM5ZTdjLi40ZTYxNjY1MWZjZTA0NGFhZTc2ODdmYTRm
MDMyMDhmYmRkMjdkNDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL05ldHdvcmtQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL05ldHdvcmtQYW5lbC5qcwpAQCAtMTk3NywxMSArMTk3NywxMiBAQCBXZWJJbnNwZWN0
b3IuTmV0d29ya0RhdGFHcmlkTm9kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgdGhpcy5faW5pdGlh
dG9yQ2VsbC50aXRsZSA9IHRvcEZyYW1lLnVybCArICI6IiArIHRvcEZyYW1lLmxpbmVOdW1iZXI7
Ci0gICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhdG9yQ2VsbC5hcHBlbmRDaGlsZChXZWJJbnNw
ZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHRvcEZyYW1lLnVybCwgInNjcmlwdHMiLCB0b3BG
cmFtZS5saW5lTnVtYmVyKSk7CisgICAgICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odG9wRnJh
bWUudXJsLCB0b3BGcmFtZS5saW5lTnVtYmVyIC0gMSwgMCk7CisgICAgICAgICAgICAgICAgdGhp
cy5faW5pdGlhdG9yQ2VsbC5hcHBlbmRDaGlsZCh1cmxFbGVtZW50KTsKICAgICAgICAgICAgICAg
ICB0aGlzLl9hcHBlbmRTdWJ0aXRsZSh0aGlzLl9pbml0aWF0b3JDZWxsLCBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlNjcmlwdCIpKTsKICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGluaXRpYXRvci50
eXBlID09PSAicGFyc2VyIgogICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYXRvckNlbGwudGl0
bGUgPSBpbml0aWF0b3IudXJsICsgIjoiICsgaW5pdGlhdG9yLmxpbmVOdW1iZXI7Ci0gICAgICAg
ICAgICAgICAgdGhpcy5faW5pdGlhdG9yQ2VsbC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0b3IubGlu
a2lmeVJlc291cmNlQXNOb2RlKGluaXRpYXRvci51cmwsICJyZXNvdXJjZXMiLCBpbml0aWF0b3Iu
bGluZU51bWJlcikpOworICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYXRvckNlbGwuYXBwZW5k
Q2hpbGQoV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZShpbml0aWF0b3IudXJsLCBp
bml0aWF0b3IubGluZU51bWJlciAtIDEpKTsKICAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmRT
dWJ0aXRsZSh0aGlzLl9pbml0aWF0b3JDZWxsLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhcnNl
ciIpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvUGFuZWwuanMKaW5kZXggZmNkZWQxYmRiYzc1OGYxY2U0OWRmZWI2NDY2MTBi
NDk3YjdjMGM5ZC4uN2FlZDc3NWQ0MTYyN2M3M2IwNjVhNjk2YjI2NzU3NTZhNmFlNDNlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC0zOTUsMjQg
KzM5NSw2IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2
aXNpYmxlVmlldy5yZXNpemUoKTsKICAgICB9LAogCi0gICAgY3JlYXRlQW5jaG9yOiBmdW5jdGlv
bih1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY2xhc3NlcywgdG9vbHRpcFRleHQpCi0g
ICAgewotICAgICAgICB2YXIgbGlua1RleHQgPSB0aGlzLmZvcm1hdEFuY2hvclRleHQodXJsLCBs
aW5lTnVtYmVyKTsKLSAgICAgICAgdmFyIGFuY2hvciA9IFdlYkluc3BlY3Rvci5saW5raWZ5VVJM
QXNOb2RlKHVybCwgbGlua1RleHQsIGNsYXNzZXMsIGZhbHNlLCB0b29sdGlwVGV4dCk7Ci0gICAg
ICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJyZXNvdXJjZXMiKTsK
LSAgICAgICAgaWYgKGxpbmVOdW1iZXIgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIGFuY2hv
ci5zZXRBdHRyaWJ1dGUoImxpbmVfbnVtYmVyIiwgbGluZU51bWJlcik7Ci0gICAgICAgIHJldHVy
biBhbmNob3I7Ci0gICAgfSwKLQotICAgIGZvcm1hdEFuY2hvclRleHQ6IGZ1bmN0aW9uKHVybCwg
bGluZU51bWJlcikKLSAgICB7Ci0gICAgICAgIHZhciB0ZXh0ID0gV2ViSW5zcGVjdG9yLmRpc3Bs
YXlOYW1lRm9yVVJMKHVybCk7Ci0gICAgICAgIGlmIChsaW5lTnVtYmVyICE9PSB1bmRlZmluZWQp
Ci0gICAgICAgICAgICB0ZXh0ICs9ICI6IiArIChsaW5lTnVtYmVyICsgMSk7Ci0gICAgICAgIHJl
dHVybiB0ZXh0OwotICAgIH0sCi0KICAgICBjYW5TaG93QW5jaG9yTG9jYXRpb246IGZ1bmN0aW9u
KGFuY2hvcikKICAgICB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFHcmlkVHJlZS5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFHcmlkVHJlZS5qcwpp
bmRleCA3OTg4Njc0NTM2ZjU4MWJiNjMzZTkwYTgzMGE3MmI1YWM4YzY2YTRhLi41NDJlOTM1ZjNi
ZGYyMzc0NDJlZDQ4YjJkMTI2NWQ5MjI4NWUwNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVEYXRhR3JpZFRyZWUuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlRGF0YUdyaWRUcmVlLmpzCkBAIC05
NiwxMCArOTYsOSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBjZWxsLmFkZFN0eWxlQ2xhc3MoImhpZ2hsaWdodCIpOwogCiAgICAg
ICAgIGlmICh0aGlzLnByb2ZpbGVOb2RlLnVybCkgewotICAgICAgICAgICAgdmFyIGxpbmVOdW1i
ZXI7Ci0gICAgICAgICAgICBpZiAodGhpcy5wcm9maWxlTm9kZS5saW5lTnVtYmVyID4gMCkKLSAg
ICAgICAgICAgICAgICBsaW5lTnVtYmVyID0gdGhpcy5wcm9maWxlTm9kZS5saW5lTnVtYmVyOwot
ICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNl
QXNOb2RlKHRoaXMucHJvZmlsZU5vZGUudXJsLCAic2NyaXB0cyIsIGxpbmVOdW1iZXIsICJwcm9m
aWxlLW5vZGUtZmlsZSIpOworICAgICAgICAgICAgLy8gRklYTUUoNjI3MjUpOiBzdGFjayB0cmFj
ZSBsaW5lL2NvbHVtbiBudW1iZXJzIGFyZSBvbmUtYmFzZWQuCisgICAgICAgICAgICB2YXIgbGlu
ZU51bWJlciA9IHRoaXMucHJvZmlsZU5vZGUubGluZU51bWJlciA/IHRoaXMucHJvZmlsZU5vZGUu
bGluZU51bWJlciAtIDEgOiAwOworICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odGhpcy5wcm9m
aWxlTm9kZS51cmwsIGxpbmVOdW1iZXIsIDAsICJwcm9maWxlLW5vZGUtZmlsZSIpOwogICAgICAg
ICAgICAgY2VsbC5pbnNlcnRCZWZvcmUodXJsRWxlbWVudCwgY2VsbC5maXJzdENoaWxkKTsKICAg
ICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzCmluZGV4IGE1NjMyNmQzMzg1ZDU1MmMwOWFiNjIyNzQ2ZDYxMmU5MTM3N2Ni
YzUuLjVlMjIxNWVhZDBjNjEzODdmZjhhNWFkMzhkNzlmNTczM2QwMGRiM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0y
OCw3ICsyOCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbigpCiB7CiAg
ICAgV2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcywgInNjcmlwdHMiKTsKIAotICAgIHRoaXMu
X3ByZXNlbnRhdGlvbk1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsKCk7CisgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwgPSBXZWJJbnNwZWN0b3IuZGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbDsKIAogICAgIHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMoKTsK
IApAQCAtMzI0LDcgKzMyNCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBl
ID0gewogCiAgICAgICAgIGlmIChmb2xkZXJOYW1lLmxlbmd0aCA+IDgwKQogICAgICAgICAgICAg
Zm9sZGVyTmFtZSA9ICJcdTIwMjYiICsgZm9sZGVyTmFtZS5zdWJzdHJpbmcoZm9sZGVyTmFtZS5s
ZW5ndGggLSA4MCk7Ci0gCisKICAgICAgICAgcmV0dXJuIHsgZm9sZGVyTmFtZTogZm9sZGVyTmFt
ZSwgZGlzcGxheU5hbWU6IGRpc3BsYXlOYW1lfTsKICAgICB9LAogCkBAIC01NDUsMTQgKzU0NSw2
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAg
eC5zaG93KHRoaXMudmlld3NDb250YWluZXJFbGVtZW50KTsKICAgICB9LAogCi0gICAgY3JlYXRl
QW5jaG9yOiBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY2xhc3Nlcywg
dG9vbHRpcFRleHQpCi0gICAgewotICAgICAgICB2YXIgYW5jaG9yID0gV2ViSW5zcGVjdG9yLlBh
bmVsLnByb3RvdHlwZS5jcmVhdGVBbmNob3IuY2FsbCh0aGlzLCB1cmwsIGxpbmVOdW1iZXIsIGNv
bHVtbk51bWJlciwgY2xhc3NlcywgdG9vbHRpcFRleHQpOwotICAgICAgICBpZiAobGluZU51bWJl
ciAhPT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwucmVn
aXN0ZXJBbmNob3IodXJsLCBudWxsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHRoaXMuX3Vw
ZGF0ZUFuY2hvci5iaW5kKHRoaXMsIGFuY2hvcikpOwotICAgICAgICByZXR1cm4gYW5jaG9yOwot
ICAgIH0sCi0KICAgICBjYW5TaG93QW5jaG9yTG9jYXRpb246IGZ1bmN0aW9uKGFuY2hvcikKICAg
ICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9kZWJ1Z2dlckVuYWJsZWQgJiYgdGhpcy5fcHJlc2Vu
dGF0aW9uTW9kZWwuc291cmNlRmlsZUZvclNjcmlwdFVSTChhbmNob3IuaHJlZik7CkBAIC01NjMs
MTcgKzU1NSw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAg
ICAgICB0aGlzLl9zaG93U291cmNlTGluZShhbmNob3IuZ2V0QXR0cmlidXRlKCJzb3VyY2VfZmls
ZV9pZCIpLCBwYXJzZUludChhbmNob3IuZ2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIpKSk7CiAg
ICAgfSwKIAotICAgIF91cGRhdGVBbmNob3I6IGZ1bmN0aW9uKGFuY2hvciwgc291cmNlRmlsZUlk
LCBsaW5lTnVtYmVyKQotICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9wcmVz
ZW50YXRpb25Nb2RlbC5zb3VyY2VGaWxlKHNvdXJjZUZpbGVJZCk7Ci0gICAgICAgIHZhciB1cmwg
PSBzb3VyY2VGaWxlLnVybCB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFtKSIpOwot
ICAgICAgICBhbmNob3IudGV4dENvbnRlbnQgPSB0aGlzLmZvcm1hdEFuY2hvclRleHQodXJsLCBs
aW5lTnVtYmVyKQotICAgICAgICAvLyBVc2VkIGZvciBzaG93aW5nIGFuY2hvciBsb2NhdGlvbi4K
LSAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlwdHMi
KTsKLSAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgic291cmNlX2ZpbGVfaWQiLCBzb3VyY2VG
aWxlSWQpOwotICAgICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIsIGxpbmVO
dW1iZXIpOwotICAgIH0sCi0KICAgICBfc2hvd1NvdXJjZUxpbmU6IGZ1bmN0aW9uKHNvdXJjZUZp
bGVJZCwgbGluZU51bWJlcikKICAgICB7CiAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMu
X3Nob3dTb3VyY2VGcmFtZUFuZEFkZFRvSGlzdG9yeShzb3VyY2VGaWxlSWQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUu
anMKaW5kZXggZGNiMjIyOGUzMmRiMjM2ZDBhOTc3Njg4MWFmZWFmNWQyYzNjMzU4MS4uMDA0Mjg5
ZWVkNGNkMjE4ODc1ZTk3ZWM5N2E1OGIwMmRkMThlOGNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCkBAIC04
MzYsNyArODM2LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydGllc1NlY3Rpb24gPSBmdW5j
dGlvbihwYXJlbnRQYW5lLCBzdHlsZVJ1bGUsIGVkaXRhYmxlLAogCiAgICAgZnVuY3Rpb24gbGlu
a2lmeVVuY29weWFibGUodXJsLCBsaW5lKQogICAgIHsKLSAgICAgICAgdmFyIGxpbmsgPSBXZWJJ
bnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHVybCwgInJlc291cmNlcyIsIGxpbmUgKyAx
KTsKKyAgICAgICAgdmFyIGxpbmsgPSBXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2Rl
KHVybCwgbGluZSk7CiAgICAgICAgIHJldHVybiBsaW5rOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IGY1
YzRjZjdkZGIwYjYxZDcyY2FhMWFiMGQ1OWJkNmNjYzI2MDU2NWEuLmEwN2MzNDZlMjg1MzRjYzk2
ZjYzYmIwYjc3MGMxNWQ4MWI5YTUzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTExMTUsMjEgKzExMTUsMjcgQEAg
V2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5H
Q0V2ZW50OgogICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVz
IGNvbGxlY3RlZCIsIE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMuZGF0YS51c2VkSGVhcFNpemVE
ZWx0YSkpOwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNv
cmRUeXBlLlRpbWVyRmlyZToKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zY3JpcHROYW1l
ID8gV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZSh0aGlzLnNjcmlwdE5hbWUsICJz
Y3JpcHRzIiwgdGhpcy5zY3JpcHRMaW5lLCAiIiwgIiIpIDogdGhpcy5kYXRhLnRpbWVySWQ7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NyaXB0TmFtZSA/IHRoaXMuX2xpbmtpZnlMb2Nh
dGlvbih0aGlzLnNjcmlwdE5hbWUsIHRoaXMuc2NyaXB0TGluZSwgMCkgOiB0aGlzLmRhdGEudGlt
ZXJJZDsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3Jk
VHlwZS5GdW5jdGlvbkNhbGw6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NyaXB0TmFt
ZSA/IFdlYkluc3BlY3Rvci5saW5raWZ5UmVzb3VyY2VBc05vZGUodGhpcy5zY3JpcHROYW1lLCAi
c2NyaXB0cyIsIHRoaXMuc2NyaXB0TGluZSwgIiIsICIiKSA6IG51bGw7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRoaXMuc2NyaXB0TmFtZSA/IHRoaXMuX2xpbmtpZnlMb2NhdGlvbih0aGlzLnNj
cmlwdE5hbWUsIHRoaXMuc2NyaXB0TGluZSwgMCkgOiBudWxsOwogICAgICAgICAgICAgY2FzZSBX
ZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkV2ZW50RGlzcGF0Y2g6CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YSA/IHRoaXMuZGF0YS50eXBlIDogbnVsbDsKICAg
ICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5QYWlu
dDoKICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhLndpZHRoICsgIlx1MjAwOVx1MDBk
N1x1MjAwOSIgKyB0aGlzLmRhdGEuaGVpZ2h0OwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0
b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlRpbWVySW5zdGFsbDoKICAgICAgICAgICAgIGNh
c2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5UaW1lclJlbW92ZToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdGFja1RyYWNlID8gV2ViSW5zcGVjdG9yLmxpbmtp
ZnlDYWxsRnJhbWVBc05vZGUodGhpcy5zdGFja1RyYWNlWzBdLCAiIikgOiB0aGlzLmRhdGEudGlt
ZXJJZDsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGFja1RyYWNlKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gdGhpcy5fbGlua2lmeUxvY2F0aW9uKHRoaXMuc3RhY2tUcmFjZVswXS51
cmwsIHRoaXMuc3RhY2tUcmFjZVswXS5saW5lTnVtYmVyLCB0aGlzLnN0YWNrVHJhY2VbMF0uY29s
dW1uTnVtYmVyKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB0aGlzLmRhdGEudGltZXJJZDsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRp
bWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5QYXJzZUhUTUw6CiAgICAgICAgICAgICBjYXNlIFdlYklu
c3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuUmVjYWxjdWxhdGVTdHlsZXM6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhY2tUcmFjZSA/IFdlYkluc3BlY3Rvci5saW5raWZ5
Q2FsbEZyYW1lQXNOb2RlKHRoaXMuc3RhY2tUcmFjZVswXSwgIiIpIDogbnVsbDsKKyAgICAgICAg
ICAgICAgICBpZiAodGhpcy5zdGFja1RyYWNlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
dGhpcy5fbGlua2lmeUxvY2F0aW9uKHRoaXMuc3RhY2tUcmFjZVswXS51cmwsIHRoaXMuc3RhY2tU
cmFjZVswXS5saW5lTnVtYmVyLCB0aGlzLnN0YWNrVHJhY2VbMF0uY29sdW1uTnVtYmVyKTsKKyAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAg
ICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkV2YWx1
YXRlU2NyaXB0OgotICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVybCA/IFdlYkluc3BlY3Rv
ci5saW5raWZ5UmVzb3VyY2VBc05vZGUodGhpcy51cmwsICJzY3JpcHRzIiwgdGhpcy5kYXRhLmxp
bmVOdW1iZXIsICIiLCAiIikgOiBudWxsOworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVy
bCA/IHRoaXMuX2xpbmtpZnlMb2NhdGlvbih0aGlzLnVybCwgdGhpcy5kYXRhLmxpbmVOdW1iZXIs
IDApIDogbnVsbDsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQu
UmVjb3JkVHlwZS5YSFJSZWFkeVN0YXRlQ2hhbmdlOgogICAgICAgICAgICAgY2FzZSBXZWJJbnNw
ZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlhIUkxvYWQ6CiAgICAgICAgICAgICBjYXNl
IFdlYkluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuU2NoZWR1bGVSZXNvdXJjZVJl
cXVlc3Q6CkBAIC0xMTQ1LDYgKzExNTEsMTQgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwu
Rm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAgICBf
bGlua2lmeUxvY2F0aW9uOiBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikK
KyAgICB7CisgICAgICAgIC8vIEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1bW4g
bnVtYmVycyBhcmUgb25lLWJhc2VkLgorICAgICAgICBsaW5lTnVtYmVyID0gbGluZU51bWJlciA/
IGxpbmVOdW1iZXIgLSAxIDogbGluZU51bWJlcjsKKyAgICAgICAgY29sdW1uTnVtYmVyID0gY29s
dW1uTnVtYmVyID8gY29sdW1uTnVtYmVyIC0gMSA6IDA7CisgICAgICAgIHJldHVybiBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odXJsLCBsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXIsICJ0aW1lbGluZS1kZXRhaWxzIik7CisgICAgfSwKKwogICAg
IF9jYWxjdWxhdGVBZ2dyZWdhdGVkU3RhdHM6IGZ1bmN0aW9uKGNhdGVnb3JpZXMpCiAgICAgewog
ICAgICAgICB0aGlzLl9hZ2dyZWdhdGVkU3RhdHMgPSB7fTsKQEAgLTEyMTIsNyArMTIyNiw3IEBA
IFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLlBvcHVwQ29udGVudEhlbHBlci5wcm90b3R5cGUg
PSB7CiAKICAgICBfYXBwZW5kTGlua1JvdzogZnVuY3Rpb24odGl0bGUsIHNjcmlwdE5hbWUsIHNj
cmlwdExpbmUpCiAgICAgewotICAgICAgICB2YXIgbGluayA9IFdlYkluc3BlY3Rvci5saW5raWZ5
UmVzb3VyY2VBc05vZGUoc2NyaXB0TmFtZSwgInNjcmlwdHMiLCBzY3JpcHRMaW5lLCAidGltZWxp
bmUtZGV0YWlscyIpOworICAgICAgICB2YXIgbGluayA9IHRoaXMuX2xpbmtpZnlMb2NhdGlvbihz
Y3JpcHROYW1lLCBzY3JpcHRMaW5lLCAwKTsKICAgICAgICAgdGhpcy5fYXBwZW5kRWxlbWVudFJv
dyh0aXRsZSwgbGluayk7CiAgICAgfSwKIApAQCAtMTIyNyw3ICsxMjQxLDggQEAgV2ViSW5zcGVj
dG9yLlRpbWVsaW5lUGFuZWwuUG9wdXBDb250ZW50SGVscGVyLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgICAgIHJvdy5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDZWxsKHN0YWNrRnJhbWUuZnVuY3Rp
b25OYW1lID8gc3RhY2tGcmFtZS5mdW5jdGlvbk5hbWUgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmco
Iihhbm9ueW1vdXMgZnVuY3Rpb24pIiksICJ0aW1lbGluZS1mdW5jdGlvbi1uYW1lIikpOwogICAg
ICAgICAgICAgcm93LmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNlbGwoIiBAICIpKTsKICAgICAg
ICAgICAgIHZhciBsaW5rQ2VsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7Ci0gICAg
ICAgICAgICBsaW5rQ2VsbC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0b3IubGlua2lmeUNhbGxGcmFt
ZUFzTm9kZShzdGFja0ZyYW1lLCAidGltZWxpbmUtZGV0YWlscyIpKTsKKyAgICAgICAgICAgIHZh
ciB1cmxFbGVtZW50ID0gdGhpcy5fbGlua2lmeUxvY2F0aW9uKHN0YWNrRnJhbWUudXJsLCBzdGFj
a0ZyYW1lLmxpbmVOdW1iZXIsIHN0YWNrRnJhbWUuY29sdW1uTnVtYmVyKTsKKyAgICAgICAgICAg
IGxpbmtDZWxsLmFwcGVuZENoaWxkKHVybEVsZW1lbnQpOwogICAgICAgICAgICAgcm93LmFwcGVu
ZENoaWxkKGxpbmtDZWxsKTsKICAgICAgICAgICAgIGZyYW1lc1RhYmxlLmFwcGVuZENoaWxkKHJv
dyk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9p
bnNwZWN0b3IuanMKaW5kZXggZTEzYWVmNjllZjBlMWM5ZTg0MjQ4ZDUzNmVjYjEzOGI5NjZlNTc1
Ny4uN2E1Zjg4Yjc5Zjk1NTAwNjBkNjI1ZWZkMzMyZmJiOTZiMTQ1NThkNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTI0MCw3ICsy
NDAsNyBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NC
dXR0b24udG9nZ2xlZCA9IGZhbHNlOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NldHRpbmdz
U2NyZWVuOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGlmICghdGhpcy5fc2V0dGlu
Z3NTY3JlZW4pIHsKICAgICAgICAgICAgIHRoaXMuX3NldHRpbmdzU2NyZWVuID0gbmV3IFdlYklu
c3BlY3Rvci5TZXR0aW5nc1NjcmVlbigpOwogICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTY3Jl
ZW4uc2hvdyhvbmhpZGUuYmluZCh0aGlzKSk7CkBAIC01MTksNiArNTE5LDcgQEAgV2ViSW5zcGVj
dG9yLmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuY3NzTW9kZWwgPSBuZXcg
V2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwoKTsKICAgICB0aGlzLmRlYnVnZ2VyTW9kZWwgPSBu
ZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwoKTsKKyAgICB0aGlzLmRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwo
KTsKIAogICAgIHRoaXMuc2VhcmNoQ29udHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2VhcmNo
Q29udHJvbGxlcigpOwogICAgIHRoaXMuZG9tQnJlYWtwb2ludHNTaWRlYmFyUGFuZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZSgpOwpAQCAtMTMyMCwxOSArMTMy
MSwyMSBAQCBXZWJJbnNwZWN0b3IubGlua2lmeVVSTCA9IGZ1bmN0aW9uKHVybCwgbGlua1RleHQs
IGNsYXNzZXMsIGlzRXh0ZXJuYWwsIHRvb2x0aXBUZQogICAgIHJldHVybiBXZWJJbnNwZWN0b3Iu
bGlua2lmeVVSTEFzTm9kZSh1cmwsIGxpbmtUZXh0LCBjbGFzc2VzLCBpc0V4dGVybmFsLCB0b29s
dGlwVGV4dCkub3V0ZXJIVE1MOwogfQogCi1XZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNO
b2RlID0gZnVuY3Rpb24odXJsLCBwcmVmZXJyZWRQYW5lbCwgb25lQmFzZWRMaW5lTnVtYmVyLCBj
bGFzc2VzLCB0b29sdGlwVGV4dCkKK1dlYkluc3BlY3Rvci5mb3JtYXRMaW5rVGV4dCA9IGZ1bmN0
aW9uKHVybCwgbGluZU51bWJlcikKIHsKLSAgICBwcmVmZXJyZWRQYW5lbCA9IHByZWZlcnJlZFBh
bmVsIHx8ICJzY3JpcHRzIjsKLSAgICAvLyBGSVhNRSg2MjcyNSk6IHN0YWNrIHRyYWNlIGxpbmUv
Y29sdW1uIG51bWJlcnMgYXJlIG9uZS1iYXNlZC4KLSAgICB2YXIgbGluZU51bWJlciA9IG9uZUJh
c2VkTGluZU51bWJlciA/IG9uZUJhc2VkTGluZU51bWJlciAtIDEgOiB1bmRlZmluZWQ7Ci0gICAg
cmV0dXJuIHRoaXMucGFuZWxzW3ByZWZlcnJlZFBhbmVsXS5jcmVhdGVBbmNob3IodXJsLCBsaW5l
TnVtYmVyLCAwLCBjbGFzc2VzLCB0b29sdGlwVGV4dCk7CisgICAgdmFyIHRleHQgPSBXZWJJbnNw
ZWN0b3IuZGlzcGxheU5hbWVGb3JVUkwodXJsKTsKKyAgICBpZiAobGluZU51bWJlciAhPT0gdW5k
ZWZpbmVkKQorICAgICAgICB0ZXh0ICs9ICI6IiArIChsaW5lTnVtYmVyICsgMSk7CisgICAgcmV0
dXJuIHRleHQ7CiB9CiAKLVdlYkluc3BlY3Rvci5saW5raWZ5Q2FsbEZyYW1lQXNOb2RlID0gZnVu
Y3Rpb24oY2FsbEZyYW1lLCBjbGFzc2VzLCB0b29sdGlwVGV4dCkKK1dlYkluc3BlY3Rvci5saW5r
aWZ5UmVzb3VyY2VBc05vZGUgPSBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNsYXNzZXMsIHRv
b2x0aXBUZXh0KQogewotICAgIC8vIEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1
bW4gbnVtYmVycyBhcmUgb25lLWJhc2VkLgotICAgIHZhciBjb2x1bW5OdW1iZXIgPSBjYWxsRnJh
bWUuY29sdW1uTnVtYmVyID8gY2FsbEZyYW1lLmNvbHVtbk51bWJlciAtIDEgOiAwOwotICAgIHJl
dHVybiB0aGlzLnBhbmVscy5zY3JpcHRzLmNyZWF0ZUFuY2hvcihjYWxsRnJhbWUudXJsLCBjYWxs
RnJhbWUubGluZU51bWJlciAtIDEsIGNvbHVtbk51bWJlciwgY2xhc3NlcywgdG9vbHRpcFRleHQp
OworICAgIHZhciBsaW5rVGV4dCA9IHRoaXMuZm9ybWF0TGlua1RleHQodXJsLCBsaW5lTnVtYmVy
KTsKKyAgICB2YXIgYW5jaG9yID0gdGhpcy5saW5raWZ5VVJMQXNOb2RlKHVybCwgbGlua1RleHQs
IGNsYXNzZXMsIGZhbHNlLCB0b29sdGlwVGV4dCk7CisgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgi
cHJlZmVycmVkX3BhbmVsIiwgInJlc291cmNlcyIpOworICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUo
ImxpbmVfbnVtYmVyIiwgbGluZU51bWJlcik7CisgICAgcmV0dXJuIGFuY2hvcjsKIH0KIAogV2Vi
SW5zcGVjdG9yLnJlc291cmNlVVJMRm9yUmVsYXRlZE5vZGUgPSBmdW5jdGlvbihub2RlLCB1cmwp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102909</attachid>
            <date>2011-08-04 07:07:31 -0700</date>
            <delta_ts>2011-08-04 07:08:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65612-20110804180729.patch</filename>
            <type>text/plain</type>
            <size>27187</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIzNzAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy1zeW50YXgtZXJyb3ItZXhwZWN0
ZWQudHh0CmluZGV4IDljYjAxYzJhN2JiYTE4NTVjNWRhOGNmOWY0MzIwNTYxYWZhMmE4ZmYuLjc1
NjhlYjA0ZDMyY2NiYWRhMDVkYWQzNDdjZGIyMWY1NDAxZjgyMzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLXN5bnRheC1lcnJvci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb2ctc3lu
dGF4LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIENPTlNPTEUgTUVTU0FHRTog
bGluZSAxOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKScKIFRlc3RzIHRoYXQgc3lu
dGF4IGVycm9ycyBhcmUgbG9nZ2VkIGludG8gY29uc29sZSBhbmQgZG9lc24ndCBjYXVzZSBicm93
c2VyIGNyYXNoLgogCi1zeW50YXgtZXJyb3IuanM6MVN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRv
a2VuICcpJworc3ludGF4LWVycm9yLmpzU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJykn
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtbG9nLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy1zeW50YXgt
ZXJyb3ItZXhwZWN0ZWQudHh0CmluZGV4IDY5NjllZjEzMDdlMzQyZjU5ZDMyMTM0NTM0Yzc5YzVh
ZGY2ODk4ZWUuLjU4ZWQ3OGNlY2JhZTM0MTViMmY1NzYzNDBiZGY4ZjBlYzEzMDhiNzMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtbG9nLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb2ctc3ludGF4LWVycm9y
LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBV
bmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiApCiBUZXN0cyB0aGF0IHN5bnRh
eCBlcnJvcnMgYXJlIGxvZ2dlZCBpbnRvIGNvbnNvbGUgYW5kIGRvZXNuJ3QgY2F1c2UgYnJvd3Nl
ciBjcmFzaC4KIAotc3ludGF4LWVycm9yLmpzOjFVbmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiApCitzeW50YXgtZXJyb3IuanNVbmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNmMwYTE5ZDlmZGM5OTNjNTVmMDA5OTZlZmQz
Njg3MTc4YzkyNGRiLi40MTQ4NjRiYTdkNGY2ZmE0NDM5MzFmZDBjMGY0MDQwNzZmNWIxNTc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDgtMDQgIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcmVmYWN0
b3IgbGlua3MgY3JlYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIGl0IGlzIHJlZmFjdG9yaW5nLCBtb2RpZmllZCBjb2Rl
IGNvdmVyZWQgYnkgc2NyaXB0LWZvcm1hdHRlci5odG1sIHRlc3QuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fZm9ybWF0TWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlLl9saW5raWZ5TG9jYXRpb24pOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fcG9wdWxhdGVTdGFja1Ry
YWNlVHJlZUVsZW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5hZGRTb3VyY2VNYXBwaW5nTGlzdGVuZXIpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLnJlbW92ZVNvdXJj
ZU1hcHBpbmdMaXN0ZW5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5wcm90b3R5cGUubGlua2lmeUxvY2F0aW9uLnVwZGF0ZUFuY2hvci5kaWRHZXRM
b2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5wcm90b3R5cGUubGlua2lmeUxvY2F0aW9uLnVwZGF0ZUFuY2hvcik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUubGlua2lmeUxvY2F0
aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnBy
b3RvdHlwZS5zZXRGb3JtYXRTb3VyY2VGaWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3NvdXJjZUZpbGVGb3JTY3JpcHQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
Ll9kZWJ1Z2dlclJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlz
dGVuZXJzU2lkZWJhclBhbmUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0RhdGFHcmlkTm9kZS5w
cm90b3R5cGUuX3JlZnJlc2hJbml0aWF0b3JDZWxsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1BhbmVsLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURh
dGFHcmlkVHJlZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2Rl
LnByb3RvdHlwZS5jcmVhdGVDZWxsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlLl9mb2xkZXJBbmREaXNwbGF5TmFtZUZvclNjcmlwdFVSTCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uLmxpbmtpZnlVbmNvcHlhYmxlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxp
bmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQucHJvdG90eXBlLl9nZXRSZWNvcmREZXRhaWxzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5
cGUuX2xpbmtpZnlMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5l
bC5Qb3B1cENvbnRlbnRIZWxwZXIucHJvdG90eXBlLl9hcHBlbmRMaW5rUm93KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLlBvcHVwQ29udGVudEhlbHBlci5wcm90b3R5cGUu
X2FwcGVuZFN0YWNrVHJhY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9zaG93U2V0dGluZ3NTY3JlZW4pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLmZvcm1hdExpbmtUZXh0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5saW5raWZ5UmVzb3VyY2VBc05vZGUpOgorCiAyMDExLTA4LTAzICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBmdWxsc2NyZWVuL3ZpZGVv
LWNvbnRyb2xzLW92ZXJyaWRlLmh0bWwgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDE2ZTYwMjEzMjI5OTVlZjg5ZDY5
MDZkZGNlMDliZjQyMmQ5Njc2NGUuLjk0NDFhNmE2YzhlZjc5MGE3MDI5ZmU1NjVkY2YxZWVmYTY1
ZjQ4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25z
b2xlVmlldy5qcwpAQCAtNzQwLDcgKzc0MCw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5w
cm90b3R5cGUgPSB7CiAgICAgICAgIC8vIFByZXZlbnQgaW5maW5pdGUgZXhwYW5zaW9uIG9mIGNy
b3NzLXJlZmVyZW5jaW5nIGFycmF5cy4KICAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdChvdXRw
dXQsIG91dHB1dC5zdWJ0eXBlICYmIG91dHB1dC5zdWJ0eXBlID09PSAiYXJyYXkiKTsKICAgICB9
LAotICAgIAorCiAgICAgZ2V0IHNjcm9sbExlZnQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRo
aXMubWVzc2FnZXNFbGVtZW50LnNjcm9sbExlZnQ7CkBAIC04NDQsMTAgKzg0NCwxMCBAQCBXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9mb3Jt
YXR0ZWRNZXNzYWdlLmNsYXNzTmFtZSA9ICJjb25zb2xlLW1lc3NhZ2UtdGV4dCBzb3VyY2UtY29k
ZSI7CiAKICAgICAgICAgaWYgKHRoaXMuX3N0YWNrVHJhY2UgJiYgdGhpcy5fc3RhY2tUcmFjZS5s
ZW5ndGggJiYgdGhpcy5fc3RhY2tUcmFjZVswXS51cmwpIHsKLSAgICAgICAgICAgIHZhciB1cmxF
bGVtZW50ID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlDYWxsRnJhbWVBc05vZGUodGhpcy5fc3RhY2tU
cmFjZVswXSwgImNvbnNvbGUtbWVzc2FnZS11cmwiKTsKKyAgICAgICAgICAgIHZhciB1cmxFbGVt
ZW50ID0gdGhpcy5fbGlua2lmeUxvY2F0aW9uKHRoaXMuX3N0YWNrVHJhY2VbMF0udXJsLCB0aGlz
Ll9zdGFja1RyYWNlWzBdLmxpbmVOdW1iZXIsIHRoaXMuX3N0YWNrVHJhY2VbMF0uY29sdW1uTnVt
YmVyKTsKICAgICAgICAgICAgIHRoaXMuX2Zvcm1hdHRlZE1lc3NhZ2UuYXBwZW5kQ2hpbGQodXJs
RWxlbWVudCk7CiAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51cmwgJiYgdGhpcy51cmwgIT09ICJ1
bmRlZmluZWQiKSB7Ci0gICAgICAgICAgICB2YXIgdXJsRWxlbWVudCA9IFdlYkluc3BlY3Rvci5s
aW5raWZ5UmVzb3VyY2VBc05vZGUodGhpcy51cmwsICJzY3JpcHRzIiwgdGhpcy5saW5lLCAiY29u
c29sZS1tZXNzYWdlLXVybCIpOworICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSB0aGlzLl9s
aW5raWZ5TG9jYXRpb24odGhpcy51cmwsIHRoaXMubGluZU51bWJlciwgMCk7CiAgICAgICAgICAg
ICB0aGlzLl9mb3JtYXR0ZWRNZXNzYWdlLmFwcGVuZENoaWxkKHVybEVsZW1lbnQpOwogICAgICAg
ICB9CiAKQEAgLTg4MCw2ICs4ODAsMTQgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5tZXNzYWdlID0gdGhpcy5fZm9ybWF0dGVkTWVzc2Fn
ZS50ZXh0Q29udGVudDsKICAgICB9LAogCisgICAgX2xpbmtpZnlMb2NhdGlvbjogZnVuY3Rpb24o
dXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCisgICAgeworICAgICAgICAvLyBGSVhNRSg2
MjcyNSk6IHN0YWNrIHRyYWNlIGxpbmUvY29sdW1uIG51bWJlcnMgYXJlIG9uZS1iYXNlZC4KKyAg
ICAgICAgbGluZU51bWJlciA9IGxpbmVOdW1iZXIgPyBsaW5lTnVtYmVyIC0gMSA6IGxpbmVOdW1i
ZXI7CisgICAgICAgIGNvbHVtbk51bWJlciA9IGNvbHVtbk51bWJlciA/IGNvbHVtbk51bWJlciAt
IDEgOiAwOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwubGlua2lmeUxvY2F0aW9uKHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCAiY29u
c29sZS1tZXNzYWdlLXVybCIpOworICAgIH0sCisKICAgICBpc0Vycm9yT3JXYXJuaW5nOiBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gKHRoaXMubGV2ZWwgPT09IFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuV2FybmluZyB8fCB0aGlzLmxldmVsID09PSBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yKTsKQEAgLTEwNDQs
NyArMTA1Miw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKG1lc3NhZ2VUZXh0RWxlbWVudCk7CiAKICAg
ICAgICAgICAgIGlmIChmcmFtZS51cmwpIHsKLSAgICAgICAgICAgICAgICB2YXIgdXJsRWxlbWVu
dCA9IFdlYkluc3BlY3Rvci5saW5raWZ5Q2FsbEZyYW1lQXNOb2RlKGZyYW1lLCAiY29uc29sZS1t
ZXNzYWdlLXVybCIpOworICAgICAgICAgICAgICAgIHZhciB1cmxFbGVtZW50ID0gdGhpcy5fbGlu
a2lmeUxvY2F0aW9uKGZyYW1lLnVybCwgZnJhbWUubGluZU51bWJlciwgZnJhbWUuY29sdW1uTnVt
YmVyKTsKICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKHVybEVsZW1lbnQpOwog
ICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggYThiNTY1
NDRmZWFkYTBiZDMzYTBiMjNjMzQ5ZmQyNDUwZjMxZDVmZS4uMTZjYWU1NWFkNGQ2NzBjYzIzM2Fk
NDk2MjI3N2JmNTEwYTY1NWRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAt
MzQsNyArMzQsOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1
bmN0aW9uKCkKICAgICB0aGlzLl9mb3JtYXR0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdEZv
cm1hdHRlcigpOwogICAgIHRoaXMuX3NvdXJjZUZpbGVzID0ge307CiAgICAgdGhpcy5fbWVzc2Fn
ZXMgPSBbXTsKLSAgICB0aGlzLl9hbmNob3JzID0gW107CisgICAgLy8gRklYTUU6IG1vdmUgdGhp
cyB0byBSYXdTb3VyY2VDb2RlIHdoZW4gaXQncyBub3QgcmUtY3JlYXRlZCBpbiBwcmV0dHktcHJp
bnQgbW9kZS4KKyAgICB0aGlzLl9zb3VyY2VNYXBwaW5nTGlzdGVuZXJzID0gW107CiAgICAgdGhp
cy5fYnJlYWtwb2ludHNCeURlYnVnZ2VySWQgPSB7fTsKICAgICB0aGlzLl9icmVha3BvaW50c1dp
dGhvdXRTb3VyY2VGaWxlID0ge307CiAKQEAgLTExOSwyMCArMTIwLDQyIEBAIFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5f
c291cmNlRmlsZXNbc291cmNlRmlsZUlkXS5yZXF1ZXN0Q29udGVudChjYWxsYmFjayk7CiAgICAg
fSwKIAotICAgIHJlZ2lzdGVyQW5jaG9yOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNjcmlwdElkLCBs
aW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHVwZGF0ZUhhbmRsZXIpCisgICAgYWRkU291cmNlTWFw
cGluZ0xpc3RlbmVyOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNvdXJjZUlkLCBsaXN0ZW5lcikKICAg
ICB7Ci0gICAgICAgIHZhciBhbmNob3IgPSB7IHNvdXJjZVVSTDogc291cmNlVVJMLCBzY3JpcHRJ
ZDogc2NyaXB0SWQsIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1u
TnVtYmVyLCB1cGRhdGVIYW5kbGVyOiB1cGRhdGVIYW5kbGVyIH07Ci0gICAgICAgIHRoaXMuX2Fu
Y2hvcnMucHVzaChhbmNob3IpOwotICAgICAgICB0aGlzLl91cGRhdGVBbmNob3IoYW5jaG9yKTsK
KyAgICAgICAgdGhpcy5fc291cmNlTWFwcGluZ0xpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTsKICAg
ICB9LAogCi0gICAgX3VwZGF0ZUFuY2hvcjogZnVuY3Rpb24oYW5jaG9yKQorICAgIHJlbW92ZVNv
dXJjZU1hcHBpbmdMaXN0ZW5lcjogZnVuY3Rpb24oc291cmNlVVJMLCBzb3VyY2VJZCwgbGlzdGVu
ZXIpCiAgICAgewotICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVGb3JT
Y3JpcHQoYW5jaG9yLnNvdXJjZVVSTCwgYW5jaG9yLnNjcmlwdElkKTsKLSAgICAgICAgaWYgKCFz
b3VyY2VGaWxlKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAvLyBGSVhNRTogaW1wbGVt
ZW50IHRoaXMuCisgICAgfSwKIAotICAgICAgICB0aGlzLl9zY3JpcHRMb2NhdGlvblRvVUlMb2Nh
dGlvbihhbmNob3Iuc291cmNlVVJMLCBhbmNob3Iuc2NyaXB0SWQsIGFuY2hvci5saW5lTnVtYmVy
LCBhbmNob3IuY29sdW1uTnVtYmVyLCBhbmNob3IudXBkYXRlSGFuZGxlcik7CisgICAgbGlua2lm
eUxvY2F0aW9uOiBmdW5jdGlvbihzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwg
Y2xhc3NlcykKKyAgICB7CisgICAgICAgIHZhciBsaW5rVGV4dCA9IFdlYkluc3BlY3Rvci5mb3Jt
YXRMaW5rVGV4dChzb3VyY2VVUkwsIGxpbmVOdW1iZXIpOworICAgICAgICB2YXIgYW5jaG9yID0g
V2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUoc291cmNlVVJMLCBsaW5rVGV4dCwgY2xhc3Nl
cywgZmFsc2UpOworCisgICAgICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZUZv
clNjcmlwdChzb3VyY2VVUkwpOworICAgICAgICBpZiAoIXNvdXJjZUZpbGUpIHsKKyAgICAgICAg
ICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJyZXNvdXJjZXMiKTsK
KyAgICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoImxpbmVfbnVtYmVyIiwgbGluZU51bWJl
cik7CisgICAgICAgICAgICByZXR1cm4gYW5jaG9yOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gdXBkYXRlQW5jaG9yKCkKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rpb24gZGlk
R2V0TG9jYXRpb24oc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIGFuY2hvci50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5mb3JtYXRMaW5r
VGV4dChzb3VyY2VGaWxlLnVybCwgbGluZU51bWJlcik7CisgICAgICAgICAgICAgICAgYW5jaG9y
LnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlwdHMiKTsKKyAgICAgICAgICAg
ICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJzb3VyY2VfZmlsZV9pZCIsIHNvdXJjZUZpbGVJZCk7
CisgICAgICAgICAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgibGluZV9udW1iZXIiLCBsaW5l
TnVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuX3NjcmlwdExvY2F0aW9u
VG9VSUxvY2F0aW9uKHNvdXJjZVVSTCwgbnVsbCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBk
aWRHZXRMb2NhdGlvbi5iaW5kKHRoaXMpKTsKKyAgICAgICAgfQorICAgICAgICB1cGRhdGVBbmNo
b3IuY2FsbCh0aGlzKTsKKyAgICAgICAgdGhpcy5hZGRTb3VyY2VNYXBwaW5nTGlzdGVuZXIoc291
cmNlVVJMLCBudWxsLCB1cGRhdGVBbmNob3IuYmluZCh0aGlzKSk7CisgICAgICAgIHJldHVybiBh
bmNob3I7CiAgICAgfSwKIAogICAgIF9wYXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKGV2ZW50
KQpAQCAtMjgxLDggKzMwNCw5IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNzYWdlcy5s
ZW5ndGg7ICsraSkKICAgICAgICAgICAgIHRoaXMuX2FkZENvbnNvbGVNZXNzYWdlKG1lc3NhZ2Vz
W2ldKTsKIAotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2FuY2hvcnMubGVuZ3Ro
OyArK2kpCi0gICAgICAgICAgICB0aGlzLl91cGRhdGVBbmNob3IodGhpcy5fYW5jaG9yc1tpXSk7
CisgICAgICAgIC8vIEZJWE1FOiBtb3ZlIHRoaXMgdG8gUmF3U291cmNlQ29kZS4KKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zb3VyY2VNYXBwaW5nTGlzdGVuZXJzLmxlbmd0aDsg
KytpKQorICAgICAgICAgICAgdGhpcy5fc291cmNlTWFwcGluZ0xpc3RlbmVyc1tpXSgpOwogCiAg
ICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5jYWxsRnJhbWVzKQogICAgICAg
ICAgICAgdGhpcy5fZGVidWdnZXJQYXVzZWQoKTsKQEAgLTYxNiw4ICs2NDAsMTIgQEAgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogCiAgICAgX3Nv
dXJjZUZpbGVGb3JTY3JpcHQ6IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc2NyaXB0SWQpCiAgICAgewot
ICAgICAgICBpZiAoIXNvdXJjZVVSTCkKLSAgICAgICAgICAgIHNvdXJjZVVSTCA9IFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNvdXJjZUlEKHNjcmlwdElkKS5zb3VyY2VVUkw7
CisgICAgICAgIGlmICghc291cmNlVVJMKSB7CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoc2NyaXB0SWQpOworICAg
ICAgICAgICAgaWYgKCFzY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgc291cmNlVVJMID0gc2NyaXB0LnNvdXJjZVVSTDsKKyAgICAgICAgfQogICAgICAgICByZXR1
cm4gdGhpcy5fc291cmNlRmlsZXNbdGhpcy5fY3JlYXRlU291cmNlRmlsZUlkKHNvdXJjZVVSTCwg
c2NyaXB0SWQpXTsKICAgICB9LAogCkBAIC02NTgsNyArNjg2LDcgQEAgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgIF9kZWJ1Z2dlclJlc2V0
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9yZXNldCgpOwotICAgICAgICB0aGlz
Ll9hbmNob3JzID0gW107CisgICAgICAgIHRoaXMuX3NvdXJjZU1hcHBpbmdMaXN0ZW5lcnMgPSBb
XTsKICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uQ2FsbEZyYW1lcyA9IFtdOwogICAgICAgICB0
aGlzLl9zZWxlY3RlZENhbGxGcmFtZUluZGV4ID0gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lk
ZWJhclBhbmUuanMKaW5kZXggZWRhYzAzM2RkNjE1ZGRmMDNiODFiZDI2YTA2NWU5YjhlMTEzMTEw
OS4uOGUzNDNhN2IwMWU2ZjUyOWJhMDM5YWM3ZDM2NDkzOGJkOGFjYjk1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQ
YW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0
ZW5lcnNTaWRlYmFyUGFuZS5qcwpAQCAtMjM2LDcgKzIzNiwxMSBAQCBXZWJJbnNwZWN0b3IuRXZl
bnRMaXN0ZW5lckJhci5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIFJlcXVpcmVzIHRoYXQgRnVu
Y3Rpb24udG9TdHJpbmcoKSByZXR1cm4gYXQgbGVhc3QgdGhlIGZ1bmN0aW9uJ3Mgc2lnbmF0dXJl
LgogICAgICAgICBpZiAodGhpcy5ldmVudExpc3RlbmVyLmxvY2F0aW9uKSB7CiAgICAgICAgICAg
ICB0aGlzLnN1YnRpdGxlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAgICAgICAgICAgdGhp
cy5zdWJ0aXRsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJj
ZUFzTm9kZSh0aGlzLmV2ZW50TGlzdGVuZXIubG9jYXRpb24uc2NyaXB0SWQsICJzY3JpcHRzIiwg
dGhpcy5ldmVudExpc3RlbmVyLmxvY2F0aW9uLmxpbmVOdW1iZXIpKTsKKyAgICAgICAgICAgIC8v
IEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1bW4gbnVtYmVycyBhcmUgb25lLWJh
c2VkLgorICAgICAgICAgICAgdmFyIHVybCA9IHRoaXMuZXZlbnRMaXN0ZW5lci5sb2NhdGlvbi5z
Y3JpcHRJZDsKKyAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gdGhpcy5ldmVudExpc3RlbmVy
LmxvY2F0aW9uLmxpbmVOdW1iZXIgLSAxOworICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odXJs
LCBsaW5lTnVtYmVyLCAwKTsKKyAgICAgICAgICAgIHRoaXMuc3VidGl0bGVFbGVtZW50LmFwcGVu
ZENoaWxkKHVybEVsZW1lbnQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdmFyIG1h
dGNoID0gdGhpcy5ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5Lm1hdGNoKC9mdW5jdGlvbiAoW15c
KF0rPylcKC8pOwogICAgICAgICAgICAgaWYgKG1hdGNoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwppbmRleCAwOWExZjFmYzRmYTBi
OWVkMjBlYzBjYTM0ZjczMDhlMTJlMTM5ZTdjLi40ZTYxNjY1MWZjZTA0NGFhZTc2ODdmYTRmMDMy
MDhmYmRkMjdkNDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL05ldHdvcmtQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL05ldHdvcmtQYW5lbC5qcwpAQCAtMTk3NywxMSArMTk3NywxMiBAQCBXZWJJbnNwZWN0b3Iu
TmV0d29ya0RhdGFHcmlkTm9kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhdG9y
Q2VsbC50aXRsZSA9IHRvcEZyYW1lLnVybCArICI6IiArIHRvcEZyYW1lLmxpbmVOdW1iZXI7Ci0g
ICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhdG9yQ2VsbC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0
b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHRvcEZyYW1lLnVybCwgInNjcmlwdHMiLCB0b3BGcmFt
ZS5saW5lTnVtYmVyKSk7CisgICAgICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odG9wRnJhbWUu
dXJsLCB0b3BGcmFtZS5saW5lTnVtYmVyIC0gMSwgMCk7CisgICAgICAgICAgICAgICAgdGhpcy5f
aW5pdGlhdG9yQ2VsbC5hcHBlbmRDaGlsZCh1cmxFbGVtZW50KTsKICAgICAgICAgICAgICAgICB0
aGlzLl9hcHBlbmRTdWJ0aXRsZSh0aGlzLl9pbml0aWF0b3JDZWxsLCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlNjcmlwdCIpKTsKICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGluaXRpYXRvci50eXBl
ID09PSAicGFyc2VyIgogICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYXRvckNlbGwudGl0bGUg
PSBpbml0aWF0b3IudXJsICsgIjoiICsgaW5pdGlhdG9yLmxpbmVOdW1iZXI7Ci0gICAgICAgICAg
ICAgICAgdGhpcy5faW5pdGlhdG9yQ2VsbC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0b3IubGlua2lm
eVJlc291cmNlQXNOb2RlKGluaXRpYXRvci51cmwsICJyZXNvdXJjZXMiLCBpbml0aWF0b3IubGlu
ZU51bWJlcikpOworICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYXRvckNlbGwuYXBwZW5kQ2hp
bGQoV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZShpbml0aWF0b3IudXJsLCBpbml0
aWF0b3IubGluZU51bWJlciAtIDEpKTsKICAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmRTdWJ0
aXRsZSh0aGlzLl9pbml0aWF0b3JDZWxsLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhcnNlciIp
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUGFuZWwuanMKaW5kZXggZmNkZWQxYmRiYzc1OGYxY2U0OWRmZWI2NDY2MTBiNDk3
YjdjMGM5ZC4uN2FlZDc3NWQ0MTYyN2M3M2IwNjVhNjk2YjI2NzU3NTZhNmFlNDNlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC0zOTUsMjQgKzM5
NSw2IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2aXNp
YmxlVmlldy5yZXNpemUoKTsKICAgICB9LAogCi0gICAgY3JlYXRlQW5jaG9yOiBmdW5jdGlvbih1
cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY2xhc3NlcywgdG9vbHRpcFRleHQpCi0gICAg
ewotICAgICAgICB2YXIgbGlua1RleHQgPSB0aGlzLmZvcm1hdEFuY2hvclRleHQodXJsLCBsaW5l
TnVtYmVyKTsKLSAgICAgICAgdmFyIGFuY2hvciA9IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNO
b2RlKHVybCwgbGlua1RleHQsIGNsYXNzZXMsIGZhbHNlLCB0b29sdGlwVGV4dCk7Ci0gICAgICAg
IGFuY2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJyZXNvdXJjZXMiKTsKLSAg
ICAgICAgaWYgKGxpbmVOdW1iZXIgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIGFuY2hvci5z
ZXRBdHRyaWJ1dGUoImxpbmVfbnVtYmVyIiwgbGluZU51bWJlcik7Ci0gICAgICAgIHJldHVybiBh
bmNob3I7Ci0gICAgfSwKLQotICAgIGZvcm1hdEFuY2hvclRleHQ6IGZ1bmN0aW9uKHVybCwgbGlu
ZU51bWJlcikKLSAgICB7Ci0gICAgICAgIHZhciB0ZXh0ID0gV2ViSW5zcGVjdG9yLmRpc3BsYXlO
YW1lRm9yVVJMKHVybCk7Ci0gICAgICAgIGlmIChsaW5lTnVtYmVyICE9PSB1bmRlZmluZWQpCi0g
ICAgICAgICAgICB0ZXh0ICs9ICI6IiArIChsaW5lTnVtYmVyICsgMSk7Ci0gICAgICAgIHJldHVy
biB0ZXh0OwotICAgIH0sCi0KICAgICBjYW5TaG93QW5jaG9yTG9jYXRpb246IGZ1bmN0aW9uKGFu
Y2hvcikKICAgICB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFHcmlkVHJlZS5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFHcmlkVHJlZS5qcwppbmRl
eCA3OTg4Njc0NTM2ZjU4MWJiNjMzZTkwYTgzMGE3MmI1YWM4YzY2YTRhLi41NDJlOTM1ZjNiZGYy
Mzc0NDJlZDQ4YjJkMTI2NWQ5MjI4NWUwNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVEYXRhR3JpZFRyZWUuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlRGF0YUdyaWRUcmVlLmpzCkBAIC05Niwx
MCArOTYsOSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICBjZWxsLmFkZFN0eWxlQ2xhc3MoImhpZ2hsaWdodCIpOwogCiAgICAgICAg
IGlmICh0aGlzLnByb2ZpbGVOb2RlLnVybCkgewotICAgICAgICAgICAgdmFyIGxpbmVOdW1iZXI7
Ci0gICAgICAgICAgICBpZiAodGhpcy5wcm9maWxlTm9kZS5saW5lTnVtYmVyID4gMCkKLSAgICAg
ICAgICAgICAgICBsaW5lTnVtYmVyID0gdGhpcy5wcm9maWxlTm9kZS5saW5lTnVtYmVyOwotICAg
ICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNO
b2RlKHRoaXMucHJvZmlsZU5vZGUudXJsLCAic2NyaXB0cyIsIGxpbmVOdW1iZXIsICJwcm9maWxl
LW5vZGUtZmlsZSIpOworICAgICAgICAgICAgLy8gRklYTUUoNjI3MjUpOiBzdGFjayB0cmFjZSBs
aW5lL2NvbHVtbiBudW1iZXJzIGFyZSBvbmUtYmFzZWQuCisgICAgICAgICAgICB2YXIgbGluZU51
bWJlciA9IHRoaXMucHJvZmlsZU5vZGUubGluZU51bWJlciA/IHRoaXMucHJvZmlsZU5vZGUubGlu
ZU51bWJlciAtIDEgOiAwOworICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBXZWJJbnNwZWN0
b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odGhpcy5wcm9maWxl
Tm9kZS51cmwsIGxpbmVOdW1iZXIsIDAsICJwcm9maWxlLW5vZGUtZmlsZSIpOwogICAgICAgICAg
ICAgY2VsbC5pbnNlcnRCZWZvcmUodXJsRWxlbWVudCwgY2VsbC5maXJzdENoaWxkKTsKICAgICAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
c1BhbmVsLmpzCmluZGV4IGE1NjMyNmQzMzg1ZDU1MmMwOWFiNjIyNzQ2ZDYxMmU5MTM3N2NiYzUu
LjVlMjIxNWVhZDBjNjEzODdmZjhhNWFkMzhkNzlmNTczM2QwMGRiM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0yOCw3
ICsyOCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbigpCiB7CiAgICAg
V2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcywgInNjcmlwdHMiKTsKIAotICAgIHRoaXMuX3By
ZXNlbnRhdGlvbk1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsKCk7CisgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwgPSBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbDsKIAogICAgIHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMoKTsKIApA
QCAtMzI0LDcgKzMyNCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogCiAgICAgICAgIGlmIChmb2xkZXJOYW1lLmxlbmd0aCA+IDgwKQogICAgICAgICAgICAgZm9s
ZGVyTmFtZSA9ICJcdTIwMjYiICsgZm9sZGVyTmFtZS5zdWJzdHJpbmcoZm9sZGVyTmFtZS5sZW5n
dGggLSA4MCk7Ci0gCisKICAgICAgICAgcmV0dXJuIHsgZm9sZGVyTmFtZTogZm9sZGVyTmFtZSwg
ZGlzcGxheU5hbWU6IGRpc3BsYXlOYW1lfTsKICAgICB9LAogCkBAIC01NDUsMTQgKzU0NSw2IEBA
IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgeC5z
aG93KHRoaXMudmlld3NDb250YWluZXJFbGVtZW50KTsKICAgICB9LAogCi0gICAgY3JlYXRlQW5j
aG9yOiBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY2xhc3NlcywgdG9v
bHRpcFRleHQpCi0gICAgewotICAgICAgICB2YXIgYW5jaG9yID0gV2ViSW5zcGVjdG9yLlBhbmVs
LnByb3RvdHlwZS5jcmVhdGVBbmNob3IuY2FsbCh0aGlzLCB1cmwsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlciwgY2xhc3NlcywgdG9vbHRpcFRleHQpOwotICAgICAgICBpZiAobGluZU51bWJlciAh
PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwucmVnaXN0
ZXJBbmNob3IodXJsLCBudWxsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHRoaXMuX3VwZGF0
ZUFuY2hvci5iaW5kKHRoaXMsIGFuY2hvcikpOwotICAgICAgICByZXR1cm4gYW5jaG9yOwotICAg
IH0sCi0KICAgICBjYW5TaG93QW5jaG9yTG9jYXRpb246IGZ1bmN0aW9uKGFuY2hvcikKICAgICB7
CiAgICAgICAgIHJldHVybiB0aGlzLl9kZWJ1Z2dlckVuYWJsZWQgJiYgdGhpcy5fcHJlc2VudGF0
aW9uTW9kZWwuc291cmNlRmlsZUZvclNjcmlwdFVSTChhbmNob3IuaHJlZik7CkBAIC01NjMsMTcg
KzU1NSw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICB0aGlzLl9zaG93U291cmNlTGluZShhbmNob3IuZ2V0QXR0cmlidXRlKCJzb3VyY2VfZmlsZV9p
ZCIpLCBwYXJzZUludChhbmNob3IuZ2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIpKSk7CiAgICAg
fSwKIAotICAgIF91cGRhdGVBbmNob3I6IGZ1bmN0aW9uKGFuY2hvciwgc291cmNlRmlsZUlkLCBs
aW5lTnVtYmVyKQotICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9wcmVzZW50
YXRpb25Nb2RlbC5zb3VyY2VGaWxlKHNvdXJjZUZpbGVJZCk7Ci0gICAgICAgIHZhciB1cmwgPSBz
b3VyY2VGaWxlLnVybCB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFtKSIpOwotICAg
ICAgICBhbmNob3IudGV4dENvbnRlbnQgPSB0aGlzLmZvcm1hdEFuY2hvclRleHQodXJsLCBsaW5l
TnVtYmVyKQotICAgICAgICAvLyBVc2VkIGZvciBzaG93aW5nIGFuY2hvciBsb2NhdGlvbi4KLSAg
ICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlwdHMiKTsK
LSAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgic291cmNlX2ZpbGVfaWQiLCBzb3VyY2VGaWxl
SWQpOwotICAgICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIsIGxpbmVOdW1i
ZXIpOwotICAgIH0sCi0KICAgICBfc2hvd1NvdXJjZUxpbmU6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJ
ZCwgbGluZU51bWJlcikKICAgICB7CiAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3No
b3dTb3VyY2VGcmFtZUFuZEFkZFRvSGlzdG9yeShzb3VyY2VGaWxlSWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMK
aW5kZXggZGNiMjIyOGUzMmRiMjM2ZDBhOTc3Njg4MWFmZWFmNWQyYzNjMzU4MS4uMDA0Mjg5ZWVk
NGNkMjE4ODc1ZTk3ZWM5N2E1OGIwMmRkMThlOGNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCkBAIC04MzYs
NyArODM2LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydGllc1NlY3Rpb24gPSBmdW5jdGlv
bihwYXJlbnRQYW5lLCBzdHlsZVJ1bGUsIGVkaXRhYmxlLAogCiAgICAgZnVuY3Rpb24gbGlua2lm
eVVuY29weWFibGUodXJsLCBsaW5lKQogICAgIHsKLSAgICAgICAgdmFyIGxpbmsgPSBXZWJJbnNw
ZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHVybCwgInJlc291cmNlcyIsIGxpbmUgKyAxKTsK
KyAgICAgICAgdmFyIGxpbmsgPSBXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHVy
bCwgbGluZSk7CiAgICAgICAgIHJldHVybiBsaW5rOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IGY1YzRj
ZjdkZGIwYjYxZDcyY2FhMWFiMGQ1OWJkNmNjYzI2MDU2NWEuLmEwN2MzNDZlMjg1MzRjYzk2ZjYz
YmIwYjc3MGMxNWQ4MWI5YTUzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTExMTUsMjEgKzExMTUsMjcgQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5HQ0V2
ZW50OgogICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVzIGNv
bGxlY3RlZCIsIE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMuZGF0YS51c2VkSGVhcFNpemVEZWx0
YSkpOwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRU
eXBlLlRpbWVyRmlyZToKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zY3JpcHROYW1lID8g
V2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZSh0aGlzLnNjcmlwdE5hbWUsICJzY3Jp
cHRzIiwgdGhpcy5zY3JpcHRMaW5lLCAiIiwgIiIpIDogdGhpcy5kYXRhLnRpbWVySWQ7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NyaXB0TmFtZSA/IHRoaXMuX2xpbmtpZnlMb2NhdGlv
bih0aGlzLnNjcmlwdE5hbWUsIHRoaXMuc2NyaXB0TGluZSwgMCkgOiB0aGlzLmRhdGEudGltZXJJ
ZDsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlw
ZS5GdW5jdGlvbkNhbGw6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NyaXB0TmFtZSA/
IFdlYkluc3BlY3Rvci5saW5raWZ5UmVzb3VyY2VBc05vZGUodGhpcy5zY3JpcHROYW1lLCAic2Ny
aXB0cyIsIHRoaXMuc2NyaXB0TGluZSwgIiIsICIiKSA6IG51bGw7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHRoaXMuc2NyaXB0TmFtZSA/IHRoaXMuX2xpbmtpZnlMb2NhdGlvbih0aGlzLnNjcmlw
dE5hbWUsIHRoaXMuc2NyaXB0TGluZSwgMCkgOiBudWxsOwogICAgICAgICAgICAgY2FzZSBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkV2ZW50RGlzcGF0Y2g6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YSA/IHRoaXMuZGF0YS50eXBlIDogbnVsbDsKICAgICAg
ICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5QYWludDoK
ICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhLndpZHRoICsgIlx1MjAwOVx1MDBkN1x1
MjAwOSIgKyB0aGlzLmRhdGEuaGVpZ2h0OwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlRpbWVySW5zdGFsbDoKICAgICAgICAgICAgIGNhc2Ug
V2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5UaW1lclJlbW92ZToKLSAgICAg
ICAgICAgICAgICByZXR1cm4gdGhpcy5zdGFja1RyYWNlID8gV2ViSW5zcGVjdG9yLmxpbmtpZnlD
YWxsRnJhbWVBc05vZGUodGhpcy5zdGFja1RyYWNlWzBdLCAiIikgOiB0aGlzLmRhdGEudGltZXJJ
ZDsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGFja1RyYWNlKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fbGlua2lmeUxvY2F0aW9uKHRoaXMuc3RhY2tUcmFjZVswXS51cmws
IHRoaXMuc3RhY2tUcmFjZVswXS5saW5lTnVtYmVyLCB0aGlzLnN0YWNrVHJhY2VbMF0uY29sdW1u
TnVtYmVyKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB0aGlzLmRhdGEudGltZXJJZDsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lQWdlbnQuUmVjb3JkVHlwZS5QYXJzZUhUTUw6CiAgICAgICAgICAgICBjYXNlIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuUmVjYWxjdWxhdGVTdHlsZXM6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuc3RhY2tUcmFjZSA/IFdlYkluc3BlY3Rvci5saW5raWZ5Q2Fs
bEZyYW1lQXNOb2RlKHRoaXMuc3RhY2tUcmFjZVswXSwgIiIpIDogbnVsbDsKKyAgICAgICAgICAg
ICAgICBpZiAodGhpcy5zdGFja1RyYWNlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhp
cy5fbGlua2lmeUxvY2F0aW9uKHRoaXMuc3RhY2tUcmFjZVswXS51cmwsIHRoaXMuc3RhY2tUcmFj
ZVswXS5saW5lTnVtYmVyLCB0aGlzLnN0YWNrVHJhY2VbMF0uY29sdW1uTnVtYmVyKTsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkV2YWx1YXRl
U2NyaXB0OgotICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVybCA/IFdlYkluc3BlY3Rvci5s
aW5raWZ5UmVzb3VyY2VBc05vZGUodGhpcy51cmwsICJzY3JpcHRzIiwgdGhpcy5kYXRhLmxpbmVO
dW1iZXIsICIiLCAiIikgOiBudWxsOworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVybCA/
IHRoaXMuX2xpbmtpZnlMb2NhdGlvbih0aGlzLnVybCwgdGhpcy5kYXRhLmxpbmVOdW1iZXIsIDAp
IDogbnVsbDsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVj
b3JkVHlwZS5YSFJSZWFkeVN0YXRlQ2hhbmdlOgogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0
b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlhIUkxvYWQ6CiAgICAgICAgICAgICBjYXNlIFdl
Ykluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuU2NoZWR1bGVSZXNvdXJjZVJlcXVl
c3Q6CkBAIC0xMTQ1LDYgKzExNTEsMTQgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9y
bWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAgICBfbGlu
a2lmeUxvY2F0aW9uOiBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKKyAg
ICB7CisgICAgICAgIC8vIEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1bW4gbnVt
YmVycyBhcmUgb25lLWJhc2VkLgorICAgICAgICBsaW5lTnVtYmVyID0gbGluZU51bWJlciA/IGxp
bmVOdW1iZXIgLSAxIDogbGluZU51bWJlcjsKKyAgICAgICAgY29sdW1uTnVtYmVyID0gY29sdW1u
TnVtYmVyID8gY29sdW1uTnVtYmVyIC0gMSA6IDA7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0
b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odXJsLCBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXIsICJ0aW1lbGluZS1kZXRhaWxzIik7CisgICAgfSwKKwogICAgIF9j
YWxjdWxhdGVBZ2dyZWdhdGVkU3RhdHM6IGZ1bmN0aW9uKGNhdGVnb3JpZXMpCiAgICAgewogICAg
ICAgICB0aGlzLl9hZ2dyZWdhdGVkU3RhdHMgPSB7fTsKQEAgLTEyMTIsNyArMTIyNiw3IEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZVBhbmVsLlBvcHVwQ29udGVudEhlbHBlci5wcm90b3R5cGUgPSB7
CiAKICAgICBfYXBwZW5kTGlua1JvdzogZnVuY3Rpb24odGl0bGUsIHNjcmlwdE5hbWUsIHNjcmlw
dExpbmUpCiAgICAgewotICAgICAgICB2YXIgbGluayA9IFdlYkluc3BlY3Rvci5saW5raWZ5UmVz
b3VyY2VBc05vZGUoc2NyaXB0TmFtZSwgInNjcmlwdHMiLCBzY3JpcHRMaW5lLCAidGltZWxpbmUt
ZGV0YWlscyIpOworICAgICAgICB2YXIgbGluayA9IHRoaXMuX2xpbmtpZnlMb2NhdGlvbihzY3Jp
cHROYW1lLCBzY3JpcHRMaW5lLCAwKTsKICAgICAgICAgdGhpcy5fYXBwZW5kRWxlbWVudFJvdyh0
aXRsZSwgbGluayk7CiAgICAgfSwKIApAQCAtMTIyNyw3ICsxMjQxLDggQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUGFuZWwuUG9wdXBDb250ZW50SGVscGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIHJvdy5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDZWxsKHN0YWNrRnJhbWUuZnVuY3Rpb25O
YW1lID8gc3RhY2tGcmFtZS5mdW5jdGlvbk5hbWUgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihh
bm9ueW1vdXMgZnVuY3Rpb24pIiksICJ0aW1lbGluZS1mdW5jdGlvbi1uYW1lIikpOwogICAgICAg
ICAgICAgcm93LmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNlbGwoIiBAICIpKTsKICAgICAgICAg
ICAgIHZhciBsaW5rQ2VsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7Ci0gICAgICAg
ICAgICBsaW5rQ2VsbC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0b3IubGlua2lmeUNhbGxGcmFtZUFz
Tm9kZShzdGFja0ZyYW1lLCAidGltZWxpbmUtZGV0YWlscyIpKTsKKyAgICAgICAgICAgIHZhciB1
cmxFbGVtZW50ID0gdGhpcy5fbGlua2lmeUxvY2F0aW9uKHN0YWNrRnJhbWUudXJsLCBzdGFja0Zy
YW1lLmxpbmVOdW1iZXIsIHN0YWNrRnJhbWUuY29sdW1uTnVtYmVyKTsKKyAgICAgICAgICAgIGxp
bmtDZWxsLmFwcGVuZENoaWxkKHVybEVsZW1lbnQpOwogICAgICAgICAgICAgcm93LmFwcGVuZENo
aWxkKGxpbmtDZWxsKTsKICAgICAgICAgICAgIGZyYW1lc1RhYmxlLmFwcGVuZENoaWxkKHJvdyk7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuanMKaW5kZXggZTEzYWVmNjllZjBlMWM5ZTg0MjQ4ZDUzNmVjYjEzOGI5NjZlNTc1Ny4u
N2E1Zjg4Yjc5Zjk1NTAwNjBkNjI1ZWZkMzMyZmJiOTZiMTQ1NThkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTI0MCw3ICsyNDAs
NyBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0
b24udG9nZ2xlZCA9IGZhbHNlOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NldHRpbmdzU2Ny
ZWVuOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGlmICghdGhpcy5fc2V0dGluZ3NT
Y3JlZW4pIHsKICAgICAgICAgICAgIHRoaXMuX3NldHRpbmdzU2NyZWVuID0gbmV3IFdlYkluc3Bl
Y3Rvci5TZXR0aW5nc1NjcmVlbigpOwogICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4u
c2hvdyhvbmhpZGUuYmluZCh0aGlzKSk7CkBAIC01MTksNiArNTE5LDcgQEAgV2ViSW5zcGVjdG9y
LmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuY3NzTW9kZWwgPSBuZXcgV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwoKTsKICAgICB0aGlzLmRlYnVnZ2VyTW9kZWwgPSBuZXcg
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwoKTsKKyAgICB0aGlzLmRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwoKTsK
IAogICAgIHRoaXMuc2VhcmNoQ29udHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2VhcmNoQ29u
dHJvbGxlcigpOwogICAgIHRoaXMuZG9tQnJlYWtwb2ludHNTaWRlYmFyUGFuZSA9IG5ldyBXZWJJ
bnNwZWN0b3IuRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZSgpOwpAQCAtMTMyMCwxOSArMTMyMSwy
MSBAQCBXZWJJbnNwZWN0b3IubGlua2lmeVVSTCA9IGZ1bmN0aW9uKHVybCwgbGlua1RleHQsIGNs
YXNzZXMsIGlzRXh0ZXJuYWwsIHRvb2x0aXBUZQogICAgIHJldHVybiBXZWJJbnNwZWN0b3IubGlu
a2lmeVVSTEFzTm9kZSh1cmwsIGxpbmtUZXh0LCBjbGFzc2VzLCBpc0V4dGVybmFsLCB0b29sdGlw
VGV4dCkub3V0ZXJIVE1MOwogfQogCi1XZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2Rl
ID0gZnVuY3Rpb24odXJsLCBwcmVmZXJyZWRQYW5lbCwgb25lQmFzZWRMaW5lTnVtYmVyLCBjbGFz
c2VzLCB0b29sdGlwVGV4dCkKK1dlYkluc3BlY3Rvci5mb3JtYXRMaW5rVGV4dCA9IGZ1bmN0aW9u
KHVybCwgbGluZU51bWJlcikKIHsKLSAgICBwcmVmZXJyZWRQYW5lbCA9IHByZWZlcnJlZFBhbmVs
IHx8ICJzY3JpcHRzIjsKLSAgICAvLyBGSVhNRSg2MjcyNSk6IHN0YWNrIHRyYWNlIGxpbmUvY29s
dW1uIG51bWJlcnMgYXJlIG9uZS1iYXNlZC4KLSAgICB2YXIgbGluZU51bWJlciA9IG9uZUJhc2Vk
TGluZU51bWJlciA/IG9uZUJhc2VkTGluZU51bWJlciAtIDEgOiB1bmRlZmluZWQ7Ci0gICAgcmV0
dXJuIHRoaXMucGFuZWxzW3ByZWZlcnJlZFBhbmVsXS5jcmVhdGVBbmNob3IodXJsLCBsaW5lTnVt
YmVyLCAwLCBjbGFzc2VzLCB0b29sdGlwVGV4dCk7CisgICAgdmFyIHRleHQgPSBXZWJJbnNwZWN0
b3IuZGlzcGxheU5hbWVGb3JVUkwodXJsKTsKKyAgICBpZiAobGluZU51bWJlciAhPT0gdW5kZWZp
bmVkKQorICAgICAgICB0ZXh0ICs9ICI6IiArIChsaW5lTnVtYmVyICsgMSk7CisgICAgcmV0dXJu
IHRleHQ7CiB9CiAKLVdlYkluc3BlY3Rvci5saW5raWZ5Q2FsbEZyYW1lQXNOb2RlID0gZnVuY3Rp
b24oY2FsbEZyYW1lLCBjbGFzc2VzLCB0b29sdGlwVGV4dCkKK1dlYkluc3BlY3Rvci5saW5raWZ5
UmVzb3VyY2VBc05vZGUgPSBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNsYXNzZXMsIHRvb2x0
aXBUZXh0KQogewotICAgIC8vIEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1bW4g
bnVtYmVycyBhcmUgb25lLWJhc2VkLgotICAgIHZhciBjb2x1bW5OdW1iZXIgPSBjYWxsRnJhbWUu
Y29sdW1uTnVtYmVyID8gY2FsbEZyYW1lLmNvbHVtbk51bWJlciAtIDEgOiAwOwotICAgIHJldHVy
biB0aGlzLnBhbmVscy5zY3JpcHRzLmNyZWF0ZUFuY2hvcihjYWxsRnJhbWUudXJsLCBjYWxsRnJh
bWUubGluZU51bWJlciAtIDEsIGNvbHVtbk51bWJlciwgY2xhc3NlcywgdG9vbHRpcFRleHQpOwor
ICAgIHZhciBsaW5rVGV4dCA9IHRoaXMuZm9ybWF0TGlua1RleHQodXJsLCBsaW5lTnVtYmVyKTsK
KyAgICB2YXIgYW5jaG9yID0gdGhpcy5saW5raWZ5VVJMQXNOb2RlKHVybCwgbGlua1RleHQsIGNs
YXNzZXMsIGZhbHNlLCB0b29sdGlwVGV4dCk7CisgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgicHJl
ZmVycmVkX3BhbmVsIiwgInJlc291cmNlcyIpOworICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoImxp
bmVfbnVtYmVyIiwgbGluZU51bWJlcik7CisgICAgcmV0dXJuIGFuY2hvcjsKIH0KIAogV2ViSW5z
cGVjdG9yLnJlc291cmNlVVJMRm9yUmVsYXRlZE5vZGUgPSBmdW5jdGlvbihub2RlLCB1cmwpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102910</attachid>
            <date>2011-08-04 07:08:30 -0700</date>
            <delta_ts>2011-08-05 08:47:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65612-20110804180828.patch</filename>
            <type>text/plain</type>
            <size>27187</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIzNzAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy1zeW50YXgtZXJyb3ItZXhwZWN0
ZWQudHh0CmluZGV4IDljYjAxYzJhN2JiYTE4NTVjNWRhOGNmOWY0MzIwNTYxYWZhMmE4ZmYuLjc1
NjhlYjA0ZDMyY2NiYWRhMDVkYWQzNDdjZGIyMWY1NDAxZjgyMzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbG9nLXN5bnRheC1lcnJvci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb2ctc3lu
dGF4LWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIENPTlNPTEUgTUVTU0FHRTog
bGluZSAxOiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiAnKScKIFRlc3RzIHRoYXQgc3lu
dGF4IGVycm9ycyBhcmUgbG9nZ2VkIGludG8gY29uc29sZSBhbmQgZG9lc24ndCBjYXVzZSBicm93
c2VyIGNyYXNoLgogCi1zeW50YXgtZXJyb3IuanM6MVN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRv
a2VuICcpJworc3ludGF4LWVycm9yLmpzU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJykn
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9j
b25zb2xlL2NvbnNvbGUtbG9nLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLWxvZy1zeW50YXgt
ZXJyb3ItZXhwZWN0ZWQudHh0CmluZGV4IDY5NjllZjEzMDdlMzQyZjU5ZDMyMTM0NTM0Yzc5YzVh
ZGY2ODk4ZWUuLjU4ZWQ3OGNlY2JhZTM0MTViMmY1NzYzNDBiZGY4ZjBlYzEzMDhiNzMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci9jb25zb2xlL2Nv
bnNvbGUtbG9nLXN5bnRheC1lcnJvci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1sb2ctc3ludGF4LWVycm9y
LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBV
bmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiApCiBUZXN0cyB0aGF0IHN5bnRh
eCBlcnJvcnMgYXJlIGxvZ2dlZCBpbnRvIGNvbnNvbGUgYW5kIGRvZXNuJ3QgY2F1c2UgYnJvd3Nl
ciBjcmFzaC4KIAotc3ludGF4LWVycm9yLmpzOjFVbmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiApCitzeW50YXgtZXJyb3IuanNVbmNhdWdodCBTeW50YXhFcnJvcjogVW5leHBl
Y3RlZCB0b2tlbiApCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNmMwYTE5ZDlmZGM5OTNjNTVmMDA5OTZlZmQz
Njg3MTc4YzkyNGRiLi40MTQ4NjRiYTdkNGY2ZmE0NDM5MzFmZDBjMGY0MDQwNzZmNWIxNTc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTEtMDgtMDQgIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcmVmYWN0
b3IgbGlua3MgY3JlYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02NTYxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyAtIGl0IGlzIHJlZmFjdG9yaW5nLCBtb2RpZmllZCBjb2Rl
IGNvdmVyZWQgYnkgc2NyaXB0LWZvcm1hdHRlci5odG1sIHRlc3QuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNv
bnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fZm9ybWF0TWVzc2FnZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlLl9saW5raWZ5TG9jYXRpb24pOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnByb3RvdHlwZS5fcG9wdWxhdGVTdGFja1Ry
YWNlVHJlZUVsZW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5hZGRTb3VyY2VNYXBwaW5nTGlzdGVuZXIpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLnJlbW92ZVNvdXJj
ZU1hcHBpbmdMaXN0ZW5lcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5wcm90b3R5cGUubGlua2lmeUxvY2F0aW9uLnVwZGF0ZUFuY2hvci5kaWRHZXRM
b2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5wcm90b3R5cGUubGlua2lmeUxvY2F0aW9uLnVwZGF0ZUFuY2hvcik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUubGlua2lmeUxvY2F0
aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnBy
b3RvdHlwZS5zZXRGb3JtYXRTb3VyY2VGaWxlcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3NvdXJjZUZpbGVGb3JTY3JpcHQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
Ll9kZWJ1Z2dlclJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlz
dGVuZXJzU2lkZWJhclBhbmUuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3
b3JrUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmV0d29ya0RhdGFHcmlkTm9kZS5w
cm90b3R5cGUuX3JlZnJlc2hJbml0aWF0b3JDZWxsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1BhbmVsLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURh
dGFHcmlkVHJlZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxlRGF0YUdyaWROb2Rl
LnByb3RvdHlwZS5jcmVhdGVDZWxsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90
eXBlLl9mb2xkZXJBbmREaXNwbGF5TmFtZUZvclNjcmlwdFVSTCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uLmxpbmtpZnlVbmNvcHlhYmxlKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TdHlsZVByb3BlcnRpZXNTZWN0aW9uKToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxp
bmVQYW5lbC5Gb3JtYXR0ZWRSZWNvcmQucHJvdG90eXBlLl9nZXRSZWNvcmREZXRhaWxzKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLkZvcm1hdHRlZFJlY29yZC5wcm90b3R5
cGUuX2xpbmtpZnlMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5l
bC5Qb3B1cENvbnRlbnRIZWxwZXIucHJvdG90eXBlLl9hcHBlbmRMaW5rUm93KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLlBvcHVwQ29udGVudEhlbHBlci5wcm90b3R5cGUu
X2FwcGVuZFN0YWNrVHJhY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLl9zaG93U2V0dGluZ3NTY3JlZW4pOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLmZvcm1hdExpbmtUZXh0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5saW5raWZ5UmVzb3VyY2VBc05vZGUpOgorCiAyMDExLTA4LTAzICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBmdWxsc2NyZWVuL3ZpZGVv
LWNvbnRyb2xzLW92ZXJyaWRlLmh0bWwgZmFpbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvQ29uc29sZVZpZXcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NvbnNvbGVWaWV3LmpzCmluZGV4IDE2ZTYwMjEzMjI5OTVlZjg5ZDY5
MDZkZGNlMDliZjQyMmQ5Njc2NGUuLjk0NDFhNmE2YzhlZjc5MGE3MDI5ZmU1NjVkY2YxZWVmYTY1
ZjQ4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvQ29u
c29sZVZpZXcuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Db25z
b2xlVmlldy5qcwpAQCAtNzQwLDcgKzc0MCw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlVmlldy5w
cm90b3R5cGUgPSB7CiAgICAgICAgIC8vIFByZXZlbnQgaW5maW5pdGUgZXhwYW5zaW9uIG9mIGNy
b3NzLXJlZmVyZW5jaW5nIGFycmF5cy4KICAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1hdChvdXRw
dXQsIG91dHB1dC5zdWJ0eXBlICYmIG91dHB1dC5zdWJ0eXBlID09PSAiYXJyYXkiKTsKICAgICB9
LAotICAgIAorCiAgICAgZ2V0IHNjcm9sbExlZnQoKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRo
aXMubWVzc2FnZXNFbGVtZW50LnNjcm9sbExlZnQ7CkBAIC04NDQsMTAgKzg0NCwxMCBAQCBXZWJJ
bnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9mb3Jt
YXR0ZWRNZXNzYWdlLmNsYXNzTmFtZSA9ICJjb25zb2xlLW1lc3NhZ2UtdGV4dCBzb3VyY2UtY29k
ZSI7CiAKICAgICAgICAgaWYgKHRoaXMuX3N0YWNrVHJhY2UgJiYgdGhpcy5fc3RhY2tUcmFjZS5s
ZW5ndGggJiYgdGhpcy5fc3RhY2tUcmFjZVswXS51cmwpIHsKLSAgICAgICAgICAgIHZhciB1cmxF
bGVtZW50ID0gV2ViSW5zcGVjdG9yLmxpbmtpZnlDYWxsRnJhbWVBc05vZGUodGhpcy5fc3RhY2tU
cmFjZVswXSwgImNvbnNvbGUtbWVzc2FnZS11cmwiKTsKKyAgICAgICAgICAgIHZhciB1cmxFbGVt
ZW50ID0gdGhpcy5fbGlua2lmeUxvY2F0aW9uKHRoaXMuX3N0YWNrVHJhY2VbMF0udXJsLCB0aGlz
Ll9zdGFja1RyYWNlWzBdLmxpbmVOdW1iZXIsIHRoaXMuX3N0YWNrVHJhY2VbMF0uY29sdW1uTnVt
YmVyKTsKICAgICAgICAgICAgIHRoaXMuX2Zvcm1hdHRlZE1lc3NhZ2UuYXBwZW5kQ2hpbGQodXJs
RWxlbWVudCk7CiAgICAgICAgIH0gZWxzZSBpZiAodGhpcy51cmwgJiYgdGhpcy51cmwgIT09ICJ1
bmRlZmluZWQiKSB7Ci0gICAgICAgICAgICB2YXIgdXJsRWxlbWVudCA9IFdlYkluc3BlY3Rvci5s
aW5raWZ5UmVzb3VyY2VBc05vZGUodGhpcy51cmwsICJzY3JpcHRzIiwgdGhpcy5saW5lLCAiY29u
c29sZS1tZXNzYWdlLXVybCIpOworICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSB0aGlzLl9s
aW5raWZ5TG9jYXRpb24odGhpcy51cmwsIHRoaXMubGluZU51bWJlciwgMCk7CiAgICAgICAgICAg
ICB0aGlzLl9mb3JtYXR0ZWRNZXNzYWdlLmFwcGVuZENoaWxkKHVybEVsZW1lbnQpOwogICAgICAg
ICB9CiAKQEAgLTg4MCw2ICs4ODAsMTQgQEAgV2ViSW5zcGVjdG9yLkNvbnNvbGVNZXNzYWdlLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5tZXNzYWdlID0gdGhpcy5fZm9ybWF0dGVkTWVzc2Fn
ZS50ZXh0Q29udGVudDsKICAgICB9LAogCisgICAgX2xpbmtpZnlMb2NhdGlvbjogZnVuY3Rpb24o
dXJsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCisgICAgeworICAgICAgICAvLyBGSVhNRSg2
MjcyNSk6IHN0YWNrIHRyYWNlIGxpbmUvY29sdW1uIG51bWJlcnMgYXJlIG9uZS1iYXNlZC4KKyAg
ICAgICAgbGluZU51bWJlciA9IGxpbmVOdW1iZXIgPyBsaW5lTnVtYmVyIC0gMSA6IGxpbmVOdW1i
ZXI7CisgICAgICAgIGNvbHVtbk51bWJlciA9IGNvbHVtbk51bWJlciA/IGNvbHVtbk51bWJlciAt
IDEgOiAwOworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwubGlua2lmeUxvY2F0aW9uKHVybCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCAiY29u
c29sZS1tZXNzYWdlLXVybCIpOworICAgIH0sCisKICAgICBpc0Vycm9yT3JXYXJuaW5nOiBmdW5j
dGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gKHRoaXMubGV2ZWwgPT09IFdlYkluc3BlY3Rv
ci5Db25zb2xlTWVzc2FnZS5NZXNzYWdlTGV2ZWwuV2FybmluZyB8fCB0aGlzLmxldmVsID09PSBX
ZWJJbnNwZWN0b3IuQ29uc29sZU1lc3NhZ2UuTWVzc2FnZUxldmVsLkVycm9yKTsKQEAgLTEwNDQs
NyArMTA1Miw3IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKG1lc3NhZ2VUZXh0RWxlbWVudCk7CiAKICAg
ICAgICAgICAgIGlmIChmcmFtZS51cmwpIHsKLSAgICAgICAgICAgICAgICB2YXIgdXJsRWxlbWVu
dCA9IFdlYkluc3BlY3Rvci5saW5raWZ5Q2FsbEZyYW1lQXNOb2RlKGZyYW1lLCAiY29uc29sZS1t
ZXNzYWdlLXVybCIpOworICAgICAgICAgICAgICAgIHZhciB1cmxFbGVtZW50ID0gdGhpcy5fbGlu
a2lmeUxvY2F0aW9uKGZyYW1lLnVybCwgZnJhbWUubGluZU51bWJlciwgZnJhbWUuY29sdW1uTnVt
YmVyKTsKICAgICAgICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKHVybEVsZW1lbnQpOwog
ICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggYThiNTY1
NDRmZWFkYTBiZDMzYTBiMjNjMzQ5ZmQyNDUwZjMxZDVmZS4uMTZjYWU1NWFkNGQ2NzBjYzIzM2Fk
NDk2MjI3N2JmNTEwYTY1NWRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAt
MzQsNyArMzQsOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1
bmN0aW9uKCkKICAgICB0aGlzLl9mb3JtYXR0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdEZv
cm1hdHRlcigpOwogICAgIHRoaXMuX3NvdXJjZUZpbGVzID0ge307CiAgICAgdGhpcy5fbWVzc2Fn
ZXMgPSBbXTsKLSAgICB0aGlzLl9hbmNob3JzID0gW107CisgICAgLy8gRklYTUU6IG1vdmUgdGhp
cyB0byBSYXdTb3VyY2VDb2RlIHdoZW4gaXQncyBub3QgcmUtY3JlYXRlZCBpbiBwcmV0dHktcHJp
bnQgbW9kZS4KKyAgICB0aGlzLl9zb3VyY2VNYXBwaW5nTGlzdGVuZXJzID0gW107CiAgICAgdGhp
cy5fYnJlYWtwb2ludHNCeURlYnVnZ2VySWQgPSB7fTsKICAgICB0aGlzLl9icmVha3BvaW50c1dp
dGhvdXRTb3VyY2VGaWxlID0ge307CiAKQEAgLTExOSwyMCArMTIwLDQyIEBAIFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5f
c291cmNlRmlsZXNbc291cmNlRmlsZUlkXS5yZXF1ZXN0Q29udGVudChjYWxsYmFjayk7CiAgICAg
fSwKIAotICAgIHJlZ2lzdGVyQW5jaG9yOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNjcmlwdElkLCBs
aW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHVwZGF0ZUhhbmRsZXIpCisgICAgYWRkU291cmNlTWFw
cGluZ0xpc3RlbmVyOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNvdXJjZUlkLCBsaXN0ZW5lcikKICAg
ICB7Ci0gICAgICAgIHZhciBhbmNob3IgPSB7IHNvdXJjZVVSTDogc291cmNlVVJMLCBzY3JpcHRJ
ZDogc2NyaXB0SWQsIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1u
TnVtYmVyLCB1cGRhdGVIYW5kbGVyOiB1cGRhdGVIYW5kbGVyIH07Ci0gICAgICAgIHRoaXMuX2Fu
Y2hvcnMucHVzaChhbmNob3IpOwotICAgICAgICB0aGlzLl91cGRhdGVBbmNob3IoYW5jaG9yKTsK
KyAgICAgICAgdGhpcy5fc291cmNlTWFwcGluZ0xpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTsKICAg
ICB9LAogCi0gICAgX3VwZGF0ZUFuY2hvcjogZnVuY3Rpb24oYW5jaG9yKQorICAgIHJlbW92ZVNv
dXJjZU1hcHBpbmdMaXN0ZW5lcjogZnVuY3Rpb24oc291cmNlVVJMLCBzb3VyY2VJZCwgbGlzdGVu
ZXIpCiAgICAgewotICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVGb3JT
Y3JpcHQoYW5jaG9yLnNvdXJjZVVSTCwgYW5jaG9yLnNjcmlwdElkKTsKLSAgICAgICAgaWYgKCFz
b3VyY2VGaWxlKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAvLyBGSVhNRTogaW1wbGVt
ZW50IHRoaXMuCisgICAgfSwKIAotICAgICAgICB0aGlzLl9zY3JpcHRMb2NhdGlvblRvVUlMb2Nh
dGlvbihhbmNob3Iuc291cmNlVVJMLCBhbmNob3Iuc2NyaXB0SWQsIGFuY2hvci5saW5lTnVtYmVy
LCBhbmNob3IuY29sdW1uTnVtYmVyLCBhbmNob3IudXBkYXRlSGFuZGxlcik7CisgICAgbGlua2lm
eUxvY2F0aW9uOiBmdW5jdGlvbihzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwg
Y2xhc3NlcykKKyAgICB7CisgICAgICAgIHZhciBsaW5rVGV4dCA9IFdlYkluc3BlY3Rvci5mb3Jt
YXRMaW5rVGV4dChzb3VyY2VVUkwsIGxpbmVOdW1iZXIpOworICAgICAgICB2YXIgYW5jaG9yID0g
V2ViSW5zcGVjdG9yLmxpbmtpZnlVUkxBc05vZGUoc291cmNlVVJMLCBsaW5rVGV4dCwgY2xhc3Nl
cywgZmFsc2UpOworCisgICAgICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZUZv
clNjcmlwdChzb3VyY2VVUkwpOworICAgICAgICBpZiAoIXNvdXJjZUZpbGUpIHsKKyAgICAgICAg
ICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJyZXNvdXJjZXMiKTsK
KyAgICAgICAgICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoImxpbmVfbnVtYmVyIiwgbGluZU51bWJl
cik7CisgICAgICAgICAgICByZXR1cm4gYW5jaG9yOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gdXBkYXRlQW5jaG9yKCkKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rpb24gZGlk
R2V0TG9jYXRpb24oc291cmNlRmlsZUlkLCBsaW5lTnVtYmVyKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIGFuY2hvci50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5mb3JtYXRMaW5r
VGV4dChzb3VyY2VGaWxlLnVybCwgbGluZU51bWJlcik7CisgICAgICAgICAgICAgICAgYW5jaG9y
LnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlwdHMiKTsKKyAgICAgICAgICAg
ICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJzb3VyY2VfZmlsZV9pZCIsIHNvdXJjZUZpbGVJZCk7
CisgICAgICAgICAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgibGluZV9udW1iZXIiLCBsaW5l
TnVtYmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuX3NjcmlwdExvY2F0aW9u
VG9VSUxvY2F0aW9uKHNvdXJjZVVSTCwgbnVsbCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBk
aWRHZXRMb2NhdGlvbi5iaW5kKHRoaXMpKTsKKyAgICAgICAgfQorICAgICAgICB1cGRhdGVBbmNo
b3IuY2FsbCh0aGlzKTsKKyAgICAgICAgdGhpcy5hZGRTb3VyY2VNYXBwaW5nTGlzdGVuZXIoc291
cmNlVVJMLCBudWxsLCB1cGRhdGVBbmNob3IuYmluZCh0aGlzKSk7CisgICAgICAgIHJldHVybiBh
bmNob3I7CiAgICAgfSwKIAogICAgIF9wYXJzZWRTY3JpcHRTb3VyY2U6IGZ1bmN0aW9uKGV2ZW50
KQpAQCAtMjgxLDggKzMwNCw5IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZXNzYWdlcy5s
ZW5ndGg7ICsraSkKICAgICAgICAgICAgIHRoaXMuX2FkZENvbnNvbGVNZXNzYWdlKG1lc3NhZ2Vz
W2ldKTsKIAotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2FuY2hvcnMubGVuZ3Ro
OyArK2kpCi0gICAgICAgICAgICB0aGlzLl91cGRhdGVBbmNob3IodGhpcy5fYW5jaG9yc1tpXSk7
CisgICAgICAgIC8vIEZJWE1FOiBtb3ZlIHRoaXMgdG8gUmF3U291cmNlQ29kZS4KKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zb3VyY2VNYXBwaW5nTGlzdGVuZXJzLmxlbmd0aDsg
KytpKQorICAgICAgICAgICAgdGhpcy5fc291cmNlTWFwcGluZ0xpc3RlbmVyc1tpXSgpOwogCiAg
ICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5jYWxsRnJhbWVzKQogICAgICAg
ICAgICAgdGhpcy5fZGVidWdnZXJQYXVzZWQoKTsKQEAgLTYxNiw4ICs2NDAsMTIgQEAgV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogCiAgICAgX3Nv
dXJjZUZpbGVGb3JTY3JpcHQ6IGZ1bmN0aW9uKHNvdXJjZVVSTCwgc2NyaXB0SWQpCiAgICAgewot
ICAgICAgICBpZiAoIXNvdXJjZVVSTCkKLSAgICAgICAgICAgIHNvdXJjZVVSTCA9IFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNvdXJjZUlEKHNjcmlwdElkKS5zb3VyY2VVUkw7
CisgICAgICAgIGlmICghc291cmNlVVJMKSB7CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoc2NyaXB0SWQpOworICAg
ICAgICAgICAgaWYgKCFzY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgc291cmNlVVJMID0gc2NyaXB0LnNvdXJjZVVSTDsKKyAgICAgICAgfQogICAgICAgICByZXR1
cm4gdGhpcy5fc291cmNlRmlsZXNbdGhpcy5fY3JlYXRlU291cmNlRmlsZUlkKHNvdXJjZVVSTCwg
c2NyaXB0SWQpXTsKICAgICB9LAogCkBAIC02NTgsNyArNjg2LDcgQEAgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgIF9kZWJ1Z2dlclJlc2V0
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9yZXNldCgpOwotICAgICAgICB0aGlz
Ll9hbmNob3JzID0gW107CisgICAgICAgIHRoaXMuX3NvdXJjZU1hcHBpbmdMaXN0ZW5lcnMgPSBb
XTsKICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uQ2FsbEZyYW1lcyA9IFtdOwogICAgICAgICB0
aGlzLl9zZWxlY3RlZENhbGxGcmFtZUluZGV4ID0gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lkZWJhclBhbmUu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V2ZW50TGlzdGVuZXJzU2lk
ZWJhclBhbmUuanMKaW5kZXggZWRhYzAzM2RkNjE1ZGRmMDNiODFiZDI2YTA2NWU5YjhlMTEzMTEw
OS4uOGUzNDNhN2IwMWU2ZjUyOWJhMDM5YWM3ZDM2NDkzOGJkOGFjYjk1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FdmVudExpc3RlbmVyc1NpZGViYXJQ
YW5lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0
ZW5lcnNTaWRlYmFyUGFuZS5qcwpAQCAtMjM2LDcgKzIzNiwxMSBAQCBXZWJJbnNwZWN0b3IuRXZl
bnRMaXN0ZW5lckJhci5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIFJlcXVpcmVzIHRoYXQgRnVu
Y3Rpb24udG9TdHJpbmcoKSByZXR1cm4gYXQgbGVhc3QgdGhlIGZ1bmN0aW9uJ3Mgc2lnbmF0dXJl
LgogICAgICAgICBpZiAodGhpcy5ldmVudExpc3RlbmVyLmxvY2F0aW9uKSB7CiAgICAgICAgICAg
ICB0aGlzLnN1YnRpdGxlRWxlbWVudC5yZW1vdmVDaGlsZHJlbigpOwotICAgICAgICAgICAgdGhp
cy5zdWJ0aXRsZUVsZW1lbnQuYXBwZW5kQ2hpbGQoV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJj
ZUFzTm9kZSh0aGlzLmV2ZW50TGlzdGVuZXIubG9jYXRpb24uc2NyaXB0SWQsICJzY3JpcHRzIiwg
dGhpcy5ldmVudExpc3RlbmVyLmxvY2F0aW9uLmxpbmVOdW1iZXIpKTsKKyAgICAgICAgICAgIC8v
IEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1bW4gbnVtYmVycyBhcmUgb25lLWJh
c2VkLgorICAgICAgICAgICAgdmFyIHVybCA9IHRoaXMuZXZlbnRMaXN0ZW5lci5sb2NhdGlvbi5z
Y3JpcHRJZDsKKyAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0gdGhpcy5ldmVudExpc3RlbmVy
LmxvY2F0aW9uLmxpbmVOdW1iZXIgLSAxOworICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odXJs
LCBsaW5lTnVtYmVyLCAwKTsKKyAgICAgICAgICAgIHRoaXMuc3VidGl0bGVFbGVtZW50LmFwcGVu
ZENoaWxkKHVybEVsZW1lbnQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgdmFyIG1h
dGNoID0gdGhpcy5ldmVudExpc3RlbmVyLmhhbmRsZXJCb2R5Lm1hdGNoKC9mdW5jdGlvbiAoW15c
KF0rPylcKC8pOwogICAgICAgICAgICAgaWYgKG1hdGNoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwppbmRleCAwOWExZjFmYzRmYTBi
OWVkMjBlYzBjYTM0ZjczMDhlMTJlMTM5ZTdjLi40ZTYxNjY1MWZjZTA0NGFhZTc2ODdmYTRmMDMy
MDhmYmRkMjdkNDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL05ldHdvcmtQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL05ldHdvcmtQYW5lbC5qcwpAQCAtMTk3NywxMSArMTk3NywxMiBAQCBXZWJJbnNwZWN0b3Iu
TmV0d29ya0RhdGFHcmlkTm9kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhdG9y
Q2VsbC50aXRsZSA9IHRvcEZyYW1lLnVybCArICI6IiArIHRvcEZyYW1lLmxpbmVOdW1iZXI7Ci0g
ICAgICAgICAgICAgICAgdGhpcy5faW5pdGlhdG9yQ2VsbC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0
b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHRvcEZyYW1lLnVybCwgInNjcmlwdHMiLCB0b3BGcmFt
ZS5saW5lTnVtYmVyKSk7CisgICAgICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBXZWJJbnNw
ZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odG9wRnJhbWUu
dXJsLCB0b3BGcmFtZS5saW5lTnVtYmVyIC0gMSwgMCk7CisgICAgICAgICAgICAgICAgdGhpcy5f
aW5pdGlhdG9yQ2VsbC5hcHBlbmRDaGlsZCh1cmxFbGVtZW50KTsKICAgICAgICAgICAgICAgICB0
aGlzLl9hcHBlbmRTdWJ0aXRsZSh0aGlzLl9pbml0aWF0b3JDZWxsLCBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlNjcmlwdCIpKTsKICAgICAgICAgICAgIH0gZWxzZSB7IC8vIGluaXRpYXRvci50eXBl
ID09PSAicGFyc2VyIgogICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYXRvckNlbGwudGl0bGUg
PSBpbml0aWF0b3IudXJsICsgIjoiICsgaW5pdGlhdG9yLmxpbmVOdW1iZXI7Ci0gICAgICAgICAg
ICAgICAgdGhpcy5faW5pdGlhdG9yQ2VsbC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0b3IubGlua2lm
eVJlc291cmNlQXNOb2RlKGluaXRpYXRvci51cmwsICJyZXNvdXJjZXMiLCBpbml0aWF0b3IubGlu
ZU51bWJlcikpOworICAgICAgICAgICAgICAgIHRoaXMuX2luaXRpYXRvckNlbGwuYXBwZW5kQ2hp
bGQoV2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZShpbml0aWF0b3IudXJsLCBpbml0
aWF0b3IubGluZU51bWJlciAtIDEpKTsKICAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmRTdWJ0
aXRsZSh0aGlzLl9pbml0aWF0b3JDZWxsLCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlBhcnNlciIp
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUGFuZWwuanMKaW5kZXggZmNkZWQxYmRiYzc1OGYxY2U0OWRmZWI2NDY2MTBiNDk3
YjdjMGM5ZC4uN2FlZDc3NWQ0MTYyN2M3M2IwNjVhNjk2YjI2NzU3NTZhNmFlNDNlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9QYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BhbmVsLmpzCkBAIC0zOTUsMjQgKzM5
NSw2IEBAIFdlYkluc3BlY3Rvci5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB2aXNp
YmxlVmlldy5yZXNpemUoKTsKICAgICB9LAogCi0gICAgY3JlYXRlQW5jaG9yOiBmdW5jdGlvbih1
cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY2xhc3NlcywgdG9vbHRpcFRleHQpCi0gICAg
ewotICAgICAgICB2YXIgbGlua1RleHQgPSB0aGlzLmZvcm1hdEFuY2hvclRleHQodXJsLCBsaW5l
TnVtYmVyKTsKLSAgICAgICAgdmFyIGFuY2hvciA9IFdlYkluc3BlY3Rvci5saW5raWZ5VVJMQXNO
b2RlKHVybCwgbGlua1RleHQsIGNsYXNzZXMsIGZhbHNlLCB0b29sdGlwVGV4dCk7Ci0gICAgICAg
IGFuY2hvci5zZXRBdHRyaWJ1dGUoInByZWZlcnJlZF9wYW5lbCIsICJyZXNvdXJjZXMiKTsKLSAg
ICAgICAgaWYgKGxpbmVOdW1iZXIgIT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIGFuY2hvci5z
ZXRBdHRyaWJ1dGUoImxpbmVfbnVtYmVyIiwgbGluZU51bWJlcik7Ci0gICAgICAgIHJldHVybiBh
bmNob3I7Ci0gICAgfSwKLQotICAgIGZvcm1hdEFuY2hvclRleHQ6IGZ1bmN0aW9uKHVybCwgbGlu
ZU51bWJlcikKLSAgICB7Ci0gICAgICAgIHZhciB0ZXh0ID0gV2ViSW5zcGVjdG9yLmRpc3BsYXlO
YW1lRm9yVVJMKHVybCk7Ci0gICAgICAgIGlmIChsaW5lTnVtYmVyICE9PSB1bmRlZmluZWQpCi0g
ICAgICAgICAgICB0ZXh0ICs9ICI6IiArIChsaW5lTnVtYmVyICsgMSk7Ci0gICAgICAgIHJldHVy
biB0ZXh0OwotICAgIH0sCi0KICAgICBjYW5TaG93QW5jaG9yTG9jYXRpb246IGZ1bmN0aW9uKGFu
Y2hvcikKICAgICB7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFHcmlkVHJlZS5qcyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUHJvZmlsZURhdGFHcmlkVHJlZS5qcwppbmRl
eCA3OTg4Njc0NTM2ZjU4MWJiNjMzZTkwYTgzMGE3MmI1YWM4YzY2YTRhLi41NDJlOTM1ZjNiZGYy
Mzc0NDJlZDQ4YjJkMTI2NWQ5MjI4NWUwNjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1Byb2ZpbGVEYXRhR3JpZFRyZWUuanMKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qcm9maWxlRGF0YUdyaWRUcmVlLmpzCkBAIC05Niwx
MCArOTYsOSBAQCBXZWJJbnNwZWN0b3IuUHJvZmlsZURhdGFHcmlkTm9kZS5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICBjZWxsLmFkZFN0eWxlQ2xhc3MoImhpZ2hsaWdodCIpOwogCiAgICAgICAg
IGlmICh0aGlzLnByb2ZpbGVOb2RlLnVybCkgewotICAgICAgICAgICAgdmFyIGxpbmVOdW1iZXI7
Ci0gICAgICAgICAgICBpZiAodGhpcy5wcm9maWxlTm9kZS5saW5lTnVtYmVyID4gMCkKLSAgICAg
ICAgICAgICAgICBsaW5lTnVtYmVyID0gdGhpcy5wcm9maWxlTm9kZS5saW5lTnVtYmVyOwotICAg
ICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNO
b2RlKHRoaXMucHJvZmlsZU5vZGUudXJsLCAic2NyaXB0cyIsIGxpbmVOdW1iZXIsICJwcm9maWxl
LW5vZGUtZmlsZSIpOworICAgICAgICAgICAgLy8gRklYTUUoNjI3MjUpOiBzdGFjayB0cmFjZSBs
aW5lL2NvbHVtbiBudW1iZXJzIGFyZSBvbmUtYmFzZWQuCisgICAgICAgICAgICB2YXIgbGluZU51
bWJlciA9IHRoaXMucHJvZmlsZU5vZGUubGluZU51bWJlciA/IHRoaXMucHJvZmlsZU5vZGUubGlu
ZU51bWJlciAtIDEgOiAwOworICAgICAgICAgICAgdmFyIHVybEVsZW1lbnQgPSBXZWJJbnNwZWN0
b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odGhpcy5wcm9maWxl
Tm9kZS51cmwsIGxpbmVOdW1iZXIsIDAsICJwcm9maWxlLW5vZGUtZmlsZSIpOwogICAgICAgICAg
ICAgY2VsbC5pbnNlcnRCZWZvcmUodXJsRWxlbWVudCwgY2VsbC5maXJzdENoaWxkKTsKICAgICAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nj
cmlwdHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
c1BhbmVsLmpzCmluZGV4IGE1NjMyNmQzMzg1ZDU1MmMwOWFiNjIyNzQ2ZDYxMmU5MTM3N2NiYzUu
LjVlMjIxNWVhZDBjNjEzODdmZjhhNWFkMzhkNzlmNTczM2QwMGRiM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0yOCw3
ICsyOCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbigpCiB7CiAgICAg
V2ViSW5zcGVjdG9yLlBhbmVsLmNhbGwodGhpcywgInNjcmlwdHMiKTsKIAotICAgIHRoaXMuX3By
ZXNlbnRhdGlvbk1vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsKCk7CisgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwgPSBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbDsKIAogICAgIHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMoKTsKIApA
QCAtMzI0LDcgKzMyNCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogCiAgICAgICAgIGlmIChmb2xkZXJOYW1lLmxlbmd0aCA+IDgwKQogICAgICAgICAgICAgZm9s
ZGVyTmFtZSA9ICJcdTIwMjYiICsgZm9sZGVyTmFtZS5zdWJzdHJpbmcoZm9sZGVyTmFtZS5sZW5n
dGggLSA4MCk7Ci0gCisKICAgICAgICAgcmV0dXJuIHsgZm9sZGVyTmFtZTogZm9sZGVyTmFtZSwg
ZGlzcGxheU5hbWU6IGRpc3BsYXlOYW1lfTsKICAgICB9LAogCkBAIC01NDUsMTQgKzU0NSw2IEBA
IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgeC5z
aG93KHRoaXMudmlld3NDb250YWluZXJFbGVtZW50KTsKICAgICB9LAogCi0gICAgY3JlYXRlQW5j
aG9yOiBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgY2xhc3NlcywgdG9v
bHRpcFRleHQpCi0gICAgewotICAgICAgICB2YXIgYW5jaG9yID0gV2ViSW5zcGVjdG9yLlBhbmVs
LnByb3RvdHlwZS5jcmVhdGVBbmNob3IuY2FsbCh0aGlzLCB1cmwsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlciwgY2xhc3NlcywgdG9vbHRpcFRleHQpOwotICAgICAgICBpZiAobGluZU51bWJlciAh
PT0gdW5kZWZpbmVkKQotICAgICAgICAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwucmVnaXN0
ZXJBbmNob3IodXJsLCBudWxsLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHRoaXMuX3VwZGF0
ZUFuY2hvci5iaW5kKHRoaXMsIGFuY2hvcikpOwotICAgICAgICByZXR1cm4gYW5jaG9yOwotICAg
IH0sCi0KICAgICBjYW5TaG93QW5jaG9yTG9jYXRpb246IGZ1bmN0aW9uKGFuY2hvcikKICAgICB7
CiAgICAgICAgIHJldHVybiB0aGlzLl9kZWJ1Z2dlckVuYWJsZWQgJiYgdGhpcy5fcHJlc2VudGF0
aW9uTW9kZWwuc291cmNlRmlsZUZvclNjcmlwdFVSTChhbmNob3IuaHJlZik7CkBAIC01NjMsMTcg
KzU1NSw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAg
ICB0aGlzLl9zaG93U291cmNlTGluZShhbmNob3IuZ2V0QXR0cmlidXRlKCJzb3VyY2VfZmlsZV9p
ZCIpLCBwYXJzZUludChhbmNob3IuZ2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIpKSk7CiAgICAg
fSwKIAotICAgIF91cGRhdGVBbmNob3I6IGZ1bmN0aW9uKGFuY2hvciwgc291cmNlRmlsZUlkLCBs
aW5lTnVtYmVyKQotICAgIHsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9wcmVzZW50
YXRpb25Nb2RlbC5zb3VyY2VGaWxlKHNvdXJjZUZpbGVJZCk7Ci0gICAgICAgIHZhciB1cmwgPSBz
b3VyY2VGaWxlLnVybCB8fCBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFtKSIpOwotICAg
ICAgICBhbmNob3IudGV4dENvbnRlbnQgPSB0aGlzLmZvcm1hdEFuY2hvclRleHQodXJsLCBsaW5l
TnVtYmVyKQotICAgICAgICAvLyBVc2VkIGZvciBzaG93aW5nIGFuY2hvciBsb2NhdGlvbi4KLSAg
ICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgicHJlZmVycmVkX3BhbmVsIiwgInNjcmlwdHMiKTsK
LSAgICAgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgic291cmNlX2ZpbGVfaWQiLCBzb3VyY2VGaWxl
SWQpOwotICAgICAgICBhbmNob3Iuc2V0QXR0cmlidXRlKCJsaW5lX251bWJlciIsIGxpbmVOdW1i
ZXIpOwotICAgIH0sCi0KICAgICBfc2hvd1NvdXJjZUxpbmU6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJ
ZCwgbGluZU51bWJlcikKICAgICB7CiAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHRoaXMuX3No
b3dTb3VyY2VGcmFtZUFuZEFkZFRvSGlzdG9yeShzb3VyY2VGaWxlSWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU3R5bGVzU2lkZWJhclBhbmUuanMK
aW5kZXggZGNiMjIyOGUzMmRiMjM2ZDBhOTc3Njg4MWFmZWFmNWQyYzNjMzU4MS4uMDA0Mjg5ZWVk
NGNkMjE4ODc1ZTk3ZWM5N2E1OGIwMmRkMThlOGNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TdHlsZXNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1N0eWxlc1NpZGViYXJQYW5lLmpzCkBAIC04MzYs
NyArODM2LDcgQEAgV2ViSW5zcGVjdG9yLlN0eWxlUHJvcGVydGllc1NlY3Rpb24gPSBmdW5jdGlv
bihwYXJlbnRQYW5lLCBzdHlsZVJ1bGUsIGVkaXRhYmxlLAogCiAgICAgZnVuY3Rpb24gbGlua2lm
eVVuY29weWFibGUodXJsLCBsaW5lKQogICAgIHsKLSAgICAgICAgdmFyIGxpbmsgPSBXZWJJbnNw
ZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHVybCwgInJlc291cmNlcyIsIGxpbmUgKyAxKTsK
KyAgICAgICAgdmFyIGxpbmsgPSBXZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2RlKHVy
bCwgbGluZSk7CiAgICAgICAgIHJldHVybiBsaW5rOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IGY1YzRj
ZjdkZGIwYjYxZDcyY2FhMWFiMGQ1OWJkNmNjYzI2MDU2NWEuLmEwN2MzNDZlMjg1MzRjYzk2ZjYz
YmIwYjc3MGMxNWQ4MWI5YTUzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKQEAgLTExMTUsMjEgKzExMTUsMjcgQEAgV2Vi
SW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9ybWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5HQ0V2
ZW50OgogICAgICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIiVzIGNv
bGxlY3RlZCIsIE51bWJlci5ieXRlc1RvU3RyaW5nKHRoaXMuZGF0YS51c2VkSGVhcFNpemVEZWx0
YSkpOwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRU
eXBlLlRpbWVyRmlyZToKLSAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zY3JpcHROYW1lID8g
V2ViSW5zcGVjdG9yLmxpbmtpZnlSZXNvdXJjZUFzTm9kZSh0aGlzLnNjcmlwdE5hbWUsICJzY3Jp
cHRzIiwgdGhpcy5zY3JpcHRMaW5lLCAiIiwgIiIpIDogdGhpcy5kYXRhLnRpbWVySWQ7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NyaXB0TmFtZSA/IHRoaXMuX2xpbmtpZnlMb2NhdGlv
bih0aGlzLnNjcmlwdE5hbWUsIHRoaXMuc2NyaXB0TGluZSwgMCkgOiB0aGlzLmRhdGEudGltZXJJ
ZDsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlw
ZS5GdW5jdGlvbkNhbGw6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2NyaXB0TmFtZSA/
IFdlYkluc3BlY3Rvci5saW5raWZ5UmVzb3VyY2VBc05vZGUodGhpcy5zY3JpcHROYW1lLCAic2Ny
aXB0cyIsIHRoaXMuc2NyaXB0TGluZSwgIiIsICIiKSA6IG51bGw7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHRoaXMuc2NyaXB0TmFtZSA/IHRoaXMuX2xpbmtpZnlMb2NhdGlvbih0aGlzLnNjcmlw
dE5hbWUsIHRoaXMuc2NyaXB0TGluZSwgMCkgOiBudWxsOwogICAgICAgICAgICAgY2FzZSBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkV2ZW50RGlzcGF0Y2g6CiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuZGF0YSA/IHRoaXMuZGF0YS50eXBlIDogbnVsbDsKICAgICAg
ICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5QYWludDoK
ICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhLndpZHRoICsgIlx1MjAwOVx1MDBkN1x1
MjAwOSIgKyB0aGlzLmRhdGEuaGVpZ2h0OwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlRpbWVySW5zdGFsbDoKICAgICAgICAgICAgIGNhc2Ug
V2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVjb3JkVHlwZS5UaW1lclJlbW92ZToKLSAgICAg
ICAgICAgICAgICByZXR1cm4gdGhpcy5zdGFja1RyYWNlID8gV2ViSW5zcGVjdG9yLmxpbmtpZnlD
YWxsRnJhbWVBc05vZGUodGhpcy5zdGFja1RyYWNlWzBdLCAiIikgOiB0aGlzLmRhdGEudGltZXJJ
ZDsKKyAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGFja1RyYWNlKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fbGlua2lmeUxvY2F0aW9uKHRoaXMuc3RhY2tUcmFjZVswXS51cmws
IHRoaXMuc3RhY2tUcmFjZVswXS5saW5lTnVtYmVyLCB0aGlzLnN0YWNrVHJhY2VbMF0uY29sdW1u
TnVtYmVyKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB0aGlzLmRhdGEudGltZXJJZDsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVs
aW5lQWdlbnQuUmVjb3JkVHlwZS5QYXJzZUhUTUw6CiAgICAgICAgICAgICBjYXNlIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuUmVjYWxjdWxhdGVTdHlsZXM6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuc3RhY2tUcmFjZSA/IFdlYkluc3BlY3Rvci5saW5raWZ5Q2Fs
bEZyYW1lQXNOb2RlKHRoaXMuc3RhY2tUcmFjZVswXSwgIiIpIDogbnVsbDsKKyAgICAgICAgICAg
ICAgICBpZiAodGhpcy5zdGFja1RyYWNlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhp
cy5fbGlua2lmeUxvY2F0aW9uKHRoaXMuc3RhY2tUcmFjZVswXS51cmwsIHRoaXMuc3RhY2tUcmFj
ZVswXS5saW5lTnVtYmVyLCB0aGlzLnN0YWNrVHJhY2VbMF0uY29sdW1uTnVtYmVyKTsKKyAgICAg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLkV2YWx1YXRl
U2NyaXB0OgotICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVybCA/IFdlYkluc3BlY3Rvci5s
aW5raWZ5UmVzb3VyY2VBc05vZGUodGhpcy51cmwsICJzY3JpcHRzIiwgdGhpcy5kYXRhLmxpbmVO
dW1iZXIsICIiLCAiIikgOiBudWxsOworICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVybCA/
IHRoaXMuX2xpbmtpZnlMb2NhdGlvbih0aGlzLnVybCwgdGhpcy5kYXRhLmxpbmVOdW1iZXIsIDAp
IDogbnVsbDsKICAgICAgICAgICAgIGNhc2UgV2ViSW5zcGVjdG9yLlRpbWVsaW5lQWdlbnQuUmVj
b3JkVHlwZS5YSFJSZWFkeVN0YXRlQ2hhbmdlOgogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0
b3IuVGltZWxpbmVBZ2VudC5SZWNvcmRUeXBlLlhIUkxvYWQ6CiAgICAgICAgICAgICBjYXNlIFdl
Ykluc3BlY3Rvci5UaW1lbGluZUFnZW50LlJlY29yZFR5cGUuU2NoZWR1bGVSZXNvdXJjZVJlcXVl
c3Q6CkBAIC0xMTQ1LDYgKzExNTEsMTQgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwuRm9y
bWF0dGVkUmVjb3JkLnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAgICBfbGlu
a2lmeUxvY2F0aW9uOiBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKKyAg
ICB7CisgICAgICAgIC8vIEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1bW4gbnVt
YmVycyBhcmUgb25lLWJhc2VkLgorICAgICAgICBsaW5lTnVtYmVyID0gbGluZU51bWJlciA/IGxp
bmVOdW1iZXIgLSAxIDogbGluZU51bWJlcjsKKyAgICAgICAgY29sdW1uTnVtYmVyID0gY29sdW1u
TnVtYmVyID8gY29sdW1uTnVtYmVyIC0gMSA6IDA7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0
b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5saW5raWZ5TG9jYXRpb24odXJsLCBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXIsICJ0aW1lbGluZS1kZXRhaWxzIik7CisgICAgfSwKKwogICAgIF9j
YWxjdWxhdGVBZ2dyZWdhdGVkU3RhdHM6IGZ1bmN0aW9uKGNhdGVnb3JpZXMpCiAgICAgewogICAg
ICAgICB0aGlzLl9hZ2dyZWdhdGVkU3RhdHMgPSB7fTsKQEAgLTEyMTIsNyArMTIyNiw3IEBAIFdl
Ykluc3BlY3Rvci5UaW1lbGluZVBhbmVsLlBvcHVwQ29udGVudEhlbHBlci5wcm90b3R5cGUgPSB7
CiAKICAgICBfYXBwZW5kTGlua1JvdzogZnVuY3Rpb24odGl0bGUsIHNjcmlwdE5hbWUsIHNjcmlw
dExpbmUpCiAgICAgewotICAgICAgICB2YXIgbGluayA9IFdlYkluc3BlY3Rvci5saW5raWZ5UmVz
b3VyY2VBc05vZGUoc2NyaXB0TmFtZSwgInNjcmlwdHMiLCBzY3JpcHRMaW5lLCAidGltZWxpbmUt
ZGV0YWlscyIpOworICAgICAgICB2YXIgbGluayA9IHRoaXMuX2xpbmtpZnlMb2NhdGlvbihzY3Jp
cHROYW1lLCBzY3JpcHRMaW5lLCAwKTsKICAgICAgICAgdGhpcy5fYXBwZW5kRWxlbWVudFJvdyh0
aXRsZSwgbGluayk7CiAgICAgfSwKIApAQCAtMTIyNyw3ICsxMjQxLDggQEAgV2ViSW5zcGVjdG9y
LlRpbWVsaW5lUGFuZWwuUG9wdXBDb250ZW50SGVscGVyLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ICAgIHJvdy5hcHBlbmRDaGlsZCh0aGlzLl9jcmVhdGVDZWxsKHN0YWNrRnJhbWUuZnVuY3Rpb25O
YW1lID8gc3RhY2tGcmFtZS5mdW5jdGlvbk5hbWUgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihh
bm9ueW1vdXMgZnVuY3Rpb24pIiksICJ0aW1lbGluZS1mdW5jdGlvbi1uYW1lIikpOwogICAgICAg
ICAgICAgcm93LmFwcGVuZENoaWxkKHRoaXMuX2NyZWF0ZUNlbGwoIiBAICIpKTsKICAgICAgICAg
ICAgIHZhciBsaW5rQ2VsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7Ci0gICAgICAg
ICAgICBsaW5rQ2VsbC5hcHBlbmRDaGlsZChXZWJJbnNwZWN0b3IubGlua2lmeUNhbGxGcmFtZUFz
Tm9kZShzdGFja0ZyYW1lLCAidGltZWxpbmUtZGV0YWlscyIpKTsKKyAgICAgICAgICAgIHZhciB1
cmxFbGVtZW50ID0gdGhpcy5fbGlua2lmeUxvY2F0aW9uKHN0YWNrRnJhbWUudXJsLCBzdGFja0Zy
YW1lLmxpbmVOdW1iZXIsIHN0YWNrRnJhbWUuY29sdW1uTnVtYmVyKTsKKyAgICAgICAgICAgIGxp
bmtDZWxsLmFwcGVuZENoaWxkKHVybEVsZW1lbnQpOwogICAgICAgICAgICAgcm93LmFwcGVuZENo
aWxkKGxpbmtDZWxsKTsKICAgICAgICAgICAgIGZyYW1lc1RhYmxlLmFwcGVuZENoaWxkKHJvdyk7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNw
ZWN0b3IuanMKaW5kZXggZTEzYWVmNjllZjBlMWM5ZTg0MjQ4ZDUzNmVjYjEzOGI5NjZlNTc1Ny4u
N2E1Zjg4Yjc5Zjk1NTAwNjBkNjI1ZWZkMzMyZmJiOTZiMTQ1NThkNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTI0MCw3ICsyNDAs
NyBAQCB2YXIgV2ViSW5zcGVjdG9yID0gewogICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NCdXR0
b24udG9nZ2xlZCA9IGZhbHNlOwogICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3NldHRpbmdzU2Ny
ZWVuOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGlmICghdGhpcy5fc2V0dGluZ3NT
Y3JlZW4pIHsKICAgICAgICAgICAgIHRoaXMuX3NldHRpbmdzU2NyZWVuID0gbmV3IFdlYkluc3Bl
Y3Rvci5TZXR0aW5nc1NjcmVlbigpOwogICAgICAgICAgICAgdGhpcy5fc2V0dGluZ3NTY3JlZW4u
c2hvdyhvbmhpZGUuYmluZCh0aGlzKSk7CkBAIC01MTksNiArNTE5LDcgQEAgV2ViSW5zcGVjdG9y
LmRvTG9hZGVkRG9uZSA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuY3NzTW9kZWwgPSBuZXcgV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwoKTsKICAgICB0aGlzLmRlYnVnZ2VyTW9kZWwgPSBuZXcg
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwoKTsKKyAgICB0aGlzLmRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwoKTsK
IAogICAgIHRoaXMuc2VhcmNoQ29udHJvbGxlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2VhcmNoQ29u
dHJvbGxlcigpOwogICAgIHRoaXMuZG9tQnJlYWtwb2ludHNTaWRlYmFyUGFuZSA9IG5ldyBXZWJJ
bnNwZWN0b3IuRE9NQnJlYWtwb2ludHNTaWRlYmFyUGFuZSgpOwpAQCAtMTMyMCwxOSArMTMyMSwy
MSBAQCBXZWJJbnNwZWN0b3IubGlua2lmeVVSTCA9IGZ1bmN0aW9uKHVybCwgbGlua1RleHQsIGNs
YXNzZXMsIGlzRXh0ZXJuYWwsIHRvb2x0aXBUZQogICAgIHJldHVybiBXZWJJbnNwZWN0b3IubGlu
a2lmeVVSTEFzTm9kZSh1cmwsIGxpbmtUZXh0LCBjbGFzc2VzLCBpc0V4dGVybmFsLCB0b29sdGlw
VGV4dCkub3V0ZXJIVE1MOwogfQogCi1XZWJJbnNwZWN0b3IubGlua2lmeVJlc291cmNlQXNOb2Rl
ID0gZnVuY3Rpb24odXJsLCBwcmVmZXJyZWRQYW5lbCwgb25lQmFzZWRMaW5lTnVtYmVyLCBjbGFz
c2VzLCB0b29sdGlwVGV4dCkKK1dlYkluc3BlY3Rvci5mb3JtYXRMaW5rVGV4dCA9IGZ1bmN0aW9u
KHVybCwgbGluZU51bWJlcikKIHsKLSAgICBwcmVmZXJyZWRQYW5lbCA9IHByZWZlcnJlZFBhbmVs
IHx8ICJzY3JpcHRzIjsKLSAgICAvLyBGSVhNRSg2MjcyNSk6IHN0YWNrIHRyYWNlIGxpbmUvY29s
dW1uIG51bWJlcnMgYXJlIG9uZS1iYXNlZC4KLSAgICB2YXIgbGluZU51bWJlciA9IG9uZUJhc2Vk
TGluZU51bWJlciA/IG9uZUJhc2VkTGluZU51bWJlciAtIDEgOiB1bmRlZmluZWQ7Ci0gICAgcmV0
dXJuIHRoaXMucGFuZWxzW3ByZWZlcnJlZFBhbmVsXS5jcmVhdGVBbmNob3IodXJsLCBsaW5lTnVt
YmVyLCAwLCBjbGFzc2VzLCB0b29sdGlwVGV4dCk7CisgICAgdmFyIHRleHQgPSBXZWJJbnNwZWN0
b3IuZGlzcGxheU5hbWVGb3JVUkwodXJsKTsKKyAgICBpZiAobGluZU51bWJlciAhPT0gdW5kZWZp
bmVkKQorICAgICAgICB0ZXh0ICs9ICI6IiArIChsaW5lTnVtYmVyICsgMSk7CisgICAgcmV0dXJu
IHRleHQ7CiB9CiAKLVdlYkluc3BlY3Rvci5saW5raWZ5Q2FsbEZyYW1lQXNOb2RlID0gZnVuY3Rp
b24oY2FsbEZyYW1lLCBjbGFzc2VzLCB0b29sdGlwVGV4dCkKK1dlYkluc3BlY3Rvci5saW5raWZ5
UmVzb3VyY2VBc05vZGUgPSBmdW5jdGlvbih1cmwsIGxpbmVOdW1iZXIsIGNsYXNzZXMsIHRvb2x0
aXBUZXh0KQogewotICAgIC8vIEZJWE1FKDYyNzI1KTogc3RhY2sgdHJhY2UgbGluZS9jb2x1bW4g
bnVtYmVycyBhcmUgb25lLWJhc2VkLgotICAgIHZhciBjb2x1bW5OdW1iZXIgPSBjYWxsRnJhbWUu
Y29sdW1uTnVtYmVyID8gY2FsbEZyYW1lLmNvbHVtbk51bWJlciAtIDEgOiAwOwotICAgIHJldHVy
biB0aGlzLnBhbmVscy5zY3JpcHRzLmNyZWF0ZUFuY2hvcihjYWxsRnJhbWUudXJsLCBjYWxsRnJh
bWUubGluZU51bWJlciAtIDEsIGNvbHVtbk51bWJlciwgY2xhc3NlcywgdG9vbHRpcFRleHQpOwor
ICAgIHZhciBsaW5rVGV4dCA9IHRoaXMuZm9ybWF0TGlua1RleHQodXJsLCBsaW5lTnVtYmVyKTsK
KyAgICB2YXIgYW5jaG9yID0gdGhpcy5saW5raWZ5VVJMQXNOb2RlKHVybCwgbGlua1RleHQsIGNs
YXNzZXMsIGZhbHNlLCB0b29sdGlwVGV4dCk7CisgICAgYW5jaG9yLnNldEF0dHJpYnV0ZSgicHJl
ZmVycmVkX3BhbmVsIiwgInJlc291cmNlcyIpOworICAgIGFuY2hvci5zZXRBdHRyaWJ1dGUoImxp
bmVfbnVtYmVyIiwgbGluZU51bWJlcik7CisgICAgcmV0dXJuIGFuY2hvcjsKIH0KIAogV2ViSW5z
cGVjdG9yLnJlc291cmNlVVJMRm9yUmVsYXRlZE5vZGUgPSBmdW5jdGlvbihub2RlLCB1cmwpCg==
</data>
<flag name="review"
          id="98322"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>