<?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>41461</bug_id>
          
          <creation_ts>2010-07-01 06:33:54 -0700</creation_ts>
          <short_desc>Web Inspector: all breakpoints are activated on page reload</short_desc>
          <delta_ts>2010-07-27 09:12:51 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>41757</dependson>
    
    <dependson>42256</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>pfeldman</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>245307</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-07-01 06:33:54 -0700</bug_when>
    <thetext>Web Inspector: all breakpoints are activated on page reload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245311</commentid>
    <comment_count>1</comment_count>
      <attachid>60237</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-07-01 06:38:47 -0700</bug_when>
    <thetext>Created attachment 60237
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245340</commentid>
    <comment_count>2</comment_count>
      <attachid>60237</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-01 07:37:17 -0700</bug_when>
    <thetext>Comment on attachment 60237
Proposed patch.

Can we have a test for this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246569</commentid>
    <comment_count>3</comment_count>
      <attachid>60511</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-07-05 04:27:57 -0700</bug_when>
    <thetext>Created attachment 60511
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246605</commentid>
    <comment_count>4</comment_count>
      <attachid>60511</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-05 06:12:11 -0700</bug_when>
    <thetext>Comment on attachment 60511
Proposed patch.

LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:75
 +   * Checks that all expected scripts are present in the scripts list
You don&apos;t need to port these comments.

WebCore/inspector/front-end/ScriptsPanel.js:614
 +          if (!options)
I&apos;s rather change this to options = options || {};

LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:164
 +  Tests that breakpoints are not activated on page reload.
We usually put link to a bug in test descriptions.

LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:125
 +  function frontend_showMainPageScriptSource(scriptName, callback)
frontend_showScriptSource would better reflect what it does since it doesn&apos;t
use the fact that scriptName is the name of the main resource.

LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:145
 +          WebInspector.currentPanel._showScriptOrResource(scriptResource);
Use scriptsPanel instead of WebInspector.currentPanel as you do below.


LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:27
 +      var testName = &quot;debugger-breakpoints-not-activated-on-reload.html&quot;;
You can get the test name from document.location

LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:58
 +              testController.notifyDone();
You need to wait until all scripts are pushed to the front-end again, right?
r- for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246720</commentid>
    <comment_count>5</comment_count>
      <attachid>60557</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-07-05 11:22:24 -0700</bug_when>
    <thetext>Created attachment 60557
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>246724</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-07-05 11:26:46 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 60511 [details])
&gt; LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:75
&gt;  +   * Checks that all expected scripts are present in the scripts list
&gt; You don&apos;t need to port these comments.
&gt; 
&gt; WebCore/inspector/front-end/ScriptsPanel.js:614
&gt;  +          if (!options)
&gt; I&apos;s rather change this to options = options || {};
&gt; 
&gt; LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:164
&gt;  +  Tests that breakpoints are not activated on page reload.
&gt; We usually put link to a bug in test descriptions.
&gt; 
&gt; LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:125
&gt;  +  function frontend_showMainPageScriptSource(scriptName, callback)
&gt; frontend_showScriptSource would better reflect what it does since it doesn&apos;t
&gt; use the fact that scriptName is the name of the main resource.
&gt; 
&gt; LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:145
&gt;  +          WebInspector.currentPanel._showScriptOrResource(scriptResource);
&gt; Use scriptsPanel instead of WebInspector.currentPanel as you do below.
Done.

&gt; 
&gt; LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:27
&gt;  +      var testName = &quot;debugger-breakpoints-not-activated-on-reload.html&quot;;
&gt; You can get the test name from document.location
I&apos;m not sure how to grab document.location from inspected page, so I&apos;ve used
WebInspector.mainResource.url instead.

&gt; LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:58
&gt;  +              testController.notifyDone();
&gt; You need to wait until all scripts are pushed to the front-end again, right?
&gt; r- for that.
This code is called only after main script with breakpoint is parsed, it should
be enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247412</commentid>
    <comment_count>7</comment_count>
      <attachid>60557</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-07 02:31:19 -0700</bug_when>
    <thetext>Comment on attachment 60557
Proposed patch.

Clearing flags on attachment: 60557

Committed r62645: &lt;http://trac.webkit.org/changeset/62645&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247413</commentid>
    <comment_count>8</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-07 02:31:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247424</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-07 02:50:15 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/62645 might have broken GTK Linux 32-bit Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>247478</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-07 04:28:15 -0700</bug_when>
    <thetext>Rolled out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248273</commentid>
    <comment_count>11</comment_count>
      <attachid>60900</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-07-08 09:42:31 -0700</bug_when>
    <thetext>Created attachment 60900
Updated test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248280</commentid>
    <comment_count>12</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-08 09:47:12 -0700</bug_when>
    <thetext>What was the problem? Can you attach diff wrt last reviewed state?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248311</commentid>
    <comment_count>13</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-07-08 10:31:35 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; What was the problem? Can you attach diff wrt last reviewed state?

It was a problem with JSC (fixed in http://trac.webkit.org/changeset/62769).
The patch is the same except for the test and expectation (see attached diff).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248312</commentid>
    <comment_count>14</comment_count>
      <attachid>60907</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-07-08 10:32:00 -0700</bug_when>
    <thetext>Created attachment 60907
Test diff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248488</commentid>
    <comment_count>15</comment_count>
      <attachid>60900</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-07-08 13:28:52 -0700</bug_when>
    <thetext>Comment on attachment 60900
Updated test.

WebKit/chromium/src/js/DebuggerScript.js:98
 +      if (!args.enabled || !DebuggerScript._breakpointsActivated)
Why is this needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248830</commentid>
    <comment_count>16</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-07-09 01:26:55 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 60900 [details])
&gt; WebKit/chromium/src/js/DebuggerScript.js:98
&gt;  +      if (!args.enabled || !DebuggerScript._breakpointsActivated)
&gt; Why is this needed?

Without this flag, breakpoints will be restored in &quot;enabled&quot; state on reload, even if all breakpoints are deactivated in frontend.
Please see ScriptDebugServer::setBreakpointsActivated implementation in js bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>248836</commentid>
    <comment_count>17</comment_count>
      <attachid>60900</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-09 01:52:09 -0700</bug_when>
    <thetext>Comment on attachment 60900
Updated test.

LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:112
 +          frontend_addSniffer(view, &quot;_sourceFrameSetupFinished&quot;, function(event)
Please extract common code that waits for frame loading before executing callback from here and frontend_checkExecutionLineWhenSourceFrameIsLoaded in debugger-pause-in-eval-script.html test.

LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:56
 +  function frontend_scriptsAreParsed(scripts)
you may want to move these methods to debugger-test.js</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249088</commentid>
    <comment_count>18</comment_count>
      <attachid>61055</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-07-09 10:20:39 -0700</bug_when>
    <thetext>Created attachment 61055
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>249089</commentid>
    <comment_count>19</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-07-09 10:22:23 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 60900 [details])
