<?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>93166</bug_id>
          
          <creation_ts>2012-08-03 16:20:09 -0700</creation_ts>
          <short_desc>Web Inspector: Select the shortest match in the FilteredItemSelectionDialog</short_desc>
          <delta_ts>2013-02-01 01:51:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>108346</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="johnjbarton">johnjbarton</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eustas.bug</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>vsevik</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>687245</commentid>
    <comment_count>0</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-08-03 16:20:09 -0700</bug_when>
    <thetext>When I&apos;m using the fabulous FilteredItemSelectionDialog I often mis-select my file. I believe this happens when I know which file I want so I quickly type the name and hit enter. But I end up in another file.

For example, open devtools on (source, not built) devtools, open the Sources panel, control O to bring up the dialog, place the mouse on the center of the dialog, escape the dialog, enter it again with control O, then type Script.js. I get all kinds of different answers. (Linux FWIW).

Just to avoid this, I propose we default to the shortest match rather than the first match.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687251</commentid>
    <comment_count>1</comment_count>
      <attachid>156478</attachid>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-08-03 16:24:32 -0700</bug_when>
    <thetext>Created attachment 156478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687253</commentid>
    <comment_count>2</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-08-03 16:26:14 -0700</bug_when>
    <thetext>To test this seems to require creating a dialog and operating it as far as I can tell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688053</commentid>
    <comment_count>3</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-08-06 05:47:23 -0700</bug_when>
    <thetext>I don&apos;t think this is a proper way to fix this.
This problem is a result of the http://trac.webkit.org/changeset/116244 which made filtering less restrictive.
Initially filtering was working similarly to eclipse and supported camel case search (e.g. AdSC for AdvancedSearchController).
http://trac.webkit.org/changeset/116244 made it work similarly to Sublime and made camel case search almost unusable (too many false positive results).
I would revert r116244 but I&apos;d like to hear other opinions on that.
John, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688190</commentid>
    <comment_count>4</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-08-06 09:22:22 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; I don&apos;t think this is a proper way to fix this.
&gt; This problem is a result of the http://trac.webkit.org/changeset/116244 which made filtering less restrictive.

(FFR, BUG was https://bugs.webkit.org/show_bug.cgi?id=85586)

&gt; Initially filtering was working similarly to eclipse and supported camel case search (e.g. AdSC for AdvancedSearchController).
&gt; http://trac.webkit.org/changeset/116244 made it work similarly to Sublime and made camel case search almost unusable (too many false positive results).
&gt; I would revert r116244 but I&apos;d like to hear other opinions on that.
&gt; John, what do you think?

I really like the emacs solution to this dilemma: 

If the user makes the effort to Capitalize, then the user means &quot;match this using Capital letters&quot;. Lower case implies case-insensitive match. A subtle issue is whether any Cap forces all case sensitive or just on the one letter.

If we implement such a rule, then we solve your complaint (and the specific example above) and retain the advantage sought by bug 85586.

What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688207</commentid>
    <comment_count>5</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-08-06 09:38:51 -0700</bug_when>
    <thetext>Does it solve your complaint as well?
Can you give me some examples of what you currently dislike and how it will be fixed with this approach?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688224</commentid>
    <comment_count>6</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-08-06 09:55:36 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Does it solve your complaint as well?

No, but it turns out that the current code already implements the Caps-selected-by-caps rule. So perhaps you can try your example and decide that CamelCase support is actually ok or what about it is not good?

&gt; Can you give me some examples of what you currently dislike and how it will be fixed with this approach?

You mean besides the case in my original post? That case is typical of the problem: often files share a common base name so you can&apos;t select the base name just by typing it explicitly and hitting enter. My patch addresses selection, not filtering: select the best match, not the first one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688366</commentid>
    <comment_count>7</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-08-06 13:01:17 -0700</bug_when>
    <thetext>One example provided by Jan Keromnes relates to this issue:

Open devtools on (source) devtools, control O then type 

extensionA

The only item is:

DevToolsExtensionAPI.js

But it&apos;s puzzling to a user who is looking for 

ExtensionAPI.js

Two solutions:

1) Only match case on explicit upper case letters.
   In the case above we have three hits, ExtensionAPI.js, ExtensionAuditPanel.js and DevtoolsExtensionAPI.js

2) Change the highlighting to only highlight the letters that the user typed, not the regex generated under the covers. 
   In the case above the highlighting would be
DevToolsExtensionAPI.js
_e_______xtensionA_____

rather than the current
DevToolsExtensionAPI.js
_evToolsExtensionA_____

I think this would direct the users attention to the lower case &apos;e&apos;.

Not a major issue for me and a separate bug in any case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691920</commentid>
    <comment_count>8</comment_count>
      <attachid>157564</attachid>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-08-09 15:26:57 -0700</bug_when>
    <thetext>Created attachment 157564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691925</commentid>
    <comment_count>9</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-08-09 15:34:28 -0700</bug_when>
    <thetext>Here is a better version, and a test for it.

Now we select the shortest regex match, so we favor correct consecutive characters, and we break ties by selecting the shortest strings. Eg if the choices are

AStringClass.js
String.js
NotMatched.js
ZStringClass.js

and the search is &quot;String&quot; we pick String.js.

For scale-ability we only select among the items in the viewport. I think this is ok, it will only matter for cases with lots of nearly identical entries.

I&apos;d look into the issue of CamelCase matching if we had a test case....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712430</commentid>
    <comment_count>10</comment_count>
      <attachid>162305</attachid>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-09-05 12:44:31 -0700</bug_when>
    <thetext>Created attachment 162305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712436</commentid>
    <comment_count>11</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-09-05 12:48:32 -0700</bug_when>
    <thetext>I believe the test I add in this patch would help in testing Bug 95481</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713023</commentid>
    <comment_count>12</comment_count>
      <attachid>162305</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 01:34:44 -0700</bug_when>
    <thetext>Comment on attachment 162305
Patch

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

