<?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>61995</bug_id>
          
          <creation_ts>2011-06-03 00:40:17 -0700</creation_ts>
          <short_desc>Accessibility description for an element should make use of aria-labelledby.</short_desc>
          <delta_ts>2011-06-18 13:27:49 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.w3.org/TR/wai-aria/complete#textalternativecomputation</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alice Boxhall">aboxhall</reporter>
          <assigned_to name="Alice Boxhall">aboxhall</assigned_to>
          <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>mikelawther</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>414695</commentid>
    <comment_count>0</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-06-03 00:40:17 -0700</bug_when>
    <thetext>The accessibility description for an element with aria-labelledby should be equivalent to the description for an element with an aria-label of the same value as the element referred to by aria-labelledby. Currently, no description is returned.

http://www.w3.org/TR/wai-aria/complete#textalternativecomputation says:
&quot;The aria-labelledby attribute takes precedence as the element&apos;s text alternative (...)
If aria-labelledby is empty or undefined, the aria-label attribute, which defines an explicit text string, is used. (...)&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414702</commentid>
    <comment_count>1</comment_count>
      <attachid>95866</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-06-03 00:51:27 -0700</bug_when>
    <thetext>Created attachment 95866
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414914</commentid>
    <comment_count>2</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-06-03 08:40:15 -0700</bug_when>
    <thetext>I noticed that aria-labelledby was being returned in a node&apos;s title, while aria-label was being returned in a node&apos;s description. This change seems to add aria-labelledby text to a node&apos;s description, but should it also be removed from the title?