&gt; LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:112
&gt;  +          frontend_addSniffer(view, &quot;_sourceFrameSetupFinished&quot;, function(event)
&gt; Please extract common code that waits for frame loading before executing callback from here and frontend_checkExecutionLineWhenSourceFrameIsLoaded in debugger-pause-in-eval-script.html test.

We can start using new function frontend_ensureSourceFrameLoaded in debugger-pause-in-eval-script.html since the test is fixed.

&gt; 
&gt; LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:56
&gt;  +  function frontend_scriptsAreParsed(scripts)
&gt; you may want to move these methods to debugger-test.js

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251041</commentid>
    <comment_count>20</comment_count>
      <attachid>61055</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-14 01:59:19 -0700</bug_when>
    <thetext>Comment on attachment 61055
Proposed patch.

LayoutTests/inspector/debugger-breakpoints-not-activated-on-reload.html:41
 +          if (!WebInspector.flag) {
I&apos;d rather use more specific variable name or something like frontend_testBreakpointsNotActivatedOnReload.flag to avoid possible conflicts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251087</commentid>
    <comment_count>21</comment_count>
      <attachid>61055</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-14 03:18:28 -0700</bug_when>
    <thetext>Comment on attachment 61055
Proposed patch.

Clearing flags on attachment: 61055

Committed r63305: &lt;http://trac.webkit.org/changeset/63305&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251088</commentid>
    <comment_count>22</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-14 03:18:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251103</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-14 03:44:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/63305 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251150</commentid>
    <comment_count>24</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-07-14 06:21:28 -0700</bug_when>
    <thetext>Rolled out in r63314 due to GTK test failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256469</commentid>
    <comment_count>25</comment_count>
      <attachid>62664</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-07-27 02:41:47 -0700</bug_when>
    <thetext>Created attachment 62664
Rebase and add test to gtk skip list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256637</commentid>
    <comment_count>26</comment_count>
      <attachid>62664</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-27 09:12:44 -0700</bug_when>
    <thetext>Comment on attachment 62664
Rebase and add test to gtk skip list.

Clearing flags on attachment: 62664

Committed r64133: &lt;http://trac.webkit.org/changeset/64133&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256638</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-27 09:12:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60237</attachid>
            <date>2010-07-01 06:38:47 -0700</date>
            <delta_ts>2010-07-05 04:29:03 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>no_toggle.diff</filename>
            <type>text/plain</type>
            <size>8396</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NWNlZGMyNS4uMzgzOTc3ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0wNy0wMSAgUGF2ZWwgUG9kaXZp
bG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBkbyBub3QgYWN0aXZhdGUgYWxs
IGJyZWFrcG9pbnRzIG9uIHBhZ2UgcmVsb2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MTQ2MQorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFZpZXcucHJvdG90
eXBlLl9hZGRCcmVha3BvaW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2JyZWFrcG9pbnRBZGRlZCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS50b2dnbGVCcmVh
a3BvaW50c0NsaWNrZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmll
dy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZS5fYWRkQnJl
YWtwb2ludCk6CisKIDIwMTAtMDctMDEgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHBhcm9n
YS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1bHplLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qcwppbmRleCBjNTc2NTEwLi41OTdmZDI4IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qcworKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qcwpAQCAtOTcsNiArOTcsOCBA
QCBXZWJJbnNwZWN0b3IuU2NyaXB0Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgX2FkZEJyZWFrcG9p
bnQ6IGZ1bmN0aW9uKGxpbmUpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuYnJlYWtwb2lu
dE1hbmFnZXIuc2V0QnJlYWtwb2ludCh0aGlzLnNjcmlwdC5zb3VyY2VJRCwgdGhpcy5zY3JpcHQu
c291cmNlVVJMLCBsaW5lLCB0cnVlLCAiIik7CisgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLnBh
bmVscy5zY3JpcHRzLmJyZWFrcG9pbnRzQWN0aXZhdGVkKQorICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLnBhbmVscy5zY3JpcHRzLnRvZ2dsZUJyZWFrcG9pbnRzQ2xpY2tlZCgpOwogICAgIH0sCiAK
ICAgICBfZWRpdExpbmVDb21wbGV0ZTogZnVuY3Rpb24obmV3Qm9keSkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGYyMmVhYTEuLmQ0NjcxZTQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysr
IGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtMTA2LDEw
ICsxMDYsMTAgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0
aGlzLnNpZGViYXJCdXR0b25zRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnN0ZXBPdXRCdXR0b24p
OwogCiAgICAgdGhpcy50b2dnbGVCcmVha3BvaW50c0J1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3Iu
U3RhdHVzQmFyQnV0dG9uKCIiLCAidG9nZ2xlLWJyZWFrcG9pbnRzIik7Ci0gICAgdGhpcy50b2dn
bGVCcmVha3BvaW50c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3RvZ2ds
ZUJyZWFrcG9pbnRzQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgdGhpcy50b2dnbGVC
cmVha3BvaW50c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMudG9nZ2xlQnJl
YWtwb2ludHNDbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICB0aGlzLnNpZGViYXJCdXR0
b25zRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uLmVsZW1l
bnQpOwogICAgIC8vIEJyZWFrcG9pbnRzIHNob3VsZCBiZSBhY3RpdmF0ZWQgYnkgZGVmYXVsdCwg
c28gZW11bGF0ZSBhIGNsaWNrIHRvIHRvZ2dsZSBvbi4KLSAgICB0aGlzLl90b2dnbGVCcmVha3Bv
aW50c0NsaWNrZWQoKTsKKyAgICB0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQ2xpY2tlZCgpOwogCiAg
ICAgdGhpcy5kZWJ1Z2dlclN0YXR1c0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKICAgICB0aGlzLmRlYnVnZ2VyU3RhdHVzRWxlbWVudC5pZCA9ICJzY3JpcHRzLWRlYnVn
Z2VyLXN0YXR1cyI7CkBAIC0xNjQsNyArMTY0LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5l
bCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uID0gbmV3IFdl
Ykluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oIiIsICJzY3JpcHRzLXBhdXNlLW9uLWV4Y2VwdGlv
bnMtc3RhdHVzLWJhci1pdGVtIiwgMyk7CiAgICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRv
bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3RvZ2dsZVBhdXNlT25FeGNlcHRpb25z
LmJpbmQodGhpcyksIGZhbHNlKTsKICAgICB0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uLnN0
YXRlID0gV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRlLkRv
bnRQYXVzZU9uRXhjZXB0aW9uczsKLSAgICB0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uLnRp
dGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEb24ndCBwYXVzZSBvbiBleGNlcHRpb25zLlxu
Q2xpY2sgdG8gUGF1c2Ugb24gYWxsIGV4Y2VwdGlvbnMuIik7IAorICAgIHRoaXMuX3BhdXNlT25F
eGNlcHRpb25CdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvbid0IHBhdXNl
IG9uIGV4Y2VwdGlvbnMuXG5DbGljayB0byBQYXVzZSBvbiBhbGwgZXhjZXB0aW9ucy4iKTsKIAog
ICAgIHRoaXMuX3JlZ2lzdGVyU2hvcnRjdXRzKCk7CiAKQEAgLTIyMSw3ICsyMjEsNyBAQCBXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGRlbGV0ZSB0
aGlzLl9hdHRhY2hEZWJ1Z2dlcldoZW5TaG93bjsKICAgICAgICAgfQogICAgIH0sCi0gICAgCisK
ICAgICBoaWRlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuUGFuZWwu
cHJvdG90eXBlLmhpZGUuY2FsbCh0aGlzKTsKQEAgLTI4MCw3ICsyODAsNyBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAgICAgICAgICAgLy8gUmVtb3ZlIHNj
cmlwdCBmcm9tIHRoZSBmaWxlcyBsaXN0LgogICAgICAgICAgICAgc2NyaXB0LmZpbGVzU2VsZWN0
T3B0aW9uLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoc2NyaXB0LmZpbGVzU2VsZWN0T3B0aW9u
KTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICAvLyBNb3ZlIGJyZWFrcG9pbnRzIHRvIHRo
ZSByZXNvdXJjZSdzIGZyYW1lLgogICAgICAgICAgICAgaWYgKHNjcmlwdC5fc2NyaXB0Vmlldykg
ewogICAgICAgICAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9IHNjcmlwdC5fc2NyaXB0Vmlldy5z
b3VyY2VGcmFtZTsKQEAgLTI5OCw5ICsyOTgsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBicmVha3BvaW50ID0gZXZlbnQuZGF0
YTsKIAotICAgICAgICBpZiAoIXRoaXMuYnJlYWtwb2ludHNBY3RpdmF0ZWQpCi0gICAgICAgICAg
ICB0aGlzLl90b2dnbGVCcmVha3BvaW50c0NsaWNrZWQoKTsKLQogICAgICAgICB2YXIgc291cmNl
RnJhbWU7CiAgICAgICAgIGlmIChicmVha3BvaW50LnVybCkgewogICAgICAgICAgICAgdmFyIHJl
c291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVVJMTWFwW2JyZWFrcG9pbnQudXJsXTsKQEAg
LTU0Miw3ICs1MzksNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAgICAgdGhpcy5fc2hvd1NjcmlwdE9yUmVzb3VyY2Uoc2NyaXB0T3JSZXNvdXJjZSwge2xp
bmU6IGxpbmUsIHNob3VsZEhpZ2hsaWdodExpbmU6IHRydWV9KTsKICAgICB9LAogCi0gICAgX3Nj
cmlwdE9yUmVzb3VyY2VGb3JVUkxBbmRMaW5lOiBmdW5jdGlvbih1cmwsIGxpbmUpIAorICAgIF9z
Y3JpcHRPclJlc291cmNlRm9yVVJMQW5kTGluZTogZnVuY3Rpb24odXJsLCBsaW5lKQogICAgIHsK
ICAgICAgICAgdmFyIHNjcmlwdFdpdGhNYXRjaGluZ1VybCA9IG51bGw7CiAgICAgICAgIGZvciAo
dmFyIHNvdXJjZUlEIGluIHRoaXMuX3NvdXJjZUlETWFwKSB7CkBAIC02MTQsNyArNjExLDcgQEAg
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgX3Nob3dTY3JpcHRP
clJlc291cmNlOiBmdW5jdGlvbihzY3JpcHRPclJlc291cmNlLCBvcHRpb25zKQogICAgIHsKICAg
ICAgICAgLy8gb3B0aW9ucyA9IHtsaW5lOiwgc2hvdWxkSGlnaGxpZ2h0TGluZTosIGZyb21CYWNr
Rm9yd2FyZEFjdGlvbjosIGluaXRpYWxMb2FkOn0KLSAgICAgICAgaWYgKCFvcHRpb25zKSAKKyAg
ICAgICAgaWYgKCFvcHRpb25zKQogICAgICAgICAgICAgb3B0aW9ucyA9IHt9OwogCiAgICAgICAg
IGlmICghc2NyaXB0T3JSZXNvdXJjZSkKQEAgLTY5Nyw3ICs2OTQsNyBAQCBXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICB0aGlzLl9yZXNvdXJjZUZvclVSTEluRmlsZXNTZWxlY3Rbc2NyaXB0LnJlc291cmNl
LnVybF0gPSBzY3JpcHQucmVzb3VyY2U7CiAgICAgICAgIH0KLSAKKwogICAgICAgICB2YXIgZGlz
cGxheU5hbWUgPSBzY3JpcHQuc291cmNlVVJMID8gV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9y
VVJMKHNjcmlwdC5zb3VyY2VVUkwpIDogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIocHJvZ3JhbSki
KTsKIAogICAgICAgICB2YXIgc2VsZWN0ID0gdGhpcy5maWxlc1NlbGVjdEVsZW1lbnQ7CkBAIC04
MTIsNyArODA5LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHRoaXMucmVzaXplKCk7CiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAg
ICAgfSwKLSAgICAKKwogICAgIHVwZGF0ZVBhdXNlT25FeGNlcHRpb25zU3RhdGU6IGZ1bmN0aW9u
KHBhdXNlT25FeGNlcHRpb25zU3RhdGUpCiAgICAgewogICAgICAgICBpZiAocGF1c2VPbkV4Y2Vw
dGlvbnNTdGF0ZSA9PSBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRpb25z
U3RhdGUuRG9udFBhdXNlT25FeGNlcHRpb25zKQpAQCAtOTcxLDcgKzk2OCw3IEBAIFdlYkluc3Bl
Y3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBJbnNwZWN0b3JCYWNrZW5k
LnN0ZXBPdXRPZkZ1bmN0aW9uSW5EZWJ1Z2dlcigpOwogICAgIH0sCiAKLSAgICBfdG9nZ2xlQnJl
YWtwb2ludHNDbGlja2VkOiBmdW5jdGlvbigpCisgICAgdG9nZ2xlQnJlYWtwb2ludHNDbGlja2Vk
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9u
LnRvZ2dsZWQgPSAhdGhpcy50b2dnbGVCcmVha3BvaW50c0J1dHRvbi50b2dnbGVkOwogICAgICAg
ICBpZiAodGhpcy50b2dnbGVCcmVha3BvaW50c0J1dHRvbi50b2dnbGVkKSB7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcyBiL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzCmluZGV4IGFhYzNhNzUuLmM3NWM1NDMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzCkBAIC0xMjgsNiArMTI4
LDggQEAgV2ViSW5zcGVjdG9yLlNvdXJjZVZpZXcucHJvdG90eXBlID0gewogICAgIHsKICAgICAg
ICAgdmFyIHNvdXJjZUlEID0gdGhpcy5fc291cmNlSURGb3JMaW5lKGxpbmUpOwogICAgICAgICBX
ZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludChzb3VyY2VJRCwgdGhp
cy5yZXNvdXJjZS51cmwsIGxpbmUsIHRydWUsICIiKTsKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0
b3IucGFuZWxzLnNjcmlwdHMuYnJlYWtwb2ludHNBY3RpdmF0ZWQpCisgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHMudG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkKCk7CiAgICAg
fSwKIAogICAgIF9yZW1vdmVCcmVha3BvaW50OiBmdW5jdGlvbihicmVha3BvaW50KQpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggZDMzYzE2OS4uZTI1ZDcxNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTAtMDctMDEgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogaWYgYnJlYWtwb2ludHMgd2VyZSBkZWFjdGl2YXRlZCwgYWRkIG5ldyBicmVha3BvaW50
cyBhcyBkaXNhYmxlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQxNDYxCisKKyAgICAgICAgKiBzcmMvanMvRGVidWdnZXJTY3JpcHQuanM6CisgICAg
ICAgICgpOgorCiAyMDEwLTA3LTAxICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vc3JjL2pzL0RlYnVnZ2VyU2NyaXB0LmpzIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9qcy9EZWJ1Z2dlclNjcmlwdC5qcwppbmRleCA0YTU4MWU2Li5iMzhmMWNhIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RlYnVnZ2VyU2NyaXB0LmpzCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvanMvRGVidWdnZXJTY3JpcHQuanMKQEAgLTMyLDYgKzMyLDcgQEAKIAogdmFy
IERlYnVnZ2VyU2NyaXB0ID0ge307CiBEZWJ1Z2dlclNjcmlwdC5fYnJlYWtwb2ludHMgPSB7fTsK
K0RlYnVnZ2VyU2NyaXB0Ll9icmVha3BvaW50c0FjdGl2YXRlZCA9IHRydWU7CiAKIERlYnVnZ2Vy
U2NyaXB0LlBhdXNlT25FeGNlcHRpb25zU3RhdGUgPSB7CiAgICAgRG9udFBhdXNlT25FeGNlcHRp
b25zIDogMCwKQEAgLTk0LDcgKzk1LDcgQEAgRGVidWdnZXJTY3JpcHQuc2V0QnJlYWtwb2ludCA9
IGZ1bmN0aW9uKGV4ZWNTdGF0ZSwgYXJncykKIHsKICAgICBhcmdzLmxpbmVOdW1iZXIgPSBEZWJ1
Z2dlclNjcmlwdC5fd2Via2l0VG9WOExpbmVOdW1iZXIoYXJncy5saW5lTnVtYmVyKTsKICAgICB2
YXIgYnJlYWtJZCA9IERlYnVnLnNldFNjcmlwdEJyZWFrUG9pbnRCeUlkKGFyZ3Muc2NyaXB0SWQs
IGFyZ3MubGluZU51bWJlciwgMCAvKiBjb2x1bW4gKi8sIGFyZ3MuY29uZGl0aW9uKTsKLSAgICBp
ZiAoIWFyZ3MuZW5hYmxlZCkKKyAgICBpZiAoIWFyZ3MuZW5hYmxlZCB8fCAhRGVidWdnZXJTY3Jp
cHQuX2JyZWFrcG9pbnRzQWN0aXZhdGVkKQogICAgICAgICBEZWJ1Zy5kaXNhYmxlU2NyaXB0QnJl
YWtQb2ludChicmVha0lkKTsKIAogICAgIHZhciBhY3R1YWxMaW5lTnVtYmVyID0gYXJncy5saW5l
TnVtYmVyOyAvLyBUT0RPOiByZXBsYWNlIHdpdGggcmVhbCBzdHVmZiBhZnRlciB2OCByb2xsLgpA
QCAtMjAzLDYgKzIwNCw3IEBAIERlYnVnZ2VyU2NyaXB0LnNldEJyZWFrcG9pbnRzQWN0aXZhdGVk
ID0gZnVuY3Rpb24oZXhlY1N0YXRlLCBhcmdzKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBE
ZWJ1Zy5kaXNhYmxlU2NyaXB0QnJlYWtQb2ludChicmVha0lkKTsKICAgICB9CisgICAgRGVidWdn
ZXJTY3JpcHQuX2JyZWFrcG9pbnRzQWN0aXZhdGVkID0gYXJncy5lbmFibGVkOwogfQogCiBEZWJ1
Z2dlclNjcmlwdC5fZnJhbWVNaXJyb3JUb0pTQ2FsbEZyYW1lID0gZnVuY3Rpb24oZnJhbWVNaXJy
b3IsIGNhbGxlckZyYW1lKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60511</attachid>
            <date>2010-07-05 04:27:57 -0700</date>
            <delta_ts>2010-07-05 11:22:24 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>no_toggle.diff</filename>
            <type>text/plain</type>
            <size>14952</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlODQ0MDk5Li5mZjBlY2VlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDct
MDUgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZG8g
bm90IGFjdGl2YXRlIGFsbCBicmVha3BvaW50cyBvbiBwYWdlIHJlbG9hZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE0NjEKKworICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50
cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC5odG1sOiBBZGRlZC4KKwogMjAxMC0wNy0wNCAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LiBNYXJrIGZhc3QvanMvZnVuY3Rpb24tYXBwbHktbWFueS1hcmdzLmh0bWwgYXMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1ub3QtYWN0aXZh
dGVkLW9uLXJlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRlZC1vbi1yZWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2YzAzYmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRl
ZC1vbi1yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGVzdHMgdGhhdCBicmVh
a3BvaW50cyBhcmUgbm90IGFjdGl2YXRlZCBvbiBwYWdlIHJlbG9hZC4KKworRGVidWdnZXIgd2Fz
IGVuYWJsZWQuCitTY3JpcHRzIHdlcmUgcGFyc2VkLgorQnJlYWtwb2ludHMgZGVhY3RpdmF0ZWQu
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyLWJyZWFrcG9pbnRzLW5vdC1hY3RpdmF0ZWQtb24tcmVsb2FkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRl
ZC1vbi1yZWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDBl
MzAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLWJy
ZWFrcG9pbnRzLW5vdC1hY3RpdmF0ZWQtb24tcmVsb2FkLmh0bWwKQEAgLTAsMCArMSwxNzAgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gdGVzdEZ1bmN0
aW9uKCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworZnVuY3Rpb24gZG9pdCgpCit7CisgICAgZnVu
Y3Rpb24gY2FsbGJhY2socmVzdWx0KQorICAgIHsKKyAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5j
ZW9mIEFycmF5KSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlc3VsdC5sZW5n
dGg7IGkrKykKKyAgICAgICAgICAgICAgICBvdXRwdXQocmVzdWx0W2ldKTsKKyAgICAgICAgfSBl
bHNlCisgICAgICAgICAgICBvdXRwdXQocmVzdWx0KTsKKyAgICAgICAgbm90aWZ5RG9uZSgpOwor
ICAgIH0KKyAgICBldmFsdWF0ZUluV2ViSW5zcGVjdG9yKCJmcm9udGVuZF90ZXN0QnJlYWtwb2lu
dHNOb3RBY3RpdmF0ZWRPblJlbG9hZCIsIGNhbGxiYWNrKTsKK30KKworZnVuY3Rpb24gZnJvbnRl
bmRfdGVzdEJyZWFrcG9pbnRzTm90QWN0aXZhdGVkT25SZWxvYWQodGVzdENvbnRyb2xsZXIpCit7
CisgICAgdmFyIHRlc3ROYW1lID0gImRlYnVnZ2VyLWJyZWFrcG9pbnRzLW5vdC1hY3RpdmF0ZWQt
b24tcmVsb2FkLmh0bWwiOworCisgICAgdGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
CisgICAgV2ViSW5zcGVjdG9yLnNob3dTY3JpcHRzUGFuZWwoKTsKKyAgICBmcm9udGVuZF9lbnN1
cmVEZWJ1Z2dlckVuYWJsZWQoZGVidWdnZXJXYXNFbmFibGVkQ2FsbGJhY2spOworCisgICAgZnVu
Y3Rpb24gZGVidWdnZXJXYXNFbmFibGVkQ2FsbGJhY2soKQorICAgIHsKKyAgICAgICAgdGVzdENv
bnRyb2xsZXIucmVzdWx0cy5wdXNoKCJEZWJ1Z2dlciB3YXMgZW5hYmxlZC4iKTsKKyAgICAgICAg
ZnJvbnRlbmRfd2FpdFVudGlsU2NyaXB0c0FyZVBhcnNlZChbdGVzdE5hbWVdLCB3YWl0VW50aWxT
Y3JpcHRzQXJlUGFyc2VkQ2FsbGJhY2spOworICAgIH0KKworICAgIGZ1bmN0aW9uIHdhaXRVbnRp
bFNjcmlwdHNBcmVQYXJzZWRDYWxsYmFjaygpCisgICAgeworICAgICAgICB0ZXN0Q29udHJvbGxl
ci5yZXN1bHRzLnB1c2goIlNjcmlwdHMgd2VyZSBwYXJzZWQuIik7CisgICAgICAgIGZyb250ZW5k
X3Nob3dNYWluUGFnZVNjcmlwdFNvdXJjZSh0ZXN0TmFtZSwgc2hvd01haW5QYWdlU2NyaXB0U291
cmNlQ2FsbGJhY2spOworICAgIH0KKworICAgIGZ1bmN0aW9uIHNob3dNYWluUGFnZVNjcmlwdFNv
dXJjZUNhbGxiYWNrKHZpZXcsIHVybCkKKyAgICB7CisgICAgICAgIGlmICghV2ViSW5zcGVjdG9y
LmZsYWcpIHsKKyAgICAgICAgICAgIHZpZXcuX2FkZEJyZWFrcG9pbnQoOCk7CisgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24uZWxl
bWVudC5jbGljaygpOworICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWxvYWRQYWdlKCk7
CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZmxhZyA9IHRydWU7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5icmVha3BvaW50
c0FjdGl2YXRlZCkKKyAgICAgICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2go
IkJyZWFrcG9pbnRzIGRlYWN0aXZhdGVkLiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaCgiRXJyb3I6IGJyZWFrcG9pbnRzIGFj
dGl2YXRlZC4iKTsKKyAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgfQorICAgIH0KK30KKworZnVuY3Rpb24gZnJvbnRlbmRfZW5zdXJlRGVidWdnZXJFbmFi
bGVkKGNhbGxiYWNrKQoreworICAgIGlmIChXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuX2Rl
YnVnZ2VyRW5hYmxlZCkgeworICAgICAgICBjYWxsYmFjaygpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgZnJvbnRlbmRfYWRkU25pZmZlcihXZWJJbnNwZWN0b3IsICJkZWJ1Z2dlcldh
c0VuYWJsZWQiLCBjYWxsYmFjayk7CisgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLl90
b2dnbGVEZWJ1Z2dpbmcoZmFsc2UpOworfQorCisvKioKKyAqIENoZWNrcyB0aGF0IGFsbCBleHBl
Y3RlZCBzY3JpcHRzIGFyZSBwcmVzZW50IGluIHRoZSBzY3JpcHRzIGxpc3QKKyAqIGluIHRoZSBT
Y3JpcHRzIHBhbmVsLgorICogQHBhcmFtIHtBcnJheS48c3RyaW5nPn0gZXhwZWN0ZWQgUmVndWxh
ciBleHByZXNzaW9ucyBkZXNjcmliaW5nCisgKiAgICAgZXhwZWN0ZWQgc2NyaXB0IG5hbWVzLgor
ICogQHJldHVybiB7Ym9vbGVhbn0gV2hldGhlciBhbGwgdGhlIHNjcmlwdHMgYXJlIGluICJzY3Jp
cHRzLWZpbGVzIiBzZWxlY3QKKyAqICAgICBib3gKKyAqLworZnVuY3Rpb24gZnJvbnRlbmRfc2Ny
aXB0c0FyZVBhcnNlZChzY3JpcHRzKQoreworICAgIHZhciBzY3JpcHRTZWxlY3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic2NyaXB0cy1maWxlcyIpOworICAgIHZhciBvcHRpb25zID0gc2Ny
aXB0U2VsZWN0Lm9wdGlvbnM7CisKKyAgICAvLyBDaGVjayB0aGF0IGFsbCB0aGUgZXhwZWN0ZWQg
c2NyaXB0cyBhcmUgcHJlc2VudC4KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNjcmlwdHMubGVu
Z3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGZvdW5kID0gZmFsc2U7CisgICAgICAgIGZvciAodmFy
IGogPSAwIDsgaiA8IG9wdGlvbnMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgIGlmIChvcHRp
b25zW2ldLnRleHQuc2VhcmNoKHNjcmlwdHNbal0pICE9PSAtMSkgeworICAgICAgICAgICAgICAg
IGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICBpZiAoIWZvdW5kKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK307CisKKworLyoqCisgKiBXYWl0cyB1bnRpbCBhbGwg
dGhlIHNjcmlwdHMgYXJlIHBhcnNlZCBhbmQgaW52b2tlcyB0aGUgY2FsbGJhY2suCisgKi8KK2Z1
bmN0aW9uIGZyb250ZW5kX3dhaXRVbnRpbFNjcmlwdHNBcmVQYXJzZWQoc2NyaXB0cywgY2FsbGJh
Y2spCit7CisgICAgZnVuY3Rpb24gd2FpdEZvckFsbFNjcmlwdHMoKQorICAgIHsKKyAgICAgICAg
aWYgKGZyb250ZW5kX3NjcmlwdHNBcmVQYXJzZWQoc2NyaXB0cykpCisgICAgICAgICAgICBjYWxs
YmFjaygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmcm9udGVuZF9hZGRTbmlmZmVyKFdl
Ykluc3BlY3RvciwgInBhcnNlZFNjcmlwdFNvdXJjZSIsIHdhaXRGb3JBbGxTY3JpcHRzKTsKKyAg
ICB9CisgICAgd2FpdEZvckFsbFNjcmlwdHMoKTsKK307CisKKworLyoqCisgKiBFbnN1cmVzIHRo
YXQgbWFpbiBIVE1MIHJlc291cmNlIGlzIHNlbGVjdGVkIGluIFNjcmlwdHMgcGFuZWwgYW5kIHRo
YXQgaXRzCisgKiBzb3VyY2UgZnJhbWUgaXMgc2V0dXAuIEludm9rZXMgdGhlIGNhbGxiYWNrIHdo
ZW4gdGhlIGNvbmRpdGlvbiBpcyBzYXRpc2ZpZWQuCisgKiBAcGFyYW0ge0hUTUxPcHRpb25zQ29s
bGVjdGlvbn0gb3B0aW9ucworICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuU291cmNl
VmlldyxzdHJpbmcpfSBjYWxsYmFjaworICovCitmdW5jdGlvbiBmcm9udGVuZF9zaG93TWFpblBh
Z2VTY3JpcHRTb3VyY2Uoc2NyaXB0TmFtZSwgY2FsbGJhY2spCit7CisgICAgdmFyIHNjcmlwdFNl
bGVjdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JpcHRzLWZpbGVzIik7CisgICAgdmFy
IG9wdGlvbnMgPSBzY3JpcHRTZWxlY3Qub3B0aW9uczsKKworICAgIC8vIFNlbGVjdCBwYWdlJ3Mg
c2NyaXB0IGlmIGl0J3Mgbm90IGN1cnJlbnQgb3B0aW9uLgorICAgIHZhciBzY3JpcHRSZXNvdXJj
ZTsKKyAgICBpZiAob3B0aW9uc1tzY3JpcHRTZWxlY3Quc2VsZWN0ZWRJbmRleF0udGV4dCA9PT0g
c2NyaXB0TmFtZSkKKyAgICAgICAgc2NyaXB0UmVzb3VyY2UgPSBvcHRpb25zW3NjcmlwdFNlbGVj
dC5zZWxlY3RlZEluZGV4XS5yZXByZXNlbnRlZE9iamVjdDsKKyAgICBlbHNlIHsKKyAgICAgICAg
dmFyIHBhZ2VTY3JpcHRJbmRleCA9IC0xOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9w
dGlvbnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChvcHRpb25zW2ldLnRleHQgPT09
IHNjcmlwdE5hbWUpIHsKKyAgICAgICAgICAgICAgICBwYWdlU2NyaXB0SW5kZXggPSBpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNj
cmlwdFJlc291cmNlID0gb3B0aW9uc1twYWdlU2NyaXB0SW5kZXhdLnJlcHJlc2VudGVkT2JqZWN0
OworCisgICAgICAgIC8vIEN1cnJlbnQgcGFuZWwgaXMgIlNjcmlwdHMiLgorICAgICAgICBXZWJJ
bnNwZWN0b3IuY3VycmVudFBhbmVsLl9zaG93U2NyaXB0T3JSZXNvdXJjZShzY3JpcHRSZXNvdXJj
ZSk7CisgICAgfQorCisgICAgdmFyIHNjcmlwdHNQYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5lbHMu
c2NyaXB0czsKKyAgICB2YXIgdmlldyA9IHNjcmlwdHNQYW5lbC52aXNpYmxlVmlldzsKKyAgICBp
ZiAoIXZpZXcuc291cmNlRnJhbWUuX2xvYWRlZCkgeworICAgICAgICBmcm9udGVuZF9hZGRTbmlm
ZmVyKHZpZXcsICJfc291cmNlRnJhbWVTZXR1cEZpbmlzaGVkIiwgZnVuY3Rpb24oZXZlbnQpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKHZpZXcsIHNjcmlwdFJlc291cmNlLnVybCk7
CisgICAgICAgIH0pOworICAgIH0gZWxzZQorICAgICAgICBjYWxsYmFjayh2aWV3LCBzY3JpcHRS
ZXNvdXJjZS51cmwpOworfTsKKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0i
b25sb2FkKCkiPgorPHA+CitUZXN0cyB0aGF0IGJyZWFrcG9pbnRzIGFyZSBub3QgYWN0aXZhdGVk
IG9uIHBhZ2UgcmVsb2FkLgorPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyZDYwZjA0Li5m
YTUyMzdkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA3LTAxICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rp
dmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRvIG5vdCBhY3RpdmF0ZSBhbGwgYnJlYWtwb2lu
dHMgb24gcGFnZSByZWxvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxNDYxCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyLWJyZWFr
cG9pbnRzLW5vdC1hY3RpdmF0ZWQtb24tcmVsb2FkLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRW
aWV3LnByb3RvdHlwZS5fYWRkQnJlYWtwb2ludCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9icmVha3Bv
aW50QWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUu
dG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlVmlldy5wcm90b3R5
cGUuX2FkZEJyZWFrcG9pbnQpOgorCiAyMDEwLTA3LTA0ICBBbGljZSBMaXUgIDxhbGljZS5saXVA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qcyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzCmluZGV4IGM1NzY1MTAuLjU5N2ZkMjgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzCkBAIC05Nyw2ICs5
Nyw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRWaWV3LnByb3RvdHlwZSA9IHsKICAgICBfYWRkQnJl
YWtwb2ludDogZnVuY3Rpb24obGluZSkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5icmVh
a3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50KHRoaXMuc2NyaXB0LnNvdXJjZUlELCB0aGlzLnNj
cmlwdC5zb3VyY2VVUkwsIGxpbmUsIHRydWUsICIiKTsKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0
b3IucGFuZWxzLnNjcmlwdHMuYnJlYWtwb2ludHNBY3RpdmF0ZWQpCisgICAgICAgICAgICBXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHMudG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkKCk7CiAgICAg
fSwKIAogICAgIF9lZGl0TGluZUNvbXBsZXRlOiBmdW5jdGlvbihuZXdCb2R5KQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggZjIyZWFhMS4uZDQ2NzFl
NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5q
cworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0x
MDYsMTAgKzEwNiwxMCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVuY3Rpb24oKQog
ICAgIHRoaXMuc2lkZWJhckJ1dHRvbnNFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc3RlcE91dEJ1
dHRvbik7CiAKICAgICB0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uID0gbmV3IFdlYkluc3Bl
Y3Rvci5TdGF0dXNCYXJCdXR0b24oIiIsICJ0b2dnbGUtYnJlYWtwb2ludHMiKTsKLSAgICB0aGlz
LnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5f
dG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLnRv
Z2dsZUJyZWFrcG9pbnRzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy50b2dn
bGVCcmVha3BvaW50c0NsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMuc2lkZWJh
ckJ1dHRvbnNFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24u
ZWxlbWVudCk7CiAgICAgLy8gQnJlYWtwb2ludHMgc2hvdWxkIGJlIGFjdGl2YXRlZCBieSBkZWZh
dWx0LCBzbyBlbXVsYXRlIGEgY2xpY2sgdG8gdG9nZ2xlIG9uLgotICAgIHRoaXMuX3RvZ2dsZUJy
ZWFrcG9pbnRzQ2xpY2tlZCgpOworICAgIHRoaXMudG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkKCk7
CiAKICAgICB0aGlzLmRlYnVnZ2VyU3RhdHVzRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwogICAgIHRoaXMuZGVidWdnZXJTdGF0dXNFbGVtZW50LmlkID0gInNjcmlwdHMt
ZGVidWdnZXItc3RhdHVzIjsKQEAgLTE2NCw3ICsxNjQsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3BhdXNlT25FeGNlcHRpb25CdXR0b24gPSBu
ZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbigiIiwgInNjcmlwdHMtcGF1c2Utb24tZXhj
ZXB0aW9ucy1zdGF0dXMtYmFyLWl0ZW0iLCAzKTsKICAgICB0aGlzLl9wYXVzZU9uRXhjZXB0aW9u
QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlUGF1c2VPbkV4Y2Vw
dGlvbnMuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMuX3BhdXNlT25FeGNlcHRpb25CdXR0
b24uc3RhdGUgPSBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRpb25zU3Rh
dGUuRG9udFBhdXNlT25FeGNlcHRpb25zOwotICAgIHRoaXMuX3BhdXNlT25FeGNlcHRpb25CdXR0
b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvbid0IHBhdXNlIG9uIGV4Y2VwdGlv
bnMuXG5DbGljayB0byBQYXVzZSBvbiBhbGwgZXhjZXB0aW9ucy4iKTsgCisgICAgdGhpcy5fcGF1
c2VPbkV4Y2VwdGlvbkJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRG9uJ3Qg
cGF1c2Ugb24gZXhjZXB0aW9ucy5cbkNsaWNrIHRvIFBhdXNlIG9uIGFsbCBleGNlcHRpb25zLiIp
OwogCiAgICAgdGhpcy5fcmVnaXN0ZXJTaG9ydGN1dHMoKTsKIApAQCAtMjIxLDcgKzIyMSw3IEBA
IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgZGVs
ZXRlIHRoaXMuX2F0dGFjaERlYnVnZ2VyV2hlblNob3duOwogICAgICAgICB9CiAgICAgfSwKLSAg
ICAKKwogICAgIGhpZGU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5Q
YW5lbC5wcm90b3R5cGUuaGlkZS5jYWxsKHRoaXMpOwpAQCAtMjgwLDcgKzI4MCw3IEBAIFdlYklu
c3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICAvLyBSZW1v
dmUgc2NyaXB0IGZyb20gdGhlIGZpbGVzIGxpc3QuCiAgICAgICAgICAgICBzY3JpcHQuZmlsZXNT
ZWxlY3RPcHRpb24ucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChzY3JpcHQuZmlsZXNTZWxlY3RP
cHRpb24pOwotICAgICAgICAgICAgCisKICAgICAgICAgICAgIC8vIE1vdmUgYnJlYWtwb2ludHMg
dG8gdGhlIHJlc291cmNlJ3MgZnJhbWUuCiAgICAgICAgICAgICBpZiAoc2NyaXB0Ll9zY3JpcHRW
aWV3KSB7CiAgICAgICAgICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gc2NyaXB0Ll9zY3JpcHRW
aWV3LnNvdXJjZUZyYW1lOwpAQCAtMjk4LDkgKzI5OCw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBldmVu
dC5kYXRhOwogCi0gICAgICAgIGlmICghdGhpcy5icmVha3BvaW50c0FjdGl2YXRlZCkKLSAgICAg
ICAgICAgIHRoaXMuX3RvZ2dsZUJyZWFrcG9pbnRzQ2xpY2tlZCgpOwotCiAgICAgICAgIHZhciBz
b3VyY2VGcmFtZTsKICAgICAgICAgaWYgKGJyZWFrcG9pbnQudXJsKSB7CiAgICAgICAgICAgICB2
YXIgcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IucmVzb3VyY2VVUkxNYXBbYnJlYWtwb2ludC51cmxd
OwpAQCAtNTQyLDcgKzUzOSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBl
ID0gewogICAgICAgICB0aGlzLl9zaG93U2NyaXB0T3JSZXNvdXJjZShzY3JpcHRPclJlc291cmNl
LCB7bGluZTogbGluZSwgc2hvdWxkSGlnaGxpZ2h0TGluZTogdHJ1ZX0pOwogICAgIH0sCiAKLSAg
ICBfc2NyaXB0T3JSZXNvdXJjZUZvclVSTEFuZExpbmU6IGZ1bmN0aW9uKHVybCwgbGluZSkgCisg
ICAgX3NjcmlwdE9yUmVzb3VyY2VGb3JVUkxBbmRMaW5lOiBmdW5jdGlvbih1cmwsIGxpbmUpCiAg
ICAgewogICAgICAgICB2YXIgc2NyaXB0V2l0aE1hdGNoaW5nVXJsID0gbnVsbDsKICAgICAgICAg
Zm9yICh2YXIgc291cmNlSUQgaW4gdGhpcy5fc291cmNlSURNYXApIHsKQEAgLTYxNCw3ICs2MTEs
NyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfc2hvd1Nj
cmlwdE9yUmVzb3VyY2U6IGZ1bmN0aW9uKHNjcmlwdE9yUmVzb3VyY2UsIG9wdGlvbnMpCiAgICAg
ewogICAgICAgICAvLyBvcHRpb25zID0ge2xpbmU6LCBzaG91bGRIaWdobGlnaHRMaW5lOiwgZnJv
bUJhY2tGb3J3YXJkQWN0aW9uOiwgaW5pdGlhbExvYWQ6fQotICAgICAgICBpZiAoIW9wdGlvbnMp
IAorICAgICAgICBpZiAoIW9wdGlvbnMpCiAgICAgICAgICAgICBvcHRpb25zID0ge307CiAKICAg
ICAgICAgaWYgKCFzY3JpcHRPclJlc291cmNlKQpAQCAtNjk3LDcgKzY5NCw3IEBAIFdlYkluc3Bl
Y3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlRm9yVVJMSW5GaWxlc1NlbGVjdFtzY3JpcHQucmVz
b3VyY2UudXJsXSA9IHNjcmlwdC5yZXNvdXJjZTsKICAgICAgICAgfQotIAorCiAgICAgICAgIHZh
ciBkaXNwbGF5TmFtZSA9IHNjcmlwdC5zb3VyY2VVUkwgPyBXZWJJbnNwZWN0b3IuZGlzcGxheU5h
bWVGb3JVUkwoc2NyaXB0LnNvdXJjZVVSTCkgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9n
cmFtKSIpOwogCiAgICAgICAgIHZhciBzZWxlY3QgPSB0aGlzLmZpbGVzU2VsZWN0RWxlbWVudDsK
QEAgLTgxMiw3ICs4MDksNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5yZXNpemUoKTsKICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQo
KTsKICAgICB9LAotICAgIAorCiAgICAgdXBkYXRlUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZTogZnVu
Y3Rpb24ocGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSkKICAgICB7CiAgICAgICAgIGlmIChwYXVzZU9u
RXhjZXB0aW9uc1N0YXRlID09IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2Vw
dGlvbnNTdGF0ZS5Eb250UGF1c2VPbkV4Y2VwdGlvbnMpCkBAIC05NzEsNyArOTY4LDcgQEAgV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIEluc3BlY3RvckJh
Y2tlbmQuc3RlcE91dE9mRnVuY3Rpb25JbkRlYnVnZ2VyKCk7CiAgICAgfSwKIAotICAgIF90b2dn
bGVCcmVha3BvaW50c0NsaWNrZWQ6IGZ1bmN0aW9uKCkKKyAgICB0b2dnbGVCcmVha3BvaW50c0Ns
aWNrZWQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMudG9nZ2xlQnJlYWtwb2ludHNC
dXR0b24udG9nZ2xlZCA9ICF0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uLnRvZ2dsZWQ7CiAg
ICAgICAgIGlmICh0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uLnRvZ2dsZWQpIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMKaW5kZXggYWFjM2E3NS4uYzc1YzU0
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMK
KysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMKQEAgLTEyOCw2
ICsxMjgsOCBAQCBXZWJJbnNwZWN0b3IuU291cmNlVmlldy5wcm90b3R5cGUgPSB7CiAgICAgewog
ICAgICAgICB2YXIgc291cmNlSUQgPSB0aGlzLl9zb3VyY2VJREZvckxpbmUobGluZSk7CiAgICAg
ICAgIFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50KHNvdXJjZUlE
LCB0aGlzLnJlc291cmNlLnVybCwgbGluZSwgdHJ1ZSwgIiIpOworICAgICAgICBpZiAoIVdlYklu
c3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5icmVha3BvaW50c0FjdGl2YXRlZCkKKyAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy50b2dnbGVCcmVha3BvaW50c0NsaWNrZWQoKTsK
ICAgICB9LAogCiAgICAgX3JlbW92ZUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKGJyZWFrcG9pbnQpCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwppbmRleCA5MTBkMmQyLi5hYmNjNWQ0IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMC0wNy0wMSAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBpZiBicmVha3BvaW50cyB3ZXJlIGRlYWN0aXZhdGVkLCBhZGQgbmV3IGJyZWFr
cG9pbnRzIGFzIGRpc2FibGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDE0NjEKKworICAgICAgICAqIHNyYy9qcy9EZWJ1Z2dlclNjcmlwdC5qczoK
KyAgICAgICAgKCk6CisKIDIwMTAtMDctMDMgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9qcy9EZWJ1Z2dlclNjcmlwdC5qcyBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvanMvRGVidWdnZXJTY3JpcHQuanMKaW5kZXggNGE1ODFlNi4uYjM4ZjFjYSAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZWJ1Z2dlclNjcmlwdC5qcworKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL2pzL0RlYnVnZ2VyU2NyaXB0LmpzCkBAIC0zMiw2ICszMiw3IEBACiAKIHZh
ciBEZWJ1Z2dlclNjcmlwdCA9IHt9OwogRGVidWdnZXJTY3JpcHQuX2JyZWFrcG9pbnRzID0ge307
CitEZWJ1Z2dlclNjcmlwdC5fYnJlYWtwb2ludHNBY3RpdmF0ZWQgPSB0cnVlOwogCiBEZWJ1Z2dl
clNjcmlwdC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRlID0gewogICAgIERvbnRQYXVzZU9uRXhjZXB0
aW9ucyA6IDAsCkBAIC05NCw3ICs5NSw3IEBAIERlYnVnZ2VyU2NyaXB0LnNldEJyZWFrcG9pbnQg
PSBmdW5jdGlvbihleGVjU3RhdGUsIGFyZ3MpCiB7CiAgICAgYXJncy5saW5lTnVtYmVyID0gRGVi
dWdnZXJTY3JpcHQuX3dlYmtpdFRvVjhMaW5lTnVtYmVyKGFyZ3MubGluZU51bWJlcik7CiAgICAg
dmFyIGJyZWFrSWQgPSBEZWJ1Zy5zZXRTY3JpcHRCcmVha1BvaW50QnlJZChhcmdzLnNjcmlwdElk
LCBhcmdzLmxpbmVOdW1iZXIsIDAgLyogY29sdW1uICovLCBhcmdzLmNvbmRpdGlvbik7Ci0gICAg
aWYgKCFhcmdzLmVuYWJsZWQpCisgICAgaWYgKCFhcmdzLmVuYWJsZWQgfHwgIURlYnVnZ2VyU2Ny
aXB0Ll9icmVha3BvaW50c0FjdGl2YXRlZCkKICAgICAgICAgRGVidWcuZGlzYWJsZVNjcmlwdEJy
ZWFrUG9pbnQoYnJlYWtJZCk7CiAKICAgICB2YXIgYWN0dWFsTGluZU51bWJlciA9IGFyZ3MubGlu
ZU51bWJlcjsgLy8gVE9ETzogcmVwbGFjZSB3aXRoIHJlYWwgc3R1ZmYgYWZ0ZXIgdjggcm9sbC4K
QEAgLTIwMyw2ICsyMDQsNyBAQCBEZWJ1Z2dlclNjcmlwdC5zZXRCcmVha3BvaW50c0FjdGl2YXRl
ZCA9IGZ1bmN0aW9uKGV4ZWNTdGF0ZSwgYXJncykKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
RGVidWcuZGlzYWJsZVNjcmlwdEJyZWFrUG9pbnQoYnJlYWtJZCk7CiAgICAgfQorICAgIERlYnVn
Z2VyU2NyaXB0Ll9icmVha3BvaW50c0FjdGl2YXRlZCA9IGFyZ3MuZW5hYmxlZDsKIH0KIAogRGVi
dWdnZXJTY3JpcHQuX2ZyYW1lTWlycm9yVG9KU0NhbGxGcmFtZSA9IGZ1bmN0aW9uKGZyYW1lTWly
cm9yLCBjYWxsZXJGcmFtZSkK
</data>
<flag name="review"
          id="48064"
          type_id="1"
          status="-"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60557</attachid>
            <date>2010-07-05 11:22:24 -0700</date>
            <delta_ts>2010-07-08 09:42:31 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>no_toggle.diff</filename>
            <type>text/plain</type>
            <size>14359</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlODQ0MDk5Li5mZjBlY2VlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDct
MDUgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZG8g
bm90IGFjdGl2YXRlIGFsbCBicmVha3BvaW50cyBvbiBwYWdlIHJlbG9hZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE0NjEKKworICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50
cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC5odG1sOiBBZGRlZC4KKwogMjAxMC0wNy0wNCAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LiBNYXJrIGZhc3QvanMvZnVuY3Rpb24tYXBwbHktbWFueS1hcmdzLmh0bWwgYXMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1ub3QtYWN0aXZh
dGVkLW9uLXJlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRlZC1vbi1yZWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVjZWZiMWIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRl
ZC1vbi1yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdHMgdGhhdCBicmVh
a3BvaW50cyBhcmUgbm90IGFjdGl2YXRlZCBvbiBwYWdlIHJlbG9hZC5CdWcgNDE0NjEKKworRGVi
dWdnZXIgd2FzIGVuYWJsZWQuCitTY3JpcHRzIHdlcmUgcGFyc2VkLgorQnJlYWtwb2ludHMgZGVh
Y3RpdmF0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci1i
cmVha3BvaW50cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyLWJyZWFrcG9pbnRzLW5vdC1hY3RpdmF0ZWQtb24tcmVsb2FkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM3Zjg4NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1ub3QtYWN0
aXZhdGVkLW9uLXJlbG9hZC5odG1sCkBAIC0wLDAgKzEsMTUwIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3RGdW5jdGlvbigpCit7CisgICAgcmV0
dXJuIDA7Cit9CisKK2Z1bmN0aW9uIGRvaXQoKQoreworICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHJl
c3VsdCkKKyAgICB7CisgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBBcnJheSkgeworICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXN1bHQubGVuZ3RoOyBpKyspCisgICAgICAg
ICAgICAgICAgb3V0cHV0KHJlc3VsdFtpXSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
b3V0cHV0KHJlc3VsdCk7CisgICAgICAgIG5vdGlmeURvbmUoKTsKKyAgICB9CisgICAgZXZhbHVh
dGVJbldlYkluc3BlY3RvcigiZnJvbnRlbmRfdGVzdEJyZWFrcG9pbnRzTm90QWN0aXZhdGVkT25S
ZWxvYWQiLCBjYWxsYmFjayk7Cit9CisKK2Z1bmN0aW9uIGZyb250ZW5kX3Rlc3RCcmVha3BvaW50
c05vdEFjdGl2YXRlZE9uUmVsb2FkKHRlc3RDb250cm9sbGVyKQoreworICAgIHZhciB0ZXN0TmFt
ZSA9IFdlYkluc3BlY3Rvci5tYWluUmVzb3VyY2UudXJsOworICAgIHRlc3ROYW1lID0gdGVzdE5h
bWUuc3Vic3RyaW5nKHRlc3ROYW1lLmxhc3RJbmRleE9mKCcvJykgKyAxKTsKKworICAgIHRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIFdlYkluc3BlY3Rvci5zaG93U2NyaXB0
c1BhbmVsKCk7CisgICAgZnJvbnRlbmRfZW5zdXJlRGVidWdnZXJFbmFibGVkKGRlYnVnZ2VyV2Fz
RW5hYmxlZENhbGxiYWNrKTsKKworICAgIGZ1bmN0aW9uIGRlYnVnZ2VyV2FzRW5hYmxlZENhbGxi
YWNrKCkKKyAgICB7CisgICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaCgiRGVidWdn
ZXIgd2FzIGVuYWJsZWQuIik7CisgICAgICAgIGZyb250ZW5kX3dhaXRVbnRpbFNjcmlwdHNBcmVQ
YXJzZWQoW3Rlc3ROYW1lXSwgd2FpdFVudGlsU2NyaXB0c0FyZVBhcnNlZENhbGxiYWNrKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiB3YWl0VW50aWxTY3JpcHRzQXJlUGFyc2VkQ2FsbGJhY2soKQor
ICAgIHsKKyAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKCJTY3JpcHRzIHdlcmUg
cGFyc2VkLiIpOworICAgICAgICBmcm9udGVuZF9zaG93U2NyaXB0U291cmNlKHRlc3ROYW1lLCBz
aG93TWFpblBhZ2VTY3JpcHRTb3VyY2VDYWxsYmFjayk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
c2hvd01haW5QYWdlU2NyaXB0U291cmNlQ2FsbGJhY2sodmlldywgdXJsKQorICAgIHsKKyAgICAg
ICAgaWYgKCFXZWJJbnNwZWN0b3IuZmxhZykgeworICAgICAgICAgICAgdmlldy5fYWRkQnJlYWtw
b2ludCg4KTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy50b2dnbGVC
cmVha3BvaW50c0J1dHRvbi5lbGVtZW50LmNsaWNrKCk7CisgICAgICAgICAgICBJbnNwZWN0b3JC
YWNrZW5kLnJlbG9hZFBhZ2UoKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5mbGFnID0gdHJ1
ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLnBhbmVs
cy5zY3JpcHRzLmJyZWFrcG9pbnRzQWN0aXZhdGVkKQorICAgICAgICAgICAgICAgIHRlc3RDb250
cm9sbGVyLnJlc3VsdHMucHVzaCgiQnJlYWtwb2ludHMgZGVhY3RpdmF0ZWQuIik7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKCJF
cnJvcjogYnJlYWtwb2ludHMgYWN0aXZhdGVkLiIpOworICAgICAgICAgICAgdGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgfQorfQorCitmdW5jdGlvbiBmcm9udGVu
ZF9lbnN1cmVEZWJ1Z2dlckVuYWJsZWQoY2FsbGJhY2spCit7CisgICAgaWYgKFdlYkluc3BlY3Rv
ci5wYW5lbHMuc2NyaXB0cy5fZGVidWdnZXJFbmFibGVkKSB7CisgICAgICAgIGNhbGxiYWNrKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmcm9udGVuZF9hZGRTbmlmZmVyKFdlYklu
c3BlY3RvciwgImRlYnVnZ2VyV2FzRW5hYmxlZCIsIGNhbGxiYWNrKTsKKyAgICBXZWJJbnNwZWN0
b3IucGFuZWxzLnNjcmlwdHMuX3RvZ2dsZURlYnVnZ2luZyhmYWxzZSk7Cit9CisKK2Z1bmN0aW9u
IGZyb250ZW5kX3NjcmlwdHNBcmVQYXJzZWQoc2NyaXB0cykKK3sKKyAgICB2YXIgc2NyaXB0U2Vs
ZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcmlwdHMtZmlsZXMiKTsKKyAgICB2YXIg
b3B0aW9ucyA9IHNjcmlwdFNlbGVjdC5vcHRpb25zOworCisgICAgLy8gQ2hlY2sgdGhhdCBhbGwg
dGhlIGV4cGVjdGVkIHNjcmlwdHMgYXJlIHByZXNlbnQuCisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBzY3JpcHRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZhciBmb3VuZCA9IGZhbHNlOworICAg
ICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG9wdGlvbnMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAg
ICAgIGlmIChvcHRpb25zW2pdLnRleHQuc2VhcmNoKHNjcmlwdHNbaV0pICE9PSAtMSkgeworICAg
ICAgICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIWZvdW5kKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK307CisKK2Z1bmN0aW9uIGZyb250
ZW5kX3dhaXRVbnRpbFNjcmlwdHNBcmVQYXJzZWQoc2NyaXB0cywgY2FsbGJhY2spCit7CisgICAg
ZnVuY3Rpb24gd2FpdEZvckFsbFNjcmlwdHMoKQorICAgIHsKKyAgICAgICAgaWYgKGZyb250ZW5k
X3NjcmlwdHNBcmVQYXJzZWQoc2NyaXB0cykpCisgICAgICAgICAgICBjYWxsYmFjaygpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBmcm9udGVuZF9hZGRTbmlmZmVyKFdlYkluc3BlY3Rvciwg
InBhcnNlZFNjcmlwdFNvdXJjZSIsIHdhaXRGb3JBbGxTY3JpcHRzKTsKKyAgICB9CisgICAgd2Fp
dEZvckFsbFNjcmlwdHMoKTsKK307CisKK2Z1bmN0aW9uIGZyb250ZW5kX3Nob3dTY3JpcHRTb3Vy
Y2Uoc2NyaXB0TmFtZSwgY2FsbGJhY2spCit7CisgICAgdmFyIHNjcmlwdFNlbGVjdCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzY3JpcHRzLWZpbGVzIik7CisgICAgdmFyIG9wdGlvbnMgPSBz
Y3JpcHRTZWxlY3Qub3B0aW9uczsKKyAgICB2YXIgc2NyaXB0c1BhbmVsID0gV2ViSW5zcGVjdG9y
LnBhbmVscy5zY3JpcHRzOworCisgICAgLy8gU2VsZWN0IHBhZ2UncyBzY3JpcHQgaWYgaXQncyBu
b3QgY3VycmVudCBvcHRpb24uCisgICAgdmFyIHNjcmlwdFJlc291cmNlOworICAgIGlmIChvcHRp
b25zW3NjcmlwdFNlbGVjdC5zZWxlY3RlZEluZGV4XS50ZXh0ID09PSBzY3JpcHROYW1lKQorICAg
ICAgICBzY3JpcHRSZXNvdXJjZSA9IG9wdGlvbnNbc2NyaXB0U2VsZWN0LnNlbGVjdGVkSW5kZXhd
LnJlcHJlc2VudGVkT2JqZWN0OworICAgIGVsc2UgeworICAgICAgICB2YXIgcGFnZVNjcmlwdElu
ZGV4ID0gLTE7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb3B0aW9ucy5sZW5ndGg7IGkr
KykgeworICAgICAgICAgICAgaWYgKG9wdGlvbnNbaV0udGV4dCA9PT0gc2NyaXB0TmFtZSkgewor
ICAgICAgICAgICAgICAgIHBhZ2VTY3JpcHRJbmRleCA9IGk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgc2NyaXB0UmVzb3VyY2UgPSBv
cHRpb25zW3BhZ2VTY3JpcHRJbmRleF0ucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgICAgIHNjcmlw
dHNQYW5lbC5fc2hvd1NjcmlwdE9yUmVzb3VyY2Uoc2NyaXB0UmVzb3VyY2UpOworICAgIH0KKwor
ICAgIHZhciB2aWV3ID0gc2NyaXB0c1BhbmVsLnZpc2libGVWaWV3OworICAgIGlmICghdmlldy5z
b3VyY2VGcmFtZS5fbG9hZGVkKSB7CisgICAgICAgIGZyb250ZW5kX2FkZFNuaWZmZXIodmlldywg
Il9zb3VyY2VGcmFtZVNldHVwRmluaXNoZWQiLCBmdW5jdGlvbihldmVudCkKKyAgICAgICAgewor
ICAgICAgICAgICAgY2FsbGJhY2sodmlldywgc2NyaXB0UmVzb3VyY2UudXJsKTsKKyAgICAgICAg
fSk7CisgICAgfSBlbHNlCisgICAgICAgIGNhbGxiYWNrKHZpZXcsIHNjcmlwdFJlc291cmNlLnVy
bCk7Cit9OworCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+
Cis8cD4KK1Rlc3RzIHRoYXQgYnJlYWtwb2ludHMgYXJlIG5vdCBhY3RpdmF0ZWQgb24gcGFnZSBy
ZWxvYWQuPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQx
NDYxIj5CdWcgNDE0NjE8L2E+Cis8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KKworCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJkNjBmMDQu
LmZhNTIzN2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDctMDEgIFBhdmVsIFBvZGl2aWxvdiAgPHBv
ZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZG8gbm90IGFjdGl2YXRlIGFsbCBicmVha3Bv
aW50cyBvbiBwYWdlIHJlbG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDE0NjEKKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvZGVidWdnZXItYnJl
YWtwb2ludHMtbm90LWFjdGl2YXRlZC1vbi1yZWxvYWQuaHRtbAorCisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dFZpZXcucHJvdG90eXBlLl9hZGRCcmVha3BvaW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX2JyZWFr
cG9pbnRBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlw
ZS50b2dnbGVCcmVha3BvaW50c0NsaWNrZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlVmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3LnByb3Rv
dHlwZS5fYWRkQnJlYWtwb2ludCk6CisKIDIwMTAtMDctMDQgIEFsaWNlIExpdSAgPGFsaWNlLmxp
dUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMKaW5kZXggYzU3NjUxMC4uNTk3ZmQy
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMK
KysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMKQEAgLTk3LDYg
Kzk3LDggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFZpZXcucHJvdG90eXBlID0gewogICAgIF9hZGRC
cmVha3BvaW50OiBmdW5jdGlvbihsaW5lKQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmJy
ZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQodGhpcy5zY3JpcHQuc291cmNlSUQsIHRoaXMu
c2NyaXB0LnNvdXJjZVVSTCwgbGluZSwgdHJ1ZSwgIiIpOworICAgICAgICBpZiAoIVdlYkluc3Bl
Y3Rvci5wYW5lbHMuc2NyaXB0cy5icmVha3BvaW50c0FjdGl2YXRlZCkKKyAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy50b2dnbGVCcmVha3BvaW50c0NsaWNrZWQoKTsKICAg
ICB9LAogCiAgICAgX2VkaXRMaW5lQ29tcGxldGU6IGZ1bmN0aW9uKG5ld0JvZHkpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwppbmRleCBmMjJlYWExLi40MWVh
ZDk5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVs
LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAg
LTEwNiwxMCArMTA2LDEwIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbigp
CiAgICAgdGhpcy5zaWRlYmFyQnV0dG9uc0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5zdGVwT3V0
QnV0dG9uKTsKIAogICAgIHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24gPSBuZXcgV2ViSW5z
cGVjdG9yLlN0YXR1c0JhckJ1dHRvbigiIiwgInRvZ2dsZS1icmVha3BvaW50cyIpOwotICAgIHRo
aXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlz
Ll90b2dnbGVCcmVha3BvaW50c0NsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMu
dG9nZ2xlQnJlYWtwb2ludHNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLnRv
Z2dsZUJyZWFrcG9pbnRzQ2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgdGhpcy5zaWRl
YmFyQnV0dG9uc0VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy50b2dnbGVCcmVha3BvaW50c0J1dHRv
bi5lbGVtZW50KTsKICAgICAvLyBCcmVha3BvaW50cyBzaG91bGQgYmUgYWN0aXZhdGVkIGJ5IGRl
ZmF1bHQsIHNvIGVtdWxhdGUgYSBjbGljayB0byB0b2dnbGUgb24uCi0gICAgdGhpcy5fdG9nZ2xl
QnJlYWtwb2ludHNDbGlja2VkKCk7CisgICAgdGhpcy50b2dnbGVCcmVha3BvaW50c0NsaWNrZWQo
KTsKIAogICAgIHRoaXMuZGVidWdnZXJTdGF0dXNFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CiAgICAgdGhpcy5kZWJ1Z2dlclN0YXR1c0VsZW1lbnQuaWQgPSAic2NyaXB0
cy1kZWJ1Z2dlci1zdGF0dXMiOwpAQCAtMTY0LDcgKzE2NCw3IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbiA9
IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKCIiLCAic2NyaXB0cy1wYXVzZS1vbi1l
eGNlcHRpb25zLXN0YXR1cy1iYXItaXRlbSIsIDMpOwogICAgIHRoaXMuX3BhdXNlT25FeGNlcHRp
b25CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVQYXVzZU9uRXhj
ZXB0aW9ucy5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1
dHRvbi5zdGF0ZSA9IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNT
dGF0ZS5Eb250UGF1c2VPbkV4Y2VwdGlvbnM7Ci0gICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1
dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRG9uJ3QgcGF1c2Ugb24gZXhjZXB0
aW9ucy5cbkNsaWNrIHRvIFBhdXNlIG9uIGFsbCBleGNlcHRpb25zLiIpOyAKKyAgICB0aGlzLl9w
YXVzZU9uRXhjZXB0aW9uQnV0dG9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEb24n
dCBwYXVzZSBvbiBleGNlcHRpb25zLlxuQ2xpY2sgdG8gUGF1c2Ugb24gYWxsIGV4Y2VwdGlvbnMu
Iik7CiAKICAgICB0aGlzLl9yZWdpc3RlclNob3J0Y3V0cygpOwogCkBAIC0yMjEsNyArMjIxLDcg
QEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBk
ZWxldGUgdGhpcy5fYXR0YWNoRGVidWdnZXJXaGVuU2hvd247CiAgICAgICAgIH0KICAgICB9LAot
ICAgIAorCiAgICAgaGlkZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgV2ViSW5zcGVjdG9y
LlBhbmVsLnByb3RvdHlwZS5oaWRlLmNhbGwodGhpcyk7CkBAIC0yODAsNyArMjgwLDcgQEAgV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIC8vIFJl
bW92ZSBzY3JpcHQgZnJvbSB0aGUgZmlsZXMgbGlzdC4KICAgICAgICAgICAgIHNjcmlwdC5maWxl
c1NlbGVjdE9wdGlvbi5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHNjcmlwdC5maWxlc1NlbGVj
dE9wdGlvbik7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgLy8gTW92ZSBicmVha3BvaW50
cyB0byB0aGUgcmVzb3VyY2UncyBmcmFtZS4KICAgICAgICAgICAgIGlmIChzY3JpcHQuX3Njcmlw
dFZpZXcpIHsKICAgICAgICAgICAgICAgICB2YXIgc291cmNlRnJhbWUgPSBzY3JpcHQuX3Njcmlw
dFZpZXcuc291cmNlRnJhbWU7CkBAIC0yOTgsOSArMjk4LDYgQEAgV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgYnJlYWtwb2ludCA9IGV2
ZW50LmRhdGE7CiAKLSAgICAgICAgaWYgKCF0aGlzLmJyZWFrcG9pbnRzQWN0aXZhdGVkKQotICAg
ICAgICAgICAgdGhpcy5fdG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkKCk7Ci0KICAgICAgICAgdmFy
IHNvdXJjZUZyYW1lOwogICAgICAgICBpZiAoYnJlYWtwb2ludC51cmwpIHsKICAgICAgICAgICAg
IHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVVSTE1hcFticmVha3BvaW50LnVy
bF07CkBAIC01NDIsNyArNTM5LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHRoaXMuX3Nob3dTY3JpcHRPclJlc291cmNlKHNjcmlwdE9yUmVzb3Vy
Y2UsIHtsaW5lOiBsaW5lLCBzaG91bGRIaWdobGlnaHRMaW5lOiB0cnVlfSk7CiAgICAgfSwKIAot
ICAgIF9zY3JpcHRPclJlc291cmNlRm9yVVJMQW5kTGluZTogZnVuY3Rpb24odXJsLCBsaW5lKSAK
KyAgICBfc2NyaXB0T3JSZXNvdXJjZUZvclVSTEFuZExpbmU6IGZ1bmN0aW9uKHVybCwgbGluZSkK
ICAgICB7CiAgICAgICAgIHZhciBzY3JpcHRXaXRoTWF0Y2hpbmdVcmwgPSBudWxsOwogICAgICAg
ICBmb3IgKHZhciBzb3VyY2VJRCBpbiB0aGlzLl9zb3VyY2VJRE1hcCkgewpAQCAtNjE0LDggKzYx
MSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIF9zaG93
U2NyaXB0T3JSZXNvdXJjZTogZnVuY3Rpb24oc2NyaXB0T3JSZXNvdXJjZSwgb3B0aW9ucykKICAg
ICB7CiAgICAgICAgIC8vIG9wdGlvbnMgPSB7bGluZTosIHNob3VsZEhpZ2hsaWdodExpbmU6LCBm
cm9tQmFja0ZvcndhcmRBY3Rpb246LCBpbml0aWFsTG9hZDp9Ci0gICAgICAgIGlmICghb3B0aW9u
cykgCi0gICAgICAgICAgICBvcHRpb25zID0ge307CisgICAgICAgIG9wdGlvbnMgPSBvcHRpb25z
IHx8IHt9OwogCiAgICAgICAgIGlmICghc2NyaXB0T3JSZXNvdXJjZSkKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTY5Nyw3ICs2OTMsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB0aGlzLl9yZXNv
dXJjZUZvclVSTEluRmlsZXNTZWxlY3Rbc2NyaXB0LnJlc291cmNlLnVybF0gPSBzY3JpcHQucmVz
b3VyY2U7CiAgICAgICAgIH0KLSAKKwogICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSBzY3JpcHQu
c291cmNlVVJMID8gV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKHNjcmlwdC5zb3VyY2VV
UkwpIDogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIocHJvZ3JhbSkiKTsKIAogICAgICAgICB2YXIg
c2VsZWN0ID0gdGhpcy5maWxlc1NlbGVjdEVsZW1lbnQ7CkBAIC04MTIsNyArODA4LDcgQEAgV2Vi
SW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMucmVzaXpl
KCk7CiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgfSwKLSAgICAKKwogICAg
IHVwZGF0ZVBhdXNlT25FeGNlcHRpb25zU3RhdGU6IGZ1bmN0aW9uKHBhdXNlT25FeGNlcHRpb25z
U3RhdGUpCiAgICAgewogICAgICAgICBpZiAocGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9PSBXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRpb25zU3RhdGUuRG9udFBhdXNlT25F
eGNlcHRpb25zKQpAQCAtOTcxLDcgKzk2Nyw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwu
cHJvdG90eXBlID0gewogICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnN0ZXBPdXRPZkZ1bmN0aW9u
SW5EZWJ1Z2dlcigpOwogICAgIH0sCiAKLSAgICBfdG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkOiBm
dW5jdGlvbigpCisgICAgdG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkOiBmdW5jdGlvbigpCiAgICAg
ewogICAgICAgICB0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uLnRvZ2dsZWQgPSAhdGhpcy50
b2dnbGVCcmVha3BvaW50c0J1dHRvbi50b2dnbGVkOwogICAgICAgICBpZiAodGhpcy50b2dnbGVC
cmVha3BvaW50c0J1dHRvbi50b2dnbGVkKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlVmlldy5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
b3VyY2VWaWV3LmpzCmluZGV4IGFhYzNhNzUuLmM3NWM1NDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzCkBAIC0xMjgsNiArMTI4LDggQEAgV2ViSW5zcGVjdG9y
LlNvdXJjZVZpZXcucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIHNvdXJjZUlEID0g
dGhpcy5fc291cmNlSURGb3JMaW5lKGxpbmUpOwogICAgICAgICBXZWJJbnNwZWN0b3IuYnJlYWtw
b2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludChzb3VyY2VJRCwgdGhpcy5yZXNvdXJjZS51cmwsIGxp
bmUsIHRydWUsICIiKTsKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMu
YnJlYWtwb2ludHNBY3RpdmF0ZWQpCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnNj
cmlwdHMudG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkKCk7CiAgICAgfSwKIAogICAgIF9yZW1vdmVC
cmVha3BvaW50OiBmdW5jdGlvbihicmVha3BvaW50KQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOTEwZDJkMi4u
YWJjYzVkNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDctMDEgIFBhdmVs
IFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogaWYgYnJlYWtwb2lu
dHMgd2VyZSBkZWFjdGl2YXRlZCwgYWRkIG5ldyBicmVha3BvaW50cyBhcyBkaXNhYmxlZC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNDYxCisKKyAg
ICAgICAgKiBzcmMvanMvRGVidWdnZXJTY3JpcHQuanM6CisgICAgICAgICgpOgorCiAyMDEwLTA3
LTAzICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgT2phbiBWYWZhaS4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVi
dWdnZXJTY3JpcHQuanMgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RlYnVnZ2VyU2NyaXB0Lmpz
CmluZGV4IDRhNTgxZTYuLmIzOGYxY2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
anMvRGVidWdnZXJTY3JpcHQuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZWJ1Z2dl
clNjcmlwdC5qcwpAQCAtMzIsNiArMzIsNyBAQAogCiB2YXIgRGVidWdnZXJTY3JpcHQgPSB7fTsK
IERlYnVnZ2VyU2NyaXB0Ll9icmVha3BvaW50cyA9IHt9OworRGVidWdnZXJTY3JpcHQuX2JyZWFr
cG9pbnRzQWN0aXZhdGVkID0gdHJ1ZTsKIAogRGVidWdnZXJTY3JpcHQuUGF1c2VPbkV4Y2VwdGlv
bnNTdGF0ZSA9IHsKICAgICBEb250UGF1c2VPbkV4Y2VwdGlvbnMgOiAwLApAQCAtOTQsNyArOTUs
NyBAQCBEZWJ1Z2dlclNjcmlwdC5zZXRCcmVha3BvaW50ID0gZnVuY3Rpb24oZXhlY1N0YXRlLCBh
cmdzKQogewogICAgIGFyZ3MubGluZU51bWJlciA9IERlYnVnZ2VyU2NyaXB0Ll93ZWJraXRUb1Y4
TGluZU51bWJlcihhcmdzLmxpbmVOdW1iZXIpOwogICAgIHZhciBicmVha0lkID0gRGVidWcuc2V0
U2NyaXB0QnJlYWtQb2ludEJ5SWQoYXJncy5zY3JpcHRJZCwgYXJncy5saW5lTnVtYmVyLCAwIC8q
IGNvbHVtbiAqLywgYXJncy5jb25kaXRpb24pOwotICAgIGlmICghYXJncy5lbmFibGVkKQorICAg
IGlmICghYXJncy5lbmFibGVkIHx8ICFEZWJ1Z2dlclNjcmlwdC5fYnJlYWtwb2ludHNBY3RpdmF0
ZWQpCiAgICAgICAgIERlYnVnLmRpc2FibGVTY3JpcHRCcmVha1BvaW50KGJyZWFrSWQpOwogCiAg
ICAgdmFyIGFjdHVhbExpbmVOdW1iZXIgPSBhcmdzLmxpbmVOdW1iZXI7IC8vIFRPRE86IHJlcGxh
Y2Ugd2l0aCByZWFsIHN0dWZmIGFmdGVyIHY4IHJvbGwuCkBAIC0yMDMsNiArMjA0LDcgQEAgRGVi
dWdnZXJTY3JpcHQuc2V0QnJlYWtwb2ludHNBY3RpdmF0ZWQgPSBmdW5jdGlvbihleGVjU3RhdGUs
IGFyZ3MpCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIERlYnVnLmRpc2FibGVTY3JpcHRCcmVh
a1BvaW50KGJyZWFrSWQpOwogICAgIH0KKyAgICBEZWJ1Z2dlclNjcmlwdC5fYnJlYWtwb2ludHNB
Y3RpdmF0ZWQgPSBhcmdzLmVuYWJsZWQ7CiB9CiAKIERlYnVnZ2VyU2NyaXB0Ll9mcmFtZU1pcnJv
clRvSlNDYWxsRnJhbWUgPSBmdW5jdGlvbihmcmFtZU1pcnJvciwgY2FsbGVyRnJhbWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60900</attachid>
            <date>2010-07-08 09:42:31 -0700</date>
            <delta_ts>2010-07-09 10:20:53 -0700</delta_ts>
            <desc>Updated test.</desc>
            <filename>no_toggle.patch</filename>
            <type>text/plain</type>
            <size>13859</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYzBkM2VhLi5iYmFmOTIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDct
MDggIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZG8g
bm90IGFjdGl2YXRlIGFsbCBicmVha3BvaW50cyBvbiBwYWdlIHJlbG9hZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE0NjEKKworICAgICAgICAqIGlu
c3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50
cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC5odG1sOiBBZGRlZC4KKwogMjAxMC0wNy0wNyAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBQYXZlbCBGZWxkbWFuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyLWJyZWFrcG9pbnRzLW5vdC1hY3RpdmF0ZWQtb24tcmVsb2FkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1ub3QtYWN0aXZhdGVkLW9u
LXJlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OWFmYmI5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci1icmVha3BvaW50cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw3IEBACitUZXN0cyB0aGF0IGJyZWFrcG9pbnRzIGFyZSBub3QgYWN0aXZhdGVkIG9uIHBh
Z2UgcmVsb2FkLkJ1ZyA0MTQ2MQorCitEZWJ1Z2dlciB3YXMgZW5hYmxlZC4KK1NjcmlwdHMgd2Vy
ZSBwYXJzZWQuCitCcmVha3BvaW50cyBkZWFjdGl2YXRlZC4KK0Rpc2FibGVkIGRlYnVnZ2VyLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItYnJlYWtwb2ludHMt
bm90LWFjdGl2YXRlZC1vbi1yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci1icmVha3BvaW50cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4OTdmYmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRlZC1vbi1y
ZWxvYWQuaHRtbApAQCAtMCwwICsxLDEzMSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKQoreworICAgIHJldHVy
biAwOworfQorCitmdW5jdGlvbiBkb2l0KCkKK3sKKyAgICBldmFsdWF0ZUluV2ViSW5zcGVjdG9y
KCJmcm9udGVuZF90ZXN0QnJlYWtwb2ludHNOb3RBY3RpdmF0ZWRPblJlbG9hZCIsIGNvbXBsZXRl
VGVzdCk7Cit9CisKK2Z1bmN0aW9uIGZyb250ZW5kX3Rlc3RCcmVha3BvaW50c05vdEFjdGl2YXRl
ZE9uUmVsb2FkKHRlc3RDb250cm9sbGVyKQoreworICAgIHZhciB0ZXN0TmFtZSA9IFdlYkluc3Bl
Y3Rvci5tYWluUmVzb3VyY2UudXJsOworICAgIHRlc3ROYW1lID0gdGVzdE5hbWUuc3Vic3RyaW5n
KHRlc3ROYW1lLmxhc3RJbmRleE9mKCcvJykgKyAxKTsKKworICAgIHRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKworICAgIFdlYkluc3BlY3Rvci5zaG93U2NyaXB0c1BhbmVsKCk7Cisg
ICAgZnJvbnRlbmRfZW5zdXJlRGVidWdnZXJFbmFibGVkKGRlYnVnZ2VyV2FzRW5hYmxlZENhbGxi
YWNrKTsKKworICAgIGZ1bmN0aW9uIGRlYnVnZ2VyV2FzRW5hYmxlZENhbGxiYWNrKCkKKyAgICB7
CisgICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaCgiRGVidWdnZXIgd2FzIGVuYWJs
ZWQuIik7CisgICAgICAgIGZyb250ZW5kX3dhaXRVbnRpbFNjcmlwdHNBcmVQYXJzZWQoW3Rlc3RO
YW1lXSwgd2FpdFVudGlsU2NyaXB0c0FyZVBhcnNlZENhbGxiYWNrKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiB3YWl0VW50aWxTY3JpcHRzQXJlUGFyc2VkQ2FsbGJhY2soKQorICAgIHsKKyAgICAg
ICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKCJTY3JpcHRzIHdlcmUgcGFyc2VkLiIpOwor
ICAgICAgICBmcm9udGVuZF9zaG93U2NyaXB0U291cmNlKHRlc3ROYW1lLCBzaG93TWFpblBhZ2VT
Y3JpcHRTb3VyY2VDYWxsYmFjayk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2hvd01haW5QYWdl
U2NyaXB0U291cmNlQ2FsbGJhY2sodmlldywgdXJsKQorICAgIHsKKyAgICAgICAgaWYgKCFXZWJJ
bnNwZWN0b3IuZmxhZykgeworICAgICAgICAgICAgdmlldy5fYWRkQnJlYWtwb2ludCg4KTsKKyAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy50b2dnbGVCcmVha3BvaW50c0J1
dHRvbi5lbGVtZW50LmNsaWNrKCk7CisgICAgICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnJlbG9h
ZFBhZ2UoKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5mbGFnID0gdHJ1ZTsKKyAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLmJy
ZWFrcG9pbnRzQWN0aXZhdGVkKQorICAgICAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3Vs
dHMucHVzaCgiQnJlYWtwb2ludHMgZGVhY3RpdmF0ZWQuIik7CisgICAgICAgICAgICBlbHNlCisg
ICAgICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKCJFcnJvcjogYnJlYWtw
b2ludHMgYWN0aXZhdGVkLiIpOworICAgICAgICAgICAgZnJvbnRlbmRfY29tcGxldGVEZWJ1Z2dl
clRlc3QodGVzdENvbnRyb2xsZXIpOworICAgICAgICB9CisgICAgfQorfQorCitmdW5jdGlvbiBm
cm9udGVuZF9zY3JpcHRzQXJlUGFyc2VkKHNjcmlwdHMpCit7CisgICAgdmFyIHNjcmlwdFNlbGVj
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY3JpcHRzLWZpbGVzIik7CisgICAgdmFyIG9w
dGlvbnMgPSBzY3JpcHRTZWxlY3Qub3B0aW9uczsKKworICAgIC8vIENoZWNrIHRoYXQgYWxsIHRo
ZSBleHBlY3RlZCBzY3JpcHRzIGFyZSBwcmVzZW50LgorICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
c2NyaXB0cy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgZm91bmQgPSBmYWxzZTsKKyAgICAg
ICAgZm9yICh2YXIgaiA9IDA7IGogPCBvcHRpb25zLmxlbmd0aDsgaisrKSB7CisgICAgICAgICAg
ICBpZiAob3B0aW9uc1tqXS50ZXh0LnNlYXJjaChzY3JpcHRzW2ldKSAhPT0gLTEpIHsKKyAgICAg
ICAgICAgICAgICBmb3VuZCA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFmb3VuZCkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9OworCitmdW5jdGlvbiBmcm9udGVu
ZF93YWl0VW50aWxTY3JpcHRzQXJlUGFyc2VkKHNjcmlwdHMsIGNhbGxiYWNrKQoreworICAgIGZ1
bmN0aW9uIHdhaXRGb3JBbGxTY3JpcHRzKCkKKyAgICB7CisgICAgICAgIGlmIChmcm9udGVuZF9z
Y3JpcHRzQXJlUGFyc2VkKHNjcmlwdHMpKQorICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgZnJvbnRlbmRfYWRkU25pZmZlcihXZWJJbnNwZWN0b3IsICJw
YXJzZWRTY3JpcHRTb3VyY2UiLCB3YWl0Rm9yQWxsU2NyaXB0cyk7CisgICAgfQorICAgIHdhaXRG
b3JBbGxTY3JpcHRzKCk7Cit9OworCitmdW5jdGlvbiBmcm9udGVuZF9zaG93U2NyaXB0U291cmNl
KHNjcmlwdE5hbWUsIGNhbGxiYWNrKQoreworICAgIHZhciBzY3JpcHRTZWxlY3QgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic2NyaXB0cy1maWxlcyIpOworICAgIHZhciBvcHRpb25zID0gc2Ny
aXB0U2VsZWN0Lm9wdGlvbnM7CisgICAgdmFyIHNjcmlwdHNQYW5lbCA9IFdlYkluc3BlY3Rvci5w
YW5lbHMuc2NyaXB0czsKKworICAgIC8vIFNlbGVjdCBwYWdlJ3Mgc2NyaXB0IGlmIGl0J3Mgbm90
IGN1cnJlbnQgb3B0aW9uLgorICAgIHZhciBzY3JpcHRSZXNvdXJjZTsKKyAgICBpZiAob3B0aW9u
c1tzY3JpcHRTZWxlY3Quc2VsZWN0ZWRJbmRleF0udGV4dCA9PT0gc2NyaXB0TmFtZSkKKyAgICAg
ICAgc2NyaXB0UmVzb3VyY2UgPSBvcHRpb25zW3NjcmlwdFNlbGVjdC5zZWxlY3RlZEluZGV4XS5y
ZXByZXNlbnRlZE9iamVjdDsKKyAgICBlbHNlIHsKKyAgICAgICAgdmFyIHBhZ2VTY3JpcHRJbmRl
eCA9IC0xOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9wdGlvbnMubGVuZ3RoOyBpKysp
IHsKKyAgICAgICAgICAgIGlmIChvcHRpb25zW2ldLnRleHQgPT09IHNjcmlwdE5hbWUpIHsKKyAg
ICAgICAgICAgICAgICBwYWdlU2NyaXB0SW5kZXggPSBpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHNjcmlwdFJlc291cmNlID0gb3B0
aW9uc1twYWdlU2NyaXB0SW5kZXhdLnJlcHJlc2VudGVkT2JqZWN0OworICAgICAgICBzY3JpcHRz
UGFuZWwuX3Nob3dTY3JpcHRPclJlc291cmNlKHNjcmlwdFJlc291cmNlKTsKKyAgICB9CisKKyAg
ICB2YXIgdmlldyA9IHNjcmlwdHNQYW5lbC52aXNpYmxlVmlldzsKKyAgICBpZiAoIXZpZXcuc291
cmNlRnJhbWUuX2xvYWRlZCkgeworICAgICAgICBmcm9udGVuZF9hZGRTbmlmZmVyKHZpZXcsICJf
c291cmNlRnJhbWVTZXR1cEZpbmlzaGVkIiwgZnVuY3Rpb24oZXZlbnQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGNhbGxiYWNrKHZpZXcsIHNjcmlwdFJlc291cmNlLnVybCk7CisgICAgICAgIH0p
OworICAgIH0gZWxzZQorICAgICAgICBjYWxsYmFjayh2aWV3LCBzY3JpcHRSZXNvdXJjZS51cmwp
OworfTsKKworPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0ib25sb2FkKCkiPgor
PHA+CitUZXN0cyB0aGF0IGJyZWFrcG9pbnRzIGFyZSBub3QgYWN0aXZhdGVkIG9uIHBhZ2UgcmVs
b2FkLjxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTQ2
MSI+QnVnIDQxNDYxPC9hPgorPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4OTU2MDc2Li5m
ZDk4Y2U1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA3LTA4ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rp
dmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRvIG5vdCBhY3RpdmF0ZSBhbGwgYnJlYWtwb2lu
dHMgb24gcGFnZSByZWxvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxNDYxCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyLWJyZWFr
cG9pbnRzLW5vdC1hY3RpdmF0ZWQtb24tcmVsb2FkLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRW
aWV3LnByb3RvdHlwZS5fYWRkQnJlYWtwb2ludCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9icmVha3Bv
aW50QWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUu
dG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZVZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlVmlldy5wcm90b3R5
cGUuX2FkZEJyZWFrcG9pbnQpOgorCiAyMDEwLTA3LTA3ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVy
eXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qcyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzCmluZGV4IGM1NzY1MTAuLjU5
N2ZkMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3
LmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzCkBAIC05
Nyw2ICs5Nyw4IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRWaWV3LnByb3RvdHlwZSA9IHsKICAgICBf
YWRkQnJlYWtwb2ludDogZnVuY3Rpb24obGluZSkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rv
ci5icmVha3BvaW50TWFuYWdlci5zZXRCcmVha3BvaW50KHRoaXMuc2NyaXB0LnNvdXJjZUlELCB0
aGlzLnNjcmlwdC5zb3VyY2VVUkwsIGxpbmUsIHRydWUsICIiKTsKKyAgICAgICAgaWYgKCFXZWJJ
bnNwZWN0b3IucGFuZWxzLnNjcmlwdHMuYnJlYWtwb2ludHNBY3RpdmF0ZWQpCisgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMudG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkKCk7
CiAgICAgfSwKIAogICAgIF9lZGl0TGluZUNvbXBsZXRlOiBmdW5jdGlvbihuZXdCb2R5KQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggM2M0YTBiZS4u
OGZiYzkxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQ
YW5lbC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpz
CkBAIC0xMDQsMTAgKzEwNCwxMCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVuY3Rp
b24oKQogICAgIHRoaXMuc2lkZWJhckJ1dHRvbnNFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc3Rl
cE91dEJ1dHRvbik7CiAKICAgICB0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uID0gbmV3IFdl
Ykluc3BlY3Rvci5TdGF0dXNCYXJCdXR0b24oIiIsICJ0b2dnbGUtYnJlYWtwb2ludHMiKTsKLSAg
ICB0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwg
dGhpcy5fdG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0
aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhp
cy50b2dnbGVCcmVha3BvaW50c0NsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMu
c2lkZWJhckJ1dHRvbnNFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMudG9nZ2xlQnJlYWtwb2ludHNC
dXR0b24uZWxlbWVudCk7CiAgICAgLy8gQnJlYWtwb2ludHMgc2hvdWxkIGJlIGFjdGl2YXRlZCBi
eSBkZWZhdWx0LCBzbyBlbXVsYXRlIGEgY2xpY2sgdG8gdG9nZ2xlIG9uLgotICAgIHRoaXMuX3Rv
Z2dsZUJyZWFrcG9pbnRzQ2xpY2tlZCgpOworICAgIHRoaXMudG9nZ2xlQnJlYWtwb2ludHNDbGlj
a2VkKCk7CiAKICAgICB0aGlzLmRlYnVnZ2VyU3RhdHVzRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwogICAgIHRoaXMuZGVidWdnZXJTdGF0dXNFbGVtZW50LmlkID0gInNj
cmlwdHMtZGVidWdnZXItc3RhdHVzIjsKQEAgLTE2Miw3ICsxNjIsNyBAQCBXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3BhdXNlT25FeGNlcHRpb25CdXR0
b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbigiIiwgInNjcmlwdHMtcGF1c2Ut
b24tZXhjZXB0aW9ucy1zdGF0dXMtYmFyLWl0ZW0iLCAzKTsKICAgICB0aGlzLl9wYXVzZU9uRXhj
ZXB0aW9uQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlUGF1c2VP
bkV4Y2VwdGlvbnMuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMuX3BhdXNlT25FeGNlcHRp
b25CdXR0b24uc3RhdGUgPSBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRp
b25zU3RhdGUuRG9udFBhdXNlT25FeGNlcHRpb25zOwotICAgIHRoaXMuX3BhdXNlT25FeGNlcHRp
b25CdXR0b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvbid0IHBhdXNlIG9uIGV4
Y2VwdGlvbnMuXG5DbGljayB0byBQYXVzZSBvbiBhbGwgZXhjZXB0aW9ucy4iKTsgCisgICAgdGhp
cy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygi
RG9uJ3QgcGF1c2Ugb24gZXhjZXB0aW9ucy5cbkNsaWNrIHRvIFBhdXNlIG9uIGFsbCBleGNlcHRp
b25zLiIpOwogCiAgICAgdGhpcy5fcmVnaXN0ZXJTaG9ydGN1dHMoKTsKIApAQCAtMjE3LDcgKzIx
Nyw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAg
ICAgZGVsZXRlIHRoaXMuX2F0dGFjaERlYnVnZ2VyV2hlblNob3duOwogICAgICAgICB9CiAgICAg
fSwKLSAgICAKKwogICAgIGhpZGU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlz
LnZpc2libGVWaWV3KQpAQCAtMjc2LDcgKzI3Niw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogCiAgICAgICAgICAgICAvLyBSZW1vdmUgc2NyaXB0IGZyb20gdGhl
IGZpbGVzIGxpc3QuCiAgICAgICAgICAgICBzY3JpcHQuZmlsZXNTZWxlY3RPcHRpb24ucGFyZW50
RWxlbWVudC5yZW1vdmVDaGlsZChzY3JpcHQuZmlsZXNTZWxlY3RPcHRpb24pOwotICAgICAgICAg
ICAgCisKICAgICAgICAgICAgIC8vIE1vdmUgYnJlYWtwb2ludHMgdG8gdGhlIHJlc291cmNlJ3Mg
ZnJhbWUuCiAgICAgICAgICAgICBpZiAoc2NyaXB0Ll9zY3JpcHRWaWV3KSB7CiAgICAgICAgICAg
ICAgICAgdmFyIHNvdXJjZUZyYW1lID0gc2NyaXB0Ll9zY3JpcHRWaWV3LnNvdXJjZUZyYW1lOwpA
QCAtMjk0LDkgKzI5NCw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogICAgIHsKICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBldmVudC5kYXRhOwogCi0gICAgICAg
IGlmICghdGhpcy5icmVha3BvaW50c0FjdGl2YXRlZCkKLSAgICAgICAgICAgIHRoaXMuX3RvZ2ds
ZUJyZWFrcG9pbnRzQ2xpY2tlZCgpOwotCiAgICAgICAgIHZhciBzb3VyY2VGcmFtZTsKICAgICAg
ICAgaWYgKGJyZWFrcG9pbnQudXJsKSB7CiAgICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSBXZWJJ
bnNwZWN0b3IucmVzb3VyY2VVUkxNYXBbYnJlYWtwb2ludC51cmxdOwpAQCAtNTM4LDcgKzUzNSw3
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
Ll9zaG93U2NyaXB0T3JSZXNvdXJjZShzY3JpcHRPclJlc291cmNlLCB7bGluZTogbGluZSwgc2hv
dWxkSGlnaGxpZ2h0TGluZTogdHJ1ZX0pOwogICAgIH0sCiAKLSAgICBfc2NyaXB0T3JSZXNvdXJj
ZUZvclVSTEFuZExpbmU6IGZ1bmN0aW9uKHVybCwgbGluZSkgCisgICAgX3NjcmlwdE9yUmVzb3Vy
Y2VGb3JVUkxBbmRMaW5lOiBmdW5jdGlvbih1cmwsIGxpbmUpCiAgICAgewogICAgICAgICB2YXIg
c2NyaXB0V2l0aE1hdGNoaW5nVXJsID0gbnVsbDsKICAgICAgICAgZm9yICh2YXIgc291cmNlSUQg
aW4gdGhpcy5fc291cmNlSURNYXApIHsKQEAgLTYxMCw4ICs2MDcsNyBAQCBXZWJJbnNwZWN0b3Iu
U2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICBfc2hvd1NjcmlwdE9yUmVzb3VyY2U6IGZ1
bmN0aW9uKHNjcmlwdE9yUmVzb3VyY2UsIG9wdGlvbnMpCiAgICAgewogICAgICAgICAvLyBvcHRp
b25zID0ge2xpbmU6LCBzaG91bGRIaWdobGlnaHRMaW5lOiwgZnJvbUJhY2tGb3J3YXJkQWN0aW9u
OiwgaW5pdGlhbExvYWQ6fQotICAgICAgICBpZiAoIW9wdGlvbnMpIAotICAgICAgICAgICAgb3B0
aW9ucyA9IHt9OworICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTsKIAogICAgICAgICBp
ZiAoIXNjcmlwdE9yUmVzb3VyY2UpCiAgICAgICAgICAgICByZXR1cm47CkBAIC02OTMsNyArNjg5
LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgdGhpcy5fcmVzb3VyY2VGb3JVUkxJbkZpbGVzU2Vs
ZWN0W3NjcmlwdC5yZXNvdXJjZS51cmxdID0gc2NyaXB0LnJlc291cmNlOwogICAgICAgICB9Ci0g
CisKICAgICAgICAgdmFyIGRpc3BsYXlOYW1lID0gc2NyaXB0LnNvdXJjZVVSTCA/IFdlYkluc3Bl
Y3Rvci5kaXNwbGF5TmFtZUZvclVSTChzY3JpcHQuc291cmNlVVJMKSA6IFdlYkluc3BlY3Rvci5V
SVN0cmluZygiKHByb2dyYW0pIik7CiAKICAgICAgICAgdmFyIHNlbGVjdCA9IHRoaXMuZmlsZXNT
ZWxlY3RFbGVtZW50OwpAQCAtODEyLDcgKzgwOCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFu
ZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMucmVzaXplKCk7CiAgICAgfSwKLSAgICAK
KwogICAgIHVwZGF0ZVBhdXNlT25FeGNlcHRpb25zU3RhdGU6IGZ1bmN0aW9uKHBhdXNlT25FeGNl
cHRpb25zU3RhdGUpCiAgICAgewogICAgICAgICBpZiAocGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9
PSBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLlBhdXNlT25FeGNlcHRpb25zU3RhdGUuRG9udFBh
dXNlT25FeGNlcHRpb25zKQpAQCAtOTcxLDcgKzk2Nyw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICBJbnNwZWN0b3JCYWNrZW5kLnN0ZXBPdXRPZkZ1
bmN0aW9uSW5EZWJ1Z2dlcigpOwogICAgIH0sCiAKLSAgICBfdG9nZ2xlQnJlYWtwb2ludHNDbGlj
a2VkOiBmdW5jdGlvbigpCisgICAgdG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkOiBmdW5jdGlvbigp
CiAgICAgewogICAgICAgICB0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uLnRvZ2dsZWQgPSAh
dGhpcy50b2dnbGVCcmVha3BvaW50c0J1dHRvbi50b2dnbGVkOwogICAgICAgICBpZiAodGhpcy50
b2dnbGVCcmVha3BvaW50c0J1dHRvbi50b2dnbGVkKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Tb3VyY2VWaWV3LmpzCmluZGV4IDFiZjgxOTQuLjRkMDNlY2QgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzCisrKyBiL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VWaWV3LmpzCkBAIC0xMjgsNiArMTI4LDggQEAgV2ViSW5z
cGVjdG9yLlNvdXJjZVZpZXcucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIHNvdXJj
ZUlEID0gdGhpcy5fc291cmNlSURGb3JMaW5lKGxpbmUpOwogICAgICAgICBXZWJJbnNwZWN0b3Iu
YnJlYWtwb2ludE1hbmFnZXIuc2V0QnJlYWtwb2ludChzb3VyY2VJRCwgdGhpcy5yZXNvdXJjZS51
cmwsIGxpbmUsIHRydWUsICIiKTsKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3IucGFuZWxzLnNj
cmlwdHMuYnJlYWtwb2ludHNBY3RpdmF0ZWQpCisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFu
ZWxzLnNjcmlwdHMudG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkKCk7CiAgICAgfSwKIAogICAgIF9y
ZW1vdmVCcmVha3BvaW50OiBmdW5jdGlvbihicmVha3BvaW50KQpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggYTIx
NjY2Yi4uMDc0NDNkNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMDctMDgg
IFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogaWYgYnJl
YWtwb2ludHMgd2VyZSBkZWFjdGl2YXRlZCwgYWRkIG5ldyBicmVha3BvaW50cyBhcyBkaXNhYmxl
ZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNDYx
CisKKyAgICAgICAgKiBzcmMvanMvRGVidWdnZXJTY3JpcHQuanM6CisgICAgICAgICgpOgorCiAy
MDEwLTA3LTA4ICBEYXZpZCBIb2xsb3dheSAgPGRob2xsb3dhQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vc3JjL2pzL0RlYnVnZ2VyU2NyaXB0LmpzIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZWJ1
Z2dlclNjcmlwdC5qcwppbmRleCA3MGMyZmJlLi43YzdmOWQ5IDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL2pzL0RlYnVnZ2VyU2NyaXB0LmpzCisrKyBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvanMvRGVidWdnZXJTY3JpcHQuanMKQEAgLTMyLDYgKzMyLDcgQEAKIAogdmFyIERlYnVnZ2Vy
U2NyaXB0ID0ge307CiBEZWJ1Z2dlclNjcmlwdC5fYnJlYWtwb2ludHMgPSB7fTsKK0RlYnVnZ2Vy
U2NyaXB0Ll9icmVha3BvaW50c0FjdGl2YXRlZCA9IHRydWU7CiAKIERlYnVnZ2VyU2NyaXB0LlBh
dXNlT25FeGNlcHRpb25zU3RhdGUgPSB7CiAgICAgRG9udFBhdXNlT25FeGNlcHRpb25zIDogMCwK
QEAgLTk0LDcgKzk1LDcgQEAgRGVidWdnZXJTY3JpcHQuc2V0QnJlYWtwb2ludCA9IGZ1bmN0aW9u
KGV4ZWNTdGF0ZSwgYXJncykKIHsKICAgICBhcmdzLmxpbmVOdW1iZXIgPSBEZWJ1Z2dlclNjcmlw
dC5fd2Via2l0VG9WOExpbmVOdW1iZXIoYXJncy5saW5lTnVtYmVyKTsKICAgICB2YXIgYnJlYWtJ
ZCA9IERlYnVnLnNldFNjcmlwdEJyZWFrUG9pbnRCeUlkKGFyZ3Muc2NyaXB0SWQsIGFyZ3MubGlu
ZU51bWJlciwgMCAvKiBjb2x1bW4gKi8sIGFyZ3MuY29uZGl0aW9uKTsKLSAgICBpZiAoIWFyZ3Mu
ZW5hYmxlZCkKKyAgICBpZiAoIWFyZ3MuZW5hYmxlZCB8fCAhRGVidWdnZXJTY3JpcHQuX2JyZWFr
cG9pbnRzQWN0aXZhdGVkKQogICAgICAgICBEZWJ1Zy5kaXNhYmxlU2NyaXB0QnJlYWtQb2ludChi
cmVha0lkKTsKIAogICAgIHZhciBhY3R1YWxMaW5lTnVtYmVyID0gYXJncy5saW5lTnVtYmVyOyAv
LyBUT0RPOiByZXBsYWNlIHdpdGggcmVhbCBzdHVmZiBhZnRlciB2OCByb2xsLgpAQCAtMjAzLDYg
KzIwNCw3IEBAIERlYnVnZ2VyU2NyaXB0LnNldEJyZWFrcG9pbnRzQWN0aXZhdGVkID0gZnVuY3Rp
b24oZXhlY1N0YXRlLCBhcmdzKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBEZWJ1Zy5kaXNh
YmxlU2NyaXB0QnJlYWtQb2ludChicmVha0lkKTsKICAgICB9CisgICAgRGVidWdnZXJTY3JpcHQu
X2JyZWFrcG9pbnRzQWN0aXZhdGVkID0gYXJncy5lbmFibGVkOwogfQogCiBEZWJ1Z2dlclNjcmlw
dC5fZnJhbWVNaXJyb3JUb0pTQ2FsbEZyYW1lID0gZnVuY3Rpb24oZnJhbWVNaXJyb3IsIGNhbGxl
ckZyYW1lKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60907</attachid>
            <date>2010-07-08 10:32:00 -0700</date>
            <delta_ts>2010-07-08 10:32:00 -0700</delta_ts>
            <desc>Test diff</desc>
            <filename>tmp.patch</filename>
            <type>text/plain</type>
            <size>2453</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1u
b3QtYWN0aXZhdGVkLW9uLXJlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRlZC1vbi1yZWxvYWQtZXhwZWN0ZWQu
dHh0CmluZGV4IGVjZWZiMWIuLjlhZmJiOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLWJyZWFrcG9pbnRzLW5v
dC1hY3RpdmF0ZWQtb24tcmVsb2FkLWV4cGVjdGVkLnR4dApAQCAtMyw0ICszLDUgQEAgVGVzdHMg
dGhhdCBicmVha3BvaW50cyBhcmUgbm90IGFjdGl2YXRlZCBvbiBwYWdlIHJlbG9hZC5CdWcgNDE0
NjEKIERlYnVnZ2VyIHdhcyBlbmFibGVkLgogU2NyaXB0cyB3ZXJlIHBhcnNlZC4KIEJyZWFrcG9p
bnRzIGRlYWN0aXZhdGVkLgorRGlzYWJsZWQgZGVidWdnZXIuCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1ub3QtYWN0aXZhdGVkLW9uLXJl
bG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLWJyZWFrcG9pbnRzLW5v
dC1hY3RpdmF0ZWQtb24tcmVsb2FkLmh0bWwKaW5kZXggZmM3Zjg4Ni4uNTg5N2ZiYiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLWJyZWFrcG9pbnRzLW5vdC1hY3Rp
dmF0ZWQtb24tcmVsb2FkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
LWJyZWFrcG9pbnRzLW5vdC1hY3RpdmF0ZWQtb24tcmVsb2FkLmh0bWwKQEAgLTEsNiArMSw3IEBA
CiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKIGZ1bmN0aW9u
IHRlc3RGdW5jdGlvbigpCkBAIC0xMCwxNiArMTEsNyBAQCBmdW5jdGlvbiB0ZXN0RnVuY3Rpb24o
KQogCiBmdW5jdGlvbiBkb2l0KCkKIHsKLSAgICBmdW5jdGlvbiBjYWxsYmFjayhyZXN1bHQpCi0g
ICAgewotICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgQXJyYXkpIHsKLSAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgcmVzdWx0Lmxlbmd0aDsgaSsrKQotICAgICAgICAgICAgICAg
IG91dHB1dChyZXN1bHRbaV0pOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG91dHB1dChy
ZXN1bHQpOwotICAgICAgICBub3RpZnlEb25lKCk7Ci0gICAgfQotICAgIGV2YWx1YXRlSW5XZWJJ
bnNwZWN0b3IoImZyb250ZW5kX3Rlc3RCcmVha3BvaW50c05vdEFjdGl2YXRlZE9uUmVsb2FkIiwg
Y2FsbGJhY2spOworICAgIGV2YWx1YXRlSW5XZWJJbnNwZWN0b3IoImZyb250ZW5kX3Rlc3RCcmVh
a3BvaW50c05vdEFjdGl2YXRlZE9uUmVsb2FkIiwgY29tcGxldGVUZXN0KTsKIH0KIAogZnVuY3Rp
b24gZnJvbnRlbmRfdGVzdEJyZWFrcG9pbnRzTm90QWN0aXZhdGVkT25SZWxvYWQodGVzdENvbnRy
b2xsZXIpCkBAIC01NiwyMiArNDgsMTEgQEAgZnVuY3Rpb24gZnJvbnRlbmRfdGVzdEJyZWFrcG9p
bnRzTm90QWN0aXZhdGVkT25SZWxvYWQodGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICAg
dGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKCJCcmVha3BvaW50cyBkZWFjdGl2YXRlZC4iKTsK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRz
LnB1c2goIkVycm9yOiBicmVha3BvaW50cyBhY3RpdmF0ZWQuIik7Ci0gICAgICAgICAgICB0ZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICBmcm9udGVuZF9jb21wbGV0ZURl
YnVnZ2VyVGVzdCh0ZXN0Q29udHJvbGxlcik7CiAgICAgICAgIH0KICAgICB9CiB9CiAKLWZ1bmN0
aW9uIGZyb250ZW5kX2Vuc3VyZURlYnVnZ2VyRW5hYmxlZChjYWxsYmFjaykKLXsKLSAgICBpZiAo
V2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLl9kZWJ1Z2dlckVuYWJsZWQpIHsKLSAgICAgICAg
Y2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGZyb250ZW5kX2FkZFNu
aWZmZXIoV2ViSW5zcGVjdG9yLCAiZGVidWdnZXJXYXNFbmFibGVkIiwgY2FsbGJhY2spOwotICAg
IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5fdG9nZ2xlRGVidWdnaW5nKGZhbHNlKTsKLX0K
LQogZnVuY3Rpb24gZnJvbnRlbmRfc2NyaXB0c0FyZVBhcnNlZChzY3JpcHRzKQogewogICAgIHZh
ciBzY3JpcHRTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2NyaXB0cy1maWxlcyIp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61055</attachid>
            <date>2010-07-09 10:20:39 -0700</date>
            <delta_ts>2010-07-27 02:41:47 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>no_toggle.patch</filename>
            <type>text/plain</type>
            <size>14521</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZjQxN2QyLi4xNDIwMGVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDct
MDggIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZG8g
bm90IGFjdGl2YXRlIGFsbCBicmVha3BvaW50cyBvbiBwYWdlIHJlbG9hZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE0NjEKKworICAgICAgICAqIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanM6CisgICAgICAgIChmcm9udGVuZF9z
Y3JpcHRzQXJlUGFyc2VkKToKKyAgICAgICAgKGZyb250ZW5kX3dhaXRVbnRpbFNjcmlwdHNBcmVQ
YXJzZWQud2FpdEZvckFsbFNjcmlwdHMpOgorICAgICAgICAoZnJvbnRlbmRfd2FpdFVudGlsU2Ny
aXB0c0FyZVBhcnNlZCk6CisgICAgICAgIChmcm9udGVuZF9lbnN1cmVTb3VyY2VGcmFtZUxvYWRl
ZCk6CisgICAgICAgIChmcm9udGVuZF9zaG93U2NyaXB0U291cmNlKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRlZC1vbi1yZWxvYWQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXItYnJlYWtwb2ludHMt
bm90LWFjdGl2YXRlZC1vbi1yZWxvYWQuaHRtbDogQWRkZWQuCisKIDIwMTAtMDctMDggIENzYWJh
IE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGZp
eC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
LXRlc3QuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0
LmpzCmluZGV4IDY1MGQyYjkuLjI3NDM5MTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcwpAQCAtMzMsMyArMzMsNjkgQEAgZnVuY3Rp
b24gZnJvbnRlbmRfY29tcGxldGVEZWJ1Z2dlclRlc3QodGVzdENvbnRyb2xsZXIpCiAgICAgICAg
IHRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKICAgICB9KTsKIH0KKworZnVuY3Rpb24gZnJv
bnRlbmRfc2NyaXB0c0FyZVBhcnNlZChzY3JpcHRzKQoreworICAgIHZhciBzY3JpcHRTZWxlY3Qg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2NyaXB0cy1maWxlcyIpOworICAgIHZhciBvcHRp
b25zID0gc2NyaXB0U2VsZWN0Lm9wdGlvbnM7CisKKyAgICAvLyBDaGVjayB0aGF0IGFsbCB0aGUg
ZXhwZWN0ZWQgc2NyaXB0cyBhcmUgcHJlc2VudC4KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNj
cmlwdHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIGZvdW5kID0gZmFsc2U7CisgICAgICAg
IGZvciAodmFyIGogPSAwOyBqIDwgb3B0aW9ucy5sZW5ndGg7IGorKykgeworICAgICAgICAgICAg
aWYgKG9wdGlvbnNbal0udGV4dC5zZWFyY2goc2NyaXB0c1tpXSkgIT09IC0xKSB7CisgICAgICAg
ICAgICAgICAgZm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghZm91bmQpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfTsKKworZnVuY3Rpb24gZnJvbnRlbmRf
d2FpdFVudGlsU2NyaXB0c0FyZVBhcnNlZChzY3JpcHRzLCBjYWxsYmFjaykKK3sKKyAgICBmdW5j
dGlvbiB3YWl0Rm9yQWxsU2NyaXB0cygpCisgICAgeworICAgICAgICBpZiAoZnJvbnRlbmRfc2Ny
aXB0c0FyZVBhcnNlZChzY3JpcHRzKSkKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGZyb250ZW5kX2FkZFNuaWZmZXIoV2ViSW5zcGVjdG9yLCAicGFy
c2VkU2NyaXB0U291cmNlIiwgd2FpdEZvckFsbFNjcmlwdHMpOworICAgIH0KKyAgICB3YWl0Rm9y
QWxsU2NyaXB0cygpOworfTsKKworZnVuY3Rpb24gZnJvbnRlbmRfZW5zdXJlU291cmNlRnJhbWVM
b2FkZWQoc291cmNlRnJhbWUsIGNhbGxiYWNrKQoreworICAgIGlmICghc291cmNlRnJhbWUuX2xv
YWRlZCkKKyAgICAgICAgZnJvbnRlbmRfYWRkU25pZmZlcihzb3VyY2VGcmFtZSwgInNldENvbnRl
bnQiLCBjYWxsYmFjayk7CisgICAgZWxzZQorICAgICAgICBjYWxsYmFjaygpOworfQorCitmdW5j
dGlvbiBmcm9udGVuZF9zaG93U2NyaXB0U291cmNlKHNjcmlwdE5hbWUsIGNhbGxiYWNrKQorewor
ICAgIHZhciBzY3JpcHRTZWxlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2NyaXB0cy1m
aWxlcyIpOworICAgIHZhciBvcHRpb25zID0gc2NyaXB0U2VsZWN0Lm9wdGlvbnM7CisgICAgdmFy
IHNjcmlwdHNQYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0czsKKworICAgIC8vIFNl
bGVjdCBwYWdlJ3Mgc2NyaXB0IGlmIGl0J3Mgbm90IGN1cnJlbnQgb3B0aW9uLgorICAgIHZhciBz
Y3JpcHRSZXNvdXJjZTsKKyAgICBpZiAob3B0aW9uc1tzY3JpcHRTZWxlY3Quc2VsZWN0ZWRJbmRl
eF0udGV4dCA9PT0gc2NyaXB0TmFtZSkKKyAgICAgICAgc2NyaXB0UmVzb3VyY2UgPSBvcHRpb25z
W3NjcmlwdFNlbGVjdC5zZWxlY3RlZEluZGV4XS5yZXByZXNlbnRlZE9iamVjdDsKKyAgICBlbHNl
IHsKKyAgICAgICAgdmFyIHBhZ2VTY3JpcHRJbmRleCA9IC0xOworICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IG9wdGlvbnMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChvcHRpb25z
W2ldLnRleHQgPT09IHNjcmlwdE5hbWUpIHsKKyAgICAgICAgICAgICAgICBwYWdlU2NyaXB0SW5k
ZXggPSBpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgICAgIHNjcmlwdFJlc291cmNlID0gb3B0aW9uc1twYWdlU2NyaXB0SW5kZXhdLnJlcHJl
c2VudGVkT2JqZWN0OworICAgICAgICBzY3JpcHRzUGFuZWwuX3Nob3dTY3JpcHRPclJlc291cmNl
KHNjcmlwdFJlc291cmNlKTsKKyAgICB9CisKKyAgICB2YXIgdmlldyA9IHNjcmlwdHNQYW5lbC52
aXNpYmxlVmlldzsKKyAgICBmcm9udGVuZF9lbnN1cmVTb3VyY2VGcmFtZUxvYWRlZCh2aWV3LnNv
dXJjZUZyYW1lLCBjYWxsYmFjay5iaW5kKG51bGwsIHZpZXcpKTsKK307CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRlZC1v
bi1yZWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLWJy
ZWFrcG9pbnRzLW5vdC1hY3RpdmF0ZWQtb24tcmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YWZiYjkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLWJyZWFrcG9pbnRzLW5vdC1hY3RpdmF0ZWQtb24t
cmVsb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3RzIHRoYXQgYnJlYWtwb2lu
dHMgYXJlIG5vdCBhY3RpdmF0ZWQgb24gcGFnZSByZWxvYWQuQnVnIDQxNDYxCisKK0RlYnVnZ2Vy
IHdhcyBlbmFibGVkLgorU2NyaXB0cyB3ZXJlIHBhcnNlZC4KK0JyZWFrcG9pbnRzIGRlYWN0aXZh
dGVkLgorRGlzYWJsZWQgZGVidWdnZXIuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLWJyZWFrcG9pbnRzLW5vdC1hY3RpdmF0ZWQt
b24tcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzE5M2M3
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci1icmVh
a3BvaW50cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworZnVuY3Rpb24gdGVz
dEZ1bmN0aW9uKCkKK3sKKyAgICByZXR1cm4gMDsKK30KKworZnVuY3Rpb24gZG9pdCgpCit7Cisg
ICAgZXZhbHVhdGVJbldlYkluc3BlY3RvcigiZnJvbnRlbmRfdGVzdEJyZWFrcG9pbnRzTm90QWN0
aXZhdGVkT25SZWxvYWQiLCBjb21wbGV0ZVRlc3QpOworfQorCitmdW5jdGlvbiBmcm9udGVuZF90
ZXN0QnJlYWtwb2ludHNOb3RBY3RpdmF0ZWRPblJlbG9hZCh0ZXN0Q29udHJvbGxlcikKK3sKKyAg
ICB2YXIgdGVzdE5hbWUgPSBXZWJJbnNwZWN0b3IubWFpblJlc291cmNlLnVybDsKKyAgICB0ZXN0
TmFtZSA9IHRlc3ROYW1lLnN1YnN0cmluZyh0ZXN0TmFtZS5sYXN0SW5kZXhPZignLycpICsgMSk7
CisKKyAgICB0ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICBXZWJJbnNwZWN0
b3Iuc2hvd1NjcmlwdHNQYW5lbCgpOworICAgIGZyb250ZW5kX2Vuc3VyZURlYnVnZ2VyRW5hYmxl
ZChkZWJ1Z2dlcldhc0VuYWJsZWRDYWxsYmFjayk7CisKKyAgICBmdW5jdGlvbiBkZWJ1Z2dlcldh
c0VuYWJsZWRDYWxsYmFjaygpCisgICAgeworICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRz
LnB1c2goIkRlYnVnZ2VyIHdhcyBlbmFibGVkLiIpOworICAgICAgICBmcm9udGVuZF93YWl0VW50
aWxTY3JpcHRzQXJlUGFyc2VkKFt0ZXN0TmFtZV0sIHdhaXRVbnRpbFNjcmlwdHNBcmVQYXJzZWRD
YWxsYmFjayk7CisgICAgfQorCisgICAgZnVuY3Rpb24gd2FpdFVudGlsU2NyaXB0c0FyZVBhcnNl
ZENhbGxiYWNrKCkKKyAgICB7CisgICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaCgi
U2NyaXB0cyB3ZXJlIHBhcnNlZC4iKTsKKyAgICAgICAgZnJvbnRlbmRfc2hvd1NjcmlwdFNvdXJj
ZSh0ZXN0TmFtZSwgc2hvd1NjcmlwdFNvdXJjZUNhbGxiYWNrKTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBzaG93U2NyaXB0U291cmNlQ2FsbGJhY2sodmlldykKKyAgICB7CisgICAgICAgIGlmICgh
V2ViSW5zcGVjdG9yLmZsYWcpIHsKKyAgICAgICAgICAgIHZpZXcuX2FkZEJyZWFrcG9pbnQoOCk7
CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHMudG9nZ2xlQnJlYWtwb2lu
dHNCdXR0b24uZWxlbWVudC5jbGljaygpOworICAgICAgICAgICAgSW5zcGVjdG9yQmFja2VuZC5y
ZWxvYWRQYWdlKCk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZmxhZyA9IHRydWU7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0
cy5icmVha3BvaW50c0FjdGl2YXRlZCkKKyAgICAgICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5y
ZXN1bHRzLnB1c2goIkJyZWFrcG9pbnRzIGRlYWN0aXZhdGVkLiIpOworICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLnJlc3VsdHMucHVzaCgiRXJyb3I6IGJy
ZWFrcG9pbnRzIGFjdGl2YXRlZC4iKTsKKyAgICAgICAgICAgIGZyb250ZW5kX2NvbXBsZXRlRGVi
dWdnZXJUZXN0KHRlc3RDb250cm9sbGVyKTsKKyAgICAgICAgfQorICAgIH0KK30KKworPC9zY3Jp
cHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0ib25sb2FkKCkiPgorPHA+CitUZXN0cyB0aGF0
IGJyZWFrcG9pbnRzIGFyZSBub3QgYWN0aXZhdGVkIG9uIHBhZ2UgcmVsb2FkLjxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTQ2MSI+QnVnIDQxNDYxPC9h
PgorPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYTYxNzRkLi45OTVmZDAyIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDEwLTA3LTA5ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGRvIG5vdCBhY3RpdmF0ZSBhbGwgYnJlYWtwb2ludHMgb24gcGFnZSByZWxv
YWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNDYx
CisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyLWJyZWFrcG9pbnRzLW5vdC1hY3Rp
dmF0ZWQtb24tcmVsb2FkLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRWaWV3LnByb3RvdHlwZS5f
YWRkQnJlYWtwb2ludCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9icmVha3BvaW50QWRkZWQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUudG9nZ2xlQnJlYWtwb2lu
dHNDbGlja2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanM6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlVmlldy5wcm90b3R5cGUuX2FkZEJyZWFrcG9p
bnQpOgorCiAyMDEwLTA3LTA4ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0Vmlldy5qcwppbmRleCBjNTc2NTEwLi41OTdmZDI4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qcworKysgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0Vmlldy5qcwpAQCAtOTcsNiArOTcsOCBAQCBXZWJJbnNwZWN0
b3IuU2NyaXB0Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgX2FkZEJyZWFrcG9pbnQ6IGZ1bmN0aW9u
KGxpbmUpCiAgICAgewogICAgICAgICBXZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuc2V0
QnJlYWtwb2ludCh0aGlzLnNjcmlwdC5zb3VyY2VJRCwgdGhpcy5zY3JpcHQuc291cmNlVVJMLCBs
aW5lLCB0cnVlLCAiIik7CisgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRz
LmJyZWFrcG9pbnRzQWN0aXZhdGVkKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5z
Y3JpcHRzLnRvZ2dsZUJyZWFrcG9pbnRzQ2xpY2tlZCgpOwogICAgIH0sCiAKICAgICBfZWRpdExp
bmVDb21wbGV0ZTogZnVuY3Rpb24obmV3Qm9keSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDNjNGEwYmUuLjhmYmM5MTMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtMTA0LDEwICsxMDQsMTAgQEAg
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnNpZGViYXJC
dXR0b25zRWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLnN0ZXBPdXRCdXR0b24pOwogCiAgICAgdGhp
cy50b2dnbGVCcmVha3BvaW50c0J1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0
dG9uKCIiLCAidG9nZ2xlLWJyZWFrcG9pbnRzIik7Ci0gICAgdGhpcy50b2dnbGVCcmVha3BvaW50
c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX3RvZ2dsZUJyZWFrcG9pbnRz
Q2xpY2tlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgdGhpcy50b2dnbGVCcmVha3BvaW50c0J1
dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMudG9nZ2xlQnJlYWtwb2ludHNDbGlj
a2VkLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICB0aGlzLnNpZGViYXJCdXR0b25zRWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQnV0dG9uLmVsZW1lbnQpOwogICAgIC8v
IEJyZWFrcG9pbnRzIHNob3VsZCBiZSBhY3RpdmF0ZWQgYnkgZGVmYXVsdCwgc28gZW11bGF0ZSBh
IGNsaWNrIHRvIHRvZ2dsZSBvbi4KLSAgICB0aGlzLl90b2dnbGVCcmVha3BvaW50c0NsaWNrZWQo
KTsKKyAgICB0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQ2xpY2tlZCgpOwogCiAgICAgdGhpcy5kZWJ1
Z2dlclN0YXR1c0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICB0
aGlzLmRlYnVnZ2VyU3RhdHVzRWxlbWVudC5pZCA9ICJzY3JpcHRzLWRlYnVnZ2VyLXN0YXR1cyI7
CkBAIC0xNjIsNyArMTYyLDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9u
KCkKICAgICB0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uID0gbmV3IFdlYkluc3BlY3Rvci5T
dGF0dXNCYXJCdXR0b24oIiIsICJzY3JpcHRzLXBhdXNlLW9uLWV4Y2VwdGlvbnMtc3RhdHVzLWJh
ci1pdGVtIiwgMyk7CiAgICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbi5hZGRFdmVudExp
c3RlbmVyKCJjbGljayIsIHRoaXMuX3RvZ2dsZVBhdXNlT25FeGNlcHRpb25zLmJpbmQodGhpcyks
IGZhbHNlKTsKICAgICB0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uLnN0YXRlID0gV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRlLkRvbnRQYXVzZU9uRXhj
ZXB0aW9uczsKLSAgICB0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uLnRpdGxlID0gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJEb24ndCBwYXVzZSBvbiBleGNlcHRpb25zLlxuQ2xpY2sgdG8gUGF1
c2Ugb24gYWxsIGV4Y2VwdGlvbnMuIik7IAorICAgIHRoaXMuX3BhdXNlT25FeGNlcHRpb25CdXR0
b24udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvbid0IHBhdXNlIG9uIGV4Y2VwdGlv
bnMuXG5DbGljayB0byBQYXVzZSBvbiBhbGwgZXhjZXB0aW9ucy4iKTsKIAogICAgIHRoaXMuX3Jl
Z2lzdGVyU2hvcnRjdXRzKCk7CiAKQEAgLTIxNyw3ICsyMTcsNyBAQCBXZWJJbnNwZWN0b3IuU2Ny
aXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9hdHRhY2hE
ZWJ1Z2dlcldoZW5TaG93bjsKICAgICAgICAgfQogICAgIH0sCi0gICAgCisKICAgICBoaWRlOiBm
dW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldykKQEAgLTI3Niw3
ICsyNzYsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAg
ICAgICAgICAgLy8gUmVtb3ZlIHNjcmlwdCBmcm9tIHRoZSBmaWxlcyBsaXN0LgogICAgICAgICAg
ICAgc2NyaXB0LmZpbGVzU2VsZWN0T3B0aW9uLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoc2Ny
aXB0LmZpbGVzU2VsZWN0T3B0aW9uKTsKLSAgICAgICAgICAgIAorCiAgICAgICAgICAgICAvLyBN
b3ZlIGJyZWFrcG9pbnRzIHRvIHRoZSByZXNvdXJjZSdzIGZyYW1lLgogICAgICAgICAgICAgaWYg
KHNjcmlwdC5fc2NyaXB0VmlldykgewogICAgICAgICAgICAgICAgIHZhciBzb3VyY2VGcmFtZSA9
IHNjcmlwdC5fc2NyaXB0Vmlldy5zb3VyY2VGcmFtZTsKQEAgLTI5NCw5ICsyOTQsNiBAQCBXZWJJ
bnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBi
cmVha3BvaW50ID0gZXZlbnQuZGF0YTsKIAotICAgICAgICBpZiAoIXRoaXMuYnJlYWtwb2ludHNB
Y3RpdmF0ZWQpCi0gICAgICAgICAgICB0aGlzLl90b2dnbGVCcmVha3BvaW50c0NsaWNrZWQoKTsK
LQogICAgICAgICB2YXIgc291cmNlRnJhbWU7CiAgICAgICAgIGlmIChicmVha3BvaW50LnVybCkg
ewogICAgICAgICAgICAgdmFyIHJlc291cmNlID0gV2ViSW5zcGVjdG9yLnJlc291cmNlVVJMTWFw
W2JyZWFrcG9pbnQudXJsXTsKQEAgLTUzOCw3ICs1MzUsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fc2hvd1NjcmlwdE9yUmVzb3VyY2Uo
c2NyaXB0T3JSZXNvdXJjZSwge2xpbmU6IGxpbmUsIHNob3VsZEhpZ2hsaWdodExpbmU6IHRydWV9
KTsKICAgICB9LAogCi0gICAgX3NjcmlwdE9yUmVzb3VyY2VGb3JVUkxBbmRMaW5lOiBmdW5jdGlv
bih1cmwsIGxpbmUpIAorICAgIF9zY3JpcHRPclJlc291cmNlRm9yVVJMQW5kTGluZTogZnVuY3Rp
b24odXJsLCBsaW5lKQogICAgIHsKICAgICAgICAgdmFyIHNjcmlwdFdpdGhNYXRjaGluZ1VybCA9
IG51bGw7CiAgICAgICAgIGZvciAodmFyIHNvdXJjZUlEIGluIHRoaXMuX3NvdXJjZUlETWFwKSB7
CkBAIC02MTAsOCArNjA3LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgX3Nob3dTY3JpcHRPclJlc291cmNlOiBmdW5jdGlvbihzY3JpcHRPclJlc291cmNl
LCBvcHRpb25zKQogICAgIHsKICAgICAgICAgLy8gb3B0aW9ucyA9IHtsaW5lOiwgc2hvdWxkSGln
aGxpZ2h0TGluZTosIGZyb21CYWNrRm9yd2FyZEFjdGlvbjosIGluaXRpYWxMb2FkOn0KLSAgICAg
ICAgaWYgKCFvcHRpb25zKSAKLSAgICAgICAgICAgIG9wdGlvbnMgPSB7fTsKKyAgICAgICAgb3B0
aW9ucyA9IG9wdGlvbnMgfHwge307CiAKICAgICAgICAgaWYgKCFzY3JpcHRPclJlc291cmNlKQog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjkzLDcgKzY4OSw3IEBAIFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgIHRoaXMuX3Jlc291cmNlRm9yVVJMSW5GaWxlc1NlbGVjdFtzY3JpcHQucmVzb3VyY2UudXJs
XSA9IHNjcmlwdC5yZXNvdXJjZTsKICAgICAgICAgfQotIAorCiAgICAgICAgIHZhciBkaXNwbGF5
TmFtZSA9IHNjcmlwdC5zb3VyY2VVUkwgPyBXZWJJbnNwZWN0b3IuZGlzcGxheU5hbWVGb3JVUkwo
c2NyaXB0LnNvdXJjZVVSTCkgOiBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIihwcm9ncmFtKSIpOwog
CiAgICAgICAgIHZhciBzZWxlY3QgPSB0aGlzLmZpbGVzU2VsZWN0RWxlbWVudDsKQEAgLTgxMiw3
ICs4MDgsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAg
ICAgICB0aGlzLnJlc2l6ZSgpOwogICAgIH0sCi0gICAgCisKICAgICB1cGRhdGVQYXVzZU9uRXhj
ZXB0aW9uc1N0YXRlOiBmdW5jdGlvbihwYXVzZU9uRXhjZXB0aW9uc1N0YXRlKQogICAgIHsKICAg
ICAgICAgaWYgKHBhdXNlT25FeGNlcHRpb25zU3RhdGUgPT0gV2ViSW5zcGVjdG9yLlNjcmlwdHNQ
YW5lbC5QYXVzZU9uRXhjZXB0aW9uc1N0YXRlLkRvbnRQYXVzZU9uRXhjZXB0aW9ucykKQEAgLTk3
MSw3ICs5NjcsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgSW5zcGVjdG9yQmFja2VuZC5zdGVwT3V0T2ZGdW5jdGlvbkluRGVidWdnZXIoKTsKICAg
ICB9LAogCi0gICAgX3RvZ2dsZUJyZWFrcG9pbnRzQ2xpY2tlZDogZnVuY3Rpb24oKQorICAgIHRv
Z2dsZUJyZWFrcG9pbnRzQ2xpY2tlZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy50
b2dnbGVCcmVha3BvaW50c0J1dHRvbi50b2dnbGVkID0gIXRoaXMudG9nZ2xlQnJlYWtwb2ludHNC
dXR0b24udG9nZ2xlZDsKICAgICAgICAgaWYgKHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24u
dG9nZ2xlZCkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJj
ZVZpZXcuanMgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcwppbmRl
eCAxYmY4MTk0Li40ZDAzZWNkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlVmlldy5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNl
Vmlldy5qcwpAQCAtMTI4LDYgKzEyOCw4IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3LnByb3Rv
dHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBzb3VyY2VJRCA9IHRoaXMuX3NvdXJjZUlERm9y
TGluZShsaW5lKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLmJyZWFrcG9pbnRNYW5hZ2VyLnNldEJy
ZWFrcG9pbnQoc291cmNlSUQsIHRoaXMucmVzb3VyY2UudXJsLCBsaW5lLCB0cnVlLCAiIik7Cisg
ICAgICAgIGlmICghV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLmJyZWFrcG9pbnRzQWN0aXZh
dGVkKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnRvZ2dsZUJyZWFr
cG9pbnRzQ2xpY2tlZCgpOwogICAgIH0sCiAKICAgICBfcmVtb3ZlQnJlYWtwb2ludDogZnVuY3Rp
b24oYnJlYWtwb2ludCkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGU1MGRjOGQuLjNmNzQxNjUgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEwLTA3LTA5ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rp
dmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGlmIGJyZWFrcG9pbnRzIHdlcmUgZGVhY3RpdmF0
ZWQsIGFkZCBuZXcgYnJlYWtwb2ludHMgYXMgZGlzYWJsZWQuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTQ2MQorCisgICAgICAgICogc3JjL2pzL0Rl
YnVnZ2VyU2NyaXB0LmpzOgorICAgICAgICAoKToKKwogMjAxMC0wNy0wOCAgVml0YWx5IFJlcGVz
aGtvICA8dml0YWx5ckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwg
RmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVidWdnZXJTY3Jp
cHQuanMgYi9XZWJLaXQvY2hyb21pdW0vc3JjL2pzL0RlYnVnZ2VyU2NyaXB0LmpzCmluZGV4IDcw
YzJmYmUuLjdjN2Y5ZDkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVidWdn
ZXJTY3JpcHQuanMKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZWJ1Z2dlclNjcmlwdC5q
cwpAQCAtMzIsNiArMzIsNyBAQAogCiB2YXIgRGVidWdnZXJTY3JpcHQgPSB7fTsKIERlYnVnZ2Vy
U2NyaXB0Ll9icmVha3BvaW50cyA9IHt9OworRGVidWdnZXJTY3JpcHQuX2JyZWFrcG9pbnRzQWN0
aXZhdGVkID0gdHJ1ZTsKIAogRGVidWdnZXJTY3JpcHQuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9
IHsKICAgICBEb250UGF1c2VPbkV4Y2VwdGlvbnMgOiAwLApAQCAtOTQsNyArOTUsNyBAQCBEZWJ1
Z2dlclNjcmlwdC5zZXRCcmVha3BvaW50ID0gZnVuY3Rpb24oZXhlY1N0YXRlLCBhcmdzKQogewog
ICAgIGFyZ3MubGluZU51bWJlciA9IERlYnVnZ2VyU2NyaXB0Ll93ZWJraXRUb1Y4TGluZU51bWJl
cihhcmdzLmxpbmVOdW1iZXIpOwogICAgIHZhciBicmVha0lkID0gRGVidWcuc2V0U2NyaXB0QnJl
YWtQb2ludEJ5SWQoYXJncy5zY3JpcHRJZCwgYXJncy5saW5lTnVtYmVyLCAwIC8qIGNvbHVtbiAq
LywgYXJncy5jb25kaXRpb24pOwotICAgIGlmICghYXJncy5lbmFibGVkKQorICAgIGlmICghYXJn
cy5lbmFibGVkIHx8ICFEZWJ1Z2dlclNjcmlwdC5fYnJlYWtwb2ludHNBY3RpdmF0ZWQpCiAgICAg
ICAgIERlYnVnLmRpc2FibGVTY3JpcHRCcmVha1BvaW50KGJyZWFrSWQpOwogCiAgICAgdmFyIGFj
dHVhbExpbmVOdW1iZXIgPSBhcmdzLmxpbmVOdW1iZXI7IC8vIFRPRE86IHJlcGxhY2Ugd2l0aCBy
ZWFsIHN0dWZmIGFmdGVyIHY4IHJvbGwuCkBAIC0yMDMsNiArMjA0LDcgQEAgRGVidWdnZXJTY3Jp
cHQuc2V0QnJlYWtwb2ludHNBY3RpdmF0ZWQgPSBmdW5jdGlvbihleGVjU3RhdGUsIGFyZ3MpCiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIERlYnVnLmRpc2FibGVTY3JpcHRCcmVha1BvaW50KGJy
ZWFrSWQpOwogICAgIH0KKyAgICBEZWJ1Z2dlclNjcmlwdC5fYnJlYWtwb2ludHNBY3RpdmF0ZWQg
PSBhcmdzLmVuYWJsZWQ7CiB9CiAKIERlYnVnZ2VyU2NyaXB0Ll9mcmFtZU1pcnJvclRvSlNDYWxs
RnJhbWUgPSBmdW5jdGlvbihmcmFtZU1pcnJvciwgY2FsbGVyRnJhbWUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62664</attachid>
            <date>2010-07-27 02:41:47 -0700</date>
            <delta_ts>2010-07-27 09:12:44 -0700</delta_ts>
            <desc>Rebase and add test to gtk skip list.</desc>
            <filename>no_toggle.patch</filename>
            <type>text/plain</type>
            <size>15158</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYTEzYTRhLi40NGI1MmE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDct
MjcgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZG8g
bm90IGFjdGl2YXRlIGFsbCBicmVha3BvaW50cyBvbiBwYWdlIHJlbG9hZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE0NjEKKworICAgICAgICAqIGh0
dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanM6CisgICAgICAgIChmcm9udGVuZF9z
Y3JpcHRzQXJlUGFyc2VkKToKKyAgICAgICAgKGZyb250ZW5kX3dhaXRVbnRpbFNjcmlwdHNBcmVQ
YXJzZWQud2FpdEZvckFsbFNjcmlwdHMpOgorICAgICAgICAoZnJvbnRlbmRfd2FpdFVudGlsU2Ny
aXB0c0FyZVBhcnNlZCk6CisgICAgICAgIChmcm9udGVuZF9lbnN1cmVTb3VyY2VGcmFtZUxvYWRl
ZCk6CisgICAgICAgIChmcm9udGVuZF9zaG93U2NyaXB0U291cmNlKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRlZC1vbi1yZWxvYWQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXItYnJlYWtwb2ludHMt
bm90LWFjdGl2YXRlZC1vbi1yZWxvYWQuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1NraXBwZWQ6IHNraXAgdGhlIHRlc3Qgb24gR1RLIGR1ZSB0byBKU0MgZGVidWdnZXIgaXNz
dWUKKwogMjAxMC0wNy0yNiAgVG9yIEFybmUgVmVzdGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tp
YS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gSGF1c21hbm4uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0LmpzIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItdGVzdC5qcwppbmRleCA2NTBk
MmI5Li4yNzQzOTE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci10ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyLXRlc3QuanMKQEAgLTMzLDMgKzMzLDY5IEBAIGZ1bmN0aW9uIGZyb250ZW5kX2Nv
bXBsZXRlRGVidWdnZXJUZXN0KHRlc3RDb250cm9sbGVyKQogICAgICAgICB0ZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CiAgICAgfSk7CiB9CisKK2Z1bmN0aW9uIGZyb250ZW5kX3NjcmlwdHNB
cmVQYXJzZWQoc2NyaXB0cykKK3sKKyAgICB2YXIgc2NyaXB0U2VsZWN0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInNjcmlwdHMtZmlsZXMiKTsKKyAgICB2YXIgb3B0aW9ucyA9IHNjcmlwdFNl
bGVjdC5vcHRpb25zOworCisgICAgLy8gQ2hlY2sgdGhhdCBhbGwgdGhlIGV4cGVjdGVkIHNjcmlw
dHMgYXJlIHByZXNlbnQuCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY3JpcHRzLmxlbmd0aDsg
aSsrKSB7CisgICAgICAgIHZhciBmb3VuZCA9IGZhbHNlOworICAgICAgICBmb3IgKHZhciBqID0g
MDsgaiA8IG9wdGlvbnMubGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgIGlmIChvcHRpb25zW2pd
LnRleHQuc2VhcmNoKHNjcmlwdHNbaV0pICE9PSAtMSkgeworICAgICAgICAgICAgICAgIGZvdW5k
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICBpZiAoIWZvdW5kKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KyAgICByZXR1cm4gdHJ1ZTsKK307CisKK2Z1bmN0aW9uIGZyb250ZW5kX3dhaXRVbnRpbFNjcmlw
dHNBcmVQYXJzZWQoc2NyaXB0cywgY2FsbGJhY2spCit7CisgICAgZnVuY3Rpb24gd2FpdEZvckFs
bFNjcmlwdHMoKQorICAgIHsKKyAgICAgICAgaWYgKGZyb250ZW5kX3NjcmlwdHNBcmVQYXJzZWQo
c2NyaXB0cykpCisgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBmcm9udGVuZF9hZGRTbmlmZmVyKFdlYkluc3BlY3RvciwgInBhcnNlZFNjcmlwdFNvdXJj
ZSIsIHdhaXRGb3JBbGxTY3JpcHRzKTsKKyAgICB9CisgICAgd2FpdEZvckFsbFNjcmlwdHMoKTsK
K307CisKK2Z1bmN0aW9uIGZyb250ZW5kX2Vuc3VyZVNvdXJjZUZyYW1lTG9hZGVkKHNvdXJjZUZy
YW1lLCBjYWxsYmFjaykKK3sKKyAgICBpZiAoIXNvdXJjZUZyYW1lLl9sb2FkZWQpCisgICAgICAg
IGZyb250ZW5kX2FkZFNuaWZmZXIoc291cmNlRnJhbWUsICJzZXRDb250ZW50IiwgY2FsbGJhY2sp
OworICAgIGVsc2UKKyAgICAgICAgY2FsbGJhY2soKTsKK30KKworZnVuY3Rpb24gZnJvbnRlbmRf
c2hvd1NjcmlwdFNvdXJjZShzY3JpcHROYW1lLCBjYWxsYmFjaykKK3sKKyAgICB2YXIgc2NyaXB0
U2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNjcmlwdHMtZmlsZXMiKTsKKyAgICB2
YXIgb3B0aW9ucyA9IHNjcmlwdFNlbGVjdC5vcHRpb25zOworICAgIHZhciBzY3JpcHRzUGFuZWwg
PSBXZWJJbnNwZWN0b3IucGFuZWxzLnNjcmlwdHM7CisKKyAgICAvLyBTZWxlY3QgcGFnZSdzIHNj
cmlwdCBpZiBpdCdzIG5vdCBjdXJyZW50IG9wdGlvbi4KKyAgICB2YXIgc2NyaXB0UmVzb3VyY2U7
CisgICAgaWYgKG9wdGlvbnNbc2NyaXB0U2VsZWN0LnNlbGVjdGVkSW5kZXhdLnRleHQgPT09IHNj
cmlwdE5hbWUpCisgICAgICAgIHNjcmlwdFJlc291cmNlID0gb3B0aW9uc1tzY3JpcHRTZWxlY3Qu
c2VsZWN0ZWRJbmRleF0ucmVwcmVzZW50ZWRPYmplY3Q7CisgICAgZWxzZSB7CisgICAgICAgIHZh
ciBwYWdlU2NyaXB0SW5kZXggPSAtMTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRp
b25zLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBpZiAob3B0aW9uc1tpXS50ZXh0ID09PSBz
Y3JpcHROYW1lKSB7CisgICAgICAgICAgICAgICAgcGFnZVNjcmlwdEluZGV4ID0gaTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBzY3Jp
cHRSZXNvdXJjZSA9IG9wdGlvbnNbcGFnZVNjcmlwdEluZGV4XS5yZXByZXNlbnRlZE9iamVjdDsK
KyAgICAgICAgc2NyaXB0c1BhbmVsLl9zaG93U2NyaXB0T3JSZXNvdXJjZShzY3JpcHRSZXNvdXJj
ZSk7CisgICAgfQorCisgICAgdmFyIHZpZXcgPSBzY3JpcHRzUGFuZWwudmlzaWJsZVZpZXc7Cisg
ICAgZnJvbnRlbmRfZW5zdXJlU291cmNlRnJhbWVMb2FkZWQodmlldy5zb3VyY2VGcmFtZSwgY2Fs
bGJhY2suYmluZChudWxsLCB2aWV3KSk7Cit9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyLWJyZWFrcG9pbnRzLW5vdC1hY3RpdmF0ZWQtb24tcmVsb2FkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1ub3Qt
YWN0aXZhdGVkLW9uLXJlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOWFmYmI5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0cyB0aGF0IGJyZWFrcG9pbnRzIGFyZSBub3QgYWN0
aXZhdGVkIG9uIHBhZ2UgcmVsb2FkLkJ1ZyA0MTQ2MQorCitEZWJ1Z2dlciB3YXMgZW5hYmxlZC4K
K1NjcmlwdHMgd2VyZSBwYXJzZWQuCitCcmVha3BvaW50cyBkZWFjdGl2YXRlZC4KK0Rpc2FibGVk
IGRlYnVnZ2VyLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIt
YnJlYWtwb2ludHMtbm90LWFjdGl2YXRlZC1vbi1yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci1icmVha3BvaW50cy1ub3QtYWN0aXZhdGVkLW9uLXJlbG9hZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4NzE4ZDgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXItYnJlYWtwb2ludHMtbm90LWFj
dGl2YXRlZC1vbi1yZWxvYWQuaHRtbApAQCAtMCwwICsxLDY3IEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3RGdW5jdGlvbigpCit7
CisgICAgcmV0dXJuIDA7Cit9CisKK2Z1bmN0aW9uIGRvaXQoKQoreworICAgIGV2YWx1YXRlSW5X
ZWJJbnNwZWN0b3IoImZyb250ZW5kX3Rlc3RCcmVha3BvaW50c05vdEFjdGl2YXRlZE9uUmVsb2Fk
IiwgY29tcGxldGVUZXN0KTsKK30KKworZnVuY3Rpb24gZnJvbnRlbmRfdGVzdEJyZWFrcG9pbnRz
Tm90QWN0aXZhdGVkT25SZWxvYWQodGVzdENvbnRyb2xsZXIpCit7CisgICAgdmFyIHRlc3ROYW1l
ID0gV2ViSW5zcGVjdG9yLm1haW5SZXNvdXJjZS51cmw7CisgICAgdGVzdE5hbWUgPSB0ZXN0TmFt
ZS5zdWJzdHJpbmcodGVzdE5hbWUubGFzdEluZGV4T2YoJy8nKSArIDEpOworCisgICAgdGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgV2ViSW5zcGVjdG9yLnNob3dTY3JpcHRz
UGFuZWwoKTsKKyAgICBmcm9udGVuZF9lbnN1cmVEZWJ1Z2dlckVuYWJsZWQoZGVidWdnZXJXYXNF
bmFibGVkQ2FsbGJhY2spOworCisgICAgZnVuY3Rpb24gZGVidWdnZXJXYXNFbmFibGVkQ2FsbGJh
Y2soKQorICAgIHsKKyAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKCJEZWJ1Z2dl
ciB3YXMgZW5hYmxlZC4iKTsKKyAgICAgICAgZnJvbnRlbmRfd2FpdFVudGlsU2NyaXB0c0FyZVBh
cnNlZChbdGVzdE5hbWVdLCB3YWl0VW50aWxTY3JpcHRzQXJlUGFyc2VkQ2FsbGJhY2spOworICAg
IH0KKworICAgIGZ1bmN0aW9uIHdhaXRVbnRpbFNjcmlwdHNBcmVQYXJzZWRDYWxsYmFjaygpCisg
ICAgeworICAgICAgICB0ZXN0Q29udHJvbGxlci5yZXN1bHRzLnB1c2goIlNjcmlwdHMgd2VyZSBw
YXJzZWQuIik7CisgICAgICAgIGZyb250ZW5kX3Nob3dTY3JpcHRTb3VyY2UodGVzdE5hbWUsIHNo
b3dTY3JpcHRTb3VyY2VDYWxsYmFjayk7CisgICAgfQorCisgICAgZnVuY3Rpb24gc2hvd1Njcmlw
dFNvdXJjZUNhbGxiYWNrKHZpZXcpCisgICAgeworICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci50
ZXN0QnJlYWtwb2ludHNOb3RBY3RpdmF0ZWRPblJlbG9hZEZsYWcpIHsKKyAgICAgICAgICAgIHZp
ZXcuX2FkZEJyZWFrcG9pbnQoOCk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxzLnNj
cmlwdHMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24uZWxlbWVudC5jbGljaygpOworICAgICAgICAg
ICAgSW5zcGVjdG9yQmFja2VuZC5yZWxvYWRQYWdlKCk7CisgICAgICAgICAgICBXZWJJbnNwZWN0
b3IudGVzdEJyZWFrcG9pbnRzTm90QWN0aXZhdGVkT25SZWxvYWRGbGFnID0gdHJ1ZTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICghV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRz
LmJyZWFrcG9pbnRzQWN0aXZhdGVkKQorICAgICAgICAgICAgICAgIHRlc3RDb250cm9sbGVyLnJl
c3VsdHMucHVzaCgiQnJlYWtwb2ludHMgZGVhY3RpdmF0ZWQuIik7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgdGVzdENvbnRyb2xsZXIucmVzdWx0cy5wdXNoKCJFcnJvcjogYnJl
YWtwb2ludHMgYWN0aXZhdGVkLiIpOworICAgICAgICAgICAgZnJvbnRlbmRfY29tcGxldGVEZWJ1
Z2dlclRlc3QodGVzdENvbnRyb2xsZXIpOworICAgICAgICB9CisgICAgfQorfQorCis8L3Njcmlw
dD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJvbmxvYWQoKSI+Cis8cD4KK1Rlc3RzIHRoYXQg
YnJlYWtwb2ludHMgYXJlIG5vdCBhY3RpdmF0ZWQgb24gcGFnZSByZWxvYWQuPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNDYxIj5CdWcgNDE0NjE8L2E+
Cis8L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmlu
ZGV4IDFhZGI0NjguLmI1ZTU0ZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC01ODcz
LDMgKzU4NzMsNyBAQCBlZGl0aW5nL3NlbGVjdGlvbi9kcmFnLXN0YXJ0LWV2ZW50LWNsaWVudC14
LXkuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2Ryb3AtbGluay5odG1sCiBtZWRpYQogaHR0cC90
ZXN0cy9tZWRpYQorCisjIEZsYWt5IGR1ZSB0byBKU0MgZGVidWdnZXIgaXNzdWUuCisjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzAzNAoraW5zcGVjdG9yL2RlYnVn
Z2VyLWJyZWFrcG9pbnRzLW5vdC1hY3RpdmF0ZWQtb24tcmVsb2FkLmh0bWwKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGVlZWMxMWYuLjk4NmVkOGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDct
MjcgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZG8g
bm90IGFjdGl2YXRlIGFsbCBicmVha3BvaW50cyBvbiBwYWdlIHJlbG9hZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE0NjEKKworICAgICAgICBUZXN0
OiBpbnNwZWN0b3IvZGVidWdnZXItYnJlYWtwb2ludHMtbm90LWFjdGl2YXRlZC1vbi1yZWxvYWQu
aHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRWaWV3LmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdFZpZXcucHJvdG90eXBlLl9hZGRCcmVha3BvaW50KToK
KyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUuX2JyZWFrcG9pbnRBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS50b2dnbGVCcmVha3BvaW50c0NsaWNrZWQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZS5fYWRkQnJlYWtwb2ludCk6CisKIDIwMTAtMDct
MjcgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBLZW50IFRhbXVyYS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRWaWV3LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdFZp
ZXcuanMKaW5kZXggYzU3NjUxMC4uNTk3ZmQyOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdFZpZXcuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdFZpZXcuanMKQEAgLTk3LDYgKzk3LDggQEAgV2ViSW5zcGVjdG9yLlNjcmlwdFZp
ZXcucHJvdG90eXBlID0gewogICAgIF9hZGRCcmVha3BvaW50OiBmdW5jdGlvbihsaW5lKQogICAg
IHsKICAgICAgICAgV2ViSW5zcGVjdG9yLmJyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQo
dGhpcy5zY3JpcHQuc291cmNlSUQsIHRoaXMuc2NyaXB0LnNvdXJjZVVSTCwgbGluZSwgdHJ1ZSwg
IiIpOworICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy5icmVha3BvaW50
c0FjdGl2YXRlZCkKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0cy50b2dn
bGVCcmVha3BvaW50c0NsaWNrZWQoKTsKICAgICB9LAogCiAgICAgX2VkaXRMaW5lQ29tcGxldGU6
IGZ1bmN0aW9uKG5ld0JvZHkpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU2NyaXB0c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQ
YW5lbC5qcwppbmRleCA3YTFhNGQ1Li5kZmY0ODUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTEwNCwxMCArMTA0LDEwIEBAIFdlYkluc3BlY3Rv
ci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5zaWRlYmFyQnV0dG9uc0VsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5zdGVwT3V0QnV0dG9uKTsKIAogICAgIHRoaXMudG9nZ2xlQnJl
YWtwb2ludHNCdXR0b24gPSBuZXcgV2ViSW5zcGVjdG9yLlN0YXR1c0JhckJ1dHRvbigiIiwgInRv
Z2dsZS1icmVha3BvaW50cyIpOwotICAgIHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24uYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVCcmVha3BvaW50c0NsaWNrZWQuYmlu
ZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24uYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLnRvZ2dsZUJyZWFrcG9pbnRzQ2xpY2tlZC5iaW5kKHRo
aXMpLCBmYWxzZSk7CiAgICAgdGhpcy5zaWRlYmFyQnV0dG9uc0VsZW1lbnQuYXBwZW5kQ2hpbGQo
dGhpcy50b2dnbGVCcmVha3BvaW50c0J1dHRvbi5lbGVtZW50KTsKICAgICAvLyBCcmVha3BvaW50
cyBzaG91bGQgYmUgYWN0aXZhdGVkIGJ5IGRlZmF1bHQsIHNvIGVtdWxhdGUgYSBjbGljayB0byB0
b2dnbGUgb24uCi0gICAgdGhpcy5fdG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkKCk7CisgICAgdGhp
cy50b2dnbGVCcmVha3BvaW50c0NsaWNrZWQoKTsKIAogICAgIHRoaXMuZGVidWdnZXJTdGF0dXNF
bGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5kZWJ1Z2dl
clN0YXR1c0VsZW1lbnQuaWQgPSAic2NyaXB0cy1kZWJ1Z2dlci1zdGF0dXMiOwpAQCAtMTY0LDcg
KzE2NCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgdGhp
cy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0
dG9uKCIiLCAic2NyaXB0cy1wYXVzZS1vbi1leGNlcHRpb25zLXN0YXR1cy1iYXItaXRlbSIsIDMp
OwogICAgIHRoaXMuX3BhdXNlT25FeGNlcHRpb25CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xp
Y2siLCB0aGlzLl90b2dnbGVQYXVzZU9uRXhjZXB0aW9ucy5iaW5kKHRoaXMpLCBmYWxzZSk7CiAg
ICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbi5zdGF0ZSA9IFdlYkluc3BlY3Rvci5TY3Jp
cHRzUGFuZWwuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZS5Eb250UGF1c2VPbkV4Y2VwdGlvbnM7Ci0g
ICAgdGhpcy5fcGF1c2VPbkV4Y2VwdGlvbkJ1dHRvbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRG9uJ3QgcGF1c2Ugb24gZXhjZXB0aW9ucy5cbkNsaWNrIHRvIFBhdXNlIG9uIGFsbCBl
eGNlcHRpb25zLiIpOyAKKyAgICB0aGlzLl9wYXVzZU9uRXhjZXB0aW9uQnV0dG9uLnRpdGxlID0g
V2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEb24ndCBwYXVzZSBvbiBleGNlcHRpb25zLlxuQ2xpY2sg
dG8gUGF1c2Ugb24gYWxsIGV4Y2VwdGlvbnMuIik7CiAKICAgICB0aGlzLl9yZWdpc3RlclNob3J0
Y3V0cygpOwogCkBAIC0yMTksNyArMjE5LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5w
cm90b3R5cGUgPSB7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5fYXR0YWNoRGVidWdnZXJXaGVu
U2hvd247CiAgICAgICAgIH0KICAgICB9LAotICAgIAorCiAgICAgaGlkZTogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcpCkBAIC0yNzgsNyArMjc4LDcgQEAg
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgICAgIC8v
IFJlbW92ZSBzY3JpcHQgZnJvbSB0aGUgZmlsZXMgbGlzdC4KICAgICAgICAgICAgIHNjcmlwdC5m
aWxlc1NlbGVjdE9wdGlvbi5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHNjcmlwdC5maWxlc1Nl
bGVjdE9wdGlvbik7Ci0gICAgICAgICAgICAKKwogICAgICAgICAgICAgLy8gTW92ZSBicmVha3Bv
aW50cyB0byB0aGUgcmVzb3VyY2UncyBmcmFtZS4KICAgICAgICAgICAgIGlmIChzY3JpcHQuX3Nj
cmlwdFZpZXcpIHsKICAgICAgICAgICAgICAgICB2YXIgc291cmNlRnJhbWUgPSBzY3JpcHQuX3Nj
cmlwdFZpZXcuc291cmNlRnJhbWU7CkBAIC0yOTYsOSArMjk2LDYgQEAgV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgYnJlYWtwb2ludCA9
IGV2ZW50LmRhdGE7CiAKLSAgICAgICAgaWYgKCF0aGlzLmJyZWFrcG9pbnRzQWN0aXZhdGVkKQot
ICAgICAgICAgICAgdGhpcy5fdG9nZ2xlQnJlYWtwb2ludHNDbGlja2VkKCk7Ci0KICAgICAgICAg
dmFyIHNvdXJjZUZyYW1lOwogICAgICAgICBpZiAoYnJlYWtwb2ludC51cmwpIHsKICAgICAgICAg
ICAgIHZhciByZXNvdXJjZSA9IFdlYkluc3BlY3Rvci5yZXNvdXJjZVVSTE1hcFticmVha3BvaW50
LnVybF07CkBAIC01NDAsNyArNTM3LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3Nob3dTY3JpcHRPclJlc291cmNlKHNjcmlwdE9yUmVz
b3VyY2UsIHtsaW5lOiBsaW5lLCBzaG91bGRIaWdobGlnaHRMaW5lOiB0cnVlfSk7CiAgICAgfSwK
IAotICAgIF9zY3JpcHRPclJlc291cmNlRm9yVVJMQW5kTGluZTogZnVuY3Rpb24odXJsLCBsaW5l
KSAKKyAgICBfc2NyaXB0T3JSZXNvdXJjZUZvclVSTEFuZExpbmU6IGZ1bmN0aW9uKHVybCwgbGlu
ZSkKICAgICB7CiAgICAgICAgIHZhciBzY3JpcHRXaXRoTWF0Y2hpbmdVcmwgPSBudWxsOwogICAg
ICAgICBmb3IgKHZhciBzb3VyY2VJRCBpbiB0aGlzLl9zb3VyY2VJRE1hcCkgewpAQCAtNjEyLDgg
KzYwOSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgIF9z
aG93U2NyaXB0T3JSZXNvdXJjZTogZnVuY3Rpb24oc2NyaXB0T3JSZXNvdXJjZSwgb3B0aW9ucykK
ICAgICB7CiAgICAgICAgIC8vIG9wdGlvbnMgPSB7bGluZTosIHNob3VsZEhpZ2hsaWdodExpbmU6
LCBmcm9tQmFja0ZvcndhcmRBY3Rpb246LCBpbml0aWFsTG9hZDp9Ci0gICAgICAgIGlmICghb3B0
aW9ucykgCi0gICAgICAgICAgICBvcHRpb25zID0ge307CisgICAgICAgIG9wdGlvbnMgPSBvcHRp
b25zIHx8IHt9OwogCiAgICAgICAgIGlmICghc2NyaXB0T3JSZXNvdXJjZSkKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTY5NSw3ICs2OTEsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB0aGlzLl9y
ZXNvdXJjZUZvclVSTEluRmlsZXNTZWxlY3Rbc2NyaXB0LnJlc291cmNlLnVybF0gPSBzY3JpcHQu
cmVzb3VyY2U7CiAgICAgICAgIH0KLSAKKwogICAgICAgICB2YXIgZGlzcGxheU5hbWUgPSBzY3Jp
cHQuc291cmNlVVJMID8gV2ViSW5zcGVjdG9yLmRpc3BsYXlOYW1lRm9yVVJMKHNjcmlwdC5zb3Vy
Y2VVUkwpIDogV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIocHJvZ3JhbSkiKTsKIAogICAgICAgICB2
YXIgc2VsZWN0ID0gdGhpcy5maWxlc1NlbGVjdEVsZW1lbnQ7CkBAIC04MTQsNyArODEwLDcgQEAg
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy5y
ZXNpemUoKTsKICAgICB9LAotICAgIAorCiAgICAgdXBkYXRlUGF1c2VPbkV4Y2VwdGlvbnNTdGF0
ZTogZnVuY3Rpb24ocGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSkKICAgICB7CiAgICAgICAgIGlmIChw
YXVzZU9uRXhjZXB0aW9uc1N0YXRlID09IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwuUGF1c2VP
bkV4Y2VwdGlvbnNTdGF0ZS5Eb250UGF1c2VPbkV4Y2VwdGlvbnMpCkBAIC05NzMsNyArOTY5LDcg
QEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIEluc3Bl
Y3RvckJhY2tlbmQuc3RlcE91dE9mRnVuY3Rpb24oKTsKICAgICB9LAogCi0gICAgX3RvZ2dsZUJy
ZWFrcG9pbnRzQ2xpY2tlZDogZnVuY3Rpb24oKQorICAgIHRvZ2dsZUJyZWFrcG9pbnRzQ2xpY2tl
ZDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy50b2dnbGVCcmVha3BvaW50c0J1dHRv
bi50b2dnbGVkID0gIXRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24udG9nZ2xlZDsKICAgICAg
ICAgaWYgKHRoaXMudG9nZ2xlQnJlYWtwb2ludHNCdXR0b24udG9nZ2xlZCkgewpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZVZpZXcuanMgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcwppbmRleCAxYmY4MTk0Li40ZDAzZWNkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcworKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlVmlldy5qcwpAQCAtMTI4LDYgKzEy
OCw4IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VWaWV3LnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAg
ICAgIHZhciBzb3VyY2VJRCA9IHRoaXMuX3NvdXJjZUlERm9yTGluZShsaW5lKTsKICAgICAgICAg
V2ViSW5zcGVjdG9yLmJyZWFrcG9pbnRNYW5hZ2VyLnNldEJyZWFrcG9pbnQoc291cmNlSUQsIHRo
aXMucmVzb3VyY2UudXJsLCBsaW5lLCB0cnVlLCAiIik7CisgICAgICAgIGlmICghV2ViSW5zcGVj
dG9yLnBhbmVscy5zY3JpcHRzLmJyZWFrcG9pbnRzQWN0aXZhdGVkKQorICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLnBhbmVscy5zY3JpcHRzLnRvZ2dsZUJyZWFrcG9pbnRzQ2xpY2tlZCgpOwogICAg
IH0sCiAKICAgICBfcmVtb3ZlQnJlYWtwb2ludDogZnVuY3Rpb24oYnJlYWtwb2ludCkKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IDljYzE4MjMuLmNmZDI1YzYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDEwLTA3LTI3ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGlmIGJyZWFrcG9pbnRzIHdlcmUgZGVhY3RpdmF0ZWQsIGFkZCBuZXcgYnJlYWtwb2lu
dHMgYXMgZGlzYWJsZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MTQ2MQorCisgICAgICAgICogc3JjL2pzL0RlYnVnZ2VyU2NyaXB0LmpzOgorICAg
ICAgICAoKToKKwogMjAxMC0wNy0yNyAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVidWdnZXJTY3JpcHQuanMgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL2pzL0RlYnVnZ2VyU2NyaXB0LmpzCmluZGV4IDcxODFkNzQuLmNjMzdmZDQgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvanMvRGVidWdnZXJTY3JpcHQuanMKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9qcy9EZWJ1Z2dlclNjcmlwdC5qcwpAQCAtMzIsNiArMzIsNyBAQAog
CiB2YXIgRGVidWdnZXJTY3JpcHQgPSB7fTsKIERlYnVnZ2VyU2NyaXB0Ll9icmVha3BvaW50cyA9
IHt9OworRGVidWdnZXJTY3JpcHQuX2JyZWFrcG9pbnRzQWN0aXZhdGVkID0gdHJ1ZTsKIAogRGVi
dWdnZXJTY3JpcHQuUGF1c2VPbkV4Y2VwdGlvbnNTdGF0ZSA9IHsKICAgICBEb250UGF1c2VPbkV4
Y2VwdGlvbnMgOiAwLApAQCAtOTQsNyArOTUsNyBAQCBEZWJ1Z2dlclNjcmlwdC5zZXRCcmVha3Bv
aW50ID0gZnVuY3Rpb24oZXhlY1N0YXRlLCBhcmdzKQogewogICAgIGFyZ3MubGluZU51bWJlciA9
IERlYnVnZ2VyU2NyaXB0Ll93ZWJraXRUb1Y4TGluZU51bWJlcihhcmdzLmxpbmVOdW1iZXIpOwog
ICAgIHZhciBicmVha0lkID0gRGVidWcuc2V0U2NyaXB0QnJlYWtQb2ludEJ5SWQoYXJncy5zY3Jp
cHRJZCwgYXJncy5saW5lTnVtYmVyLCAwIC8qIGNvbHVtbiAqLywgYXJncy5jb25kaXRpb24pOwot
ICAgIGlmICghYXJncy5lbmFibGVkKQorICAgIGlmICghYXJncy5lbmFibGVkIHx8ICFEZWJ1Z2dl
clNjcmlwdC5fYnJlYWtwb2ludHNBY3RpdmF0ZWQpCiAgICAgICAgIERlYnVnLmRpc2FibGVTY3Jp
cHRCcmVha1BvaW50KGJyZWFrSWQpOwogCiAgICAgdmFyIGxvY2F0aW9ucyA9IERlYnVnLmZpbmRC
cmVha1BvaW50QWN0dWFsTG9jYXRpb25zKGJyZWFrSWQpOwpAQCAtMjA0LDYgKzIwNSw3IEBAIERl
YnVnZ2VyU2NyaXB0LnNldEJyZWFrcG9pbnRzQWN0aXZhdGVkID0gZnVuY3Rpb24oZXhlY1N0YXRl
LCBhcmdzKQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBEZWJ1Zy5kaXNhYmxlU2NyaXB0QnJl
YWtQb2ludChicmVha0lkKTsKICAgICB9CisgICAgRGVidWdnZXJTY3JpcHQuX2JyZWFrcG9pbnRz
QWN0aXZhdGVkID0gYXJncy5lbmFibGVkOwogfQogCiBEZWJ1Z2dlclNjcmlwdC5fZnJhbWVNaXJy
b3JUb0pTQ2FsbEZyYW1lID0gZnVuY3Rpb24oZnJhbWVNaXJyb3IsIGNhbGxlckZyYW1lKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>