New failing tests:
inspector/styles/protocol-css-regions-commands.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713839</commentid>
    <comment_count>13</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-09-06 16:39:00 -0700</bug_when>
    <thetext>(In reply to comment #12)
...
&gt; New failing tests:
&gt; inspector/styles/protocol-css-regions-commands.html

I don&apos;t understand this result. The test passes for me; the test has nothing to do with FilteredItemSelectionDialog; the test is very new, from Bug 93443.

What to do next? Perhaps just try the commit-queue again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715025</commentid>
    <comment_count>14</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-09-07 15:01:40 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; What to do next? Perhaps just try the commit-queue again?

I learned that the green ovals means the patch passes the &apos;early warning system&apos; and the comment #12 is just bogus because another patch landed that gave flaky results.  So I just need to wait for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725472</commentid>
    <comment_count>15</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-21 06:30:57 -0700</bug_when>
    <thetext>I still think we need to fix the the regexp used to find matching entries itself. I have a patch for that ready and consider this issue invalid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725473</commentid>
    <comment_count>16</comment_count>
      <attachid>162305</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-21 06:31:17 -0700</bug_when>
    <thetext>Comment on attachment 162305
Patch

Clearing r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725477</commentid>
    <comment_count>17</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-21 06:33:35 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=97332</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725514</commentid>
    <comment_count>18</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-09-21 07:58:41 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; I still think we need to fix the the regexp used to find matching entries itself. I have a patch for that ready and consider this issue invalid.

I would appreciate a technical explanation for why this issue is invalid. The regexp itself is a different issue. I believe users may be split as we are on which regexp approach is best but that should be addressed on another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725522</commentid>
    <comment_count>19</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-21 08:05:17 -0700</bug_when>
    <thetext>1. I think selecting a match other than the first one is misleading.
2. I don&apos;t think that the shortest match is necessarily the best one.
3. This patch adds some complexity to the code which will be redundant once we change the regular expression to match from the beginning of the string (I consider this as the main reason of false positives).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726974</commentid>
    <comment_count>20</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-09-24 13:55:38 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; 1. I think selecting a match other than the first one is misleading.

The order of the items in the match list has no significance. The first one is not special in any way. Thus selecting the first one is effectively random.

&gt; 2. I don&apos;t think that the shortest match is necessarily the best one.

The shortest match is not always the one the user seeks, but it is much more likely to be the one the user seeks than any other item and in particular it is more likely than the random first item.

The shortest match algorithm allows users to filter the list by words they recall. For example &quot;script&quot; will bring up all files related to &quot;script&quot;. This allows users to use partial knowledge to get a browse-able list they can refine or click on.

&gt; 3. This patch adds some complexity to the code which will be redundant once we change the regular expression to match from the beginning of the string (I consider this as the main reason of false positives).

Unfortunately Bug 97332 is not a good direction. The entries in the item list are *not* false positives. They are potential selections filtered by the bits of knowledge the user recalls. 

Compare the Chrome Omnibox to the location bar from olden days. In the olden days we had to type &quot;http://blah.blah.etc&quot; to navigate. Now we type things we recall and get a completion dialog prompting our memory. Bug 97322 takes from the future into the past.

I hope you will reconsider.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730838</commentid>
    <comment_count>21</comment_count>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-09-28 11:35:40 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>730839</commentid>
    <comment_count>22</comment_count>
      <attachid>166286</attachid>
    <who name="johnjbarton">johnjbarton</who>
    <bug_when>2012-09-28 11:35:43 -0700</bug_when>
    <thetext>Created attachment 166286
Bug fixes, in case this is ever reconsidered; also req. revert 97332</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822503</commentid>
    <comment_count>23</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-02-01 01:51:29 -0800</bug_when>
    <thetext>We are working on something similar to that in https://bugs.webkit.org/show_bug.cgi?id=108346. I am closing this one as a duplicate now.

*** This bug has been marked as a duplicate of bug 108346 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156478</attachid>
            <date>2012-08-03 16:24:32 -0700</date>
            <delta_ts>2012-08-09 15:26:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93166-20120803162412.patch</filename>
            <type>text/plain</type>
            <size>2584</size>
            <attacher name="johnjbarton">johnjbarton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNlMjE4YjAyYzNjMmNh
N2I5YTMzZDliMWM2MjFjZGE4NTFhMWU3MS4uMTFjY2Y3NzkxOWVhOThjNDUxZDJhNWM2MDg5YTFm
YjNmNDE4NTgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA4LTAzICBKb2hu
IEouIEJhcnRvbiAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBTZWxlY3QgdGhlIHNob3J0ZXN0IG1hdGNoIGluIHRoZSBGaWx0ZXJlZEl0ZW1TZWxl
Y3Rpb25EaWFsb2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkzMTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQXMgd2UgZmlsdGVyLCBrZWVwIHRoZSBzaG9ydGVzdCBlbGVtZW50IHRleHQgYW5kIGl0cyBs
ZW5ndGguIFVzZSB0aGF0IGZvciB0aGUgZGVmYXVsdCBzZWxlY3Rpb24uCisgICAgICAgIE5vIG5l
dyB0ZXN0czogbGV0J3MgZGVjaWRlIGlmIHdlIHdhbnQgdGhpcyBmaXJzdC4KKworICAgICAgICAq
IGluc3BlY3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUu
X2ZpbHRlckl0ZW1zKToKKwogMjAxMi0wNy0zMSAgUmF1bCBIdWRlYSAgPHJodWRlYUBhZG9iZS5j
b20+CiAKICAgICAgICAgSW5zcGVjdG9yIGNyYXNoZXMgd2hlbiB0cnlpbmcgdG8gaW5zcGVjdCBh
IHBhZ2Ugd2l0aCBDU1MgcmVnaW9uIHN0eWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFs
b2cuanMKaW5kZXggMWQwYTIyZmJlN2FjZWY2YWIzZjU5NmI1OTlmMTZlY2U1ZTRkZTZmYS4uM2Y2
Y2JkZTRmYzM5Nzg3MzExNGZiNTMyM2VlODMzYWVlNTc2M2EwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1T
ZWxlY3Rpb25EaWFsb2cuanMKQEAgLTIyMCwyMCArMjIwLDI0IEBAIFdlYkluc3BlY3Rvci5GaWx0
ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90eXBlID0gewogICAgICAgICBxdWVyeSA9IHF1
ZXJ5LnRyaW0oKTsKICAgICAgICAgdmFyIHJlZ2V4ID0gdGhpcy5fY3JlYXRlU2VhcmNoUmVnRXhw
KHF1ZXJ5KTsKIAotICAgICAgICB2YXIgZmlyc3RFbGVtZW50OworICAgICAgICB2YXIgc2hvcnRl
c3RFbGVtZW50OworICAgICAgICB2YXIgc2hvcnRlc3RMZW5ndGggPSBJbmZpbml0eTsKICAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9pdGVtRWxlbWVudHMubGVuZ3RoOyArK2kpIHsK
ICAgICAgICAgICAgIHZhciBpdGVtRWxlbWVudCA9IHRoaXMuX2l0ZW1FbGVtZW50c1tpXTsKICAg
ICAgICAgICAgIGl0ZW1FbGVtZW50Lmxhc3RDaGlsZC50ZXh0Q29udGVudCA9IHRoaXMuX2RlbGVn
YXRlLml0ZW1TdWJ0aXRsZUF0KGkpOwogICAgICAgICAgICAgaWYgKHJlZ2V4LnRlc3QodGhpcy5f
ZGVsZWdhdGUuaXRlbUtleUF0KGkpKSkgewogICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dJdGVt
RWxlbWVudChpdGVtRWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFmaXJzdEVsZW1lbnQp
Ci0gICAgICAgICAgICAgICAgICAgIGZpcnN0RWxlbWVudCA9IGl0ZW1FbGVtZW50OworICAgICAg
ICAgICAgICAgIHZhciBsZW5ndGggPSBpdGVtRWxlbWVudC50ZXh0Q29udGVudC5sZW5ndGg7Cisg
ICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA8IHNob3J0ZXN0TGVuZ3RoKSB7CisgICAgICAgICAg
ICAgICAgICAgIHNob3J0ZXN0TGVuZ3RoID0gbGVuZ3RoOworICAgICAgICAgICAgICAgICAgICBz
aG9ydGVzdEVsZW1lbnQgPSBpdGVtRWxlbWVudDsKKyAgICAgICAgICAgICAgICB9ICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdGhp
cy5faGlkZUl0ZW1FbGVtZW50KGl0ZW1FbGVtZW50KTsKICAgICAgICAgfQogCiAgICAgICAgIGlm
ICghdGhpcy5fc2VsZWN0ZWRFbGVtZW50IHx8ICF0aGlzLl9pdGVtRWxlbWVudFZpc2libGUodGhp
cy5fc2VsZWN0ZWRFbGVtZW50KSkKLSAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGlvbihm
aXJzdEVsZW1lbnQpOworICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0aW9uKHNob3J0ZXN0
RWxlbWVudCk7CiAKICAgICAgICAgaWYgKHF1ZXJ5KSB7CiAgICAgICAgICAgICB0aGlzLl9oaWdo
bGlnaHRJdGVtcyhxdWVyeSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157564</attachid>
            <date>2012-08-09 15:26:57 -0700</date>
            <delta_ts>2012-09-05 12:44:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93166-20120809152630.patch</filename>
            <type>text/plain</type>
            <size>8712</size>
            <attacher name="johnjbarton">johnjbarton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0NzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY2NGZjZjEzMDBhYWRk
ZTg4ODBjYjk1YmE4ZWZlZGFjNGFjNGQyYi4uZTUxNTRkNzJiZjFjMGMwMDUxNjM0MjhhYjU1MTYx
OTc2OWMxNjBlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA4LTA5ICBKb2hu
IEouIEJhcnRvbiAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBTZWxlY3QgdGhlIHNob3J0ZXN0IG1hdGNoIGluIHRoZSBGaWx0ZXJlZEl0ZW1TZWxl
Y3Rpb25EaWFsb2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkzMTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRHVyaW5nIHRoZSBoaWdobGlnaHRpbmcgcGFzcywgcmVjb3JkIHRoZSBsZW5ndGggb2YgdGhl
IG1hdGNoaW5nIHBhcnQgb2YgdGhlIHJlZ2V4IG9uIGVhY2ggaXRlbS4KKyAgICAgICAgQWZ0ZXIg
aGlnaGxpZ2h0aW5nLCBzZWxlY3QgdGhlIHNob3J0ZXN0IGl0ZW0gYW1vbmcgdGhlIHNob3J0ZXN0
IHJlZ2V4IG1hdGNoZXMuIEluIG90aGVyIHdvcmRzCisgICAgICAgIHByZWZlciB0aGUgbW9zdCBj
b21wYWN0IG1hdGNoIChTdHJpbmdDbGFzcywgbm90IEFTYXR1cm4gZm9yICdTdHInKSBhbmQgdGhl
IHNob3J0ZXN0IG9mIHRoZQorICAgICAgICBjb21wYWN0IG1hdGNoZXMgKFN0cmluZy5qcyBub3Qg
QVN0cmluZ0NsYXNzLmpzIGZvciAnU3RyJykKKworICAgICAgICBBZGRlZCB0ZXN0IGZvciBzZWxl
Y3Rpb24gcGx1cyBvbmUgZm9yIHZlcmlmeWluZyBoaWdobGlnaHRpbmcuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90eXBlLl9m
aWx0ZXJJdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9u
RGlhbG9nLnByb3RvdHlwZS5fc2VsZWN0U2hvcnRlc3RNYXRjaCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZS5faGlnaGxpZ2h0SXRl
bSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLnBy
b3RvdHlwZS5fc2V0U2hvcnRlc3RNYXRjaCk6CisKIDIwMTItMDgtMDYgIEFya28gU2FoYSAgPGFy
a29AbW90b3JvbGEuY29tPgogCiAgICAgICAgIE1pY3JvZGF0YTogZG9jdW1lbnQuZ2V0SXRlbXMo
KSBtdXN0IHRyZWF0IG5vIHRva2VuIGFzIG5vIHBhcmFtZXRlci4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9n
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxl
Y3Rpb25EaWFsb2cuanMKaW5kZXggMWQwYTIyZmJlN2FjZWY2YWIzZjU5NmI1OTlmMTZlY2U1ZTRk
ZTZmYS4uNTFlYWM5YmNjNzAzOTA2OGI5OWNmZmRhMTgyNThjNWNiMmNkMDIzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rp
b25EaWFsb2cuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0
ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMKQEAgLTIyMCwzMCArMjIwLDQyIEBAIFdlYkluc3Bl
Y3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90eXBlID0gewogICAgICAgICBx
dWVyeSA9IHF1ZXJ5LnRyaW0oKTsKICAgICAgICAgdmFyIHJlZ2V4ID0gdGhpcy5fY3JlYXRlU2Vh
cmNoUmVnRXhwKHF1ZXJ5KTsKIAotICAgICAgICB2YXIgZmlyc3RFbGVtZW50OwogICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2l0ZW1FbGVtZW50cy5sZW5ndGg7ICsraSkgewogICAg
ICAgICAgICAgdmFyIGl0ZW1FbGVtZW50ID0gdGhpcy5faXRlbUVsZW1lbnRzW2ldOworICAgICAg
ICAgICAgZGVsZXRlIGl0ZW1FbGVtZW50LnNob3J0ZXN0TWF0Y2g7CiAgICAgICAgICAgICBpdGVt
RWxlbWVudC5sYXN0Q2hpbGQudGV4dENvbnRlbnQgPSB0aGlzLl9kZWxlZ2F0ZS5pdGVtU3VidGl0
bGVBdChpKTsKICAgICAgICAgICAgIGlmIChyZWdleC50ZXN0KHRoaXMuX2RlbGVnYXRlLml0ZW1L
ZXlBdChpKSkpIHsKICAgICAgICAgICAgICAgICB0aGlzLl9zaG93SXRlbUVsZW1lbnQoaXRlbUVs
ZW1lbnQpOwotICAgICAgICAgICAgICAgIGlmICghZmlyc3RFbGVtZW50KQotICAgICAgICAgICAg
ICAgICAgICBmaXJzdEVsZW1lbnQgPSBpdGVtRWxlbWVudDsKICAgICAgICAgICAgIH0gZWxzZQog
ICAgICAgICAgICAgICAgIHRoaXMuX2hpZGVJdGVtRWxlbWVudChpdGVtRWxlbWVudCk7CiAgICAg
ICAgIH0KIAotICAgICAgICBpZiAoIXRoaXMuX3NlbGVjdGVkRWxlbWVudCB8fCAhdGhpcy5faXRl
bUVsZW1lbnRWaXNpYmxlKHRoaXMuX3NlbGVjdGVkRWxlbWVudCkpCi0gICAgICAgICAgICB0aGlz
Ll91cGRhdGVTZWxlY3Rpb24oZmlyc3RFbGVtZW50KTsKLQogICAgICAgICBpZiAocXVlcnkpIHsK
ICAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodEl0ZW1zKHF1ZXJ5KTsKICAgICAgICAgICAgIHRo
aXMuX3F1ZXJ5ID0gcXVlcnk7CisKKyAgICAgICAgICAgIGlmICghdGhpcy5fc2VsZWN0ZWRFbGVt
ZW50IHx8ICF0aGlzLl9pdGVtRWxlbWVudFZpc2libGUodGhpcy5fc2VsZWN0ZWRFbGVtZW50KSkK
KyAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RTaG9ydGVzdE1hdGNoKCk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICB0aGlzLl9jbGVhckhpZ2hsaWdodCgpOwogICAgICAgICAgICAg
ZGVsZXRlIHRoaXMuX3F1ZXJ5OwogICAgICAgICB9CiAgICAgfSwKIAorICAgIF9zZWxlY3RTaG9y
dGVzdE1hdGNoOiBmdW5jdGlvbigpIAorICAgIHsKKyAgICAgICAgdmFyIHNob3J0ZXN0TWF0Y2hF
bGVtZW50ID0gdGhpcy5faXRlbUVsZW1lbnRzWzBdOworICAgICAgICB0aGlzLl9pdGVtRWxlbWVu
dHMuZm9yRWFjaChmdW5jdGlvbihpdGVtRWxlbWVudCkgCisgICAgICAgIHsKKyAgICAgICAgICAg
IGlmIChpdGVtRWxlbWVudC5zaG9ydGVzdE1hdGNoICYmIGl0ZW1FbGVtZW50LnNob3J0ZXN0TWF0
Y2ggPD0gc2hvcnRlc3RNYXRjaEVsZW1lbnQuc2hvcnRlc3RNYXRjaCkgeyAgLy8gcmVnZXggbWF0
Y2ggaXMgYXMgc2hvcnQKKyAgICAgICAgICAgICAgICBpZiAoaXRlbUVsZW1lbnQudGV4dENvbnRl
bnQubGVuZ3RoIDwgc2hvcnRlc3RNYXRjaEVsZW1lbnQudGV4dENvbnRlbnQubGVuZ3RoKSB7IC8v
IGFuZCBpdCdzIHRoZSBzaG9ydGVzdCBpdGVtIHRoYXQgbWF0Y2hlcworICAgICAgICAgICAgICAg
ICAgICBzaG9ydGVzdE1hdGNoRWxlbWVudCA9IGl0ZW1FbGVtZW50OworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVj
dGlvbihzaG9ydGVzdE1hdGNoRWxlbWVudCk7CisgICAgfSwKKwogICAgIF9vbktleURvd246IGZ1
bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAgZnVuY3Rpb24gbmV4dEl0ZW0oaXRlbUVsZW1l
bnQsIGlzUGFnZVNjcm9sbCwgZm9yd2FyZCkKQEAgLTQwMiw2ICs0MTQsMjAgQEAgV2ViSW5zcGVj
dG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUgPSB7CiAKICAgICAgICAg
aWYgKGNoYW5nZXMubGVuZ3RoKQogICAgICAgICAgICAgdGhpcy5fZWxlbWVudEhpZ2hsaWdodENo
YW5nZXMucHV0KGl0ZW1FbGVtZW50LCBjaGFuZ2VzKTsKKworICAgICAgICB0aGlzLl9zZXRTaG9y
dGVzdE1hdGNoKGl0ZW1FbGVtZW50LCByYW5nZXMpOworICAgIH0sCisKKyAgICBfc2V0U2hvcnRl
c3RNYXRjaDogZnVuY3Rpb24oaXRlbUVsZW1lbnQsIHJhbmdlcykgCisgICAgeworICAgICAgICB2
YXIgc2hvcnRlc3RNYXRjaCA9IEluZmluaXR5OworICAgICAgICByYW5nZXMuZm9yRWFjaChmdW5j
dGlvbiAocmFuZ2UpIAorICAgICAgICB7CisgICAgICAgICAgICBpZiAocmFuZ2UubGVuZ3RoIDwg
c2hvcnRlc3RNYXRjaCkgCisgICAgICAgICAgICAgICAgc2hvcnRlc3RNYXRjaCA9IHJhbmdlLmxl
bmd0aDsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaXRlbUVsZW1lbnQuc2hvcnRlc3RNYXRjaCA9
IHNob3J0ZXN0TWF0Y2g7ICAvLyBjbGVhcmVkIGluIF9maWx0ZXJJdGVtcygpCiAgICAgfSwKIAog
ICAgIC8qKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDkyMTYwMzU4M2MzZjUwN2U4MjFjZGEzOTI3MzQ3ODQ5N2ZkYmE1NDUu
LmIxOWViYWZlZGVkMWZhYmE0NzRmODNkMGJlOTcxMmUzNDM0MzBkOTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOSBAQAorMjAxMi0wOC0wOSAgSm9obiBKLiBCYXJ0b24gIDxqb2huamJhcnRvbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU2VsZWN0IHRoZSBzaG9ydGVzdCBtYXRj
aCBpbiB0aGUgRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzE2NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0d28gbmV3IHRlc3RzOiAKKyAgICAgICAg
IDEpIEZvciBpdGVtcyBsaWtlICJBU3RyaW5nQ2xhc3MuanMiIGFuZCAiU3RyaW5nLmpzIiB2ZXJp
ZnkgdGhhdCBxdWVyeSAiU3RyaW5nIgorICAgICAgICAgICAgc2VsZWN0cyBTdHJpbmcuanMsIGll
IHRoZSBiZXN0IG1hdGNoIG5vdCB0aGUgZmlyc3Qgb25lLgorICAgICAgICAgMikgdmVyaWZ5IHRo
YXQgdGhlIHNlbGVjdGlvbiBoYXMgYSBoaWdobGlnaHQgd2l0aCBmb250LXdlaWdodCBib2xkCisg
ICAgICAgICAgICAoVGVzdCBmb3IgYnVnIDkzMTY4KQorCisgICAgICAgICogaW5zcGVjdG9yL2Zp
bHRlcmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmctZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGluc3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5n
Lmh0bWw6CisKIDIwMTItMDgtMDYgIFRha2FzaGkgVG95b3NoaW1hICA8dG95b3NoaW1AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJlYmFzZWxpbmUgZm9yIHIxMjQ3NDUuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsdGVyZWQtaXRlbS1zZWxlY3Rpb24t
ZGlhbG9nLWZpbHRlcmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmls
dGVyZWQtaXRlbS1zZWxlY3Rpb24tZGlhbG9nLWZpbHRlcmluZy1leHBlY3RlZC50eHQKaW5kZXgg
OGM5NmVmY2ViMTU1NzQyMzI2Njk4YjkzYjg3MTRhNzM5YzdhODYwZS4uYTgwMjQ0MGIyMzgxMGNl
OWE0NTM5ZGM4YzMxZGYwNjc3Y2YwYTkzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmctZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFs
b2ctZmlsdGVyaW5nLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNoZWNrIHRvIHNlZSB0
aGF0IEZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyB1c2VzIHByb3BlciByZWdleCB0byBmaWx0
ZXIgcmVzdWx0cy4KK0NoZWNrIHRvIHNlZSB0aGF0IEZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxv
ZyB1c2VzIHByb3BlciByZWdleCB0byBmaWx0ZXIgcmVzdWx0cywgc2VsZWN0cyB0aGUgYmVzdCBt
YXRjaCwgYW5kIGhpZ2hsaWdodHMgdGhlIG1hdGNoLgogCiB7CiAgICAgdGl0bGUgOiAiRW1wdHkg
cXVlcnkgbWF0Y2hlcyBldmVyeXRoaW5nIgpAQCAtNzIsNCArNzIsNiBAQCBDaGVjayB0byBzZWUg
dGhhdCBGaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cgdXNlcyBwcm9wZXIgcmVnZXggdG8gZmls
dGVyIHJlc3VsdAogICAgICAgICAiXltde30oKVwuJCorP3wiCiAgICAgXQogfQorUXVlcnkgZm9y
ICJTdHJpbmciIGdpdmVzIFN0cmluZy5qcworSGlnaGxpZ2h0IGZvbnQtd2VpZ2h0IGJvbGQKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0aW9u
LWRpYWxvZy1maWx0ZXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWx0ZXJlZC1p
dGVtLXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLmh0bWwKaW5kZXggYjc4ZWIzNmVkNWIxNGM3
OGUzZDJkOWFjMTA5MjdjYzRhNDA4NjUzMS4uOWUyYTM1ODhkNzA5ZTY0NmFiMzlkMGE5ZGE0NDI3
ZTRjZmQzNTYzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0
ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZmlsdGVyZWQtaXRlbS1zZWxlY3Rpb24tZGlhbG9nLWZpbHRlcmluZy5odG1sCkBAIC0z
MCw2ICszMCw1MCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBjaGVja1F1ZXJ5KCJTcGFjZXMgaW4g
cXVlcnkiLCAiZCB2ICIsIFsiZGl2IC52aXNpYmxlIiwgImRpdi52aXNpYmxlICJdKTsKICAgICBj
aGVja1F1ZXJ5KCJEdXBsaWNhdGUgc3ltYm9scyBpbiBxdWVyeSIsICJhYWIiLCBbImFiYWIiLCAi
YWJhYSIsICJjYWFiIiwgImJhYWMiXSk7CiAgICAgY2hlY2tRdWVyeSgiRGFuZ2Vyb3VzIGlucHV0
IGVzY2FwaW5nIiwgIl5bXXt9KClcXC4kKis/fCIsIFsiXltde30oKVxcLiQqKz98IiwgIjAxMjM0
NTY3ODlhYmNkZWYiXSk7CisKKyAgICB2YXIgbW9ja0RlbGVnYXRlID0gCisgICAgeworICAgICAg
ICB0ZXN0U3RyaW5nczogWworICAgICAgICAgICAgIkFTdHJpbmdDbGFzcy5qcyIsCisgICAgICAg
ICAgICAiU3RyaW5nLmpzIiwKKyAgICAgICAgICAgICJOb3RNYXRjaGVkLmpzIiwKKyAgICAgICAg
ICAgICJaU3RyaW5nQ2xhc3MuanMiCisgICAgICAgIF0sCisgICAgICAgIGl0ZW1UaXRsZUF0OiBm
dW5jdGlvbihpKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXN0U3RyaW5nc1tpXTsKKyAg
ICAgICAgfSwKKyAgICAgICAgaXRlbVN1YnRpdGxlQXQ6IGZ1bmN0aW9uKGkpIHsKKyAgICAgICAg
ICAgIHJldHVybiAiIjsKKyAgICAgICAgfSwKKyAgICAgICAgaXRlbUtleUF0OiBmdW5jdGlvbihp
KSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXN0U3RyaW5nc1tpXTsKKyAgICAgICAgfSwK
KyAgICAgICAgcmVxdWVzdEl0ZW1zOiBmdW5jdGlvbihpdGVtc0xvYWRlZCkgeworICAgICAgICAg
ICAgaXRlbXNMb2FkZWQoMCwgdGhpcy50ZXN0U3RyaW5ncy5sZW5ndGgsIDEsMSk7CisgICAgICAg
IH0sCisgICAgICAgIHJld3JpdGVRdWVyeTogZnVuY3Rpb24ocXVlcnkpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiBxdWVyeTsKKyAgICAgICAgfSwKKyAgICAgICAgaXRlbXNDb3VudDog
ZnVuY3Rpb24oKSAKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMudGVzdFN0cmlu
Z3MubGVuZ3RoOworICAgICAgICB9CisgICAgfTsKKworICAgIHZhciBkaWFsb2cgPSBuZXcgV2Vi
SW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyhtb2NrRGVsZWdhdGUpOyAKKyAg
ICAKKyAgICBkaWFsb2cuX3Byb21wdEVsZW1lbnQudmFsdWUgPSAiU3RyaW5nIjsKKyAgICBkaWFs
b2cuX2ZpbHRlckl0ZW1zKCk7CisgICAgdmFyIHNlbGVjdGVkID0gZGlhbG9nLl9zZWxlY3RlZEVs
ZW1lbnQ7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlF1ZXJ5IGZvciBcIlN0cmluZ1wi
IGdpdmVzICIgKyBzZWxlY3RlZC50ZXh0Q29udGVudCk7CisKKyAgICBXZWJJbnNwZWN0b3IuRGlh
bG9nLnNob3coZG9jdW1lbnQuYm9keSwgZGlhbG9nKTsKKyAgICB2YXIgaGlnaGxpZ2h0ID0gc2Vs
ZWN0ZWQucXVlcnlTZWxlY3RvcigiLmhpZ2hsaWdodCIpOworICAgIHZhciBzdHlsZSA9IHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGhpZ2hsaWdodCk7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkhpZ2hsaWdodCBmb250LXdlaWdodCAiK3N0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQt
d2VpZ2h0JykpOworICAgIFdlYkluc3BlY3Rvci5EaWFsb2cuaGlkZSgpOworCiAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKIH0KIApAQCAtMzgsNyArODIsNyBAQCBmdW5jdGlvbiB0
ZXN0KCkKIAogPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgogPHA+IAotQ2hlY2sgdG8gc2VlIHRo
YXQgRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nIHVzZXMgcHJvcGVyIHJlZ2V4IHRvIGZpbHRl
ciByZXN1bHRzLgorQ2hlY2sgdG8gc2VlIHRoYXQgRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9n
IHVzZXMgcHJvcGVyIHJlZ2V4IHRvIGZpbHRlciByZXN1bHRzLCBzZWxlY3RzIHRoZSBiZXN0IG1h
dGNoLCBhbmQgaGlnaGxpZ2h0cyB0aGUgbWF0Y2guCiA8L3A+CiAKIDwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162305</attachid>
            <date>2012-09-05 12:44:31 -0700</date>
            <delta_ts>2012-09-28 11:35:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93166-20120905124413.patch</filename>
            <type>text/plain</type>
            <size>8839</size>
            <attacher name="johnjbarton">johnjbarton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGI2ZDAyNzllMTE3MWFl
ZGM3MDViZmMyNDY3NjBlNzc3N2I4YTcxYS4uYWYyNmFhY2I0MWY2MTE2M2Y2ZTM5ZGNiMDAxY2Q4
ZGJiMmViMmYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA4LTA5ICBKb2hu
IEouIEJhcnRvbiAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBTZWxlY3QgdGhlIHNob3J0ZXN0IG1hdGNoIGluIHRoZSBGaWx0ZXJlZEl0ZW1TZWxl
Y3Rpb25EaWFsb2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkzMTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRHVyaW5nIHRoZSBoaWdobGlnaHRpbmcgcGFzcywgcmVjb3JkIHRoZSBsZW5ndGggb2YgdGhl
IG1hdGNoaW5nIHBhcnQgb2YgdGhlIHJlZ2V4IG9uIGVhY2ggaXRlbS4KKyAgICAgICAgQWZ0ZXIg
aGlnaGxpZ2h0aW5nLCBzZWxlY3QgdGhlIHNob3J0ZXN0IGl0ZW0gYW1vbmcgdGhlIHNob3J0ZXN0
IHJlZ2V4IG1hdGNoZXMuIEluIG90aGVyIHdvcmRzCisgICAgICAgIHByZWZlciB0aGUgbW9zdCBj
b21wYWN0IG1hdGNoIChTdHJpbmdDbGFzcywgbm90IEFTYXR1cm4gZm9yICdTdHInKSBhbmQgdGhl
IHNob3J0ZXN0IG9mIHRoZQorICAgICAgICBjb21wYWN0IG1hdGNoZXMgKFN0cmluZy5qcyBub3Qg
QVN0cmluZ0NsYXNzLmpzIGZvciAnU3RyJykKKworICAgICAgICBBZGRlZCB0ZXN0IGZvciBzZWxl
Y3Rpb24gcGx1cyBvbmUgZm9yIHZlcmlmeWluZyBoaWdobGlnaHRpbmcuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90eXBlLl9m
aWx0ZXJJdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9u
RGlhbG9nLnByb3RvdHlwZS5fc2VsZWN0U2hvcnRlc3RNYXRjaCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZS5faGlnaGxpZ2h0SXRl
bSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLnBy
b3RvdHlwZS5fc2V0U2hvcnRlc3RNYXRjaCk6CisKIDIwMTItMDktMDUgIEthbmdpbCBIYW4gIDxr
YW5naWwuaGFuQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIFVzZSBleHBsaWNpdCBjb25z
dHJ1Y3RvciBpbiBSZW5kZXJUaGVtZUVmbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cu
anMKaW5kZXggZTA4NmRhZGFmZGZlODM3MDU4NTIwZjY4ODk3MzVjNDI1MGJlZGZmMC4uNDRhYWYx
MGI4MDAzMWRiODJkZTIxYzhjMGNhYmVjOTBmNDU4ZjYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxl
Y3Rpb25EaWFsb2cuanMKQEAgLTIyMCwzMCArMjIwLDQyIEBAIFdlYkluc3BlY3Rvci5GaWx0ZXJl
ZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90eXBlID0gewogICAgICAgICBxdWVyeSA9IHF1ZXJ5
LnRyaW0oKTsKICAgICAgICAgdmFyIHJlZ2V4ID0gdGhpcy5fY3JlYXRlU2VhcmNoUmVnRXhwKHF1
ZXJ5KTsKIAotICAgICAgICB2YXIgZmlyc3RFbGVtZW50OwogICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRoaXMuX2l0ZW1FbGVtZW50cy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFy
IGl0ZW1FbGVtZW50ID0gdGhpcy5faXRlbUVsZW1lbnRzW2ldOwogICAgICAgICAgICAgaXRlbUVs
ZW1lbnQuX3RpdGxlU3VmZml4RWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuX2RlbGVnYXRlLml0
ZW1TdWZmaXhBdChpKTsKKyAgICAgICAgICAgIGRlbGV0ZSBpdGVtRWxlbWVudC5zaG9ydGVzdE1h
dGNoOwogICAgICAgICAgICAgaWYgKHJlZ2V4LnRlc3QodGhpcy5fZGVsZWdhdGUuaXRlbUtleUF0
KGkpKSkgewogICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dJdGVtRWxlbWVudChpdGVtRWxlbWVu
dCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFmaXJzdEVsZW1lbnQpCi0gICAgICAgICAgICAgICAg
ICAgIGZpcnN0RWxlbWVudCA9IGl0ZW1FbGVtZW50OwogICAgICAgICAgICAgfSBlbHNlCiAgICAg
ICAgICAgICAgICAgdGhpcy5faGlkZUl0ZW1FbGVtZW50KGl0ZW1FbGVtZW50KTsKICAgICAgICAg
fQogCi0gICAgICAgIGlmICghdGhpcy5fc2VsZWN0ZWRFbGVtZW50IHx8ICF0aGlzLl9pdGVtRWxl
bWVudFZpc2libGUodGhpcy5fc2VsZWN0ZWRFbGVtZW50KSkKLSAgICAgICAgICAgIHRoaXMuX3Vw
ZGF0ZVNlbGVjdGlvbihmaXJzdEVsZW1lbnQpOwotCiAgICAgICAgIGlmIChxdWVyeSkgewogICAg
ICAgICAgICAgdGhpcy5faGlnaGxpZ2h0SXRlbXMocXVlcnkpOwogICAgICAgICAgICAgdGhpcy5f
cXVlcnkgPSBxdWVyeTsKKworICAgICAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3RlZEVsZW1lbnQg
fHwgIXRoaXMuX2l0ZW1FbGVtZW50VmlzaWJsZSh0aGlzLl9zZWxlY3RlZEVsZW1lbnQpKQorICAg
ICAgICAgICAgICAgIHRoaXMuX3NlbGVjdFNob3J0ZXN0TWF0Y2goKTsKICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIHRoaXMuX2NsZWFySGlnaGxpZ2h0KCk7CiAgICAgICAgICAgICBkZWxl
dGUgdGhpcy5fcXVlcnk7CiAgICAgICAgIH0KICAgICB9LAogCisgICAgX3NlbGVjdFNob3J0ZXN0
TWF0Y2g6IGZ1bmN0aW9uKCkgCisgICAgeworICAgICAgICB2YXIgc2hvcnRlc3RNYXRjaEVsZW1l
bnQgPSB0aGlzLl9pdGVtRWxlbWVudHNbMF07CisgICAgICAgIHRoaXMuX2l0ZW1FbGVtZW50cy5m
b3JFYWNoKGZ1bmN0aW9uKGl0ZW1FbGVtZW50KSAKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KGl0ZW1FbGVtZW50LnNob3J0ZXN0TWF0Y2ggJiYgaXRlbUVsZW1lbnQuc2hvcnRlc3RNYXRjaCA8
PSBzaG9ydGVzdE1hdGNoRWxlbWVudC5zaG9ydGVzdE1hdGNoKSB7ICAvLyByZWdleCBtYXRjaCBp
cyBhcyBzaG9ydAorICAgICAgICAgICAgICAgIGlmIChpdGVtRWxlbWVudC50ZXh0Q29udGVudC5s
ZW5ndGggPCBzaG9ydGVzdE1hdGNoRWxlbWVudC50ZXh0Q29udGVudC5sZW5ndGgpIHsgLy8gYW5k
IGl0J3MgdGhlIHNob3J0ZXN0IGl0ZW0gdGhhdCBtYXRjaGVzCisgICAgICAgICAgICAgICAgICAg
IHNob3J0ZXN0TWF0Y2hFbGVtZW50ID0gaXRlbUVsZW1lbnQ7CisgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0aW9u
KHNob3J0ZXN0TWF0Y2hFbGVtZW50KTsKKyAgICB9LAorCiAgICAgX29uS2V5RG93bjogZnVuY3Rp
b24oZXZlbnQpCiAgICAgewogICAgICAgICBmdW5jdGlvbiBuZXh0SXRlbShpdGVtRWxlbWVudCwg
aXNQYWdlU2Nyb2xsLCBmb3J3YXJkKQpAQCAtNDAyLDYgKzQxNCwyMCBAQCBXZWJJbnNwZWN0b3Iu
RmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZSA9IHsKIAogICAgICAgICBpZiAo
Y2hhbmdlcy5sZW5ndGgpCiAgICAgICAgICAgICB0aGlzLl9lbGVtZW50SGlnaGxpZ2h0Q2hhbmdl
cy5wdXQoaXRlbUVsZW1lbnQsIGNoYW5nZXMpOworCisgICAgICAgIHRoaXMuX3NldFNob3J0ZXN0
TWF0Y2goaXRlbUVsZW1lbnQsIHJhbmdlcyk7CisgICAgfSwKKworICAgIF9zZXRTaG9ydGVzdE1h
dGNoOiBmdW5jdGlvbihpdGVtRWxlbWVudCwgcmFuZ2VzKSAKKyAgICB7CisgICAgICAgIHZhciBz
aG9ydGVzdE1hdGNoID0gSW5maW5pdHk7CisgICAgICAgIHJhbmdlcy5mb3JFYWNoKGZ1bmN0aW9u
IChyYW5nZSkgCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChyYW5nZS5sZW5ndGggPCBzaG9y
dGVzdE1hdGNoKSAKKyAgICAgICAgICAgICAgICBzaG9ydGVzdE1hdGNoID0gcmFuZ2UubGVuZ3Ro
OworICAgICAgICB9KTsKKworICAgICAgICBpdGVtRWxlbWVudC5zaG9ydGVzdE1hdGNoID0gc2hv
cnRlc3RNYXRjaDsgIC8vIGNsZWFyZWQgaW4gX2ZpbHRlckl0ZW1zKCkKICAgICB9LAogCiAgICAg
LyoqCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNThlMmQyOTgzNjIwOWY5ODcxMmFhODMzMzgwZjY5NTNlMGZhYTQ5My4uZGQ3
OGYxMzIyOWNiZTJmNjc3YzE4MzZkNTI1OGVlMTRmZTU4NzNmZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDEyLTA4LTA5ICBKb2huIEouIEJhcnRvbiAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBTZWxlY3QgdGhlIHNob3J0ZXN0IG1hdGNoIGlu
IHRoZSBGaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHR3byBuZXcgdGVzdHM6IAorICAgICAgICAgMSkg
Rm9yIGl0ZW1zIGxpa2UgIkFTdHJpbmdDbGFzcy5qcyIgYW5kICJTdHJpbmcuanMiIHZlcmlmeSB0
aGF0IHF1ZXJ5ICJTdHJpbmciCisgICAgICAgICAgICBzZWxlY3RzIFN0cmluZy5qcywgaWUgdGhl
IGJlc3QgbWF0Y2ggbm90IHRoZSBmaXJzdCBvbmUuCisgICAgICAgICAyKSB2ZXJpZnkgdGhhdCB0
aGUgc2VsZWN0aW9uIGhhcyBhIGhpZ2hsaWdodCB3aXRoIGZvbnQtd2VpZ2h0IGJvbGQKKyAgICAg
ICAgICAgIChUZXN0IGZvciBidWcgOTMxNjgpCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZmlsdGVy
ZWQtaXRlbS1zZWxlY3Rpb24tZGlhbG9nLWZpbHRlcmluZy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmcuaHRt
bDoKKwogMjAxMi0wOS0wNSAgVmluY2VudCBTY2hlaWIgIDxzY2hlaWJAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIHdlYmtpdFBvaW50ZXJMb2NrRWxlbWVudCByZXR1cm5zIG51bGwgd2hlbiBwb2lu
dGVyIGxvY2sgcmVxdWVzdCBpcyBwZW5kaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxv
Zy1maWx0ZXJpbmctZXhwZWN0ZWQudHh0CmluZGV4IDY2NDQxZTcwOWQ2YzcwODhjMjIzM2IyZmY4
NDE3NDkxMzRhZWJmMmIuLjE3N2E5M2IyOGVkZGFiYmMxNTdiNTcwNjZjMDlhMWMxMjQyMjZjY2Ug
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlv
bi1kaWFsb2ctZmlsdGVyaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZmlsdGVyZWQtaXRlbS1zZWxlY3Rpb24tZGlhbG9nLWZpbHRlcmluZy1leHBlY3RlZC50eHQK
QEAgLTEsNCArMSw0IEBACi1DaGVjayB0byBzZWUgdGhhdCBGaWx0ZXJlZEl0ZW1TZWxlY3Rpb25E
aWFsb2cgdXNlcyBwcm9wZXIgcmVnZXggdG8gZmlsdGVyIHJlc3VsdHMuCitDaGVjayB0byBzZWUg
dGhhdCBGaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cgdXNlcyBwcm9wZXIgcmVnZXggdG8gZmls
dGVyIHJlc3VsdHMsIHNlbGVjdHMgdGhlIGJlc3QgbWF0Y2gsIGFuZCBoaWdobGlnaHRzIHRoZSBt
YXRjaC4KIAogewogICAgIGlucHV0IDogWwpAQCAtNzIsNCArNzIsNiBAQCBDaGVjayB0byBzZWUg
dGhhdCBGaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cgdXNlcyBwcm9wZXIgcmVnZXggdG8gZmls
dGVyIHJlc3VsdAogICAgIHF1ZXJ5IDogIl5bXXt9KClcLiQqKz98IgogICAgIHRpdGxlIDogIkRh
bmdlcm91cyBpbnB1dCBlc2NhcGluZyIKIH0KK1F1ZXJ5IGZvciAiU3RyaW5nIiBnaXZlcyBTdHJp
bmcuanMKK0hpZ2hsaWdodCBmb250LXdlaWdodCBib2xkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmlsdGVyZWQtaXRlbS1zZWxlY3Rpb24tZGlhbG9n
LWZpbHRlcmluZy5odG1sCmluZGV4IGU0MmM5MmIyZWM1NTBmYmFiM2FiNjQwNDU4NzljNzVjYjI1
OGY5NjIuLjU0YTIyNWY2NTM1MGE3MmU0MjQ0MTg4MDU2ZGViZTdjMTZkOGZiYTcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFsb2ct
ZmlsdGVyaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0t
c2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmcuaHRtbApAQCAtMzIsNiArMzIsNTQgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgY2hlY2tRdWVyeSgiU3BhY2VzIGluIHF1ZXJ5IiwgImQgdiAiLCBbImRp
diAudmlzaWJsZSIsICJkaXYudmlzaWJsZSAiXSk7CiAgICAgY2hlY2tRdWVyeSgiRHVwbGljYXRl
IHN5bWJvbHMgaW4gcXVlcnkiLCAiYWFiIiwgWyJhYmFiIiwgImFiYWEiLCAiY2FhYiIsICJiYWFj
Il0pOwogICAgIGNoZWNrUXVlcnkoIkRhbmdlcm91cyBpbnB1dCBlc2NhcGluZyIsICJeW117fSgp
XFwuJCorP3wiLCBbIl5bXXt9KClcXC4kKis/fCIsICIwMTIzNDU2Nzg5YWJjZGVmIl0pOworCisg
ICAgdmFyIG1vY2tEZWxlZ2F0ZSA9IAorICAgIHsKKyAgICAgICAgdGVzdFN0cmluZ3M6IFsKKyAg
ICAgICAgICAgICJBU3RyaW5nQ2xhc3MuanMiLAorICAgICAgICAgICAgIlN0cmluZy5qcyIsCisg
ICAgICAgICAgICAiTm90TWF0Y2hlZC5qcyIsCisgICAgICAgICAgICAiWlN0cmluZ0NsYXNzLmpz
IgorICAgICAgICBdLAorICAgICAgICBpdGVtVGl0bGVBdDogZnVuY3Rpb24oaSkgeworICAgICAg
ICAgICAgcmV0dXJuIHRoaXMudGVzdFN0cmluZ3NbaV07CisgICAgICAgIH0sCisgICAgICAgIGl0
ZW1TdWJ0aXRsZUF0OiBmdW5jdGlvbihpKSB7CisgICAgICAgICAgICByZXR1cm4gIiI7CisgICAg
ICAgIH0sCisgICAgICAgIGl0ZW1TdWZmaXhBdDogZnVuY3Rpb24oaXRlbUluZGV4KQorICAgICAg
ICB7CisgICAgICAgICAgICByZXR1cm4gIiI7CisgICAgICAgIH0sCisgICAgICAgIGl0ZW1LZXlB
dDogZnVuY3Rpb24oaSkgeworICAgICAgICAgICAgcmV0dXJuIHRoaXMudGVzdFN0cmluZ3NbaV07
CisgICAgICAgIH0sCisgICAgICAgIHJlcXVlc3RJdGVtczogZnVuY3Rpb24oaXRlbXNMb2FkZWQp
IHsKKyAgICAgICAgICAgIGl0ZW1zTG9hZGVkKDAsIHRoaXMudGVzdFN0cmluZ3MubGVuZ3RoLCAx
LDEpOworICAgICAgICB9LAorICAgICAgICByZXdyaXRlUXVlcnk6IGZ1bmN0aW9uKHF1ZXJ5KQor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gcXVlcnk7CisgICAgICAgIH0sCisgICAgICAg
IGl0ZW1zQ291bnQ6IGZ1bmN0aW9uKCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiB0
aGlzLnRlc3RTdHJpbmdzLmxlbmd0aDsKKyAgICAgICAgfQorICAgIH07CisKKyAgICB2YXIgZGlh
bG9nID0gbmV3IFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cobW9ja0Rl
bGVnYXRlKTsgCisgICAgCisgICAgZGlhbG9nLl9wcm9tcHRFbGVtZW50LnZhbHVlID0gIlN0cmlu
ZyI7CisgICAgZGlhbG9nLl9maWx0ZXJJdGVtcygpOworICAgIHZhciBzZWxlY3RlZCA9IGRpYWxv
Zy5fc2VsZWN0ZWRFbGVtZW50OworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJRdWVyeSBm
b3IgXCJTdHJpbmdcIiBnaXZlcyAiICsgc2VsZWN0ZWQudGV4dENvbnRlbnQpOworCisgICAgV2Vi
SW5zcGVjdG9yLkRpYWxvZy5zaG93KGRvY3VtZW50LmJvZHksIGRpYWxvZyk7CisgICAgdmFyIGhp
Z2hsaWdodCA9IHNlbGVjdGVkLnF1ZXJ5U2VsZWN0b3IoIi5oaWdobGlnaHQiKTsKKyAgICB2YXIg
c3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShoaWdobGlnaHQpOworICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJIaWdobGlnaHQgZm9udC13ZWlnaHQgIitzdHlsZS5nZXRQcm9wZXJ0
eVZhbHVlKCdmb250LXdlaWdodCcpKTsKKyAgICBXZWJJbnNwZWN0b3IuRGlhbG9nLmhpZGUoKTsK
KwogICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CiB9CiAKQEAgLTQwLDcgKzg4LDcg
QEAgZnVuY3Rpb24gdGVzdCgpCiAKIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KIDxwPiAKLUNo
ZWNrIHRvIHNlZSB0aGF0IEZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyB1c2VzIHByb3BlciBy
ZWdleCB0byBmaWx0ZXIgcmVzdWx0cy4KK0NoZWNrIHRvIHNlZSB0aGF0IEZpbHRlcmVkSXRlbVNl
bGVjdGlvbkRpYWxvZyB1c2VzIHByb3BlciByZWdleCB0byBmaWx0ZXIgcmVzdWx0cywgc2VsZWN0
cyB0aGUgYmVzdCBtYXRjaCwgYW5kIGhpZ2hsaWdodHMgdGhlIG1hdGNoLgogPC9wPgogCiA8L2Jv
ZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166286</attachid>
            <date>2012-09-28 11:35:43 -0700</date>
            <delta_ts>2012-09-28 11:35:43 -0700</delta_ts>
            <desc>Bug fixes, in case this is ever reconsidered; also req. revert 97332</desc>
            <filename>bug-93166-20120928113500.patch</filename>
            <type>text/plain</type>
            <size>15975</size>
            <attacher name="johnjbarton">johnjbarton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5Mzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQ4MDdjNzk2NTAxYWM0
ODUzNzkzZGMzYzI2NDA1N2VmOWZhMmUzMi4uZmZlNGJmOTU5ZTBlZjY2NTY1MmYyNDA2YjhkYTdl
YmRmZWI5MDhhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA4LTA5ICBKb2hu
IEouIEJhcnRvbiAgPGpvaG5qYmFydG9uQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBTZWxlY3QgdGhlIHNob3J0ZXN0IG1hdGNoIGluIHRoZSBGaWx0ZXJlZEl0ZW1TZWxl
Y3Rpb25EaWFsb2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTkzMTY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRHVyaW5nIHRoZSBoaWdobGlnaHRpbmcgcGFzcywgcmVjb3JkIHRoZSBsZW5ndGggb2YgdGhl
IG1hdGNoaW5nIHBhcnQgb2YgdGhlIHJlZ2V4IG9uIGVhY2ggaXRlbS4KKyAgICAgICAgQWZ0ZXIg
aGlnaGxpZ2h0aW5nLCBzZWxlY3QgdGhlIHNob3J0ZXN0IGl0ZW0gYW1vbmcgdGhlIHNob3J0ZXN0
IHJlZ2V4IG1hdGNoZXMuIEluIG90aGVyIHdvcmRzCisgICAgICAgIHByZWZlciB0aGUgbW9zdCBj
b21wYWN0IG1hdGNoIChTdHJpbmdDbGFzcywgbm90IEFTYXR1cm4gZm9yICdTdHInKSBhbmQgdGhl
IHNob3J0ZXN0IG9mIHRoZQorICAgICAgICBjb21wYWN0IG1hdGNoZXMgKFN0cmluZy5qcyBub3Qg
QVN0cmluZ0NsYXNzLmpzIGZvciAnU3RyJykKKworICAgICAgICBBZGRlZCB0ZXN0IGZvciBzZWxl
Y3Rpb24gcGx1cyBvbmUgZm9yIHZlcmlmeWluZyBoaWdobGlnaHRpbmcuCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90eXBlLl9m
aWx0ZXJJdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9u
RGlhbG9nLnByb3RvdHlwZS5fc2VsZWN0U2hvcnRlc3RNYXRjaCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZS5faGlnaGxpZ2h0SXRl
bSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLnBy
b3RvdHlwZS5fc2V0U2hvcnRlc3RNYXRjaCk6CisKIDIwMTItMDktMjQgIEpvb25lIEh1ciAgPGpv
b25lLmh1ckBpbnRlbC5jb20+LCBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgIDxndXN0YXZvLm5vcm9u
aGFAY29sbGFib3JhLmNvbT4KIAogICAgICAgICBbR1RLXSBJbXBsZW1lbnQgR3JhcGhpY3NMYXll
ciB1c2luZyBDbHV0dGVyCkBAIC0yMDUsMjEgKzIyNSw2IEBACiAgICAgICAgICogcGxhdGZvcm0v
YmxhY2tiZXJyeS9Db29raWVQYXJzZXIuaDoKICAgICAgICAgKENvb2tpZVBhcnNlcik6CiAKLTIw
MTItMDktMjQgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+Ci0KLSAgICAg
ICAgV2ViIEluc3BlY3RvcjogT3BlbiByZXNvdXJjZSBkaWFsb2cgaGFzIHRvbyBtYW55IGZhbHNl
IHBvc2l0aXZlIG1hdGNoZXMuCi0gICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NzMzMgotCi0gICAgICAgIFJldmlld2VkIGJ5IEFsZXhhbmRlciBQYXZsb3Yu
Ci0KLSAgICAgICAgSW1wcm92ZWQgb3BlbiByZXNvdXJjZSBkaWFsb2cgZmlsdGVyaW5nIHRvIG1h
a2UgdGhlIGFtb3VudCBvZiBmYWxzZQotICAgICAgICBwb3NpdGl2ZSBzZWFyY2ggcmVzdWx0cyBs
ZXNzLgotCi0gICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rp
b25EaWFsb2cuanM6Ci0gICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9u
RGlhbG9nLnByb3RvdHlwZS5faW5uZXJDcmVhdGVTZWFyY2hSZWdFeHApOgotICAgICAgICAoV2Vi
SW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUuX2hpZ2hsaWdo
dEl0ZW0uZ2V0IHZhcik6Ci0gICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0
aW9uRGlhbG9nLnByb3RvdHlwZS5faGlnaGxpZ2h0SXRlbSk6Ci0KIDIwMTItMDktMjQgIEFuZHJl
eSBBZGFpa2luICA8YWFuZHJleUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogW0NhbnZhc10gc3VwcG9ydCAyRCBjYW52YXMgaW5zdHJ1bWVudGF0aW9uIGZyb20gdGhlIGlu
c3BlY3RvciBDKysgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcwppbmRleCA0
MTM0MGE4OTQ3NmI3Y2M4OGRiNzQzZGQ3NTFkOWYyMWZkZTQyMjY4Li45ZjVjM2Y2ZDhhMzYxMGQ2
MjljMmQ1Y2RkZGFhMjBhZDhkY2FmNWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxv
Zy5qcwpAQCAtMTkyLDE3ICsxOTIsMjMgQEAgV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVj
dGlvbkRpYWxvZy5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2lubmVyQ3JlYXRlU2VhcmNo
UmVnRXhwOiBmdW5jdGlvbihxdWVyeSwgaXNHbG9iYWwpCiAgICAgeworICAgICAgICBxdWVyeSA9
IHF1ZXJ5ID8gcXVlcnkudHJpbSgpIDogcXVlcnk7CiAgICAgICAgIGlmICghcXVlcnkpCiAgICAg
ICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cCgiLioiKTsKLSAgICAgICAgcXVlcnkgPSBxdWVyeS50
cmltKCk7CiAKICAgICAgICAgdmFyIGlnbm9yZUNhc2UgPSAocXVlcnkgPT09IHF1ZXJ5LnRvTG93
ZXJDYXNlKCkpOwotICAgICAgICB2YXIgcmVnRXhwU3RyaW5nID0gcXVlcnkuZXNjYXBlRm9yUmVn
RXhwKCkucmVwbGFjZSgvXFxcKi9nLCAiLioiKS5yZXBsYWNlKC9cXFw/L2csICIuIikKLSAgICAg
ICAgaWYgKGlnbm9yZUNhc2UpCi0gICAgICAgICAgICByZWdFeHBTdHJpbmcgPSByZWdFeHBTdHJp
bmcucmVwbGFjZSgvKD8hXikoXFxcLnxbXzotXSkvZywgIlteLl86LV0qJDEiKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgcmVnRXhwU3RyaW5nID0gcmVnRXhwU3RyaW5nLnJlcGxhY2UoLyg/
IV4pKFxcXC58W0EtWl86LV0pL2csICJbXi5BLVpfOi1dKiQxIik7Ci0gICAgICAgIHJlZ0V4cFN0
cmluZyA9ICJeIiArICJbXmEtekEtWjAtOV0qIiArIHJlZ0V4cFN0cmluZzsKKworICAgICAgICBj
b25zdCB0b0VzY2FwZSA9ICJeW117fSgpXFwuJCorP3wiOworCisgICAgICAgIHZhciByZWdFeHBT
dHJpbmcgPSAiIjsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBxdWVyeS5sZW5ndGg7ICsr
aSkgeworICAgICAgICAgICAgdmFyIGMgPSBxdWVyeS5jaGFyQXQoaSk7CisgICAgICAgICAgICBp
ZiAodG9Fc2NhcGUuaW5kZXhPZihjKSAhPT0gLTEpCisgICAgICAgICAgICAgICAgYyA9ICJcXCIg
KyBjOworICAgICAgICAgICAgaWYgKGkpCisgICAgICAgICAgICAgICAgcmVnRXhwU3RyaW5nICs9
ICJbXiIgKyBjICsgIl0qIjsKKyAgICAgICAgICAgIHJlZ0V4cFN0cmluZyArPSBjOworICAgICAg
ICB9CiAgICAgICAgIHJldHVybiBuZXcgUmVnRXhwKHJlZ0V4cFN0cmluZywgKGlnbm9yZUNhc2Ug
PyAiaSIgOiAiIikgKyAoaXNHbG9iYWwgPyAiZyIgOiAiIikpOwogICAgIH0sCiAKQEAgLTIxNCwz
MCArMjIwLDQ0IEBAIFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJv
dG90eXBlID0gewogICAgICAgICBxdWVyeSA9IHF1ZXJ5LnRyaW0oKTsKICAgICAgICAgdmFyIHJl
Z2V4ID0gdGhpcy5fY3JlYXRlU2VhcmNoUmVnRXhwKHF1ZXJ5KTsKIAotICAgICAgICB2YXIgZmly
c3RFbGVtZW50OwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2l0ZW1FbGVtZW50
cy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIGl0ZW1FbGVtZW50ID0gdGhpcy5faXRl
bUVsZW1lbnRzW2ldOwogICAgICAgICAgICAgaXRlbUVsZW1lbnQuX3RpdGxlU3VmZml4RWxlbWVu
dC50ZXh0Q29udGVudCA9IHRoaXMuX2RlbGVnYXRlLml0ZW1TdWZmaXhBdChpKTsKKyAgICAgICAg
ICAgIGRlbGV0ZSBpdGVtRWxlbWVudC5zaG9ydGVzdE1hdGNoOwogICAgICAgICAgICAgaWYgKHJl
Z2V4LnRlc3QodGhpcy5fZGVsZWdhdGUuaXRlbUtleUF0KGkpKSkgewogICAgICAgICAgICAgICAg
IHRoaXMuX3Nob3dJdGVtRWxlbWVudChpdGVtRWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgaWYg
KCFmaXJzdEVsZW1lbnQpCi0gICAgICAgICAgICAgICAgICAgIGZpcnN0RWxlbWVudCA9IGl0ZW1F
bGVtZW50OwogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgdGhpcy5faGlkZUl0
ZW1FbGVtZW50KGl0ZW1FbGVtZW50KTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICghdGhpcy5f
c2VsZWN0ZWRFbGVtZW50IHx8ICF0aGlzLl9pdGVtRWxlbWVudFZpc2libGUodGhpcy5fc2VsZWN0
ZWRFbGVtZW50KSkKLSAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGlvbihmaXJzdEVsZW1l
bnQpOwotCiAgICAgICAgIGlmIChxdWVyeSkgewogICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0
SXRlbXMocXVlcnkpOwogICAgICAgICAgICAgdGhpcy5fcXVlcnkgPSBxdWVyeTsKKyAgICAgICAg
ICAgIHRoaXMuX3NlbGVjdFNob3J0ZXN0TWF0Y2goKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIHRoaXMuX2NsZWFySGlnaGxpZ2h0KCk7CiAgICAgICAgICAgICBkZWxldGUgdGhpcy5f
cXVlcnk7CisgICAgICAgICAgICB0aGlzLl91cGRhdGVTZWxlY3Rpb24odGhpcy5faXRlbUVsZW1l
bnRzWzBdKTsgLy8gc2VsZWN0IHJhbmRvbSBlbGVtZW50IHNvIHVzZXIgY2FuIGtleS1uYXZpZ2F0
ZQogICAgICAgICB9CiAgICAgfSwKIAorICAgIF9zZWxlY3RTaG9ydGVzdE1hdGNoOiBmdW5jdGlv
bigpIAorICAgIHsKKyAgICAgICAgdmFyIHNob3J0ZXN0TWF0Y2hFbGVtZW50OworICAgICAgICB0
aGlzLl9pdGVtRWxlbWVudHMuZm9yRWFjaChmdW5jdGlvbihpdGVtRWxlbWVudCkgCisgICAgICAg
IHsKKyAgICAgICAgICAgIGlmICh0aGlzLl9pdGVtRWxlbWVudFZpc2libGUoaXRlbUVsZW1lbnQp
KSB7CisgICAgICAgICAgICAgICAgc2hvcnRlc3RNYXRjaEVsZW1lbnQgPSBzaG9ydGVzdE1hdGNo
RWxlbWVudCB8fCBpdGVtRWxlbWVudDsKKyAgICAgICAgICAgICAgICBpZiAoaXRlbUVsZW1lbnQu
c2hvcnRlc3RNYXRjaCAmJiBpdGVtRWxlbWVudC5zaG9ydGVzdE1hdGNoIDw9IHNob3J0ZXN0TWF0
Y2hFbGVtZW50LnNob3J0ZXN0TWF0Y2gpIHsgIC8vIHJlZ2V4IG1hdGNoIGlzIGFzIHNob3J0Cisg
ICAgICAgICAgICAgICAgICAgIGlmIChpdGVtRWxlbWVudC5maXJzdENoaWxkLnRleHRDb250ZW50
Lmxlbmd0aCA8IHNob3J0ZXN0TWF0Y2hFbGVtZW50LmZpcnN0Q2hpbGQudGV4dENvbnRlbnQubGVu
Z3RoKSB7IC8vIGFuZCBpdCdzIHRoZSBzaG9ydGVzdCBpdGVtIHRoYXQgbWF0Y2hlcworICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvcnRlc3RNYXRjaEVsZW1lbnQgPSBpdGVtRWxlbWVudDsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0aW9uKHNob3J0
ZXN0TWF0Y2hFbGVtZW50KTsKKyAgICB9LAorCiAgICAgX29uS2V5RG93bjogZnVuY3Rpb24oZXZl
bnQpCiAgICAgewogICAgICAgICBmdW5jdGlvbiBuZXh0SXRlbShpdGVtRWxlbWVudCwgaXNQYWdl
U2Nyb2xsLCBmb3J3YXJkKQpAQCAtMzg3LDcgKzQwNyw3IEBAIFdlYkluc3BlY3Rvci5GaWx0ZXJl
ZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90eXBlID0gewogICAgICAgICB2YXIgcmFuZ2VzID0g
W107CiAKICAgICAgICAgdmFyIG1hdGNoOwotICAgICAgICB3aGlsZSAoKG1hdGNoID0gcmVnZXgu
ZXhlYyhrZXkpKSAhPT0gbnVsbCAmJiBtYXRjaFswXSkgeworICAgICAgICB3aGlsZSAoKG1hdGNo
ID0gcmVnZXguZXhlYyhrZXkpKSAhPT0gbnVsbCkgewogICAgICAgICAgICAgcmFuZ2VzLnB1c2go
eyBvZmZzZXQ6IG1hdGNoLmluZGV4LCBsZW5ndGg6IHJlZ2V4Lmxhc3RJbmRleCAtIG1hdGNoLmlu
ZGV4IH0pOwogICAgICAgICB9CiAKQEAgLTM5Niw2ICs0MTYsMjAgQEAgV2ViSW5zcGVjdG9yLkZp
bHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgaWYgKGNo
YW5nZXMubGVuZ3RoKQogICAgICAgICAgICAgdGhpcy5fZWxlbWVudEhpZ2hsaWdodENoYW5nZXMu
cHV0KGl0ZW1FbGVtZW50LCBjaGFuZ2VzKTsKKworICAgICAgICB0aGlzLl9zZXRTaG9ydGVzdE1h
dGNoKGl0ZW1FbGVtZW50LCByYW5nZXMpOworICAgIH0sCisKKyAgICBfc2V0U2hvcnRlc3RNYXRj
aDogZnVuY3Rpb24oaXRlbUVsZW1lbnQsIHJhbmdlcykgCisgICAgeworICAgICAgICB2YXIgc2hv
cnRlc3RNYXRjaCA9IEluZmluaXR5OworICAgICAgICByYW5nZXMuZm9yRWFjaChmdW5jdGlvbiAo
cmFuZ2UpIAorICAgICAgICB7CisgICAgICAgICAgICBpZiAocmFuZ2UubGVuZ3RoIDwgc2hvcnRl
c3RNYXRjaCkgCisgICAgICAgICAgICAgICAgc2hvcnRlc3RNYXRjaCA9IHJhbmdlLmxlbmd0aDsK
KyAgICAgICAgfSk7CisKKyAgICAgICAgaXRlbUVsZW1lbnQuc2hvcnRlc3RNYXRjaCA9IHNob3J0
ZXN0TWF0Y2g7ICAvLyBjbGVhcmVkIGluIF9maWx0ZXJJdGVtcygpCiAgICAgfSwKIAogICAgIC8q
KgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDAwNzQ4MjU2Nzk2ZDllZWY4MTUwMGQ2Y2E0MWNmOWRiNDc3OGVmNjMuLjM0ZDk5
MDA0ZTRjNGFhNjJhYWQzYTNiMGE4M2E2OTg3ZDU1NTJlY2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAxMi0wOC0wOSAgSm9obiBKLiBCYXJ0b24gIDxqb2huamJhcnRvbkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogU2VsZWN0IHRoZSBzaG9ydGVzdCBtYXRjaCBpbiB0
aGUgRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzE2NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0d28gbmV3IHRlc3RzOiAKKyAgICAgICAgIDEpIEZv
ciBpdGVtcyBsaWtlICJBU3RyaW5nQ2xhc3MuanMiIGFuZCAiU3RyaW5nLmpzIiB2ZXJpZnkgdGhh
dCBxdWVyeSAiU3RyaW5nIgorICAgICAgICAgICAgc2VsZWN0cyBTdHJpbmcuanMsIGllIHRoZSBi
ZXN0IG1hdGNoIG5vdCB0aGUgZmlyc3Qgb25lLgorICAgICAgICAgMikgdmVyaWZ5IHRoYXQgdGhl
IHNlbGVjdGlvbiBoYXMgYSBoaWdobGlnaHQgd2l0aCBmb250LXdlaWdodCBib2xkCisgICAgICAg
ICAgICAoVGVzdCBmb3IgYnVnIDkzMTY4KQorCisgICAgICAgICogaW5zcGVjdG9yL2ZpbHRlcmVk
LWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGluc3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLmh0bWw6
CisKIDIwMTItMDktMjQgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgY2hyb21pdW0gbGludXgvd2luZG93cyByZWJhc2VsaW5lIGZvciByMTI5
MzcwLgpAQCAtMjY3LDE2ICsyODMsNiBAQAogCiAgICAgICAgICogcGxhdGZvcm0vZWZsLXdrMi9U
ZXN0RXhwZWN0YXRpb25zOgogCi0yMDEyLTA5LTI0ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtA
Y2hyb21pdW0ub3JnPgotCi0gICAgICAgIFdlYiBJbnNwZWN0b3I6IE9wZW4gcmVzb3VyY2UgZGlh
bG9nIGhhcyB0b28gbWFueSBmYWxzZSBwb3NpdGl2ZSBtYXRjaGVzLgotICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTczMzIKLQotICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4YW5kZXIgUGF2bG92LgotCi0gICAgICAgICogaW5zcGVjdG9yL2ZpbHRlcmVkLWl0
ZW0tc2VsZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmctZXhwZWN0ZWQudHh0OgotICAgICAgICAqIGlu
c3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLmh0bWw6Ci0K
IDIwMTItMDktMjQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KIAogICAgICAgICBbRUZMXSBSZWJhc2VsaW5lIHNldmVyYWwgdGVzdCBjYXNlcyBpbiBTa2lw
cGVkIGxpc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWx0ZXJlZC1pdGVt
LXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVjdGlvbi1kaWFsb2ctZmlsdGVyaW5nLWV4cGVjdGVk
LnR4dAppbmRleCAyNTBjZTcyYWUwMjFiNmFiYWQ5ZGY2MjBlZDNiNTYzYzhlNjBiOTVjLi4xNzdh
OTNiMjhlZGRhYmJjMTU3YjU3MDY2YzA5YTFjMTI0MjI2Y2NlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZmlsdGVyZWQtaXRlbS1zZWxlY3Rpb24tZGlhbG9nLWZpbHRlcmluZy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2Vs
ZWN0aW9uLWRpYWxvZy1maWx0ZXJpbmctZXhwZWN0ZWQudHh0CkBAIC0xLDc1ICsxLDc3IEBACi1D
aGVjayB0byBzZWUgdGhhdCBGaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cgdXNlcyBwcm9wZXIg
cmVnZXggdG8gZmlsdGVyIHJlc3VsdHMuCitDaGVjayB0byBzZWUgdGhhdCBGaWx0ZXJlZEl0ZW1T
ZWxlY3Rpb25EaWFsb2cgdXNlcyBwcm9wZXIgcmVnZXggdG8gZmlsdGVyIHJlc3VsdHMsIHNlbGVj
dHMgdGhlIGJlc3QgbWF0Y2gsIGFuZCBoaWdobGlnaHRzIHRoZSBtYXRjaC4KIAogewotICAgIGlu
cHV0IDogIlsiYSIsImJjIl0iCi0gICAgb3V0cHV0IDogIlsiYSIsImJjIl0iCisgICAgaW5wdXQg
OiBbCisgICAgICAgICJhIgorICAgICAgICAiYmMiCisgICAgXQorICAgIG91dHB1dCA6IFsKKyAg
ICAgICAgImEiCisgICAgICAgICJiYyIKKyAgICBdCiAgICAgcXVlcnkgOiAiIgogICAgIHRpdGxl
IDogIkVtcHR5IHF1ZXJ5IG1hdGNoZXMgZXZlcnl0aGluZyIKIH0KIHsKLSAgICBpbnB1dCA6ICJb
ImFiYyIsImFjQiJdIgotICAgIG91dHB1dCA6ICJbImFjQiJdIgorICAgIGlucHV0IDogWworICAg
ICAgICAiYWJjIgorICAgICAgICAiYWNCIgorICAgIF0KKyAgICBvdXRwdXQgOiBbCisgICAgICAg
ICJhY0IiCisgICAgXQogICAgIHF1ZXJ5IDogImFCIgogICAgIHRpdGxlIDogIkNhc2Ugc2Vuc2l0
aXZlIG1hdGNoaW5nIgogfQogewotICAgIGlucHV0IDogIlsiYWJjIiwiYmFjIiwiYV9CIl0iCi0g
ICAgb3V0cHV0IDogIlsiYWJjIl0iCisgICAgaW5wdXQgOiBbCisgICAgICAgICJhYmMiCisgICAg
ICAgICJiYWMiCisgICAgICAgICJhX0IiCisgICAgXQorICAgIG91dHB1dCA6IFsKKyAgICAgICAg
ImFiYyIKKyAgICAgICAgImFfQiIKKyAgICBdCiAgICAgcXVlcnkgOiAiYWIiCiAgICAgdGl0bGUg
OiAiQ2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyIKIH0KIHsKLSAgICBpbnB1dCA6ICJbImRpdiAu
dmlzaWJsZSIsImRpdiAuIHZpc2libGUgIl0iCi0gICAgb3V0cHV0IDogIlsiZGl2IC52aXNpYmxl
Il0iCi0gICAgcXVlcnkgOiAiZC52ICIKLSAgICB0aXRsZSA6ICJTcGFjZXMgaW4gdGhlIGlucHV0
IgorICAgIGlucHV0IDogWworICAgICAgICAiZGl2IC52aXNpYmxlIgorICAgICAgICAiZGl2LnZp
c2libGUgIgorICAgIF0KKyAgICBvdXRwdXQgOiBbCisgICAgICAgICJkaXYgLnZpc2libGUiCisg
ICAgXQorICAgIHF1ZXJ5IDogImQgdiAiCisgICAgdGl0bGUgOiAiU3BhY2VzIGluIHF1ZXJ5Igog
fQogewotICAgIGlucHV0IDogIlsiYWJhYiIsImFiYWEiLCJjYWFiIiwiYmFhYyIsImZvb2FhYiJd
IgotICAgIG91dHB1dCA6ICJbXSIKKyAgICBpbnB1dCA6IFsKKyAgICAgICAgImFiYWIiCisgICAg
ICAgICJhYmFhIgorICAgICAgICAiY2FhYiIKKyAgICAgICAgImJhYWMiCisgICAgXQorICAgIG91
dHB1dCA6IFsKKyAgICAgICAgImFiYWIiCisgICAgICAgICJjYWFiIgorICAgIF0KICAgICBxdWVy
eSA6ICJhYWIiCiAgICAgdGl0bGUgOiAiRHVwbGljYXRlIHN5bWJvbHMgaW4gcXVlcnkiCiB9CiB7
Ci0gICAgaW5wdXQgOiAiWyJhYmFiIiwiYWJhYSIsImNhYWIiLCJiYWFjIiwiZm9vYWFiIl0iCi0g
ICAgb3V0cHV0IDogIlsiY2FhYiIsImZvb2FhYiJdIgotICAgIHF1ZXJ5IDogIiphYWIiCi0gICAg
dGl0bGUgOiAiU3RhciBpbiBxdWVyeSIKLX0KLXsKLSAgICBpbnB1dCA6ICJbImFiYWIiLCJhYmFh
IiwiY2FhYiIsImJhYWMiLCJmb29hYWIiXSIKLSAgICBvdXRwdXQgOiAiWyJjYWFiIl0iCi0gICAg
cXVlcnkgOiAiP2FhYiIKLSAgICB0aXRsZSA6ICJRdWVzdGlvbiBpbiBxdWVyeSIKLX0KLXsKLSAg
ICBpbnB1dCA6ICJbIl5bXXt9KClcXC4kKis/fCIsIjAxMjM0NTY3ODlhYmNkZWYiXSIKLSAgICBv
dXRwdXQgOiAiWyJeW117fSgpXFwuJCorP3wiXSIKKyAgICBpbnB1dCA6IFsKKyAgICAgICAgIl5b
XXt9KClcLiQqKz98IgorICAgICAgICAiMDEyMzQ1Njc4OWFiY2RlZiIKKyAgICBdCisgICAgb3V0
cHV0IDogWworICAgICAgICAiXltde30oKVwuJCorP3wiCisgICAgXQogICAgIHF1ZXJ5IDogIl5b
XXt9KClcLiQqKz98IgogICAgIHRpdGxlIDogIkRhbmdlcm91cyBpbnB1dCBlc2NhcGluZyIKIH0K
LXsKLSAgICBpbnB1dCA6ICJbImZvb0JhckJheiIsIkZvb0JhckJheiIsIkZvb19CYXJfQmF6Iiwi
Zm9vX2Jhcl9iYXoiLCJmb29iYXJiYXoiLCJmb29iYXJCYXoiLCJhZm9vQmFyQmF6IiwiYUZvb0Jh
ckJheiIsImEgZm9vQmFyQmF6IiwiZm9vQm9yQmF6IiwiZm9vQm9yQ2F6Il0iCi0gICAgb3V0cHV0
IDogIlsiZm9vQmFyQmF6Il0iCi0gICAgcXVlcnkgOiAiZkJhQiIKLSAgICB0aXRsZSA6ICJDYW1l
bCBjYXNlIG1hdGNoaW5nIgotfQotewotICAgIGlucHV0IDogIlsiZm9PQmFyQmF6IiwiRm9PQmFy
QmF6IiwiRm9PX0Jhcl9CYXoiLCJmb09fYmFyX2JheiIsImZvT2JhcmJheiIsImZvT2JhckJheiIs
ImFmb09CYXJCYXoiLCJhRm9PQmFyQmF6IiwiYSBmb09CYXJCYXoiLCJmb09Cb3JCYXoiLCJmb09C
b3JDYXoiXSIKLSAgICBvdXRwdXQgOiAiWyJmb09fYmFyX2JheiJdIgotICAgIHF1ZXJ5IDogImZP
X2JhX2IiCi0gICAgdGl0bGUgOiAiVW5kZXJzY29yZSBtYXRjaGluZyIKLX0KLXsKLSAgICBpbnB1
dCA6ICJbImZvb19iYXIiLCJGQiIsImZvb2JhciIsImZCYXIiXSIKLSAgICBvdXRwdXQgOiAiWyJG
QiIsImZCYXIiXSIKLSAgICBxdWVyeSA6ICJmYiIKLSAgICB0aXRsZSA6ICJDYXNlIGluc2Vuc2l0
aXZlIG1hdGNoaW5nIgotfQotewotICAgIGlucHV0IDogIlsiZm9vX2JhciIsIkZPT19CQVIiLCJG
b29fQmFyIiwiZk9vX2JBciJdIgotICAgIG91dHB1dCA6ICJbImZvb19iYXIiLCJGT09fQkFSIiwi
Rm9vX0JhciIsImZPb19iQXIiXSIKLSAgICBxdWVyeSA6ICJmX2IiCi0gICAgdGl0bGUgOiAiQ2Fz
ZSBpbnNlbnNpdGl2ZSB1bmRlcnNjb3JlIG1hdGNoaW5nIgotfQorUXVlcnkgZm9yICJTdHJpbmci
IGdpdmVzIFN0cmluZy5qcworSGlnaGxpZ2h0IGZvbnQtd2VpZ2h0IGJvbGQKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0aW9uLWRpYWxvZy1m
aWx0ZXJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9maWx0ZXJlZC1pdGVtLXNlbGVj
dGlvbi1kaWFsb2ctZmlsdGVyaW5nLmh0bWwKaW5kZXggMmMzMDJlOWExYzdmN2JiMDBjN2YwM2Vj
Zjk0MmI2Yjk0ZGJjMDY5Yi4uNTRhMjI1ZjY1MzUwYTcyZTQyNDQxODgwNTZkZWJlN2MxNmQ4ZmJh
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2ZpbHRlcmVkLWl0ZW0tc2VsZWN0
aW9uLWRpYWxvZy1maWx0ZXJpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZmls
dGVyZWQtaXRlbS1zZWxlY3Rpb24tZGlhbG9nLWZpbHRlcmluZy5odG1sCkBAIC0yMSwyMyArMjEs
NjUgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkT2JqZWN0KHsK
ICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSwKICAgICAgICAgICAgIHF1ZXJ5OiBxdWVyeSwKLSAg
ICAgICAgICAgIGlucHV0OiBKU09OLnN0cmluZ2lmeShpbnB1dCksCi0gICAgICAgICAgICBvdXRw
dXQ6IEpTT04uc3RyaW5naWZ5KG91dHB1dCkKKyAgICAgICAgICAgIGlucHV0OiBpbnB1dCwKKyAg
ICAgICAgICAgIG91dHB1dDogb3V0cHV0CiAgICAgICAgIH0pOwogICAgIH0KIAogICAgIGNoZWNr
UXVlcnkoIkVtcHR5IHF1ZXJ5IG1hdGNoZXMgZXZlcnl0aGluZyIsICIiLCBbImEiLCAiYmMiXSk7
CiAgICAgY2hlY2tRdWVyeSgiQ2FzZSBzZW5zaXRpdmUgbWF0Y2hpbmciLCAiYUIiLCBbImFiYyIs
ICJhY0IiXSk7CiAgICAgY2hlY2tRdWVyeSgiQ2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyIsICJh
YiIsIFsiYWJjIiwgImJhYyIsICJhX0IiXSk7Ci0gICAgY2hlY2tRdWVyeSgiU3BhY2VzIGluIHRo
ZSBpbnB1dCIsICJkLnYgIiwgWyJkaXYgLnZpc2libGUiLCAiZGl2IC4gdmlzaWJsZSAiXSk7Ci0g
ICAgY2hlY2tRdWVyeSgiRHVwbGljYXRlIHN5bWJvbHMgaW4gcXVlcnkiLCAiYWFiIiwgWyJhYmFi
IiwgImFiYWEiLCAiY2FhYiIsICJiYWFjIiwgImZvb2FhYiJdKTsKLSAgICBjaGVja1F1ZXJ5KCJT
dGFyIGluIHF1ZXJ5IiwgIiphYWIiLCBbImFiYWIiLCAiYWJhYSIsICJjYWFiIiwgImJhYWMiLCAi
Zm9vYWFiIl0pOwotICAgIGNoZWNrUXVlcnkoIlF1ZXN0aW9uIGluIHF1ZXJ5IiwgIj9hYWIiLCBb
ImFiYWIiLCAiYWJhYSIsICJjYWFiIiwgImJhYWMiLCAiZm9vYWFiIl0pOworICAgIGNoZWNrUXVl
cnkoIlNwYWNlcyBpbiBxdWVyeSIsICJkIHYgIiwgWyJkaXYgLnZpc2libGUiLCAiZGl2LnZpc2li
bGUgIl0pOworICAgIGNoZWNrUXVlcnkoIkR1cGxpY2F0ZSBzeW1ib2xzIGluIHF1ZXJ5IiwgImFh
YiIsIFsiYWJhYiIsICJhYmFhIiwgImNhYWIiLCAiYmFhYyJdKTsKICAgICBjaGVja1F1ZXJ5KCJE
YW5nZXJvdXMgaW5wdXQgZXNjYXBpbmciLCAiXltde30oKVxcLiQqKz98IiwgWyJeW117fSgpXFwu
JCorP3wiLCAiMDEyMzQ1Njc4OWFiY2RlZiJdKTsKLSAgICBjaGVja1F1ZXJ5KCJDYW1lbCBjYXNl
IG1hdGNoaW5nIiwgImZCYUIiLCBbImZvb0JhckJheiIsICJGb29CYXJCYXoiLCAiRm9vX0Jhcl9C
YXoiLCAiZm9vX2Jhcl9iYXoiLCAiZm9vYmFyYmF6IiwgImZvb2JhckJheiIsICJhZm9vQmFyQmF6
IiwgImFGb29CYXJCYXoiLCAiYSBmb29CYXJCYXoiLCAiZm9vQm9yQmF6IiwgImZvb0JvckNheiJd
KTsKLSAgICBjaGVja1F1ZXJ5KCJVbmRlcnNjb3JlIG1hdGNoaW5nIiwgImZPX2JhX2IiLCBbImZv
T0JhckJheiIsICJGb09CYXJCYXoiLCAiRm9PX0Jhcl9CYXoiLCAiZm9PX2Jhcl9iYXoiLCAiZm9P
YmFyYmF6IiwgImZvT2JhckJheiIsICJhZm9PQmFyQmF6IiwgImFGb09CYXJCYXoiLCAiYSBmb09C
YXJCYXoiLCAiZm9PQm9yQmF6IiwgImZvT0JvckNheiJdKTsKLSAgICBjaGVja1F1ZXJ5KCJDYXNl
IGluc2Vuc2l0aXZlIG1hdGNoaW5nIiwgImZiIiwgWyJmb29fYmFyIiwgIkZCIiwgImZvb2JhciIs
ICJmQmFyIl0pOwotICAgIGNoZWNrUXVlcnkoIkNhc2UgaW5zZW5zaXRpdmUgdW5kZXJzY29yZSBt
YXRjaGluZyIsICJmX2IiLCBbImZvb19iYXIiLCAiRk9PX0JBUiIsICJGb29fQmFyIiwgImZPb19i
QXIiXSk7CisKKyAgICB2YXIgbW9ja0RlbGVnYXRlID0gCisgICAgeworICAgICAgICB0ZXN0U3Ry
aW5nczogWworICAgICAgICAgICAgIkFTdHJpbmdDbGFzcy5qcyIsCisgICAgICAgICAgICAiU3Ry
aW5nLmpzIiwKKyAgICAgICAgICAgICJOb3RNYXRjaGVkLmpzIiwKKyAgICAgICAgICAgICJaU3Ry
aW5nQ2xhc3MuanMiCisgICAgICAgIF0sCisgICAgICAgIGl0ZW1UaXRsZUF0OiBmdW5jdGlvbihp
KSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXN0U3RyaW5nc1tpXTsKKyAgICAgICAgfSwK
KyAgICAgICAgaXRlbVN1YnRpdGxlQXQ6IGZ1bmN0aW9uKGkpIHsKKyAgICAgICAgICAgIHJldHVy
biAiIjsKKyAgICAgICAgfSwKKyAgICAgICAgaXRlbVN1ZmZpeEF0OiBmdW5jdGlvbihpdGVtSW5k
ZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgfSwKKyAgICAg
ICAgaXRlbUtleUF0OiBmdW5jdGlvbihpKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy50ZXN0
U3RyaW5nc1tpXTsKKyAgICAgICAgfSwKKyAgICAgICAgcmVxdWVzdEl0ZW1zOiBmdW5jdGlvbihp
dGVtc0xvYWRlZCkgeworICAgICAgICAgICAgaXRlbXNMb2FkZWQoMCwgdGhpcy50ZXN0U3RyaW5n
cy5sZW5ndGgsIDEsMSk7CisgICAgICAgIH0sCisgICAgICAgIHJld3JpdGVRdWVyeTogZnVuY3Rp
b24ocXVlcnkpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBxdWVyeTsKKyAgICAgICAg
fSwKKyAgICAgICAgaXRlbXNDb3VudDogZnVuY3Rpb24oKSAKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIHRoaXMudGVzdFN0cmluZ3MubGVuZ3RoOworICAgICAgICB9CisgICAgfTsKKwor
ICAgIHZhciBkaWFsb2cgPSBuZXcgV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRp
YWxvZyhtb2NrRGVsZWdhdGUpOyAKKyAgICAKKyAgICBkaWFsb2cuX3Byb21wdEVsZW1lbnQudmFs
dWUgPSAiU3RyaW5nIjsKKyAgICBkaWFsb2cuX2ZpbHRlckl0ZW1zKCk7CisgICAgdmFyIHNlbGVj
dGVkID0gZGlhbG9nLl9zZWxlY3RlZEVsZW1lbnQ7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlF1ZXJ5IGZvciBcIlN0cmluZ1wiIGdpdmVzICIgKyBzZWxlY3RlZC50ZXh0Q29udGVudCk7
CisKKyAgICBXZWJJbnNwZWN0b3IuRGlhbG9nLnNob3coZG9jdW1lbnQuYm9keSwgZGlhbG9nKTsK
KyAgICB2YXIgaGlnaGxpZ2h0ID0gc2VsZWN0ZWQucXVlcnlTZWxlY3RvcigiLmhpZ2hsaWdodCIp
OworICAgIHZhciBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGhpZ2hsaWdodCk7Cisg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkhpZ2hsaWdodCBmb250LXdlaWdodCAiK3N0eWxl
LmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtd2VpZ2h0JykpOworICAgIFdlYkluc3BlY3Rvci5EaWFs
b2cuaGlkZSgpOworCiAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKIH0KIApAQCAt
NDYsNyArODgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKIAogPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgogPHA+IAotQ2hlY2sgdG8gc2VlIHRoYXQgRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nIHVz
ZXMgcHJvcGVyIHJlZ2V4IHRvIGZpbHRlciByZXN1bHRzLgorQ2hlY2sgdG8gc2VlIHRoYXQgRmls
dGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nIHVzZXMgcHJvcGVyIHJlZ2V4IHRvIGZpbHRlciByZXN1
bHRzLCBzZWxlY3RzIHRoZSBiZXN0IG1hdGNoLCBhbmQgaGlnaGxpZ2h0cyB0aGUgbWF0Y2guCiA8
L3A+CiAKIDwvYm9keT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>