Also, I seem to remember the last time I added an accessibility layout test that this test needs to be suppressed from running on non-Mac platforms, because the accessibilityController implementation is currently Mac-specific.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415726</commentid>
    <comment_count>3</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-06-06 00:40:38 -0700</bug_when>
    <thetext>Here is what the Accessibility Programming Guidelines for Cocoa (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Accessibility/cocoaAXOverview/cocoaAXOverview.html#//apple_ref/doc/uid/20001057-BAJBCJHJ) say of the two currrently used attributes:

NSAccessibilityTitleAttribute: &quot;This attribute is required for any user interface object that displays a visible text title as part of its visual interface... Note that the title attribute is not intended to contain static text that serves as the title for a user interface element, but that is not part of its visual interface.  For objects that are accompanied by separate static text titles and descriptions, use the NSAccessibilityTitleUIElementAttribute and NSAccessibilityServesAsTitleForUIElementsAttribute attributes (described in “Provide Descriptive Information for All Elements”).&quot;

(For a moment I thought NSAccessibilityTitleUIElementAttribute might be appropriate, but hacking it in didn&apos;t seem to work, even dodging the issue of having more than one value for aria-labelledby.)

NSAccessibilityDescriptionAttribute: &quot;Available in Mac OS X version 10.4 and later, this attribute contains a localized string that describes the object’s purpose. All user interface objects that do not display a text title (and therefore do not include the title attribute) should include the description attribute to allow an assistive application to describe the purpose of the object to the user.&quot;

So it seems like it is appropriate to use the value from aria-labelledby, but not aria-label, as the NSAccessibilityTitle attribute; perhaps VoiceOver&apos;s ignoring it when generating the accessibility object hierarchy it is a quirk or bug? 

This also makes me wonder whether it would be better to have the AccessibilityObjectWrapper return the value of AccessibilityRenderObject::title() for NSAccessibilityDescriptionAttribute in the case where NSAccessibilityDescriptionAttribute is empty, rather than having the logic in AccessibilityRenderObject. I&apos;d really appreciate some more guidance -- the ARIA spec gives virtually no helpful information about this case, and I can&apos;t find any documentation on what VoiceOver looks for.

As for suppressing the test on non-Mac platforms; I&apos;m not sure how to do that, is it something that is done in code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>416126</commentid>
    <comment_count>4</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-06-06 16:56:55 -0700</bug_when>
    <thetext>I don&apos;t have a strong opinion on title vs description; I think it&apos;s more important that WebCore presents something consistent; the Mac port can choose to map those to the NSAccessibility APIs however it wants.

Here&apos;s a simpler example: take this button:

  &lt;button&gt;Alpha&lt;/button&gt;

Right now WebKit returns &quot;Alpha&quot; as either the title or the description - I don&apos;t recall which one - but it&apos;s not both.

Now, either of these two buttons should return &quot;Beta&quot; in place of whatever previously returned &quot;Alpha&quot;:

  &lt;button aria-label=&quot;Beta&quot;&gt;Alpha&lt;/button&gt;
  &lt;button aria-labelledby=&quot;beta&quot;&gt;Alpha&lt;/button&gt;
  &lt;span id=&quot;beta&quot;&gt;Beta&lt;/span&gt;

The ARIA spec is pretty clear that this is what should happen. Be sure to think of this in layers; WebCore should implement something that&apos;s consistent with the ARIA spec, and each WebKit port then matches this up with the appropriate platform APIs - i.e. there&apos;s no reason each platform must have a concept of &quot;title&quot; and &quot;description&quot; that agree.

For suppressing the test, look at files like LayoutTests/platform/win/Skipped - you&apos;ll need to add this test to each Skipped file for platforms that are unable to run this test. Currently that&apos;s every platform other than Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417127</commentid>
    <comment_count>5</comment_count>
      <attachid>96391</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-06-08 00:33:47 -0700</bug_when>
    <thetext>Created attachment 96391
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417128</commentid>
    <comment_count>6</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-06-08 00:34:18 -0700</bug_when>
    <thetext>Patch mostly unchanged; added another layout test to show the interaction between</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417129</commentid>
    <comment_count>7</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-06-08 00:35:33 -0700</bug_when>
    <thetext>Oops; meant to say, added another test to show the interaction between aria-label and aria-labelledby. After much thought, I think that this behaviour is correct; Chris, do you have any suggestions or thoughts?

Still for me to do is to test this change in Chromium on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417130</commentid>
    <comment_count>8</comment_count>
      <attachid>96391</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-06-08 00:46:08 -0700</bug_when>
    <thetext>Comment on attachment 96391
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1356
&gt; +        return ariaLabelledBy;

This is used in title();
String ariaLabel = ariaLabeledByAttribute(); 

I think we need to re-organize what goes into title vs. description. I think we need to rename title to accessibilityName and use accessibilityDescription for aria-describedby

But that&apos;s a big job. You should remove the call in ::title() so that it&apos;s only in ariaAXDescription.

I&apos;d guess you&apos;d have some Mac test failures with this. I also suspect these test won&apos;t pass on GTK and Win, since they probably return different prefixes for title and description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417132</commentid>
    <comment_count>9</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-06-08 00:51:16 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Here is what the Accessibility Programming Guidelines for Cocoa (http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Accessibility/cocoaAXOverview/cocoaAXOverview.html#//apple_ref/doc/uid/20001057-BAJBCJHJ) say of the two currrently used attributes:
&gt; 
&gt; NSAccessibilityTitleAttribute: &quot;This attribute is required for any user interface object that displays a visible text title as part of its visual interface... Note that the title attribute is not intended to contain static text that serves as the title for a user interface element, but that is not part of its visual interface.  For objects that are accompanied by separate static text titles and descriptions, use the NSAccessibilityTitleUIElementAttribute and NSAccessibilityServesAsTitleForUIElementsAttribute attributes (described in “Provide Descriptive Information for All Elements”).&quot;
&gt; 
&gt; (For a moment I thought NSAccessibilityTitleUIElementAttribute might be appropriate, but hacking it in didn&apos;t seem to work, even dodging the issue of having more than one value for aria-labelledby.)
&gt; 
&gt; NSAccessibilityDescriptionAttribute: &quot;Available in Mac OS X version 10.4 and later, this attribute contains a localized string that describes the object’s purpose. All user interface objects that do not display a text title (and therefore do not include the title attribute) should include the description attribute to allow an assistive application to describe the purpose of the object to the user.&quot;
&gt; 
&gt; So it seems like it is appropriate to use the value from aria-labelledby, but not aria-label, as the NSAccessibilityTitle attribute; perhaps VoiceOver&apos;s ignoring it when generating the accessibility object hierarchy it is a quirk or bug? 
&gt; 
&gt; This also makes me wonder whether it would be better to have the AccessibilityObjectWrapper return the value of AccessibilityRenderObject::title() for NSAccessibilityDescriptionAttribute in the case where NSAccessibilityDescriptionAttribute is empty, rather than having the logic in AccessibilityRenderObject. I&apos;d really appreciate some more guidance -- the ARIA spec gives virtually no helpful information about this case, and I can&apos;t find any documentation on what VoiceOver looks for.
&gt; 
&gt; As for suppressing the test on non-Mac platforms; I&apos;m not sure how to do that, is it something that is done in code?

This is a tricky issue I have been thinking about for a long time. There&apos;s no good way to map between what ARIA states and what the mac platform expects without it being very ugly. Like you noted, what happens in you have an aria-label on an &lt;button&gt;. Does it become the AXTitle or AXDesc? If it&apos;s the AXDesc, does the original AXTitle get removed? those rules would be unique for many elements.

My feeling is that we should have a method in AccessibilityObject called accessibilityName() -&gt; that will map to AXDescription.

and AXTitle will basically be empty.

aria-describedby would then be mapped to TitleUIElement

then we can have accessibilityDescription() which will probably just be aria-describedby and that can go to AXDescription</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417135</commentid>
    <comment_count>10</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-06-08 01:03:28 -0700</bug_when>
    <thetext>Oops, our comments crossed. Typing on a phone so sorry for brevity: your idea seems much like what i have been thinking, except I&apos;m not clear on how you envisage aria-labelledby being handled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417210</commentid>
    <comment_count>11</comment_count>
      <attachid>96391</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-06-08 06:46:49 -0700</bug_when>
    <thetext>Comment on attachment 96391
Patch

Attachment 96391 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/8777629</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418452</commentid>
    <comment_count>12</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-06-09 18:32:04 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 96391 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=96391&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1356
&gt; &gt; +        return ariaLabelledBy;
&gt; 
&gt; This is used in title();
&gt; String ariaLabel = ariaLabeledByAttribute(); 
&gt; 
&gt; I think we need to re-organize what goes into title vs. description. I think we need to rename title to accessibilityName and use accessibilityDescription for aria-describedby
&gt; 
&gt; But that&apos;s a big job. You should remove the call in ::title() so that it&apos;s only in ariaAXDescription.

I agree that file needs re-working and the mapping from aria attributes to VoiceOver attributes needs some more thought. I would love to help out with this effort, preferably with someone who has a better understanding of VoiceOver internals than me.

&gt; I&apos;d guess you&apos;d have some Mac test failures with this. I also suspect these test won&apos;t pass on GTK and Win, since they probably return different prefixes for title and description.

Yes, it breaks:
accessibility/aria-labelledby-on-input.html
accessibility/aria-labelledby-overrides-label.html
accessibility/aria-labelledby-stay-within.html
- on mac.

Would you suggest updating these tests to expect descriptions?

I&apos;m still working on testing the change in Chromium and on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418498</commentid>
    <comment_count>13</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-06-09 22:23:37 -0700</bug_when>
    <thetext>Manually tested in Chromium on mac; works as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418537</commentid>
    <comment_count>14</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-06-09 23:37:31 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 96391 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=96391&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1356
&gt; &gt; &gt; +        return ariaLabelledBy;
&gt; &gt; 
&gt; &gt; This is used in title();
&gt; &gt; String ariaLabel = ariaLabeledByAttribute(); 
&gt; &gt; 
&gt; &gt; I think we need to re-organize what goes into title vs. description. I think we need to rename title to accessibilityName and use accessibilityDescription for aria-describedby
&gt; &gt; 
&gt; &gt; But that&apos;s a big job. You should remove the call in ::title() so that it&apos;s only in ariaAXDescription.
&gt; 
&gt; I agree that file needs re-working and the mapping from aria attributes to VoiceOver attributes needs some more thought. I would love to help out with this effort, preferably with someone who has a better understanding of VoiceOver internals than me.
&gt; 
&gt; &gt; I&apos;d guess you&apos;d have some Mac test failures with this. I also suspect these test won&apos;t pass on GTK and Win, since they probably return different prefixes for title and description.
&gt; 
&gt; Yes, it breaks:
&gt; accessibility/aria-labelledby-on-input.html
&gt; accessibility/aria-labelledby-overrides-label.html
&gt; accessibility/aria-labelledby-stay-within.html
&gt; - on mac.
&gt; 

i&apos;d have to see the actual result output to see if it&apos;s still OK

&gt; Would you suggest updating these tests to expect descriptions?
&gt; 
&gt; I&apos;m still working on testing the change in Chromium and on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421027</commentid>
    <comment_count>15</comment_count>
      <attachid>97234</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-06-14 22:57:41 -0700</bug_when>
    <thetext>Created attachment 97234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421029</commentid>
    <comment_count>16</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-06-14 22:59:47 -0700</bug_when>
    <thetext>I&apos;ve adjusted the relevant tests in this patch; please let me know what you think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421031</commentid>
    <comment_count>17</comment_count>
      <attachid>97234</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-06-14 23:05:06 -0700</bug_when>
    <thetext>Comment on attachment 97234
Patch

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

&gt; LayoutTests/accessibility/aria-description-prefers-aria-labelledby.html:1
&gt; +17390411&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;

does this test provide any extra coverage that aria-labelledby-overrides-aria-label.html does not? I would combine both of these tests into one  if they do indeed test something different. What they&apos;re testing does not seem to be different enough to warrant two tests on the same checkin

&gt; LayoutTests/accessibility/aria-labelledby-overrides-aria-label.html:21
&gt; +    description(&quot;This tests that if aria-labelledby is used, then aria-label attributes are not used.&quot;);

I would also verify that aria-labeledby works as expected

&gt; LayoutTests/accessibility/aria-labelledby-overrides-aria-label.html:44
&gt; +          shouldBe(&quot;obj.description&quot;, &apos;&quot;AXDescription: &quot;&apos;);

these comments in this section seem superfluous, in that they merely state what is happening, not why. i would just remove them.

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1350
&gt; +    const AtomicString&amp; ariaLabelledBy = ariaLabeledByAttribute();

looks like labeled is spelled &quot;labeled&quot; in the rest of the code, so we should stick with that</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421655</commentid>
    <comment_count>18</comment_count>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-06-15 17:36:53 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 97234 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=97234&amp;action=review
&gt; 
&gt; &gt; LayoutTests/accessibility/aria-description-prefers-aria-labelledby.html:1
&gt; &gt; +17390411&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
&gt; 
&gt; does this test provide any extra coverage that aria-labelledby-overrides-aria-label.html does not? I would combine both of these tests into one  if they do indeed test something different. What they&apos;re testing does not seem to be different enough to warrant two tests on the same checkin

You are right; removed this test.

&gt; &gt; LayoutTests/accessibility/aria-labelledby-overrides-aria-label.html:21
&gt; &gt; +    description(&quot;This tests that if aria-labelledby is used, then aria-label attributes are not used.&quot;);
&gt; 
&gt; I would also verify that aria-labeledby works as expected

Done.

&gt; &gt; LayoutTests/accessibility/aria-labelledby-overrides-aria-label.html:44
&gt; &gt; +          shouldBe(&quot;obj.description&quot;, &apos;&quot;AXDescription: &quot;&apos;);
&gt; 
&gt; these comments in this section seem superfluous, in that they merely state what is happening, not why. i would just remove them.

Done.

&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.cpp:1350
&gt; &gt; +    const AtomicString&amp; ariaLabelledBy = ariaLabeledByAttribute();
&gt; 
&gt; looks like labeled is spelled &quot;labeled&quot; in the rest of the code, so we should stick with that

Ok, I&apos;ll keep it consistent for now, but I think it would be better if it were spelled &quot;labelled&quot; throughout, as that is the spelling used in the standard (see bug 62351).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421660</commentid>
    <comment_count>19</comment_count>
      <attachid>97376</attachid>
    <who name="Alice Boxhall">aboxhall</who>
    <bug_when>2011-06-15 17:41:08 -0700</bug_when>
    <thetext>Created attachment 97376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422133</commentid>
    <comment_count>20</comment_count>
      <attachid>97376</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2011-06-16 12:14:52 -0700</bug_when>
    <thetext>Comment on attachment 97376
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423221</commentid>
    <comment_count>21</comment_count>
      <attachid>97376</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-18 13:27:44 -0700</bug_when>
    <thetext>Comment on attachment 97376
Patch

Clearing flags on attachment: 97376

Committed r89204: &lt;http://trac.webkit.org/changeset/89204&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>423222</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-18 13:27:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95866</attachid>
            <date>2011-06-03 00:51:27 -0700</date>
            <delta_ts>2011-06-08 00:33:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61995-20110603175125.patch</filename>
            <type>text/plain</type>
            <size>5967</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc0NTMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlMTZjYWM1N2JlYjUyODlmZDQ5YTJj
ODU3MTFhMzlhYTJmNjdlM2ZkLi40NzEzNmVjNTFiZGUxZWJkYWMzZjBlYmU0ZWNkZTM4N2FhMDI0
MTYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDYtMDMgIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWNjZXNzaWJpbGl0eSBkZXNjcmlwdGlvbiBmb3IgYW4gZWxlbWVudCBz
aG91bGQgbWFrZSB1c2Ugb2YgYXJpYS1sYWJlbGxlZGJ5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE5OTUKKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRieS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJz
LWFyaWEtbGFiZWxsZWRieS5odG1sOiBBZGRlZC4KKwogMjAxMS0wNS0yNiAgUWkgWmhhbmcgIDxx
aS4yLnpoYW5nQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5n
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWRlc2NyaXB0aW9u
LXByZWZlcnMtYXJpYS1sYWJlbGxlZGJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRieS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWIyMmVmZjJiMTFkZjIxNWZmMDUxZDdiNzA5YmE0NTY1MTk3M2E4
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1kZXNj
cmlwdGlvbi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRieS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
MiBAQAorQmFuYW5hOgorQW4gYXJ0aWNsZSBhYm91dCBiYW5hbmFzLgorCitUaGlzIGFydGljbGUg
aGFzIHR3byBsaW5lcy4KKworQW5vdGhlciBhcnRpY2xlIGFib3V0IGJhbmFuYXMuCisKK1RoaXMg
YXJ0aWNsZSBhbHNvIGhhcyB0d28gbGluZXMuCisKK0FuIGFydGljbGUgYWJvdXQgcGVhY2hlcy4K
KworVGhpcyBhcnRpY2xlIGFsc28gaGFzIHR3byBsaW5lcy4KKworVGhpcyB0ZXN0cyB0aGF0IGFy
aWEtbGFiZWxsZWRieSBpcyB1c2VkIGluIHByZWZlcmVuY2UgdG8gYXJpYS1sYWJlbCBpbiBjcmVh
dGluZyBhbiBhY2Nlc3NpYmlsaXR5IGRlc2NyaXB0aW9uIGZvciBhbiBlbGVtZW50LiBUaGUgZGVz
Y3JpcHRpb24gZm9yIHRoZSBlbGVtZW50IHNob3VsZCBiZSB0aGUgdmFsdWUgZnJvbSB0aGUgZWxl
bWVudCByZWZlcnJlZCB0byBieSBhcmlhLWxhYmVsbGVkYnksIGV2ZW4gaWYgYW4gYXJpYS1sYWJl
bCBpcyBwcmVzZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCisKK1BBU1Mg
b2JqLmRlc2NyaXB0aW9uIGlzICJBWERlc2NyaXB0aW9uOiBCYW5hbmEiCitQQVNTIG9iai5kZXNj
cmlwdGlvbiBpcyAiQVhEZXNjcmlwdGlvbjogQmFuYW5hIgorUEFTUyBvYmouZGVzY3JpcHRpb24g
aXMgIkFYRGVzY3JpcHRpb246IFBlYWNoZXMiCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRieS5o
dG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWRlc2NyaXB0aW9uLXByZWZlcnMt
YXJpYS1sYWJlbGxlZGJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzU3NjhkZDUwMDFlMTg4ZDQzZmVjMGE5
YzdiZmY5NWQ1YjhjNmI2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRieS5odG1sCkBAIC0w
LDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQ+Cit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gZmFsc2U7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9k
eSI+Cis8c3BhbiBpZD0iYmFuYW5hLWxhYmVsIj5CYW5hbmE8L3NwYW4+OgorPGRpdiByb2xlPSJh
cnRpY2xlIiBhcmlhLWxhYmVsbGVkYnk9ImJhbmFuYS1sYWJlbCI+CisgIDxwPkFuIGFydGljbGUg
YWJvdXQgYmFuYW5hcy48L3A+CisgIDxwPlRoaXMgYXJ0aWNsZSBoYXMgdHdvIGxpbmVzLjwvcD4K
KzwvZGl2PgorPGRpdiByb2xlPSJhcnRpY2xlIiBhcmlhLWxhYmVsbGVkYnk9ImJhbmFuYS1sYWJl
bCIgYXJpYS1sYWJlbD0iUGVhY2hlcyI+CisgIDxwPkFub3RoZXIgYXJ0aWNsZSBhYm91dCBiYW5h
bmFzLjwvcD4KKyAgPHA+VGhpcyBhcnRpY2xlIGFsc28gaGFzIHR3byBsaW5lcy48L3A+Cis8L2Rp
dj4KKzxkaXYgcm9sZT0iYXJ0aWNsZSIgYXJpYS1sYWJlbD0iUGVhY2hlcyI+CisgIDxwPkFuIGFy
dGljbGUgYWJvdXQgcGVhY2hlcy48L3A+CisgIDxwPlRoaXMgYXJ0aWNsZSBhbHNvIGhhcyB0d28g
bGluZXMuPC9wPgorPC9kaXY+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzx1bCBpZD0iY29u
c29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0
aGF0IGFyaWEtbGFiZWxsZWRieSBpcyB1c2VkIGluIHByZWZlcmVuY2UgdG8gYXJpYS1sYWJlbCBp
biBjcmVhdGluZyBhbiBhY2Nlc3NpYmlsaXR5IGRlc2NyaXB0aW9uIGZvciBhbiBlbGVtZW50LiAi
ICsKKyAgICAgICAgICAgICAgICAiVGhlIGRlc2NyaXB0aW9uIGZvciB0aGUgZWxlbWVudCBzaG91
bGQgYmUgdGhlIHZhbHVlIGZyb20gdGhlIGVsZW1lbnQgcmVmZXJyZWQgdG8gYnkgYXJpYS1sYWJl
bGxlZGJ5LCBldmVuIGlmIGFuIGFyaWEtbGFiZWwgaXMgcHJlc2VudC4iKTsKKworICAgIGZ1bmN0
aW9uIGxvZyhzdHIpIHsKKyAgICAgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29uc29sZSIpOworICAgICAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJsaSIpOworICAgICAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShz
dHIpKTsKKyAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7CisgICAgfQorCisgICAgaWYg
KHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICAgIHZhciBib2R5ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJvZHkiKTsKKyAgICAgICAgICBib2R5LmZvY3VzKCk7
CisgICAgICAgICAgdmFyIG9iaiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVt
ZW50LmNoaWxkQXRJbmRleCgxKTsKKyAgICAgICAgICBzaG91bGRCZSgib2JqLmRlc2NyaXB0aW9u
IiwgJyJBWERlc2NyaXB0aW9uOiBCYW5hbmEiJyk7CisgICAgICAgICAgb2JqID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4KDIpOworICAgICAgICAg
IHNob3VsZEJlKCJvYmouZGVzY3JpcHRpb24iLCAnIkFYRGVzY3JpcHRpb246IEJhbmFuYSInKTsK
KyAgICAgICAgICBvYmogPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5j
aGlsZEF0SW5kZXgoMyk7CisgICAgICAgICAgc2hvdWxkQmUoIm9iai5kZXNjcmlwdGlvbiIsICci
QVhEZXNjcmlwdGlvbjogUGVhY2hlcyInKTsKKyAgICB9CisKKyAgICBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDY2MzY0MzllMzk3NDUxMjc5ZjFiYzYyOTNkY2ZmODMwMWU1ODNjYzMuLjgzNTU5MjNmMjMz
NmRjOGY3Njc4ZmI0ODc0OWVmZGYyYWNmNTFhZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxMS0wNi0wMyAgQWxpY2UgQm94aGFsbCAgPGFib3hoYWxsQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBY2Nlc3NpYmls
aXR5IGRlc2NyaXB0aW9uIGZvciBhbiBlbGVtZW50IHNob3VsZCBtYWtlIHVzZSBvZiBhcmlhLWxh
YmVsbGVkYnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MTk5NQorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmlwdGlvbi1w
cmVmZXJzLWFyaWEtbGFiZWxsZWRieS5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6YXJpYUFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbik6IFJldHVybiB2
YWx1ZSBmcm9tIGFyaWEtbGFiZWxsZWRieSBpbiBwcmVmZXJlbmNlIHRvIHZhbHVlIGZyb20gYXJp
YS1sYWJlbC4KKwogMjAxMS0wNS0yNiAgQW5uaWUgU3VsbGl2YW4gIDxzdWxsaXZhbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAKaW5kZXggYzEyYTNlYTYyZjkyOGRlZTJkYzVkODZkNjJmNjA1MTFiNzk5MjQ0ZS4uYjJk
M2RkMjcxNzAxNmE2ZDhjNmM4ZTIyYmI2MjZkZDA5OWE4MzI0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwCkBAIC0xMzUxLDYgKzEzNTEsMTAgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmFyaWFEZXNjcmliZWRCeUF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgCiBTdHJpbmcgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0
CiB7CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmlhTGFiZWxsZWRCeSA9IGFyaWFMYWJlbGVk
QnlBdHRyaWJ1dGUoKTsKKyAgICBpZiAoIWFyaWFMYWJlbGxlZEJ5LmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuIGFyaWFMYWJlbGxlZEJ5OworCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmlh
TGFiZWwgPSBnZXRBdHRyaWJ1dGUoYXJpYV9sYWJlbEF0dHIpOwogICAgIGlmICghYXJpYUxhYmVs
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGFyaWFMYWJlbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96391</attachid>
            <date>2011-06-08 00:33:47 -0700</date>
            <delta_ts>2011-06-14 22:57:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61995-20110608173344.patch</filename>
            <type>text/plain</type>
            <size>9734</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgzMjkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmZDczNWY1NGM2MTE1NGFhOWU2N2Q2
ZjkwZDczNGIyMTA3NTEwNzlkLi4xMDg1ODkzM2MzNzczOTcxYjMyMTUyOGU5NDk4ODhlZWM0YjYz
YmM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDYtMDggIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWNjZXNzaWJpbGl0eSBkZXNjcmlwdGlvbiBmb3IgYW4gZWxlbWVudCBz
aG91bGQgbWFrZSB1c2Ugb2YgYXJpYS1sYWJlbGxlZGJ5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE5OTUKKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRieS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJz
LWFyaWEtbGFiZWxsZWRieS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2Fy
aWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1hcmlhLWxh
YmVsLmh0bWw6IEFkZGVkLgorCiAyMDExLTA2LTA3ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBTa2lwIG5ldyBmYWlsaW5nIHRlc3RzLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWRlc2NyaXB0aW9uLXByZWZl
cnMtYXJpYS1sYWJlbGxlZGJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRieS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWIzZDA2NzAzNmE0YWM2YzBmODQ0MDZkYjI2YjYwZmZhNmYwYzE1ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmlwdGlv
bi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRieS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMiBAQAor
MTczOTA0MTEgQmFuYW5hOgorQW4gYXJ0aWNsZSBhYm91dCBiYW5hbmFzLgorCitUaGlzIGFydGlj
bGUgaGFzIHR3byBsaW5lcy4KKworQW5vdGhlciBhcnRpY2xlIGFib3V0IGJhbmFuYXMuCisKK1Ro
aXMgYXJ0aWNsZSBhbHNvIGhhcyB0d28gbGluZXMuCisKK0FuIGFydGljbGUgYWJvdXQgcGVhY2hl
cy4KKworVGhpcyBhcnRpY2xlIGFsc28gaGFzIHR3byBsaW5lcy4KKworVGhpcyB0ZXN0cyB0aGF0
IGFyaWEtbGFiZWxsZWRieSBpcyB1c2VkIGluIHByZWZlcmVuY2UgdG8gYXJpYS1sYWJlbCBpbiBj
cmVhdGluZyBhbiBhY2Nlc3NpYmlsaXR5IGRlc2NyaXB0aW9uIGZvciBhbiBlbGVtZW50LiBUaGUg
ZGVzY3JpcHRpb24gZm9yIHRoZSBlbGVtZW50IHNob3VsZCBiZSB0aGUgdmFsdWUgZnJvbSB0aGUg
ZWxlbWVudCByZWZlcnJlZCB0byBieSBhcmlhLWxhYmVsbGVkYnksIGV2ZW4gaWYgYW4gYXJpYS1s
YWJlbCBpcyBwcmVzZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCisKK1BB
U1Mgb2JqLmRlc2NyaXB0aW9uIGlzICJBWERlc2NyaXB0aW9uOiBCYW5hbmEiCitQQVNTIG9iai5k
ZXNjcmlwdGlvbiBpcyAiQVhEZXNjcmlwdGlvbjogQmFuYW5hIgorUEFTUyBvYmouZGVzY3JpcHRp
b24gaXMgIkFYRGVzY3JpcHRpb246IFBlYWNoZXMiCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRi
eS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWRlc2NyaXB0aW9uLXByZWZl
cnMtYXJpYS1sYWJlbGxlZGJ5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWM1NTFmMzVlNGU2ZTI0NjMzNDZh
MDY2NzQ4ZDJmODFlZTBhMDBjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRieS5odG1sCkBA
IC0wLDAgKzEsNTUgQEAKKzE3MzkwNDExPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdD4KK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IGlkPSJib2R5Ij4KKzxzcGFuIGlkPSJiYW5hbmEtbGFiZWwiPkJhbmFuYTwvc3Bhbj46Cis8
ZGl2IHJvbGU9ImFydGljbGUiIGFyaWEtbGFiZWxsZWRieT0iYmFuYW5hLWxhYmVsIj4KKyAgPHA+
QW4gYXJ0aWNsZSBhYm91dCBiYW5hbmFzLjwvcD4KKyAgPHA+VGhpcyBhcnRpY2xlIGhhcyB0d28g
bGluZXMuPC9wPgorPC9kaXY+Cis8ZGl2IHJvbGU9ImFydGljbGUiIGFyaWEtbGFiZWxsZWRieT0i
YmFuYW5hLWxhYmVsIiBhcmlhLWxhYmVsPSJQZWFjaGVzIj4KKyAgPHA+QW5vdGhlciBhcnRpY2xl
IGFib3V0IGJhbmFuYXMuPC9wPgorICA8cD5UaGlzIGFydGljbGUgYWxzbyBoYXMgdHdvIGxpbmVz
LjwvcD4KKzwvZGl2PgorPGRpdiByb2xlPSJhcnRpY2xlIiBhcmlhLWxhYmVsPSJQZWFjaGVzIj4K
KyAgPHA+QW4gYXJ0aWNsZSBhYm91dCBwZWFjaGVzLjwvcD4KKyAgPHA+VGhpcyBhcnRpY2xlIGFs
c28gaGFzIHR3byBsaW5lcy48L3A+Cis8L2Rpdj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PHVsIGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIHRoYXQgYXJpYS1sYWJlbGxlZGJ5IGlzIHVzZWQgaW4gcHJlZmVyZW5jZSB0byBh
cmlhLWxhYmVsIGluIGNyZWF0aW5nIGFuIGFjY2Vzc2liaWxpdHkgZGVzY3JpcHRpb24gZm9yIGFu
IGVsZW1lbnQuICIgKworICAgICAgICAgICAgICAgICJUaGUgZGVzY3JpcHRpb24gZm9yIHRoZSBl
bGVtZW50IHNob3VsZCBiZSB0aGUgdmFsdWUgZnJvbSB0aGUgZWxlbWVudCByZWZlcnJlZCB0byBi
eSBhcmlhLWxhYmVsbGVkYnksIGV2ZW4gaWYgYW4gYXJpYS1sYWJlbCBpcyBwcmVzZW50LiIpOwor
CisgICAgZnVuY3Rpb24gbG9nKHN0cikgeworICAgICAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7CisgICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKHN0cikpOworICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKKyAgICB9
CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAg
dmFyIGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm9keSIpOworICAgICAgICAgIGJv
ZHkuZm9jdXMoKTsKKyAgICAgICAgICB2YXIgb2JqID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
Zm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4KDEpOworICAgICAgICAgIHNob3VsZEJlKCJvYmou
ZGVzY3JpcHRpb24iLCAnIkFYRGVzY3JpcHRpb246IEJhbmFuYSInKTsKKyAgICAgICAgICBvYmog
PSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5jaGlsZEF0SW5kZXgoMik7
CisgICAgICAgICAgc2hvdWxkQmUoIm9iai5kZXNjcmlwdGlvbiIsICciQVhEZXNjcmlwdGlvbjog
QmFuYW5hIicpOworICAgICAgICAgIG9iaiA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3Vz
ZWRFbGVtZW50LmNoaWxkQXRJbmRleCgzKTsKKyAgICAgICAgICBzaG91bGRCZSgib2JqLmRlc2Ny
aXB0aW9uIiwgJyJBWERlc2NyaXB0aW9uOiBQZWFjaGVzIicpOworICAgIH0KKworICAgIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1v
dmVycmlkZXMtYXJpYS1sYWJlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmQ4M2ZlYjIwNGE0ZGE5YzJhNGVhZGU5M2Q2NWIzODVkMzc0ZTcyNAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92
ZXJyaWRlcy1hcmlhLWxhYmVsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitBbHBoYSBC
ZXRhIERlbHRhIEVwc2lsb24KK1RoaXMgdGVzdHMgdGhhdCBpZiBhcmlhLWxhYmVsbGVkYnkgaXMg
dXNlZCwgdGhlbiBhcmlhLWxhYmVsIGF0dHJpYnV0ZXMgYXJlIG5vdCB1c2VkLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBvYmoudGl0bGUgaXMgIkFYVGl0bGU6IEFscGhh
IgorUEFTUyBvYmouZGVzY3JpcHRpb24gaXMgIkFYRGVzY3JpcHRpb246ICIKK1BBU1Mgb2JqLnRp
dGxlIGlzICJBWFRpdGxlOiBCZXRhIgorUEFTUyBvYmouZGVzY3JpcHRpb24gaXMgIkFYRGVzY3Jp
cHRpb246IEdhbW1hIgorUEFTUyBvYmoudGl0bGUgaXMgIkFYVGl0bGU6IEVwc2lsb24iCitQQVNT
IG9iai5kZXNjcmlwdGlvbiBpcyAiQVhEZXNjcmlwdGlvbjogRXBzaWxvbiIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJl
bC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJp
ZGVzLWFyaWEtbGFiZWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDUxNmEwOWVlZjIyMWQxZjg2NDkyYTg2
MGU5NmY1ZTcwNjk5NzZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWwuaHRtbApAQCAtMCwwICsx
LDYyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0PgordmFyIHN1Y2Nlc3NmdWxseVBh
cnNlZCA9IGZhbHNlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgor
Cis8YnV0dG9uPkFscGhhPC9idXR0b24+Cis8YnV0dG9uIGFyaWEtbGFiZWw9IkdhbW1hIj5CZXRh
PC9idXR0b24+Cis8YnV0dG9uIGFyaWEtbGFiZWxsZWRieT0iZXBzaWxvbiIgYXJpYS1sYWJlbD0i
WmV0YSI+RGVsdGE8L2J1dHRvbj4KKzxzcGFuIGlkPSJlcHNpbG9uIj5FcHNpbG9uPC9zcGFuPgor
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzx1bCBpZD0iY29uc29sZSI+PC91bD4KKworPHNj
cmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGlmIGFyaWEtbGFiZWxsZWRi
eSBpcyB1c2VkLCB0aGVuIGFyaWEtbGFiZWwgYXR0cmlidXRlcyBhcmUgbm90IHVzZWQuIik7CisK
KyAgICBmdW5jdGlvbiBsb2coc3RyKSB7CisgICAgICAgIHZhciBjb25zb2xlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKKyAgICAgICAgdmFyIGxpID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoc3RyKSk7CisgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hpbGQobGkpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGxvZ0FYT2JqZWN0KG9iaikgeworICAgICAgICAgIGxvZygiZm9yICIg
KyBvYmouYWxsQXR0cmlidXRlcygpKTsKKyAgICAgICAgICBsb2coImNoaWxkcmVuOlxuIiArIG9i
ai5hdHRyaWJ1dGVzT2ZDaGlsZHJlbigpKTsKKyAgICAgICAgICBsb2coIm9iai50aXRsZSBpcyAi
ICsgb2JqLnRpdGxlKTsKKyAgICAgICAgICBsb2coIm9iai5kZXNjcmlwdGlvbiBpcyAiICsgb2Jq
LmRlc2NyaXB0aW9uKTsKKyAgICB9CisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcikgeworICAgICAgICAgIHZhciBib2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJv
ZHkiKTsKKyAgICAgICAgICBib2R5LmZvY3VzKCk7CisgICAgICAgICAgdmFyIGdyb3VwT2JqID0g
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOwor
ICAgICAgICAgIHZhciBvYmogPSBncm91cE9iai5jaGlsZEF0SW5kZXgoMCk7CisgICAgICAgICAg
Ly8gVGl0bGUgZnJvbSB0aGUgYnV0dG9uIGNhcHRpb24KKyAgICAgICAgICBzaG91bGRCZSgib2Jq
LnRpdGxlIiwgJyJBWFRpdGxlOiBBbHBoYSInKTsKKyAgICAgICAgICAvLyBObyBkZXNjcmlwdGlv
bgorICAgICAgICAgIHNob3VsZEJlKCJvYmouZGVzY3JpcHRpb24iLCAnIkFYRGVzY3JpcHRpb246
ICInKTsKKyAgICAgICAgICBvYmogPSBncm91cE9iai5jaGlsZEF0SW5kZXgoMSk7CisgICAgICAg
ICAgLy8gVGl0bGUgZnJvbSB0aGUgYnV0dG9uIGNhcHRpb24KKyAgICAgICAgICBzaG91bGRCZSgi
b2JqLnRpdGxlIiwgJyJBWFRpdGxlOiBCZXRhIicpOworICAgICAgICAgIC8vIERlc2NyaXB0aW9u
IGZyb20gYXJpYS1sYWJlbAorICAgICAgICAgIHNob3VsZEJlKCJvYmouZGVzY3JpcHRpb24iLCAn
IkFYRGVzY3JpcHRpb246IEdhbW1hIicpOworICAgICAgICAgIG9iaiA9IGdyb3VwT2JqLmNoaWxk
QXRJbmRleCgyKTsKKyAgICAgICAgICAvLyBUaXRsZSBmcm9tIGFyaWEtbGFiZWxsZWRieSBlbGVt
ZW50LCBhcmlhLWxhYmVsIGFuZCBidXR0b24gY2FwdGlvbiBhcmUgaWdub3JlZAorICAgICAgICAg
IHNob3VsZEJlKCJvYmoudGl0bGUiLCAnIkFYVGl0bGU6IEVwc2lsb24iJyk7CisgICAgICAgICAg
Ly8gRGVzY3JpcHRpb24gZnJvbSBhcmlhLWxhYmVsbGVkYnkgZWxlbWVudCwgYXJpYS1sYWJlbCBp
cyBpZ25vcmVkCisgICAgICAgICAgc2hvdWxkQmUoIm9iai5kZXNjcmlwdGlvbiIsICciQVhEZXNj
cmlwdGlvbjogRXBzaWxvbiInKTsKKyAgICB9CisKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDA2
NTg3MmU0MDgxNjM1NGRiNGUwNDhhMGJlOGFkYmVjYzFmYWQ5ZTguLmY2N2U0MzI1Yzc4YWRkMTEx
YzRiZjY5YjVlOTU5MDA2MjI5NGUwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
MS0wNi0wOCAgQWxpY2UgQm94aGFsbCAgPGFib3hoYWxsQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBY2Nlc3NpYmlsaXR5IGRl
c2NyaXB0aW9uIGZvciBhbiBlbGVtZW50IHNob3VsZCBtYWtlIHVzZSBvZiBhcmlhLWxhYmVsbGVk
YnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTk5
NQorCisgICAgICAgIFRlc3RzOiBhY2Nlc3NpYmlsaXR5L2FyaWEtZGVzY3JpcHRpb24tcHJlZmVy
cy1hcmlhLWxhYmVsbGVkYnkuaHRtbAorICAgICAgICAgICAgICAgYWNjZXNzaWJpbGl0eS9hcmlh
LWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWwuaHRtbAorCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFyaWFBY2Nlc3NpYmlsaXR5RGVzY3JpcHRpb24p
OiBSZXR1cm4gdmFsdWUgZnJvbSBhcmlhLWxhYmVsbGVkYnkgaW4gcHJlZmVyZW5jZSB0byB2YWx1
ZSBmcm9tIGFyaWEtbGFiZWwuCisKIDIwMTEtMDYtMDcgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hp
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAppbmRleCBiODgwZTFkYTdlNWJjODFmMmQ3ZjYxZThiZDVkNDk5OWNjY2E0MjJh
Li4xMTZiNTBlZDU3Y2Y0YWZlOWRkYTU5MTRmNDcwYTlhMjJhMTBmNTYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHAKQEAgLTEzNTEsNiArMTM1MSwxMCBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6YXJpYURlc2NyaWJlZEJ5QXR0cmlidXRlKCkgY29uc3QKICAgICAKIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkg
Y29uc3QKIHsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIGFyaWFMYWJlbGxlZEJ5ID0gYXJpYUxh
YmVsZWRCeUF0dHJpYnV0ZSgpOworICAgIGlmICghYXJpYUxhYmVsbGVkQnkuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm4gYXJpYUxhYmVsbGVkQnk7CisKICAgICBjb25zdCBBdG9taWNTdHJpbmcm
IGFyaWFMYWJlbCA9IGdldEF0dHJpYnV0ZShhcmlhX2xhYmVsQXR0cik7CiAgICAgaWYgKCFhcmlh
TGFiZWwuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gYXJpYUxhYmVsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97234</attachid>
            <date>2011-06-14 22:57:41 -0700</date>
            <delta_ts>2011-06-15 17:40:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61995-20110615155739.patch</filename>
            <type>text/plain</type>
            <size>14685</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODg1MTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YzY1NGM3NzM0OGNkMGI1OWJmOTVk
MTAyNDc2NDA0ZjBmMmUwMWUwLi4xNTQxNDZjMzVkMTkzZjNjNTAzZDdhZjJhZWJjZTExODRkYmUz
ZTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDYtMTQgIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWNjZXNzaWJpbGl0eSBkZXNjcmlwdGlvbiBmb3IgYW4gZWxlbWVudCBz
aG91bGQgbWFrZSB1c2Ugb2YgYXJpYS1sYWJlbGxlZGJ5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE5OTUKKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRieS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJz
LWFyaWEtbGFiZWxsZWRieS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2Fy
aWEtbGFiZWxsZWRieS1vbi1pbnB1dC5odG1sOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXJp
YS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1hcmlhLWxhYmVsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFi
ZWwuaHRtbDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnkt
b3ZlcnJpZGVzLWxhYmVsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2Fy
aWEtbGFiZWxsZWRieS1vdmVycmlkZXMtbGFiZWwuaHRtbDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2FyaWEtbGFiZWxsZWRieS1zdGF5LXdpdGhpbi5odG1sOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vbi1pbnB1dC1leHBlY3RlZC50eHQ6
CisKIDIwMTEtMDYtMDkgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLWRlc2NyaXB0aW9uLXByZWZlcnMtYXJpYS1sYWJlbGxlZGJ5LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJz
LWFyaWEtbGFiZWxsZWRieS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWIzZDA2NzAzNmE0YWM2
YzBmODQ0MDZkYjI2YjYwZmZhNmYwYzE1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmlwdGlvbi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRieS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMiBAQAorMTczOTA0MTEgQmFuYW5hOgorQW4gYXJ0aWNs
ZSBhYm91dCBiYW5hbmFzLgorCitUaGlzIGFydGljbGUgaGFzIHR3byBsaW5lcy4KKworQW5vdGhl
ciBhcnRpY2xlIGFib3V0IGJhbmFuYXMuCisKK1RoaXMgYXJ0aWNsZSBhbHNvIGhhcyB0d28gbGlu
ZXMuCisKK0FuIGFydGljbGUgYWJvdXQgcGVhY2hlcy4KKworVGhpcyBhcnRpY2xlIGFsc28gaGFz
IHR3byBsaW5lcy4KKworVGhpcyB0ZXN0cyB0aGF0IGFyaWEtbGFiZWxsZWRieSBpcyB1c2VkIGlu
IHByZWZlcmVuY2UgdG8gYXJpYS1sYWJlbCBpbiBjcmVhdGluZyBhbiBhY2Nlc3NpYmlsaXR5IGRl
c2NyaXB0aW9uIGZvciBhbiBlbGVtZW50LiBUaGUgZGVzY3JpcHRpb24gZm9yIHRoZSBlbGVtZW50
IHNob3VsZCBiZSB0aGUgdmFsdWUgZnJvbSB0aGUgZWxlbWVudCByZWZlcnJlZCB0byBieSBhcmlh
LWxhYmVsbGVkYnksIGV2ZW4gaWYgYW4gYXJpYS1sYWJlbCBpcyBwcmVzZW50LgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworCisKK1BBU1Mgb2JqLmRlc2NyaXB0aW9uIGlzICJBWERl
c2NyaXB0aW9uOiBCYW5hbmEiCitQQVNTIG9iai5kZXNjcmlwdGlvbiBpcyAiQVhEZXNjcmlwdGlv
bjogQmFuYW5hIgorUEFTUyBvYmouZGVzY3JpcHRpb24gaXMgIkFYRGVzY3JpcHRpb246IFBlYWNo
ZXMiCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1kZXNj
cmlwdGlvbi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRieS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLWRlc2NyaXB0aW9uLXByZWZlcnMtYXJpYS1sYWJlbGxlZGJ5Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWM1NTFmMzVlNGU2ZTI0NjMzNDZhMDY2NzQ4ZDJmODFlZTBhMDBjYQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmlwdGlvbi1w
cmVmZXJzLWFyaWEtbGFiZWxsZWRieS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzE3MzkwNDExPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxz
ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKzxzcGFuIGlkPSJi
YW5hbmEtbGFiZWwiPkJhbmFuYTwvc3Bhbj46Cis8ZGl2IHJvbGU9ImFydGljbGUiIGFyaWEtbGFi
ZWxsZWRieT0iYmFuYW5hLWxhYmVsIj4KKyAgPHA+QW4gYXJ0aWNsZSBhYm91dCBiYW5hbmFzLjwv
cD4KKyAgPHA+VGhpcyBhcnRpY2xlIGhhcyB0d28gbGluZXMuPC9wPgorPC9kaXY+Cis8ZGl2IHJv
bGU9ImFydGljbGUiIGFyaWEtbGFiZWxsZWRieT0iYmFuYW5hLWxhYmVsIiBhcmlhLWxhYmVsPSJQ
ZWFjaGVzIj4KKyAgPHA+QW5vdGhlciBhcnRpY2xlIGFib3V0IGJhbmFuYXMuPC9wPgorICA8cD5U
aGlzIGFydGljbGUgYWxzbyBoYXMgdHdvIGxpbmVzLjwvcD4KKzwvZGl2PgorPGRpdiByb2xlPSJh
cnRpY2xlIiBhcmlhLWxhYmVsPSJQZWFjaGVzIj4KKyAgPHA+QW4gYXJ0aWNsZSBhYm91dCBwZWFj
aGVzLjwvcD4KKyAgPHA+VGhpcyBhcnRpY2xlIGFsc28gaGFzIHR3byBsaW5lcy48L3A+Cis8L2Rp
dj4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPHVsIGlkPSJjb25zb2xlIj48L2Rpdj4KKwor
PHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgYXJpYS1sYWJlbGxl
ZGJ5IGlzIHVzZWQgaW4gcHJlZmVyZW5jZSB0byBhcmlhLWxhYmVsIGluIGNyZWF0aW5nIGFuIGFj
Y2Vzc2liaWxpdHkgZGVzY3JpcHRpb24gZm9yIGFuIGVsZW1lbnQuICIgKworICAgICAgICAgICAg
ICAgICJUaGUgZGVzY3JpcHRpb24gZm9yIHRoZSBlbGVtZW50IHNob3VsZCBiZSB0aGUgdmFsdWUg
ZnJvbSB0aGUgZWxlbWVudCByZWZlcnJlZCB0byBieSBhcmlhLWxhYmVsbGVkYnksIGV2ZW4gaWYg
YW4gYXJpYS1sYWJlbCBpcyBwcmVzZW50LiIpOworCisgICAgZnVuY3Rpb24gbG9nKHN0cikgewor
ICAgICAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIik7
CisgICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CisgICAgICAg
IGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikpOworICAgICAgICBj
b25zb2xlLmFwcGVuZENoaWxkKGxpKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2li
aWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgICAgdmFyIGJvZHkgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYm9keSIpOworICAgICAgICAgIGJvZHkuZm9jdXMoKTsKKyAgICAgICAgICB2YXIg
b2JqID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4
KDEpOworICAgICAgICAgIHNob3VsZEJlKCJvYmouZGVzY3JpcHRpb24iLCAnIkFYRGVzY3JpcHRp
b246IEJhbmFuYSInKTsKKyAgICAgICAgICBvYmogPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5m
b2N1c2VkRWxlbWVudC5jaGlsZEF0SW5kZXgoMik7CisgICAgICAgICAgc2hvdWxkQmUoIm9iai5k
ZXNjcmlwdGlvbiIsICciQVhEZXNjcmlwdGlvbjogQmFuYW5hIicpOworICAgICAgICAgIG9iaiA9
IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50LmNoaWxkQXRJbmRleCgzKTsK
KyAgICAgICAgICBzaG91bGRCZSgib2JqLmRlc2NyaXB0aW9uIiwgJyJBWERlc2NyaXB0aW9uOiBQ
ZWFjaGVzIicpOworICAgIH0KKworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Nj
cmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vbi1pbnB1dC5odG1sIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb24taW5wdXQuaHRtbAppbmRleCA3YjFlZjM1
ZjI0MTIyMzUwNjFhYjJmNmY3MzExNzU0N2MxMzE5YTE3Li4yODhmMDdiZWE1MjJhMTg4MWRmMzEy
Y2EzM2RjZGQzZTc4ZDYxNjQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2FyaWEtbGFiZWxsZWRieS1vbi1pbnB1dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW9uLWlucHV0Lmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAg
ICAgICAgICAgIHZhciBsYWJlbGVkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aW1l
Iik7CiAgICAgICAgICAgICBsYWJlbGVkSXRlbS5mb2N1cygpOwogICAgICAgICAgICAgdmFyIHJl
c3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKLSAgICAgICAgICAgIHJl
c3VsdC5pbm5lclRleHQgPSAiXG5UaGUgYWNjZXNzaWJpbGl0eSB0aXRsZSBpcyBcIiIgKyBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC50aXRsZSArICJcIiI7CisgICAgICAg
ICAgICByZXN1bHQuaW5uZXJUZXh0ID0gIlxuVGhlIGFjY2Vzc2liaWxpdHkgZGVzY3JpcHRpb24g
aXMgXCIiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuZGVzY3JpcHRp
b24gKyAiXCIiOwogICAgICAgICB9CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJp
YS1sYWJlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFi
ZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzM4
NmU1Mzc1NTM1MDFkMTU4MDI2NzFmZTdmOGRmM2ZiZDlhZDNkZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1hcmlh
LWxhYmVsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitBbHBoYSBCZXRhIERlbHRhIEVw
c2lsb24KK1RoaXMgdGVzdHMgdGhhdCBpZiBhcmlhLWxhYmVsbGVkYnkgaXMgdXNlZCwgdGhlbiBh
cmlhLWxhYmVsIGF0dHJpYnV0ZXMgYXJlIG5vdCB1c2VkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyBvYmoudGl0bGUgaXMgIkFYVGl0bGU6IEFscGhhIgorUEFTUyBvYmou
ZGVzY3JpcHRpb24gaXMgIkFYRGVzY3JpcHRpb246ICIKK1BBU1Mgb2JqLnRpdGxlIGlzICJBWFRp
dGxlOiBCZXRhIgorUEFTUyBvYmouZGVzY3JpcHRpb24gaXMgIkFYRGVzY3JpcHRpb246IEdhbW1h
IgorUEFTUyBvYmoudGl0bGUgaXMgIkFYVGl0bGU6IERlbHRhIgorUEFTUyBvYmouZGVzY3JpcHRp
b24gaXMgIkFYRGVzY3JpcHRpb246IEVwc2lsb24iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWwuaHRtbCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1hcmlhLWxhYmVs
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTA1MDA5N2I4MzhhN2U1Y2Q1ZWQ1NzMxOGZlNzVkN2E1NjY3ZWUx
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJl
bGxlZGJ5LW92ZXJyaWRlcy1hcmlhLWxhYmVsLmh0bWwKQEAgLTAsMCArMSw2MiBAQAorPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdD4KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSBmYWxzZTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGJ1dHRvbj5BbHBo
YTwvYnV0dG9uPgorPGJ1dHRvbiBhcmlhLWxhYmVsPSJHYW1tYSI+QmV0YTwvYnV0dG9uPgorPGJ1
dHRvbiBhcmlhLWxhYmVsbGVkYnk9ImVwc2lsb24iIGFyaWEtbGFiZWw9IlpldGEiPkRlbHRhPC9i
dXR0b24+Cis8c3BhbiBpZD0iZXBzaWxvbiI+RXBzaWxvbjwvc3Bhbj4KKworPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8dWwgaWQ9ImNvbnNvbGUiPjwvdWw+CisKKzxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBpZiBhcmlhLWxhYmVsbGVkYnkgaXMgdXNlZCwgdGhl
biBhcmlhLWxhYmVsIGF0dHJpYnV0ZXMgYXJlIG5vdCB1c2VkLiIpOworCisgICAgZnVuY3Rpb24g
bG9nKHN0cikgeworICAgICAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJjb25zb2xlIik7CisgICAgICAgIHZhciBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxp
Iik7CisgICAgICAgIGxpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0cikp
OworICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBsb2dBWE9iamVjdChvYmopIHsKKyAgICAgICAgICBsb2coImZvciAiICsgb2JqLmFsbEF0dHJp
YnV0ZXMoKSk7CisgICAgICAgICAgbG9nKCJjaGlsZHJlbjpcbiIgKyBvYmouYXR0cmlidXRlc09m
Q2hpbGRyZW4oKSk7CisgICAgICAgICAgbG9nKCJvYmoudGl0bGUgaXMgIiArIG9iai50aXRsZSk7
CisgICAgICAgICAgbG9nKCJvYmouZGVzY3JpcHRpb24gaXMgIiArIG9iai5kZXNjcmlwdGlvbik7
CisgICAgfQorICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICAg
ICAgICB2YXIgYm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib2R5Iik7CisgICAgICAg
ICAgYm9keS5mb2N1cygpOworICAgICAgICAgIHZhciBncm91cE9iaiA9IGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmZvY3VzZWRFbGVtZW50LmNoaWxkQXRJbmRleCgwKTsKKyAgICAgICAgICB2YXIg
b2JqID0gZ3JvdXBPYmouY2hpbGRBdEluZGV4KDApOworICAgICAgICAgIC8vIFRpdGxlIGZyb20g
dGhlIGJ1dHRvbiBjYXB0aW9uCisgICAgICAgICAgc2hvdWxkQmUoIm9iai50aXRsZSIsICciQVhU
aXRsZTogQWxwaGEiJyk7CisgICAgICAgICAgLy8gTm8gZGVzY3JpcHRpb24KKyAgICAgICAgICBz
aG91bGRCZSgib2JqLmRlc2NyaXB0aW9uIiwgJyJBWERlc2NyaXB0aW9uOiAiJyk7CisgICAgICAg
ICAgb2JqID0gZ3JvdXBPYmouY2hpbGRBdEluZGV4KDEpOworICAgICAgICAgIC8vIFRpdGxlIGZy
b20gdGhlIGJ1dHRvbiBjYXB0aW9uCisgICAgICAgICAgc2hvdWxkQmUoIm9iai50aXRsZSIsICci
QVhUaXRsZTogQmV0YSInKTsKKyAgICAgICAgICAvLyBEZXNjcmlwdGlvbiBmcm9tIGFyaWEtbGFi
ZWwKKyAgICAgICAgICBzaG91bGRCZSgib2JqLmRlc2NyaXB0aW9uIiwgJyJBWERlc2NyaXB0aW9u
OiBHYW1tYSInKTsKKyAgICAgICAgICBvYmogPSBncm91cE9iai5jaGlsZEF0SW5kZXgoMik7Cisg
ICAgICAgICAgLy8gVGl0bGUgZnJvbSB0aGUgYnV0dG9uIGNhcHRpb24KKyAgICAgICAgICBzaG91
bGRCZSgib2JqLnRpdGxlIiwgJyJBWFRpdGxlOiBEZWx0YSInKTsKKyAgICAgICAgICAvLyBEZXNj
cmlwdGlvbiBmcm9tIGFyaWEtbGFiZWxsZWRieSBlbGVtZW50LCBhcmlhLWxhYmVsIGlzIGlnbm9y
ZWQKKyAgICAgICAgICBzaG91bGRCZSgib2JqLmRlc2NyaXB0aW9uIiwgJyJBWERlc2NyaXB0aW9u
OiBFcHNpbG9uIicpOworICAgIH0KKworICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtbGFiZWwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVz
LWxhYmVsLWV4cGVjdGVkLnR4dAppbmRleCAyZmY3ZDM0MDQ4ODkyZmU1NGViYjRkZTkzNjYyMTU5
YjFiM2Q2YjhkLi5lMzFmYjMxZTI3OWYzZDM3OTk5MzljYjU2NWY4MzlhMzMzNDA3MzM3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlk
ZXMtbGFiZWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJp
YS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC1leHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBA
IFRoaXMgdGVzdHMgdGhhdCBpZiBhcmlhLWxhYmVsbGVkYnkgaXMgdXNlZCwgdGhlbiBsYWJlbCBl
bGVtZW50cyBhcmUgbm90IHVzZWQKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNT
IHRleHQudGl0bGUgaXMgJ0FYVGl0bGU6IFNodXQgZG93biBjb21wdXRlciBhZnRlciAxMCBtaW51
dGVzJworUEFTUyB0ZXh0LmRlc2NyaXB0aW9uIGlzICdBWERlc2NyaXB0aW9uOiBTaHV0IGRvd24g
Y29tcHV0ZXIgYWZ0ZXIgMTAgbWludXRlcycKIFBBU1MgdGV4dC50aXRsZVVJRWxlbWVudCgpLmlz
VmFsaWQgaXMgZmFsc2UKIFBBU1MgbGFiZWxFbGVtZW50LnJvbGUgaXMgJ0FYUm9sZTogQVhTdGF0
aWNUZXh0JwogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWxhYmVsLmh0
bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMt
bGFiZWwuaHRtbAppbmRleCBiYzkyMzdmNjI4ZjcwNWQxZGI5N2QxMWE5MTE2NWZjN2NkNzdkZWI5
Li41MTYxY2EyMmExMDlhOWZkNWM5M2M4M2FhOWFhMjA2ODkyNjQxMTI1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtbGFiZWwu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVy
cmlkZXMtbGFiZWwuaHRtbApAQCAtMjYsNyArMjYsNyBAQCB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gZmFsc2U7CiAgICAgICAgICAgdGV4dC5mb2N1cygpOwogICAgICAgICAgIHRleHQgPSBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsKIAotICAgICAgICAgIHNob3VsZEJl
KCJ0ZXh0LnRpdGxlIiwgIidBWFRpdGxlOiBTaHV0IGRvd24gY29tcHV0ZXIgYWZ0ZXIgMTAgbWlu
dXRlcyciKTsKKyAgICAgICAgICBzaG91bGRCZSgidGV4dC5kZXNjcmlwdGlvbiIsICInQVhEZXNj
cmlwdGlvbjogU2h1dCBkb3duIGNvbXB1dGVyIGFmdGVyIDEwIG1pbnV0ZXMnIik7CiAKICAgICAg
ICAgICAvLyBUaGVyZSBzaG91bGQgYmUgbm8gdGl0bGUgVUkgZWxlbWVudC4KICAgICAgICAgICBz
aG91bGRCZSgidGV4dC50aXRsZVVJRWxlbWVudCgpLmlzVmFsaWQiLCAiZmFsc2UiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LXN0YXktd2l0
aGluLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1zdGF5
LXdpdGhpbi5odG1sCmluZGV4IDdhMzBkMzllZmJjZjFhZTVjNzY3OGFjYmZiNTMwYTM0MmY4ZGI1
MDcuLjI1N2E1ZDI2ODdlMGRiYjIwZjYxNzY4YWRjNTEzMWQ2ZTU0YmRjMzkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LXN0YXktd2l0aGluLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktc3RheS13
aXRoaW4uaHRtbApAQCAtMzIsMTEgKzMyLDExIEBACiAgICAgICAgICAgICB2YXIgbGFiZWxlZEl0
ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVwIik7CiAgICAgICAgICAgICBsYWJlbGVk
SXRlbS5mb2N1cygpOwogICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZXN1bHQiKTsKLSAgICAgICAgICAgIGlmICggYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuZm9jdXNlZEVsZW1lbnQudGl0bGUgPT0gIkFYVGl0bGU6IFJlcGx5IEl0ZW0gRml2ZSIgKSB7
CisgICAgICAgICAgICBpZiAoIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50
LmRlc2NyaXB0aW9uID09ICJBWERlc2NyaXB0aW9uOiBSZXBseSBJdGVtIEZpdmUiICkgewogICAg
ICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9ICJQYXNzZWQiOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgZWxzZSB7IAotICAgICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9ICJG
YWlsZWQuIFJlc3VsdCA9PSIgKyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVu
dC50aXRsZSArICI9PSI7CisgICAgICAgICAgICAgICByZXN1bHQuaW5uZXJUZXh0ID0gIkZhaWxl
ZC4gUmVzdWx0ID09IiArIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZvY3VzZWRFbGVtZW50LmRl
c2NyaXB0aW9uICsgIj09IjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJp
YS1sYWJlbGxlZGJ5LW9uLWlucHV0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vbi1pbnB1dC1leHBlY3RlZC50eHQK
aW5kZXggOTAxMzY5NTM5YmE0MmJkNTMwYTdiYjE0YTRlZjdlMDVjNzNlZTU1MS4uYjRmNWIxZGJi
NjNiMjlkODM0NjdkMzZkZWE0NDc1NTlhYWNiMzViYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW9uLWlucHV0LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9hcmlh
LWxhYmVsbGVkYnktb24taW5wdXQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogVGhpcyBj
b21wdXRlciB3aWxsIHNlbGYtZGVzdHJ1Y3QgaW4gICBtaW51dGVzLgogCi1UaGUgYWNjZXNzaWJp
bGl0eSB0aXRsZSBpcyAiQVhUaXRsZTogVGhpcyBjb21wdXRlciB3aWxsIHNlbGYtZGVzdHJ1Y3Qg
aW4gMTAgbWludXRlcy4iCitUaGUgYWNjZXNzaWJpbGl0eSBkZXNjcmlwdGlvbiBpcyAiQVhEZXNj
cmlwdGlvbjogVGhpcyBjb21wdXRlciB3aWxsIHNlbGYtZGVzdHJ1Y3QgaW4gMTAgbWludXRlcy4i
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYzdlZTIwNDNiMWY5MTllNjU3NDdiZmYzNjk2NDUxZmFkZmI5ZGIzMS4u
ZTM3ZjM3YmQyMzFhNGU5ZmMzZWUxYzdlMDk0ZWE0MmY2OTE0MmM1YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDExLTA2LTE0ICBBbGljZSBCb3hoYWxsICA8YWJveGhhbGxAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFjY2Vzc2liaWxpdHkgZGVzY3JpcHRpb24gZm9yIGFuIGVsZW1lbnQgc2hvdWxkIG1ha2UgdXNl
IG9mIGFyaWEtbGFiZWxsZWRieS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYxOTk1CisKKyAgICAgICAgVGVzdHM6IGFjY2Vzc2liaWxpdHkvYXJpYS1k
ZXNjcmlwdGlvbi1wcmVmZXJzLWFyaWEtbGFiZWxsZWRieS5odG1sCisgICAgICAgICAgICAgICBh
Y2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC5odG1sCisK
KyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGl0bGUpOiBEb24n
dCByZXR1cm4gdmFsdWUgZnJvbSBhcmlhLWxhYmVsbGVkYnkuCisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjphcmlhQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKTog
UmV0dXJuIHZhbHVlIGZyb20gYXJpYS1sYWJlbGxlZGJ5IGluIHByZWZlcmVuY2UgdG8gdmFsdWUg
ZnJvbSBhcmlhLWxhYmVsLgorCiAyMDExLTA2LTA5ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwCmluZGV4IGFmNGQ0Mzc1ZDliZmU2OWNhNDA5MTMyYjY0NzMxNTZkMzhiZWFlYWUuLmQ4MjI0
NjhhNzFmM2JlMTkwYWNjZGNhZjVlMmU5MTlhNjM5NTliMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cApAQCAtMTMwNSwxMCArMTMwNSw2IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
Ojp0aXRsZSgpIGNvbnN0CiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAgICAgCi0gICAgU3RyaW5nIGFyaWFMYWJlbCA9IGFyaWFMYWJlbGVkQnlBdHRyaWJ1dGUoKTsK
LSAgICBpZiAoIWFyaWFMYWJlbC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBhcmlhTGFiZWw7
Ci0gICAgCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiB0aXRsZSA9IGdldEF0dHJpYnV0ZSh0aXRs
ZUF0dHIpOwogICAgIGlmICghdGl0bGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdGl0bGU7
CkBAIC0xMzUxLDYgKzEzNDcsMTAgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmFyaWFEZXNjcmliZWRCeUF0dHJpYnV0ZSgpIGNvbnN0CiAgICAgCiBTdHJpbmcgQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6YXJpYUFjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0CiB7
CisgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmlhTGFiZWxsZWRCeSA9IGFyaWFMYWJlbGVkQnlB
dHRyaWJ1dGUoKTsKKyAgICBpZiAoIWFyaWFMYWJlbGxlZEJ5LmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuIGFyaWFMYWJlbGxlZEJ5OworCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmlhTGFi
ZWwgPSBnZXRBdHRyaWJ1dGUoYXJpYV9sYWJlbEF0dHIpOwogICAgIGlmICghYXJpYUxhYmVsLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGFyaWFMYWJlbDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97376</attachid>
            <date>2011-06-15 17:41:08 -0700</date>
            <delta_ts>2011-06-18 13:27:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61995-20110616104106.patch</filename>
            <type>text/plain</type>
            <size>11238</size>
            <attacher name="Alice Boxhall">aboxhall</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODg1MTAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YzY1NGM3NzM0OGNkMGI1OWJmOTVk
MTAyNDc2NDA0ZjBmMmUwMWUwLi5mMDY5MmU3NDNkY2U2YWNjMWExMWQwZWE2YTZkZDc4Yjk4YTMx
NmViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDYtMTQgIEFsaWNlIEJveGhhbGwgIDxh
Ym94aGFsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWNjZXNzaWJpbGl0eSBkZXNjcmlwdGlvbiBmb3IgYW4gZWxlbWVudCBz
aG91bGQgbWFrZSB1c2Ugb2YgYXJpYS1sYWJlbGxlZGJ5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE5OTUKKworICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvYXJpYS1sYWJlbGxlZGJ5LW9uLWlucHV0Lmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWwtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJp
YS1sYWJlbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxs
ZWRieS1vdmVycmlkZXMtbGFiZWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC5odG1sOgorICAgICAgICAqIGFjY2Vz
c2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LXN0YXktd2l0aGluLmh0bWw6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW9uLWlucHV0LWV4cGVjdGVk
LnR4dDoKKwogMjAxMS0wNi0wOSAgSmlhbiBMaSAgPGppYW5saUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vbi1pbnB1dC5odG1sIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb24taW5wdXQuaHRtbAppbmRleCA3YjFlZjM1
ZjI0MTIyMzUwNjFhYjJmNmY3MzExNzU0N2MxMzE5YTE3Li4yODhmMDdiZWE1MjJhMTg4MWRmMzEy
Y2EzM2RjZGQzZTc4ZDYxNjQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2FyaWEtbGFiZWxsZWRieS1vbi1pbnB1dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW9uLWlucHV0Lmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAg
ICAgICAgICAgIHZhciBsYWJlbGVkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aW1l
Iik7CiAgICAgICAgICAgICBsYWJlbGVkSXRlbS5mb2N1cygpOwogICAgICAgICAgICAgdmFyIHJl
c3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKLSAgICAgICAgICAgIHJl
c3VsdC5pbm5lclRleHQgPSAiXG5UaGUgYWNjZXNzaWJpbGl0eSB0aXRsZSBpcyBcIiIgKyBhY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC50aXRsZSArICJcIiI7CisgICAgICAg
ICAgICByZXN1bHQuaW5uZXJUZXh0ID0gIlxuVGhlIGFjY2Vzc2liaWxpdHkgZGVzY3JpcHRpb24g
aXMgXCIiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuZGVzY3JpcHRp
b24gKyAiXCIiOwogICAgICAgICB9CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJp
YS1sYWJlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFi
ZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMw
ZTUzZWI0MzgyMzUyYTg0ODM4NmQ3NDU4ZDcyYzM2ODQzNDBhYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1hcmlh
LWxhYmVsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitBbHBoYSBCZXRhIERlbHRhIEV0
YSBFcHNpbG9uIFRoZXRhCitUaGlzIHRlc3RzIHRoYXQgaWYgYXJpYS1sYWJlbGxlZGJ5IGlzIHVz
ZWQsIHRoZW4gYXJpYS1sYWJlbCBhdHRyaWJ1dGVzIGFyZSBub3QgdXNlZC4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdXNpbmdOb25lLnRpdGxlIGlzICJBWFRpdGxlOiBB
bHBoYSIKK1BBU1MgdXNpbmdOb25lLmRlc2NyaXB0aW9uIGlzICJBWERlc2NyaXB0aW9uOiAiCitQ
QVNTIHVzaW5nTGFiZWwudGl0bGUgaXMgIkFYVGl0bGU6IEJldGEiCitQQVNTIHVzaW5nTGFiZWwu
ZGVzY3JpcHRpb24gaXMgIkFYRGVzY3JpcHRpb246IEdhbW1hIgorUEFTUyB1c2luZ0xhYmVsbGVk
YnkudGl0bGUgaXMgIkFYVGl0bGU6IERlbHRhIgorUEFTUyB1c2luZ0xhYmVsbGVkYnkuZGVzY3Jp
cHRpb24gaXMgIkFYRGVzY3JpcHRpb246IEVwc2lsb24iCitQQVNTIHVzaW5nTGFiZWxlZGJ5LnRp
dGxlIGlzICJBWFRpdGxlOiBFdGEiCitQQVNTIHVzaW5nTGFiZWxlZGJ5LmRlc2NyaXB0aW9uIGlz
ICJBWERlc2NyaXB0aW9uOiBUaGV0YSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L2FyaWEtbGFiZWxsZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC5odG1sIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWFyaWEtbGFiZWwuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iYzllNmMzNDk0NWFkOTMzNTVlOTg2NGU4M2FkZTM1MWQ1NTQ5NGRhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnkt
b3ZlcnJpZGVzLWFyaWEtbGFiZWwuaHRtbApAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxl
LmNzcyI+Cis8c2NyaXB0PgordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZhbHNlOworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8YnV0dG9uIGlkPSJ1c2luZy1u
b25lIj5BbHBoYTwvYnV0dG9uPgorPGJ1dHRvbiBpZD0idXNpbmctbGFiZWwiIGFyaWEtbGFiZWw9
IkdhbW1hIj5CZXRhPC9idXR0b24+Cis8YnV0dG9uIGlkPSJ1c2luZy1sYWJlbGxlZGJ5IiBhcmlh
LWxhYmVsbGVkYnk9ImVwc2lsb24iIGFyaWEtbGFiZWw9IlpldGEiPkRlbHRhPC9idXR0b24+Cis8
YnV0dG9uIGlkPSJ1c2luZy1sYWJlbGVkYnkiIGFyaWEtbGFiZWxlZGJ5PSJ0aGV0YSIgYXJpYS1s
YWJlbD0iSW90YSI+RXRhPC9idXR0b24+Cis8c3BhbiBpZD0iZXBzaWxvbiI+RXBzaWxvbjwvc3Bh
bj4KKzxzcGFuIGlkPSJ0aGV0YSI+VGhldGE8L3NwYW4+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPHVsIGlkPSJjb25zb2xlIj48L3VsPgorCis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9u
KCJUaGlzIHRlc3RzIHRoYXQgaWYgYXJpYS1sYWJlbGxlZGJ5IGlzIHVzZWQsIHRoZW4gYXJpYS1s
YWJlbCBhdHRyaWJ1dGVzIGFyZSBub3QgdXNlZC4iKTsKKworICAgIGZ1bmN0aW9uIGxvZyhzdHIp
IHsKKyAgICAgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpOworICAgICAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAg
ICAgICBsaS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIpKTsKKyAgICAg
ICAgY29uc29sZS5hcHBlbmRDaGlsZChsaSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nQVhP
YmplY3Qob2JqKSB7CisgICAgICAgIGxvZygiZm9yICIgKyBvYmouYWxsQXR0cmlidXRlcygpKTsK
KyAgICAgICAgbG9nKCJjaGlsZHJlbjpcbiIgKyBvYmouYXR0cmlidXRlc09mQ2hpbGRyZW4oKSk7
CisgICAgICAgIGxvZygib2JqLnRpdGxlIGlzICIgKyBvYmoudGl0bGUpOworICAgICAgICBsb2co
Im9iai5kZXNjcmlwdGlvbiBpcyAiICsgb2JqLmRlc2NyaXB0aW9uKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBnZXRBY2Nlc3NpYmlsaXR5T2JqZWN0KGlkKSB7CisgICAgICAgIHZhciBlbGVtZW50
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICBlbGVtZW50LmZvY3VzKCk7
CisgICAgICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudDsK
KyAgICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAg
ICAgIHZhciB1c2luZ05vbmUgPSBnZXRBY2Nlc3NpYmlsaXR5T2JqZWN0KCJ1c2luZy1ub25lIik7
CisgICAgICAgIHNob3VsZEJlKCJ1c2luZ05vbmUudGl0bGUiLCAnIkFYVGl0bGU6IEFscGhhIicp
OworICAgICAgICBzaG91bGRCZSgidXNpbmdOb25lLmRlc2NyaXB0aW9uIiwgJyJBWERlc2NyaXB0
aW9uOiAiJyk7CisKKyAgICAgICAgdmFyIHVzaW5nTGFiZWwgPSBnZXRBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KCJ1c2luZy1sYWJlbCIpOworICAgICAgICBzaG91bGRCZSgidXNpbmdMYWJlbC50aXRsZSIs
ICciQVhUaXRsZTogQmV0YSInKTsKKyAgICAgICAgc2hvdWxkQmUoInVzaW5nTGFiZWwuZGVzY3Jp
cHRpb24iLCAnIkFYRGVzY3JpcHRpb246IEdhbW1hIicpOworCisgICAgICAgIHZhciB1c2luZ0xh
YmVsbGVkYnkgPSBnZXRBY2Nlc3NpYmlsaXR5T2JqZWN0KCJ1c2luZy1sYWJlbGxlZGJ5Iik7Cisg
ICAgICAgIHNob3VsZEJlKCJ1c2luZ0xhYmVsbGVkYnkudGl0bGUiLCAnIkFYVGl0bGU6IERlbHRh
IicpOworICAgICAgICBzaG91bGRCZSgidXNpbmdMYWJlbGxlZGJ5LmRlc2NyaXB0aW9uIiwgJyJB
WERlc2NyaXB0aW9uOiBFcHNpbG9uIicpOworCisgICAgICAgIHZhciB1c2luZ0xhYmVsZWRieSA9
IGdldEFjY2Vzc2liaWxpdHlPYmplY3QoInVzaW5nLWxhYmVsZWRieSIpOworICAgICAgICBzaG91
bGRCZSgidXNpbmdMYWJlbGVkYnkudGl0bGUiLCAnIkFYVGl0bGU6IEV0YSInKTsKKyAgICAgICAg
c2hvdWxkQmUoInVzaW5nTGFiZWxlZGJ5LmRlc2NyaXB0aW9uIiwgJyJBWERlc2NyaXB0aW9uOiBU
aGV0YSInKTsKKyAgICB9CisKKyAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3Jp
cHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWxhYmVsLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJl
bC1leHBlY3RlZC50eHQKaW5kZXggMmZmN2QzNDA0ODg5MmZlNTRlYmI0ZGU5MzY2MjE1OWIxYjNk
NmI4ZC4uZTMxZmIzMWUyNzlmM2QzNzk5OTM5Y2I1NjVmODM5YTMzMzQwNzMzNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWxh
YmVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFi
ZWxsZWRieS1vdmVycmlkZXMtbGFiZWwtZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBUaGlz
IHRlc3RzIHRoYXQgaWYgYXJpYS1sYWJlbGxlZGJ5IGlzIHVzZWQsIHRoZW4gbGFiZWwgZWxlbWVu
dHMgYXJlIG5vdCB1c2VkCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyB0ZXh0
LnRpdGxlIGlzICdBWFRpdGxlOiBTaHV0IGRvd24gY29tcHV0ZXIgYWZ0ZXIgMTAgbWludXRlcycK
K1BBU1MgdGV4dC5kZXNjcmlwdGlvbiBpcyAnQVhEZXNjcmlwdGlvbjogU2h1dCBkb3duIGNvbXB1
dGVyIGFmdGVyIDEwIG1pbnV0ZXMnCiBQQVNTIHRleHQudGl0bGVVSUVsZW1lbnQoKS5pc1ZhbGlk
IGlzIGZhbHNlCiBQQVNTIGxhYmVsRWxlbWVudC5yb2xlIGlzICdBWFJvbGU6IEFYU3RhdGljVGV4
dCcKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LW92ZXJyaWRlcy1sYWJlbC5odG1sIGIv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWxhYmVs
Lmh0bWwKaW5kZXggYmM5MjM3ZjYyOGY3MDVkMWRiOTdkMTFhOTExNjVmYzdjZDc3ZGViOS4uNTE2
MWNhMjJhMTA5YTlmZDVjOTNjODNhYTlhYTIwNjg5MjY0MTEyNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVzLWxhYmVsLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb3ZlcnJpZGVz
LWxhYmVsLmh0bWwKQEAgLTI2LDcgKzI2LDcgQEAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IGZh
bHNlOwogICAgICAgICAgIHRleHQuZm9jdXMoKTsKICAgICAgICAgICB0ZXh0ID0gYWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQ7CiAKLSAgICAgICAgICBzaG91bGRCZSgidGV4
dC50aXRsZSIsICInQVhUaXRsZTogU2h1dCBkb3duIGNvbXB1dGVyIGFmdGVyIDEwIG1pbnV0ZXMn
Iik7CisgICAgICAgICAgc2hvdWxkQmUoInRleHQuZGVzY3JpcHRpb24iLCAiJ0FYRGVzY3JpcHRp
b246IFNodXQgZG93biBjb21wdXRlciBhZnRlciAxMCBtaW51dGVzJyIpOwogCiAgICAgICAgICAg
Ly8gVGhlcmUgc2hvdWxkIGJlIG5vIHRpdGxlIFVJIGVsZW1lbnQuCiAgICAgICAgICAgc2hvdWxk
QmUoInRleHQudGl0bGVVSUVsZW1lbnQoKS5pc1ZhbGlkIiwgImZhbHNlIik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1zdGF5LXdpdGhpbi5o
dG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktc3RheS13aXRo
aW4uaHRtbAppbmRleCA3YTMwZDM5ZWZiY2YxYWU1Yzc2NzhhY2JmYjUzMGEzNDJmOGRiNTA3Li4y
NTdhNWQyNjg3ZTBkYmIyMGY2MTc2OGFkYzUxMzFkNmU1NGJkYzM5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1zdGF5LXdpdGhpbi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJlbGxlZGJ5LXN0YXktd2l0aGlu
Lmh0bWwKQEAgLTMyLDExICszMiwxMSBAQAogICAgICAgICAgICAgdmFyIGxhYmVsZWRJdGVtID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlcCIpOwogICAgICAgICAgICAgbGFiZWxlZEl0ZW0u
Zm9jdXMoKTsKICAgICAgICAgICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVzdWx0Iik7Ci0gICAgICAgICAgICBpZiAoIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmZv
Y3VzZWRFbGVtZW50LnRpdGxlID09ICJBWFRpdGxlOiBSZXBseSBJdGVtIEZpdmUiICkgeworICAg
ICAgICAgICAgaWYgKCBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5kZXNj
cmlwdGlvbiA9PSAiQVhEZXNjcmlwdGlvbjogUmVwbHkgSXRlbSBGaXZlIiApIHsKICAgICAgICAg
ICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiUGFzc2VkIjsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGVsc2UgeyAKLSAgICAgICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgPSAiRmFpbGVk
LiBSZXN1bHQgPT0iICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQudGl0
bGUgKyAiPT0iOworICAgICAgICAgICAgICAgcmVzdWx0LmlubmVyVGV4dCA9ICJGYWlsZWQuIFJl
c3VsdCA9PSIgKyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5mb2N1c2VkRWxlbWVudC5kZXNjcmlw
dGlvbiArICI9PSI7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFi
ZWxsZWRieS1vbi1pbnB1dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
YWNjZXNzaWJpbGl0eS9hcmlhLWxhYmVsbGVkYnktb24taW5wdXQtZXhwZWN0ZWQudHh0CmluZGV4
IDkwMTM2OTUzOWJhNDJiZDUzMGE3YmIxNGE0ZWY3ZTA1YzczZWU1NTEuLmI0ZjViMWRiYjYzYjI5
ZDgzNDY3ZDM2ZGVhNDQ3NTU5YWFjYjM1YmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxsZWRieS1vbi1pbnB1dC1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvYXJpYS1sYWJl
bGxlZGJ5LW9uLWlucHV0LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIFRoaXMgY29tcHV0
ZXIgd2lsbCBzZWxmLWRlc3RydWN0IGluICAgbWludXRlcy4KIAotVGhlIGFjY2Vzc2liaWxpdHkg
dGl0bGUgaXMgIkFYVGl0bGU6IFRoaXMgY29tcHV0ZXIgd2lsbCBzZWxmLWRlc3RydWN0IGluIDEw
IG1pbnV0ZXMuIgorVGhlIGFjY2Vzc2liaWxpdHkgZGVzY3JpcHRpb24gaXMgIkFYRGVzY3JpcHRp
b246IFRoaXMgY29tcHV0ZXIgd2lsbCBzZWxmLWRlc3RydWN0IGluIDEwIG1pbnV0ZXMuIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGM3ZWUyMDQzYjFmOTE5ZTY1NzQ3YmZmMzY5NjQ1MWZhZGZiOWRiMzEuLjQzNTky
MjUyOWM4MDM5MmJmODQ4M2M1MmU1MTFlYWQ0OWJmMjlmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMS0wNi0xNCAgQWxpY2UgQm94aGFsbCAgPGFib3hoYWxsQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBY2Nl
c3NpYmlsaXR5IGRlc2NyaXB0aW9uIGZvciBhbiBlbGVtZW50IHNob3VsZCBtYWtlIHVzZSBvZiBh
cmlhLWxhYmVsbGVkYnkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02MTk5NQorCisgICAgICAgIFRlc3RzOiBhY2Nlc3NpYmlsaXR5L2FyaWEtbGFiZWxs
ZWRieS1vdmVycmlkZXMtYXJpYS1sYWJlbC5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6dGl0bGUpOiBEb24ndCByZXR1cm4gdmFsdWUgZnJvbSBhcmlh
LWxhYmVsbGVkYnkuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjphcmlhQWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKTogUmV0dXJuIHZhbHVlIGZyb20gYXJpYS1s
YWJlbGxlZGJ5IGluIHByZWZlcmVuY2UgdG8gdmFsdWUgZnJvbSBhcmlhLWxhYmVsLgorCiAyMDEx
LTA2LTA5ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGFmNGQ0Mzc1ZDliZmU2
OWNhNDA5MTMyYjY0NzMxNTZkMzhiZWFlYWUuLjBiOTllYzBhNThjNGE0ZmUyNWNmN2FjOWM0NmMx
MGY1NTdiYjRkYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMTMwNSwxMCArMTMwNSw2IEBA
IFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0aXRsZSgpIGNvbnN0CiAgICAgaWYg
KCFub2RlKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgCi0gICAgU3RyaW5nIGFyaWFM
YWJlbCA9IGFyaWFMYWJlbGVkQnlBdHRyaWJ1dGUoKTsKLSAgICBpZiAoIWFyaWFMYWJlbC5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybiBhcmlhTGFiZWw7Ci0gICAgCiAgICAgY29uc3QgQXRvbWlj
U3RyaW5nJiB0aXRsZSA9IGdldEF0dHJpYnV0ZSh0aXRsZUF0dHIpOwogICAgIGlmICghdGl0bGUu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdGl0bGU7CkBAIC0xMzUxLDYgKzEzNDcsMTAgQEAg
U3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFyaWFEZXNjcmliZWRCeUF0dHJpYnV0
ZSgpIGNvbnN0CiAgICAgCiBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YXJpYUFj
Y2Vzc2liaWxpdHlEZXNjcmlwdGlvbigpIGNvbnN0CiB7CisgICAgY29uc3QgQXRvbWljU3RyaW5n
JiBhcmlhTGFiZWxlZEJ5ID0gYXJpYUxhYmVsZWRCeUF0dHJpYnV0ZSgpOworICAgIGlmICghYXJp
YUxhYmVsZWRCeS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBhcmlhTGFiZWxlZEJ5OworCiAg
ICAgY29uc3QgQXRvbWljU3RyaW5nJiBhcmlhTGFiZWwgPSBnZXRBdHRyaWJ1dGUoYXJpYV9sYWJl
bEF0dHIpOwogICAgIGlmICghYXJpYUxhYmVsLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGFy
aWFMYWJlbDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>