<?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>27959</bug_id>
          
          <creation_ts>2009-08-03 16:01:29 -0700</creation_ts>
          <short_desc>Support for validationMessage</short_desc>
          <delta_ts>2011-01-24 11:53:51 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.whatwg.org/specs/web-apps/current-work/multipage/forms.html#dom-cva-validationmessage</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>27455</dependson>
          <blocked>19264</blocked>
    
    <blocked>28649</blocked>
    
    <blocked>53034</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michelangelo De Simone">michelangelo</reporter>
          <assigned_to name="Michelangelo De Simone">michelangelo</assigned_to>
          <cc>adele</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>kevino</cc>
    
    <cc>pkasting</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>136822</commentid>
    <comment_count>0</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-03 16:01:29 -0700</bug_when>
    <thetext>The implementation for such attribute should follow the specification in section 4.10.15.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139001</commentid>
    <comment_count>1</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-11 09:52:20 -0700</bug_when>
    <thetext>To solve this issue I&apos;d say that an enum structure with neutral messages would be sufficient. Opinions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139010</commentid>
    <comment_count>2</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-08-11 10:10:07 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; To solve this issue I&apos;d say that an enum structure with neutral messages would
&gt; be sufficient. Opinions?

What does that mean?  Surely you&apos;re not intending to code the message strings into WebCore itself.

The solution to this needs to call out to the embedder, supplying it the type of validation failure, and the custom error string if any; then the embedder can return an appropriate localized string.

I don&apos;t know if there is an existing set of pathways to request strings from the embedder.  My first guess at a place to look would be the context menu code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141792</commentid>
    <comment_count>3</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-08-20 22:42:22 -0700</bug_when>
    <thetext>The following comment was lost due to database corruption:

--- Comment #3 from Michelangelo De Simone &lt;micdesim@gmail.com&gt;  2009-08-20 15:38:37 PDT ---
(In reply to comment #2)

&gt; What does that mean?  Surely you&apos;re not intending to code the message strings
&gt; into WebCore itself.

Not at all. I intended some neutral representation of standard validation
messages that the embedder can relate internally with desired localized
strings. Embedder can query WebCore and get the appropriate validationMessage,
if any.

Perhaps something like an &quot;enum ValidationMessages { PATTERN_MISMATCHED,
EMPTY_REQUIRED, ... CUSTOM}&quot; could do the trick?

&gt; The solution to this needs to call out to the embedder, supplying it the type
&gt; of validation failure, and the custom error string if any; then the embedder
&gt; can return an appropriate localized string.

That&apos;s my point.

Does something like that sound feasible to you?

****

I replied with a comment #4, something to the effect of &quot;OK, that&apos;s exactly what I was thinking.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142033</commentid>
    <comment_count>4</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-21 16:01:40 -0700</bug_when>
    <thetext>How do we want this? In #27455 we put customValidationMessage into ValidityState.

IMO, customValidity message stuff and validationMessage would stay better inside HTMLFormControlElement (could that create some odd effect on the desired memory footprint?); I&apos;d like to hear Darin&apos;s opinion about this.

This is the proposal:

1) Add &quot;enum ValidationMessage { NONE, CUSTOM, STD_MSG1, STD_MSG2, STD_MSG3, ...}&quot; into HTMLFormControlElement,
2) Move m_customErrorMessage from ValidityState to HTMLFormControlElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142450</commentid>
    <comment_count>5</comment_count>
      <attachid>38509</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-24 16:35:24 -0700</bug_when>
    <thetext>Created attachment 38509
Preview patch

This is just a &quot;demo&quot; patch to gather some feedback:

ValidationMessage enum has been placed into LocalizedStrings to avoid code-duplication. I need to better understand how localized strings are used on the Mac can I use  e Chrome port before continuing.

For the Mac: is acceptable to use NSLocalizedStrings into LocalizedStringsMac? If no, what is the &quot;trick&quot;?
For Chrome: where should I look at!?:D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142451</commentid>
    <comment_count>6</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-24 16:36:41 -0700</bug_when>
    <thetext>Ah, for the &quot;VALIDATIONMSG_CUSTOM&quot;: it&apos;s (obviously) a mistake.:) It will return the customerror message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>142610</commentid>
    <comment_count>7</comment_count>
      <attachid>38554</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-25 10:13:08 -0700</bug_when>
    <thetext>Created attachment 38554
Demo patch 2

Ok, I&apos;ve figured out everything that I needed: this demo patch seems ok for the Mac.
If this is feasible I get things completed with other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143486</commentid>
    <comment_count>8</comment_count>
      <attachid>38764</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-28 17:20:01 -0700</bug_when>
    <thetext>Created attachment 38764
Complete patch, not yet reviewable

This is the patch I&apos;m gonna submit (once I find a way to diff WebKit/English.lproj/Localizable.strings with git); it might be of some help to tkent.
These lines have been added to WebKit/English.lproj/Localizable.strings:

/* Validity states */
&quot;element has no value but is a required field&quot; = &quot;element has no value but is a required field&quot;;
&quot;element&apos;s value is not in the correct syntax&quot; = &quot;element&apos;s value is not in the correct syntax&quot;;
&quot;element&apos;s value doesn&apos;t match the provided pattern&quot; = &quot;element&apos;s value doesn&apos;t match the provided pattern&quot;;
&quot;element&apos;s value is longer than the provided maximum length&quot; = &quot;element&apos;s value is longer than the provided maximum length&quot;;
&quot;element&apos;s value is lower than the provided minimum&quot; = &quot;element&apos;s value is lower than the provided minimum&quot;;
&quot;element&apos;s value is higher than the provided maximum&quot; = &quot;element&apos;s value is higher than the provided maximum&quot;;
&quot;element&apos;s value doesn&apos;t fit the rules given by the step attribute&quot; = &quot;element&apos;s value doesn&apos;t fit the rules given by the step attribute&quot;;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143563</commentid>
    <comment_count>9</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-08-30 18:13:46 -0700</bug_when>
    <thetext>We should avoid to use the words `element&apos; and `attribute&apos; in UI messages.  End-users don&apos;t understand such technical terms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143569</commentid>
    <comment_count>10</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2009-08-30 22:24:12 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; We should avoid to use the words `element&apos; and `attribute&apos; in UI messages. 
&gt; End-users don&apos;t understand such technical terms.

Do the strings in this file actually get used directly, or will the Safari team replace them?  No reason to quibble if they&apos;re just advisory to a L10N team...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143675</commentid>
    <comment_count>11</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-08-31 10:47:24 -0700</bug_when>
    <thetext>(In reply to comment #10)

&gt; Do the strings in this file actually get used directly, or will the Safari team
&gt; replace them?  No reason to quibble if they&apos;re just advisory to a L10N team...

Those strings are used as base for future localization but, actually, they&apos;re used as default choice on the Mac port.

Being a non-native english speaker I might not be the best candidate to choose those messages, so I&apos;d be happy to hear any suggestion about this matter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143703</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-08-31 12:49:14 -0700</bug_when>
    <thetext>It’s not correct to edit the localizable strings file manually.

The file is regenerated by the update-webkit-localizable-strings script.

Instead you need to use the UI_STRING macro in WebKit code to call out the localizable strings. Search the WebKit source code for UI_STRING to see how it’s done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144305</commentid>
    <comment_count>13</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-09-02 14:13:51 -0700</bug_when>
    <thetext>(In reply to comment #12)

&gt; Instead you need to use the UI_STRING macro in WebKit code to call out the

The &quot;unreviewable patch&quot; already makes use of UI_STRING. Am I supposed to land base localizable strings for the Mac port or should I ask to someone specific?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144314</commentid>
    <comment_count>14</comment_count>
      <attachid>38942</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-09-02 14:36:16 -0700</bug_when>
    <thetext>Created attachment 38942
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144315</commentid>
    <comment_count>15</comment_count>
      <attachid>38942</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-02 14:46:49 -0700</bug_when>
    <thetext>Comment on attachment 38942
Patch v1

Lots of style violations in:
 36 String ValidityState::validationMessage()

Why do we have such ugly string names for these validation messages?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144319</commentid>
    <comment_count>16</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-09-02 15:10:47 -0700</bug_when>
    <thetext>(In reply to comment #15)

&gt; Lots of style violations in:
&gt; Why do we have such ugly string names for these validation messages?

You mean the &quot;VALIDATIONMSG_VALUEMISSING&quot;-kinda strings?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144971</commentid>
    <comment_count>17</comment_count>
      <attachid>39107</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-09-04 18:06:11 -0700</bug_when>
    <thetext>Created attachment 39107
Patch v1a</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154403</commentid>
    <comment_count>18</comment_count>
      <attachid>39107</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-10-13 13:19:03 -0700</bug_when>
    <thetext>Comment on attachment 39107
Patch v1a

This patch seems blocked on not understanding how string localization is supposed to work.  I can&apos;t really help with that...  I recommend bugging Darin or Maciej on IRC.

Also, there is a minor style issue:

+    if (customError()) {
+        return m_customErrorMessage;
+    } else if (valueMissing()) {

We&apos;re not supposed to use { } for single-line conditionals (applies to this whole code block).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154426</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-13 14:06:28 -0700</bug_when>
    <thetext>Here is how localized strings in WebCore work:

    1) We try to minimize the number of localized strings that are needed in WebCore. There are very few strings which appear to end users, so this is usually possible. It&apos;s unfortunate that the HTML 5 design here requires localized strings without giving the localizer a clear idea where and in what format those strings will be displayed. This is something we normally try to avoid.

    2) Because there are so few localized strings needed in WebCore, we create a separate function for each string in the LocalizedStrings.h header file in WebCore/platform.

    3) Each platform then needs an implementation of each of these functions. For the Mac, the class WebCoreViewFactory in WebCore and WebViewFactory in WebKit has to be modified. And there are similar changes for other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156147</commentid>
    <comment_count>20</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-10-20 06:48:45 -0700</bug_when>
    <thetext>(In reply to comment #19)

&gt;     2) Because there are so few localized strings needed in WebCore, we create
&gt; a separate function for each string in the LocalizedStrings.h header file in
&gt; WebCore/platform.

A new patch with separate functions is on its way. (eg.: validationMessageValueMissingText()).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156315</commentid>
    <comment_count>21</comment_count>
      <attachid>41526</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-10-20 15:34:29 -0700</bug_when>
    <thetext>Created attachment 41526
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156316</commentid>
    <comment_count>22</comment_count>
      <attachid>41527</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-10-20 15:37:24 -0700</bug_when>
    <thetext>Created attachment 41527
Patch v2a</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156321</commentid>
    <comment_count>23</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-10-20 15:43:41 -0700</bug_when>
    <thetext>A quick rationale:

1) this patch addresses LOCALIZED validationMessage only on the Mac port; on
other ports validationMessage() returns the custom validation message (if
present) or the empty string. Reason: I can&apos;t test it on the other ports and
don&apos;t want to break anything.:-)

2) related test &quot;validationMessage.html&quot; is currently disabled for the same
reason.

NOTE TO THE REVIEWER: this patch blocks 28649 which, I believe, is quite
urgent: localization issues can be addressed separately.

Comments and feedbacks greatly appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156323</commentid>
    <comment_count>24</comment_count>
      <attachid>41530</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-10-20 15:49:26 -0700</bug_when>
    <thetext>Created attachment 41530
Patch v2b</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162072</commentid>
    <comment_count>25</comment_count>
      <attachid>41530</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-10 09:34:59 -0800</bug_when>
    <thetext>Comment on attachment 41530
Patch v2b

OK.  So this test shoudl just be Skipped on other platforms instead of disabled for all.

I agree, I think it&apos;s lame that the HTML5 spec exposes localized strings in this way.  It will be impossible for localizers to know how these strings are used, and thus impossible for them to end up with the right localizations.

I don&apos;t think this should be PLATFORM(MAC) only.  Instead &quot;notImplemented()&quot; style functions should be added to the other platforms. 

Your localizable.strings patch doesn&apos;t look right as ir removes accessiblity strings.

Otherwise this could be OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162166</commentid>
    <comment_count>26</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-11-10 12:27:20 -0800</bug_when>
    <thetext>(In reply to comment #25)

&gt; OK.  So this test shoudl just be Skipped on other platforms instead of disabled
&gt; for all.

Ok.

&gt; I agree, I think it&apos;s lame that the HTML5 spec exposes localized strings in
&gt; this way.  It will be impossible for localizers to know how these strings are
&gt; used, and thus impossible for them to end up with the right localizations.

Agreed.

&gt; I don&apos;t think this should be PLATFORM(MAC) only.  Instead &quot;notImplemented()&quot;
&gt; style functions should be added to the other platforms. 

Ok.

&gt; Your localizable.strings patch doesn&apos;t look right as ir removes accessiblity
&gt; strings.

Uhmmm, that&apos;s weird... I&apos;ll look into it.

&gt; Otherwise this could be OK.

Thanks, a new patch is underway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164073</commentid>
    <comment_count>27</comment_count>
      <attachid>43322</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-11-16 14:10:08 -0800</bug_when>
    <thetext>Created attachment 43322
Patch v2c</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164086</commentid>
    <comment_count>28</comment_count>
      <attachid>43327</attachid>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-11-16 14:33:21 -0800</bug_when>
    <thetext>Created attachment 43327
Patch v2c, corrected</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164751</commentid>
    <comment_count>29</comment_count>
      <attachid>43327</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-18 15:17:23 -0800</bug_when>
    <thetext>Comment on attachment 43327
Patch v2c, corrected

&gt; +    if (customError())
&gt; +        return m_customErrorMessage;
&gt; +    else if (valueMissing())
&gt; +        return validationMessageValueMissingText();
&gt; +    else if (typeMismatch())
&gt; +        return validationMessageTypeMismatchText();
&gt; +    else if (patternMismatch())
&gt; +        return validationMessagePatternMismatchText();
&gt; +    else if (tooLong())
&gt; +        return validationMessageTooLongText();
&gt; +    else if (rangeUnderflow())
&gt; +        return validationMessageRangeUnderflowText();
&gt; +    else if (rangeOverflow())
&gt; +        return validationMessageRangeOverflowText();
&gt; +    else if (stepMismatch())
&gt; +        return validationMessageStepMismatchText();

Normally we don&apos;t do else after return.

&gt; +    return emptyAtom;

emptyAtom is an AtomicString and we just need a String here. On the other hand, emptyAtom might be a relatively efficient way to return the empty string, so I&apos;m not sure this is a bad thing!

It seems to me that returning a non-localized hard-wired string before calling notImplemented() would probably be better for all those ports where this is not done yet.

This patch sure does seem to be an eloquent argument for not having all these localized strings in the HTML5 form element design! I don&apos;t see a lot of value of returning these strings that might not even be in the same language as the website. I wish we could get that changed.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164886</commentid>
    <comment_count>30</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-18 20:47:21 -0800</bug_when>
    <thetext>I&apos;ll commit the patch manually with the following changes.

(In reply to comment #29)
&gt; (From update of attachment 43327 [details])
&gt; &gt; +    if (customError())
&gt; &gt; +        return m_customErrorMessage;
&gt; &gt; +    else if (valueMissing())
&gt; &gt; +        return validationMessageValueMissingText();
&gt; &gt; +    else if (typeMismatch())
&gt; &gt; +        return validationMessageTypeMismatchText();
&gt; &gt; +    else if (patternMismatch())
&gt; &gt; +        return validationMessagePatternMismatchText();
&gt; &gt; +    else if (tooLong())
&gt; &gt; +        return validationMessageTooLongText();
&gt; &gt; +    else if (rangeUnderflow())
&gt; &gt; +        return validationMessageRangeUnderflowText();
&gt; &gt; +    else if (rangeOverflow())
&gt; &gt; +        return validationMessageRangeOverflowText();
&gt; &gt; +    else if (stepMismatch())
&gt; &gt; +        return validationMessageStepMismatchText();
&gt; 
&gt; Normally we don&apos;t do else after return.

Will fix them.

&gt; &gt; +    return emptyAtom;
&gt; 
&gt; emptyAtom is an AtomicString and we just need a String here. On the other hand,
&gt; emptyAtom might be a relatively efficient way to return the empty string, so
&gt; I&apos;m not sure this is a bad thing!

Returning a different type object seems curious to me.  I&apos;ll change emptyAtom to String().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164901</commentid>
    <comment_count>31</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-11-18 21:39:35 -0800</bug_when>
    <thetext>Committed r51172: &lt;http://trac.webkit.org/changeset/51172&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165137</commentid>
    <comment_count>32</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-11-19 16:11:16 -0800</bug_when>
    <thetext>This patch landed without {gtk, qt, win}/Skipped (3 files were missing).

Kevin Ollivier fixed the Wx port in r51190.
Gustavo Noronha Silva completed the GTK+ implementation in r51200.
I&apos;ve landed missing files (wx/Skipped and win/Skipped) in r51210.

Darin: do Mac and Win ports share the same localization mechanisms? If yes I&apos;ll exclude validationMessage.html from skipped tests on Win port, or perhaps someone else (Peter?) could do it: I can&apos;t test it directly on Windows.

&gt; This patch sure does seem to be an eloquent argument for not having all these
&gt; localized strings in the HTML5 form element design! I don&apos;t see a lot of value
&gt; of returning these strings that might not even be in the same language as the
&gt; website. I wish we could get that changed.

I agree. I&apos;m eager to understand reasons of such choice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165139</commentid>
    <comment_count>33</comment_count>
    <who name="Michelangelo De Simone">michelangelo</who>
    <bug_when>2009-11-19 16:14:32 -0800</bug_when>
    <thetext>CC&apos;ing Gustavo and Kevin, they should be kept apprised (I think).

(In reply to comment #32)
&gt; I&apos;ve landed missing files (wx/Skipped and win/Skipped) in r51210.
Obviously I meant qt/Skipped and Win/Skipped...:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165141</commentid>
    <comment_count>34</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-19 16:21:09 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; Darin: do Mac and Win ports share the same localization mechanisms?

Yes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38509</attachid>
            <date>2009-08-24 16:35:24 -0700</date>
            <delta_ts>2009-08-25 10:13:08 -0700</delta_ts>
            <desc>Preview patch</desc>
            <filename>27959-Preview.patch</filename>
            <type>text/plain</type>
            <size>8227</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwgYi9XZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCmluZGV4IDU1ODAzZGYuLmNiOTM4M2QgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbApAQCAtMzcsNiArMzcsNyBAQCBtb2R1bGUgaHRtbCB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdHlwZTsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyAgICAgICAgICAgIHZhbHVlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiAgICAgICAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyAgICAgICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9v
bGVhbiAgY2hlY2tWYWxpZGl0eSgpOwogICAgICAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGlu
IFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwog
ICAgICAgICB2b2lkIGNsaWNrKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxk
U2V0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKaW5k
ZXggY2E4NTYzYi4uYzU1ZTYwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbApA
QCAtMjksNiArMjksNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBWYWxpZGl0eVN0YXRlICAgdmFsaWRpdHk7CiAjZW5kaWYKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U7CiAgICAgICAgIGJvb2xl
YW4gIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCAgICAgc2V0Q3VzdG9tVmFsaWRpdHko
aW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAzMDAy
YjM1Li4yNGJlN2EyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBA
IC0yNzMsNiArMjczLDE0IEBAIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6d2lsbFZhbGlk
YXRlKCkgY29uc3QKICAgICByZXR1cm4gZm9ybSgpICYmICFuYW1lKCkuaXNFbXB0eSgpICYmICFk
aXNhYmxlZCgpICYmICFpc1JlYWRPbmx5Rm9ybUNvbnRyb2woKTsKIH0KIAorU3RyaW5nIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6OnZhbGlkYXRpb25NZXNzYWdlKCkKK3sKKyAgICBpZiAoIXdpbGxW
YWxpZGF0ZSgpKQorICAgICAgICByZXR1cm4gZW1wdHlBdG9tOworCisgICAgcmV0dXJuIHZhbGlk
aXR5KCktPnZhbGlkYXRpb25NZXNzYWdlKCk7Cit9CisKIGJvb2wgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6Y2hlY2tWYWxpZGl0eSgpCiB7CiAgICAgaWYgKHdpbGxWYWxpZGF0ZSgpICYmICFpc1Zh
bGlkRm9ybUNvbnRyb2xFbGVtZW50KCkpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5oCmluZGV4IGVlN2Q3NzIuLjU1YzhlNWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuaApAQCAtMTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHNob3J0IHRh
YkluZGV4KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZhbGlkYXRlKCkgY29uc3Q7
CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlKCk7CiAgICAgYm9vbCBjaGVja1ZhbGlkaXR5
KCk7CiAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShjb25zdCBTdHJpbmcmKTsKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IGVlOTE5NmEuLjhmODc1MjAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5pZGwKQEAgLTU3LDYgKzU3LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdXNl
TWFwOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAg
ICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
ICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuICAgICAgICAgICAgY2hl
Y2tWYWxpZGl0eSgpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRp
dHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJv
cik7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBzZWxlY3QoKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuaWRsCmluZGV4IDUzZmU4NDguLmFlNDc4OTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmlkbApAQCAtNDUsNiArNDUsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRlICAgdmFsaWRpdHk7CiAjZW5kaWYKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U7CiAg
ICAgICAgIGJvb2xlYW4gICAgICAgICAgICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgICAgIHZvaWQg
ICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuaWRsCmluZGV4IDgyMjg0YTMuLjA1MTZlZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5pZGwKQEAgLTQ1LDYgKzQ1LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICB2b2lk
ICAgICBzZWxlY3QoKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAg
ICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAg
ICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0eSgp
OwogICAgICAgICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5l
ZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUu
Y3BwCmluZGV4IDg2MjI3ZDQuLmI2Zjg3NTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9WYWxp
ZGl0eVN0YXRlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKQEAgLTMx
LDYgKzMxLDMzIEBAIFZhbGlkaXR5U3RhdGU6OlZhbGlkaXR5U3RhdGUoSFRNTEZvcm1Db250cm9s
RWxlbWVudCogcGFyZW50KQogICAgIEFTU0VSVChwYXJlbnQpOwogfQogCitTdHJpbmcgVmFsaWRp
dHlTdGF0ZTo6dmFsaWRhdGlvbk1lc3NhZ2UoKQoreworICAgIEFTU0VSVChjb250cm9sKCktPndp
bGxWYWxpZGF0ZSgpKTsKKworICAgIGlmICh2YWxpZCgpKQorICAgICAgICByZXR1cm4gZW1wdHlB
dG9tOworCisgICAgaWYgKGN1c3RvbUVycm9yKCkpCisgICAgICAgIHJldHVybiB2YWxpZGF0aW9u
TWVzc2FnZVRleHQoVkFMSURBVElPTk1TR19DVVNUT00pOworICAgIGVsc2UgaWYgKHZhbHVlTWlz
c2luZygpKQorICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUZXh0KFZBTElEQVRJT05N
U0dfVkFMVUVNSVNTSU5HKTsKKyAgICBlbHNlIGlmICh0eXBlTWlzbWF0Y2goKSkKKyAgICAgICAg
cmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVGV4dChWQUxJREFUSU9OTVNHX1RZUEVNSVNNQVRDSCk7
CisgICAgZWxzZSBpZiAocGF0dGVybk1pc21hdGNoKCkpCisgICAgICAgIHJldHVybiB2YWxpZGF0
aW9uTWVzc2FnZVRleHQoVkFMSURBVElPTk1TR19QQVRURVJOTUlTTUFUQ0gpOworICAgIGVsc2Ug
aWYgKHRvb0xvbmcoKSkKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVGV4dChWQUxJ
REFUSU9OTVNHX1RPT0xPTkcpOworICAgIGVsc2UgaWYgKHJhbmdlVW5kZXJmbG93KCkpCisgICAg
ICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVRleHQoVkFMSURBVElPTk1TR19SQU5HRVVOREVS
RkxPVyk7CisgICAgZWxzZSBpZiAocmFuZ2VPdmVyZmxvdygpKQorICAgICAgICByZXR1cm4gdmFs
aWRhdGlvbk1lc3NhZ2VUZXh0KFZBTElEQVRJT05NU0dfUkFOR0VPVkVSRkxPVyk7CisgICAgZWxz
ZSBpZiAoc3RlcE1pc21hdGNoKCkpCisgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVRl
eHQoVkFMSURBVElPTk1TR19TVEVQTUlTTUFUQ0gpOworCisgICAgcmV0dXJuIGVtcHR5QXRvbTsK
K30KKwogYm9vbCBWYWxpZGl0eVN0YXRlOjp2YWxpZCgpCiB7CiAgICAgYm9vbCBzb21lRXJyb3Ig
PSB0eXBlTWlzbWF0Y2goKSB8fCBzdGVwTWlzbWF0Y2goKSB8fCByYW5nZVVuZGVyZmxvdygpIHx8
IHJhbmdlT3ZlcmZsb3coKSB8fApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3Rh
dGUuaCBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKaW5kZXggNzk0ODIyYS4uOGY0MGVh
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAorKysgYi9XZWJDb3Jl
L2h0bWwvVmFsaWRpdHlTdGF0ZS5oCkBAIC0yNCwxMSArMjQsMjUgQEAKICNkZWZpbmUgVmFsaWRp
dHlTdGF0ZV9oCiAKICNpbmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCisjaW5jbHVk
ZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisgICAgLy8g
S2VlcCBzeW5jaHJvbml6ZWQgd2l0aCBMb2NhbGl6ZWRTdHJpbmdzLmgKKy8vICAgIGVudW0gVmFs
aWRhdGlvbk1lc3NhZ2UgeworLy8gICAgICAgIFZBTElEQVRJT05NU0dfTk9ORSwKKy8vICAgICAg
ICBWQUxJREFUSU9OTVNHX0NVU1RPTSwKKy8vICAgICAgICBWQUxJREFUSU9OTVNHX1ZBTFVFTUlT
U0lORywKKy8vICAgICAgICBWQUxJREFUSU9OTVNHX1RZUEVNSVNNQVRDSCwKKy8vICAgICAgICBW
QUxJREFUSU9OTVNHX1BBVFRFUk5NSVNNQVRDSCwKKy8vICAgICAgICBWQUxJREFUSU9OTVNHX1RP
T0xPTkcsCisvLyAgICAgICAgVkFMSURBVElPTk1TR19SQU5HRVVOREVSRkxPVywKKy8vICAgICAg
ICBWQUxJREFUSU9OTVNHX1JBTkdFT1ZFUkZMT1csCisvLyAgICAgICAgVkFMSURBVElPTk1TR19T
VEVQTUlTTUFUQ0gKKy8vICAgIH07CisKICAgICBjbGFzcyBWYWxpZGl0eVN0YXRlIDogcHVibGlj
IFJlZkNvdW50ZWQ8VmFsaWRpdHlTdGF0ZT4gewogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8VmFsaWRpdHlTdGF0ZT4gY3JlYXRlKEhUTUxGb3JtQ29udHJvbEVsZW1lbnQq
IG93bmVyKQpAQCAtMzgsNiArNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
SFRNTEZvcm1Db250cm9sRWxlbWVudCogY29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udHJv
bDsgfQogCisgICAgICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZSgpOwogICAgICAgICB2b2lk
IHNldEN1c3RvbUVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgbV9jdXN0b21F
cnJvck1lc3NhZ2UgPSBtZXNzYWdlOyB9CiAKICAgICAgICAgYm9vbCB2YWx1ZU1pc3NpbmcoKSB7
IHJldHVybiBjb250cm9sKCktPnZhbHVlTWlzc2luZygpOyB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVk
U3RyaW5ncy5oCmluZGV4IDk5NDg1Y2UuLjEwZWRkNTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVk
U3RyaW5ncy5oCkBAIC0zMCw2ICszMCwxOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBj
bGFzcyBTdHJpbmc7CiAgICAgY2xhc3MgSW50U2l6ZTsKKworICAgIC8vIEtlZXAgc3luY2hyb25p
emVkIHdpdGggVmFsaWRpdHlTdGF0ZSB2YWxpZGF0aW9uIGZsYWdzCisgICAgZW51bSBWYWxpZGF0
aW9uTWVzc2FnZSB7CisgICAgICAgIFZBTElEQVRJT05NU0dfTk9ORSwKKyAgICAgICAgVkFMSURB
VElPTk1TR19DVVNUT00sCisgICAgICAgIFZBTElEQVRJT05NU0dfVkFMVUVNSVNTSU5HLAorICAg
ICAgICBWQUxJREFUSU9OTVNHX1RZUEVNSVNNQVRDSCwKKyAgICAgICAgVkFMSURBVElPTk1TR19Q
QVRURVJOTUlTTUFUQ0gsCisgICAgICAgIFZBTElEQVRJT05NU0dfVE9PTE9ORywKKyAgICAgICAg
VkFMSURBVElPTk1TR19SQU5HRVVOREVSRkxPVywKKyAgICAgICAgVkFMSURBVElPTk1TR19SQU5H
RU9WRVJGTE9XLAorICAgICAgICBWQUxJREFUSU9OTVNHX1NURVBNSVNNQVRDSAorICAgIH07CiAg
ICAgCiAgICAgU3RyaW5nIGlucHV0RWxlbWVudEFsdFRleHQoKTsKICAgICBTdHJpbmcgcmVzZXRC
dXR0b25EZWZhdWx0TGFiZWwoKTsKQEAgLTEzNiw2ICsxNDksOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBTdHJpbmcgbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgpOwogICAgIFN0
cmluZyBtZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCk7CisKKyAgICBTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VUZXh0KGNvbnN0IFZhbGlkYXRpb25NZXNzYWdlIHZhbGlkYXRpb25N
ZXNzYWdlKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21hYy9M
b2NhbGl6ZWRTdHJpbmdzTWFjLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxpemVkU3Ry
aW5nc01hYy5tbQppbmRleCA5YzFjNmE5Li5mN2QxMTgyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9Mb2NhbGl6ZWRTdHJpbmdzTWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0xvY2FsaXplZFN0cmluZ3NNYWMubW0KQEAgLTcyMSw0ICs3MjEsMTUgQEAgU3RyaW5nIG1l
ZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKQogICAgIHJldHVybiBTdHJpbmcoKTsK
IH0KIAorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVGV4dChjb25zdCBWYWxpZGF0aW9uTWVzc2Fn
ZSB2YWxpZGF0aW9uTWVzc2FnZSkKK3sKKyAgICAvLyBEZWFsIHdpdGggTWFjIGxvY2FsaXplZCBz
dHJpbmdzIGhlcmUKKyAgICBzd2l0Y2ggKHZhbGlkYXRpb25NZXNzYWdlKSB7CisgICAgICAgIGRl
ZmF1bHQ6CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgfQorCisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38554</attachid>
            <date>2009-08-25 10:13:08 -0700</date>
            <delta_ts>2009-08-28 17:20:01 -0700</delta_ts>
            <desc>Demo patch 2</desc>
            <filename>27959-Demo2.patch</filename>
            <type>text/plain</type>
            <size>8430</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwgYi9XZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCmluZGV4IDU1ODAzZGYuLmNiOTM4M2QgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbApAQCAtMzcsNiArMzcsNyBAQCBtb2R1bGUgaHRtbCB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdHlwZTsK
ICAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyAgICAgICAgICAgIHZhbHVlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiAgICAgICAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIERPTVN0cmluZyAgICAgICAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9v
bGVhbiAgY2hlY2tWYWxpZGl0eSgpOwogICAgICAgICB2b2lkIHNldEN1c3RvbVZhbGlkaXR5KGlu
IFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwog
ICAgICAgICB2b2lkIGNsaWNrKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxk
U2V0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKaW5k
ZXggY2E4NTYzYi4uYzU1ZTYwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbApA
QCAtMjksNiArMjksNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBWYWxpZGl0eVN0YXRlICAgdmFsaWRpdHk7CiAjZW5kaWYKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U7CiAgICAgICAgIGJvb2xl
YW4gIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCAgICAgc2V0Q3VzdG9tVmFsaWRpdHko
aW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCAzMDAy
YjM1Li4yNGJlN2EyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBA
IC0yNzMsNiArMjczLDE0IEBAIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6d2lsbFZhbGlk
YXRlKCkgY29uc3QKICAgICByZXR1cm4gZm9ybSgpICYmICFuYW1lKCkuaXNFbXB0eSgpICYmICFk
aXNhYmxlZCgpICYmICFpc1JlYWRPbmx5Rm9ybUNvbnRyb2woKTsKIH0KIAorU3RyaW5nIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQ6OnZhbGlkYXRpb25NZXNzYWdlKCkKK3sKKyAgICBpZiAoIXdpbGxW
YWxpZGF0ZSgpKQorICAgICAgICByZXR1cm4gZW1wdHlBdG9tOworCisgICAgcmV0dXJuIHZhbGlk
aXR5KCktPnZhbGlkYXRpb25NZXNzYWdlKCk7Cit9CisKIGJvb2wgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6Y2hlY2tWYWxpZGl0eSgpCiB7CiAgICAgaWYgKHdpbGxWYWxpZGF0ZSgpICYmICFpc1Zh
bGlkRm9ybUNvbnRyb2xFbGVtZW50KCkpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmggYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5oCmluZGV4IGVlN2Q3NzIuLjU1YzhlNWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuaApAQCAtMTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHNob3J0IHRh
YkluZGV4KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZhbGlkYXRlKCkgY29uc3Q7
CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlKCk7CiAgICAgYm9vbCBjaGVja1ZhbGlkaXR5
KCk7CiAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShjb25zdCBTdHJpbmcmKTsKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IGVlOTE5NmEuLjhmODc1MjAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5pZGwKQEAgLTU3LDYgKzU3LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdXNl
TWFwOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAg
ICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
ICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuICAgICAgICAgICAgY2hl
Y2tWYWxpZGl0eSgpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRp
dHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJv
cik7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBzZWxlY3QoKTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuaWRsCmluZGV4IDUzZmU4NDguLmFlNDc4OTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmlkbApAQCAtNDUsNiArNDUsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRlICAgdmFsaWRpdHk7CiAjZW5kaWYKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U7CiAg
ICAgICAgIGJvb2xlYW4gICAgICAgICAgICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgICAgIHZvaWQg
ICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIGIvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuaWRsCmluZGV4IDgyMjg0YTMuLjA1MTZlZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5pZGwKQEAgLTQ1LDYgKzQ1LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICB2b2lk
ICAgICBzZWxlY3QoKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAg
ICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAg
ICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0eSgp
OwogICAgICAgICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5l
ZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwIGIvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUu
Y3BwCmluZGV4IDg2MjI3ZDQuLmYwN2I2MjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9WYWxp
ZGl0eVN0YXRlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKQEAgLTMx
LDYgKzMxLDQwIEBAIFZhbGlkaXR5U3RhdGU6OlZhbGlkaXR5U3RhdGUoSFRNTEZvcm1Db250cm9s
RWxlbWVudCogcGFyZW50KQogICAgIEFTU0VSVChwYXJlbnQpOwogfQogCitTdHJpbmcgVmFsaWRp
dHlTdGF0ZTo6dmFsaWRhdGlvbk1lc3NhZ2UoKQoreworICAgIEFTU0VSVChjb250cm9sKCktPndp
bGxWYWxpZGF0ZSgpKTsKKworICAgIGlmICh2YWxpZCgpKQorICAgICAgICByZXR1cm4gZW1wdHlB
dG9tOworCisgICAgaWYgKGN1c3RvbUVycm9yKCkpCisgICAgICAgIHJldHVybiBtX2N1c3RvbUVy
cm9yTWVzc2FnZTsKKyAgICBlbHNlIGlmICh2YWx1ZU1pc3NpbmcoKSkgeworICAgICAgICByZXR1
cm4gdmFsaWRhdGlvbk1lc3NhZ2VUZXh0KCJWQUxJREFUSU9OTVNHX1ZBTFVFTUlTU0lORyIpOwor
ICAgIH0KKyAgICBlbHNlIGlmICh0eXBlTWlzbWF0Y2goKSkgeworICAgICAgICByZXR1cm4gdmFs
aWRhdGlvbk1lc3NhZ2VUZXh0KCJWQUxJREFUSU9OTVNHX1RZUEVNSVNNQVRDSCIpOworICAgIH0K
KyAgICBlbHNlIGlmIChwYXR0ZXJuTWlzbWF0Y2goKSkgeworICAgICAgICByZXR1cm4gdmFsaWRh
dGlvbk1lc3NhZ2VUZXh0KCJWQUxJREFUSU9OTVNHX1BBVFRFUk5NSVNNQVRDSCIpOworICAgIH0K
KyAgICBlbHNlIGlmICh0b29Mb25nKCkpIHsKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNz
YWdlVGV4dCgiVkFMSURBVElPTk1TR19UT09MT05HIik7CisgICAgfQorICAgIGVsc2UgaWYgKHJh
bmdlVW5kZXJmbG93KCkpIHsKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVGV4dCgi
VkFMSURBVElPTk1TR19SQU5HRVVOREVSRkxPVyIpOworICAgIH0KKyAgICBlbHNlIGlmIChyYW5n
ZU92ZXJmbG93KCkpIHsKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVGV4dCgiVkFM
SURBVElPTk1TR19SQU5HRU9WRVJGTE9XIik7CisgICAgfQorICAgIGVsc2UgaWYgKHN0ZXBNaXNt
YXRjaCgpKSB7CisgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVRleHQoIlZBTElEQVRJ
T05NU0dfU1RFUE1JU01BVENIIik7CisgICAgfQorCisgICAgcmV0dXJuIGVtcHR5QXRvbTsKK30K
KwogYm9vbCBWYWxpZGl0eVN0YXRlOjp2YWxpZCgpCiB7CiAgICAgYm9vbCBzb21lRXJyb3IgPSB0
eXBlTWlzbWF0Y2goKSB8fCBzdGVwTWlzbWF0Y2goKSB8fCByYW5nZVVuZGVyZmxvdygpIHx8IHJh
bmdlT3ZlcmZsb3coKSB8fApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUu
aCBiL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKaW5kZXggNzk0ODIyYS4uNTJiMDI5ZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAorKysgYi9XZWJDb3JlL2h0
bWwvVmFsaWRpdHlTdGF0ZS5oCkBAIC0yNCw2ICsyNCw3IEBACiAjZGVmaW5lIFZhbGlkaXR5U3Rh
dGVfaAogCiAjaW5jbHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgorI2luY2x1ZGUgIkxv
Y2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAgLTM4LDYgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGNvbnRyb2woKSBjb25zdCB7IHJl
dHVybiBtX2NvbnRyb2w7IH0KIAorICAgICAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2UoKTsK
ICAgICAgICAgdm9pZCBzZXRDdXN0b21FcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdl
KSB7IG1fY3VzdG9tRXJyb3JNZXNzYWdlID0gbWVzc2FnZTsgfQogCiAgICAgICAgIGJvb2wgdmFs
dWVNaXNzaW5nKCkgeyByZXR1cm4gY29udHJvbCgpLT52YWx1ZU1pc3NpbmcoKTsgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaCBiL1dlYkNvcmUvcGFn
ZS9tYWMvV2ViQ29yZVZpZXdGYWN0b3J5LmgKaW5kZXggZTExNGU5OS4uNmViNWY3NiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaAorKysgYi9XZWJDb3Jl
L3BhZ2UvbWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oCkBAIC0xNDQsNiArMTQ0LDcgQEAKIAogLSAo
TlNTdHJpbmcgKiltZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0OwogLSAoTlNTdHJpbmcgKilt
ZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0OworLSAoTlNTdHJpbmcgKil2YWxpZGF0
aW9uTWVzc2FnZVRleHQ6KE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2U7CiAKIEBlbmQKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCA5OTQ4NWNlLi42ZWJiMTQ3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaApAQCAtMTM2LDYgKzEzNiw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIFN0cmluZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCk7
CiAgICAgU3RyaW5nIG1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKTsKKworICAg
IFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRleHQoY29uc3QgU3RyaW5nJiB2YWxpZGF0aW9uTWVz
c2FnZSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9j
YWxpemVkU3RyaW5nc01hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsaXplZFN0cmlu
Z3NNYWMubW0KaW5kZXggOWMxYzZhOS4uNDBkOGNlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5nc01hYy5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9Mb2NhbGl6ZWRTdHJpbmdzTWFjLm1tCkBAIC03MjEsNCArNzIxLDEyIEBAIFN0cmluZyBtZWRp
YUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9
CiAKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRleHQoY29uc3QgU3RyaW5nJiB2YWxpZGF0aW9u
TWVzc2FnZSkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJu
IFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlVGV4
dDp2YWxpZGF0aW9uTWVzc2FnZV07CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYktpdC9FbmdsaXNoLmxw
cm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9XZWJLaXQvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJs
ZS5zdHJpbmdzCmluZGV4IDdmOTIwMzIuLjBkYzY3ODcgMTAwNjQ0CkJpbmFyeSBmaWxlcyBhL1dl
YktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYW5kIGIvV2ViS2l0L0VuZ2xp
c2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBkaWZmZXIKZGlmZiAtLWdpdCBhL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3RvcnkubW0gYi9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlZpZXdGYWN0b3J5Lm1tCmluZGV4IDllOTQ2NmEuLmM2MjU0NWQgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3RvcnkubW0KKysrIGIvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3RmFjdG9yeS5tbQpAQCAtNjEzLDQgKzYxMyw5
IEBACiAgICAgcmV0dXJuIFVJX1NUUklORygiTGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJv
bGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKIH0K
IAorLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVRleHQ6KE5TU3RyaW5nICopdmFsaWRh
dGlvbk1lc3NhZ2UKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKFt2YWxpZGF0aW9uTWVzc2FnZSBV
VEY4U3RyaW5nXSwgIlZhbGlkYXRpb24gbWVzc2FnZSB0byBkZXNjcmliZSBlbGVtZW50IHZhbGlk
YXRpb24gc3RhdGUiKTsKK30KKwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy9tYWtlLXNjcmlwdC10ZXN0LXdyYXBwZXJzIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tYWtlLXNj
cmlwdC10ZXN0LXdyYXBwZXJzCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38764</attachid>
            <date>2009-08-28 17:20:01 -0700</date>
            <delta_ts>2009-09-02 14:36:03 -0700</delta_ts>
            <desc>Complete patch, not yet reviewable</desc>
            <filename>27959-Demo3.patch</filename>
            <type>text/plain</type>
            <size>15177</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3ZhbGlkYXRpb25N
ZXNzYWdlLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvdmFsaWRhdGlvbk1l
c3NhZ2UuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjk1NDFlMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3ZhbGlkYXRp
b25NZXNzYWdlLmpzCkBAIC0wLDAgKzEsNzMgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciB2YWxp
ZGF0aW9uTWVzc2FnZSBET00gcHJvcGVydHkuIik7CisKK2Z1bmN0aW9uIHRlc3RWYWxpZGF0aW9u
TWVzc2FnZShlbGVtKSB7CisgICAgaWYgKGVsZW0udmFsaWRhdGlvbk1lc3NhZ2UgPT0gbnVsbCkg
eworICAgICAgICB0ZXN0RmFpbGVkKCJObyB2YWxpZGF0aW9uTWVzc2FnZSBET00gYXR0cmlidXRl
IGV4cG9zZWQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIHZhbGlkYXRpb25N
ZXNzYWdlIGlzIGFsd2F5cyBlbXB0eSBvbiBub24tdmFsaWRhYmxlIGFuZCB2YWxpZCBjb250cm9s
cworICAgIGlmICghZWxlbS53aWxsVmFsaWRhdGUgfHwgZWxlbS52YWxpZGl0eS52YWxpZCkgewor
ICAgICAgICBpZiAoZWxlbS52YWxpZGF0aW9uTWVzc2FnZSA9PSAiIikKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQoInZhbGlkYXRpb25NZXNzYWdlIGVtcHR5Iik7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQoInZhbGlkYXRpb25NZXNzYWdlIGlzIE5PVCBlbXB0eSIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGVsZW0udmFsaWRhdGlvbk1lc3NhZ2UubGVu
Z3RoID4gMSkKKyAgICAgICAgdGVzdFBhc3NlZCgidmFsaWRhdGlvbk1lc3NhZ2UgcHJlc2VudCIp
OworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgidmFsaWRhdGlvbk1lc3NhZ2UiKQorfQor
Cit2YXIgZm9ybSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKTsKKworLy8gQW4gaW5w
dXQgZWxlbWVudCB3aXRoIGEgcGF0dGVybiBzZXQgYW5kIGEgbWlzbWF0Y2hlZCB2YWx1ZQordmFy
IHBhdHRlcm5JbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CitwYXR0ZXJu
SW5wdXQubmFtZSA9ICJwYXR0ZXJuSW5wdXQiOworcGF0dGVybklucHV0LnBhdHRlcm4gPSAibG9y
ZW0gaXBzdW0iOworcGF0dGVybklucHV0LnZhbHVlID0gImxvcmVtIjsKK2Zvcm0uYXBwZW5kQ2hp
bGQocGF0dGVybklucHV0KTsKK3Rlc3RWYWxpZGF0aW9uTWVzc2FnZShwYXR0ZXJuSW5wdXQpOwor
CisvLyBBIHJlcXVpcmVkIGlucHV0IHdpdGggYW4gZW1wdHkgdmFsdWUKK3ZhciByZXF1aXJlZElu
cHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKK3JlcXVpcmVkSW5wdXQubmFt
ZSA9ICJyZXF1aXJlZElucHV0IjsKK3JlcXVpcmVkSW5wdXQucmVxdWlyZWQgPSB0cnVlOworZm9y
bS5hcHBlbmRDaGlsZChyZXF1aXJlZElucHV0KTsKK3Rlc3RWYWxpZGF0aW9uTWVzc2FnZShyZXF1
aXJlZElucHV0KTsKKworLy8gQSByZXF1aXJlZCB0ZXh0YXJlYSB3aXRoIGFuIGVtcHR5IHZhbHVl
Cit2YXIgcmVxdWlyZWRUZXh0QXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVh
Iik7CityZXF1aXJlZFRleHRBcmVhLm5hbWUgPSAicmVxdWlyZWRUZXh0QXJlYSI7CityZXF1aXJl
ZFRleHRBcmVhLnJlcXVpcmVkID0gdHJ1ZTsKK2Zvcm0uYXBwZW5kQ2hpbGQocmVxdWlyZWRUZXh0
QXJlYSk7Cit0ZXN0VmFsaWRhdGlvbk1lc3NhZ2UocmVxdWlyZWRUZXh0QXJlYSk7CisKKy8vIEEg
YnV0dG9uIGNhbid0IGJlIHZhbGl0ZWQgYW5kLCB0aHVzLCBoYXMgYSBibGFuayB2YWxpZGF0aW9u
TWVzc2FnZQordmFyIGJ1dHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTsKK2J1
dHQubmFtZSA9ICJidXR0b24iOworZm9ybS5hcHBlbmRDaGlsZChidXR0KTsKK3Rlc3RWYWxpZGF0
aW9uTWVzc2FnZShidXR0KTsKKworLy8gQW4gaW5wdXQgY29udHJvbCB3aXRoIG5vIG5hbWUsIHNv
IGl0IGNhbid0IGJlIHZhbGlkYXRlZCAod2lsbFZhbGlkYXRlID0gZmFsc2UpCit2YXIgYW5vbmlu
cHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKK2Zvcm0uYXBwZW5kQ2hpbGQo
YW5vbmlucHV0KTsKK3Rlc3RWYWxpZGF0aW9uTWVzc2FnZShhbm9uaW5wdXQpOworCisvLyBGaWVs
ZHNldHMgY2FuJ3QgYmUgdmFsaWRhdGVkCit2YXIgaGFwcHlGaWVsZHNldCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImZpZWxkc2V0Iik7CitoYXBweUZpZWxkc2V0Lm5hbWUgPSAiZmllbGRzZXQi
OworZm9ybS5hcHBlbmRDaGlsZChoYXBweUZpZWxkc2V0KTsKK3Rlc3RWYWxpZGF0aW9uTWVzc2Fn
ZShoYXBweUZpZWxkc2V0KTsKKworLy8gU2VsZWN0IGNvbnRyb2xzIGNhbid0IGJlIHZhbGlkYXRl
ZCB0b28KK3ZhciBoYXBweVNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIp
OworaGFwcHlTZWxlY3QubmFtZSA9ICJzZWxlY3QiOworZm9ybS5hcHBlbmRDaGlsZChoYXBweVNl
bGVjdCk7Cit0ZXN0VmFsaWRhdGlvbk1lc3NhZ2UoaGFwcHlTZWxlY3QpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
dmFsaWRhdGlvbk1lc3NhZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlv
bk1lc3NhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZmQ1NDgy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVz
c2FnZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3ZhbGlkYXRpb25NZXNzYWdlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxl
bWVudC5pZGwKaW5kZXggNTU4MDNkZi4uY2I5MzgzZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0hUTUxCdXR0b25FbGVtZW50LmlkbAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1l
bnQuaWRsCkBAIC0zNyw2ICszNyw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB0eXBlOwogICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAg
dmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAgICAg
d2lsbFZhbGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAg
ICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5
KCk7CiAgICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRP
ck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAgICAgICAgIHZvaWQgY2xpY2so
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbCBiL1dl
YkNvcmUvaHRtbC9IVE1MRmllbGRTZXRFbGVtZW50LmlkbAppbmRleCBjYTg1NjNiLi5jNTVlNjA0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCkBAIC0yOSw2ICsyOSw3IEBAIG1v
ZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2
YWxpZGl0eTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAg
ICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAg
ICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0eSgp
OwogICAgICAgICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5l
ZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICB9OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDMwMDJiMzUuLjI0YmU3YTIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTI3Myw2ICsyNzMsMTQgQEAg
Ym9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxsVmFsaWRhdGUoKSBjb25zdAogICAgIHJl
dHVybiBmb3JtKCkgJiYgIW5hbWUoKS5pc0VtcHR5KCkgJiYgIWRpc2FibGVkKCkgJiYgIWlzUmVh
ZE9ubHlGb3JtQ29udHJvbCgpOwogfQogCitTdHJpbmcgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
dmFsaWRhdGlvbk1lc3NhZ2UoKQoreworICAgIGlmICghd2lsbFZhbGlkYXRlKCkpCisgICAgICAg
IHJldHVybiBlbXB0eUF0b207CisKKyAgICByZXR1cm4gdmFsaWRpdHkoKS0+dmFsaWRhdGlvbk1l
c3NhZ2UoKTsKK30KKwogYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpjaGVja1ZhbGlkaXR5
KCkKIHsKICAgICBpZiAod2lsbFZhbGlkYXRlKCkgJiYgIWlzVmFsaWRGb3JtQ29udHJvbEVsZW1l
bnQoKSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
aCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKaW5kZXggZWU3ZDc3Mi4u
NTVjOGU1ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
aAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0xMDUsNiAr
MTA1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgc2hvcnQgdGFiSW5kZXgoKSBjb25zdDsKIAog
ICAgIHZpcnR1YWwgYm9vbCB3aWxsVmFsaWRhdGUoKSBjb25zdDsKKyAgICBTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2UoKTsKICAgICBib29sIGNoZWNrVmFsaWRpdHkoKTsKICAgICB2b2lkIHNldEN1
c3RvbVZhbGlkaXR5KGNvbnN0IFN0cmluZyYpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5pZGwgYi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwK
aW5kZXggN2Y1YzAwMS4uYmExZDE1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAt
NjYsNiArNjYsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBI
VE1MT3B0aW9uRWxlbWVudCBzZWxlY3RlZE9wdGlvbjsKICNlbmRpZgogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAg
Ym9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCAgICAgICAg
ICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxs
U3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2Vs
ZWN0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsIGIv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAppbmRleCA1M2ZlODQ4Li5hZTQ3ODk2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCisrKyBiL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKQEAgLTQ1LDYgKzQ1LDcgQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZhbGlk
aXR5OwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAg
d2lsbFZhbGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAg
IHZhbGlkYXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuICAgICAgICAgICAgY2hlY2tWYWxp
ZGl0eSgpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4g
W0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbCBiL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAppbmRleCA4MjI4NGEzLi4wNTE2ZWY1IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKKysrIGIvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCkBAIC00NSw2ICs0NSw3IEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgdm9pZCAgICAgc2VsZWN0KCk7CiAKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U7CiAgICAgICAgIGJv
b2xlYW4gIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCAgICAgc2V0Q3VzdG9tVmFsaWRp
dHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJv
cik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcCBiL1dlYkNv
cmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAppbmRleCA4NjIyN2Q0Li40ZmJmOGJlIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL1Zh
bGlkaXR5U3RhdGUuY3BwCkBAIC0zMSw2ICszMSw0MiBAQCBWYWxpZGl0eVN0YXRlOjpWYWxpZGl0
eVN0YXRlKEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIHBhcmVudCkKICAgICBBU1NFUlQocGFyZW50
KTsKIH0KIAorU3RyaW5nIFZhbGlkaXR5U3RhdGU6OnZhbGlkYXRpb25NZXNzYWdlKCkKK3sKKyAg
ICBBU1NFUlQoY29udHJvbCgpLT53aWxsVmFsaWRhdGUoKSk7CisKKyAgICBpZiAodmFsaWQoKSkK
KyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbTsKKworICAgIGlmIChjdXN0b21FcnJvcigpKQorICAg
ICAgICByZXR1cm4gbV9jdXN0b21FcnJvck1lc3NhZ2U7CisgICAgZWxzZSBpZiAodmFsdWVNaXNz
aW5nKCkpIHsKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVGV4dCgiVkFMSURBVElP
Tk1TR19WQUxVRU1JU1NJTkciKTsKKyAgICB9CisgICAgZWxzZSBpZiAodHlwZU1pc21hdGNoKCkp
IHsKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVGV4dCgiVkFMSURBVElPTk1TR19U
WVBFTUlTTUFUQ0giKTsKKyAgICB9CisgICAgZWxzZSBpZiAocGF0dGVybk1pc21hdGNoKCkpIHsK
KyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVGV4dCgiVkFMSURBVElPTk1TR19QQVRU
RVJOTUlTTUFUQ0giKTsKKyAgICB9CisgICAgZWxzZSBpZiAodG9vTG9uZygpKSB7CisgICAgICAg
IHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVRleHQoIlZBTElEQVRJT05NU0dfVE9PTE9ORyIpOwor
ICAgIH0KKyAgICBlbHNlIGlmIChyYW5nZVVuZGVyZmxvdygpKSB7CisgICAgICAgIHJldHVybiB2
YWxpZGF0aW9uTWVzc2FnZVRleHQoIlZBTElEQVRJT05NU0dfUkFOR0VVTkRFUkZMT1ciKTsKKyAg
ICB9CisgICAgZWxzZSBpZiAocmFuZ2VPdmVyZmxvdygpKSB7CisgICAgICAgIHJldHVybiB2YWxp
ZGF0aW9uTWVzc2FnZVRleHQoIlZBTElEQVRJT05NU0dfUkFOR0VPVkVSRkxPVyIpOworICAgIH0K
KyAgICBlbHNlIGlmIChzdGVwTWlzbWF0Y2goKSkgeworICAgICAgICByZXR1cm4gdmFsaWRhdGlv
bk1lc3NhZ2VUZXh0KCJWQUxJREFUSU9OTVNHX1NURVBNSVNNQVRDSCIpOworICAgIH0KKworCisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGVtcHR5QXRvbTsKK30KKwogYm9v
bCBWYWxpZGl0eVN0YXRlOjp2YWxpZCgpCiB7CiAgICAgYm9vbCBzb21lRXJyb3IgPSB0eXBlTWlz
bWF0Y2goKSB8fCBzdGVwTWlzbWF0Y2goKSB8fCByYW5nZVVuZGVyZmxvdygpIHx8IHJhbmdlT3Zl
cmZsb3coKSB8fApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaCBiL1dl
YkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgKaW5kZXggNzk0ODIyYS4uNTJiMDI5ZSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAorKysgYi9XZWJDb3JlL2h0bWwvVmFs
aWRpdHlTdGF0ZS5oCkBAIC0yNCw2ICsyNCw3IEBACiAjZGVmaW5lIFZhbGlkaXR5U3RhdGVfaAog
CiAjaW5jbHVkZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIgorI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAKQEAgLTM4LDYgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGNvbnRyb2woKSBjb25zdCB7IHJldHVybiBt
X2NvbnRyb2w7IH0KIAorICAgICAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2UoKTsKICAgICAg
ICAgdm9pZCBzZXRDdXN0b21FcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7IG1f
Y3VzdG9tRXJyb3JNZXNzYWdlID0gbWVzc2FnZTsgfQogCiAgICAgICAgIGJvb2wgdmFsdWVNaXNz
aW5nKCkgeyByZXR1cm4gY29udHJvbCgpLT52YWx1ZU1pc3NpbmcoKTsgfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaCBiL1dlYkNvcmUvcGFnZS9tYWMv
V2ViQ29yZVZpZXdGYWN0b3J5LmgKaW5kZXggYzFiNzM3NS4uZDliOWRlMyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaAorKysgYi9XZWJDb3JlL3BhZ2Uv
bWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oCkBAIC0xNDcsNyArMTQ3LDcgQEAKIC0gKE5TU3RyaW5n
Kilsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nOihOU1N0cmluZyopbmFtZTsKIC0g
KE5TU3RyaW5nKilsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQ6KE5TU3RyaW5n
KiluYW1lOwogLSAoTlNTdHJpbmcqKWxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uOihmbG9h
dCl0aW1lOwotCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVGV4dDooTlNTdHJpbmcg
Kil2YWxpZGF0aW9uTWVzc2FnZTsKIAogQGVuZAogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5oCmluZGV4IDQ1ODU1ZWQuLjI2NjY0YzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5oCkBAIC0xMzksNiArMTM5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBs
b2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpOwogICAgIFN0
cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJik7
CiAgICAgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0KTsKKworICAg
IFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRleHQoY29uc3QgU3RyaW5nJiB2YWxpZGF0aW9uTWVz
c2FnZSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lk
L0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9M
b2NhbGl6ZWRTdHJpbmdzQW5kcm9pZC5jcHAKaW5kZXggMWZlODBkOC4uNjZhODFlOCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQu
Y3BwCkBAIC01MSw0ICs1MSw5IEBAIFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmls
ZW5hbWUsIGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUZXh0KGNvbnN0IFN0cmluZyYgdmFsaWRhdGlvbk1lc3Nh
Z2UpCit7CisgICAgcmV0dXJuIFN0cmluZyh2YWxpZGF0aW9uTWVzc2FnZSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0xvY2Fs
aXplZFN0cmluZ3NHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5n
c0d0ay5jcHAKaW5kZXggODVlMDcxYi4uN2ZkYWQ0NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvTG9jYWxpemVkU3RyaW5nc0d0ay5jcHAKQEAgLTQ2Nyw0ICs0NjcsOSBAQCBTdHJpbmcgbG9j
YWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKIH0KICNlbmRpZiAgLy8gRU5B
QkxFKFZJREVPKQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUZXh0KGNvbnN0IFN0cmluZyYg
dmFsaWRhdGlvbk1lc3NhZ2UpCit7CisgICAgcmV0dXJuIFN0cmluZyh2YWxpZGF0aW9uTWVzc2Fn
ZSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVk
U3RyaW5nc0hhaWt1LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3RyaW5n
c0hhaWt1LmNwcAppbmRleCBhMzdmZmNjLi4wYWUzZjhiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwCkBAIC0zNDIsNSArMzQyLDEwIEBA
IFN0cmluZyBBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQoKQogICAgIHJldHVybiBTdHJp
bmcoKTsKIH0KIAorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVGV4dChjb25zdCBTdHJpbmcmIHZh
bGlkYXRpb25NZXNzYWdlKQoreworICAgIHJldHVybiBTdHJpbmcodmFsaWRhdGlvbk1lc3NhZ2Up
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0xvY2FsaXplZFN0cmluZ3NNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9M
b2NhbGl6ZWRTdHJpbmdzTWFjLm1tCmluZGV4IDE3MjkwNjEuLmQ3YjJmOTAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsaXplZFN0cmluZ3NNYWMubW0KKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5nc01hYy5tbQpAQCAtNzQ1LDUgKzc0NSwxMiBA
QCBTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvYXQgdGltZSkKICAgICBy
ZXR1cm4gU3RyaW5nKCk7CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRleHQoY29uc3Qg
U3RyaW5nJiB2YWxpZGF0aW9uTWVzc2FnZSkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3RvcnldIHZh
bGlkYXRpb25NZXNzYWdlVGV4dDp2YWxpZGF0aW9uTWVzc2FnZV07CisgICAgRU5EX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CiAKIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcCBiL1dlYkNvcmUvcGxh
dGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAppbmRleCA1YmVkZTUyLi5lMGEyMzdkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwCkBAIC0zMjMsNCAr
MzIzLDkgQEAgU3RyaW5nIEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCiAgICAgcmV0
dXJuIFN0cmluZygpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUZXh0KGNvbnN0IFN0
cmluZyYgdmFsaWRhdGlvbk1lc3NhZ2UpCit7CisgICAgcmV0dXJuIFN0cmluZyh2YWxpZGF0aW9u
TWVzc2FnZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYktp
dC9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYi9XZWJLaXQvRW5nbGlzaC5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IDc0ZmMzMjcuLjg4M2E3NTcgMTAwNjQ0CkJpbmFy
eSBmaWxlcyBhL1dlYktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MgYW5kIGIv
V2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncyBkaWZmZXIKZGlmZiAtLWdp
dCBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3RvcnkubW0gYi9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZpZXdGYWN0b3J5Lm1tCmluZGV4IDA0ODE2ZDMuLjFlMmYz
NWYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3Rvcnku
bW0KKysrIGIvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3RmFjdG9yeS5tbQpAQCAt
NzQ0LDQgKzc0NCwyNSBAQAogICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpV
SV9TVFJJTkcoImRhdGUuZm9ybWF0LmZvci5zZWNvbmRzIiwgInN0cmluZyBmb3Igc2Vjb25kcyIp
LCBzZWNvbmRzXTsKIH0KIAorLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVRleHQ6KE5T
U3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2UKK3sKKyAgICBpZiAoW3ZhbGlkYXRpb25NZXNzYWdl
IGlzRXF1YWxUb1N0cmluZzpAIlZBTElEQVRJT05NU0dfVkFMVUVNSVNTSU5HIl0pCisgICAgICAg
IHJldHVybiBVSV9TVFJJTkcoImVsZW1lbnQgaGFzIG5vIHZhbHVlIGJ1dCBpcyBhIHJlcXVpcmVk
IGZpZWxkIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW52YWxpZCByZXF1aXJlZCBmb3JtIGNv
bnRyb2xzIik7CisgICAgaWYgKFt2YWxpZGF0aW9uTWVzc2FnZSBpc0VxdWFsVG9TdHJpbmc6QCJW
QUxJREFUSU9OTVNHX1RZUEVNSVNNQVRDSCJdKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJl
bGVtZW50J3MgdmFsdWUgaXMgbm90IGluIHRoZSBjb3JyZWN0IHN5bnRheCIsICJWYWxpZGF0aW9u
IG1lc3NhZ2UgZm9yIGlucHV0IGNvbnRyb2xzIHdpdGggYSBtaXNtYXRjaGVkIHR5cGUiKTsKKyAg
ICBpZiAoW3ZhbGlkYXRpb25NZXNzYWdlIGlzRXF1YWxUb1N0cmluZzpAIlZBTElEQVRJT05NU0df
UEFUVEVSTk1JU01BVENIIl0pCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoImVsZW1lbnQncyB2
YWx1ZSBkb2Vzbid0IG1hdGNoIHRoZSBwcm92aWRlZCBwYXR0ZXJuIiwgIlZhbGlkYXRpb24gbWVz
c2FnZSBmb3IgaW5wdXQgY29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNj
b3JkaW5nIHRvIHRoZWlyIHBhdHRlcm4iKTsKKyAgICBpZiAoW3ZhbGlkYXRpb25NZXNzYWdlIGlz
RXF1YWxUb1N0cmluZzpAIlZBTElEQVRJT05NU0dfVE9PTE9ORyJdKQorICAgICAgICByZXR1cm4g
VUlfU1RSSU5HKCJlbGVtZW50J3MgdmFsdWUgaXMgbG9uZ2VyIHRoYW4gdGhlIHByb3ZpZGVkIG1h
eGltdW0gbGVuZ3RoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgY29udHJvbHMgd2l0aCBhIHZh
bHVlIGxvbmdlciB0aGFuIG1heGxlbmd0aCIpOworICAgIGlmIChbdmFsaWRhdGlvbk1lc3NhZ2Ug
aXNFcXVhbFRvU3RyaW5nOkAiVkFMSURBVElPTk1TR19SQU5HRVVOREVSRkxPVyJdKQorICAgICAg
ICByZXR1cm4gVUlfU1RSSU5HKCJlbGVtZW50J3MgdmFsdWUgaXMgbG93ZXIgdGhhbiB0aGUgcHJv
dmlkZWQgbWluaW11bSIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGNvbnRyb2xzIHdp
dGggdmFsdWUgbG93ZXIgdGhhbiBtaW5pbXVtIik7CisgICAgaWYgKFt2YWxpZGF0aW9uTWVzc2Fn
ZSBpc0VxdWFsVG9TdHJpbmc6QCJWQUxJREFUSU9OTVNHX1JBTkdFT1ZFUkZMT1ciXSkKKyAgICAg
ICAgcmV0dXJuIFVJX1NUUklORygiZWxlbWVudCdzIHZhbHVlIGlzIGhpZ2hlciB0aGFuIHRoZSBw
cm92aWRlZCBtYXhpbXVtIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgY29udHJvbHMg
d2l0aCB2YWx1ZSBoaWdoZXIgdGhhbiBtYXhpbXVtIik7CisgICAgaWYgKFt2YWxpZGF0aW9uTWVz
c2FnZSBpc0VxdWFsVG9TdHJpbmc6QCJWQUxJREFUSU9OTVNHX1NURVBNSVNNQVRDSCJdKQorICAg
ICAgICByZXR1cm4gVUlfU1RSSU5HKCJlbGVtZW50J3MgdmFsdWUgZG9lc24ndCBmaXQgdGhlIHJ1
bGVzIGdpdmVuIGJ5IHRoZSBzdGVwIGF0dHJpYnV0ZSIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9y
IGlucHV0IGNvbnRyb2xzIHdpdGggYSB2YWx1ZSB0aGF0IGRvZXNuJ3QgcmVzcGVjdCB0aGUgc3Rl
cCBhdHRyaWJ1dGUiKTsKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBA
IiI7Cit9CisKIEBlbmQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38942</attachid>
            <date>2009-09-02 14:36:16 -0700</date>
            <delta_ts>2009-09-04 18:05:27 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-27959-20090902233612.patch</filename>
            <type>text/plain</type>
            <size>25173</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Nzk5MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMDktMDktMDIgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNk
ZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3OTU5Cisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciAidmFsaWRhdGlvbk1lc3NhZ2UiIERPTSBhdHRyaWJ1dGUg
ZnJvbSBIVE1MNSBzcGVjcy4KKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dl
Yi1hcHBzL2N1cnJlbnQtd29yay8jZG9tLWN2YS12YWxpZGF0aW9ubWVzc2FnZQorCisgICAgICAg
IFRlc3Q6IGZhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UuaHRtbAorCisgICAgICAgICogaHRt
bC9IVE1MQnV0dG9uRWxlbWVudC5pZGw6IHZhbGlkYXRpb25NZXNzYWdlIERPTSBhdHRyaWJ1dGUK
KyAgICAgICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsOiB2YWxpZGF0aW9uTWVzc2Fn
ZSBET00gYXR0cmlidXRlCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNw
cDogbWV0aG9kIHRvIHJldHVybiB2YWxpZGF0aW9uIG1lc3NhZ2UKKyAgICAgICAgKiBodG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaDogZGl0dG8gKGRlZmluaXRpb24pCisgICAgICAgICogaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmlkbDogdmFsaWRhdGlvbk1lc3NhZ2UgRE9NIGF0dHJpYnV0ZQor
ICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOiB2YWxpZGF0aW9uTWVzc2FnZSBE
T00gYXR0cmlidXRlCisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbDogdmFs
aWRhdGlvbk1lc3NhZ2UgRE9NIGF0dHJpYnV0ZQorICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0
ZS5jcHA6IHJldHVybnMgdmFsaWRhdGlvbk1lc3NhZ2UgZm9yIHRoZSBlbGVtZW50CisgICAgICAg
ICogaHRtbC9WYWxpZGl0eVN0YXRlLmg6IGRpdHRvIChkZWZpbml0aW9uKQorICAgICAgICAqIHBh
Z2UvbWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oOiBhZGRlZCB2YWxpZGF0aW9uTWVzc2FnZVRleHQg
bWV0aG9kCisgICAgICAgIHRvIHJldHJpZXZlIGxvY2FsaXplZCB2YWxpZGF0aW9uTWVzc2FnZQor
ICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDogdmFsaWRhdGlvbk1lc3NhZ2VU
ZXh0IGRlZmluaXRpb24KKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmlu
Z3NBbmRyb2lkLmNwcDogcmV0dXJucyByYXcgdmFsaWRhdGlvbgorICAgICAgICBtZXNzYWdlIG9u
IHRoZSBBbmRyb2lkIHBvcnQKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5n
c0d0ay5jcHA6IHJldHVybnMgcmF3IHZhbGlkYXRpb24gbWVzc2FnZQorICAgICAgICBvbiB0aGUg
R3RrIHBvcnQKKyAgICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3Uu
Y3BwOiByZXR1cm5zIHJhdyB2YWxpZGF0aW9uCisgICAgICAgIG1lc3NhZ2Ugb24gdGhlIEhhaWt1
IHBvcnQKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5nc01hYy5tbTogdmFs
aWRhdGlvbk1lc3NhZ2VUZXh0IG1ldGhvZAorICAgICAgICBpbXBsZW1lbnRhdGlvbiwgY2FsbHMg
TWFjIHNwZWNpZmljIGkxOG4gY29kZQorICAgICAgICAqIHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0
cmluZ3NXeC5jcHA6IHJldHVybnMgcmF3IHZhbGlkYXRpb24gbWVzc2FnZSBvbgorICAgICAgICB0
aGUgV3ggcG9ydAorCiAyMDA5LTA5LTAyICBLZXZpbiBXYXR0ZXJzICA8a2V2aW53YXR0ZXJzQGdt
YWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZXZpbiBPbGxpdmllci4KSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAkocmV2aXNpb24gNDc5OTIpCisrKyBXZWJDb3JlL2h0
bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBA
IG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBET01TdHJpbmcgICAg
ICAgICAgICB0eXBlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICAgICAgIHZhbGlkYXRpb25NZXNzYWdl
OwogICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgICAgIHZvaWQgc2V0Q3Vz
dG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0
cmluZyBlcnJvcik7CiAgICAgICAgIHZvaWQgY2xpY2soKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MRmllbGRTZXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZp
ZWxkU2V0RWxlbWVudC5pZGwJKHJldmlzaW9uIDQ3OTkyKQorKysgV2ViQ29yZS9odG1sL0hUTUxG
aWVsZFNldEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxp
ZGl0eTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAg
IHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAg
ICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0eSgpOwog
ICAgICAgICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9y
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICB9OwpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAkocmV2aXNpb24gNDc5OTIpCisrKyBXZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3
Myw2ICsyNzMsMTQgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxsVmFsaWRhdAog
ICAgIHJldHVybiBmb3JtKCkgJiYgIW5hbWUoKS5pc0VtcHR5KCkgJiYgIWRpc2FibGVkKCkgJiYg
IWlzUmVhZE9ubHlGb3JtQ29udHJvbCgpOwogfQogCitTdHJpbmcgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6dmFsaWRhdGlvbk1lc3NhZ2UoKQoreworICAgIGlmICghd2lsbFZhbGlkYXRlKCkpCisg
ICAgICAgIHJldHVybiBlbXB0eUF0b207CisKKyAgICByZXR1cm4gdmFsaWRpdHkoKS0+dmFsaWRh
dGlvbk1lc3NhZ2UoKTsKK30KKwogYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpjaGVja1Zh
bGlkaXR5KCkKIHsKICAgICBpZiAod2lsbFZhbGlkYXRlKCkgJiYgIWlzVmFsaWRGb3JtQ29udHJv
bEVsZW1lbnQoKSkgewpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCShy
ZXZpc2lvbiA0Nzk5MikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNSw2ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBz
aG9ydCB0YWJJbmRleCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHdpbGxWYWxpZGF0ZSgp
IGNvbnN0OworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZSgpOwogICAgIGJvb2wgY2hlY2tW
YWxpZGl0eSgpOwogICAgIHZvaWQgc2V0Q3VzdG9tVmFsaWRpdHkoY29uc3QgU3RyaW5nJik7CiAK
SW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwJKHJldmlzaW9uIDQ3OTkyKQorKysgV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02Myw2ICs2
Myw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxPcHRp
b25FbGVtZW50IHNlbGVjdGVkT3B0aW9uOwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFu
ICAgICAgICAgICAgY2hlY2tWYWxpZGl0eSgpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAg
c2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBlcnJvcik7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBzZWxlY3QoKTsK
SW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAkocmV2aXNpb24gNDc5OTIpCisrKyBX
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2
ICs0NSw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlk
aXR5U3RhdGUgICB2YWxpZGl0eTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgICAg
ICAgICAgIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1
c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgZXJyb3IpOwogCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCShy
ZXZpc2lvbiA0Nzk5MikKKysrIFdlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHZv
aWQgICAgIHNlbGVjdCgpOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAg
ICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
ICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5
KCk7CiAgICAgICAgIHZvaWQgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZp
bmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogCkluZGV4OiBXZWJDb3Jl
L2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL1ZhbGlk
aXR5U3RhdGUuY3BwCShyZXZpc2lvbiA0Nzk5MikKKysrIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0
YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsOCBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlZhbGlkaXR5U3RhdGUuaCIKIAorI2luY2x1ZGUgIkxvY2FsaXplZFN0
cmluZ3MuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBWYWxpZGl0eVN0YXRlOjpWYWxpZGl0
eVN0YXRlKEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIHBhcmVudCkKQEAgLTMxLDYgKzMzLDQyIEBA
IFZhbGlkaXR5U3RhdGU6OlZhbGlkaXR5U3RhdGUoSFRNTEZvcm1Db24KICAgICBBU1NFUlQocGFy
ZW50KTsKIH0KIAorU3RyaW5nIFZhbGlkaXR5U3RhdGU6OnZhbGlkYXRpb25NZXNzYWdlKCkKK3sK
KyAgICBBU1NFUlQoY29udHJvbCgpLT53aWxsVmFsaWRhdGUoKSk7CisKKyAgICBpZiAodmFsaWQo
KSkKKyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbTsKKworICAgIGlmIChjdXN0b21FcnJvcigpKQor
ICAgICAgICByZXR1cm4gbV9jdXN0b21FcnJvck1lc3NhZ2U7CisgICAgZWxzZSBpZiAodmFsdWVN
aXNzaW5nKCkpIHsKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVGV4dCgiVkFMSURB
VElPTk1TR19WQUxVRU1JU1NJTkciKTsKKyAgICB9CisgICAgZWxzZSBpZiAodHlwZU1pc21hdGNo
KCkpIHsKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVGV4dCgiVkFMSURBVElPTk1T
R19UWVBFTUlTTUFUQ0giKTsKKyAgICB9CisgICAgZWxzZSBpZiAocGF0dGVybk1pc21hdGNoKCkp
IHsKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVGV4dCgiVkFMSURBVElPTk1TR19Q
QVRURVJOTUlTTUFUQ0giKTsKKyAgICB9CisgICAgZWxzZSBpZiAodG9vTG9uZygpKSB7CisgICAg
ICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVRleHQoIlZBTElEQVRJT05NU0dfVE9PTE9ORyIp
OworICAgIH0KKyAgICBlbHNlIGlmIChyYW5nZVVuZGVyZmxvdygpKSB7CisgICAgICAgIHJldHVy
biB2YWxpZGF0aW9uTWVzc2FnZVRleHQoIlZBTElEQVRJT05NU0dfUkFOR0VVTkRFUkZMT1ciKTsK
KyAgICB9CisgICAgZWxzZSBpZiAocmFuZ2VPdmVyZmxvdygpKSB7CisgICAgICAgIHJldHVybiB2
YWxpZGF0aW9uTWVzc2FnZVRleHQoIlZBTElEQVRJT05NU0dfUkFOR0VPVkVSRkxPVyIpOworICAg
IH0KKyAgICBlbHNlIGlmIChzdGVwTWlzbWF0Y2goKSkgeworICAgICAgICByZXR1cm4gdmFsaWRh
dGlvbk1lc3NhZ2VUZXh0KCJWQUxJREFUSU9OTVNHX1NURVBNSVNNQVRDSCIpOworICAgIH0KKwor
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGVtcHR5QXRvbTsKK30KKwog
Ym9vbCBWYWxpZGl0eVN0YXRlOjp2YWxpZCgpCiB7CiAgICAgYm9vbCBzb21lRXJyb3IgPSB0eXBl
TWlzbWF0Y2goKSB8fCBzdGVwTWlzbWF0Y2goKSB8fCByYW5nZVVuZGVyZmxvdygpIHx8IHJhbmdl
T3ZlcmZsb3coKSB8fApJbmRleDogV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5oCShyZXZpc2lvbiA0Nzk5MikKKysr
IFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQqIGNvbnRyb2woKSBjb25zdCB7IHJldHVybiBtX2NvbnRyb2w7IH0KIAorICAgICAgICBTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2UoKTsKICAgICAgICAgdm9pZCBzZXRDdXN0b21FcnJvck1lc3Nh
Z2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7IG1fY3VzdG9tRXJyb3JNZXNzYWdlID0gbWVzc2Fn
ZTsgfQogCiAgICAgICAgIGJvb2wgdmFsdWVNaXNzaW5nKCkgeyByZXR1cm4gY29udHJvbCgpLT52
YWx1ZU1pc3NpbmcoKTsgfQpJbmRleDogV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3Rv
cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvbWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5o
CShyZXZpc2lvbiA0Nzk5MikKKysrIFdlYkNvcmUvcGFnZS9tYWMvV2ViQ29yZVZpZXdGYWN0b3J5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw3ICsxNDcsNyBAQAogLSAoTlNTdHJpbmcqKWxvY2Fs
aXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmc6KE5TU3RyaW5nKiluYW1lOwogLSAoTlNTdHJp
bmcqKWxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dDooTlNTdHJpbmcqKW5hbWU7
CiAtIChOU1N0cmluZyopbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb246KGZsb2F0KXRpbWU7
Ci0KKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUZXh0OihOU1N0cmluZyAqKXZhbGlk
YXRpb25NZXNzYWdlOwogCiBAZW5kCiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVk
U3RyaW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5oCShyZXZpc2lvbiA0Nzk5MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksNiArMTM5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0
cmluZyYpOwogICAgIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQo
Y29uc3QgU3RyaW5nJik7CiAgICAgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9u
KGZsb2F0KTsKKworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRleHQoY29uc3QgU3RyaW5n
JiB2YWxpZGF0aW9uTWVzc2FnZSk7CiB9CiAKICNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3BwCShyZXZpc2lv
biA0Nzk5MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRTdHJpbmdzQW5k
cm9pZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDQgKzUxLDkgQEAgU3RyaW5nIGltYWdlVGl0
bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVGV4dChjb25zdCBTdHJpbmcmIHZhbGlkYXRpb25NZXNzYWdl
KQoreworICAgIHJldHVybiBTdHJpbmcodmFsaWRhdGlvbk1lc3NhZ2UpOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJp
bmdzR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRT
dHJpbmdzR3RrLmNwcAkocmV2aXNpb24gNDc5OTIpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9M
b2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDY3LDQgKzQ2Nyw5IEBA
IFN0cmluZyBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG8KIH0KICNlbmRpZiAgLy8g
RU5BQkxFKFZJREVPKQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUZXh0KGNvbnN0IFN0cmlu
ZyYgdmFsaWRhdGlvbk1lc3NhZ2UpCit7CisgICAgcmV0dXJuIFN0cmluZyh2YWxpZGF0aW9uTWVz
c2FnZSk7Cit9CisKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9jYWxpemVkU3Ry
aW5nc0hhaWt1LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2hhaWt1L0xvY2Fs
aXplZFN0cmluZ3NIYWlrdS5jcHAJKHJldmlzaW9uIDQ3OTkyKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDIs
NSArMzQyLDEwIEBAIFN0cmluZyBBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRleHQoKQogICAg
IHJldHVybiBTdHJpbmcoKTsKIH0KIAorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVGV4dChjb25z
dCBTdHJpbmcmIHZhbGlkYXRpb25NZXNzYWdlKQoreworICAgIHJldHVybiBTdHJpbmcodmFsaWRh
dGlvbk1lc3NhZ2UpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vbWFjL0xvY2FsaXplZFN0cmluZ3NNYWMubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5nc01hYy5tbQkocmV2aXNpb24gNDc5OTIp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbGl6ZWRTdHJpbmdzTWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC03NDUsNSArNzQ1LDEyIEBAIFN0cmluZyBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNj
cmlwdGlvbihmbG8KICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9u
TWVzc2FnZVRleHQoY29uc3QgU3RyaW5nJiB2YWxpZGF0aW9uTWVzc2FnZSkKK3sKKyAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5
IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlVGV4dDp2YWxpZGF0aW9uTWVzc2FnZV07
CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9
CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAJ
KHJldmlzaW9uIDQ3OTkyKQorKysgV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6ZWRTdHJpbmdz
V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjMsNCArMzIzLDkgQEAgU3RyaW5nIEFYRGVmaW5p
dGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VUZXh0KGNvbnN0IFN0cmluZyYgdmFsaWRhdGlvbk1lc3NhZ2Up
Cit7CisgICAgcmV0dXJuIFN0cmluZyh2YWxpZGF0aW9uTWVzc2FnZSk7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L0NoYW5nZUxvZwkocmV2aXNpb24gNDc5OTMpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDktMDIgIE1pY2hlbGFuZ2VsbyBEZSBT
aW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI3OTU5CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciAidmFsaWRhdGlvbk1lc3NhZ2UiIERP
TSBhdHRyaWJ1dGUgZnJvbSBIVE1MNSBzcGVjcy4KKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jZG9tLWN2YS12YWxpZGF0aW9ubWVzc2Fn
ZQorCisgICAgICAgICogRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOiBoYXMgYmFz
ZSB2YWxpZGF0aW9uTWVzc2FnZSBzdHJpbmdzCisKIDIwMDktMDgtMzEgIE1hcmsgUm93ZSAgPG1y
b3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBCZXRoIERha2luLgpJ
bmRleDogV2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCShyZXZpc2lvbiA0
Nzk5MikKKysrIFdlYktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MJKHdvcmtp
bmcgY29weSkKQEAgLTY0MCw2ICs2NDAsOSBAQAogAC8AKgAgAEgAVABUAFAAIAByAGUAcwB1AGwA
dAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAHAAYQByAHQAaQBhAGwAIABjAG8A
bgB0AGUAbgB0ACIAIAA9ACAAIgBwAGEAcgB0AGkAYQBsACAAYwBvAG4AdABlAG4AdAAiADsACiAA
CisALwAqACAAVgBhAGwAaQBkAGEAdABpAG8AbgAgAG0AZQBzAHMAYQBnAGUAIABmAG8AcgAgAGkA
bgBwAHUAdAAgAGMAbwBuAHQAcgBvAGwAcwAgAHIAZQBxAHUAaQByAGkAbgBnACAAYQAgAGMAbwBu
AHMAdAByAGEAaQBuAGUAZAAgAHYAYQBsAHUAZQAgAGEAYwBjAG8AcgBkAGkAbgBnACAAdABvACAA
dABoAGUAaQByACAAcABhAHQAdABlAHIAbgAgACoALwAKKwAiAHAAYQB0AHQAZQByAG4AIABtAGkA
cwBtAGEAdABjAGgAIgAgAD0AIAAiAHAAYQB0AHQAZQByAG4AIABtAGkAcwBtAGEAdABjAGgAIgA7
AAorAAogAC8AKgAgAGEAYwBjAGUAcwBzAGkAYgBpAGwAaQB0AHkAIAByAG8AbABlACAAZABlAHMA
YwByAGkAcAB0AGkAbwBuACAAZgBvAHIAIABwAGEAdQBzAGUAIABiAHUAdAB0AG8AbgAgACoALwAK
IAAiAHAAYQB1AHMAZQAiACAAPQAgACIAcABhAHUAcwBlACIAOwAKIAAKQEAgLTY2MSw2ICs2NjQs
MTIgQEAKIAAvACoAIABIAFQAVABQACAAcgBlAHMAdQBsAHQAIABjAG8AZABlACAAcwB0AHIAaQBu
AGcAIAAqAC8ACiAAIgBwAHIAbwB4AHkAIABhAHUAdABoAGUAbgB0AGkAYwBhAHQAaQBvAG4AIABy
AGUAcQB1AGkAcgBlAGQAIgAgAD0AIAAiAHAAcgBvAHgAeQAgAGEAdQB0AGgAZQBuAHQAaQBjAGEA
dABpAG8AbgAgAHIAZQBxAHUAaQByAGUAZAAiADsACiAACisALwAqACAAVgBhAGwAaQBkAGEAdABp
AG8AbgAgAG0AZQBzAHMAYQBnAGUAIABmAG8AcgAgAGkAbgBwAHUAdAAgAGMAbwBuAHQAcgBvAGwA
cwAgAHcAaQB0AGgAIAB2AGEAbAB1AGUAIABoAGkAZwBoAGUAcgAgAHQAaABhAG4AIABtAGEAeABp
AG0AdQBtACAAKgAvAAorACIAcgBhAG4AZwBlACAAbwB2AGUAcgBmAGwAbwB3ACIAIAA9ACAAIgBy
AGEAbgBnAGUAIABvAHYAZQByAGYAbABvAHcAIgA7AAorAAorAC8AKgAgAFYAYQBsAGkAZABhAHQA
aQBvAG4AIABtAGUAcwBzAGEAZwBlACAAZgBvAHIAIABpAG4AcAB1AHQAIABjAG8AbgB0AHIAbwBs
AHMAIAB3AGkAdABoACAAdgBhAGwAdQBlACAAbABvAHcAZQByACAAdABoAGEAbgAgAG0AaQBuAGkA
bQB1AG0AIAAqAC8ACisAIgByAGEAbgBnAGUAIAB1AG4AZABlAHIAZgBsAG8AdwAiACAAPQAgACIA
cgBhAG4AZwBlACAAdQBuAGQAZQByAGYAbABvAHcAIgA7AAorAAogAC8AKgAgAEgAVABUAFAAIABy
AGUAcwB1AGwAdAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAHIAZQBkAGkAcgBl
AGMAdABlAGQAIgAgAD0AIAAiAHIAZQBkAGkAcgBlAGMAdABlAGQAIgA7AAogAApAQCAtNzE4LDYg
KzcyNyw5IEBACiAALwAqACAAYQBjAGMAZQBzAHMAaQBiAGkAbABpAHQAeQAgAHIAbwBsAGUAIABk
AGUAcwBjAHIAaQBwAHQAaQBvAG4AIABmAG8AcgAgAG0AbwB2AGkAZQAgAHMAdABhAHQAdQBzACAA
KgAvAAogACIAcwB0AGEAdAB1AHMAIgAgAD0AIAAiAHMAdABhAHQAdQBzACIAOwAKIAAKKwAvACoA
IABWAGEAbABpAGQAYQB0AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAAaQBuAHAAdQB0
ACAAYwBvAG4AdAByAG8AbABzACAAdwBpAHQAaAAgAGEAIAB2AGEAbAB1AGUAIAB0AGgAYQB0ACAA
ZABvAGUAcwBuACcAdAAgAHIAZQBzAHAAZQBjAHQAIAB0AGgAZQAgAHMAdABlAHAAIABhAHQAdABy
AGkAYgB1AHQAZQAgACoALwAKKwAiAHMAdABlAHAAIABtAGkAcwBtAGEAdABjAGgAIgAgAD0AIAAi
AHMAdABlAHAAIABtAGkAcwBtAGEAdABjAGgAIgA7AAorAAogAC8AKgAgAEgAVABUAFAAIAByAGUA
cwB1AGwAdAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAHMAdQBjAGMAZQBzAHMA
IgAgAD0AIAAiAHMAdQBjAGMAZQBzAHMAIgA7AAogAApAQCAtNzM2LDkgKzc0OCwxNSBAQAogAC8A
KgAgAEEAbgAgAEEAUgBJAEEAIABhAGMAYwBlAHMAcwBpAGIAaQBsAGkAdAB5ACAAZwByAG8AdQBw
ACAAdABoAGEAdAAgAGEAYwB0AHMAIABhAHMAIABhAG4AIAB1AHAAZABhAHQAaQBuAGcAIAB0AGkA
bQBlAHIALgAgACoALwAKIAAiAHQAaQBtAGUAcgAiACAAPQAgACIAdABpAG0AZQByACIAOwAKIAAK
KwAvACoAIABWAGEAbABpAGQAYQB0AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAAYwBv
AG4AdAByAG8AbABzACAAdwBpAHQAaAAgAGEAIAB2AGEAbAB1AGUAIABsAG8AbgBnAGUAcgAgAHQA
aABhAG4AIABtAGEAeABsAGUAbgBnAHQAaAAgACoALwAKKwAiAHQAbwBvACAAbABvAG4AZwAiACAA
PQAgACIAdABvAG8AIABsAG8AbgBnACIAOwAKKwAKIAAvACoAIABBAG4AIABBAFIASQBBACAAYQBj
AGMAZQBzAHMAaQBiAGkAbABpAHQAeQAgAGcAcgBvAHUAcAAgAHQAaABhAHQAIABhAGMAdABzACAA
YQBzACAAYQAgAHQAbwBvAGwAdABpAHAALgAgACoALwAKIAAiAHQAbwBvAGwAdABpAHAAIgAgAD0A
IAAiAHQAbwBvAGwAdABpAHAAIgA7AAogAAorAC8AKgAgAFYAYQBsAGkAZABhAHQAaQBvAG4AIABt
AGUAcwBzAGEAZwBlACAAZgBvAHIAIABpAG4AcAB1AHQAIABjAG8AbgB0AHIAbwBsAHMAIAB3AGkA
dABoACAAYQAgAG0AaQBzAG0AYQB0AGMAaABlACAAdAB5AHAAZQAgACoALwAKKwAiAHQAeQBwAGUA
IABtAGkAcwBtAGEAdABjAGgAIgAgAD0AIAAiAHQAeQBwAGUAIABtAGkAcwBtAGEAdABjAGgAIgA7
AAorAAogAC8AKgAgAEgAVABUAFAAIAByAGUAcwB1AGwAdAAgAGMAbwBkAGUAIABzAHQAcgBpAG4A
ZwAgACoALwAKIAAiAHUAbgBhAGMAYwBlAHAAdABhAGIAbABlACIAIAA9ACAAIgB1AG4AYQBjAGMA
ZQBwAHQAYQBiAGwAZQAiADsACiAACkBAIC03NjYsNiArNzg0LDkgQEAKIAAvACoAIABIAFQAVABQ
ACAAcgBlAHMAdQBsAHQAIABjAG8AZABlACAAcwB0AHIAaQBuAGcAIAAqAC8ACiAAIgB1AG4AcwB1
AHAAcABvAHIAdABlAGQAIAB2AGUAcgBzAGkAbwBuACIAIAA9ACAAIgB1AG4AcwB1AHAAcABvAHIA
dABlAGQAIAB2AGUAcgBzAGkAbwBuACIAOwAKIAAKKwAvACoAIABWAGEAbABpAGQAYQB0AGkAbwBu
ACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAAaQBuAHYAYQBsAGkAZAAgAHIAZQBxAHUAaQByAGUA
ZAAgAG8AcgBtACAAYwBvAG4AdAByAG8AbABzACAAKgAvAAorACIAdgBhAGwAdQBlACAAbQBpAHMA
cwBpAG4AZwAiACAAPQAgACIAdgBhAGwAdQBlACAAbQBpAHMAcwBpAG4AZwAiADsACisACiAALwAq
ACAAYQBjAGMAZQBzAHMAaQBiAGkAbABpAHQAeQAgAHIAbwBsAGUAIABkAGUAcwBjAHIAaQBwAHQA
aQBvAG4AIABmAG8AcgAgAHYAaQBkAGUAbwAgAGUAbABlAG0AZQBuAHQAIABjAG8AbgB0AHIAbwBs
AGwAZQByACAAKgAvAAogACIAdgBpAGQAZQBvACAAZQBsAGUAbQBlAG4AdAAgAGMAbwBuAHQAcgBv
AGwAbABlAHIAIgAgAD0AIAAiAHYAaQBkAGUAbwAgAGUAbABlAG0AZQBuAHQAIABjAG8AbgB0AHIA
bwBsAGwAZQByACIAOwAKIAAKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0Nzk5MykKKysrIFdlYktpdC9tYWMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDktMDIgIE1p
Y2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI3OTU5CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciAidmFsaWRh
dGlvbk1lc3NhZ2UiIERPTSBhdHRyaWJ1dGUgZnJvbSBIVE1MNSBzcGVjcy4KKyAgICAgICAgaHR0
cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jZG9tLWN2YS12
YWxpZGF0aW9ubWVzc2FnZQorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3Rv
cnkubW06CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlVGV4dDpd
KTogcmV0cmlldmVzIHRoZSByaWdodCBsb2NhbGl6ZWQKKyAgICAgICAgc3RyaW5ncyB0byBiZSBy
ZXR1cm5lZCBhcyAidmFsaWRhdGlvbk1lc3NhZ2UiCisKIDIwMDktMDgtMzEgIERpbWl0cmkgR2xh
emtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgIFJldmVydGluZyBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC80NzkwNCwgYmVjYXVzZSBpdCBjYXVzZWQKSW5kZXg6IFdl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3RvcnkubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3RmFjdG9yeS5tbQkocmV2aXNpb24gNDc5
OTIpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZpZXdGYWN0b3J5Lm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC03NDQsNCArNzQ0LDI1IEBACiAgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OlVJX1NUUklORygiZGF0ZS5mb3JtYXQuZm9yLnNlY29uZHMiLCAic3RyaW5n
IGZvciBzZWNvbmRzIiksIHNlY29uZHNdOwogfQogCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25N
ZXNzYWdlVGV4dDooTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZQoreworICAgIGlmIChbdmFs
aWRhdGlvbk1lc3NhZ2UgaXNFcXVhbFRvU3RyaW5nOkAiVkFMSURBVElPTk1TR19WQUxVRU1JU1NJ
TkciXSkKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygidmFsdWUgbWlzc2luZyIsICJWYWxpZGF0
aW9uIG1lc3NhZ2UgZm9yIGludmFsaWQgcmVxdWlyZWQgb3JtIGNvbnRyb2xzIik7CisgICAgaWYg
KFt2YWxpZGF0aW9uTWVzc2FnZSBpc0VxdWFsVG9TdHJpbmc6QCJWQUxJREFUSU9OTVNHX1RZUEVN
SVNNQVRDSCJdKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJ0eXBlIG1pc21hdGNoIiwgIlZh
bGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgY29udHJvbHMgd2l0aCBhIG1pc21hdGNoZSB0eXBl
Iik7CisgICAgaWYgKFt2YWxpZGF0aW9uTWVzc2FnZSBpc0VxdWFsVG9TdHJpbmc6QCJWQUxJREFU
SU9OTVNHX1BBVFRFUk5NSVNNQVRDSCJdKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJwYXR0
ZXJuIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgY29udHJvbHMgcmVx
dWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNjb3JkaW5nIHRvIHRoZWlyIHBhdHRlcm4iKTsK
KyAgICBpZiAoW3ZhbGlkYXRpb25NZXNzYWdlIGlzRXF1YWxUb1N0cmluZzpAIlZBTElEQVRJT05N
U0dfVE9PTE9ORyJdKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJ0b28gbG9uZyIsICJWYWxp
ZGF0aW9uIG1lc3NhZ2UgZm9yIGNvbnRyb2xzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhs
ZW5ndGgiKTsKKyAgICBpZiAoW3ZhbGlkYXRpb25NZXNzYWdlIGlzRXF1YWxUb1N0cmluZzpAIlZB
TElEQVRJT05NU0dfUkFOR0VVTkRFUkZMT1ciXSkKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygi
cmFuZ2UgdW5kZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgY29udHJvbHMg
d2l0aCB2YWx1ZSBsb3dlciB0aGFuIG1pbmltdW0iKTsKKyAgICBpZiAoW3ZhbGlkYXRpb25NZXNz
YWdlIGlzRXF1YWxUb1N0cmluZzpAIlZBTElEQVRJT05NU0dfUkFOR0VPVkVSRkxPVyJdKQorICAg
ICAgICByZXR1cm4gVUlfU1RSSU5HKCJyYW5nZSBvdmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3Nh
Z2UgZm9yIGlucHV0IGNvbnRyb2xzIHdpdGggdmFsdWUgaGlnaGVyIHRoYW4gbWF4aW11bSIpOwor
ICAgIGlmIChbdmFsaWRhdGlvbk1lc3NhZ2UgaXNFcXVhbFRvU3RyaW5nOkAiVkFMSURBVElPTk1T
R19TVEVQTUlTTUFUQ0giXSkKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygic3RlcCBtaXNtYXRj
aCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGNvbnRyb2xzIHdpdGggYSB2YWx1ZSB0
aGF0IGRvZXNuJ3QgcmVzcGVjdCB0aGUgc3RlcCBhdHRyaWJ1dGUiKTsKKworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBAIiI7Cit9CisKIEBlbmQKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDQ3OTkzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMDktMDktMDIgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNp
bUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3OTU5CisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciAidmFsaWRhdGlvbk1lc3NhZ2UiIERPTSBhdHRyaWJ1dGUgZnJv
bSBIVE1MNSBzcGVjcy4KKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay8jZG9tLWN2YS12YWxpZGF0aW9ubWVzc2FnZQorCisgICAgICAgICog
ZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dDogY29ycmVjdGVkCisgICAg
ICAgICogZmFzdC9kb20vcmVzb3VyY2VzL2RvbUxpc3RFbnVtZXJhdGlvbi5qczogY29ycmVjdGVk
CisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvdmFsaWRhdGlvbk1lc3NhZ2UuanM6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0bWw6IEFk
ZGVkLgorCiAyMDA5LTA5LTAyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0
Nzk5MikKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgUEFTUyByZXN1bHRBcnJheVsy
XS5pIGlzICcyJwogUEFTUyByZXN1bHRBcnJheVsyXS5pdGVtIGlzIGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdzZWxlY3QnKVsyXQogCiBbb2JqZWN0IEhUTUxTZWxlY3RFbGVtZW50XQot
UEFTUyByZXN1bHRBcnJheS5sZW5ndGggaXMgMTM5CitQQVNTIHJlc3VsdEFycmF5Lmxlbmd0aCBp
cyAxNDAKIFBBU1MgcmVzdWx0QXJyYXlbMF0uaSBpcyAnMCcKIFBBU1MgcmVzdWx0QXJyYXlbMF0u
aXRlbSBpcyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnb3B0aW9uJylbMF0KIFBBU1Mg
cmVzdWx0QXJyYXlbMV0uaSBpcyAnMScKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291
cmNlcy9kb21MaXN0RW51bWVyYXRpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vcmVzb3VyY2VzL2RvbUxpc3RFbnVtZXJhdGlvbi5qcwkocmV2aXNpb24gNDc5OTIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvZG9tTGlzdEVudW1lcmF0aW9uLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDEsNyArMTQxLDcgQEAgc2hvdWxkQmUoInJlc3VsdEFycmF5WzJd
Lml0ZW0iLCAiZG9jdW1lbgogLy8gSFRNTFNlbGVjdEVsZW1lbnQKIHZhciBodG1sU2VsZWN0RWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKVswXTsKIHJlc3Vs
dEFycmF5ID0gaXRlcmF0ZUxpc3QoaHRtbFNlbGVjdEVsZW1lbnQpOwotc2hvdWxkQmUoInJlc3Vs
dEFycmF5Lmxlbmd0aCIsICIxMzkiKTsKK3Nob3VsZEJlKCJyZXN1bHRBcnJheS5sZW5ndGgiLCAi
MTQwIik7CiBzaG91bGRCZSgicmVzdWx0QXJyYXlbMF0uaSIsICInMCciKTsKIHNob3VsZEJlKCJy
ZXN1bHRBcnJheVswXS5pdGVtIiwgImRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdvcHRp
b24nKVswXSIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzFdLmkiLCAiJzEnIik7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlv
bk1lc3NhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2IEBACitUZXN0
IGZvciB2YWxpZGF0aW9uTWVzc2FnZSBET00gcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHZhbGlkYXRpb25NZXNzYWdlIHByZXNlbnQKK1BBU1MgdmFsaWRh
dGlvbk1lc3NhZ2UgcHJlc2VudAorUEFTUyB2YWxpZGF0aW9uTWVzc2FnZSBwcmVzZW50CitQQVNT
IHZhbGlkYXRpb25NZXNzYWdlIGVtcHR5CitQQVNTIHZhbGlkYXRpb25NZXNzYWdlIGVtcHR5CitQ
QVNTIHZhbGlkYXRpb25NZXNzYWdlIGVtcHR5CitQQVNTIHZhbGlkYXRpb25NZXNzYWdlIGVtcHR5
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdmFsaWRhdGlvbk1lc3Nh
Z2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy92YWxpZGF0aW9uTWVzc2FnZS5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy92YWxpZGF0aW9uTWVzc2FnZS5q
cwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3ZhbGlk
YXRpb25NZXNzYWdlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcxIEBACitkZXNjcmlwdGlv
bigiVGVzdCBmb3IgdmFsaWRhdGlvbk1lc3NhZ2UgRE9NIHByb3BlcnR5LiIpOworCitmdW5jdGlv
biB0ZXN0VmFsaWRhdGlvbk1lc3NhZ2UoZWxlbSkgeworICAgIGlmIChlbGVtLnZhbGlkYXRpb25N
ZXNzYWdlID09IG51bGwpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiTm8gdmFsaWRhdGlvbk1lc3Nh
Z2UgRE9NIGF0dHJpYnV0ZSBleHBvc2VkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICAvLyB2YWxpZGF0aW9uTWVzc2FnZSBpcyBhbHdheXMgZW1wdHkgb24gbm9uLXZhbGlkYWJsZSBh
bmQgdmFsaWQgY29udHJvbHMKKyAgICBpZiAoIWVsZW0ud2lsbFZhbGlkYXRlIHx8IGVsZW0udmFs
aWRpdHkudmFsaWQpIHsKKyAgICAgICAgaWYgKGVsZW0udmFsaWRhdGlvbk1lc3NhZ2UgPT0gIiIp
CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJ2YWxpZGF0aW9uTWVzc2FnZSBlbXB0eSIpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJ2YWxpZGF0aW9uTWVzc2FnZSBpcyBO
T1QgZW1wdHkiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChlbGVtLnZhbGlk
YXRpb25NZXNzYWdlLmxlbmd0aCA+IDEpCisgICAgICAgIHRlc3RQYXNzZWQoInZhbGlkYXRpb25N
ZXNzYWdlIHByZXNlbnQiKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoInZhbGlkYXRp
b25NZXNzYWdlIikKK30KKwordmFyIGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3Jt
Iik7CisKKy8vIEFuIGlucHV0IGVsZW1lbnQgd2l0aCBhIHBhdHRlcm4gc2V0IGFuZCBhIG1pc21h
dGNoZWQgdmFsdWUKK3ZhciBwYXR0ZXJuSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
bnB1dCIpOworcGF0dGVybklucHV0Lm5hbWUgPSAicGF0dGVybklucHV0IjsKK3BhdHRlcm5JbnB1
dC5wYXR0ZXJuID0gImxvcmVtIGlwc3VtIjsKK3BhdHRlcm5JbnB1dC52YWx1ZSA9ICJsb3JlbSI7
Citmb3JtLmFwcGVuZENoaWxkKHBhdHRlcm5JbnB1dCk7Cit0ZXN0VmFsaWRhdGlvbk1lc3NhZ2Uo
cGF0dGVybklucHV0KTsKKworLy8gQSByZXF1aXJlZCBpbnB1dCB3aXRoIGFuIGVtcHR5IHZhbHVl
Cit2YXIgcmVxdWlyZWRJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7City
ZXF1aXJlZElucHV0Lm5hbWUgPSAicmVxdWlyZWRJbnB1dCI7CityZXF1aXJlZElucHV0LnJlcXVp
cmVkID0gdHJ1ZTsKK2Zvcm0uYXBwZW5kQ2hpbGQocmVxdWlyZWRJbnB1dCk7Cit0ZXN0VmFsaWRh
dGlvbk1lc3NhZ2UocmVxdWlyZWRJbnB1dCk7CisKKy8vIEEgcmVxdWlyZWQgdGV4dGFyZWEgd2l0
aCBhbiBlbXB0eSB2YWx1ZQordmFyIHJlcXVpcmVkVGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJ0ZXh0YXJlYSIpOworcmVxdWlyZWRUZXh0QXJlYS5uYW1lID0gInJlcXVpcmVkVGV4
dEFyZWEiOworcmVxdWlyZWRUZXh0QXJlYS5yZXF1aXJlZCA9IHRydWU7Citmb3JtLmFwcGVuZENo
aWxkKHJlcXVpcmVkVGV4dEFyZWEpOwordGVzdFZhbGlkYXRpb25NZXNzYWdlKHJlcXVpcmVkVGV4
dEFyZWEpOworCisvLyBBIGJ1dHRvbiBjYW4ndCBiZSB2YWxpdGVkIGFuZCwgdGh1cywgaGFzIGEg
YmxhbmsgdmFsaWRhdGlvbk1lc3NhZ2UKK3ZhciBidXR0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiYnV0dG9uIik7CitidXR0Lm5hbWUgPSAiYnV0dG9uIjsKK2Zvcm0uYXBwZW5kQ2hpbGQoYnV0
dCk7Cit0ZXN0VmFsaWRhdGlvbk1lc3NhZ2UoYnV0dCk7CisKKy8vIEFuIGlucHV0IGNvbnRyb2wg
d2l0aCBubyBuYW1lLCBzbyBpdCBjYW4ndCBiZSB2YWxpZGF0ZWQgKHdpbGxWYWxpZGF0ZSA9IGZh
bHNlKQordmFyIGFub25pbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Citm
b3JtLmFwcGVuZENoaWxkKGFub25pbnB1dCk7Cit0ZXN0VmFsaWRhdGlvbk1lc3NhZ2UoYW5vbmlu
cHV0KTsKKworLy8gRmllbGRzZXRzIGNhbid0IGJlIHZhbGlkYXRlZAordmFyIGhhcHB5RmllbGRz
ZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpOworaGFwcHlGaWVsZHNldC5u
YW1lID0gImZpZWxkc2V0IjsKK2Zvcm0uYXBwZW5kQ2hpbGQoaGFwcHlGaWVsZHNldCk7Cit0ZXN0
VmFsaWRhdGlvbk1lc3NhZ2UoaGFwcHlGaWVsZHNldCk7CisKKy8vIFNlbGVjdCBjb250cm9scyBj
YW4ndCBiZSB2YWxpZGF0ZWQgdG9vCit2YXIgaGFwcHlTZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzZWxlY3QiKTsKK2hhcHB5U2VsZWN0Lm5hbWUgPSAic2VsZWN0IjsKK2Zvcm0uYXBw
ZW5kQ2hpbGQoaGFwcHlTZWxlY3QpOwordGVzdFZhbGlkYXRpb25NZXNzYWdlKGhhcHB5U2VsZWN0
KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39107</attachid>
            <date>2009-09-04 18:06:11 -0700</date>
            <delta_ts>2009-10-20 15:33:43 -0700</delta_ts>
            <desc>Patch v1a</desc>
            <filename>bug-27959-20090905030608.patch</filename>
            <type>text/plain</type>
            <size>25968</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODA4MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMDktMDktMDQgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNk
ZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3OTU5Cisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciAidmFsaWRhdGlvbk1lc3NhZ2UiIERPTSBhdHRyaWJ1dGUg
ZnJvbSBIVE1MNSBzcGVjcy4KKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dl
Yi1hcHBzL2N1cnJlbnQtd29yay8jZG9tLWN2YS12YWxpZGF0aW9ubWVzc2FnZQorCisgICAgICAg
IFRlc3Q6IGZhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UuaHRtbAorCisgICAgICAgICogaHRt
bC9IVE1MQnV0dG9uRWxlbWVudC5pZGw6IHZhbGlkYXRpb25NZXNzYWdlIERPTSBhdHRyaWJ1dGUK
KyAgICAgICAgKiBodG1sL0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsOiB2YWxpZGF0aW9uTWVzc2Fn
ZSBET00gYXR0cmlidXRlCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNw
cDogbWV0aG9kIHRvIHJldHVybiB2YWxpZGF0aW9uIG1lc3NhZ2UKKyAgICAgICAgKiBodG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaDogZGl0dG8gKGRlZmluaXRpb24pCisgICAgICAgICogaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmlkbDogdmFsaWRhdGlvbk1lc3NhZ2UgRE9NIGF0dHJpYnV0ZQor
ICAgICAgICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsOiB2YWxpZGF0aW9uTWVzc2FnZSBE
T00gYXR0cmlidXRlCisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbDogdmFs
aWRhdGlvbk1lc3NhZ2UgRE9NIGF0dHJpYnV0ZQorICAgICAgICAqIGh0bWwvVmFsaWRpdHlTdGF0
ZS5jcHA6IHJldHVybnMgdmFsaWRhdGlvbk1lc3NhZ2UgZm9yIHRoZSBlbGVtZW50CisgICAgICAg
ICogaHRtbC9WYWxpZGl0eVN0YXRlLmg6IGRpdHRvIChkZWZpbml0aW9uKQorICAgICAgICAqIHBh
Z2UvbWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oOiBhZGRlZCB2YWxpZGF0aW9uTWVzc2FnZVRleHQg
bWV0aG9kCisgICAgICAgIHRvIHJldHJpZXZlIGxvY2FsaXplZCB2YWxpZGF0aW9uTWVzc2FnZQor
ICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDogdmFsaWRhdGlvbk1lc3NhZ2VU
ZXh0IGRlZmluaXRpb24KKyAgICAgICAgKiBwbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmlu
Z3NBbmRyb2lkLmNwcDogcmV0dXJucyByYXcgdmFsaWRhdGlvbgorICAgICAgICBtZXNzYWdlIG9u
IHRoZSBBbmRyb2lkIHBvcnQKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvTG9jYWxpemVkU3RyaW5n
c0d0ay5jcHA6IHJldHVybnMgcmF3IHZhbGlkYXRpb24gbWVzc2FnZQorICAgICAgICBvbiB0aGUg
R3RrIHBvcnQKKyAgICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3Uu
Y3BwOiByZXR1cm5zIHJhdyB2YWxpZGF0aW9uCisgICAgICAgIG1lc3NhZ2Ugb24gdGhlIEhhaWt1
IHBvcnQKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5nc01hYy5tbTogdmFs
aWRhdGlvbk1lc3NhZ2VUZXh0IG1ldGhvZAorICAgICAgICBpbXBsZW1lbnRhdGlvbiwgY2FsbHMg
TWFjIHNwZWNpZmljIGkxOG4gY29kZQorICAgICAgICAqIHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0
cmluZ3NXeC5jcHA6IHJldHVybnMgcmF3IHZhbGlkYXRpb24gbWVzc2FnZSBvbgorICAgICAgICB0
aGUgV3ggcG9ydAorCiAyMDA5LTA5LTA0ICBNaWNoZWxhbmdlbG8gRGUgU2ltb25lICA8bWljZGVz
aW1AZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiA0ODA4MSkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIERPTVN0cmluZyAg
ICAgICAgICAgIHR5cGU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB2YWx1ZTsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgICAgICAgdmFsaWRhdGlvbk1lc3Nh
Z2U7CiAgICAgICAgIGJvb2xlYW4gIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCBzZXRD
dXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIGVycm9yKTsKICAgICAgICAgdm9pZCBjbGljaygpOwpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1M
RmllbGRTZXRFbGVtZW50LmlkbAkocmV2aXNpb24gNDgwODEpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TEZpZWxkU2V0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAgbW9k
dWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZh
bGlkaXR5OwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAg
ICAgd2lsbFZhbGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAg
ICAgIHZhbGlkYXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7
CiAgICAgICAgIHZvaWQgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVk
T3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgIH07CkluZGV4OiBXZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiA0ODA4MSkKKysrIFdl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjczLDYgKzI3MywxNCBAQCBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OndpbGxWYWxpZGF0
CiAgICAgcmV0dXJuIGZvcm0oKSAmJiAhbmFtZSgpLmlzRW1wdHkoKSAmJiAhZGlzYWJsZWQoKSAm
JiAhaXNSZWFkT25seUZvcm1Db250cm9sKCk7CiB9CiAKK1N0cmluZyBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Ojp2YWxpZGF0aW9uTWVzc2FnZSgpCit7CisgICAgaWYgKCF3aWxsVmFsaWRhdGUoKSkK
KyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbTsKKworICAgIHJldHVybiB2YWxpZGl0eSgpLT52YWxp
ZGF0aW9uTWVzc2FnZSgpOworfQorCiBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmNoZWNr
VmFsaWRpdHkoKQogewogICAgIGlmICh3aWxsVmFsaWRhdGUoKSAmJiAhaXNWYWxpZEZvcm1Db250
cm9sRWxlbWVudCgpKSB7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJ
KHJldmlzaW9uIDQ4MDgxKQorKysgV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHNob3J0IHRhYkluZGV4KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZhbGlkYXRl
KCkgY29uc3Q7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlKCk7CiAgICAgYm9vbCBjaGVj
a1ZhbGlkaXR5KCk7CiAgICAgdm9pZCBzZXRDdXN0b21WYWxpZGl0eShjb25zdCBTdHJpbmcmKTsK
IApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAkocmV2aXNpb24gNDgwODEpCisrKyBX
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTYzLDYg
KzYzLDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTE9w
dGlvbkVsZW1lbnQgc2VsZWN0ZWRPcHRpb247CiAjZW5kaWYKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U7CiAgICAgICAgIGJvb2xl
YW4gICAgICAgICAgICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAg
ICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIGVycm9yKTsKICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNlbGVjdCgp
OwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaWRsCShyZXZpc2lvbiA0ODA4MSkKKysr
IFdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ1
LDYgKzQ1LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFs
aWRpdHlTdGF0ZSAgIHZhbGlkaXR5OwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuICAg
ICAgICAgICAgY2hlY2tWYWxpZGl0eSgpOwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0
Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyBlcnJvcik7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwJ
KHJldmlzaW9uIDQ4MDgxKQorKysgV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRs
CSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0Niw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAg
dm9pZCAgICAgc2VsZWN0KCk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
ICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U7CiAgICAgICAgIGJvb2xlYW4gIGNoZWNrVmFsaWRp
dHkoKTsKICAgICAgICAgdm9pZCAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRl
ZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAKSW5kZXg6IFdlYkNv
cmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvVmFs
aWRpdHlTdGF0ZS5jcHAJKHJldmlzaW9uIDQ4MDgxKQorKysgV2ViQ29yZS9odG1sL1ZhbGlkaXR5
U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiSFRN
TElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogCisjaW5jbHVkZSAiTG9j
YWxpemVkU3RyaW5ncy5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CkBAIC01Miw2ICs1NCwzNSBAQCBib29sIFZhbGlkaXR5U3RhdGU6OnR5cGVN
aXNtYXRjaCgpCiAgICAgcmV0dXJuICFpc1ZhbGlkQ29sb3JTdHJpbmcodmFsdWUpOwogfQogCitT
dHJpbmcgVmFsaWRpdHlTdGF0ZTo6dmFsaWRhdGlvbk1lc3NhZ2UoKQoreworICAgIEFTU0VSVChj
b250cm9sKCktPndpbGxWYWxpZGF0ZSgpKTsKKworICAgIGlmICh2YWxpZCgpKQorICAgICAgICBy
ZXR1cm4gZW1wdHlBdG9tOworCisgICAgaWYgKGN1c3RvbUVycm9yKCkpIHsKKyAgICAgICAgcmV0
dXJuIG1fY3VzdG9tRXJyb3JNZXNzYWdlOworICAgIH0gZWxzZSBpZiAodmFsdWVNaXNzaW5nKCkp
IHsKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVGV4dCgiVmFsaWRpdHlTdGF0ZVZh
bHVlTWlzc2luZyIpOworICAgIH0gZWxzZSBpZiAodHlwZU1pc21hdGNoKCkpIHsKKyAgICAgICAg
cmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVGV4dCgiVmFsaWRpdHlTdGF0ZVR5cGVNaXNtYXRjaCIp
OworICAgIH0gZWxzZSBpZiAocGF0dGVybk1pc21hdGNoKCkpIHsKKyAgICAgICAgcmV0dXJuIHZh
bGlkYXRpb25NZXNzYWdlVGV4dCgiVmFsaWRpdHlTdGF0ZVBhdHRlcm5NaXNtYXRjaCIpOworICAg
IH0gZWxzZSBpZiAodG9vTG9uZygpKSB7CisgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2Fn
ZVRleHQoIlZhbGlkaXR5U3RhdGVUb29Mb25nIik7CisgICAgfSBlbHNlIGlmIChyYW5nZVVuZGVy
ZmxvdygpKSB7CisgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVRleHQoIlZhbGlkaXR5
U3RhdGVSYW5nZVVuZGVyZmxvdyIpOworICAgIH0gZWxzZSBpZiAocmFuZ2VPdmVyZmxvdygpKSB7
CisgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVRleHQoIlZhbGlkaXR5U3RhdGVSYW5n
ZU92ZXJmbG93Iik7CisgICAgfSBlbHNlIGlmIChzdGVwTWlzbWF0Y2goKSkgeworICAgICAgICBy
ZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUZXh0KCJWYWxpZGl0eVN0YXRlU3RlcE1pc21hdGNoIik7
CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGVtcHR5QXRv
bTsKK30KKwogYm9vbCBWYWxpZGl0eVN0YXRlOjp2YWxpZCgpCiB7CiAgICAgYm9vbCBzb21lRXJy
b3IgPSB0eXBlTWlzbWF0Y2goKSB8fCBzdGVwTWlzbWF0Y2goKSB8fCByYW5nZVVuZGVyZmxvdygp
IHx8IHJhbmdlT3ZlcmZsb3coKSB8fApJbmRleDogV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5oCShyZXZpc2lvbiA0
ODA4MSkKKysrIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQqIGNvbnRyb2woKSBjb25zdCB7IHJldHVybiBtX2NvbnRyb2w7IH0KIAorICAg
ICAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2UoKTsKICAgICAgICAgdm9pZCBzZXRDdXN0b21F
cnJvck1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7IG1fY3VzdG9tRXJyb3JNZXNzYWdl
ID0gbWVzc2FnZTsgfQogCiAgICAgICAgIGJvb2wgdmFsdWVNaXNzaW5nKCkgeyByZXR1cm4gY29u
dHJvbCgpLT52YWx1ZU1pc3NpbmcoKTsgfQpJbmRleDogV2ViQ29yZS9wYWdlL21hYy9XZWJDb3Jl
Vmlld0ZhY3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvbWFjL1dlYkNvcmVWaWV3
RmFjdG9yeS5oCShyZXZpc2lvbiA0ODA4MSkKKysrIFdlYkNvcmUvcGFnZS9tYWMvV2ViQ29yZVZp
ZXdGYWN0b3J5LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw3ICsxNDcsNyBAQAogLSAoTlNTdHJp
bmcqKWxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmc6KE5TU3RyaW5nKiluYW1lOwog
LSAoTlNTdHJpbmcqKWxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dDooTlNTdHJp
bmcqKW5hbWU7CiAtIChOU1N0cmluZyopbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb246KGZs
b2F0KXRpbWU7Ci0KKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUZXh0OihOU1N0cmlu
ZyAqKXZhbGlkYXRpb25NZXNzYWdlOwogCiBAZW5kCiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oCShyZXZpc2lvbiA0ODA4MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksNiArMTM5LDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5n
KGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50
SGVscFRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgU3RyaW5nIGxvY2FsaXplZE1lZGlhVGltZURl
c2NyaXB0aW9uKGZsb2F0KTsKKworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRleHQoY29u
c3QgU3RyaW5nJiB2YWxpZGF0aW9uTWVzc2FnZSk7CiB9CiAKICNlbmRpZgpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9hbmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJvaWQuY3Bw
CShyZXZpc2lvbiA0ODA4MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRT
dHJpbmdzQW5kcm9pZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDQgKzUxLDkgQEAgU3RyaW5n
IGltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZQogICAgIHJldHVybiBTdHJpbmcoKTsK
IH0KIAorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVGV4dChjb25zdCBTdHJpbmcmIHZhbGlkYXRp
b25NZXNzYWdlKQoreworICAgIHJldHVybiBTdHJpbmcodmFsaWRhdGlvbk1lc3NhZ2UpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9Mb2Nh
bGl6ZWRTdHJpbmdzR3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9M
b2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAkocmV2aXNpb24gNDgwODEpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDY3LDQg
KzQ2Nyw5IEBAIFN0cmluZyBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG8KIH0KICNl
bmRpZiAgLy8gRU5BQkxFKFZJREVPKQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUZXh0KGNv
bnN0IFN0cmluZyYgdmFsaWRhdGlvbk1lc3NhZ2UpCit7CisgICAgcmV0dXJuIFN0cmluZyh2YWxp
ZGF0aW9uTWVzc2FnZSk7Cit9CisKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vaGFpa3UvTG9j
YWxpemVkU3RyaW5nc0hhaWt1LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2hh
aWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAJKHJldmlzaW9uIDQ4MDgxKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNDIsNSArMzQyLDEwIEBAIFN0cmluZyBBWERlZmluaXRpb25MaXN0RGVmaW5pdGlvblRl
eHQoKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
VGV4dChjb25zdCBTdHJpbmcmIHZhbGlkYXRpb25NZXNzYWdlKQoreworICAgIHJldHVybiBTdHJp
bmcodmFsaWRhdGlvbk1lc3NhZ2UpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsaXplZFN0cmluZ3NNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5nc01hYy5tbQkocmV2aXNp
b24gNDgwODEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbGl6ZWRTdHJpbmdzTWFjLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC03NDUsNSArNzQ1LDEyIEBAIFN0cmluZyBsb2NhbGl6ZWRNZWRp
YVRpbWVEZXNjcmlwdGlvbihmbG8KICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK1N0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVRleHQoY29uc3QgU3RyaW5nJiB2YWxpZGF0aW9uTWVzc2FnZSkKK3sK
KyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZp
ZXdGYWN0b3J5IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlVGV4dDp2YWxpZGF0aW9u
TWVzc2FnZV07CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5n
c1d4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmlu
Z3NXeC5jcHAJKHJldmlzaW9uIDQ4MDgxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS93eC9Mb2NhbGl6
ZWRTdHJpbmdzV3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjMsNCArMzIzLDkgQEAgU3RyaW5n
IEFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4dCgpCiAgICAgcmV0dXJuIFN0cmluZygpOwog
fQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUZXh0KGNvbnN0IFN0cmluZyYgdmFsaWRhdGlv
bk1lc3NhZ2UpCit7CisgICAgcmV0dXJuIFN0cmluZyh2YWxpZGF0aW9uTWVzc2FnZSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gNDgwODEpCisrKyBXZWJLaXQvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDktMDQgIE1pY2hlbGFu
Z2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI3OTU5CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciAidmFsaWRhdGlvbk1l
c3NhZ2UiIERPTSBhdHRyaWJ1dGUgZnJvbSBIVE1MNSBzcGVjcy4KKyAgICAgICAgaHR0cDovL3d3
dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jZG9tLWN2YS12YWxpZGF0
aW9ubWVzc2FnZQorCisgICAgICAgICogRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdz
OiBoYXMgYmFzZSB2YWxpZGF0aW9uTWVzc2FnZSBzdHJpbmdzCisgICAgICAgICogU3RyaW5nc05v
dFRvQmVMb2NhbGl6ZWQudHh0OiB1cGRhdGVkIHdpdGggbmV3IFZhbGlkaXR5U3RhdGUqIHN0cmlu
Z3MKKyAgICAgICAgbm90IHRvIGJlIGxvY2FsaXplZAorCiAyMDA5LTA5LTAzICBKb2huIFN1bGxp
dmFuICA8c3VsbGl2YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9i
ZW4KSW5kZXg6IFdlYktpdC9TdHJpbmdzTm90VG9CZUxvY2FsaXplZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L1N0cmluZ3NOb3RUb0JlTG9jYWxpemVkLnR4dAkocmV2aXNpb24gNDgwODEpCisr
KyBXZWJLaXQvU3RyaW5nc05vdFRvQmVMb2NhbGl6ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0y
NjcsNiArMjY3LDEzIEBACiAiVW5NdXRlQnV0dG9uIgogIlVzZUJhY2tGb3J3YXJkTGlzdCIKICJV
c2VyLUFnZW50IgorIlZhbGlkaXR5U3RhdGVQYXR0ZXJuTWlzbWF0Y2giCisiVmFsaWRpdHlTdGF0
ZVJhbmdlT3ZlcmZsb3ciCisiVmFsaWRpdHlTdGF0ZVJhbmdlVW5kZXJmbG93IgorIlZhbGlkaXR5
U3RhdGVTdGVwTWlzbWF0Y2giCisiVmFsaWRpdHlTdGF0ZVRvb0xvbmciCisiVmFsaWRpdHlTdGF0
ZVR5cGVNaXNtYXRjaCIKKyJWYWxpZGl0eVN0YXRlVmFsdWVNaXNzaW5nIgogIlZpZGVvRWxlbWVu
dCIKICJWb2x1bWVzIgogIlciCkluZGV4OiBXZWJLaXQvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJs
ZS5zdHJpbmdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxl
LnN0cmluZ3MJKHJldmlzaW9uIDQ4MDgxKQorKysgV2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxp
emFibGUuc3RyaW5ncwkod29ya2luZyBjb3B5KQpAQCAtNjQwLDYgKzY0MCw5IEBACiAALwAqACAA
SABUAFQAUAAgAHIAZQBzAHUAbAB0ACAAYwBvAGQAZQAgAHMAdAByAGkAbgBnACAAKgAvAAogACIA
cABhAHIAdABpAGEAbAAgAGMAbwBuAHQAZQBuAHQAIgAgAD0AIAAiAHAAYQByAHQAaQBhAGwAIABj
AG8AbgB0AGUAbgB0ACIAOwAKIAAKKwAvACoAIABWAGEAbABpAGQAYQB0AGkAbwBuACAAbQBlAHMA
cwBhAGcAZQAgAGYAbwByACAAaQBuAHAAdQB0ACAAZgBvAHIAbQAgAGMAbwBuAHQAcgBvAGwAcwAg
AHIAZQBxAHUAaQByAGkAbgBnACAAYQAgAGMAbwBuAHMAdAByAGEAaQBuAGUAZAAgAHYAYQBsAHUA
ZQAgAGEAYwBjAG8AcgBkAGkAbgBnACAAdABvACAAcABhAHQAdABlAHIAbgAgACoALwAKKwAiAHAA
YQB0AHQAZQByAG4AIABtAGkAcwBtAGEAdABjAGgAIgAgAD0AIAAiAHAAYQB0AHQAZQByAG4AIABt
AGkAcwBtAGEAdABjAGgAIgA7AAorAAogAC8AKgAgAGEAYwBjAGUAcwBzAGkAYgBpAGwAaQB0AHkA
IAByAG8AbABlACAAZABlAHMAYwByAGkAcAB0AGkAbwBuACAAZgBvAHIAIABwAGEAdQBzAGUAIABi
AHUAdAB0AG8AbgAgACoALwAKIAAiAHAAYQB1AHMAZQAiACAAPQAgACIAcABhAHUAcwBlACIAOwAK
IAAKQEAgLTY2MSw2ICs2NjQsMTIgQEAKIAAvACoAIABIAFQAVABQACAAcgBlAHMAdQBsAHQAIABj
AG8AZABlACAAcwB0AHIAaQBuAGcAIAAqAC8ACiAAIgBwAHIAbwB4AHkAIABhAHUAdABoAGUAbgB0
AGkAYwBhAHQAaQBvAG4AIAByAGUAcQB1AGkAcgBlAGQAIgAgAD0AIAAiAHAAcgBvAHgAeQAgAGEA
dQB0AGgAZQBuAHQAaQBjAGEAdABpAG8AbgAgAHIAZQBxAHUAaQByAGUAZAAiADsACiAACisALwAq
ACAAVgBhAGwAaQBkAGEAdABpAG8AbgAgAG0AZQBzAHMAYQBnAGUAIABmAG8AcgAgAGkAbgBwAHUA
dAAgAGYAbwByAG0AIABjAG8AbgB0AHIAbwBsAHMAIAB3AGkAdABoACAAdgBhAGwAdQBlACAAaABp
AGcAaABlAHIAIAB0AGgAYQBuACAAYQBsAGwAbwB3AGUAZAAgAG0AYQB4AGkAbQB1AG0AIAAqAC8A
CisAIgByAGEAbgBnAGUAIABvAHYAZQByAGYAbABvAHcAIgAgAD0AIAAiAHIAYQBuAGcAZQAgAG8A
dgBlAHIAZgBsAG8AdwAiADsACisACisALwAqACAAVgBhAGwAaQBkAGEAdABpAG8AbgAgAG0AZQBz
AHMAYQBnAGUAIABmAG8AcgAgAGkAbgBwAHUAdAAgAGYAbwByAG0AIABjAG8AbgB0AHIAbwBsAHMA
IAB3AGkAdABoACAAdgBhAGwAdQBlACAAbABvAHcAZQByACAAdABoAGEAbgAgAGEAbABsAG8AdwBl
AGQAIABtAGkAbgBpAG0AdQBtACAAKgAvAAorACIAcgBhAG4AZwBlACAAdQBuAGQAZQByAGYAbABv
AHcAIgAgAD0AIAAiAHIAYQBuAGcAZQAgAHUAbgBkAGUAcgBmAGwAbwB3ACIAOwAKKwAKIAAvACoA
IABIAFQAVABQACAAcgBlAHMAdQBsAHQAIABjAG8AZABlACAAcwB0AHIAaQBuAGcAIAAqAC8ACiAA
IgByAGUAZABpAHIAZQBjAHQAZQBkACIAIAA9ACAAIgByAGUAZABpAHIAZQBjAHQAZQBkACIAOwAK
IAAKQEAgLTcxOCw2ICs3MjcsOSBAQAogAC8AKgAgAGEAYwBjAGUAcwBzAGkAYgBpAGwAaQB0AHkA
IAByAG8AbABlACAAZABlAHMAYwByAGkAcAB0AGkAbwBuACAAZgBvAHIAIABtAG8AdgBpAGUAIABz
AHQAYQB0AHUAcwAgACoALwAKIAAiAHMAdABhAHQAdQBzACIAIAA9ACAAIgBzAHQAYQB0AHUAcwAi
ADsACiAACisALwAqACAAVgBhAGwAaQBkAGEAdABpAG8AbgAgAG0AZQBzAHMAYQBnAGUAIABmAG8A
cgAgAGkAbgBwAHUAdAAgAGYAbwByAG0AIABjAG8AbgB0AHIAbwBsAHMAIAB3AGkAdABoACAAdgBh
AGwAdQBlACAAbgBvAHQAIAByAGUAcwBwAGUAYwB0AGkAbgBnACAAdABoAGUAIABzAHQAZQBwACAA
YQB0AHQAcgBpAGIAdQB0AGUAIAAqAC8ACisAIgBzAHQAZQBwACAAbQBpAHMAbQBhAHQAYwBoACIA
IAA9ACAAIgBzAHQAZQBwACAAbQBpAHMAbQBhAHQAYwBoACIAOwAKKwAKIAAvACoAIABIAFQAVABQ
ACAAcgBlAHMAdQBsAHQAIABjAG8AZABlACAAcwB0AHIAaQBuAGcAIAAqAC8ACiAAIgBzAHUAYwBj
AGUAcwBzACIAIAA9ACAAIgBzAHUAYwBjAGUAcwBzACIAOwAKIAAKQEAgLTczNiw5ICs3NDgsMTUg
QEAKIAAvACoAIABBAG4AIABBAFIASQBBACAAYQBjAGMAZQBzAHMAaQBiAGkAbABpAHQAeQAgAGcA
cgBvAHUAcAAgAHQAaABhAHQAIABhAGMAdABzACAAYQBzACAAYQBuACAAdQBwAGQAYQB0AGkAbgBn
ACAAdABpAG0AZQByAC4AIAAqAC8ACiAAIgB0AGkAbQBlAHIAIgAgAD0AIAAiAHQAaQBtAGUAcgAi
ADsACiAACisALwAqACAAVgBhAGwAaQBkAGEAdABpAG8AbgAgAG0AZQBzAHMAYQBnAGUAIABmAG8A
cgAgAGYAbwByAG0AIABjAG8AbgB0AHIAbwBsACAAZQBsAGUAbQBlAG4AdABzACAAdwBpAHQAaAAg
AGEAIAB2AGEAbAB1AGUAIABsAG8AbgBnAGUAcgAgAHQAaABhAG4AIABtAGEAeABpAG0AdQBtACAA
YQBsAGwAbwB3AGUAZAAgAGwAZQBuAGcAdABoACAAKgAvAAorACIAdABvAG8AIABsAG8AbgBnACIA
IAA9ACAAIgB0AG8AbwAgAGwAbwBuAGcAIgA7AAorAAogAC8AKgAgAEEAbgAgAEEAUgBJAEEAIABh
AGMAYwBlAHMAcwBpAGIAaQBsAGkAdAB5ACAAZwByAG8AdQBwACAAdABoAGEAdAAgAGEAYwB0AHMA
IABhAHMAIABhACAAdABvAG8AbAB0AGkAcAAuACAAKgAvAAogACIAdABvAG8AbAB0AGkAcAAiACAA
PQAgACIAdABvAG8AbAB0AGkAcAAiADsACiAACisALwAqACAAVgBhAGwAaQBkAGEAdABpAG8AbgAg
AG0AZQBzAHMAYQBnAGUAIABmAG8AcgAgAGkAbgBwAHUAdAAgAGYAbwByAG0AIABjAG8AbgB0AHIA
bwBsAHMAIAB3AGkAdABoACAAYQAgAHYAYQBsAHUAZQAgAG4AbwB0ACAAbQBhAHQAYwBoAGkAbgBn
ACAAdAB5AHAAZQAgACoALwAKKwAiAHQAeQBwAGUAIABtAGkAcwBtAGEAdABjAGgAIgAgAD0AIAAi
AHQAeQBwAGUAIABtAGkAcwBtAGEAdABjAGgAIgA7AAorAAogAC8AKgAgAEgAVABUAFAAIAByAGUA
cwB1AGwAdAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAHUAbgBhAGMAYwBlAHAA
dABhAGIAbABlACIAIAA9ACAAIgB1AG4AYQBjAGMAZQBwAHQAYQBiAGwAZQAiADsACiAACkBAIC03
NjYsNiArNzg0LDkgQEAKIAAvACoAIABIAFQAVABQACAAcgBlAHMAdQBsAHQAIABjAG8AZABlACAA
cwB0AHIAaQBuAGcAIAAqAC8ACiAAIgB1AG4AcwB1AHAAcABvAHIAdABlAGQAIAB2AGUAcgBzAGkA
bwBuACIAIAA9ACAAIgB1AG4AcwB1AHAAcABvAHIAdABlAGQAIAB2AGUAcgBzAGkAbwBuACIAOwAK
IAAKKwAvACoAIABWAGEAbABpAGQAYQB0AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAA
cgBlAHEAdQBpAHIAZQBkACAAZgBvAHIAbQAgAGMAbwBuAHQAcgBvAGwAIABlAGwAZQBtAGUAbgB0
AHMAIAB0AGgAYQB0ACAAaABhAHYAZQAgAG4AbwAgAHYAYQBsAHUAZQAgACoALwAKKwAiAHYAYQBs
AHUAZQAgAG0AaQBzAHMAaQBuAGcAIgAgAD0AIAAiAHYAYQBsAHUAZQAgAG0AaQBzAHMAaQBuAGcA
IgA7AAorAAogAC8AKgAgAGEAYwBjAGUAcwBzAGkAYgBpAGwAaQB0AHkAIAByAG8AbABlACAAZABl
AHMAYwByAGkAcAB0AGkAbwBuACAAZgBvAHIAIAB2AGkAZABlAG8AIABlAGwAZQBtAGUAbgB0ACAA
YwBvAG4AdAByAG8AbABsAGUAcgAgACoALwAKIAAiAHYAaQBkAGUAbwAgAGUAbABlAG0AZQBuAHQA
IABjAG8AbgB0AHIAbwBsAGwAZQByACIAIAA9ACAAIgB2AGkAZABlAG8AIABlAGwAZQBtAGUAbgB0
ACAAYwBvAG4AdAByAG8AbABsAGUAcgAiADsACiAACkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNDgwODEpCisr
KyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisy
MDA5LTA5LTA0ICBNaWNoZWxhbmdlbG8gRGUgU2ltb25lICA8bWljZGVzaW1AZ21haWwuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzk1OQorICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgInZhbGlkYXRpb25NZXNzYWdlIiBET00gYXR0cmlidXRlIGZyb20gSFRNTDUgc3BlY3Mu
CisgICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdv
cmsvI2RvbS1jdmEtdmFsaWRhdGlvbm1lc3NhZ2UKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYlZpZXdGYWN0b3J5Lm1tOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9u
TWVzc2FnZVRleHQ6XSk6IHJldHJpZXZlcyB0aGUgcmlnaHQgbG9jYWxpemVkCisgICAgICAgIHN0
cmluZ3MgdG8gYmUgcmV0dXJuZWQgYXMgInZhbGlkYXRpb25NZXNzYWdlIgorCiAyMDA5LTA5LTA0
ICBNYXJrIE1lbnRvdmFpICA8bWFya0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGF2ZSBIeWF0dC4KSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0Zh
Y3RvcnkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3
RmFjdG9yeS5tbQkocmV2aXNpb24gNDgwODEpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYlZpZXdGYWN0b3J5Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NDQsNCArNzQ0LDI1IEBACiAg
ICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OlVJX1NUUklORygiZGF0ZS5mb3Jt
YXQuZm9yLnNlY29uZHMiLCAic3RyaW5nIGZvciBzZWNvbmRzIiksIHNlY29uZHNdOwogfQogCist
IChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVGV4dDooTlNTdHJpbmcgKil2YWxpZGF0aW9u
TWVzc2FnZQoreworICAgIGlmIChbdmFsaWRhdGlvbk1lc3NhZ2UgaXNFcXVhbFRvU3RyaW5nOkAi
VmFsaWRpdHlTdGF0ZVZhbHVlTWlzc2luZyJdKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJ2
YWx1ZSBtaXNzaW5nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgcmVxdWlyZWQgZm9ybSBjb250
cm9sIGVsZW1lbnRzIHRoYXQgaGF2ZSBubyB2YWx1ZSIpOworICAgIGlmIChbdmFsaWRhdGlvbk1l
c3NhZ2UgaXNFcXVhbFRvU3RyaW5nOkAiVmFsaWRpdHlTdGF0ZVR5cGVNaXNtYXRjaCJdKQorICAg
ICAgICByZXR1cm4gVUlfU1RSSU5HKCJ0eXBlIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2Fn
ZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsdWUgbm90IG1hdGNoaW5nIHR5cGUi
KTsKKyAgICBpZiAoW3ZhbGlkYXRpb25NZXNzYWdlIGlzRXF1YWxUb1N0cmluZzpAIlZhbGlkaXR5
U3RhdGVQYXR0ZXJuTWlzbWF0Y2giXSkKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygicGF0dGVy
biBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMg
cmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNjb3JkaW5nIHRvIHBhdHRlcm4iKTsKKyAg
ICBpZiAoW3ZhbGlkYXRpb25NZXNzYWdlIGlzRXF1YWxUb1N0cmluZzpAIlZhbGlkaXR5U3RhdGVU
b29Mb25nIl0pCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoInRvbyBsb25nIiwgIlZhbGlkYXRp
b24gbWVzc2FnZSBmb3IgZm9ybSBjb250cm9sIGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBsb25nZXIg
dGhhbiBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIik7CisgICAgaWYgKFt2YWxpZGF0aW9uTWVzc2Fn
ZSBpc0VxdWFsVG9TdHJpbmc6QCJWYWxpZGl0eVN0YXRlUmFuZ2VVbmRlcmZsb3ciXSkKKyAgICAg
ICAgcmV0dXJuIFVJX1NUUklORygicmFuZ2UgdW5kZXJmbG93IiwgIlZhbGlkYXRpb24gbWVzc2Fn
ZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIGxvd2VyIHRoYW4gYWxsb3dlZCBt
aW5pbXVtIik7CisgICAgaWYgKFt2YWxpZGF0aW9uTWVzc2FnZSBpc0VxdWFsVG9TdHJpbmc6QCJW
YWxpZGl0eVN0YXRlUmFuZ2VPdmVyZmxvdyJdKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJy
YW5nZSBvdmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJv
bHMgd2l0aCB2YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKKyAgICBpZiAoW3Zh
bGlkYXRpb25NZXNzYWdlIGlzRXF1YWxUb1N0cmluZzpAIlZhbGlkaXR5U3RhdGVTdGVwTWlzbWF0
Y2giXSkKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygic3RlcCBtaXNtYXRjaCIsICJWYWxpZGF0
aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBub3QgcmVzcGVj
dGluZyB0aGUgc3RlcCBhdHRyaWJ1dGUiKTsKKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiBAIiI7Cit9CisKIEBlbmQKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MDgxKQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MDktMDktMDQgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3OTU5CisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciAidmFsaWRhdGlvbk1lc3NhZ2UiIERPTSBhdHRyaWJ1dGUgZnJvbSBIVE1MNSBzcGVjcy4K
KyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29y
ay8jZG9tLWN2YS12YWxpZGF0aW9ubWVzc2FnZQorCisgICAgICAgICogZmFzdC9kb20vZG9tTGlz
dEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dDogY29ycmVjdGVkCisgICAgICAgICogZmFzdC9kb20v
cmVzb3VyY2VzL2RvbUxpc3RFbnVtZXJhdGlvbi5qczogY29ycmVjdGVkCisgICAgICAgICogZmFz
dC9mb3Jtcy9yZXNvdXJjZXMvdmFsaWRhdGlvbk1lc3NhZ2UuanM6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0bWw6IEFkZGVkLgorCiAyMDA5LTA5
LTA0ICBNaWNoZWxhbmdlbG8gRGUgU2ltb25lICA8bWljZGVzaW1AZ21haWwuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
ZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA0ODA4
MSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgUEFTUyByZXN1bHRBcnJheVsyXS5p
IGlzICcyJwogUEFTUyByZXN1bHRBcnJheVsyXS5pdGVtIGlzIGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdzZWxlY3QnKVsyXQogCiBbb2JqZWN0IEhUTUxTZWxlY3RFbGVtZW50XQotUEFT
UyByZXN1bHRBcnJheS5sZW5ndGggaXMgMTM5CitQQVNTIHJlc3VsdEFycmF5Lmxlbmd0aCBpcyAx
NDAKIFBBU1MgcmVzdWx0QXJyYXlbMF0uaSBpcyAnMCcKIFBBU1MgcmVzdWx0QXJyYXlbMF0uaXRl
bSBpcyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnb3B0aW9uJylbMF0KIFBBU1MgcmVz
dWx0QXJyYXlbMV0uaSBpcyAnMScKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNl
cy9kb21MaXN0RW51bWVyYXRpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vcmVzb3VyY2VzL2RvbUxpc3RFbnVtZXJhdGlvbi5qcwkocmV2aXNpb24gNDgwODEpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvZG9tTGlzdEVudW1lcmF0aW9uLmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDEsNyArMTQxLDcgQEAgc2hvdWxkQmUoInJlc3VsdEFycmF5WzJdLml0
ZW0iLCAiZG9jdW1lbgogLy8gSFRNTFNlbGVjdEVsZW1lbnQKIHZhciBodG1sU2VsZWN0RWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKVswXTsKIHJlc3VsdEFy
cmF5ID0gaXRlcmF0ZUxpc3QoaHRtbFNlbGVjdEVsZW1lbnQpOwotc2hvdWxkQmUoInJlc3VsdEFy
cmF5Lmxlbmd0aCIsICIxMzkiKTsKK3Nob3VsZEJlKCJyZXN1bHRBcnJheS5sZW5ndGgiLCAiMTQw
Iik7CiBzaG91bGRCZSgicmVzdWx0QXJyYXlbMF0uaSIsICInMCciKTsKIHNob3VsZEJlKCJyZXN1
bHRBcnJheVswXS5pdGVtIiwgImRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdvcHRpb24n
KVswXSIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzFdLmkiLCAiJzEnIik7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1l
c3NhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2IEBACitUZXN0IGZv
ciB2YWxpZGF0aW9uTWVzc2FnZSBET00gcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHZhbGlkYXRpb25NZXNzYWdlIHByZXNlbnQKK1BBU1MgdmFsaWRhdGlv
bk1lc3NhZ2UgcHJlc2VudAorUEFTUyB2YWxpZGF0aW9uTWVzc2FnZSBwcmVzZW50CitQQVNTIHZh
bGlkYXRpb25NZXNzYWdlIGVtcHR5CitQQVNTIHZhbGlkYXRpb25NZXNzYWdlIGVtcHR5CitQQVNT
IHZhbGlkYXRpb25NZXNzYWdlIGVtcHR5CitQQVNTIHZhbGlkYXRpb25NZXNzYWdlIGVtcHR5CitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdmFsaWRhdGlvbk1lc3NhZ2Uu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy92YWxpZGF0aW9uTWVzc2FnZS5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy92YWxpZGF0aW9uTWVzc2FnZS5qcwko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3ZhbGlkYXRp
b25NZXNzYWdlLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcxIEBACitkZXNjcmlwdGlvbigi
VGVzdCBmb3IgdmFsaWRhdGlvbk1lc3NhZ2UgRE9NIHByb3BlcnR5LiIpOworCitmdW5jdGlvbiB0
ZXN0VmFsaWRhdGlvbk1lc3NhZ2UoZWxlbSkgeworICAgIGlmIChlbGVtLnZhbGlkYXRpb25NZXNz
YWdlID09IG51bGwpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiTm8gdmFsaWRhdGlvbk1lc3NhZ2Ug
RE9NIGF0dHJpYnV0ZSBleHBvc2VkIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAv
LyB2YWxpZGF0aW9uTWVzc2FnZSBpcyBhbHdheXMgZW1wdHkgb24gbm9uLXZhbGlkYWJsZSBhbmQg
dmFsaWQgY29udHJvbHMKKyAgICBpZiAoIWVsZW0ud2lsbFZhbGlkYXRlIHx8IGVsZW0udmFsaWRp
dHkudmFsaWQpIHsKKyAgICAgICAgaWYgKGVsZW0udmFsaWRhdGlvbk1lc3NhZ2UgPT0gIiIpCisg
ICAgICAgICAgICB0ZXN0UGFzc2VkKCJ2YWxpZGF0aW9uTWVzc2FnZSBlbXB0eSIpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJ2YWxpZGF0aW9uTWVzc2FnZSBpcyBOT1Qg
ZW1wdHkiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChlbGVtLnZhbGlkYXRp
b25NZXNzYWdlLmxlbmd0aCA+IDEpCisgICAgICAgIHRlc3RQYXNzZWQoInZhbGlkYXRpb25NZXNz
YWdlIHByZXNlbnQiKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoInZhbGlkYXRpb25N
ZXNzYWdlIikKK30KKwordmFyIGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIik7
CisKKy8vIEFuIGlucHV0IGVsZW1lbnQgd2l0aCBhIHBhdHRlcm4gc2V0IGFuZCBhIG1pc21hdGNo
ZWQgdmFsdWUKK3ZhciBwYXR0ZXJuSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1
dCIpOworcGF0dGVybklucHV0Lm5hbWUgPSAicGF0dGVybklucHV0IjsKK3BhdHRlcm5JbnB1dC5w
YXR0ZXJuID0gImxvcmVtIGlwc3VtIjsKK3BhdHRlcm5JbnB1dC52YWx1ZSA9ICJsb3JlbSI7Citm
b3JtLmFwcGVuZENoaWxkKHBhdHRlcm5JbnB1dCk7Cit0ZXN0VmFsaWRhdGlvbk1lc3NhZ2UocGF0
dGVybklucHV0KTsKKworLy8gQSByZXF1aXJlZCBpbnB1dCB3aXRoIGFuIGVtcHR5IHZhbHVlCit2
YXIgcmVxdWlyZWRJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CityZXF1
aXJlZElucHV0Lm5hbWUgPSAicmVxdWlyZWRJbnB1dCI7CityZXF1aXJlZElucHV0LnJlcXVpcmVk
ID0gdHJ1ZTsKK2Zvcm0uYXBwZW5kQ2hpbGQocmVxdWlyZWRJbnB1dCk7Cit0ZXN0VmFsaWRhdGlv
bk1lc3NhZ2UocmVxdWlyZWRJbnB1dCk7CisKKy8vIEEgcmVxdWlyZWQgdGV4dGFyZWEgd2l0aCBh
biBlbXB0eSB2YWx1ZQordmFyIHJlcXVpcmVkVGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJ0ZXh0YXJlYSIpOworcmVxdWlyZWRUZXh0QXJlYS5uYW1lID0gInJlcXVpcmVkVGV4dEFy
ZWEiOworcmVxdWlyZWRUZXh0QXJlYS5yZXF1aXJlZCA9IHRydWU7Citmb3JtLmFwcGVuZENoaWxk
KHJlcXVpcmVkVGV4dEFyZWEpOwordGVzdFZhbGlkYXRpb25NZXNzYWdlKHJlcXVpcmVkVGV4dEFy
ZWEpOworCisvLyBBIGJ1dHRvbiBjYW4ndCBiZSB2YWxpdGVkIGFuZCwgdGh1cywgaGFzIGEgYmxh
bmsgdmFsaWRhdGlvbk1lc3NhZ2UKK3ZhciBidXR0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
YnV0dG9uIik7CitidXR0Lm5hbWUgPSAiYnV0dG9uIjsKK2Zvcm0uYXBwZW5kQ2hpbGQoYnV0dCk7
Cit0ZXN0VmFsaWRhdGlvbk1lc3NhZ2UoYnV0dCk7CisKKy8vIEFuIGlucHV0IGNvbnRyb2wgd2l0
aCBubyBuYW1lLCBzbyBpdCBjYW4ndCBiZSB2YWxpZGF0ZWQgKHdpbGxWYWxpZGF0ZSA9IGZhbHNl
KQordmFyIGFub25pbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Citmb3Jt
LmFwcGVuZENoaWxkKGFub25pbnB1dCk7Cit0ZXN0VmFsaWRhdGlvbk1lc3NhZ2UoYW5vbmlucHV0
KTsKKworLy8gRmllbGRzZXRzIGNhbid0IGJlIHZhbGlkYXRlZAordmFyIGhhcHB5RmllbGRzZXQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpOworaGFwcHlGaWVsZHNldC5uYW1l
ID0gImZpZWxkc2V0IjsKK2Zvcm0uYXBwZW5kQ2hpbGQoaGFwcHlGaWVsZHNldCk7Cit0ZXN0VmFs
aWRhdGlvbk1lc3NhZ2UoaGFwcHlGaWVsZHNldCk7CisKKy8vIFNlbGVjdCBjb250cm9scyBjYW4n
dCBiZSB2YWxpZGF0ZWQgdG9vCit2YXIgaGFwcHlTZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJzZWxlY3QiKTsKK2hhcHB5U2VsZWN0Lm5hbWUgPSAic2VsZWN0IjsKK2Zvcm0uYXBwZW5k
Q2hpbGQoaGFwcHlTZWxlY3QpOwordGVzdFZhbGlkYXRpb25NZXNzYWdlKGhhcHB5U2VsZWN0KTsK
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41526</attachid>
            <date>2009-10-20 15:34:29 -0700</date>
            <delta_ts>2009-10-20 15:36:40 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-27959-20091021003426.patch</filename>
            <type>text/plain</type>
            <size>28734</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTg5MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMTAtMjAgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNk
ZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KwkJaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3OTU5CisgICAgICAg
IEFkZGVkIHN1cHBvcnQgZm9yICJ2YWxpZGF0aW9uTWVzc2FnZSIgRE9NIGF0dHJpYnV0ZSwgcGx1
cyBiYXNpYworICAgICAgICBsb2NhbGl6YXRpb24gc3R1ZmYgb24gdGhlIE1hYyBwb3J0LgorICAg
ICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNk
b20tY3ZhLXZhbGlkYXRpb25tZXNzYWdlCisKKyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVt
ZW50LmlkbDogdmFsaWRhdGlvbk1lc3NhZ2UgRE9NIGF0dHJpYnV0ZQorICAgICAgICAqIGh0bWwv
SFRNTEZpZWxkU2V0RWxlbWVudC5pZGw6IGRpdHRvCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmNwcDogImNvcmUiIG1ldGhvZDspCisgICAgICAgICogaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50Lmg6IC4uLndpdGggaXRzIGRlZmluaXRpb24KKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsOiB2YWxpZGF0aW9uTWVzc2FnZSBET00gYXR0cmlidXRlCisg
ICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGw6IGRpdHRvCisgICAgICAgICogaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbDogZGl0dG8KKyAgICAgICAgKiBodG1sL1ZhbGlkaXR5
U3RhdGUuY3BwOiByZXR1cm5zIGNvcnJlY3QgdmFsaWRhdGlvbk1lc3NhZ2UgZm9yIHRoZSBlbGVt
ZW50CisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmg6IGRpdHRvIChkZWZpbml0aW9uKQor
ICAgICAgICAqIHBhZ2UvbWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oOiBsb2NhbGl6ZWQgZnVuY3Rp
b25zCisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOiBsb2NhbGl6ZWQgc3Ry
aW5ncworICAgICAgICAqIHBsYXRmb3JtL21hYy9Mb2NhbGl6ZWRTdHJpbmdzTWFjLm1tOiBsb2Nh
bGl6ZWQgZnVuY3Rpb25zCisKIDIwMDktMTAtMjAgIEplbnMgQWxma2UgIDxzbmVqQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hU
TUxCdXR0b25FbGVtZW50LmlkbAkocmV2aXNpb24gNDk4OTApCisrKyBXZWJDb3JlL2h0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAg
ICB0eXBlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuICAgICAgICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOwogICAg
ICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgICAgIHZvaWQgc2V0Q3VzdG9tVmFs
aWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBl
cnJvcik7CiAgICAgICAgIHZvaWQgY2xpY2soKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRmll
bGRTZXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZpZWxkU2V0
RWxlbWVudC5pZGwJKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9odG1sL0hUTUxGaWVsZFNl
dEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBAIG1vZHVsZSBodG1s
IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxpZGl0eTsK
ICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxW
YWxpZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB2YWxp
ZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0eSgpOwogICAgICAg
ICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICB9OwpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAkocmV2aXNpb24gNDk4OTApCisrKyBXZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4OCw2ICsy
ODgsMTEgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxsVmFsaWRhdAogICAgIHJl
dHVybiBmb3JtKCkgJiYgIW5hbWUoKS5pc0VtcHR5KCkgJiYgIWRpc2FibGVkKCkgJiYgIWlzUmVh
ZE9ubHlGb3JtQ29udHJvbCgpOwogfQogCitTdHJpbmcgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
dmFsaWRhdGlvbk1lc3NhZ2UoKQoreworICAgIHJldHVybiB2YWxpZGl0eSgpLT52YWxpZGF0aW9u
TWVzc2FnZSgpOworfQorCiBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmNoZWNrVmFsaWRp
dHkoKQogewogICAgIGlmICh3aWxsVmFsaWRhdGUoKSAmJiAhaXNWYWxpZEZvcm1Db250cm9sRWxl
bWVudCgpKSB7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJKHJldmlz
aW9uIDQ5ODkwKQorKysgV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHNob3J0
IHRhYkluZGV4KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZhbGlkYXRlKCkgY29u
c3Q7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlKCk7CiAgICAgYm9vbCBjaGVja1ZhbGlk
aXR5KCk7CiAgICAgdm9pZCB1cGRhdGVWYWxpZGl0eSgpOwogICAgIHZvaWQgc2V0Q3VzdG9tVmFs
aWRpdHkoY29uc3QgU3RyaW5nJik7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCShy
ZXZpc2lvbiA0OTg5MCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtNzAsNiArNzAsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBIVE1MT3B0aW9uRWxlbWVudCBzZWxlY3RlZE9wdGlvbjsKICNlbmRpZgog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB2YWxpZGF0aW9uTWVz
c2FnZTsKICAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsKICAgICAg
ICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZp
bmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgICAgICB2b2lkICAg
ICAgICAgICAgICAgc2VsZWN0KCk7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGwJ
KHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmlkbAko
d29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRlICAgdmFsaWRpdHk7CiAjZW5kaWYKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2U7
CiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgICAgIHZv
aWQgICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9y
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKIApJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmlkbAkocmV2aXNpb24gNDk4OTApCisrKyBXZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAgbW9k
dWxlIGh0bWwgewogICAgICAgICB2b2lkICAgICBzZWxlY3QoKTsKIAogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAg
Ym9vbGVhbiAgY2hlY2tWYWxpZGl0eSgpOwogICAgICAgICB2b2lkICAgICBzZXRDdXN0b21WYWxp
ZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVy
cm9yKTsKIApJbmRleDogV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAkocmV2aXNpb24gNDk4OTApCisrKyBX
ZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNp
bmNsdWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KIApAQCAtNDMsNiArNDQsMzMgQEAgVmFsaWRpdHlTdGF0ZTo6VmFsaWRpdHlTdGF0ZShIVE1M
Rm9ybUNvbgogICAgIEFTU0VSVChwYXJlbnQpOwogfQogCitTdHJpbmcgVmFsaWRpdHlTdGF0ZTo6
dmFsaWRhdGlvbk1lc3NhZ2UoKQoreworICAgIGlmICghY29udHJvbCgpLT53aWxsVmFsaWRhdGUo
KSkKKyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbTsKKyAgICAKKyAgICBpZiAoY3VzdG9tRXJyb3Io
KSkKKyAgICAgICAgcmV0dXJuIG1fY3VzdG9tRXJyb3JNZXNzYWdlOworI2lmIFBMQVRGT1JNKE1B
QykKKyAgICBlbHNlIGlmICh2YWx1ZU1pc3NpbmcoKSkKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRp
b25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOworICAgIGVsc2UgaWYgKHR5cGVNaXNtYXRjaCgp
KQorICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7Cisg
ICAgZWxzZSBpZiAocGF0dGVybk1pc21hdGNoKCkpCisgICAgICAgIHJldHVybiB2YWxpZGF0aW9u
TWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKKyAgICBlbHNlIGlmICh0b29Mb25nKCkpCisg
ICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7CisgICAgZWxzZSBp
ZiAocmFuZ2VVbmRlcmZsb3coKSkKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VVbmRlcmZsb3dUZXh0KCk7CisgICAgZWxzZSBpZiAocmFuZ2VPdmVyZmxvdygpKQorICAgICAg
ICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpOworICAgIGVsc2Ug
aWYgKHN0ZXBNaXNtYXRjaCgpKQorICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VTdGVw
TWlzbWF0Y2hUZXh0KCk7CisjZW5kaWYKKworICAgIHJldHVybiBlbXB0eUF0b207Cit9CisKIGJv
b2wgVmFsaWRpdHlTdGF0ZTo6dHlwZU1pc21hdGNoKCkKIHsKICAgICBpZiAoIWNvbnRyb2woKS0+
aGFzVGFnTmFtZShpbnB1dFRhZykpCkluZGV4OiBXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgJKHJldmlzaW9uIDQ5
ODkwKQorKysgV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgSFRNTEZvcm1Db250
cm9sRWxlbWVudCogY29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udHJvbDsgfQogCisgICAg
ICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZSgpOwogICAgICAgICB2b2lkIHNldEN1c3RvbUVy
cm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgbV9jdXN0b21FcnJvck1lc3NhZ2Ug
PSBtZXNzYWdlOyB9CiAKICAgICAgICAgYm9vbCB2YWx1ZU1pc3NpbmcoKSB7IHJldHVybiBjb250
cm9sKCktPnZhbHVlTWlzc2luZygpOyB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvbWFjL1dlYkNvcmVW
aWV3RmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9tYWMvV2ViQ29yZVZpZXdG
YWN0b3J5LmgJKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmll
d0ZhY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDEwICsxNDYsMTcgQEAKIAogLSAoTlNT
dHJpbmcgKiltZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0OwogLSAoTlNTdHJpbmcgKiltZWRp
YUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0OwotLSAoTlNTdHJpbmcqKWxvY2FsaXplZE1l
ZGlhQ29udHJvbEVsZW1lbnRTdHJpbmc6KE5TU3RyaW5nKiluYW1lOwotLSAoTlNTdHJpbmcqKWxv
Y2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dDooTlNTdHJpbmcqKW5hbWU7Ci0tIChO
U1N0cmluZyopbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb246KGZsb2F0KXRpbWU7Ci0KKy0g
KE5TU3RyaW5nICopbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZzooTlNTdHJpbmcq
KW5hbWU7CistIChOU1N0cmluZyAqKWxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4
dDooTlNTdHJpbmcqKW5hbWU7CistIChOU1N0cmluZyAqKWxvY2FsaXplZE1lZGlhVGltZURlc2Ny
aXB0aW9uOihmbG9hdCl0aW1lOworCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVmFs
dWVNaXNzaW5nVGV4dDsKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0
Y2hUZXh0OworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRl
eHQ7CistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQ7CistIChOU1N0
cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0OworLSAoTlNTdHJpbmcg
Kil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0OworLSAoTlNTdHJpbmcgKil2YWxp
ZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQ7CiAKIEBlbmQKIApJbmRleDogV2ViQ29yZS9w
bGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw2ICsxNDEsMTcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVt
ZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRy
b2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgU3RyaW5nIGxvY2FsaXplZE1l
ZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0KTsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBTdHJp
bmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKKyAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VU
b29Mb25nVGV4dCgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93
VGV4dCgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCk7
CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpOworI2VuZGlm
CisKIH0KIAogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbGl6ZWRTdHJp
bmdzTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsaXplZFN0
cmluZ3NNYWMubW0JKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9j
YWxpemVkU3RyaW5nc01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzQ3LDUgKzc0Nyw2MCBAQCBT
dHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvCiAgICAgcmV0dXJuIFN0cmlu
ZygpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCkKK3sK
KyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZp
ZXdGYWN0b3J5IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4
dF07CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQoreworICAg
IEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0Zh
Y3Rvcnkgc2hhcmVkRmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0XTsK
KyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCit7CisgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBbW1dlYkNvcmVWaWV3RmFj
dG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHRd
OworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFN0cmluZygpOwor
fQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCit7CisgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBbW1dlYkNvcmVWaWV3RmFjdG9yeSBz
aGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0XTsKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK3sKKyAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZh
Y3RvcnldIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0XTsKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQoreworICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFj
dG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dF07CisgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxp
ZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQoreworICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9y
eV0gdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0XTsKKyAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KIAogfQpJbmRleDogV2ViS2l0
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA0OTg5
MCkKKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAor
MjAwOS0xMC0yMCAgTWljaGVsYW5nZWxvIERlIFNpbW9uZSAgPG1pY2Rlc2ltQGdtYWlsLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc5NTkKKwkJQmFzaWMgbG9jYWxpemFi
bGUgc3RyaW5ncyBmb3IgdGhlICJ2YWxpZGF0aW9uTWVzc2FnZSIgRE9NIGF0dHJpYnV0ZQorICAg
ICAgICBmcm9tIEhUTUw1IHNwZWNzOgorICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3Bl
Y3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tY3ZhLXZhbGlkYXRpb25tZXNzYWdlCisKKyAg
ICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6IGFkZGVkIHNvbWUgYmFz
aWMgbG9jYWxpemFibGUgc3RyaW5nCisKIDIwMDktMTAtMTkgIEpvaG4gR3JlZ2cgIDxqb2hubnln
QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpJbmRl
eDogV2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCShyZXZpc2lvbiA0OTg5
MCkKKysrIFdlYktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MJKHdvcmtpbmcg
Y29weSkKQEAgLTUyMyw5ICs1MjMsNiBAQAogAC8AKgAgAGEAYwBjAGUAcwBzAGkAYgBpAGwAaQB0
AHkAIAByAG8AbABlACAAZABlAHMAYwByAGkAcAB0AGkAbwBuACAAZgBvAHIAIABlAGwAYQBwAHMA
ZQBkACAAdABpAG0AZQAgAGQAaQBzAHAAbABhAHkAIAAqAC8ACiAAIgBlAGwAYQBwAHMAZQBkACAA
dABpAG0AZQAiACAAPQAgACIAZQBsAGEAcABzAGUAZAAgAHQAaQBtAGUAIgA7AAogAAotAC8AKgAg
AGEAYwBjAGUAcwBzAGkAYgBpAGwAaQB0AHkAIABoAGUAbABwACAAdABlAHgAdAAgAGYAbwByACAA
ZgB1AGwAbABzAGMAcgBlAGUAbgAgAGIAdQB0AHQAbwBuACAAKgAvAAotACIAZQBuAHQAZQByACAA
ZgB1AGwAbAAgAHMAYwByAGUAZQBuACIAIAA9ACAAIgBlAG4AdABlAHIAIABmAHUAbABsACAAcwBj
AHIAZQBlAG4AIgA7AAotAAogAC8AKgAgAEgAVABUAFAAIAByAGUAcwB1AGwAdAAgAGMAbwBkAGUA
IABzAHQAcgBpAG4AZwAgACoALwAKIAAiAGUAeABwAGUAYwB0AGEAdABpAG8AbgAgAGYAYQBpAGwA
ZQBkACIAIAA9ACAAIgBlAHgAcABlAGMAdABhAHQAaQBvAG4AIABmAGEAaQBsAGUAZAAiADsACiAA
CkBAIC01NDEsOSArNTM4LDYgQEAKIAAvACoAIABIAFQAVABQACAAcgBlAHMAdQBsAHQAIABjAG8A
ZABlACAAcwB0AHIAaQBuAGcAIAAqAC8ACiAAIgBmAG8AdQBuAGQAIgAgAD0AIAAiAGYAbwB1AG4A
ZAAiADsACiAACi0ALwAqACAAYQBjAGMAZQBzAHMAaQBiAGkAbABpAHQAeQAgAHIAbwBsAGUAIABk
AGUAcwBjAHIAaQBwAHQAaQBvAG4AIABmAG8AcgAgAGYAdQBsAGwAcwBjAHIAZQBlAG4AIABiAHUA
dAB0AG8AbgAgACoALwAKLQAiAGYAdQBsAGwAIABzAGMAcgBlAGUAbgAiACAAPQAgACIAZgB1AGwA
bAAgAHMAYwByAGUAZQBuACIAOwAKLQAKIAAvACoAIABhAGMAYwBlAHMAcwBpAGIAaQBsAGkAdAB5
ACAAcgBvAGwAZQAgAGQAZQBzAGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAAZQBuAHQAZQByACAA
ZgB1AGwAbABzAGMAcgBlAGUAbgAgAGIAdQB0AHQAbwBuACAAKgAvAAogACIAZgB1AGwAbABzAGMA
cgBlAGUAbgAiACAAPQAgACIAZgB1AGwAbABzAGMAcgBlAGUAbgAiADsACiAACkBAIC02NDYsNiAr
NjQwLDkgQEAKIAAvACoAIABIAFQAVABQACAAcgBlAHMAdQBsAHQAIABjAG8AZABlACAAcwB0AHIA
aQBuAGcAIAAqAC8ACiAAIgBwAGEAcgB0AGkAYQBsACAAYwBvAG4AdABlAG4AdAAiACAAPQAgACIA
cABhAHIAdABpAGEAbAAgAGMAbwBuAHQAZQBuAHQAIgA7AAogAAorAC8AKgAgAFYAYQBsAGkAZABh
AHQAaQBvAG4AIABtAGUAcwBzAGEAZwBlACAAZgBvAHIAIABpAG4AcAB1AHQAIABmAG8AcgBtACAA
YwBvAG4AdAByAG8AbABzACAAcgBlAHEAdQBpAHIAaQBuAGcAIABhACAAYwBvAG4AcwB0AHIAYQBp
AG4AZQBkACAAdgBhAGwAdQBlACAAYQBjAGMAbwByAGQAaQBuAGcAIAB0AG8AIABwAGEAdAB0AGUA
cgBuACAAKgAvAAorACIAcABhAHQAdABlAHIAbgAgAG0AaQBzAG0AYQB0AGMAaAAiACAAPQAgACIA
cABhAHQAdABlAHIAbgAgAG0AaQBzAG0AYQB0AGMAaAAiADsACisACiAALwAqACAAYQBjAGMAZQBz
AHMAaQBiAGkAbABpAHQAeQAgAHIAbwBsAGUAIABkAGUAcwBjAHIAaQBwAHQAaQBvAG4AIABmAG8A
cgAgAHAAYQB1AHMAZQAgAGIAdQB0AHQAbwBuACAAKgAvAAogACIAcABhAHUAcwBlACIAIAA9ACAA
IgBwAGEAdQBzAGUAIgA7AAogAApAQCAtNjY3LDYgKzY2NCwxMiBAQAogAC8AKgAgAEgAVABUAFAA
IAByAGUAcwB1AGwAdAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAHAAcgBvAHgA
eQAgAGEAdQB0AGgAZQBuAHQAaQBjAGEAdABpAG8AbgAgAHIAZQBxAHUAaQByAGUAZAAiACAAPQAg
ACIAcAByAG8AeAB5ACAAYQB1AHQAaABlAG4AdABpAGMAYQB0AGkAbwBuACAAcgBlAHEAdQBpAHIA
ZQBkACIAOwAKIAAKKwAvACoAIABWAGEAbABpAGQAYQB0AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAg
AGYAbwByACAAaQBuAHAAdQB0ACAAZgBvAHIAbQAgAGMAbwBuAHQAcgBvAGwAcwAgAHcAaQB0AGgA
IAB2AGEAbAB1AGUAIABoAGkAZwBoAGUAcgAgAHQAaABhAG4AIABhAGwAbABvAHcAZQBkACAAbQBh
AHgAaQBtAHUAbQAgACoALwAKKwAiAHIAYQBuAGcAZQAgAG8AdgBlAHIAZgBsAG8AdwAiACAAPQAg
ACIAcgBhAG4AZwBlACAAbwB2AGUAcgBmAGwAbwB3ACIAOwAKKwAKKwAvACoAIABWAGEAbABpAGQA
YQB0AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAAaQBuAHAAdQB0ACAAZgBvAHIAbQAg
AGMAbwBuAHQAcgBvAGwAcwAgAHcAaQB0AGgAIAB2AGEAbAB1AGUAIABsAG8AdwBlAHIAIAB0AGgA
YQBuACAAYQBsAGwAbwB3AGUAZAAgAG0AaQBuAGkAbQB1AG0AIAAqAC8ACisAIgByAGEAbgBnAGUA
IAB1AG4AZABlAHIAZgBsAG8AdwAiACAAPQAgACIAcgBhAG4AZwBlACAAdQBuAGQAZQByAGYAbABv
AHcAIgA7AAorAAogAC8AKgAgAEgAVABUAFAAIAByAGUAcwB1AGwAdAAgAGMAbwBkAGUAIABzAHQA
cgBpAG4AZwAgACoALwAKIAAiAHIAZQBkAGkAcgBlAGMAdABlAGQAIgAgAD0AIAAiAHIAZQBkAGkA
cgBlAGMAdABlAGQAIgA7AAogAApAQCAtNzI0LDYgKzcyNyw5IEBACiAALwAqACAAYQBjAGMAZQBz
AHMAaQBiAGkAbABpAHQAeQAgAHIAbwBsAGUAIABkAGUAcwBjAHIAaQBwAHQAaQBvAG4AIABmAG8A
cgAgAG0AbwB2AGkAZQAgAHMAdABhAHQAdQBzACAAKgAvAAogACIAcwB0AGEAdAB1AHMAIgAgAD0A
IAAiAHMAdABhAHQAdQBzACIAOwAKIAAKKwAvACoAIABWAGEAbABpAGQAYQB0AGkAbwBuACAAbQBl
AHMAcwBhAGcAZQAgAGYAbwByACAAaQBuAHAAdQB0ACAAZgBvAHIAbQAgAGMAbwBuAHQAcgBvAGwA
cwAgAHcAaQB0AGgAIAB2AGEAbAB1AGUAIABuAG8AdAAgAHIAZQBzAHAAZQBjAHQAaQBuAGcAIAB0
AGgAZQAgAHMAdABlAHAAIABhAHQAdAByAGkAYgB1AHQAZQAgACoALwAKKwAiAHMAdABlAHAAIABt
AGkAcwBtAGEAdABjAGgAIgAgAD0AIAAiAHMAdABlAHAAIABtAGkAcwBtAGEAdABjAGgAIgA7AAor
AAogAC8AKgAgAEgAVABUAFAAIAByAGUAcwB1AGwAdAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAg
ACoALwAKIAAiAHMAdQBjAGMAZQBzAHMAIgAgAD0AIAAiAHMAdQBjAGMAZQBzAHMAIgA7AAogAApA
QCAtNzQyLDkgKzc0OCwxNSBAQAogAC8AKgAgAEEAbgAgAEEAUgBJAEEAIABhAGMAYwBlAHMAcwBp
AGIAaQBsAGkAdAB5ACAAZwByAG8AdQBwACAAdABoAGEAdAAgAGEAYwB0AHMAIABhAHMAIABhAG4A
IAB1AHAAZABhAHQAaQBuAGcAIAB0AGkAbQBlAHIALgAgACoALwAKIAAiAHQAaQBtAGUAcgAiACAA
PQAgACIAdABpAG0AZQByACIAOwAKIAAKKwAvACoAIABWAGEAbABpAGQAYQB0AGkAbwBuACAAbQBl
AHMAcwBhAGcAZQAgAGYAbwByACAAZgBvAHIAbQAgAGMAbwBuAHQAcgBvAGwAIABlAGwAZQBtAGUA
bgB0AHMAIAB3AGkAdABoACAAYQAgAHYAYQBsAHUAZQAgAGwAbwBuAGcAZQByACAAdABoAGEAbgAg
AG0AYQB4AGkAbQB1AG0AIABhAGwAbABvAHcAZQBkACAAbABlAG4AZwB0AGgAIAAqAC8ACisAIgB0
AG8AbwAgAGwAbwBuAGcAIgAgAD0AIAAiAHQAbwBvACAAbABvAG4AZwAiADsACisACiAALwAqACAA
QQBuACAAQQBSAEkAQQAgAGEAYwBjAGUAcwBzAGkAYgBpAGwAaQB0AHkAIABnAHIAbwB1AHAAIAB0
AGgAYQB0ACAAYQBjAHQAcwAgAGEAcwAgAGEAIAB0AG8AbwBsAHQAaQBwAC4AIAAqAC8ACiAAIgB0
AG8AbwBsAHQAaQBwACIAIAA9ACAAIgB0AG8AbwBsAHQAaQBwACIAOwAKIAAKKwAvACoAIABWAGEA
bABpAGQAYQB0AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAAaQBuAHAAdQB0ACAAZgBv
AHIAbQAgAGMAbwBuAHQAcgBvAGwAcwAgAHcAaQB0AGgAIABhACAAdgBhAGwAdQBlACAAbgBvAHQA
IABtAGEAdABjAGgAaQBuAGcAIAB0AHkAcABlACAAKgAvAAorACIAdAB5AHAAZQAgAG0AaQBzAG0A
YQB0AGMAaAAiACAAPQAgACIAdAB5AHAAZQAgAG0AaQBzAG0AYQB0AGMAaAAiADsACisACiAALwAq
ACAASABUAFQAUAAgAHIAZQBzAHUAbAB0ACAAYwBvAGQAZQAgAHMAdAByAGkAbgBnACAAKgAvAAog
ACIAdQBuAGEAYwBjAGUAcAB0AGEAYgBsAGUAIgAgAD0AIAAiAHUAbgBhAGMAYwBlAHAAdABhAGIA
bABlACIAOwAKIAAKQEAgLTc3Miw2ICs3ODQsOSBAQAogAC8AKgAgAEgAVABUAFAAIAByAGUAcwB1
AGwAdAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAHUAbgBzAHUAcABwAG8AcgB0
AGUAZAAgAHYAZQByAHMAaQBvAG4AIgAgAD0AIAAiAHUAbgBzAHUAcABwAG8AcgB0AGUAZAAgAHYA
ZQByAHMAaQBvAG4AIgA7AAogAAorAC8AKgAgAFYAYQBsAGkAZABhAHQAaQBvAG4AIABtAGUAcwBz
AGEAZwBlACAAZgBvAHIAIAByAGUAcQB1AGkAcgBlAGQAIABmAG8AcgBtACAAYwBvAG4AdAByAG8A
bAAgAGUAbABlAG0AZQBuAHQAcwAgAHQAaABhAHQAIABoAGEAdgBlACAAbgBvACAAdgBhAGwAdQBl
ACAAKgAvAAorACIAdgBhAGwAdQBlACAAbQBpAHMAcwBpAG4AZwAiACAAPQAgACIAdgBhAGwAdQBl
ACAAbQBpAHMAcwBpAG4AZwAiADsACisACiAALwAqACAAYQBjAGMAZQBzAHMAaQBiAGkAbABpAHQA
eQAgAHIAbwBsAGUAIABkAGUAcwBjAHIAaQBwAHQAaQBvAG4AIABmAG8AcgAgAHYAaQBkAGUAbwAg
AGUAbABlAG0AZQBuAHQAIABjAG8AbgB0AHIAbwBsAGwAZQByACAAKgAvAAogACIAdgBpAGQAZQBv
ACAAZQBsAGUAbQBlAG4AdAAgAGMAbwBuAHQAcgBvAGwAbABlAHIAIgAgAD0AIAAiAHYAaQBkAGUA
bwAgAGUAbABlAG0AZQBuAHQAIABjAG8AbgB0AHIAbwBsAGwAZQByACIAOwAKIAAKSW5kZXg6IFdl
YktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA0OTg5MCkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMDktMTAtMjAgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNk
ZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChPT1BTISkKKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlZpZXdGYWN0b3J5Lm1tOgorICAgICAgICAoLVtX
ZWJWaWV3RmFjdG9yeSBpbWFnZVRpdGxlRm9yRmlsZW5hbWU6d2lkdGg6aGVpZ2h0Ol0pOgorICAg
ICAgICAoLVtXZWJWaWV3RmFjdG9yeSBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0XSk6Cisg
ICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IG1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRl
eHRdKToKKyAgICAgICAgKC1bV2ViVmlld0ZhY3RvcnkgbG9jYWxpemVkTWVkaWFDb250cm9sRWxl
bWVudFN0cmluZzpdKToKKyAgICAgICAgKC1bV2ViVmlld0ZhY3RvcnkgbG9jYWxpemVkTWVkaWFD
b250cm9sRWxlbWVudEhlbHBUZXh0Ol0pOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSBsb2Nh
bGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbjpdKToKKyAgICAgICAgKC1bV2ViVmlld0ZhY3Rvcnkg
dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0XSk6CisgICAgICAgICgtW1dlYlZpZXdG
YWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dF0pOgorICAgICAgICAoLVtX
ZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHRdKToKKyAg
ICAgICAgKC1bV2ViVmlld0ZhY3RvcnkgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dF0pOgor
ICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93
VGV4dF0pOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
T3ZlcmZsb3dUZXh0XSk6CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNz
YWdlU3RlcE1pc21hdGNoVGV4dF0pOgorCiAyMDA5LTEwLTIwICBEYW4gQmVybnN0ZWluICA8bWl0
ekBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgTWFyayBSb3dlLgpJbmRl
eDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3RmFjdG9yeS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZpZXdGYWN0b3J5Lm1tCShyZXZpc2lv
biA0OTg5MCkKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3RvcnkubW0J
KHdvcmtpbmcgY29weSkKQEAgLTYzMCwyMiArNjMwLDIyIEBACiAgICAgcmV0dXJuIFVJX1NUUklO
RygiVW5rbm93biIsICJVbmtub3duIGZpbGVzaXplIEZUUCBkaXJlY3RvcnkgbGlzdGluZyBpdGVt
Iik7CiB9CiAKLS0gKE5TU3RyaW5nKilpbWFnZVRpdGxlRm9yRmlsZW5hbWU6KE5TU3RyaW5nKilm
aWxlbmFtZSB3aWR0aDooaW50KXdpZHRoIGhlaWdodDooaW50KWhlaWdodAorLSAoTlNTdHJpbmcg
KilpbWFnZVRpdGxlRm9yRmlsZW5hbWU6KE5TU3RyaW5nKilmaWxlbmFtZSB3aWR0aDooaW50KXdp
ZHRoIGhlaWdodDooaW50KWhlaWdodAogewogICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpVSV9TVFJJTkcoIiVAICVkw5clZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZvciBh
IHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCkiKSwg
ZmlsZW5hbWUsIHdpZHRoLCBoZWlnaHRdOwogfQogCi0tIChOU1N0cmluZyopbWVkaWFFbGVtZW50
TG9hZGluZ1N0YXRlVGV4dAorLSAoTlNTdHJpbmcgKiltZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVU
ZXh0CiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiTG9hZGluZy4uLiIsICJNZWRpYSBjb250cm9s
bGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4gdGhlIG1lZGlhIGlzIGxvYWRpbmciKTsKIH0KIAotLSAo
TlNTdHJpbmcqKW1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQKKy0gKE5TU3RyaW5n
ICopbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dAogewogICAgIHJldHVybiBVSV9T
VFJJTkcoIkxpdmUgQnJvYWRjYXN0IiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ug
d2hlbiB3YXRjaGluZyBhIGxpdmUgYnJvYWRjYXN0Iik7CiB9CiAKLS0gKE5TU3RyaW5nKilsb2Nh
bGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nOihOU1N0cmluZyopbmFtZQorLSAoTlNTdHJp
bmcgKilsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nOihOU1N0cmluZyopbmFtZQog
ewogICAgIGlmIChbbmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJBdWRpb0VsZW1lbnQiXSkKICAgICAg
ICAgcmV0dXJuIFVJX1NUUklORygiYXVkaW8gZWxlbWVudCBjb250cm9sbGVyIiwgImFjY2Vzc2li
aWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxlbWVudCBjb250cm9sbGVyIik7CkBA
IC02ODgsNyArNjg4LDcgQEAKICAgICByZXR1cm4gQCIiOwogfQogCi0tIChOU1N0cmluZyopbG9j
YWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0OihOU1N0cmluZyopbmFtZQorLSAoTlNT
dHJpbmcgKilsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQ6KE5TU3RyaW5nKilu
YW1lCiB7CiAgICAgaWYgKFtuYW1lIGlzRXF1YWxUb1N0cmluZzpAIkF1ZGlvRWxlbWVudCJdKQog
ICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xz
IGFuZCBzdGF0dXMgZGlzcGxheSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9y
IGF1ZGlvIGVsZW1lbnQgY29udHJvbGxlciIpOwpAQCAtNzI3LDcgKzcyNyw3IEBACiAgICAgcmV0
dXJuIEAiIjsKIH0KIAotLSAoTlNTdHJpbmcqKWxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9u
OihmbG9hdCl0aW1lCistIChOU1N0cmluZyAqKWxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9u
OihmbG9hdCl0aW1lCiB7CiAgICAgaWYgKCFpc2Zpbml0ZSh0aW1lKSkKICAgICAgICAgcmV0dXJu
IFVJX1NUUklORygiaW5kZWZpbml0ZSB0aW1lIiwgInN0cmluZyBmb3IgYW4gaW5kZWZpbml0ZSBt
b3ZpZSB0aW1lIik7CkBAIC03NDgsNCArNzQ4LDM5IEBACiAgICAgcmV0dXJuIFtOU1N0cmluZyBz
dHJpbmdXaXRoRm9ybWF0OlVJX1NUUklORygiZGF0ZS5mb3JtYXQuZm9yLnNlY29uZHMiLCAic3Ry
aW5nIGZvciBzZWNvbmRzIiksIHNlY29uZHNdOwogfQogCistIChOU1N0cmluZyAqKXZhbGlkYXRp
b25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dAoreworICAgIHJldHVybiBVSV9TVFJJTkcoInZhbHVl
IG1pc3NpbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciByZXF1aXJlZCBmb3JtIGNvbnRyb2wg
ZWxlbWVudHMgdGhhdCBoYXZlIG5vIHZhbHVlIik7Cit9CisKKy0gKE5TU3RyaW5nICopdmFsaWRh
dGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0Cit7CisgICAgcmV0dXJuIFVJX1NUUklORygidHlw
ZSBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMg
d2l0aCBhIHZhbHVlIG5vdCBtYXRjaGluZyB0eXBlIik7Cit9CisKKy0gKE5TU3RyaW5nICopdmFs
aWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0Cit7CisgICAgcmV0dXJuIFVJX1NUUklO
RygicGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0g
Y29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNjb3JkaW5nIHRvIHBhdHRl
cm4iKTsKK30KKworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0Cit7
CisgICAgcmV0dXJuIFVJX1NUUklORygidG9vIGxvbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZv
ciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgd2l0aCBhIHZhbHVlIGxvbmdlciB0aGFuIG1heGltdW0g
YWxsb3dlZCBsZW5ndGgiKTsKK30KKworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlVW5kZXJmbG93VGV4dAoreworICAgIHJldHVybiBVSV9TVFJJTkcoInJhbmdlIHVuZGVyZmxv
dyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1
ZSBsb3dlciB0aGFuIGFsbG93ZWQgbWluaW11bSIpOworfQorCistIChOU1N0cmluZyAqKXZhbGlk
YXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJy
YW5nZSBvdmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJv
bHMgd2l0aCB2YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKK30KKworLSAoTlNT
dHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQKK3sKKyAgICByZXR1cm4g
VUlfU1RSSU5HKCJzdGVwIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQg
Zm9ybSBjb250cm9scyB3aXRoIHZhbHVlIG5vdCByZXNwZWN0aW5nIHRoZSBzdGVwIGF0dHJpYnV0
ZSIpOworfQorCiBAZW5kCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0OTg5MCkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDA5LTEwLTIwICBN
aWNoZWxhbmdlbG8gRGUgU2ltb25lICA8bWljZGVzaW1AZ21haWwuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNzk1OQorICAgICAgICBUZXN0IGZvciB0aGUgInZhbGlkYXRp
b25NZXNzYWdlIiBET00gYXR0cmlidXRlIGZyb20gSFRNTDUgc3BlY3MKKyAgICAgICAgaHR0cDov
L3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jZG9tLWN2YS12YWxp
ZGF0aW9ubWVzc2FnZQorCisgICAgICAgICogZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4
cGVjdGVkLnR4dDogY29ycmVjdGVkCisgICAgICAgICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL2Rv
bUxpc3RFbnVtZXJhdGlvbi5qczogY29ycmVjdGVkCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNv
dXJjZXMvdmFsaWRhdGlvbk1lc3NhZ2UuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
dmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0bWwtZGlzYWJsZWQ6IEFkZGVkIGJ1dCBjdXJyZW50bHkK
KyAgICAgICAgZGlzYWJsZWQ6IGNvcnJlY3Qgc3RyaW5ncyBmb3IgdmFsaWRhdGlvbk1lc3NhZ2Ug
YXJlIGF2YWlsYWJsZSBvbmx5CisgICAgICAgIG9uIHRoZSBNYWMgcG9ydC4KKwogMjAwOS0xMC0y
MCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgQW5vdGhlciBiYXRj
aCBvZiBza2lwcGVkIHRlc3RzIHdpdGggbGlua3MgdG8gdGhlaXIgYnVncy4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNDk4OTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb21MaXN0RW51bWVy
YXRpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIFBBU1Mg
cmVzdWx0QXJyYXlbMl0uaSBpcyAnMicKIFBBU1MgcmVzdWx0QXJyYXlbMl0uaXRlbSBpcyBkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMl0KIAogW29iamVjdCBIVE1MU2Vs
ZWN0RWxlbWVudF0KLVBBU1MgcmVzdWx0QXJyYXkubGVuZ3RoIGlzIDE0MAorUEFTUyByZXN1bHRB
cnJheS5sZW5ndGggaXMgMTQxCiBQQVNTIHJlc3VsdEFycmF5WzBdLmkgaXMgJzAnCiBQQVNTIHJl
c3VsdEFycmF5WzBdLml0ZW0gaXMgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ29wdGlv
bicpWzBdCiBQQVNTIHJlc3VsdEFycmF5WzFdLmkgaXMgJzEnCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9zY3JpcHQtdGVzdHMvZG9tTGlzdEVudW1lcmF0aW9uLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9kb21MaXN0RW51bWVyYXRpb24uanMJ
KHJldmlzaW9uIDQ5ODkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL2Rv
bUxpc3RFbnVtZXJhdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMTQxLDcgKzE0MSw3IEBAIHNo
b3VsZEJlKCJyZXN1bHRBcnJheVsyXS5pdGVtIiwgImRvY3VtZW4KIC8vIEhUTUxTZWxlY3RFbGVt
ZW50CiB2YXIgaHRtbFNlbGVjdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFt
ZSgnc2VsZWN0JylbMF07CiByZXN1bHRBcnJheSA9IGl0ZXJhdGVMaXN0KGh0bWxTZWxlY3RFbGVt
ZW50KTsKLXNob3VsZEJlKCJyZXN1bHRBcnJheS5sZW5ndGgiLCAiMTQwIik7CitzaG91bGRCZSgi
cmVzdWx0QXJyYXkubGVuZ3RoIiwgIjE0MSIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzBdLmki
LCAiJzAnIik7CiBzaG91bGRCZSgicmVzdWx0QXJyYXlbMF0uaXRlbSIsICJkb2N1bWVudC5nZXRF
bGVtZW50c0J5VGFnTmFtZSgnb3B0aW9uJylbMF0iKTsKIHNob3VsZEJlKCJyZXN1bHRBcnJheVsx
XS5pIiwgIicxJyIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVz
c2FnZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92
YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxOSBAQAorVGVzdCBmb3IgdmFsaWRhdGlvbk1lc3NhZ2UgRE9NIHByb3BlcnR5
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBwYXR0ZXJuSW5wdXQudmFs
aWRhdGlvbk1lc3NhZ2UgaXMgJ3BhdHRlcm4gbWlzbWF0Y2gnCitQQVNTIHJlcXVpcmVkSW5wdXQu
dmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCitQQVNTIHJlcXVpcmVkVGV4dEFy
ZWEudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCitQQVNTIGVtYWlsSW5wdXQu
dmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3R5cGUgbWlzbWF0Y2gnCitQQVNTIHVuZGVySW5wdXQudmFs
aWRhdGlvbk1lc3NhZ2UgaXMgJ3JhbmdlIHVuZGVyZmxvdycKK1BBU1Mgb3ZlcklucHV0LnZhbGlk
YXRpb25NZXNzYWdlIGlzICdyYW5nZSBvdmVyZmxvdycKK1BBU1MgYnV0dC52YWxpZGF0aW9uTWVz
c2FnZSBpcyAnJworUEFTUyBhbm9uaW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJycKK1BBU1Mg
aGFwcHlGaWVsZHNldC52YWxpZGF0aW9uTWVzc2FnZSBpcyAnJworUEFTUyBoYXBweVNlbGVjdC52
YWxpZGF0aW9uTWVzc2FnZSBpcyAnJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFsaWRhdGlv
bk1lc3NhZ2UuaHRtbC1kaXNhYmxlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0bWwtZGlzYWJsZWQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0bWwtZGlzYWJsZWQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3ZhbGlkYXRpb25NZXNzYWdlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9yZXNvdXJjZXMvdmFsaWRhdGlvbk1lc3NhZ2UuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvdmFsaWRhdGlvbk1lc3NhZ2UuanMJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy92YWxpZGF0aW9uTWVz
c2FnZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NiBAQAorZGVzY3JpcHRpb24oIlRlc3Qg
Zm9yIHZhbGlkYXRpb25NZXNzYWdlIERPTSBwcm9wZXJ0eS4iKTsKKwordmFyIGZvcm0gPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIik7CisKKy8vIEFuIGlucHV0IGVsZW1lbnQgd2l0aCBh
IHBhdHRlcm4gc2V0IGFuZCBhIG1pc21hdGNoZWQgdmFsdWUKK3ZhciBwYXR0ZXJuSW5wdXQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworcGF0dGVybklucHV0Lm5hbWUgPSAicGF0
dGVybklucHV0IjsKK3BhdHRlcm5JbnB1dC5wYXR0ZXJuID0gImxvcmVtIGlwc3VtIjsKK3BhdHRl
cm5JbnB1dC52YWx1ZSA9ICJsb3JlbSI7Citmb3JtLmFwcGVuZENoaWxkKHBhdHRlcm5JbnB1dCk7
CitzaG91bGRCZSgicGF0dGVybklucHV0LnZhbGlkYXRpb25NZXNzYWdlIiwgIidwYXR0ZXJuIG1p
c21hdGNoJyIpOworCisvLyBBIHJlcXVpcmVkIGlucHV0IHdpdGggYW4gZW1wdHkgdmFsdWUKK3Zh
ciByZXF1aXJlZElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKK3JlcXVp
cmVkSW5wdXQubmFtZSA9ICJyZXF1aXJlZElucHV0IjsKK3JlcXVpcmVkSW5wdXQucmVxdWlyZWQg
PSB0cnVlOworZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZElucHV0KTsKK3Nob3VsZEJlKCJyZXF1
aXJlZElucHV0LnZhbGlkYXRpb25NZXNzYWdlIiwgIid2YWx1ZSBtaXNzaW5nJyIpOworCisvLyBB
IHJlcXVpcmVkIHRleHRhcmVhIHdpdGggYW4gZW1wdHkgdmFsdWUKK3ZhciByZXF1aXJlZFRleHRB
cmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTsKK3JlcXVpcmVkVGV4dEFy
ZWEubmFtZSA9ICJyZXF1aXJlZFRleHRBcmVhIjsKK3JlcXVpcmVkVGV4dEFyZWEucmVxdWlyZWQg
PSB0cnVlOworZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFRleHRBcmVhKTsKK3Nob3VsZEJlKCJy
ZXF1aXJlZFRleHRBcmVhLnZhbGlkYXRpb25NZXNzYWdlIiwgIid2YWx1ZSBtaXNzaW5nJyIpOwor
CisvLyBBIHR5cGU9ZW1haWwgaW5wdXQgZm9yIHRoZSAidHlwZSBtaXNtYXRjaCIgZmxhZwordmFy
IGVtYWlsSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworZW1haWxJbnB1
dC5uYW1lID0gImVtYWlsSW5wdXQiOworZW1haWxJbnB1dC50eXBlID0gImVtYWlsIjsKK2VtYWls
SW5wdXQudmFsdWUgPSAiaW5jb3JyZWN0VmFsdWUiOworZm9ybS5hcHBlbmRDaGlsZChlbWFpbElu
cHV0KTsKK3Nob3VsZEJlKCJlbWFpbElucHV0LnZhbGlkYXRpb25NZXNzYWdlIiwgIid0eXBlIG1p
c21hdGNoJyIpOworCisvLyBBICJyYW5nZWQiIGlucHV0IGZvciAicmFuZ2UgdW5kZXJmbG93IiBm
bGFnCit2YXIgdW5kZXJJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7Cit1
bmRlcklucHV0Lm5hbWUgPSAidW5kZXJJbnB1dCI7Cit1bmRlcklucHV0LnR5cGUgPSAicmFuZ2Ui
OwordW5kZXJJbnB1dC5taW4gPSAiMiI7Cit1bmRlcklucHV0LnZhbHVlID0gIjEiOworZm9ybS5h
cHBlbmRDaGlsZCh1bmRlcklucHV0KTsKK3Nob3VsZEJlKCJ1bmRlcklucHV0LnZhbGlkYXRpb25N
ZXNzYWdlIiwgIidyYW5nZSB1bmRlcmZsb3cnIik7CisKKy8vIEEgInJhbmdlZCIgaW5wdXQgZm9y
ICJyYW5nZSBvdmVyZmxvdyIgZmxhZwordmFyIG92ZXJJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlucHV0Iik7CitvdmVySW5wdXQubmFtZSA9ICJvdmVySW5wdXQiOworb3ZlcklucHV0
LnR5cGUgPSAicmFuZ2UiOworb3ZlcklucHV0Lm1heCA9ICIyIjsKK292ZXJJbnB1dC52YWx1ZSA9
ICIzIjsKK2Zvcm0uYXBwZW5kQ2hpbGQob3ZlcklucHV0KTsKK3Nob3VsZEJlKCJvdmVySW5wdXQu
dmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3JhbmdlIG92ZXJmbG93JyIpOworCisvLyBBIGJ1dHRvbiBj
YW4ndCBiZSB2YWxpdGVkIGFuZCwgdGh1cywgaGFzIGEgYmxhbmsgdmFsaWRhdGlvbk1lc3NhZ2UK
K3ZhciBidXR0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7CitidXR0Lm5hbWUg
PSAiYnV0dG9uIjsKK2Zvcm0uYXBwZW5kQ2hpbGQoYnV0dCk7CitzaG91bGRCZSgiYnV0dC52YWxp
ZGF0aW9uTWVzc2FnZSIsICInJyIpOworCisvLyBBbiBpbnB1dCBjb250cm9sIHdpdGggbm8gbmFt
ZSwgc28gaXQgY2FuJ3QgYmUgdmFsaWRhdGVkICh3aWxsVmFsaWRhdGUgPSBmYWxzZSkKK3ZhciBh
bm9uaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworZm9ybS5hcHBlbmRD
aGlsZChhbm9uaW5wdXQpOworc2hvdWxkQmUoImFub25pbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIs
ICInJyIpCisKKy8vIEZpZWxkc2V0cyBjYW4ndCBiZSB2YWxpZGF0ZWQKK3ZhciBoYXBweUZpZWxk
c2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKTsKK2hhcHB5RmllbGRzZXQu
bmFtZSA9ICJmaWVsZHNldCI7Citmb3JtLmFwcGVuZENoaWxkKGhhcHB5RmllbGRzZXQpOworc2hv
dWxkQmUoImhhcHB5RmllbGRzZXQudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJyciKTsKKworLy8gU2Vs
ZWN0IGNvbnRyb2xzIGNhbid0IGJlIHZhbGlkYXRlZCB0b28KK3ZhciBoYXBweVNlbGVjdCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOworaGFwcHlTZWxlY3QubmFtZSA9ICJzZWxl
Y3QiOworZm9ybS5hcHBlbmRDaGlsZChoYXBweVNlbGVjdCk7CitzaG91bGRCZSgiaGFwcHlTZWxl
Y3QudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJyciKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41527</attachid>
            <date>2009-10-20 15:37:24 -0700</date>
            <delta_ts>2009-10-20 15:48:24 -0700</delta_ts>
            <desc>Patch v2a</desc>
            <filename>bug-27959-20091021003721.patch</filename>
            <type>text/plain</type>
            <size>28746</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTg5MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMTAtMjAgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNk
ZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3OTU5Cisg
ICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yICJ2YWxpZGF0aW9uTWVzc2FnZSIgRE9NIGF0dHJpYnV0
ZSwgcGx1cyBiYXNpYworICAgICAgICBsb2NhbGl6YXRpb24gc3R1ZmYgb24gdGhlIE1hYyBwb3J0
LgorICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13
b3JrLyNkb20tY3ZhLXZhbGlkYXRpb25tZXNzYWdlCisKKyAgICAgICAgKiBodG1sL0hUTUxCdXR0
b25FbGVtZW50LmlkbDogdmFsaWRhdGlvbk1lc3NhZ2UgRE9NIGF0dHJpYnV0ZQorICAgICAgICAq
IGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGw6IGRpdHRvCisgICAgICAgICogaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDogImNvcmUiIG1ldGhvZDspCisgICAgICAgICogaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50Lmg6IC4uLndpdGggaXRzIGRlZmluaXRpb24KKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOiB2YWxpZGF0aW9uTWVzc2FnZSBET00gYXR0cmli
dXRlCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGw6IGRpdHRvCisgICAgICAg
ICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbDogZGl0dG8KKyAgICAgICAgKiBodG1sL1Zh
bGlkaXR5U3RhdGUuY3BwOiByZXR1cm5zIGNvcnJlY3QgdmFsaWRhdGlvbk1lc3NhZ2UgZm9yIHRo
ZSBlbGVtZW50CisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmg6IGRpdHRvIChkZWZpbml0
aW9uKQorICAgICAgICAqIHBhZ2UvbWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oOiBsb2NhbGl6ZWQg
ZnVuY3Rpb25zCisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOiBsb2NhbGl6
ZWQgc3RyaW5ncworICAgICAgICAqIHBsYXRmb3JtL21hYy9Mb2NhbGl6ZWRTdHJpbmdzTWFjLm1t
OiBsb2NhbGl6ZWQgZnVuY3Rpb25zCisKIDIwMDktMTAtMjAgIEplbnMgQWxma2UgIDxzbmVqQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAkocmV2aXNpb24gNDk4OTApCisrKyBXZWJDb3JlL2h0
bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBA
IG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBET01TdHJpbmcgICAg
ICAgICAgICB0eXBlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICAgICAgIHZhbGlkYXRpb25NZXNzYWdl
OwogICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgICAgIHZvaWQgc2V0Q3Vz
dG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0
cmluZyBlcnJvcik7CiAgICAgICAgIHZvaWQgY2xpY2soKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MRmllbGRTZXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZp
ZWxkU2V0RWxlbWVudC5pZGwJKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9odG1sL0hUTUxG
aWVsZFNldEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxp
ZGl0eTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAg
IHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAg
ICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0eSgpOwog
ICAgICAgICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9y
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICB9OwpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAkocmV2aXNpb24gNDk4OTApCisrKyBXZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
OCw2ICsyODgsMTEgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxsVmFsaWRhdAog
ICAgIHJldHVybiBmb3JtKCkgJiYgIW5hbWUoKS5pc0VtcHR5KCkgJiYgIWRpc2FibGVkKCkgJiYg
IWlzUmVhZE9ubHlGb3JtQ29udHJvbCgpOwogfQogCitTdHJpbmcgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6dmFsaWRhdGlvbk1lc3NhZ2UoKQoreworICAgIHJldHVybiB2YWxpZGl0eSgpLT52YWxp
ZGF0aW9uTWVzc2FnZSgpOworfQorCiBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmNoZWNr
VmFsaWRpdHkoKQogewogICAgIGlmICh3aWxsVmFsaWRhdGUoKSAmJiAhaXNWYWxpZEZvcm1Db250
cm9sRWxlbWVudCgpKSB7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJ
KHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHNob3J0IHRhYkluZGV4KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZhbGlkYXRl
KCkgY29uc3Q7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlKCk7CiAgICAgYm9vbCBjaGVj
a1ZhbGlkaXR5KCk7CiAgICAgdm9pZCB1cGRhdGVWYWxpZGl0eSgpOwogICAgIHZvaWQgc2V0Q3Vz
dG9tVmFsaWRpdHkoY29uc3QgU3RyaW5nJik7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aWRsCShyZXZpc2lvbiA0OTg5MCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MT3B0aW9uRWxlbWVudCBzZWxlY3RlZE9wdGlvbjsKICNl
bmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxp
ZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB2YWxpZGF0
aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsK
ICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0
VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgICAgICB2
b2lkICAgICAgICAgICAgICAgc2VsZWN0KCk7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5pZGwJKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRlICAgdmFsaWRpdHk7CiAjZW5kaWYK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgdmFsaWRhdGlvbk1l
c3NhZ2U7CiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBjaGVja1ZhbGlkaXR5KCk7CiAgICAg
ICAgIHZvaWQgICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVm
aW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKIApJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAkocmV2aXNpb24gNDk4OTApCisrKyBXZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICB2b2lkICAgICBzZWxlY3QoKTsKIAogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKICAg
ICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0eSgpOwogICAgICAgICB2b2lkICAgICBzZXRDdXN0
b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIGVycm9yKTsKIApJbmRleDogV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAkocmV2aXNpb24gNDk4OTAp
CisrKyBXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3Mu
aCIKICNpbmNsdWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KIApAQCAtNDMsNiArNDQsMzMgQEAgVmFsaWRpdHlTdGF0ZTo6VmFsaWRpdHlTdGF0
ZShIVE1MRm9ybUNvbgogICAgIEFTU0VSVChwYXJlbnQpOwogfQogCitTdHJpbmcgVmFsaWRpdHlT
dGF0ZTo6dmFsaWRhdGlvbk1lc3NhZ2UoKQoreworICAgIGlmICghY29udHJvbCgpLT53aWxsVmFs
aWRhdGUoKSkKKyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbTsKKyAgICAKKyAgICBpZiAoY3VzdG9t
RXJyb3IoKSkKKyAgICAgICAgcmV0dXJuIG1fY3VzdG9tRXJyb3JNZXNzYWdlOworI2lmIFBMQVRG
T1JNKE1BQykKKyAgICBlbHNlIGlmICh2YWx1ZU1pc3NpbmcoKSkKKyAgICAgICAgcmV0dXJuIHZh
bGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOworICAgIGVsc2UgaWYgKHR5cGVNaXNt
YXRjaCgpKQorICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0
KCk7CisgICAgZWxzZSBpZiAocGF0dGVybk1pc21hdGNoKCkpCisgICAgICAgIHJldHVybiB2YWxp
ZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKKyAgICBlbHNlIGlmICh0b29Mb25n
KCkpCisgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7CisgICAg
ZWxzZSBpZiAocmFuZ2VVbmRlcmZsb3coKSkKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNz
YWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCk7CisgICAgZWxzZSBpZiAocmFuZ2VPdmVyZmxvdygpKQor
ICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpOworICAg
IGVsc2UgaWYgKHN0ZXBNaXNtYXRjaCgpKQorICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3Nh
Z2VTdGVwTWlzbWF0Y2hUZXh0KCk7CisjZW5kaWYKKworICAgIHJldHVybiBlbXB0eUF0b207Cit9
CisKIGJvb2wgVmFsaWRpdHlTdGF0ZTo6dHlwZU1pc21hdGNoKCkKIHsKICAgICBpZiAoIWNvbnRy
b2woKS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCkluZGV4OiBXZWJDb3JlL2h0bWwvVmFsaWRpdHlT
dGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgJKHJldmlz
aW9uIDQ5ODkwKQorKysgV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgSFRNTEZv
cm1Db250cm9sRWxlbWVudCogY29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udHJvbDsgfQog
CisgICAgICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZSgpOwogICAgICAgICB2b2lkIHNldEN1
c3RvbUVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgbV9jdXN0b21FcnJvck1l
c3NhZ2UgPSBtZXNzYWdlOyB9CiAKICAgICAgICAgYm9vbCB2YWx1ZU1pc3NpbmcoKSB7IHJldHVy
biBjb250cm9sKCktPnZhbHVlTWlzc2luZygpOyB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvbWFjL1dl
YkNvcmVWaWV3RmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9tYWMvV2ViQ29y
ZVZpZXdGYWN0b3J5LmgJKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9wYWdlL21hYy9XZWJD
b3JlVmlld0ZhY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDEwICsxNDYsMTcgQEAKIAog
LSAoTlNTdHJpbmcgKiltZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0OwogLSAoTlNTdHJpbmcg
KiltZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0OwotLSAoTlNTdHJpbmcqKWxvY2Fs
aXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmc6KE5TU3RyaW5nKiluYW1lOwotLSAoTlNTdHJp
bmcqKWxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dDooTlNTdHJpbmcqKW5hbWU7
Ci0tIChOU1N0cmluZyopbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb246KGZsb2F0KXRpbWU7
Ci0KKy0gKE5TU3RyaW5nICopbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZzooTlNT
dHJpbmcqKW5hbWU7CistIChOU1N0cmluZyAqKWxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRI
ZWxwVGV4dDooTlNTdHJpbmcqKW5hbWU7CistIChOU1N0cmluZyAqKWxvY2FsaXplZE1lZGlhVGlt
ZURlc2NyaXB0aW9uOihmbG9hdCl0aW1lOworCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNz
YWdlVmFsdWVNaXNzaW5nVGV4dDsKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hUZXh0OworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNt
YXRjaFRleHQ7CistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQ7Cist
IChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0OworLSAoTlNT
dHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0OworLSAoTlNTdHJpbmcg
Kil2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQ7CiAKIEBlbmQKIApJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw2ICsxNDEs
MTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRy
b2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgU3RyaW5nIGxvY2Fs
aXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0KTsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAg
ICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworICAgIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKKyAgICBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VUb29Mb25nVGV4dCgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5k
ZXJmbG93VGV4dCgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dU
ZXh0KCk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpOwor
I2VuZGlmCisKIH0KIAogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbGl6
ZWRTdHJpbmdzTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2Fs
aXplZFN0cmluZ3NNYWMubW0JKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvTG9jYWxpemVkU3RyaW5nc01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzQ3LDUgKzc0Nyw2
MCBAQCBTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvCiAgICAgcmV0dXJu
IFN0cmluZygpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0
KCkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2Vi
Q29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNz
aW5nVGV4dF07CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQor
eworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3Jl
Vmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hU
ZXh0XTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmco
KTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCit7
CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBbW1dlYkNvcmVW
aWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRj
aFRleHRdOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCit7CisgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBbW1dlYkNvcmVWaWV3RmFj
dG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0XTsKKyAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK3sKKyAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNo
YXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0XTsKKyAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQoreworICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hh
cmVkRmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dF07CisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQoreworICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVk
RmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0XTsKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KIAogfQpJbmRleDog
V2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lv
biA0OTg5MCkKKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAwOS0xMC0yMCAgTWljaGVsYW5nZWxvIERlIFNpbW9uZSAgPG1pY2Rlc2ltQGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc5NTkKKyAgICAgICAgQmFz
aWMgbG9jYWxpemFibGUgc3RyaW5ncyBmb3IgdGhlICJ2YWxpZGF0aW9uTWVzc2FnZSIgRE9NIGF0
dHJpYnV0ZQorICAgICAgICBmcm9tIEhUTUw1IHNwZWNzOgorICAgICAgICBodHRwOi8vd3d3Lndo
YXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tY3ZhLXZhbGlkYXRpb25t
ZXNzYWdlCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6IGFk
ZGVkIHNvbWUgYmFzaWMgbG9jYWxpemFibGUgc3RyaW5nCisKIDIwMDktMTAtMTkgIEpvaG4gR3Jl
Z2cgIDxqb2hubnlnQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBH
bGF6a292LgpJbmRleDogV2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCShy
ZXZpc2lvbiA0OTg5MCkKKysrIFdlYktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmlu
Z3MJKHdvcmtpbmcgY29weSkKQEAgLTUyMyw5ICs1MjMsNiBAQAogAC8AKgAgAGEAYwBjAGUAcwBz
AGkAYgBpAGwAaQB0AHkAIAByAG8AbABlACAAZABlAHMAYwByAGkAcAB0AGkAbwBuACAAZgBvAHIA
IABlAGwAYQBwAHMAZQBkACAAdABpAG0AZQAgAGQAaQBzAHAAbABhAHkAIAAqAC8ACiAAIgBlAGwA
YQBwAHMAZQBkACAAdABpAG0AZQAiACAAPQAgACIAZQBsAGEAcABzAGUAZAAgAHQAaQBtAGUAIgA7
AAogAAotAC8AKgAgAGEAYwBjAGUAcwBzAGkAYgBpAGwAaQB0AHkAIABoAGUAbABwACAAdABlAHgA
dAAgAGYAbwByACAAZgB1AGwAbABzAGMAcgBlAGUAbgAgAGIAdQB0AHQAbwBuACAAKgAvAAotACIA
ZQBuAHQAZQByACAAZgB1AGwAbAAgAHMAYwByAGUAZQBuACIAIAA9ACAAIgBlAG4AdABlAHIAIABm
AHUAbABsACAAcwBjAHIAZQBlAG4AIgA7AAotAAogAC8AKgAgAEgAVABUAFAAIAByAGUAcwB1AGwA
dAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAGUAeABwAGUAYwB0AGEAdABpAG8A
bgAgAGYAYQBpAGwAZQBkACIAIAA9ACAAIgBlAHgAcABlAGMAdABhAHQAaQBvAG4AIABmAGEAaQBs
AGUAZAAiADsACiAACkBAIC01NDEsOSArNTM4LDYgQEAKIAAvACoAIABIAFQAVABQACAAcgBlAHMA
dQBsAHQAIABjAG8AZABlACAAcwB0AHIAaQBuAGcAIAAqAC8ACiAAIgBmAG8AdQBuAGQAIgAgAD0A
IAAiAGYAbwB1AG4AZAAiADsACiAACi0ALwAqACAAYQBjAGMAZQBzAHMAaQBiAGkAbABpAHQAeQAg
AHIAbwBsAGUAIABkAGUAcwBjAHIAaQBwAHQAaQBvAG4AIABmAG8AcgAgAGYAdQBsAGwAcwBjAHIA
ZQBlAG4AIABiAHUAdAB0AG8AbgAgACoALwAKLQAiAGYAdQBsAGwAIABzAGMAcgBlAGUAbgAiACAA
PQAgACIAZgB1AGwAbAAgAHMAYwByAGUAZQBuACIAOwAKLQAKIAAvACoAIABhAGMAYwBlAHMAcwBp
AGIAaQBsAGkAdAB5ACAAcgBvAGwAZQAgAGQAZQBzAGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAA
ZQBuAHQAZQByACAAZgB1AGwAbABzAGMAcgBlAGUAbgAgAGIAdQB0AHQAbwBuACAAKgAvAAogACIA
ZgB1AGwAbABzAGMAcgBlAGUAbgAiACAAPQAgACIAZgB1AGwAbABzAGMAcgBlAGUAbgAiADsACiAA
CkBAIC02NDYsNiArNjQwLDkgQEAKIAAvACoAIABIAFQAVABQACAAcgBlAHMAdQBsAHQAIABjAG8A
ZABlACAAcwB0AHIAaQBuAGcAIAAqAC8ACiAAIgBwAGEAcgB0AGkAYQBsACAAYwBvAG4AdABlAG4A
dAAiACAAPQAgACIAcABhAHIAdABpAGEAbAAgAGMAbwBuAHQAZQBuAHQAIgA7AAogAAorAC8AKgAg
AFYAYQBsAGkAZABhAHQAaQBvAG4AIABtAGUAcwBzAGEAZwBlACAAZgBvAHIAIABpAG4AcAB1AHQA
IABmAG8AcgBtACAAYwBvAG4AdAByAG8AbABzACAAcgBlAHEAdQBpAHIAaQBuAGcAIABhACAAYwBv
AG4AcwB0AHIAYQBpAG4AZQBkACAAdgBhAGwAdQBlACAAYQBjAGMAbwByAGQAaQBuAGcAIAB0AG8A
IABwAGEAdAB0AGUAcgBuACAAKgAvAAorACIAcABhAHQAdABlAHIAbgAgAG0AaQBzAG0AYQB0AGMA
aAAiACAAPQAgACIAcABhAHQAdABlAHIAbgAgAG0AaQBzAG0AYQB0AGMAaAAiADsACisACiAALwAq
ACAAYQBjAGMAZQBzAHMAaQBiAGkAbABpAHQAeQAgAHIAbwBsAGUAIABkAGUAcwBjAHIAaQBwAHQA
aQBvAG4AIABmAG8AcgAgAHAAYQB1AHMAZQAgAGIAdQB0AHQAbwBuACAAKgAvAAogACIAcABhAHUA
cwBlACIAIAA9ACAAIgBwAGEAdQBzAGUAIgA7AAogAApAQCAtNjY3LDYgKzY2NCwxMiBAQAogAC8A
KgAgAEgAVABUAFAAIAByAGUAcwB1AGwAdAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAK
IAAiAHAAcgBvAHgAeQAgAGEAdQB0AGgAZQBuAHQAaQBjAGEAdABpAG8AbgAgAHIAZQBxAHUAaQBy
AGUAZAAiACAAPQAgACIAcAByAG8AeAB5ACAAYQB1AHQAaABlAG4AdABpAGMAYQB0AGkAbwBuACAA
cgBlAHEAdQBpAHIAZQBkACIAOwAKIAAKKwAvACoAIABWAGEAbABpAGQAYQB0AGkAbwBuACAAbQBl
AHMAcwBhAGcAZQAgAGYAbwByACAAaQBuAHAAdQB0ACAAZgBvAHIAbQAgAGMAbwBuAHQAcgBvAGwA
cwAgAHcAaQB0AGgAIAB2AGEAbAB1AGUAIABoAGkAZwBoAGUAcgAgAHQAaABhAG4AIABhAGwAbABv
AHcAZQBkACAAbQBhAHgAaQBtAHUAbQAgACoALwAKKwAiAHIAYQBuAGcAZQAgAG8AdgBlAHIAZgBs
AG8AdwAiACAAPQAgACIAcgBhAG4AZwBlACAAbwB2AGUAcgBmAGwAbwB3ACIAOwAKKwAKKwAvACoA
IABWAGEAbABpAGQAYQB0AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAAaQBuAHAAdQB0
ACAAZgBvAHIAbQAgAGMAbwBuAHQAcgBvAGwAcwAgAHcAaQB0AGgAIAB2AGEAbAB1AGUAIABsAG8A
dwBlAHIAIAB0AGgAYQBuACAAYQBsAGwAbwB3AGUAZAAgAG0AaQBuAGkAbQB1AG0AIAAqAC8ACisA
IgByAGEAbgBnAGUAIAB1AG4AZABlAHIAZgBsAG8AdwAiACAAPQAgACIAcgBhAG4AZwBlACAAdQBu
AGQAZQByAGYAbABvAHcAIgA7AAorAAogAC8AKgAgAEgAVABUAFAAIAByAGUAcwB1AGwAdAAgAGMA
bwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAHIAZQBkAGkAcgBlAGMAdABlAGQAIgAgAD0A
IAAiAHIAZQBkAGkAcgBlAGMAdABlAGQAIgA7AAogAApAQCAtNzI0LDYgKzcyNyw5IEBACiAALwAq
ACAAYQBjAGMAZQBzAHMAaQBiAGkAbABpAHQAeQAgAHIAbwBsAGUAIABkAGUAcwBjAHIAaQBwAHQA
aQBvAG4AIABmAG8AcgAgAG0AbwB2AGkAZQAgAHMAdABhAHQAdQBzACAAKgAvAAogACIAcwB0AGEA
dAB1AHMAIgAgAD0AIAAiAHMAdABhAHQAdQBzACIAOwAKIAAKKwAvACoAIABWAGEAbABpAGQAYQB0
AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAAaQBuAHAAdQB0ACAAZgBvAHIAbQAgAGMA
bwBuAHQAcgBvAGwAcwAgAHcAaQB0AGgAIAB2AGEAbAB1AGUAIABuAG8AdAAgAHIAZQBzAHAAZQBj
AHQAaQBuAGcAIAB0AGgAZQAgAHMAdABlAHAAIABhAHQAdAByAGkAYgB1AHQAZQAgACoALwAKKwAi
AHMAdABlAHAAIABtAGkAcwBtAGEAdABjAGgAIgAgAD0AIAAiAHMAdABlAHAAIABtAGkAcwBtAGEA
dABjAGgAIgA7AAorAAogAC8AKgAgAEgAVABUAFAAIAByAGUAcwB1AGwAdAAgAGMAbwBkAGUAIABz
AHQAcgBpAG4AZwAgACoALwAKIAAiAHMAdQBjAGMAZQBzAHMAIgAgAD0AIAAiAHMAdQBjAGMAZQBz
AHMAIgA7AAogAApAQCAtNzQyLDkgKzc0OCwxNSBAQAogAC8AKgAgAEEAbgAgAEEAUgBJAEEAIABh
AGMAYwBlAHMAcwBpAGIAaQBsAGkAdAB5ACAAZwByAG8AdQBwACAAdABoAGEAdAAgAGEAYwB0AHMA
IABhAHMAIABhAG4AIAB1AHAAZABhAHQAaQBuAGcAIAB0AGkAbQBlAHIALgAgACoALwAKIAAiAHQA
aQBtAGUAcgAiACAAPQAgACIAdABpAG0AZQByACIAOwAKIAAKKwAvACoAIABWAGEAbABpAGQAYQB0
AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAAZgBvAHIAbQAgAGMAbwBuAHQAcgBvAGwA
IABlAGwAZQBtAGUAbgB0AHMAIAB3AGkAdABoACAAYQAgAHYAYQBsAHUAZQAgAGwAbwBuAGcAZQBy
ACAAdABoAGEAbgAgAG0AYQB4AGkAbQB1AG0AIABhAGwAbABvAHcAZQBkACAAbABlAG4AZwB0AGgA
IAAqAC8ACisAIgB0AG8AbwAgAGwAbwBuAGcAIgAgAD0AIAAiAHQAbwBvACAAbABvAG4AZwAiADsA
CisACiAALwAqACAAQQBuACAAQQBSAEkAQQAgAGEAYwBjAGUAcwBzAGkAYgBpAGwAaQB0AHkAIABn
AHIAbwB1AHAAIAB0AGgAYQB0ACAAYQBjAHQAcwAgAGEAcwAgAGEAIAB0AG8AbwBsAHQAaQBwAC4A
IAAqAC8ACiAAIgB0AG8AbwBsAHQAaQBwACIAIAA9ACAAIgB0AG8AbwBsAHQAaQBwACIAOwAKIAAK
KwAvACoAIABWAGEAbABpAGQAYQB0AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAAaQBu
AHAAdQB0ACAAZgBvAHIAbQAgAGMAbwBuAHQAcgBvAGwAcwAgAHcAaQB0AGgAIABhACAAdgBhAGwA
dQBlACAAbgBvAHQAIABtAGEAdABjAGgAaQBuAGcAIAB0AHkAcABlACAAKgAvAAorACIAdAB5AHAA
ZQAgAG0AaQBzAG0AYQB0AGMAaAAiACAAPQAgACIAdAB5AHAAZQAgAG0AaQBzAG0AYQB0AGMAaAAi
ADsACisACiAALwAqACAASABUAFQAUAAgAHIAZQBzAHUAbAB0ACAAYwBvAGQAZQAgAHMAdAByAGkA
bgBnACAAKgAvAAogACIAdQBuAGEAYwBjAGUAcAB0AGEAYgBsAGUAIgAgAD0AIAAiAHUAbgBhAGMA
YwBlAHAAdABhAGIAbABlACIAOwAKIAAKQEAgLTc3Miw2ICs3ODQsOSBAQAogAC8AKgAgAEgAVABU
AFAAIAByAGUAcwB1AGwAdAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAHUAbgBz
AHUAcABwAG8AcgB0AGUAZAAgAHYAZQByAHMAaQBvAG4AIgAgAD0AIAAiAHUAbgBzAHUAcABwAG8A
cgB0AGUAZAAgAHYAZQByAHMAaQBvAG4AIgA7AAogAAorAC8AKgAgAFYAYQBsAGkAZABhAHQAaQBv
AG4AIABtAGUAcwBzAGEAZwBlACAAZgBvAHIAIAByAGUAcQB1AGkAcgBlAGQAIABmAG8AcgBtACAA
YwBvAG4AdAByAG8AbAAgAGUAbABlAG0AZQBuAHQAcwAgAHQAaABhAHQAIABoAGEAdgBlACAAbgBv
ACAAdgBhAGwAdQBlACAAKgAvAAorACIAdgBhAGwAdQBlACAAbQBpAHMAcwBpAG4AZwAiACAAPQAg
ACIAdgBhAGwAdQBlACAAbQBpAHMAcwBpAG4AZwAiADsACisACiAALwAqACAAYQBjAGMAZQBzAHMA
aQBiAGkAbABpAHQAeQAgAHIAbwBsAGUAIABkAGUAcwBjAHIAaQBwAHQAaQBvAG4AIABmAG8AcgAg
AHYAaQBkAGUAbwAgAGUAbABlAG0AZQBuAHQAIABjAG8AbgB0AHIAbwBsAGwAZQByACAAKgAvAAog
ACIAdgBpAGQAZQBvACAAZQBsAGUAbQBlAG4AdAAgAGMAbwBuAHQAcgBvAGwAbABlAHIAIgAgAD0A
IAAiAHYAaQBkAGUAbwAgAGUAbABlAG0AZQBuAHQAIABjAG8AbgB0AHIAbwBsAGwAZQByACIAOwAK
IAAKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA0OTg5MCkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDktMTAtMjAgIE1pY2hlbGFuZ2VsbyBEZSBT
aW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJM
IChPT1BTISkKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlZpZXdGYWN0b3J5Lm1tOgor
ICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSBpbWFnZVRpdGxlRm9yRmlsZW5hbWU6d2lkdGg6aGVp
Z2h0Ol0pOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSBtZWRpYUVsZW1lbnRMb2FkaW5nU3Rh
dGVUZXh0XSk6CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IG1lZGlhRWxlbWVudExpdmVCcm9h
ZGNhc3RTdGF0ZVRleHRdKToKKyAgICAgICAgKC1bV2ViVmlld0ZhY3RvcnkgbG9jYWxpemVkTWVk
aWFDb250cm9sRWxlbWVudFN0cmluZzpdKToKKyAgICAgICAgKC1bV2ViVmlld0ZhY3RvcnkgbG9j
YWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0Ol0pOgorICAgICAgICAoLVtXZWJWaWV3
RmFjdG9yeSBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbjpdKToKKyAgICAgICAgKC1bV2Vi
Vmlld0ZhY3RvcnkgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0XSk6CisgICAgICAg
ICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dF0pOgor
ICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRj
aFRleHRdKToKKyAgICAgICAgKC1bV2ViVmlld0ZhY3RvcnkgdmFsaWRhdGlvbk1lc3NhZ2VUb29M
b25nVGV4dF0pOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlVW5kZXJmbG93VGV4dF0pOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9u
TWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0XSk6CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZh
bGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dF0pOgorCiAyMDA5LTEwLTIwICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgTWFy
ayBSb3dlLgpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3RmFjdG9yeS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZpZXdGYWN0b3J5
Lm1tCShyZXZpc2lvbiA0OTg5MCkKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmll
d0ZhY3RvcnkubW0JKHdvcmtpbmcgY29weSkKQEAgLTYzMCwyMiArNjMwLDIyIEBACiAgICAgcmV0
dXJuIFVJX1NUUklORygiVW5rbm93biIsICJVbmtub3duIGZpbGVzaXplIEZUUCBkaXJlY3Rvcnkg
bGlzdGluZyBpdGVtIik7CiB9CiAKLS0gKE5TU3RyaW5nKilpbWFnZVRpdGxlRm9yRmlsZW5hbWU6
KE5TU3RyaW5nKilmaWxlbmFtZSB3aWR0aDooaW50KXdpZHRoIGhlaWdodDooaW50KWhlaWdodAor
LSAoTlNTdHJpbmcgKilpbWFnZVRpdGxlRm9yRmlsZW5hbWU6KE5TU3RyaW5nKilmaWxlbmFtZSB3
aWR0aDooaW50KXdpZHRoIGhlaWdodDooaW50KWhlaWdodAogewogICAgIHJldHVybiBbTlNTdHJp
bmcgc3RyaW5nV2l0aEZvcm1hdDpVSV9TVFJJTkcoIiVAICVkw5clZCBwaXhlbHMiLCAid2luZG93
IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9s
LCBub3QgeCkiKSwgZmlsZW5hbWUsIHdpZHRoLCBoZWlnaHRdOwogfQogCi0tIChOU1N0cmluZyop
bWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dAorLSAoTlNTdHJpbmcgKiltZWRpYUVsZW1lbnRM
b2FkaW5nU3RhdGVUZXh0CiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiTG9hZGluZy4uLiIsICJN
ZWRpYSBjb250cm9sbGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4gdGhlIG1lZGlhIGlzIGxvYWRpbmci
KTsKIH0KIAotLSAoTlNTdHJpbmcqKW1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQK
Ky0gKE5TU3RyaW5nICopbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dAogewogICAg
IHJldHVybiBVSV9TVFJJTkcoIkxpdmUgQnJvYWRjYXN0IiwgIk1lZGlhIGNvbnRyb2xsZXIgc3Rh
dHVzIG1lc3NhZ2Ugd2hlbiB3YXRjaGluZyBhIGxpdmUgYnJvYWRjYXN0Iik7CiB9CiAKLS0gKE5T
U3RyaW5nKilsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nOihOU1N0cmluZyopbmFt
ZQorLSAoTlNTdHJpbmcgKilsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nOihOU1N0
cmluZyopbmFtZQogewogICAgIGlmIChbbmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJBdWRpb0VsZW1l
bnQiXSkKICAgICAgICAgcmV0dXJuIFVJX1NUUklORygiYXVkaW8gZWxlbWVudCBjb250cm9sbGVy
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxlbWVudCBjb250
cm9sbGVyIik7CkBAIC02ODgsNyArNjg4LDcgQEAKICAgICByZXR1cm4gQCIiOwogfQogCi0tIChO
U1N0cmluZyopbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0OihOU1N0cmluZyop
bmFtZQorLSAoTlNTdHJpbmcgKilsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQ6
KE5TU3RyaW5nKiluYW1lCiB7CiAgICAgaWYgKFtuYW1lIGlzRXF1YWxUb1N0cmluZzpAIkF1ZGlv
RWxlbWVudCJdKQogICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IHBsYXli
YWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxheSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVz
Y3JpcHRpb24gZm9yIGF1ZGlvIGVsZW1lbnQgY29udHJvbGxlciIpOwpAQCAtNzI3LDcgKzcyNyw3
IEBACiAgICAgcmV0dXJuIEAiIjsKIH0KIAotLSAoTlNTdHJpbmcqKWxvY2FsaXplZE1lZGlhVGlt
ZURlc2NyaXB0aW9uOihmbG9hdCl0aW1lCistIChOU1N0cmluZyAqKWxvY2FsaXplZE1lZGlhVGlt
ZURlc2NyaXB0aW9uOihmbG9hdCl0aW1lCiB7CiAgICAgaWYgKCFpc2Zpbml0ZSh0aW1lKSkKICAg
ICAgICAgcmV0dXJuIFVJX1NUUklORygiaW5kZWZpbml0ZSB0aW1lIiwgInN0cmluZyBmb3IgYW4g
aW5kZWZpbml0ZSBtb3ZpZSB0aW1lIik7CkBAIC03NDgsNCArNzQ4LDM5IEBACiAgICAgcmV0dXJu
IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OlVJX1NUUklORygiZGF0ZS5mb3JtYXQuZm9yLnNl
Y29uZHMiLCAic3RyaW5nIGZvciBzZWNvbmRzIiksIHNlY29uZHNdOwogfQogCistIChOU1N0cmlu
ZyAqKXZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dAoreworICAgIHJldHVybiBVSV9T
VFJJTkcoInZhbHVlIG1pc3NpbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciByZXF1aXJlZCBm
b3JtIGNvbnRyb2wgZWxlbWVudHMgdGhhdCBoYXZlIG5vIHZhbHVlIik7Cit9CisKKy0gKE5TU3Ry
aW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0Cit7CisgICAgcmV0dXJuIFVJ
X1NUUklORygidHlwZSBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZv
cm0gY29udHJvbHMgd2l0aCBhIHZhbHVlIG5vdCBtYXRjaGluZyB0eXBlIik7Cit9CisKKy0gKE5T
U3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0Cit7CisgICAgcmV0
dXJuIFVJX1NUUklORygicGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9y
IGlucHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNjb3Jk
aW5nIHRvIHBhdHRlcm4iKTsKK30KKworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVRv
b0xvbmdUZXh0Cit7CisgICAgcmV0dXJuIFVJX1NUUklORygidG9vIGxvbmciLCAiVmFsaWRhdGlv
biBtZXNzYWdlIGZvciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgd2l0aCBhIHZhbHVlIGxvbmdlciB0
aGFuIG1heGltdW0gYWxsb3dlZCBsZW5ndGgiKTsKK30KKworLSAoTlNTdHJpbmcgKil2YWxpZGF0
aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dAoreworICAgIHJldHVybiBVSV9TVFJJTkcoInJh
bmdlIHVuZGVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJv
bHMgd2l0aCB2YWx1ZSBsb3dlciB0aGFuIGFsbG93ZWQgbWluaW11bSIpOworfQorCistIChOU1N0
cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQKK3sKKyAgICByZXR1cm4g
VUlfU1RSSU5HKCJyYW5nZSBvdmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0
IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsK
K30KKworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQKK3sK
KyAgICByZXR1cm4gVUlfU1RSSU5HKCJzdGVwIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2Fn
ZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIG5vdCByZXNwZWN0aW5nIHRoZSBz
dGVwIGF0dHJpYnV0ZSIpOworfQorCiBAZW5kCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0OTg5MCkKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisy
MDA5LTEwLTIwICBNaWNoZWxhbmdlbG8gRGUgU2ltb25lICA8bWljZGVzaW1AZ21haWwuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzk1OQorICAgICAgICBUZXN0IGZvciB0
aGUgInZhbGlkYXRpb25NZXNzYWdlIiBET00gYXR0cmlidXRlIGZyb20gSFRNTDUgc3BlY3MKKyAg
ICAgICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8j
ZG9tLWN2YS12YWxpZGF0aW9ubWVzc2FnZQorCisgICAgICAgICogZmFzdC9kb20vZG9tTGlzdEVu
dW1lcmF0aW9uLWV4cGVjdGVkLnR4dDogY29ycmVjdGVkCisgICAgICAgICogZmFzdC9kb20vc2Ny
aXB0LXRlc3RzL2RvbUxpc3RFbnVtZXJhdGlvbi5qczogY29ycmVjdGVkCisgICAgICAgICogZmFz
dC9mb3Jtcy9yZXNvdXJjZXMvdmFsaWRhdGlvbk1lc3NhZ2UuanM6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0bWwtZGlzYWJsZWQ6IEFkZGVkIGJ1
dCBjdXJyZW50bHkKKyAgICAgICAgZGlzYWJsZWQ6IGNvcnJlY3Qgc3RyaW5ncyBmb3IgdmFsaWRh
dGlvbk1lc3NhZ2UgYXJlIGF2YWlsYWJsZSBvbmx5CisgICAgICAgIG9uIHRoZSBNYWMgcG9ydC4K
KwogMjAwOS0xMC0yMCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAg
QW5vdGhlciBiYXRjaCBvZiBza2lwcGVkIHRlc3RzIHdpdGggbGlua3MgdG8gdGhlaXIgYnVncy4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9u
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDk4OTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9k
b21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0
MSw3IEBAIFBBU1MgcmVzdWx0QXJyYXlbMl0uaSBpcyAnMicKIFBBU1MgcmVzdWx0QXJyYXlbMl0u
aXRlbSBpcyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMl0KIAogW29i
amVjdCBIVE1MU2VsZWN0RWxlbWVudF0KLVBBU1MgcmVzdWx0QXJyYXkubGVuZ3RoIGlzIDE0MAor
UEFTUyByZXN1bHRBcnJheS5sZW5ndGggaXMgMTQxCiBQQVNTIHJlc3VsdEFycmF5WzBdLmkgaXMg
JzAnCiBQQVNTIHJlc3VsdEFycmF5WzBdLml0ZW0gaXMgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoJ29wdGlvbicpWzBdCiBQQVNTIHJlc3VsdEFycmF5WzFdLmkgaXMgJzEnCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvZG9tTGlzdEVudW1lcmF0aW9uLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9kb21MaXN0RW51
bWVyYXRpb24uanMJKHJldmlzaW9uIDQ5ODkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vc2Ny
aXB0LXRlc3RzL2RvbUxpc3RFbnVtZXJhdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMTQxLDcg
KzE0MSw3IEBAIHNob3VsZEJlKCJyZXN1bHRBcnJheVsyXS5pdGVtIiwgImRvY3VtZW4KIC8vIEhU
TUxTZWxlY3RFbGVtZW50CiB2YXIgaHRtbFNlbGVjdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMF07CiByZXN1bHRBcnJheSA9IGl0ZXJhdGVMaXN0KGh0
bWxTZWxlY3RFbGVtZW50KTsKLXNob3VsZEJlKCJyZXN1bHRBcnJheS5sZW5ndGgiLCAiMTQwIik7
CitzaG91bGRCZSgicmVzdWx0QXJyYXkubGVuZ3RoIiwgIjE0MSIpOwogc2hvdWxkQmUoInJlc3Vs
dEFycmF5WzBdLmkiLCAiJzAnIik7CiBzaG91bGRCZSgicmVzdWx0QXJyYXlbMF0uaXRlbSIsICJk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnb3B0aW9uJylbMF0iKTsKIHNob3VsZEJlKCJy
ZXN1bHRBcnJheVsxXS5pIiwgIicxJyIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92
YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorVGVzdCBmb3IgdmFsaWRhdGlvbk1lc3NhZ2Ug
RE9NIHByb3BlcnR5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBwYXR0
ZXJuSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3BhdHRlcm4gbWlzbWF0Y2gnCitQQVNTIHJl
cXVpcmVkSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCitQQVNTIHJl
cXVpcmVkVGV4dEFyZWEudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCitQQVNT
IGVtYWlsSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3R5cGUgbWlzbWF0Y2gnCitQQVNTIHVu
ZGVySW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3JhbmdlIHVuZGVyZmxvdycKK1BBU1Mgb3Zl
cklucHV0LnZhbGlkYXRpb25NZXNzYWdlIGlzICdyYW5nZSBvdmVyZmxvdycKK1BBU1MgYnV0dC52
YWxpZGF0aW9uTWVzc2FnZSBpcyAnJworUEFTUyBhbm9uaW5wdXQudmFsaWRhdGlvbk1lc3NhZ2Ug
aXMgJycKK1BBU1MgaGFwcHlGaWVsZHNldC52YWxpZGF0aW9uTWVzc2FnZSBpcyAnJworUEFTUyBo
YXBweVNlbGVjdC52YWxpZGF0aW9uTWVzc2FnZSBpcyAnJworUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9y
bXMvdmFsaWRhdGlvbk1lc3NhZ2UuaHRtbC1kaXNhYmxlZAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0bWwtZGlzYWJsZWQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0bWwtZGlz
YWJsZWQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3ZhbGlkYXRpb25N
ZXNzYWdlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvdmFsaWRhdGlvbk1lc3NhZ2UuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvdmFsaWRhdGlvbk1lc3Nh
Z2UuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy92
YWxpZGF0aW9uTWVzc2FnZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NiBAQAorZGVzY3Jp
cHRpb24oIlRlc3QgZm9yIHZhbGlkYXRpb25NZXNzYWdlIERPTSBwcm9wZXJ0eS4iKTsKKwordmFy
IGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIik7CisKKy8vIEFuIGlucHV0IGVs
ZW1lbnQgd2l0aCBhIHBhdHRlcm4gc2V0IGFuZCBhIG1pc21hdGNoZWQgdmFsdWUKK3ZhciBwYXR0
ZXJuSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworcGF0dGVybklucHV0
Lm5hbWUgPSAicGF0dGVybklucHV0IjsKK3BhdHRlcm5JbnB1dC5wYXR0ZXJuID0gImxvcmVtIGlw
c3VtIjsKK3BhdHRlcm5JbnB1dC52YWx1ZSA9ICJsb3JlbSI7Citmb3JtLmFwcGVuZENoaWxkKHBh
dHRlcm5JbnB1dCk7CitzaG91bGRCZSgicGF0dGVybklucHV0LnZhbGlkYXRpb25NZXNzYWdlIiwg
IidwYXR0ZXJuIG1pc21hdGNoJyIpOworCisvLyBBIHJlcXVpcmVkIGlucHV0IHdpdGggYW4gZW1w
dHkgdmFsdWUKK3ZhciByZXF1aXJlZElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5w
dXQiKTsKK3JlcXVpcmVkSW5wdXQubmFtZSA9ICJyZXF1aXJlZElucHV0IjsKK3JlcXVpcmVkSW5w
dXQucmVxdWlyZWQgPSB0cnVlOworZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZElucHV0KTsKK3No
b3VsZEJlKCJyZXF1aXJlZElucHV0LnZhbGlkYXRpb25NZXNzYWdlIiwgIid2YWx1ZSBtaXNzaW5n
JyIpOworCisvLyBBIHJlcXVpcmVkIHRleHRhcmVhIHdpdGggYW4gZW1wdHkgdmFsdWUKK3ZhciBy
ZXF1aXJlZFRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTsKK3Jl
cXVpcmVkVGV4dEFyZWEubmFtZSA9ICJyZXF1aXJlZFRleHRBcmVhIjsKK3JlcXVpcmVkVGV4dEFy
ZWEucmVxdWlyZWQgPSB0cnVlOworZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFRleHRBcmVhKTsK
K3Nob3VsZEJlKCJyZXF1aXJlZFRleHRBcmVhLnZhbGlkYXRpb25NZXNzYWdlIiwgIid2YWx1ZSBt
aXNzaW5nJyIpOworCisvLyBBIHR5cGU9ZW1haWwgaW5wdXQgZm9yIHRoZSAidHlwZSBtaXNtYXRj
aCIgZmxhZwordmFyIGVtYWlsSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIp
OworZW1haWxJbnB1dC5uYW1lID0gImVtYWlsSW5wdXQiOworZW1haWxJbnB1dC50eXBlID0gImVt
YWlsIjsKK2VtYWlsSW5wdXQudmFsdWUgPSAiaW5jb3JyZWN0VmFsdWUiOworZm9ybS5hcHBlbmRD
aGlsZChlbWFpbElucHV0KTsKK3Nob3VsZEJlKCJlbWFpbElucHV0LnZhbGlkYXRpb25NZXNzYWdl
IiwgIid0eXBlIG1pc21hdGNoJyIpOworCisvLyBBICJyYW5nZWQiIGlucHV0IGZvciAicmFuZ2Ug
dW5kZXJmbG93IiBmbGFnCit2YXIgdW5kZXJJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImlucHV0Iik7Cit1bmRlcklucHV0Lm5hbWUgPSAidW5kZXJJbnB1dCI7Cit1bmRlcklucHV0LnR5
cGUgPSAicmFuZ2UiOwordW5kZXJJbnB1dC5taW4gPSAiMiI7Cit1bmRlcklucHV0LnZhbHVlID0g
IjEiOworZm9ybS5hcHBlbmRDaGlsZCh1bmRlcklucHV0KTsKK3Nob3VsZEJlKCJ1bmRlcklucHV0
LnZhbGlkYXRpb25NZXNzYWdlIiwgIidyYW5nZSB1bmRlcmZsb3cnIik7CisKKy8vIEEgInJhbmdl
ZCIgaW5wdXQgZm9yICJyYW5nZSBvdmVyZmxvdyIgZmxhZwordmFyIG92ZXJJbnB1dCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CitvdmVySW5wdXQubmFtZSA9ICJvdmVySW5wdXQi
Oworb3ZlcklucHV0LnR5cGUgPSAicmFuZ2UiOworb3ZlcklucHV0Lm1heCA9ICIyIjsKK292ZXJJ
bnB1dC52YWx1ZSA9ICIzIjsKK2Zvcm0uYXBwZW5kQ2hpbGQob3ZlcklucHV0KTsKK3Nob3VsZEJl
KCJvdmVySW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3JhbmdlIG92ZXJmbG93JyIpOworCisv
LyBBIGJ1dHRvbiBjYW4ndCBiZSB2YWxpdGVkIGFuZCwgdGh1cywgaGFzIGEgYmxhbmsgdmFsaWRh
dGlvbk1lc3NhZ2UKK3ZhciBidXR0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7
CitidXR0Lm5hbWUgPSAiYnV0dG9uIjsKK2Zvcm0uYXBwZW5kQ2hpbGQoYnV0dCk7CitzaG91bGRC
ZSgiYnV0dC52YWxpZGF0aW9uTWVzc2FnZSIsICInJyIpOworCisvLyBBbiBpbnB1dCBjb250cm9s
IHdpdGggbm8gbmFtZSwgc28gaXQgY2FuJ3QgYmUgdmFsaWRhdGVkICh3aWxsVmFsaWRhdGUgPSBm
YWxzZSkKK3ZhciBhbm9uaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwor
Zm9ybS5hcHBlbmRDaGlsZChhbm9uaW5wdXQpOworc2hvdWxkQmUoImFub25pbnB1dC52YWxpZGF0
aW9uTWVzc2FnZSIsICInJyIpCisKKy8vIEZpZWxkc2V0cyBjYW4ndCBiZSB2YWxpZGF0ZWQKK3Zh
ciBoYXBweUZpZWxkc2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKTsKK2hh
cHB5RmllbGRzZXQubmFtZSA9ICJmaWVsZHNldCI7Citmb3JtLmFwcGVuZENoaWxkKGhhcHB5Rmll
bGRzZXQpOworc2hvdWxkQmUoImhhcHB5RmllbGRzZXQudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJyci
KTsKKworLy8gU2VsZWN0IGNvbnRyb2xzIGNhbid0IGJlIHZhbGlkYXRlZCB0b28KK3ZhciBoYXBw
eVNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOworaGFwcHlTZWxlY3Qu
bmFtZSA9ICJzZWxlY3QiOworZm9ybS5hcHBlbmRDaGlsZChoYXBweVNlbGVjdCk7CitzaG91bGRC
ZSgiaGFwcHlTZWxlY3QudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJyciKTsKKwordmFyIHN1Y2Nlc3Nm
dWxseVBhcnNlZCA9IHRydWU7
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41530</attachid>
            <date>2009-10-20 15:49:26 -0700</date>
            <delta_ts>2009-11-16 14:09:57 -0800</delta_ts>
            <desc>Patch v2b</desc>
            <filename>bug-27959-20091021004923.patch</filename>
            <type>text/plain</type>
            <size>29037</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTg5MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMDktMTAtMjAgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNk
ZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3OTU5Cisg
ICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yICJ2YWxpZGF0aW9uTWVzc2FnZSIgRE9NIGF0dHJpYnV0
ZSwgcGx1cyBiYXNpYworICAgICAgICBsb2NhbGl6YXRpb24gc3R1ZmYgb24gdGhlIE1hYyBwb3J0
LgorICAgICAgICBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13
b3JrLyNkb20tY3ZhLXZhbGlkYXRpb25tZXNzYWdlCisKKyAgICAgICAgKiBodG1sL0hUTUxCdXR0
b25FbGVtZW50LmlkbDogdmFsaWRhdGlvbk1lc3NhZ2UgRE9NIGF0dHJpYnV0ZQorICAgICAgICAq
IGh0bWwvSFRNTEZpZWxkU2V0RWxlbWVudC5pZGw6IGRpdHRvCisgICAgICAgICogaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDogImNvcmUiIG1ldGhvZDspCisgICAgICAgICogaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50Lmg6IC4uLndpdGggaXRzIGRlZmluaXRpb24KKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOiB2YWxpZGF0aW9uTWVzc2FnZSBET00gYXR0cmli
dXRlCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5pZGw6IGRpdHRvCisgICAgICAg
ICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbDogZGl0dG8KKyAgICAgICAgKiBodG1sL1Zh
bGlkaXR5U3RhdGUuY3BwOiByZXR1cm5zIGNvcnJlY3QgdmFsaWRhdGlvbk1lc3NhZ2UgZm9yIHRo
ZSBlbGVtZW50CisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmg6IGRpdHRvIChkZWZpbml0
aW9uKQorICAgICAgICAqIHBhZ2UvbWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oOiBsb2NhbGl6ZWQg
ZnVuY3Rpb25zCisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOiBsb2NhbGl6
ZWQgc3RyaW5ncworICAgICAgICAqIHBsYXRmb3JtL21hYy9Mb2NhbGl6ZWRTdHJpbmdzTWFjLm1t
OiBsb2NhbGl6ZWQgZnVuY3Rpb25zCisKIDIwMDktMTAtMjAgIEplbnMgQWxma2UgIDxzbmVqQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAkocmV2aXNpb24gNDk4OTApCisrKyBXZWJDb3JlL2h0
bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBA
IG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBET01TdHJpbmcgICAg
ICAgICAgICB0eXBlOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIFtDb252ZXJ0TnVsbFRv
TnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgICAgICAgdmFsdWU7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICAgICAgIHZhbGlkYXRpb25NZXNzYWdl
OwogICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgICAgIHZvaWQgc2V0Q3Vz
dG9tVmFsaWRpdHkoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0
cmluZyBlcnJvcik7CiAgICAgICAgIHZvaWQgY2xpY2soKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MRmllbGRTZXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZp
ZWxkU2V0RWxlbWVudC5pZGwJKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9odG1sL0hUTUxG
aWVsZFNldEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxp
ZGl0eTsKICNlbmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAg
IHdpbGxWYWxpZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAg
ICB2YWxpZGF0aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0eSgpOwog
ICAgICAgICB2b2lkICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9y
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKICAgICB9OwpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAkocmV2aXNpb24gNDk4OTApCisrKyBXZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4
OCw2ICsyODgsMTEgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojp3aWxsVmFsaWRhdAog
ICAgIHJldHVybiBmb3JtKCkgJiYgIW5hbWUoKS5pc0VtcHR5KCkgJiYgIWRpc2FibGVkKCkgJiYg
IWlzUmVhZE9ubHlGb3JtQ29udHJvbCgpOwogfQogCitTdHJpbmcgSFRNTEZvcm1Db250cm9sRWxl
bWVudDo6dmFsaWRhdGlvbk1lc3NhZ2UoKQoreworICAgIHJldHVybiB2YWxpZGl0eSgpLT52YWxp
ZGF0aW9uTWVzc2FnZSgpOworfQorCiBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmNoZWNr
VmFsaWRpdHkoKQogewogICAgIGlmICh3aWxsVmFsaWRhdGUoKSAmJiAhaXNWYWxpZEZvcm1Db250
cm9sRWxlbWVudCgpKSB7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJ
KHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHNob3J0IHRhYkluZGV4KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIGJvb2wgd2lsbFZhbGlkYXRl
KCkgY29uc3Q7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlKCk7CiAgICAgYm9vbCBjaGVj
a1ZhbGlkaXR5KCk7CiAgICAgdm9pZCB1cGRhdGVWYWxpZGl0eSgpOwogICAgIHZvaWQgc2V0Q3Vz
dG9tVmFsaWRpdHkoY29uc3QgU3RyaW5nJik7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aWRsCShyZXZpc2lvbiA0OTg5MCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bAkod29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MT3B0aW9uRWxlbWVudCBzZWxlY3RlZE9wdGlvbjsKICNl
bmRpZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxp
ZGF0ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB2YWxpZGF0
aW9uTWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsK
ICAgICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0
VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgICAgICB2
b2lkICAgICAgICAgICAgICAgc2VsZWN0KCk7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5pZGwJKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRlICAgdmFsaWRpdHk7CiAjZW5kaWYK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICB3aWxsVmFsaWRhdGU7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgdmFsaWRhdGlvbk1l
c3NhZ2U7CiAgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBjaGVja1ZhbGlkaXR5KCk7CiAgICAg
ICAgIHZvaWQgICAgICAgICAgICAgICBzZXRDdXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVm
aW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGVycm9yKTsKIApJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAkocmV2aXNpb24gNDk4OTApCisrKyBXZWJDb3JlL2h0
bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICB2b2lkICAgICBzZWxlY3QoKTsKIAogICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0ZTsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB2YWxpZGF0aW9uTWVzc2FnZTsKICAg
ICAgICAgYm9vbGVhbiAgY2hlY2tWYWxpZGl0eSgpOwogICAgICAgICB2b2lkICAgICBzZXRDdXN0
b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIGVycm9yKTsKIApJbmRleDogV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAkocmV2aXNpb24gNDk4OTAp
CisrKyBXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3Mu
aCIKICNpbmNsdWRlICJSZWd1bGFyRXhwcmVzc2lvbi5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJF
eHRyYXMuaD4KIApAQCAtNDMsNiArNDQsMzMgQEAgVmFsaWRpdHlTdGF0ZTo6VmFsaWRpdHlTdGF0
ZShIVE1MRm9ybUNvbgogICAgIEFTU0VSVChwYXJlbnQpOwogfQogCitTdHJpbmcgVmFsaWRpdHlT
dGF0ZTo6dmFsaWRhdGlvbk1lc3NhZ2UoKQoreworICAgIGlmICghY29udHJvbCgpLT53aWxsVmFs
aWRhdGUoKSkKKyAgICAgICAgcmV0dXJuIGVtcHR5QXRvbTsKKyAgICAKKyAgICBpZiAoY3VzdG9t
RXJyb3IoKSkKKyAgICAgICAgcmV0dXJuIG1fY3VzdG9tRXJyb3JNZXNzYWdlOworI2lmIFBMQVRG
T1JNKE1BQykKKyAgICBlbHNlIGlmICh2YWx1ZU1pc3NpbmcoKSkKKyAgICAgICAgcmV0dXJuIHZh
bGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpOworICAgIGVsc2UgaWYgKHR5cGVNaXNt
YXRjaCgpKQorICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0
KCk7CisgICAgZWxzZSBpZiAocGF0dGVybk1pc21hdGNoKCkpCisgICAgICAgIHJldHVybiB2YWxp
ZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKKyAgICBlbHNlIGlmICh0b29Mb25n
KCkpCisgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7CisgICAg
ZWxzZSBpZiAocmFuZ2VVbmRlcmZsb3coKSkKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNz
YWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCk7CisgICAgZWxzZSBpZiAocmFuZ2VPdmVyZmxvdygpKQor
ICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpOworICAg
IGVsc2UgaWYgKHN0ZXBNaXNtYXRjaCgpKQorICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3Nh
Z2VTdGVwTWlzbWF0Y2hUZXh0KCk7CisjZW5kaWYKKworICAgIHJldHVybiBlbXB0eUF0b207Cit9
CisKIGJvb2wgVmFsaWRpdHlTdGF0ZTo6dHlwZU1pc21hdGNoKCkKIHsKICAgICBpZiAoIWNvbnRy
b2woKS0+aGFzVGFnTmFtZShpbnB1dFRhZykpCkluZGV4OiBXZWJDb3JlL2h0bWwvVmFsaWRpdHlT
dGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmgJKHJldmlz
aW9uIDQ5ODkwKQorKysgV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgSFRNTEZv
cm1Db250cm9sRWxlbWVudCogY29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udHJvbDsgfQog
CisgICAgICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZSgpOwogICAgICAgICB2b2lkIHNldEN1
c3RvbUVycm9yTWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgbV9jdXN0b21FcnJvck1l
c3NhZ2UgPSBtZXNzYWdlOyB9CiAKICAgICAgICAgYm9vbCB2YWx1ZU1pc3NpbmcoKSB7IHJldHVy
biBjb250cm9sKCktPnZhbHVlTWlzc2luZygpOyB9CkluZGV4OiBXZWJDb3JlL3BhZ2UvbWFjL1dl
YkNvcmVWaWV3RmFjdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9tYWMvV2ViQ29y
ZVZpZXdGYWN0b3J5LmgJKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9wYWdlL21hYy9XZWJD
b3JlVmlld0ZhY3RvcnkuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ2LDEwICsxNDYsMTcgQEAKIAog
LSAoTlNTdHJpbmcgKiltZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0OwogLSAoTlNTdHJpbmcg
KiltZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0OwotLSAoTlNTdHJpbmcqKWxvY2Fs
aXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmc6KE5TU3RyaW5nKiluYW1lOwotLSAoTlNTdHJp
bmcqKWxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRIZWxwVGV4dDooTlNTdHJpbmcqKW5hbWU7
Ci0tIChOU1N0cmluZyopbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb246KGZsb2F0KXRpbWU7
Ci0KKy0gKE5TU3RyaW5nICopbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZzooTlNT
dHJpbmcqKW5hbWU7CistIChOU1N0cmluZyAqKWxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRI
ZWxwVGV4dDooTlNTdHJpbmcqKW5hbWU7CistIChOU1N0cmluZyAqKWxvY2FsaXplZE1lZGlhVGlt
ZURlc2NyaXB0aW9uOihmbG9hdCl0aW1lOworCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNz
YWdlVmFsdWVNaXNzaW5nVGV4dDsKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUeXBl
TWlzbWF0Y2hUZXh0OworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNt
YXRjaFRleHQ7CistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQ7Cist
IChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0OworLSAoTlNT
dHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0OworLSAoTlNTdHJpbmcg
Kil2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQ7CiAKIEBlbmQKIApJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw2ICsxNDEs
MTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBsb2NhbGl6ZWRNZWRpYUNvbnRy
b2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgU3RyaW5nIGxvY2Fs
aXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0KTsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAg
ICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCk7CisgICAgU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpOworICAgIFN0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKTsKKyAgICBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VUb29Mb25nVGV4dCgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5k
ZXJmbG93VGV4dCgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dU
ZXh0KCk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpOwor
I2VuZGlmCisKIH0KIAogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbGl6
ZWRTdHJpbmdzTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2Fs
aXplZFN0cmluZ3NNYWMubW0JKHJldmlzaW9uIDQ5ODkwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvTG9jYWxpemVkU3RyaW5nc01hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzQ3LDUgKzc0Nyw2
MCBAQCBTdHJpbmcgbG9jYWxpemVkTWVkaWFUaW1lRGVzY3JpcHRpb24oZmxvCiAgICAgcmV0dXJu
IFN0cmluZygpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0
KCkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2Vi
Q29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNz
aW5nVGV4dF07CisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQoKQor
eworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3Jl
Vmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hU
ZXh0XTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmco
KTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCit7
CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBbW1dlYkNvcmVW
aWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRj
aFRleHRdOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCit7CisgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBbW1dlYkNvcmVWaWV3RmFj
dG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0XTsKKyAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK3sKKyAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNo
YXJlZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0XTsKKyAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQoreworICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hh
cmVkRmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dF07CisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQoreworICAgIEJFR0lOX0JMT0NL
X09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVk
RmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0XTsKKyAgICBFTkRfQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KIAogfQpJbmRleDog
V2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lv
biA0OTg5MCkKKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NCBAQAorMjAwOS0xMC0yMCAgTWljaGVsYW5nZWxvIERlIFNpbW9uZSAgPG1pY2Rlc2ltQGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc5NTkKKyAgICAgICAgQmFz
aWMgbG9jYWxpemFibGUgc3RyaW5ncyBmb3IgdGhlICJ2YWxpZGF0aW9uTWVzc2FnZSIgRE9NIGF0
dHJpYnV0ZQorICAgICAgICBmcm9tIEhUTUw1IHNwZWNzOgorICAgICAgICBodHRwOi8vd3d3Lndo
YXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNkb20tY3ZhLXZhbGlkYXRpb25t
ZXNzYWdlCisKKyAgICAgICAgKiBFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3M6IGFk
ZGVkIHNvbWUgYmFzaWMgbG9jYWxpemFibGUgc3RyaW5nCisKIDIwMDktMTAtMTkgIEpvaG4gR3Jl
Z2cgIDxqb2hubnlnQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBH
bGF6a292LgpJbmRleDogV2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCShy
ZXZpc2lvbiA0OTg5MCkKKysrIFdlYktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmlu
Z3MJKHdvcmtpbmcgY29weSkKQEAgLTUyMyw5ICs1MjMsNiBAQAogAC8AKgAgAGEAYwBjAGUAcwBz
AGkAYgBpAGwAaQB0AHkAIAByAG8AbABlACAAZABlAHMAYwByAGkAcAB0AGkAbwBuACAAZgBvAHIA
IABlAGwAYQBwAHMAZQBkACAAdABpAG0AZQAgAGQAaQBzAHAAbABhAHkAIAAqAC8ACiAAIgBlAGwA
YQBwAHMAZQBkACAAdABpAG0AZQAiACAAPQAgACIAZQBsAGEAcABzAGUAZAAgAHQAaQBtAGUAIgA7
AAogAAotAC8AKgAgAGEAYwBjAGUAcwBzAGkAYgBpAGwAaQB0AHkAIABoAGUAbABwACAAdABlAHgA
dAAgAGYAbwByACAAZgB1AGwAbABzAGMAcgBlAGUAbgAgAGIAdQB0AHQAbwBuACAAKgAvAAotACIA
ZQBuAHQAZQByACAAZgB1AGwAbAAgAHMAYwByAGUAZQBuACIAIAA9ACAAIgBlAG4AdABlAHIAIABm
AHUAbABsACAAcwBjAHIAZQBlAG4AIgA7AAotAAogAC8AKgAgAEgAVABUAFAAIAByAGUAcwB1AGwA
dAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAGUAeABwAGUAYwB0AGEAdABpAG8A
bgAgAGYAYQBpAGwAZQBkACIAIAA9ACAAIgBlAHgAcABlAGMAdABhAHQAaQBvAG4AIABmAGEAaQBs
AGUAZAAiADsACiAACkBAIC01NDEsOSArNTM4LDYgQEAKIAAvACoAIABIAFQAVABQACAAcgBlAHMA
dQBsAHQAIABjAG8AZABlACAAcwB0AHIAaQBuAGcAIAAqAC8ACiAAIgBmAG8AdQBuAGQAIgAgAD0A
IAAiAGYAbwB1AG4AZAAiADsACiAACi0ALwAqACAAYQBjAGMAZQBzAHMAaQBiAGkAbABpAHQAeQAg
AHIAbwBsAGUAIABkAGUAcwBjAHIAaQBwAHQAaQBvAG4AIABmAG8AcgAgAGYAdQBsAGwAcwBjAHIA
ZQBlAG4AIABiAHUAdAB0AG8AbgAgACoALwAKLQAiAGYAdQBsAGwAIABzAGMAcgBlAGUAbgAiACAA
PQAgACIAZgB1AGwAbAAgAHMAYwByAGUAZQBuACIAOwAKLQAKIAAvACoAIABhAGMAYwBlAHMAcwBp
AGIAaQBsAGkAdAB5ACAAcgBvAGwAZQAgAGQAZQBzAGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAA
ZQBuAHQAZQByACAAZgB1AGwAbABzAGMAcgBlAGUAbgAgAGIAdQB0AHQAbwBuACAAKgAvAAogACIA
ZgB1AGwAbABzAGMAcgBlAGUAbgAiACAAPQAgACIAZgB1AGwAbABzAGMAcgBlAGUAbgAiADsACiAA
CkBAIC02NDYsNiArNjQwLDkgQEAKIAAvACoAIABIAFQAVABQACAAcgBlAHMAdQBsAHQAIABjAG8A
ZABlACAAcwB0AHIAaQBuAGcAIAAqAC8ACiAAIgBwAGEAcgB0AGkAYQBsACAAYwBvAG4AdABlAG4A
dAAiACAAPQAgACIAcABhAHIAdABpAGEAbAAgAGMAbwBuAHQAZQBuAHQAIgA7AAogAAorAC8AKgAg
AFYAYQBsAGkAZABhAHQAaQBvAG4AIABtAGUAcwBzAGEAZwBlACAAZgBvAHIAIABpAG4AcAB1AHQA
IABmAG8AcgBtACAAYwBvAG4AdAByAG8AbABzACAAcgBlAHEAdQBpAHIAaQBuAGcAIABhACAAYwBv
AG4AcwB0AHIAYQBpAG4AZQBkACAAdgBhAGwAdQBlACAAYQBjAGMAbwByAGQAaQBuAGcAIAB0AG8A
IABwAGEAdAB0AGUAcgBuACAAKgAvAAorACIAcABhAHQAdABlAHIAbgAgAG0AaQBzAG0AYQB0AGMA
aAAiACAAPQAgACIAcABhAHQAdABlAHIAbgAgAG0AaQBzAG0AYQB0AGMAaAAiADsACisACiAALwAq
ACAAYQBjAGMAZQBzAHMAaQBiAGkAbABpAHQAeQAgAHIAbwBsAGUAIABkAGUAcwBjAHIAaQBwAHQA
aQBvAG4AIABmAG8AcgAgAHAAYQB1AHMAZQAgAGIAdQB0AHQAbwBuACAAKgAvAAogACIAcABhAHUA
cwBlACIAIAA9ACAAIgBwAGEAdQBzAGUAIgA7AAogAApAQCAtNjY3LDYgKzY2NCwxMiBAQAogAC8A
KgAgAEgAVABUAFAAIAByAGUAcwB1AGwAdAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAK
IAAiAHAAcgBvAHgAeQAgAGEAdQB0AGgAZQBuAHQAaQBjAGEAdABpAG8AbgAgAHIAZQBxAHUAaQBy
AGUAZAAiACAAPQAgACIAcAByAG8AeAB5ACAAYQB1AHQAaABlAG4AdABpAGMAYQB0AGkAbwBuACAA
cgBlAHEAdQBpAHIAZQBkACIAOwAKIAAKKwAvACoAIABWAGEAbABpAGQAYQB0AGkAbwBuACAAbQBl
AHMAcwBhAGcAZQAgAGYAbwByACAAaQBuAHAAdQB0ACAAZgBvAHIAbQAgAGMAbwBuAHQAcgBvAGwA
cwAgAHcAaQB0AGgAIAB2AGEAbAB1AGUAIABoAGkAZwBoAGUAcgAgAHQAaABhAG4AIABhAGwAbABv
AHcAZQBkACAAbQBhAHgAaQBtAHUAbQAgACoALwAKKwAiAHIAYQBuAGcAZQAgAG8AdgBlAHIAZgBs
AG8AdwAiACAAPQAgACIAcgBhAG4AZwBlACAAbwB2AGUAcgBmAGwAbwB3ACIAOwAKKwAKKwAvACoA
IABWAGEAbABpAGQAYQB0AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAAaQBuAHAAdQB0
ACAAZgBvAHIAbQAgAGMAbwBuAHQAcgBvAGwAcwAgAHcAaQB0AGgAIAB2AGEAbAB1AGUAIABsAG8A
dwBlAHIAIAB0AGgAYQBuACAAYQBsAGwAbwB3AGUAZAAgAG0AaQBuAGkAbQB1AG0AIAAqAC8ACisA
IgByAGEAbgBnAGUAIAB1AG4AZABlAHIAZgBsAG8AdwAiACAAPQAgACIAcgBhAG4AZwBlACAAdQBu
AGQAZQByAGYAbABvAHcAIgA7AAorAAogAC8AKgAgAEgAVABUAFAAIAByAGUAcwB1AGwAdAAgAGMA
bwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAHIAZQBkAGkAcgBlAGMAdABlAGQAIgAgAD0A
IAAiAHIAZQBkAGkAcgBlAGMAdABlAGQAIgA7AAogAApAQCAtNzI0LDYgKzcyNyw5IEBACiAALwAq
ACAAYQBjAGMAZQBzAHMAaQBiAGkAbABpAHQAeQAgAHIAbwBsAGUAIABkAGUAcwBjAHIAaQBwAHQA
aQBvAG4AIABmAG8AcgAgAG0AbwB2AGkAZQAgAHMAdABhAHQAdQBzACAAKgAvAAogACIAcwB0AGEA
dAB1AHMAIgAgAD0AIAAiAHMAdABhAHQAdQBzACIAOwAKIAAKKwAvACoAIABWAGEAbABpAGQAYQB0
AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAAaQBuAHAAdQB0ACAAZgBvAHIAbQAgAGMA
bwBuAHQAcgBvAGwAcwAgAHcAaQB0AGgAIAB2AGEAbAB1AGUAIABuAG8AdAAgAHIAZQBzAHAAZQBj
AHQAaQBuAGcAIAB0AGgAZQAgAHMAdABlAHAAIABhAHQAdAByAGkAYgB1AHQAZQAgACoALwAKKwAi
AHMAdABlAHAAIABtAGkAcwBtAGEAdABjAGgAIgAgAD0AIAAiAHMAdABlAHAAIABtAGkAcwBtAGEA
dABjAGgAIgA7AAorAAogAC8AKgAgAEgAVABUAFAAIAByAGUAcwB1AGwAdAAgAGMAbwBkAGUAIABz
AHQAcgBpAG4AZwAgACoALwAKIAAiAHMAdQBjAGMAZQBzAHMAIgAgAD0AIAAiAHMAdQBjAGMAZQBz
AHMAIgA7AAogAApAQCAtNzQyLDkgKzc0OCwxNSBAQAogAC8AKgAgAEEAbgAgAEEAUgBJAEEAIABh
AGMAYwBlAHMAcwBpAGIAaQBsAGkAdAB5ACAAZwByAG8AdQBwACAAdABoAGEAdAAgAGEAYwB0AHMA
IABhAHMAIABhAG4AIAB1AHAAZABhAHQAaQBuAGcAIAB0AGkAbQBlAHIALgAgACoALwAKIAAiAHQA
aQBtAGUAcgAiACAAPQAgACIAdABpAG0AZQByACIAOwAKIAAKKwAvACoAIABWAGEAbABpAGQAYQB0
AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAAZgBvAHIAbQAgAGMAbwBuAHQAcgBvAGwA
IABlAGwAZQBtAGUAbgB0AHMAIAB3AGkAdABoACAAYQAgAHYAYQBsAHUAZQAgAGwAbwBuAGcAZQBy
ACAAdABoAGEAbgAgAG0AYQB4AGkAbQB1AG0AIABhAGwAbABvAHcAZQBkACAAbABlAG4AZwB0AGgA
IAAqAC8ACisAIgB0AG8AbwAgAGwAbwBuAGcAIgAgAD0AIAAiAHQAbwBvACAAbABvAG4AZwAiADsA
CisACiAALwAqACAAQQBuACAAQQBSAEkAQQAgAGEAYwBjAGUAcwBzAGkAYgBpAGwAaQB0AHkAIABn
AHIAbwB1AHAAIAB0AGgAYQB0ACAAYQBjAHQAcwAgAGEAcwAgAGEAIAB0AG8AbwBsAHQAaQBwAC4A
IAAqAC8ACiAAIgB0AG8AbwBsAHQAaQBwACIAIAA9ACAAIgB0AG8AbwBsAHQAaQBwACIAOwAKIAAK
KwAvACoAIABWAGEAbABpAGQAYQB0AGkAbwBuACAAbQBlAHMAcwBhAGcAZQAgAGYAbwByACAAaQBu
AHAAdQB0ACAAZgBvAHIAbQAgAGMAbwBuAHQAcgBvAGwAcwAgAHcAaQB0AGgAIABhACAAdgBhAGwA
dQBlACAAbgBvAHQAIABtAGEAdABjAGgAaQBuAGcAIAB0AHkAcABlACAAKgAvAAorACIAdAB5AHAA
ZQAgAG0AaQBzAG0AYQB0AGMAaAAiACAAPQAgACIAdAB5AHAAZQAgAG0AaQBzAG0AYQB0AGMAaAAi
ADsACisACiAALwAqACAASABUAFQAUAAgAHIAZQBzAHUAbAB0ACAAYwBvAGQAZQAgAHMAdAByAGkA
bgBnACAAKgAvAAogACIAdQBuAGEAYwBjAGUAcAB0AGEAYgBsAGUAIgAgAD0AIAAiAHUAbgBhAGMA
YwBlAHAAdABhAGIAbABlACIAOwAKIAAKQEAgLTc3Miw2ICs3ODQsOSBAQAogAC8AKgAgAEgAVABU
AFAAIAByAGUAcwB1AGwAdAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAHUAbgBz
AHUAcABwAG8AcgB0AGUAZAAgAHYAZQByAHMAaQBvAG4AIgAgAD0AIAAiAHUAbgBzAHUAcABwAG8A
cgB0AGUAZAAgAHYAZQByAHMAaQBvAG4AIgA7AAogAAorAC8AKgAgAFYAYQBsAGkAZABhAHQAaQBv
AG4AIABtAGUAcwBzAGEAZwBlACAAZgBvAHIAIAByAGUAcQB1AGkAcgBlAGQAIABmAG8AcgBtACAA
YwBvAG4AdAByAG8AbAAgAGUAbABlAG0AZQBuAHQAcwAgAHQAaABhAHQAIABoAGEAdgBlACAAbgBv
ACAAdgBhAGwAdQBlACAAKgAvAAorACIAdgBhAGwAdQBlACAAbQBpAHMAcwBpAG4AZwAiACAAPQAg
ACIAdgBhAGwAdQBlACAAbQBpAHMAcwBpAG4AZwAiADsACisACiAALwAqACAAYQBjAGMAZQBzAHMA
aQBiAGkAbABpAHQAeQAgAHIAbwBsAGUAIABkAGUAcwBjAHIAaQBwAHQAaQBvAG4AIABmAG8AcgAg
AHYAaQBkAGUAbwAgAGUAbABlAG0AZQBuAHQAIABjAG8AbgB0AHIAbwBsAGwAZQByACAAKgAvAAog
ACIAdgBpAGQAZQBvACAAZQBsAGUAbQBlAG4AdAAgAGMAbwBuAHQAcgBvAGwAbABlAHIAIgAgAD0A
IAAiAHYAaQBkAGUAbwAgAGUAbABlAG0AZQBuAHQAIABjAG8AbgB0AHIAbwBsAGwAZQByACIAOwAK
IAAKSW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA0OTg5MCkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDktMTAtMjAgIE1pY2hlbGFuZ2VsbyBEZSBT
aW1vbmUgIDxtaWNkZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI3OTU5CisgICAgICAgIExvY2FsaXplZCBzdHJpbmdzIGZvciB0aGUgInZhbGlkYXRpb25N
ZXNzYWdlIiBET00gYXR0cmlidXRlIGZyb20KKyAgICAgICAgSFRNTDUgc3BlY3M6CisgICAgICAg
IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI2RvbS1j
dmEtdmFsaWRhdGlvbm1lc3NhZ2UKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlZpZXdG
YWN0b3J5Lm1tOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSBpbWFnZVRpdGxlRm9yRmlsZW5h
bWU6d2lkdGg6aGVpZ2h0Ol0pOiBzdHlsZSBjb3JyZWN0aW9uCisgICAgICAgICgtW1dlYlZpZXdG
YWN0b3J5IG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHRdKTogZGl0dG8KKyAgICAgICAgKC1b
V2ViVmlld0ZhY3RvcnkgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dF0pOiBkaXR0
bworICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50
U3RyaW5nOl0pOiBkaXR0bworICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSBsb2NhbGl6ZWRNZWRp
YUNvbnRyb2xFbGVtZW50SGVscFRleHQ6XSk6IGRpdHRvCisgICAgICAgICgtW1dlYlZpZXdGYWN0
b3J5IGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uOl0pOiBkaXR0bworICAgICAgICAoLVtX
ZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHRdKTogdmFsaWRh
dGlvbk1lc3NhZ2Ugc3RyaW5nCisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoVGV4dF0pOiBkaXR0bworICAgICAgICAoLVtXZWJWaWV3RmFjdG9y
eSB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHRdKTogZGl0dG8KKyAgICAgICAg
KC1bV2ViVmlld0ZhY3RvcnkgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dF0pOiBkaXR0bwor
ICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93
VGV4dF0pOiBkaXR0bworICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2Fn
ZVJhbmdlT3ZlcmZsb3dUZXh0XSk6IGRpdHRvCisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZh
bGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dF0pOiBkaXR0bworCiAyMDA5LTEwLTIwICBE
YW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQg
YnkgTWFyayBSb3dlLgpJbmRleDogV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3RmFj
dG9yeS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZpZXdG
YWN0b3J5Lm1tCShyZXZpc2lvbiA0OTg5MCkKKysrIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViVmlld0ZhY3RvcnkubW0JKHdvcmtpbmcgY29weSkKQEAgLTYzMCwyMiArNjMwLDIyIEBACiAg
ICAgcmV0dXJuIFVJX1NUUklORygiVW5rbm93biIsICJVbmtub3duIGZpbGVzaXplIEZUUCBkaXJl
Y3RvcnkgbGlzdGluZyBpdGVtIik7CiB9CiAKLS0gKE5TU3RyaW5nKilpbWFnZVRpdGxlRm9yRmls
ZW5hbWU6KE5TU3RyaW5nKilmaWxlbmFtZSB3aWR0aDooaW50KXdpZHRoIGhlaWdodDooaW50KWhl
aWdodAorLSAoTlNTdHJpbmcgKilpbWFnZVRpdGxlRm9yRmlsZW5hbWU6KE5TU3RyaW5nKilmaWxl
bmFtZSB3aWR0aDooaW50KXdpZHRoIGhlaWdodDooaW50KWhlaWdodAogewogICAgIHJldHVybiBb
TlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpVSV9TVFJJTkcoIiVAICVkw5clZCBwaXhlbHMiLCAi
d2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24g
c3ltYm9sLCBub3QgeCkiKSwgZmlsZW5hbWUsIHdpZHRoLCBoZWlnaHRdOwogfQogCi0tIChOU1N0
cmluZyopbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dAorLSAoTlNTdHJpbmcgKiltZWRpYUVs
ZW1lbnRMb2FkaW5nU3RhdGVUZXh0CiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiTG9hZGluZy4u
LiIsICJNZWRpYSBjb250cm9sbGVyIHN0YXR1cyBtZXNzYWdlIHdoZW4gdGhlIG1lZGlhIGlzIGxv
YWRpbmciKTsKIH0KIAotLSAoTlNTdHJpbmcqKW1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0
ZVRleHQKKy0gKE5TU3RyaW5nICopbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dAog
ewogICAgIHJldHVybiBVSV9TVFJJTkcoIkxpdmUgQnJvYWRjYXN0IiwgIk1lZGlhIGNvbnRyb2xs
ZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB3YXRjaGluZyBhIGxpdmUgYnJvYWRjYXN0Iik7CiB9CiAK
LS0gKE5TU3RyaW5nKilsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nOihOU1N0cmlu
ZyopbmFtZQorLSAoTlNTdHJpbmcgKilsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5n
OihOU1N0cmluZyopbmFtZQogewogICAgIGlmIChbbmFtZSBpc0VxdWFsVG9TdHJpbmc6QCJBdWRp
b0VsZW1lbnQiXSkKICAgICAgICAgcmV0dXJuIFVJX1NUUklORygiYXVkaW8gZWxlbWVudCBjb250
cm9sbGVyIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgYXVkaW8gZWxlbWVu
dCBjb250cm9sbGVyIik7CkBAIC02ODgsNyArNjg4LDcgQEAKICAgICByZXR1cm4gQCIiOwogfQog
Ci0tIChOU1N0cmluZyopbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0OihOU1N0
cmluZyopbmFtZQorLSAoTlNTdHJpbmcgKilsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVs
cFRleHQ6KE5TU3RyaW5nKiluYW1lCiB7CiAgICAgaWYgKFtuYW1lIGlzRXF1YWxUb1N0cmluZzpA
IkF1ZGlvRWxlbWVudCJdKQogICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50
IHBsYXliYWNrIGNvbnRyb2xzIGFuZCBzdGF0dXMgZGlzcGxheSIsICJhY2Nlc3NpYmlsaXR5IHJv
bGUgZGVzY3JpcHRpb24gZm9yIGF1ZGlvIGVsZW1lbnQgY29udHJvbGxlciIpOwpAQCAtNzI3LDcg
KzcyNyw3IEBACiAgICAgcmV0dXJuIEAiIjsKIH0KIAotLSAoTlNTdHJpbmcqKWxvY2FsaXplZE1l
ZGlhVGltZURlc2NyaXB0aW9uOihmbG9hdCl0aW1lCistIChOU1N0cmluZyAqKWxvY2FsaXplZE1l
ZGlhVGltZURlc2NyaXB0aW9uOihmbG9hdCl0aW1lCiB7CiAgICAgaWYgKCFpc2Zpbml0ZSh0aW1l
KSkKICAgICAgICAgcmV0dXJuIFVJX1NUUklORygiaW5kZWZpbml0ZSB0aW1lIiwgInN0cmluZyBm
b3IgYW4gaW5kZWZpbml0ZSBtb3ZpZSB0aW1lIik7CkBAIC03NDgsNCArNzQ4LDM5IEBACiAgICAg
cmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OlVJX1NUUklORygiZGF0ZS5mb3JtYXQu
Zm9yLnNlY29uZHMiLCAic3RyaW5nIGZvciBzZWNvbmRzIiksIHNlY29uZHNdOwogfQogCistIChO
U1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dAoreworICAgIHJldHVy
biBVSV9TVFJJTkcoInZhbHVlIG1pc3NpbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciByZXF1
aXJlZCBmb3JtIGNvbnRyb2wgZWxlbWVudHMgdGhhdCBoYXZlIG5vIHZhbHVlIik7Cit9CisKKy0g
KE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0Cit7CisgICAgcmV0
dXJuIFVJX1NUUklORygidHlwZSBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlu
cHV0IGZvcm0gY29udHJvbHMgd2l0aCBhIHZhbHVlIG5vdCBtYXRjaGluZyB0eXBlIik7Cit9CisK
Ky0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0Cit7Cisg
ICAgcmV0dXJuIFVJX1NUUklORygicGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3Nh
Z2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUg
YWNjb3JkaW5nIHRvIHBhdHRlcm4iKTsKK30KKworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVz
c2FnZVRvb0xvbmdUZXh0Cit7CisgICAgcmV0dXJuIFVJX1NUUklORygidG9vIGxvbmciLCAiVmFs
aWRhdGlvbiBtZXNzYWdlIGZvciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgd2l0aCBhIHZhbHVlIGxv
bmdlciB0aGFuIG1heGltdW0gYWxsb3dlZCBsZW5ndGgiKTsKK30KKworLSAoTlNTdHJpbmcgKil2
YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dAoreworICAgIHJldHVybiBVSV9TVFJJ
TkcoInJhbmdlIHVuZGVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0g
Y29udHJvbHMgd2l0aCB2YWx1ZSBsb3dlciB0aGFuIGFsbG93ZWQgbWluaW11bSIpOworfQorCist
IChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQKK3sKKyAgICBy
ZXR1cm4gVUlfU1RSSU5HKCJyYW5nZSBvdmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9y
IGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGlt
dW0iKTsKK30KKworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRl
eHQKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJzdGVwIG1pc21hdGNoIiwgIlZhbGlkYXRpb24g
bWVzc2FnZSBmb3IgaW5wdXQgZm9ybSBjb250cm9scyB3aXRoIHZhbHVlIG5vdCByZXNwZWN0aW5n
IHRoZSBzdGVwIGF0dHJpYnV0ZSIpOworfQorCiBAZW5kCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0OTg5
MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5
IEBACisyMDA5LTEwLTIwICBNaWNoZWxhbmdlbG8gRGUgU2ltb25lICA8bWljZGVzaW1AZ21haWwu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzk1OQorICAgICAgICBUZXN0
IGZvciB0aGUgInZhbGlkYXRpb25NZXNzYWdlIiBET00gYXR0cmlidXRlIGZyb20gSFRNTDUgc3Bl
Y3MKKyAgICAgICAgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQt
d29yay8jZG9tLWN2YS12YWxpZGF0aW9ubWVzc2FnZQorCisgICAgICAgICogZmFzdC9kb20vZG9t
TGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dDogY29ycmVjdGVkCisgICAgICAgICogZmFzdC9k
b20vc2NyaXB0LXRlc3RzL2RvbUxpc3RFbnVtZXJhdGlvbi5qczogY29ycmVjdGVkCisgICAgICAg
ICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvdmFsaWRhdGlvbk1lc3NhZ2UuanM6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0bWwtZGlzYWJsZWQ6IEFk
ZGVkIGJ1dCBjdXJyZW50bHkKKyAgICAgICAgZGlzYWJsZWQ6IGNvcnJlY3Qgc3RyaW5ncyBmb3Ig
dmFsaWRhdGlvbk1lc3NhZ2UgYXJlIGF2YWlsYWJsZSBvbmx5CisgICAgICAgIG9uIHRoZSBNYWMg
cG9ydC4KKwogMjAwOS0xMC0yMCAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5jb20+CiAKICAg
ICAgICAgQW5vdGhlciBiYXRjaCBvZiBza2lwcGVkIHRlc3RzIHdpdGggbGlua3MgdG8gdGhlaXIg
YnVncy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9tTGlzdEVudW1l
cmF0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNDk4OTApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00
MSw3ICs0MSw3IEBAIFBBU1MgcmVzdWx0QXJyYXlbMl0uaSBpcyAnMicKIFBBU1MgcmVzdWx0QXJy
YXlbMl0uaXRlbSBpcyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMl0K
IAogW29iamVjdCBIVE1MU2VsZWN0RWxlbWVudF0KLVBBU1MgcmVzdWx0QXJyYXkubGVuZ3RoIGlz
IDE0MAorUEFTUyByZXN1bHRBcnJheS5sZW5ndGggaXMgMTQxCiBQQVNTIHJlc3VsdEFycmF5WzBd
LmkgaXMgJzAnCiBQQVNTIHJlc3VsdEFycmF5WzBdLml0ZW0gaXMgZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeVRhZ05hbWUoJ29wdGlvbicpWzBdCiBQQVNTIHJlc3VsdEFycmF5WzFdLmkgaXMgJzEnCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvZG9tTGlzdEVudW1lcmF0aW9u
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9kb21M
aXN0RW51bWVyYXRpb24uanMJKHJldmlzaW9uIDQ5ODkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2NyaXB0LXRlc3RzL2RvbUxpc3RFbnVtZXJhdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAt
MTQxLDcgKzE0MSw3IEBAIHNob3VsZEJlKCJyZXN1bHRBcnJheVsyXS5pdGVtIiwgImRvY3VtZW4K
IC8vIEhUTUxTZWxlY3RFbGVtZW50CiB2YXIgaHRtbFNlbGVjdEVsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50c0J5VGFnTmFtZSgnc2VsZWN0JylbMF07CiByZXN1bHRBcnJheSA9IGl0ZXJhdGVM
aXN0KGh0bWxTZWxlY3RFbGVtZW50KTsKLXNob3VsZEJlKCJyZXN1bHRBcnJheS5sZW5ndGgiLCAi
MTQwIik7CitzaG91bGRCZSgicmVzdWx0QXJyYXkubGVuZ3RoIiwgIjE0MSIpOwogc2hvdWxkQmUo
InJlc3VsdEFycmF5WzBdLmkiLCAiJzAnIik7CiBzaG91bGRCZSgicmVzdWx0QXJyYXlbMF0uaXRl
bSIsICJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnb3B0aW9uJylbMF0iKTsKIHNob3Vs
ZEJlKCJyZXN1bHRBcnJheVsxXS5pIiwgIicxJyIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorVGVzdCBmb3IgdmFsaWRhdGlvbk1l
c3NhZ2UgRE9NIHByb3BlcnR5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBwYXR0ZXJuSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3BhdHRlcm4gbWlzbWF0Y2gnCitQ
QVNTIHJlcXVpcmVkSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3NpbmcnCitQ
QVNTIHJlcXVpcmVkVGV4dEFyZWEudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3ZhbHVlIG1pc3Npbmcn
CitQQVNTIGVtYWlsSW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3R5cGUgbWlzbWF0Y2gnCitQ
QVNTIHVuZGVySW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJ3JhbmdlIHVuZGVyZmxvdycKK1BB
U1Mgb3ZlcklucHV0LnZhbGlkYXRpb25NZXNzYWdlIGlzICdyYW5nZSBvdmVyZmxvdycKK1BBU1Mg
YnV0dC52YWxpZGF0aW9uTWVzc2FnZSBpcyAnJworUEFTUyBhbm9uaW5wdXQudmFsaWRhdGlvbk1l
c3NhZ2UgaXMgJycKK1BBU1MgaGFwcHlGaWVsZHNldC52YWxpZGF0aW9uTWVzc2FnZSBpcyAnJwor
UEFTUyBoYXBweVNlbGVjdC52YWxpZGF0aW9uTWVzc2FnZSBpcyAnJworUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UuaHRtbC1kaXNhYmxlZAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0bWwtZGlzYWJsZWQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0
bWwtZGlzYWJsZWQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3ZhbGlk
YXRpb25NZXNzYWdlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvdmFsaWRhdGlvbk1lc3NhZ2UuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvdmFsaWRhdGlv
bk1lc3NhZ2UuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291
cmNlcy92YWxpZGF0aW9uTWVzc2FnZS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3NiBAQAor
ZGVzY3JpcHRpb24oIlRlc3QgZm9yIHZhbGlkYXRpb25NZXNzYWdlIERPTSBwcm9wZXJ0eS4iKTsK
KwordmFyIGZvcm0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJmb3JtIik7CisKKy8vIEFuIGlu
cHV0IGVsZW1lbnQgd2l0aCBhIHBhdHRlcm4gc2V0IGFuZCBhIG1pc21hdGNoZWQgdmFsdWUKK3Zh
ciBwYXR0ZXJuSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworcGF0dGVy
bklucHV0Lm5hbWUgPSAicGF0dGVybklucHV0IjsKK3BhdHRlcm5JbnB1dC5wYXR0ZXJuID0gImxv
cmVtIGlwc3VtIjsKK3BhdHRlcm5JbnB1dC52YWx1ZSA9ICJsb3JlbSI7Citmb3JtLmFwcGVuZENo
aWxkKHBhdHRlcm5JbnB1dCk7CitzaG91bGRCZSgicGF0dGVybklucHV0LnZhbGlkYXRpb25NZXNz
YWdlIiwgIidwYXR0ZXJuIG1pc21hdGNoJyIpOworCisvLyBBIHJlcXVpcmVkIGlucHV0IHdpdGgg
YW4gZW1wdHkgdmFsdWUKK3ZhciByZXF1aXJlZElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaW5wdXQiKTsKK3JlcXVpcmVkSW5wdXQubmFtZSA9ICJyZXF1aXJlZElucHV0IjsKK3JlcXVp
cmVkSW5wdXQucmVxdWlyZWQgPSB0cnVlOworZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZElucHV0
KTsKK3Nob3VsZEJlKCJyZXF1aXJlZElucHV0LnZhbGlkYXRpb25NZXNzYWdlIiwgIid2YWx1ZSBt
aXNzaW5nJyIpOworCisvLyBBIHJlcXVpcmVkIHRleHRhcmVhIHdpdGggYW4gZW1wdHkgdmFsdWUK
K3ZhciByZXF1aXJlZFRleHRBcmVhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEi
KTsKK3JlcXVpcmVkVGV4dEFyZWEubmFtZSA9ICJyZXF1aXJlZFRleHRBcmVhIjsKK3JlcXVpcmVk
VGV4dEFyZWEucmVxdWlyZWQgPSB0cnVlOworZm9ybS5hcHBlbmRDaGlsZChyZXF1aXJlZFRleHRB
cmVhKTsKK3Nob3VsZEJlKCJyZXF1aXJlZFRleHRBcmVhLnZhbGlkYXRpb25NZXNzYWdlIiwgIid2
YWx1ZSBtaXNzaW5nJyIpOworCisvLyBBIHR5cGU9ZW1haWwgaW5wdXQgZm9yIHRoZSAidHlwZSBt
aXNtYXRjaCIgZmxhZwordmFyIGVtYWlsSW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
bnB1dCIpOworZW1haWxJbnB1dC5uYW1lID0gImVtYWlsSW5wdXQiOworZW1haWxJbnB1dC50eXBl
ID0gImVtYWlsIjsKK2VtYWlsSW5wdXQudmFsdWUgPSAiaW5jb3JyZWN0VmFsdWUiOworZm9ybS5h
cHBlbmRDaGlsZChlbWFpbElucHV0KTsKK3Nob3VsZEJlKCJlbWFpbElucHV0LnZhbGlkYXRpb25N
ZXNzYWdlIiwgIid0eXBlIG1pc21hdGNoJyIpOworCisvLyBBICJyYW5nZWQiIGlucHV0IGZvciAi
cmFuZ2UgdW5kZXJmbG93IiBmbGFnCit2YXIgdW5kZXJJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlucHV0Iik7Cit1bmRlcklucHV0Lm5hbWUgPSAidW5kZXJJbnB1dCI7Cit1bmRlcklu
cHV0LnR5cGUgPSAicmFuZ2UiOwordW5kZXJJbnB1dC5taW4gPSAiMiI7Cit1bmRlcklucHV0LnZh
bHVlID0gIjEiOworZm9ybS5hcHBlbmRDaGlsZCh1bmRlcklucHV0KTsKK3Nob3VsZEJlKCJ1bmRl
cklucHV0LnZhbGlkYXRpb25NZXNzYWdlIiwgIidyYW5nZSB1bmRlcmZsb3cnIik7CisKKy8vIEEg
InJhbmdlZCIgaW5wdXQgZm9yICJyYW5nZSBvdmVyZmxvdyIgZmxhZwordmFyIG92ZXJJbnB1dCA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CitvdmVySW5wdXQubmFtZSA9ICJvdmVy
SW5wdXQiOworb3ZlcklucHV0LnR5cGUgPSAicmFuZ2UiOworb3ZlcklucHV0Lm1heCA9ICIyIjsK
K292ZXJJbnB1dC52YWx1ZSA9ICIzIjsKK2Zvcm0uYXBwZW5kQ2hpbGQob3ZlcklucHV0KTsKK3No
b3VsZEJlKCJvdmVySW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJ3JhbmdlIG92ZXJmbG93JyIp
OworCisvLyBBIGJ1dHRvbiBjYW4ndCBiZSB2YWxpdGVkIGFuZCwgdGh1cywgaGFzIGEgYmxhbmsg
dmFsaWRhdGlvbk1lc3NhZ2UKK3ZhciBidXR0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0
dG9uIik7CitidXR0Lm5hbWUgPSAiYnV0dG9uIjsKK2Zvcm0uYXBwZW5kQ2hpbGQoYnV0dCk7Citz
aG91bGRCZSgiYnV0dC52YWxpZGF0aW9uTWVzc2FnZSIsICInJyIpOworCisvLyBBbiBpbnB1dCBj
b250cm9sIHdpdGggbm8gbmFtZSwgc28gaXQgY2FuJ3QgYmUgdmFsaWRhdGVkICh3aWxsVmFsaWRh
dGUgPSBmYWxzZSkKK3ZhciBhbm9uaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1
dCIpOworZm9ybS5hcHBlbmRDaGlsZChhbm9uaW5wdXQpOworc2hvdWxkQmUoImFub25pbnB1dC52
YWxpZGF0aW9uTWVzc2FnZSIsICInJyIpCisKKy8vIEZpZWxkc2V0cyBjYW4ndCBiZSB2YWxpZGF0
ZWQKK3ZhciBoYXBweUZpZWxkc2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZmllbGRzZXQi
KTsKK2hhcHB5RmllbGRzZXQubmFtZSA9ICJmaWVsZHNldCI7Citmb3JtLmFwcGVuZENoaWxkKGhh
cHB5RmllbGRzZXQpOworc2hvdWxkQmUoImhhcHB5RmllbGRzZXQudmFsaWRhdGlvbk1lc3NhZ2Ui
LCAiJyciKTsKKworLy8gU2VsZWN0IGNvbnRyb2xzIGNhbid0IGJlIHZhbGlkYXRlZCB0b28KK3Zh
ciBoYXBweVNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOworaGFwcHlT
ZWxlY3QubmFtZSA9ICJzZWxlY3QiOworZm9ybS5hcHBlbmRDaGlsZChoYXBweVNlbGVjdCk7Citz
aG91bGRCZSgiaGFwcHlTZWxlY3QudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJyciKTsKKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43322</attachid>
            <date>2009-11-16 14:10:08 -0800</date>
            <delta_ts>2009-11-16 14:33:09 -0800</delta_ts>
            <desc>Patch v2c</desc>
            <filename>bug-27959-20091116231005.patch</filename>
            <type>text/plain</type>
            <size>32681</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTA1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMTEtMTYgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNk
ZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRml4IGZvciA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI3OTU5Pi4KKyAgICAgICAgU3VwcG9ydCBmb3IgdmFsaWRhdGlvbk1lc3NhZ2UgYXR0cmlidXRl
LCBhcyBwZXIgSFRNTDUgc3BlY3MuCisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jtcy92YWxpZGF0
aW9uTWVzc2FnZS5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbDog
dmFsaWRhdGlvbk1lc3NhZ2UgYXR0cmlidXRlCisgICAgICAgICogaHRtbC9IVE1MRmllbGRTZXRF
bGVtZW50LmlkbDogdmFsaWRhdGlvbk1lc3NhZ2UgYXR0cmlidXRlCisgICAgICAgICogaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOiB2YWxpZGF0
aW9uTWVzc2FnZSBhdHRyaWJ1dGUKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmlk
bDogdmFsaWRhdGlvbk1lc3NhZ2UgYXR0cmlidXRlCisgICAgICAgICogaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmlkbDogdmFsaWRhdGlvbk1lc3NhZ2UgYXR0cmlidXRlCisgICAgICAgICogaHRt
bC9WYWxpZGl0eVN0YXRlLmNwcDogbmV3IG1ldGhvZCB0byByZXRyaWV2ZSBwZXJ0aW5lbnQgbG9j
YWxpemVkIHRleHQgCisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmg6CisgICAgICAgICog
cGFnZS9tYWMvV2ViQ29yZVZpZXdGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oOgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5n
c0FuZHJvaWQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3Rr
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Mb2NhbGl6ZWRTdHJpbmdzTWFjLm1tOgorICAgICAg
ICAqIHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHA6CisKIDIwMDktMTEtMTYgIE1h
cmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBBdHRlbXB0IHRvIGZpeCB0aGUg
YnVpbGQuICBMYW5kIGEgZmlsZSB0aGF0IHdhcyBtaXNzaW5nIGZyb20gcjUxMDQ5LgpJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiA1MTA0NSkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIERPTVN0cmluZyAg
ICAgICAgICAgIHR5cGU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB2YWx1ZTsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgICAgICAgdmFsaWRhdGlvbk1lc3Nh
Z2U7CiAgICAgICAgIGJvb2xlYW4gIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCBzZXRD
dXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIGVycm9yKTsKICAgICAgICAgdm9pZCBjbGljaygpOwpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1M
RmllbGRTZXRFbGVtZW50LmlkbAkocmV2aXNpb24gNTEwNDUpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TEZpZWxkU2V0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAgbW9k
dWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZh
bGlkaXR5OwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAg
ICAgd2lsbFZhbGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAg
ICAgIHZhbGlkYXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7
CiAgICAgICAgIHZvaWQgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVk
T3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgIH07CkluZGV4OiBXZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MTA0NSkKKysrIFdl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
Mjg4LDYgKzI4OCwxMSBAQCBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OndpbGxWYWxpZGF0
CiAgICAgcmV0dXJuIGZvcm0oKSAmJiAhbmFtZSgpLmlzRW1wdHkoKSAmJiAhZGlzYWJsZWQoKSAm
JiAhaXNSZWFkT25seUZvcm1Db250cm9sKCk7CiB9CiAKK1N0cmluZyBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Ojp2YWxpZGF0aW9uTWVzc2FnZSgpCit7CisgICAgcmV0dXJuIHZhbGlkaXR5KCktPnZh
bGlkYXRpb25NZXNzYWdlKCk7Cit9CisKIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6Y2hl
Y2tWYWxpZGl0eSgpCiB7CiAgICAgaWYgKHdpbGxWYWxpZGF0ZSgpICYmICFpc1ZhbGlkRm9ybUNv
bnRyb2xFbGVtZW50KCkpIHsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
aAkocmV2aXNpb24gNTEwNDUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNiArMTA3LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgc2hvcnQgdGFiSW5kZXgoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsVmFsaWRh
dGUoKSBjb25zdDsKKyAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2UoKTsKICAgICBib29sIGNo
ZWNrVmFsaWRpdHkoKTsKICAgICB2b2lkIHVwZGF0ZVZhbGlkaXR5KCk7CiAgICAgdm9pZCBzZXRD
dXN0b21WYWxpZGl0eShjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5pZGwJKHJldmlzaW9uIDUxMDQ1KQorKysgV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxPcHRpb25FbGVtZW50IHNlbGVjdGVkT3B0aW9uOwog
I2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZh
bGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIHZhbGlk
YXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuICAgICAgICAgICAgY2hlY2tWYWxpZGl0eSgp
OwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZl
cnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAgICAgICAg
IHZvaWQgICAgICAgICAgICAgICBzZWxlY3QoKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmlkbAkocmV2aXNpb24gNTEwNDUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIG1vZHVsZSBodG1sIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxpZGl0eTsKICNlbmRp
ZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0
ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB2YWxpZGF0aW9u
TWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsKICAg
ICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5k
ZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogCkluZGV4OiBXZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCShyZXZpc2lvbiA1MTA0NSkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgs
NyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHZvaWQgICAgIHNlbGVjdCgpOwogCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOwog
ICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgICAgIHZvaWQgICAgIHNldEN1
c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgZXJyb3IpOwogCkluZGV4OiBXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCShyZXZpc2lvbiA1MTA0
NSkKKysrIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5n
cy5oIgogI2luY2x1ZGUgIlJlZ3VsYXJFeHByZXNzaW9uLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgogCkBAIC00Myw2ICs0NCwzMSBAQCBWYWxpZGl0eVN0YXRlOjpWYWxpZGl0eVN0
YXRlKEhUTUxGb3JtQ29uCiAgICAgQVNTRVJUKHBhcmVudCk7CiB9CiAKK1N0cmluZyBWYWxpZGl0
eVN0YXRlOjp2YWxpZGF0aW9uTWVzc2FnZSgpCit7CisgICAgaWYgKCFjb250cm9sKCktPndpbGxW
YWxpZGF0ZSgpKQorICAgICAgICByZXR1cm4gZW1wdHlBdG9tOworCisgICAgaWYgKGN1c3RvbUVy
cm9yKCkpCisgICAgICAgIHJldHVybiBtX2N1c3RvbUVycm9yTWVzc2FnZTsKKyAgICBlbHNlIGlm
ICh2YWx1ZU1pc3NpbmcoKSkKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVN
aXNzaW5nVGV4dCgpOworICAgIGVsc2UgaWYgKHR5cGVNaXNtYXRjaCgpKQorICAgICAgICByZXR1
cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgZWxzZSBpZiAocGF0
dGVybk1pc21hdGNoKCkpCisgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5N
aXNtYXRjaFRleHQoKTsKKyAgICBlbHNlIGlmICh0b29Mb25nKCkpCisgICAgICAgIHJldHVybiB2
YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7CisgICAgZWxzZSBpZiAocmFuZ2VVbmRlcmZs
b3coKSkKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KCk7CisgICAgZWxzZSBpZiAocmFuZ2VPdmVyZmxvdygpKQorICAgICAgICByZXR1cm4gdmFsaWRh
dGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpOworICAgIGVsc2UgaWYgKHN0ZXBNaXNtYXRj
aCgpKQorICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCk7
CisKKyAgICByZXR1cm4gZW1wdHlBdG9tOworfQorCiBib29sIFZhbGlkaXR5U3RhdGU6OnR5cGVN
aXNtYXRjaCgpCiB7CiAgICAgaWYgKCFjb250cm9sKCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQpJ
bmRleDogV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvVmFsaWRpdHlTdGF0ZS5oCShyZXZpc2lvbiA1MTA0NSkKKysrIFdlYkNvcmUvaHRtbC9W
YWxpZGl0eVN0YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGNvbnRyb2woKSBj
b25zdCB7IHJldHVybiBtX2NvbnRyb2w7IH0KIAorICAgICAgICBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2UoKTsKICAgICAgICAgdm9pZCBzZXRDdXN0b21FcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKSB7IG1fY3VzdG9tRXJyb3JNZXNzYWdlID0gbWVzc2FnZTsgfQogCiAgICAgICAg
IGJvb2wgdmFsdWVNaXNzaW5nKCkgeyByZXR1cm4gY29udHJvbCgpLT52YWx1ZU1pc3NpbmcoKTsg
fQpJbmRleDogV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvbWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oCShyZXZpc2lvbiA1MTA0
NSkKKysrIFdlYkNvcmUvcGFnZS9tYWMvV2ViQ29yZVZpZXdGYWN0b3J5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE1MCw2ICsxNTAsMTMgQEAKIC0gKE5TU3RyaW5nKilsb2NhbGl6ZWRNZWRpYUNvbnRy
b2xFbGVtZW50SGVscFRleHQ6KE5TU3RyaW5nKiluYW1lOwogLSAoTlNTdHJpbmcqKWxvY2FsaXpl
ZE1lZGlhVGltZURlc2NyaXB0aW9uOihmbG9hdCl0aW1lOwogCistIChOU1N0cmluZyAqKXZhbGlk
YXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dDsKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hUZXh0OworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVBh
dHRlcm5NaXNtYXRjaFRleHQ7CistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVG9vTG9u
Z1RleHQ7CistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
OworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0OworLSAo
TlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQ7CiAKIEBlbmQKIApJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHJldmlzaW9uIDUxMDQ1KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0
MSw2ICsxNDEsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBsb2NhbGl6ZWRN
ZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBsb2Nh
bGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgU3Ry
aW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0KTsKKworICAgIFN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICBTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
UGF0dGVybk1pc21hdGNoVGV4dCgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xv
bmdUZXh0KCk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KCk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKTsKKyAg
ICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCk7CisKIH0KIAogI2Vu
ZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJv
aWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRT
dHJpbmdzQW5kcm9pZC5jcHAJKHJldmlzaW9uIDUxMDQ1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9h
bmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAx
LDQgKzMwMSw0NiBAQCBTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgpCiAgICAgcmV0dXJuIFN0
cmluZygpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1p
c21hdGNoVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCShyZXZpc2lvbiA1MTA0NSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NjcsNCArNDY3LDQ2IEBAIFN0cmluZyBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihm
bG8KIH0KICNlbmRpZiAgLy8gRU5BQkxFKFZJREVPKQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VWYWx1ZU1pc3NpbmdUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJm
bG93VGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
aGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAJKHJldmlzaW9uIDUxMDQ1KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNDIsNSArMzQyLDQ3IEBAIFN0cmluZyBBWERlZmluaXRpb25MaXN0RGVm
aW5pdGlvblRleHQoKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZVVuZGVyZmxvd1RleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsaXplZFN0cmluZ3NNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5nc01hYy5t
bQkocmV2aXNpb24gNTEwNDUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbGl6ZWRTdHJp
bmdzTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NDcsNSArNzQ3LDYwIEBAIFN0cmluZyBsb2Nh
bGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG8KICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQoreworICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkg
c2hhcmVkRmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0XTsKKyAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCit7CisgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBbW1dlYkNvcmVWaWV3RmFjdG9yeSBzaGFy
ZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHRdOworICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJl
ZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dF07CisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3Rv
cnldIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHRdOworICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQoreworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gdmFs
aWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHRdOworICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCit7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIHJldHVybiBbW1dlYkNvcmVWaWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxp
ZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0XTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlU3RlcE1pc21hdGNoVGV4dCgpCit7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
OworICAgIHJldHVybiBbW1dlYkNvcmVWaWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0
aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHRdOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7CisgICAgcmV0dXJuIFN0cmluZygpOworfQogCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwCShyZXZpc2lvbiA1MTA0NSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIz
LDQgKzMyMyw0NiBAQCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCkKICAg
ICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViS2l0
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MTA1
MSkKKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAor
MjAwOS0xMS0xNiAgTWljaGVsYW5nZWxvIERlIFNpbW9uZSAgPG1pY2Rlc2ltQGdtYWlsLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9y
IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc5NTk+LgorICAgICAg
ICBTdXBwb3J0IGZvciB2YWxpZGF0aW9uTWVzc2FnZSBhdHRyaWJ1dGUsIGFzIHBlciBIVE1MNSBz
cGVjcy4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczogbmV3
IGxvY2FsaXphYmxlIHN0cmluZ3MKKwogMjAwOS0xMS0xMyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdlYkZyYW1lTG9hZERlbGVnYXRlUHJpdmF0LmggdG8g
V2ViS2l0Lnhjb2RlcHJvagpJbmRleDogV2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUu
c3RyaW5ncwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5z
dHJpbmdzCShyZXZpc2lvbiA1MTA0NSkKKysrIFdlYktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MJKHdvcmtpbmcgY29weSkKQEAgLTY0OSw2ICs2NDksOSBAQAogAC8AKgAgAEgA
VABUAFAAIAByAGUAcwB1AGwAdAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAHAA
YQByAHQAaQBhAGwAIABjAG8AbgB0AGUAbgB0ACIAIAA9ACAAIgBwAGEAcgB0AGkAYQBsACAAYwBv
AG4AdABlAG4AdAAiADsACiAACisALwAqACAAVgBhAGwAaQBkAGEAdABpAG8AbgAgAG0AZQBzAHMA
YQBnAGUAIABmAG8AcgAgAGkAbgBwAHUAdAAgAGYAbwByAG0AIABjAG8AbgB0AHIAbwBsAHMAIABy
AGUAcQB1AGkAcgBpAG4AZwAgAGEAIABjAG8AbgBzAHQAcgBhAGkAbgBlAGQAIAB2AGEAbAB1AGUA
IABhAGMAYwBvAHIAZABpAG4AZwAgAHQAbwAgAHAAYQB0AHQAZQByAG4AIAAqAC8ACisAIgBwAGEA
dAB0AGUAcgBuACAAbQBpAHMAbQBhAHQAYwBoACIAIAA9ACAAIgBwAGEAdAB0AGUAcgBuACAAbQBp
AHMAbQBhAHQAYwBoACIAOwAKKwAKIAAvACoAIABhAGMAYwBlAHMAcwBpAGIAaQBsAGkAdAB5ACAA
cgBvAGwAZQAgAGQAZQBzAGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAAcABhAHUAcwBlACAAYgB1
AHQAdABvAG4AIAAqAC8ACiAAIgBwAGEAdQBzAGUAIgAgAD0AIAAiAHAAYQB1AHMAZQAiADsACiAA
CkBAIC02NzAsNiArNjczLDEyIEBACiAALwAqACAASABUAFQAUAAgAHIAZQBzAHUAbAB0ACAAYwBv
AGQAZQAgAHMAdAByAGkAbgBnACAAKgAvAAogACIAcAByAG8AeAB5ACAAYQB1AHQAaABlAG4AdABp
AGMAYQB0AGkAbwBuACAAcgBlAHEAdQBpAHIAZQBkACIAIAA9ACAAIgBwAHIAbwB4AHkAIABhAHUA
dABoAGUAbgB0AGkAYwBhAHQAaQBvAG4AIAByAGUAcQB1AGkAcgBlAGQAIgA7AAogAAorAC8AKgAg
AFYAYQBsAGkAZABhAHQAaQBvAG4AIABtAGUAcwBzAGEAZwBlACAAZgBvAHIAIABpAG4AcAB1AHQA
IABmAG8AcgBtACAAYwBvAG4AdAByAG8AbABzACAAdwBpAHQAaAAgAHYAYQBsAHUAZQAgAGgAaQBn
AGgAZQByACAAdABoAGEAbgAgAGEAbABsAG8AdwBlAGQAIABtAGEAeABpAG0AdQBtACAAKgAvAAor
ACIAcgBhAG4AZwBlACAAbwB2AGUAcgBmAGwAbwB3ACIAIAA9ACAAIgByAGEAbgBnAGUAIABvAHYA
ZQByAGYAbABvAHcAIgA7AAorAAorAC8AKgAgAFYAYQBsAGkAZABhAHQAaQBvAG4AIABtAGUAcwBz
AGEAZwBlACAAZgBvAHIAIABpAG4AcAB1AHQAIABmAG8AcgBtACAAYwBvAG4AdAByAG8AbABzACAA
dwBpAHQAaAAgAHYAYQBsAHUAZQAgAGwAbwB3AGUAcgAgAHQAaABhAG4AIABhAGwAbABvAHcAZQBk
ACAAbQBpAG4AaQBtAHUAbQAgACoALwAKKwAiAHIAYQBuAGcAZQAgAHUAbgBkAGUAcgBmAGwAbwB3
ACIAIAA9ACAAIgByAGEAbgBnAGUAIAB1AG4AZABlAHIAZgBsAG8AdwAiADsACisACiAALwAqACAA
SABUAFQAUAAgAHIAZQBzAHUAbAB0ACAAYwBvAGQAZQAgAHMAdAByAGkAbgBnACAAKgAvAAogACIA
cgBlAGQAaQByAGUAYwB0AGUAZAAiACAAPQAgACIAcgBlAGQAaQByAGUAYwB0AGUAZAAiADsACiAA
CkBAIC03MjcsNiArNzM2LDkgQEAKIAAvACoAIABhAGMAYwBlAHMAcwBpAGIAaQBsAGkAdAB5ACAA
cgBvAGwAZQAgAGQAZQBzAGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAAbQBvAHYAaQBlACAAcwB0
AGEAdAB1AHMAIAAqAC8ACiAAIgBzAHQAYQB0AHUAcwAiACAAPQAgACIAcwB0AGEAdAB1AHMAIgA7
AAogAAorAC8AKgAgAFYAYQBsAGkAZABhAHQAaQBvAG4AIABtAGUAcwBzAGEAZwBlACAAZgBvAHIA
IABpAG4AcAB1AHQAIABmAG8AcgBtACAAYwBvAG4AdAByAG8AbABzACAAdwBpAHQAaAAgAHYAYQBs
AHUAZQAgAG4AbwB0ACAAcgBlAHMAcABlAGMAdABpAG4AZwAgAHQAaABlACAAcwB0AGUAcAAgAGEA
dAB0AHIAaQBiAHUAdABlACAAKgAvAAorACIAcwB0AGUAcAAgAG0AaQBzAG0AYQB0AGMAaAAiACAA
PQAgACIAcwB0AGUAcAAgAG0AaQBzAG0AYQB0AGMAaAAiADsACisACiAALwAqACAASABUAFQAUAAg
AHIAZQBzAHUAbAB0ACAAYwBvAGQAZQAgAHMAdAByAGkAbgBnACAAKgAvAAogACIAcwB1AGMAYwBl
AHMAcwAiACAAPQAgACIAcwB1AGMAYwBlAHMAcwAiADsACiAACkBAIC03NDgsOSArNzYwLDE1IEBA
CiAALwAqACAAQQBuACAAQQBSAEkAQQAgAGEAYwBjAGUAcwBzAGkAYgBpAGwAaQB0AHkAIABnAHIA
bwB1AHAAIAB0AGgAYQB0ACAAYQBjAHQAcwAgAGEAcwAgAGEAbgAgAHUAcABkAGEAdABpAG4AZwAg
AHQAaQBtAGUAcgAuACAAKgAvAAogACIAdABpAG0AZQByACIAIAA9ACAAIgB0AGkAbQBlAHIAIgA7
AAogAAorAC8AKgAgAFYAYQBsAGkAZABhAHQAaQBvAG4AIABtAGUAcwBzAGEAZwBlACAAZgBvAHIA
IABmAG8AcgBtACAAYwBvAG4AdAByAG8AbAAgAGUAbABlAG0AZQBuAHQAcwAgAHcAaQB0AGgAIABh
ACAAdgBhAGwAdQBlACAAbABvAG4AZwBlAHIAIAB0AGgAYQBuACAAbQBhAHgAaQBtAHUAbQAgAGEA
bABsAG8AdwBlAGQAIABsAGUAbgBnAHQAaAAgACoALwAKKwAiAHQAbwBvACAAbABvAG4AZwAiACAA
PQAgACIAdABvAG8AIABsAG8AbgBnACIAOwAKKwAKIAAvACoAIABBAG4AIABBAFIASQBBACAAYQBj
AGMAZQBzAHMAaQBiAGkAbABpAHQAeQAgAGcAcgBvAHUAcAAgAHQAaABhAHQAIABhAGMAdABzACAA
YQBzACAAYQAgAHQAbwBvAGwAdABpAHAALgAgACoALwAKIAAiAHQAbwBvAGwAdABpAHAAIgAgAD0A
IAAiAHQAbwBvAGwAdABpAHAAIgA7AAogAAorAC8AKgAgAFYAYQBsAGkAZABhAHQAaQBvAG4AIABt
AGUAcwBzAGEAZwBlACAAZgBvAHIAIABpAG4AcAB1AHQAIABmAG8AcgBtACAAYwBvAG4AdAByAG8A
bABzACAAdwBpAHQAaAAgAGEAIAB2AGEAbAB1AGUAIABuAG8AdAAgAG0AYQB0AGMAaABpAG4AZwAg
AHQAeQBwAGUAIAAqAC8ACisAIgB0AHkAcABlACAAbQBpAHMAbQBhAHQAYwBoACIAIAA9ACAAIgB0
AHkAcABlACAAbQBpAHMAbQBhAHQAYwBoACIAOwAKKwAKIAAvACoAIABIAFQAVABQACAAcgBlAHMA
dQBsAHQAIABjAG8AZABlACAAcwB0AHIAaQBuAGcAIAAqAC8ACiAAIgB1AG4AYQBjAGMAZQBwAHQA
YQBiAGwAZQAiACAAPQAgACIAdQBuAGEAYwBjAGUAcAB0AGEAYgBsAGUAIgA7AAogAApAQCAtNzc4
LDYgKzc5Niw5IEBACiAALwAqACAASABUAFQAUAAgAHIAZQBzAHUAbAB0ACAAYwBvAGQAZQAgAHMA
dAByAGkAbgBnACAAKgAvAAogACIAdQBuAHMAdQBwAHAAbwByAHQAZQBkACAAdgBlAHIAcwBpAG8A
bgAiACAAPQAgACIAdQBuAHMAdQBwAHAAbwByAHQAZQBkACAAdgBlAHIAcwBpAG8AbgAiADsACiAA
CisALwAqACAAVgBhAGwAaQBkAGEAdABpAG8AbgAgAG0AZQBzAHMAYQBnAGUAIABmAG8AcgAgAHIA
ZQBxAHUAaQByAGUAZAAgAGYAbwByAG0AIABjAG8AbgB0AHIAbwBsACAAZQBsAGUAbQBlAG4AdABz
ACAAdABoAGEAdAAgAGgAYQB2AGUAIABuAG8AIAB2AGEAbAB1AGUAIAAqAC8ACisAIgB2AGEAbAB1
AGUAIABtAGkAcwBzAGkAbgBnACIAIAA9ACAAIgB2AGEAbAB1AGUAIABtAGkAcwBzAGkAbgBnACIA
OwAKKwAKIAAvACoAIABhAGMAYwBlAHMAcwBpAGIAaQBsAGkAdAB5ACAAcgBvAGwAZQAgAGQAZQBz
AGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAAdgBpAGQAZQBvACAAZQBsAGUAbQBlAG4AdAAgAGMA
bwBuAHQAcgBvAGwAbABlAHIAIAAqAC8ACiAAIgB2AGkAZABlAG8AIABlAGwAZQBtAGUAbgB0ACAA
YwBvAG4AdAByAG8AbABsAGUAcgAiACAAPQAgACIAdgBpAGQAZQBvACAAZQBsAGUAbQBlAG4AdAAg
AGMAbwBuAHQAcgBvAGwAbABlAHIAIgA7AAogAApJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA1
MTA1MSkKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxOSBAQAorMjAwOS0xMS0xNiAgTWljaGVsYW5nZWxvIERlIFNpbW9uZSAgPG1pY2Rlc2lt
QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggZm9yIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc5
NTk+LgorICAgICAgICBTdXBwb3J0IGZvciB2YWxpZGF0aW9uTWVzc2FnZSBhdHRyaWJ1dGUsIGFz
IHBlciBIVE1MNSBzcGVjcy4KKworICAgICAgICAqIHNyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgorICAgICAgICAo
V2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgorICAgICAgICAo
V2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorCiAyMDA5LTExLTE2
ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBPbGl2ZXIgSHVudC4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5n
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdz
LmNwcAkocmV2aXNpb24gNTEwNDUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsaXplZFN0
cmluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjIsNCArMjYyLDQ2IEBAIFN0cmluZyBsb2Nh
bGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG8KICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1p
c21hdGNoVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VPdmVyZmxvd1RleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxMDUxKQorKysgV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAwOS0xMS0xNiAg
TWljaGVsYW5nZWxvIERlIFNpbW9uZSAgPG1pY2Rlc2ltQGdtYWlsLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9yIDxodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc5NTk+LgorICAgICAgICBTdXBwb3J0IGZv
ciB2YWxpZGF0aW9uTWVzc2FnZSBhdHRyaWJ1dGUsIGFzIHBlciBIVE1MNSBzcGVjcy4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlZpZXdGYWN0b3J5Lm1tOgorICAgICAgICAoLVtXZWJW
aWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHRdKToKKyAgICAgICAg
KC1bV2ViVmlld0ZhY3RvcnkgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0XSk6Cisg
ICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNo
VGV4dF0pOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVRvb0xv
bmdUZXh0XSk6CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VVbmRlcmZsb3dUZXh0XSk6CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHRdKToKKyAgICAgICAgKC1bV2ViVmlld0ZhY3RvcnkgdmFs
aWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0XSk6CisKIDIwMDktMTEtMTQgIENocmlzIEZs
ZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3Rvcnku
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3RmFjdG9y
eS5tbQkocmV2aXNpb24gNTEwNDUpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZp
ZXdGYWN0b3J5Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NTYsNCArNzU2LDM5IEBACiAgICAgcmV0
dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OlVJX1NUUklORygiJTEkZCBzZWNvbmRzIiwg
ImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUg
PCA2MCBzZWNvbmRzIiksIHNlY29uZHNdOwogfQogCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nVGV4dAoreworICAgIHJldHVybiBVSV9TVFJJTkcoInZhbHVlIG1p
c3NpbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciByZXF1aXJlZCBmb3JtIGNvbnRyb2wgZWxl
bWVudHMgdGhhdCBoYXZlIG5vIHZhbHVlIik7Cit9CisKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0Cit7CisgICAgcmV0dXJuIFVJX1NUUklORygidHlwZSBt
aXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0
aCBhIHZhbHVlIG5vdCBtYXRjaGluZyB0eXBlIik7Cit9CisKKy0gKE5TU3RyaW5nICopdmFsaWRh
dGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0Cit7CisgICAgcmV0dXJuIFVJX1NUUklORygi
cGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29u
dHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNjb3JkaW5nIHRvIHBhdHRlcm4i
KTsKK30KKworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0Cit7Cisg
ICAgcmV0dXJuIFVJX1NUUklORygidG9vIGxvbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBm
b3JtIGNvbnRyb2wgZWxlbWVudHMgd2l0aCBhIHZhbHVlIGxvbmdlciB0aGFuIG1heGltdW0gYWxs
b3dlZCBsZW5ndGgiKTsKK30KKworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
VW5kZXJmbG93VGV4dAoreworICAgIHJldHVybiBVSV9TVFJJTkcoInJhbmdlIHVuZGVyZmxvdyIs
ICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBs
b3dlciB0aGFuIGFsbG93ZWQgbWluaW11bSIpOworfQorCistIChOU1N0cmluZyAqKXZhbGlkYXRp
b25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJyYW5n
ZSBvdmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMg
d2l0aCB2YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKK30KKworLSAoTlNTdHJp
bmcgKil2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQKK3sKKyAgICByZXR1cm4gVUlf
U1RSSU5HKCJzdGVwIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9y
bSBjb250cm9scyB3aXRoIHZhbHVlIG5vdCByZXNwZWN0aW5nIHRoZSBzdGVwIGF0dHJpYnV0ZSIp
OworfQorCiBAZW5kCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MTA1MSkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDA5LTExLTE2ICBNaWNo
ZWxhbmdlbG8gRGUgU2ltb25lICA8bWljZGVzaW1AZ21haWwuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBmb3IgPGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzk1OT4uCisgICAgICAgIFN1cHBvcnQgZm9yIHZh
bGlkYXRpb25NZXNzYWdlIGF0dHJpYnV0ZSwgYXMgcGVyIEhUTUw1IHNwZWNzLgorCisgICAgICAg
ICogZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dDogdXBkYXRlZCB3aXRo
IG5ldyBwcm9wZXJ0eQorICAgICAgICAqIGZhc3QvZG9tL3NjcmlwdC10ZXN0cy9kb21MaXN0RW51
bWVyYXRpb24uanM6IGRpdHRvCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdmFs
aWRhdGlvbk1lc3NhZ2UuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvdmFsaWRhdGlv
bk1lc3NhZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlk
YXRpb25NZXNzYWdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVk
OgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2lu
L1NraXBwZWQ6CisKIDIwMDktMTEtMTYgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiA1MTA0NSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgUEFTUyByZXN1bHRB
cnJheVsyXS5pIGlzICcyJwogUEFTUyByZXN1bHRBcnJheVsyXS5pdGVtIGlzIGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKVsyXQogCiBbb2JqZWN0IEhUTUxTZWxlY3RFbGVt
ZW50XQotUEFTUyByZXN1bHRBcnJheS5sZW5ndGggaXMgMTQwCitQQVNTIHJlc3VsdEFycmF5Lmxl
bmd0aCBpcyAxNDEKIFBBU1MgcmVzdWx0QXJyYXlbMF0uaSBpcyAnMCcKIFBBU1MgcmVzdWx0QXJy
YXlbMF0uaXRlbSBpcyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnb3B0aW9uJylbMF0K
IFBBU1MgcmVzdWx0QXJyYXlbMV0uaSBpcyAnMScKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L3NjcmlwdC10ZXN0cy9kb21MaXN0RW51bWVyYXRpb24uanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL2RvbUxpc3RFbnVtZXJhdGlvbi5qcwkocmV2aXNp
b24gNTEwNDUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvZG9tTGlzdEVu
dW1lcmF0aW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNDEsNyArMTQxLDcgQEAgc2hvdWxkQmUo
InJlc3VsdEFycmF5WzJdLml0ZW0iLCAiZG9jdW1lbgogLy8gSFRNTFNlbGVjdEVsZW1lbnQKIHZh
ciBodG1sU2VsZWN0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxl
Y3QnKVswXTsKIHJlc3VsdEFycmF5ID0gaXRlcmF0ZUxpc3QoaHRtbFNlbGVjdEVsZW1lbnQpOwot
c2hvdWxkQmUoInJlc3VsdEFycmF5Lmxlbmd0aCIsICIxNDAiKTsKK3Nob3VsZEJlKCJyZXN1bHRB
cnJheS5sZW5ndGgiLCAiMTQxIik7CiBzaG91bGRCZSgicmVzdWx0QXJyYXlbMF0uaSIsICInMCci
KTsKIHNob3VsZEJlKCJyZXN1bHRBcnJheVswXS5pdGVtIiwgImRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdvcHRpb24nKVswXSIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzFdLmkiLCAi
JzEnIik7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRp
b25NZXNzYWdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE5IEBACitUZXN0IGZvciB2YWxpZGF0aW9uTWVzc2FnZSBET00gcHJvcGVydHkuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBhdHRlcm5JbnB1dC52YWxpZGF0aW9u
TWVzc2FnZSBpcyAncGF0dGVybiBtaXNtYXRjaCcKK1BBU1MgcmVxdWlyZWRJbnB1dC52YWxpZGF0
aW9uTWVzc2FnZSBpcyAndmFsdWUgbWlzc2luZycKK1BBU1MgcmVxdWlyZWRUZXh0QXJlYS52YWxp
ZGF0aW9uTWVzc2FnZSBpcyAndmFsdWUgbWlzc2luZycKK1BBU1MgZW1haWxJbnB1dC52YWxpZGF0
aW9uTWVzc2FnZSBpcyAndHlwZSBtaXNtYXRjaCcKK1BBU1MgdW5kZXJJbnB1dC52YWxpZGF0aW9u
TWVzc2FnZSBpcyAncmFuZ2UgdW5kZXJmbG93JworUEFTUyBvdmVySW5wdXQudmFsaWRhdGlvbk1l
c3NhZ2UgaXMgJ3JhbmdlIG92ZXJmbG93JworUEFTUyBidXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMg
JycKK1BBU1MgYW5vbmlucHV0LnZhbGlkYXRpb25NZXNzYWdlIGlzICcnCitQQVNTIGhhcHB5Rmll
bGRzZXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJycKK1BBU1MgaGFwcHlTZWxlY3QudmFsaWRhdGlv
bk1lc3NhZ2UgaXMgJycKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVz
c2FnZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0
aW9uTWVzc2FnZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUg
SFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0
cy92YWxpZGF0aW9uTWVzc2FnZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25N
ZXNzYWdlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRl
c3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9zY3JpcHQtdGVzdHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNzYgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciB2YWxpZGF0aW9uTWVzc2FnZSBE
T00gcHJvcGVydHkuIik7CisKK3ZhciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZm9y
bSIpOworCisvLyBBbiBpbnB1dCBlbGVtZW50IHdpdGggYSBwYXR0ZXJuIHNldCBhbmQgYSBtaXNt
YXRjaGVkIHZhbHVlCit2YXIgcGF0dGVybklucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
aW5wdXQiKTsKK3BhdHRlcm5JbnB1dC5uYW1lID0gInBhdHRlcm5JbnB1dCI7CitwYXR0ZXJuSW5w
dXQucGF0dGVybiA9ICJsb3JlbSBpcHN1bSI7CitwYXR0ZXJuSW5wdXQudmFsdWUgPSAibG9yZW0i
OworZm9ybS5hcHBlbmRDaGlsZChwYXR0ZXJuSW5wdXQpOworc2hvdWxkQmUoInBhdHRlcm5JbnB1
dC52YWxpZGF0aW9uTWVzc2FnZSIsICIncGF0dGVybiBtaXNtYXRjaCciKTsKKworLy8gQSByZXF1
aXJlZCBpbnB1dCB3aXRoIGFuIGVtcHR5IHZhbHVlCit2YXIgcmVxdWlyZWRJbnB1dCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CityZXF1aXJlZElucHV0Lm5hbWUgPSAicmVxdWly
ZWRJbnB1dCI7CityZXF1aXJlZElucHV0LnJlcXVpcmVkID0gdHJ1ZTsKK2Zvcm0uYXBwZW5kQ2hp
bGQocmVxdWlyZWRJbnB1dCk7CitzaG91bGRCZSgicmVxdWlyZWRJbnB1dC52YWxpZGF0aW9uTWVz
c2FnZSIsICIndmFsdWUgbWlzc2luZyciKTsKKworLy8gQSByZXF1aXJlZCB0ZXh0YXJlYSB3aXRo
IGFuIGVtcHR5IHZhbHVlCit2YXIgcmVxdWlyZWRUZXh0QXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInRleHRhcmVhIik7CityZXF1aXJlZFRleHRBcmVhLm5hbWUgPSAicmVxdWlyZWRUZXh0
QXJlYSI7CityZXF1aXJlZFRleHRBcmVhLnJlcXVpcmVkID0gdHJ1ZTsKK2Zvcm0uYXBwZW5kQ2hp
bGQocmVxdWlyZWRUZXh0QXJlYSk7CitzaG91bGRCZSgicmVxdWlyZWRUZXh0QXJlYS52YWxpZGF0
aW9uTWVzc2FnZSIsICIndmFsdWUgbWlzc2luZyciKTsKKworLy8gQSB0eXBlPWVtYWlsIGlucHV0
IGZvciB0aGUgInR5cGUgbWlzbWF0Y2giIGZsYWcKK3ZhciBlbWFpbElucHV0ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKK2VtYWlsSW5wdXQubmFtZSA9ICJlbWFpbElucHV0IjsK
K2VtYWlsSW5wdXQudHlwZSA9ICJlbWFpbCI7CitlbWFpbElucHV0LnZhbHVlID0gImluY29ycmVj
dFZhbHVlIjsKK2Zvcm0uYXBwZW5kQ2hpbGQoZW1haWxJbnB1dCk7CitzaG91bGRCZSgiZW1haWxJ
bnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICIndHlwZSBtaXNtYXRjaCciKTsKKworLy8gQSAicmFu
Z2VkIiBpbnB1dCBmb3IgInJhbmdlIHVuZGVyZmxvdyIgZmxhZwordmFyIHVuZGVySW5wdXQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwordW5kZXJJbnB1dC5uYW1lID0gInVuZGVy
SW5wdXQiOwordW5kZXJJbnB1dC50eXBlID0gInJhbmdlIjsKK3VuZGVySW5wdXQubWluID0gIjIi
OwordW5kZXJJbnB1dC52YWx1ZSA9ICIxIjsKK2Zvcm0uYXBwZW5kQ2hpbGQodW5kZXJJbnB1dCk7
CitzaG91bGRCZSgidW5kZXJJbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICIncmFuZ2UgdW5kZXJm
bG93JyIpOworCisvLyBBICJyYW5nZWQiIGlucHV0IGZvciAicmFuZ2Ugb3ZlcmZsb3ciIGZsYWcK
K3ZhciBvdmVySW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworb3Zlcklu
cHV0Lm5hbWUgPSAib3ZlcklucHV0IjsKK292ZXJJbnB1dC50eXBlID0gInJhbmdlIjsKK292ZXJJ
bnB1dC5tYXggPSAiMiI7CitvdmVySW5wdXQudmFsdWUgPSAiMyI7Citmb3JtLmFwcGVuZENoaWxk
KG92ZXJJbnB1dCk7CitzaG91bGRCZSgib3ZlcklucHV0LnZhbGlkYXRpb25NZXNzYWdlIiwgIidy
YW5nZSBvdmVyZmxvdyciKTsKKworLy8gQSBidXR0b24gY2FuJ3QgYmUgdmFsaXRlZCBhbmQsIHRo
dXMsIGhhcyBhIGJsYW5rIHZhbGlkYXRpb25NZXNzYWdlCit2YXIgYnV0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiYnV0dG9uIik7CitidXQubmFtZSA9ICJidXR0b24iOworZm9ybS5hcHBlbmRD
aGlsZChidXQpOworc2hvdWxkQmUoImJ1dC52YWxpZGF0aW9uTWVzc2FnZSIsICInJyIpOworCisv
LyBBbiBpbnB1dCBjb250cm9sIHdpdGggbm8gbmFtZSwgc28gaXQgY2FuJ3QgYmUgdmFsaWRhdGVk
ICh3aWxsVmFsaWRhdGUgPSBmYWxzZSkKK3ZhciBhbm9uaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJpbnB1dCIpOworZm9ybS5hcHBlbmRDaGlsZChhbm9uaW5wdXQpOworc2hvdWxkQmUo
ImFub25pbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICInJyIpCisKKy8vIEZpZWxkc2V0cyBjYW4n
dCBiZSB2YWxpZGF0ZWQKK3ZhciBoYXBweUZpZWxkc2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZmllbGRzZXQiKTsKK2hhcHB5RmllbGRzZXQubmFtZSA9ICJmaWVsZHNldCI7Citmb3JtLmFw
cGVuZENoaWxkKGhhcHB5RmllbGRzZXQpOworc2hvdWxkQmUoImhhcHB5RmllbGRzZXQudmFsaWRh
dGlvbk1lc3NhZ2UiLCAiJyciKTsKKworLy8gU2VsZWN0IGNvbnRyb2xzIGNhbid0IGJlIHZhbGlk
YXRlZCB0b28KK3ZhciBoYXBweVNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVj
dCIpOworaGFwcHlTZWxlY3QubmFtZSA9ICJzZWxlY3QiOworZm9ybS5hcHBlbmRDaGlsZChoYXBw
eVNlbGVjdCk7CitzaG91bGRCZSgiaGFwcHlTZWxlY3QudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJyci
KTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAkocmV2aXNpb24gNTEwNDUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNTY3NiwzICs1Njc2LDYgQEAgaHR0cC90ZXN0cy9z
ZWN1cml0eS9pc29sYXRlZFdvcmxkL2RpZENsZQogCiAjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxp
dHkgdG8gRHVtcFJlbmRlclRyZWUgdG8gaGFuZGxlIGVycm9yIHBhZ2VzCiBmYXN0L2hpc3Rvcnkv
YmFjay1mb3J3YXJkLXJlc2V0LWFmdGVyLWVycm9yLWhhbmRsaW5nLmh0bWwKKworIyB2YWxpZGF0
aW9uTWVzc2FnZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3OTU5
CitmYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
U2tpcHBlZAkocmV2aXNpb24gNTEwNDUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkCSh3b3JraW5nIGNvcHkpCkBAIC01MDY0LDMgKzUwNjQsNiBAQCB3ZWJzb2NrZXQvdGVzdHMK
IAogIyBOZWVkIHJlYmFzZWxpbmU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNjgzMAogZmFzdC9tdWx0aWNvbC9zaW5nbGUtbGluZS5odG1sCisKKyMgdmFsaWRhdGlv
bk1lc3NhZ2U6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzk1OQor
ZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
U2tpcHBlZAkocmV2aXNpb24gNTEwNDUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZAkod29ya2luZyBjb3B5KQpAQCAtNjk4LDMgKzY5OCw2IEBAIGluc3BlY3Rvci90aW1lbGlu
ZS1wYWludC5odG1sCiAKICMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVuZGVy
VHJlZSB0byBoYW5kbGUgZXJyb3IgcGFnZXMKIGZhc3QvaGlzdG9yeS9iYWNrLWZvcndhcmQtcmVz
ZXQtYWZ0ZXItZXJyb3ItaGFuZGxpbmcuaHRtbAorCisjIHZhbGlkYXRpb25NZXNzYWdlOiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc5NTkKK2Zhc3QvZm9ybXMvdmFs
aWRhdGlvbk1lc3NhZ2UuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43327</attachid>
            <date>2009-11-16 14:33:21 -0800</date>
            <delta_ts>2009-11-18 21:40:42 -0800</delta_ts>
            <desc>Patch v2c, corrected</desc>
            <filename>bug-27959-20091116233317.patch</filename>
            <type>text/plain</type>
            <size>35294</size>
            <attacher name="Michelangelo De Simone">michelangelo</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTA1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMTEtMTYgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxtaWNk
ZXNpbUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRml4IGZvciA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI3OTU5Pi4KKyAgICAgICAgU3VwcG9ydCBmb3IgdmFsaWRhdGlvbk1lc3NhZ2UgYXR0cmlidXRl
LCBhcyBwZXIgSFRNTDUgc3BlY3MuCisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jtcy92YWxpZGF0
aW9uTWVzc2FnZS5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbDog
dmFsaWRhdGlvbk1lc3NhZ2UgYXR0cmlidXRlCisgICAgICAgICogaHRtbC9IVE1MRmllbGRTZXRF
bGVtZW50LmlkbDogdmFsaWRhdGlvbk1lc3NhZ2UgYXR0cmlidXRlCisgICAgICAgICogaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOiB2YWxpZGF0
aW9uTWVzc2FnZSBhdHRyaWJ1dGUKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50Lmlk
bDogdmFsaWRhdGlvbk1lc3NhZ2UgYXR0cmlidXRlCisgICAgICAgICogaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmlkbDogdmFsaWRhdGlvbk1lc3NhZ2UgYXR0cmlidXRlCisgICAgICAgICogaHRt
bC9WYWxpZGl0eVN0YXRlLmNwcDogbmV3IG1ldGhvZCB0byByZXRyaWV2ZSBwZXJ0aW5lbnQgbG9j
YWxpemVkIHRleHQgCisgICAgICAgICogaHRtbC9WYWxpZGl0eVN0YXRlLmg6CisgICAgICAgICog
cGFnZS9tYWMvV2ViQ29yZVZpZXdGYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oOgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5n
c0FuZHJvaWQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Mb2NhbGl6ZWRTdHJpbmdzR3Rr
LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Mb2NhbGl6ZWRTdHJpbmdzTWFjLm1tOgorICAgICAg
ICAqIHBsYXRmb3JtL3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHA6CisKIDIwMDktMTEtMTYgIE1h
cmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBBdHRlbXB0IHRvIGZpeCB0aGUg
YnVpbGQuICBMYW5kIGEgZmlsZSB0aGF0IHdhcyBtaXNzaW5nIGZyb20gcjUxMDQ5LgpJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiA1MTA0NSkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIERPTVN0cmluZyAg
ICAgICAgICAgIHR5cGU7CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgICAgICB2YWx1ZTsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgICAgICAgICB3aWxsVmFsaWRhdGU7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgICAgICAgdmFsaWRhdGlvbk1lc3Nh
Z2U7CiAgICAgICAgIGJvb2xlYW4gIGNoZWNrVmFsaWRpdHkoKTsKICAgICAgICAgdm9pZCBzZXRD
dXN0b21WYWxpZGl0eShpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIGVycm9yKTsKICAgICAgICAgdm9pZCBjbGljaygpOwpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxGaWVsZFNldEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1M
RmllbGRTZXRFbGVtZW50LmlkbAkocmV2aXNpb24gNTEwNDUpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TEZpZWxkU2V0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAgbW9k
dWxlIGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRpdHlTdGF0ZSAgIHZh
bGlkaXR5OwogI2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAg
ICAgd2lsbFZhbGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAg
ICAgIHZhbGlkYXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7
CiAgICAgICAgIHZvaWQgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVk
T3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogICAgIH07CkluZGV4OiBXZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1MTA0NSkKKysrIFdl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
Mjg4LDYgKzI4OCwxMSBAQCBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OndpbGxWYWxpZGF0
CiAgICAgcmV0dXJuIGZvcm0oKSAmJiAhbmFtZSgpLmlzRW1wdHkoKSAmJiAhZGlzYWJsZWQoKSAm
JiAhaXNSZWFkT25seUZvcm1Db250cm9sKCk7CiB9CiAKK1N0cmluZyBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Ojp2YWxpZGF0aW9uTWVzc2FnZSgpCit7CisgICAgcmV0dXJuIHZhbGlkaXR5KCktPnZh
bGlkYXRpb25NZXNzYWdlKCk7Cit9CisKIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6Y2hl
Y2tWYWxpZGl0eSgpCiB7CiAgICAgaWYgKHdpbGxWYWxpZGF0ZSgpICYmICFpc1ZhbGlkRm9ybUNv
bnRyb2xFbGVtZW50KCkpIHsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
aAkocmV2aXNpb24gNTEwNDUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNiArMTA3LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgc2hvcnQgdGFiSW5kZXgoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCB3aWxsVmFsaWRh
dGUoKSBjb25zdDsKKyAgICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2UoKTsKICAgICBib29sIGNo
ZWNrVmFsaWRpdHkoKTsKICAgICB2b2lkIHVwZGF0ZVZhbGlkaXR5KCk7CiAgICAgdm9pZCBzZXRD
dXN0b21WYWxpZGl0eShjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5pZGwJKHJldmlzaW9uIDUxMDQ1KQorKysgV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxPcHRpb25FbGVtZW50IHNlbGVjdGVkT3B0aW9uOwog
I2VuZGlmCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZh
bGlkYXRlOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIHZhbGlk
YXRpb25NZXNzYWdlOwogICAgICAgICBib29sZWFuICAgICAgICAgICAgY2hlY2tWYWxpZGl0eSgp
OwogICAgICAgICB2b2lkICAgICAgICAgICAgICAgc2V0Q3VzdG9tVmFsaWRpdHkoaW4gW0NvbnZl
cnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBlcnJvcik7CiAgICAgICAg
IHZvaWQgICAgICAgICAgICAgICBzZWxlY3QoKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MU2Vs
ZWN0RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmlkbAkocmV2aXNpb24gNTEwNDUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIG1vZHVsZSBodG1sIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgICB2YWxpZGl0eTsKICNlbmRp
ZgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgIHdpbGxWYWxpZGF0
ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICB2YWxpZGF0aW9u
TWVzc2FnZTsKICAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGNoZWNrVmFsaWRpdHkoKTsKICAg
ICAgICAgdm9pZCAgICAgICAgICAgICAgIHNldEN1c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5k
ZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgZXJyb3IpOwogCkluZGV4OiBXZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCShyZXZpc2lvbiA1MTA0NSkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgs
NyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHZvaWQgICAgIHNlbGVjdCgpOwogCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgd2lsbFZhbGlkYXRlOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIHZhbGlkYXRpb25NZXNzYWdlOwog
ICAgICAgICBib29sZWFuICBjaGVja1ZhbGlkaXR5KCk7CiAgICAgICAgIHZvaWQgICAgIHNldEN1
c3RvbVZhbGlkaXR5KGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01T
dHJpbmcgZXJyb3IpOwogCkluZGV4OiBXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuY3BwCShyZXZpc2lvbiA1MTA0
NSkKKysrIFdlYkNvcmUvaHRtbC9WYWxpZGl0eVN0YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5n
cy5oIgogI2luY2x1ZGUgIlJlZ3VsYXJFeHByZXNzaW9uLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgogCkBAIC00Myw2ICs0NCwzMSBAQCBWYWxpZGl0eVN0YXRlOjpWYWxpZGl0eVN0
YXRlKEhUTUxGb3JtQ29uCiAgICAgQVNTRVJUKHBhcmVudCk7CiB9CiAKK1N0cmluZyBWYWxpZGl0
eVN0YXRlOjp2YWxpZGF0aW9uTWVzc2FnZSgpCit7CisgICAgaWYgKCFjb250cm9sKCktPndpbGxW
YWxpZGF0ZSgpKQorICAgICAgICByZXR1cm4gZW1wdHlBdG9tOworCisgICAgaWYgKGN1c3RvbUVy
cm9yKCkpCisgICAgICAgIHJldHVybiBtX2N1c3RvbUVycm9yTWVzc2FnZTsKKyAgICBlbHNlIGlm
ICh2YWx1ZU1pc3NpbmcoKSkKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlVmFsdWVN
aXNzaW5nVGV4dCgpOworICAgIGVsc2UgaWYgKHR5cGVNaXNtYXRjaCgpKQorICAgICAgICByZXR1
cm4gdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgZWxzZSBpZiAocGF0
dGVybk1pc21hdGNoKCkpCisgICAgICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5N
aXNtYXRjaFRleHQoKTsKKyAgICBlbHNlIGlmICh0b29Mb25nKCkpCisgICAgICAgIHJldHVybiB2
YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7CisgICAgZWxzZSBpZiAocmFuZ2VVbmRlcmZs
b3coKSkKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KCk7CisgICAgZWxzZSBpZiAocmFuZ2VPdmVyZmxvdygpKQorICAgICAgICByZXR1cm4gdmFsaWRh
dGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpOworICAgIGVsc2UgaWYgKHN0ZXBNaXNtYXRj
aCgpKQorICAgICAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCk7
CisKKyAgICByZXR1cm4gZW1wdHlBdG9tOworfQorCiBib29sIFZhbGlkaXR5U3RhdGU6OnR5cGVN
aXNtYXRjaCgpCiB7CiAgICAgaWYgKCFjb250cm9sKCktPmhhc1RhZ05hbWUoaW5wdXRUYWcpKQpJ
bmRleDogV2ViQ29yZS9odG1sL1ZhbGlkaXR5U3RhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvVmFsaWRpdHlTdGF0ZS5oCShyZXZpc2lvbiA1MTA0NSkKKysrIFdlYkNvcmUvaHRtbC9W
YWxpZGl0eVN0YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGNvbnRyb2woKSBj
b25zdCB7IHJldHVybiBtX2NvbnRyb2w7IH0KIAorICAgICAgICBTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2UoKTsKICAgICAgICAgdm9pZCBzZXRDdXN0b21FcnJvck1lc3NhZ2UoY29uc3QgU3RyaW5n
JiBtZXNzYWdlKSB7IG1fY3VzdG9tRXJyb3JNZXNzYWdlID0gbWVzc2FnZTsgfQogCiAgICAgICAg
IGJvb2wgdmFsdWVNaXNzaW5nKCkgeyByZXR1cm4gY29udHJvbCgpLT52YWx1ZU1pc3NpbmcoKTsg
fQpJbmRleDogV2ViQ29yZS9wYWdlL21hYy9XZWJDb3JlVmlld0ZhY3RvcnkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvbWFjL1dlYkNvcmVWaWV3RmFjdG9yeS5oCShyZXZpc2lvbiA1MTA0
NSkKKysrIFdlYkNvcmUvcGFnZS9tYWMvV2ViQ29yZVZpZXdGYWN0b3J5LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTE1MCw2ICsxNTAsMTMgQEAKIC0gKE5TU3RyaW5nKilsb2NhbGl6ZWRNZWRpYUNvbnRy
b2xFbGVtZW50SGVscFRleHQ6KE5TU3RyaW5nKiluYW1lOwogLSAoTlNTdHJpbmcqKWxvY2FsaXpl
ZE1lZGlhVGltZURlc2NyaXB0aW9uOihmbG9hdCl0aW1lOwogCistIChOU1N0cmluZyAqKXZhbGlk
YXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dDsKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1l
c3NhZ2VUeXBlTWlzbWF0Y2hUZXh0OworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVBh
dHRlcm5NaXNtYXRjaFRleHQ7CistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlVG9vTG9u
Z1RleHQ7CistIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
OworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0OworLSAo
TlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQ7CiAKIEBlbmQKIApJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHJldmlzaW9uIDUxMDQ1KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0
MSw2ICsxNDEsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBsb2NhbGl6ZWRN
ZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKGNvbnN0IFN0cmluZyYpOwogICAgIFN0cmluZyBsb2Nh
bGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgU3Ry
aW5nIGxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0KTsKKworICAgIFN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKTsKKyAgICBTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdl
UGF0dGVybk1pc21hdGNoVGV4dCgpOworICAgIFN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xv
bmdUZXh0KCk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KCk7CisgICAgU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKTsKKyAg
ICBTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCk7CisKIH0KIAogI2Vu
ZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvTG9jYWxpemVkU3RyaW5nc0FuZHJv
aWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9Mb2NhbGl6ZWRT
dHJpbmdzQW5kcm9pZC5jcHAJKHJldmlzaW9uIDUxMDQ1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9h
bmRyb2lkL0xvY2FsaXplZFN0cmluZ3NBbmRyb2lkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAx
LDQgKzMwMSw0NiBAQCBTdHJpbmcgaW5wdXRFbGVtZW50QWx0VGV4dCgpCiAgICAgcmV0dXJuIFN0
cmluZygpOwogfQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVz
c2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0
aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlU3RlcE1p
c21hdGNoVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCShyZXZpc2lvbiA1MTA0NSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3RrL0xvY2FsaXplZFN0cmluZ3NHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NjcsNCArNDY3LDQ2IEBAIFN0cmluZyBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihm
bG8KIH0KICNlbmRpZiAgLy8gRU5BQkxFKFZJREVPKQogCitTdHJpbmcgdmFsaWRhdGlvbk1lc3Nh
Z2VWYWx1ZU1pc3NpbmdUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRh
dGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJm
bG93VGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
aGFpa3UvTG9jYWxpemVkU3RyaW5nc0hhaWt1LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2hhaWt1L0xvY2FsaXplZFN0cmluZ3NIYWlrdS5jcHAJKHJldmlzaW9uIDUxMDQ1KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9oYWlrdS9Mb2NhbGl6ZWRTdHJpbmdzSGFpa3UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNDIsNSArMzQyLDQ3IEBAIFN0cmluZyBBWERlZmluaXRpb25MaXN0RGVm
aW5pdGlvblRleHQoKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorU3RyaW5nIHZhbGlkYXRp
b25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNt
YXRjaFRleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5n
IHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZVVuZGVyZmxvd1RleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0
cmluZyB2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsaXplZFN0cmluZ3NNYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxpemVkU3RyaW5nc01hYy5t
bQkocmV2aXNpb24gNTEwNDUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbGl6ZWRTdHJp
bmdzTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NDcsNSArNzQ3LDYwIEBAIFN0cmluZyBsb2Nh
bGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG8KICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQoreworICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkg
c2hhcmVkRmFjdG9yeV0gdmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0XTsKKyAgICBF
TkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCit7CisgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOworICAgIHJldHVybiBbW1dlYkNvcmVWaWV3RmFjdG9yeSBzaGFy
ZWRGYWN0b3J5XSB2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHRdOworICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJl
ZEZhY3RvcnldIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dF07CisgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CisgICAgcmV0dXJuIFtbV2ViQ29yZVZpZXdGYWN0b3J5IHNoYXJlZEZhY3Rv
cnldIHZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHRdOworICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQoreworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKKyAgICByZXR1cm4gW1tXZWJDb3JlVmlld0ZhY3Rvcnkgc2hhcmVkRmFjdG9yeV0gdmFs
aWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHRdOworICAgIEVORF9CTE9DS19PQkpDX0VY
Q0VQVElPTlM7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCit7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIHJldHVybiBbW1dlYkNvcmVWaWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxp
ZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0XTsKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENF
UFRJT05TOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlU3RlcE1pc21hdGNoVGV4dCgpCit7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
OworICAgIHJldHVybiBbW1dlYkNvcmVWaWV3RmFjdG9yeSBzaGFyZWRGYWN0b3J5XSB2YWxpZGF0
aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHRdOworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7CisgICAgcmV0dXJuIFN0cmluZygpOworfQogCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L3d4L0xvY2FsaXplZFN0cmluZ3NXeC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS93eC9Mb2NhbGl6ZWRTdHJpbmdzV3guY3BwCShyZXZpc2lvbiA1MTA0NSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIz
LDQgKzMyMyw0NiBAQCBTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25UZXh0KCkKICAg
ICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlz
c2luZ1RleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygp
OworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZh
bGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2Fn
ZVRvb0xvbmdUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJp
bmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3Ry
aW5nIHZhbGlkYXRpb25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1l
c3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViS2l0
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MTA1
MSkKKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAor
MjAwOS0xMS0xNiAgTWljaGVsYW5nZWxvIERlIFNpbW9uZSAgPG1pY2Rlc2ltQGdtYWlsLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9y
IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc5NTk+LgorICAgICAg
ICBTdXBwb3J0IGZvciB2YWxpZGF0aW9uTWVzc2FnZSBhdHRyaWJ1dGUsIGFzIHBlciBIVE1MNSBz
cGVjcy4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczogbmV3
IGxvY2FsaXphYmxlIHN0cmluZ3MKKwogMjAwOS0xMS0xMyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdlYkZyYW1lTG9hZERlbGVnYXRlUHJpdmF0LmggdG8g
V2ViS2l0Lnhjb2RlcHJvagpJbmRleDogV2ViS2l0L0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUu
c3RyaW5ncwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5z
dHJpbmdzCShyZXZpc2lvbiA1MTA0NSkKKysrIFdlYktpdC9FbmdsaXNoLmxwcm9qL0xvY2FsaXph
YmxlLnN0cmluZ3MJKHdvcmtpbmcgY29weSkKQEAgLTY0OSw2ICs2NDksOSBAQAogAC8AKgAgAEgA
VABUAFAAIAByAGUAcwB1AGwAdAAgAGMAbwBkAGUAIABzAHQAcgBpAG4AZwAgACoALwAKIAAiAHAA
YQByAHQAaQBhAGwAIABjAG8AbgB0AGUAbgB0ACIAIAA9ACAAIgBwAGEAcgB0AGkAYQBsACAAYwBv
AG4AdABlAG4AdAAiADsACiAACisALwAqACAAVgBhAGwAaQBkAGEAdABpAG8AbgAgAG0AZQBzAHMA
YQBnAGUAIABmAG8AcgAgAGkAbgBwAHUAdAAgAGYAbwByAG0AIABjAG8AbgB0AHIAbwBsAHMAIABy
AGUAcQB1AGkAcgBpAG4AZwAgAGEAIABjAG8AbgBzAHQAcgBhAGkAbgBlAGQAIAB2AGEAbAB1AGUA
IABhAGMAYwBvAHIAZABpAG4AZwAgAHQAbwAgAHAAYQB0AHQAZQByAG4AIAAqAC8ACisAIgBwAGEA
dAB0AGUAcgBuACAAbQBpAHMAbQBhAHQAYwBoACIAIAA9ACAAIgBwAGEAdAB0AGUAcgBuACAAbQBp
AHMAbQBhAHQAYwBoACIAOwAKKwAKIAAvACoAIABhAGMAYwBlAHMAcwBpAGIAaQBsAGkAdAB5ACAA
cgBvAGwAZQAgAGQAZQBzAGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAAcABhAHUAcwBlACAAYgB1
AHQAdABvAG4AIAAqAC8ACiAAIgBwAGEAdQBzAGUAIgAgAD0AIAAiAHAAYQB1AHMAZQAiADsACiAA
CkBAIC02NzAsNiArNjczLDEyIEBACiAALwAqACAASABUAFQAUAAgAHIAZQBzAHUAbAB0ACAAYwBv
AGQAZQAgAHMAdAByAGkAbgBnACAAKgAvAAogACIAcAByAG8AeAB5ACAAYQB1AHQAaABlAG4AdABp
AGMAYQB0AGkAbwBuACAAcgBlAHEAdQBpAHIAZQBkACIAIAA9ACAAIgBwAHIAbwB4AHkAIABhAHUA
dABoAGUAbgB0AGkAYwBhAHQAaQBvAG4AIAByAGUAcQB1AGkAcgBlAGQAIgA7AAogAAorAC8AKgAg
AFYAYQBsAGkAZABhAHQAaQBvAG4AIABtAGUAcwBzAGEAZwBlACAAZgBvAHIAIABpAG4AcAB1AHQA
IABmAG8AcgBtACAAYwBvAG4AdAByAG8AbABzACAAdwBpAHQAaAAgAHYAYQBsAHUAZQAgAGgAaQBn
AGgAZQByACAAdABoAGEAbgAgAGEAbABsAG8AdwBlAGQAIABtAGEAeABpAG0AdQBtACAAKgAvAAor
ACIAcgBhAG4AZwBlACAAbwB2AGUAcgBmAGwAbwB3ACIAIAA9ACAAIgByAGEAbgBnAGUAIABvAHYA
ZQByAGYAbABvAHcAIgA7AAorAAorAC8AKgAgAFYAYQBsAGkAZABhAHQAaQBvAG4AIABtAGUAcwBz
AGEAZwBlACAAZgBvAHIAIABpAG4AcAB1AHQAIABmAG8AcgBtACAAYwBvAG4AdAByAG8AbABzACAA
dwBpAHQAaAAgAHYAYQBsAHUAZQAgAGwAbwB3AGUAcgAgAHQAaABhAG4AIABhAGwAbABvAHcAZQBk
ACAAbQBpAG4AaQBtAHUAbQAgACoALwAKKwAiAHIAYQBuAGcAZQAgAHUAbgBkAGUAcgBmAGwAbwB3
ACIAIAA9ACAAIgByAGEAbgBnAGUAIAB1AG4AZABlAHIAZgBsAG8AdwAiADsACisACiAALwAqACAA
SABUAFQAUAAgAHIAZQBzAHUAbAB0ACAAYwBvAGQAZQAgAHMAdAByAGkAbgBnACAAKgAvAAogACIA
cgBlAGQAaQByAGUAYwB0AGUAZAAiACAAPQAgACIAcgBlAGQAaQByAGUAYwB0AGUAZAAiADsACiAA
CkBAIC03MjcsNiArNzM2LDkgQEAKIAAvACoAIABhAGMAYwBlAHMAcwBpAGIAaQBsAGkAdAB5ACAA
cgBvAGwAZQAgAGQAZQBzAGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAAbQBvAHYAaQBlACAAcwB0
AGEAdAB1AHMAIAAqAC8ACiAAIgBzAHQAYQB0AHUAcwAiACAAPQAgACIAcwB0AGEAdAB1AHMAIgA7
AAogAAorAC8AKgAgAFYAYQBsAGkAZABhAHQAaQBvAG4AIABtAGUAcwBzAGEAZwBlACAAZgBvAHIA
IABpAG4AcAB1AHQAIABmAG8AcgBtACAAYwBvAG4AdAByAG8AbABzACAAdwBpAHQAaAAgAHYAYQBs
AHUAZQAgAG4AbwB0ACAAcgBlAHMAcABlAGMAdABpAG4AZwAgAHQAaABlACAAcwB0AGUAcAAgAGEA
dAB0AHIAaQBiAHUAdABlACAAKgAvAAorACIAcwB0AGUAcAAgAG0AaQBzAG0AYQB0AGMAaAAiACAA
PQAgACIAcwB0AGUAcAAgAG0AaQBzAG0AYQB0AGMAaAAiADsACisACiAALwAqACAASABUAFQAUAAg
AHIAZQBzAHUAbAB0ACAAYwBvAGQAZQAgAHMAdAByAGkAbgBnACAAKgAvAAogACIAcwB1AGMAYwBl
AHMAcwAiACAAPQAgACIAcwB1AGMAYwBlAHMAcwAiADsACiAACkBAIC03NDgsOSArNzYwLDE1IEBA
CiAALwAqACAAQQBuACAAQQBSAEkAQQAgAGEAYwBjAGUAcwBzAGkAYgBpAGwAaQB0AHkAIABnAHIA
bwB1AHAAIAB0AGgAYQB0ACAAYQBjAHQAcwAgAGEAcwAgAGEAbgAgAHUAcABkAGEAdABpAG4AZwAg
AHQAaQBtAGUAcgAuACAAKgAvAAogACIAdABpAG0AZQByACIAIAA9ACAAIgB0AGkAbQBlAHIAIgA7
AAogAAorAC8AKgAgAFYAYQBsAGkAZABhAHQAaQBvAG4AIABtAGUAcwBzAGEAZwBlACAAZgBvAHIA
IABmAG8AcgBtACAAYwBvAG4AdAByAG8AbAAgAGUAbABlAG0AZQBuAHQAcwAgAHcAaQB0AGgAIABh
ACAAdgBhAGwAdQBlACAAbABvAG4AZwBlAHIAIAB0AGgAYQBuACAAbQBhAHgAaQBtAHUAbQAgAGEA
bABsAG8AdwBlAGQAIABsAGUAbgBnAHQAaAAgACoALwAKKwAiAHQAbwBvACAAbABvAG4AZwAiACAA
PQAgACIAdABvAG8AIABsAG8AbgBnACIAOwAKKwAKIAAvACoAIABBAG4AIABBAFIASQBBACAAYQBj
AGMAZQBzAHMAaQBiAGkAbABpAHQAeQAgAGcAcgBvAHUAcAAgAHQAaABhAHQAIABhAGMAdABzACAA
YQBzACAAYQAgAHQAbwBvAGwAdABpAHAALgAgACoALwAKIAAiAHQAbwBvAGwAdABpAHAAIgAgAD0A
IAAiAHQAbwBvAGwAdABpAHAAIgA7AAogAAorAC8AKgAgAFYAYQBsAGkAZABhAHQAaQBvAG4AIABt
AGUAcwBzAGEAZwBlACAAZgBvAHIAIABpAG4AcAB1AHQAIABmAG8AcgBtACAAYwBvAG4AdAByAG8A
bABzACAAdwBpAHQAaAAgAGEAIAB2AGEAbAB1AGUAIABuAG8AdAAgAG0AYQB0AGMAaABpAG4AZwAg
AHQAeQBwAGUAIAAqAC8ACisAIgB0AHkAcABlACAAbQBpAHMAbQBhAHQAYwBoACIAIAA9ACAAIgB0
AHkAcABlACAAbQBpAHMAbQBhAHQAYwBoACIAOwAKKwAKIAAvACoAIABIAFQAVABQACAAcgBlAHMA
dQBsAHQAIABjAG8AZABlACAAcwB0AHIAaQBuAGcAIAAqAC8ACiAAIgB1AG4AYQBjAGMAZQBwAHQA
YQBiAGwAZQAiACAAPQAgACIAdQBuAGEAYwBjAGUAcAB0AGEAYgBsAGUAIgA7AAogAApAQCAtNzc4
LDYgKzc5Niw5IEBACiAALwAqACAASABUAFQAUAAgAHIAZQBzAHUAbAB0ACAAYwBvAGQAZQAgAHMA
dAByAGkAbgBnACAAKgAvAAogACIAdQBuAHMAdQBwAHAAbwByAHQAZQBkACAAdgBlAHIAcwBpAG8A
bgAiACAAPQAgACIAdQBuAHMAdQBwAHAAbwByAHQAZQBkACAAdgBlAHIAcwBpAG8AbgAiADsACiAA
CisALwAqACAAVgBhAGwAaQBkAGEAdABpAG8AbgAgAG0AZQBzAHMAYQBnAGUAIABmAG8AcgAgAHIA
ZQBxAHUAaQByAGUAZAAgAGYAbwByAG0AIABjAG8AbgB0AHIAbwBsACAAZQBsAGUAbQBlAG4AdABz
ACAAdABoAGEAdAAgAGgAYQB2AGUAIABuAG8AIAB2AGEAbAB1AGUAIAAqAC8ACisAIgB2AGEAbAB1
AGUAIABtAGkAcwBzAGkAbgBnACIAIAA9ACAAIgB2AGEAbAB1AGUAIABtAGkAcwBzAGkAbgBnACIA
OwAKKwAKIAAvACoAIABhAGMAYwBlAHMAcwBpAGIAaQBsAGkAdAB5ACAAcgBvAGwAZQAgAGQAZQBz
AGMAcgBpAHAAdABpAG8AbgAgAGYAbwByACAAdgBpAGQAZQBvACAAZQBsAGUAbQBlAG4AdAAgAGMA
bwBuAHQAcgBvAGwAbABlAHIAIAAqAC8ACiAAIgB2AGkAZABlAG8AIABlAGwAZQBtAGUAbgB0ACAA
YwBvAG4AdAByAG8AbABsAGUAcgAiACAAPQAgACIAdgBpAGQAZQBvACAAZQBsAGUAbQBlAG4AdAAg
AGMAbwBuAHQAcgBvAGwAbABlAHIAIgA7AAogAApJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA1
MTA1MSkKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxOSBAQAorMjAwOS0xMS0xNiAgTWljaGVsYW5nZWxvIERlIFNpbW9uZSAgPG1pY2Rlc2lt
QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGaXggZm9yIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc5
NTk+LgorICAgICAgICBTdXBwb3J0IGZvciB2YWxpZGF0aW9uTWVzc2FnZSBhdHRyaWJ1dGUsIGFz
IHBlciBIVE1MNSBzcGVjcy4KKworICAgICAgICAqIHNyYy9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5cGVNaXNtYXRjaFRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQpOgorICAgICAgICAo
V2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQpOgorICAgICAgICAo
V2ViQ29yZTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQpOgorCiAyMDA5LTExLTE2
ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBPbGl2ZXIgSHVudC4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvTG9jYWxpemVkU3RyaW5n
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9Mb2NhbGl6ZWRTdHJpbmdz
LmNwcAkocmV2aXNpb24gNTEwNDUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL0xvY2FsaXplZFN0
cmluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjIsNCArMjYyLDQ2IEBAIFN0cmluZyBsb2Nh
bGl6ZWRNZWRpYVRpbWVEZXNjcmlwdGlvbihmbG8KICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
K1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1p
c21hdGNoVGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5n
KCk7Cit9CisKK1N0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlk
YXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VPdmVyZmxvd1RleHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0
cmluZygpOworfQorCitTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxMDUxKQorKysgV2ViS2l0L21h
Yy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAwOS0xMS0xNiAg
TWljaGVsYW5nZWxvIERlIFNpbW9uZSAgPG1pY2Rlc2ltQGdtYWlsLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9yIDxodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc5NTk+LgorICAgICAgICBTdXBwb3J0IGZv
ciB2YWxpZGF0aW9uTWVzc2FnZSBhdHRyaWJ1dGUsIGFzIHBlciBIVE1MNSBzcGVjcy4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlZpZXdGYWN0b3J5Lm1tOgorICAgICAgICAoLVtXZWJW
aWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHRdKToKKyAgICAgICAg
KC1bV2ViVmlld0ZhY3RvcnkgdmFsaWRhdGlvbk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0XSk6Cisg
ICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNo
VGV4dF0pOgorICAgICAgICAoLVtXZWJWaWV3RmFjdG9yeSB2YWxpZGF0aW9uTWVzc2FnZVRvb0xv
bmdUZXh0XSk6CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25NZXNzYWdlUmFu
Z2VVbmRlcmZsb3dUZXh0XSk6CisgICAgICAgICgtW1dlYlZpZXdGYWN0b3J5IHZhbGlkYXRpb25N
ZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHRdKToKKyAgICAgICAgKC1bV2ViVmlld0ZhY3RvcnkgdmFs
aWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0XSk6CisKIDIwMDktMTEtMTQgIENocmlzIEZs
ZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KSW5kZXg6IFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3Rvcnku
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJWaWV3RmFjdG9y
eS5tbQkocmV2aXNpb24gNTEwNDUpCisrKyBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlZp
ZXdGYWN0b3J5Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NTYsNCArNzU2LDM5IEBACiAgICAgcmV0
dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OlVJX1NUUklORygiJTEkZCBzZWNvbmRzIiwg
ImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUg
PCA2MCBzZWNvbmRzIiksIHNlY29uZHNdOwogfQogCistIChOU1N0cmluZyAqKXZhbGlkYXRpb25N
ZXNzYWdlVmFsdWVNaXNzaW5nVGV4dAoreworICAgIHJldHVybiBVSV9TVFJJTkcoInZhbHVlIG1p
c3NpbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciByZXF1aXJlZCBmb3JtIGNvbnRyb2wgZWxl
bWVudHMgdGhhdCBoYXZlIG5vIHZhbHVlIik7Cit9CisKKy0gKE5TU3RyaW5nICopdmFsaWRhdGlv
bk1lc3NhZ2VUeXBlTWlzbWF0Y2hUZXh0Cit7CisgICAgcmV0dXJuIFVJX1NUUklORygidHlwZSBt
aXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0
aCBhIHZhbHVlIG5vdCBtYXRjaGluZyB0eXBlIik7Cit9CisKKy0gKE5TU3RyaW5nICopdmFsaWRh
dGlvbk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0Cit7CisgICAgcmV0dXJuIFVJX1NUUklORygi
cGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29u
dHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNjb3JkaW5nIHRvIHBhdHRlcm4i
KTsKK30KKworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0Cit7Cisg
ICAgcmV0dXJuIFVJX1NUUklORygidG9vIGxvbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBm
b3JtIGNvbnRyb2wgZWxlbWVudHMgd2l0aCBhIHZhbHVlIGxvbmdlciB0aGFuIG1heGltdW0gYWxs
b3dlZCBsZW5ndGgiKTsKK30KKworLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZVJhbmdl
VW5kZXJmbG93VGV4dAoreworICAgIHJldHVybiBVSV9TVFJJTkcoInJhbmdlIHVuZGVyZmxvdyIs
ICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBs
b3dlciB0aGFuIGFsbG93ZWQgbWluaW11bSIpOworfQorCistIChOU1N0cmluZyAqKXZhbGlkYXRp
b25NZXNzYWdlUmFuZ2VPdmVyZmxvd1RleHQKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJyYW5n
ZSBvdmVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMg
d2l0aCB2YWx1ZSBoaWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKTsKK30KKworLSAoTlNTdHJp
bmcgKil2YWxpZGF0aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQKK3sKKyAgICByZXR1cm4gVUlf
U1RSSU5HKCJzdGVwIG1pc21hdGNoIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgaW5wdXQgZm9y
bSBjb250cm9scyB3aXRoIHZhbHVlIG5vdCByZXNwZWN0aW5nIHRoZSBzdGVwIGF0dHJpYnV0ZSIp
OworfQorCiBAZW5kCkluZGV4OiBXZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvd2luL0NoYW5nZUxvZwkocmV2aXNpb24gNTEwNTMpCisrKyBXZWJLaXQvd2luL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDA5LTExLTE2ICBNaWNoZWxh
bmdlbG8gRGUgU2ltb25lICA8bWljZGVzaW1AZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBmb3IgPGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzk1OT4uCisgICAgICAgIFN1cHBvcnQgZm9yIHZhbGlk
YXRpb25NZXNzYWdlIGF0dHJpYnV0ZSwgYXMgcGVyIEhUTUw1IHNwZWNzLgorCisgICAgICAgICog
V2ViQ29yZUxvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlv
bk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25N
ZXNzYWdlVHlwZU1pc21hdGNoVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVz
c2FnZVBhdHRlcm5NaXNtYXRjaFRleHQpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGlvbk1l
c3NhZ2VUb29Mb25nVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlVW5kZXJmbG93VGV4dCk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJh
bmdlT3ZlcmZsb3dUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlU3Rl
cE1pc21hdGNoVGV4dCk6CisKIDIwMDktMTEtMTMgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEJ1aWxkIGZpeApJbmRleDogV2ViS2l0L3dpbi9XZWJDb3JlTG9jYWxp
emVkU3RyaW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJDb3JlTG9jYWxpemVk
U3RyaW5ncy5jcHAJKHJldmlzaW9uIDUxMDQ1KQorKysgV2ViS2l0L3dpbi9XZWJDb3JlTG9jYWxp
emVkU3RyaW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMSwzICsyMzEsMTAgQEAgU3RyaW5n
IFdlYkNvcmU6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaQogCiAjZW5kaWYgIC8vIEVOQUJMRShW
SURFTykKIAorU3RyaW5nIFdlYkNvcmU6OnZhbGlkYXRpb25NZXNzYWdlVmFsdWVNaXNzaW5nVGV4
dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RSX1VJX1NUUklORygidmFsdWUgbWlzc2luZyIsICJW
YWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHJlcXVpcmVkIGZvcm0gY29udHJvbCBlbGVtZW50cyB0aGF0
IGhhdmUgbm8gdmFsdWUiKSk7IH0KK1N0cmluZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaFRleHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9TVFJJTkcoInR5cGUg
bWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdp
dGggYSB2YWx1ZSBub3QgbWF0Y2hpbmcgdHlwZSIpKTsgfQorU3RyaW5nIFdlYkNvcmU6OnZhbGlk
YXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpIHsgcmV0dXJuIFN0cmluZyhMUENUU1RS
X1VJX1NUUklORygicGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlu
cHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNjb3JkaW5n
IHRvIHBhdHRlcm4iKSk7IH0KK1N0cmluZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVRvb0xv
bmdUZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJ0b28gbG9uZyIsICJW
YWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGZvcm0gY29udHJvbCBlbGVtZW50cyB3aXRoIGEgdmFsdWUg
bG9uZ2VyIHRoYW4gbWF4aW11bSBhbGxvd2VkIGxlbmd0aCIpKTsgfQorU3RyaW5nIFdlYkNvcmU6
OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQ
Q1RTVFJfVUlfU1RSSU5HKCJyYW5nZSB1bmRlcmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZv
ciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgbG93ZXIgdGhhbiBhbGxvd2VkIG1pbmlt
dW0iKSk7IH0KK1N0cmluZyBXZWJDb3JlOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dU
ZXh0KCkgeyByZXR1cm4gU3RyaW5nKExQQ1RTVFJfVUlfU1RSSU5HKCJyYW5nZSBvdmVyZmxvdyIs
ICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBo
aWdoZXIgdGhhbiBhbGxvd2VkIG1heGltdW0iKSk7IH0KK1N0cmluZyBXZWJDb3JlOjp2YWxpZGF0
aW9uTWVzc2FnZVN0ZXBNaXNtYXRjaFRleHQoKSB7IHJldHVybiBTdHJpbmcoTFBDVFNUUl9VSV9T
VFJJTkcoInN0ZXAgbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3Jt
IGNvbnRyb2xzIHdpdGggdmFsdWUgbm90IHJlc3BlY3RpbmcgdGhlIHN0ZXAgYXR0cmlidXRlIikp
OyB9CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1MTA1MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDA5LTExLTE2ICBNaWNoZWxhbmdlbG8g
RGUgU2ltb25lICA8bWljZGVzaW1AZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBmb3IgPGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNzk1OT4uCisgICAgICAgIFN1cHBvcnQgZm9yIHZhbGlkYXRpb25N
ZXNzYWdlIGF0dHJpYnV0ZSwgYXMgcGVyIEhUTUw1IHNwZWNzLgorCisgICAgICAgICogZmFzdC9k
b20vZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dDogdXBkYXRlZCB3aXRoIG5ldyBwcm9w
ZXJ0eQorICAgICAgICAqIGZhc3QvZG9tL3NjcmlwdC10ZXN0cy9kb21MaXN0RW51bWVyYXRpb24u
anM6IGRpdHRvCisgICAgICAgICogZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvdmFsaWRhdGlvbk1l
c3NhZ2UuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvdmFsaWRhdGlvbk1lc3NhZ2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNz
YWdlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAg
ICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6
CisKIDIwMDktMTEtMTYgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
ZG9tTGlzdEVudW1lcmF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9kb21MaXN0RW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA1MTA0
NSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL2RvbUxpc3RFbnVtZXJhdGlvbi1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgUEFTUyByZXN1bHRBcnJheVsyXS5p
IGlzICcyJwogUEFTUyByZXN1bHRBcnJheVsyXS5pdGVtIGlzIGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdzZWxlY3QnKVsyXQogCiBbb2JqZWN0IEhUTUxTZWxlY3RFbGVtZW50XQotUEFT
UyByZXN1bHRBcnJheS5sZW5ndGggaXMgMTQwCitQQVNTIHJlc3VsdEFycmF5Lmxlbmd0aCBpcyAx
NDEKIFBBU1MgcmVzdWx0QXJyYXlbMF0uaSBpcyAnMCcKIFBBU1MgcmVzdWx0QXJyYXlbMF0uaXRl
bSBpcyBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnb3B0aW9uJylbMF0KIFBBU1MgcmVz
dWx0QXJyYXlbMV0uaSBpcyAnMScKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10
ZXN0cy9kb21MaXN0RW51bWVyYXRpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2NyaXB0LXRlc3RzL2RvbUxpc3RFbnVtZXJhdGlvbi5qcwkocmV2aXNpb24gNTEwNDUp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvZG9tTGlzdEVudW1lcmF0aW9u
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNDEsNyArMTQxLDcgQEAgc2hvdWxkQmUoInJlc3VsdEFy
cmF5WzJdLml0ZW0iLCAiZG9jdW1lbgogLy8gSFRNTFNlbGVjdEVsZW1lbnQKIHZhciBodG1sU2Vs
ZWN0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzZWxlY3QnKVswXTsK
IHJlc3VsdEFycmF5ID0gaXRlcmF0ZUxpc3QoaHRtbFNlbGVjdEVsZW1lbnQpOwotc2hvdWxkQmUo
InJlc3VsdEFycmF5Lmxlbmd0aCIsICIxNDAiKTsKK3Nob3VsZEJlKCJyZXN1bHRBcnJheS5sZW5n
dGgiLCAiMTQxIik7CiBzaG91bGRCZSgicmVzdWx0QXJyYXlbMF0uaSIsICInMCciKTsKIHNob3Vs
ZEJlKCJyZXN1bHRBcnJheVswXS5pdGVtIiwgImRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCdvcHRpb24nKVswXSIpOwogc2hvdWxkQmUoInJlc3VsdEFycmF5WzFdLmkiLCAiJzEnIik7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdmFs
aWRhdGlvbk1lc3NhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBA
CitUZXN0IGZvciB2YWxpZGF0aW9uTWVzc2FnZSBET00gcHJvcGVydHkuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBhdHRlcm5JbnB1dC52YWxpZGF0aW9uTWVzc2FnZSBp
cyAncGF0dGVybiBtaXNtYXRjaCcKK1BBU1MgcmVxdWlyZWRJbnB1dC52YWxpZGF0aW9uTWVzc2Fn
ZSBpcyAndmFsdWUgbWlzc2luZycKK1BBU1MgcmVxdWlyZWRUZXh0QXJlYS52YWxpZGF0aW9uTWVz
c2FnZSBpcyAndmFsdWUgbWlzc2luZycKK1BBU1MgZW1haWxJbnB1dC52YWxpZGF0aW9uTWVzc2Fn
ZSBpcyAndHlwZSBtaXNtYXRjaCcKK1BBU1MgdW5kZXJJbnB1dC52YWxpZGF0aW9uTWVzc2FnZSBp
cyAncmFuZ2UgdW5kZXJmbG93JworUEFTUyBvdmVySW5wdXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMg
J3JhbmdlIG92ZXJmbG93JworUEFTUyBidXQudmFsaWRhdGlvbk1lc3NhZ2UgaXMgJycKK1BBU1Mg
YW5vbmlucHV0LnZhbGlkYXRpb25NZXNzYWdlIGlzICcnCitQQVNTIGhhcHB5RmllbGRzZXQudmFs
aWRhdGlvbk1lc3NhZ2UgaXMgJycKK1BBU1MgaGFwcHlTZWxlY3QudmFsaWRhdGlvbk1lc3NhZ2Ug
aXMgJycKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2FnZS5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy92YWxpZGF0aW9uTWVzc2Fn
ZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNz
cyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy92YWxpZGF0
aW9uTWVzc2FnZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlkYXRpb25NZXNzYWdlLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL3ZhbGlk
YXRpb25NZXNzYWdlLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9z
Y3JpcHQtdGVzdHMvdmFsaWRhdGlvbk1lc3NhZ2UuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NzYgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IGZvciB2YWxpZGF0aW9uTWVzc2FnZSBET00gcHJvcGVy
dHkuIik7CisKK3ZhciBmb3JtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZm9ybSIpOworCisv
LyBBbiBpbnB1dCBlbGVtZW50IHdpdGggYSBwYXR0ZXJuIHNldCBhbmQgYSBtaXNtYXRjaGVkIHZh
bHVlCit2YXIgcGF0dGVybklucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsK
K3BhdHRlcm5JbnB1dC5uYW1lID0gInBhdHRlcm5JbnB1dCI7CitwYXR0ZXJuSW5wdXQucGF0dGVy
biA9ICJsb3JlbSBpcHN1bSI7CitwYXR0ZXJuSW5wdXQudmFsdWUgPSAibG9yZW0iOworZm9ybS5h
cHBlbmRDaGlsZChwYXR0ZXJuSW5wdXQpOworc2hvdWxkQmUoInBhdHRlcm5JbnB1dC52YWxpZGF0
aW9uTWVzc2FnZSIsICIncGF0dGVybiBtaXNtYXRjaCciKTsKKworLy8gQSByZXF1aXJlZCBpbnB1
dCB3aXRoIGFuIGVtcHR5IHZhbHVlCit2YXIgcmVxdWlyZWRJbnB1dCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImlucHV0Iik7CityZXF1aXJlZElucHV0Lm5hbWUgPSAicmVxdWlyZWRJbnB1dCI7
CityZXF1aXJlZElucHV0LnJlcXVpcmVkID0gdHJ1ZTsKK2Zvcm0uYXBwZW5kQ2hpbGQocmVxdWly
ZWRJbnB1dCk7CitzaG91bGRCZSgicmVxdWlyZWRJbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICIn
dmFsdWUgbWlzc2luZyciKTsKKworLy8gQSByZXF1aXJlZCB0ZXh0YXJlYSB3aXRoIGFuIGVtcHR5
IHZhbHVlCit2YXIgcmVxdWlyZWRUZXh0QXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRl
eHRhcmVhIik7CityZXF1aXJlZFRleHRBcmVhLm5hbWUgPSAicmVxdWlyZWRUZXh0QXJlYSI7City
ZXF1aXJlZFRleHRBcmVhLnJlcXVpcmVkID0gdHJ1ZTsKK2Zvcm0uYXBwZW5kQ2hpbGQocmVxdWly
ZWRUZXh0QXJlYSk7CitzaG91bGRCZSgicmVxdWlyZWRUZXh0QXJlYS52YWxpZGF0aW9uTWVzc2Fn
ZSIsICIndmFsdWUgbWlzc2luZyciKTsKKworLy8gQSB0eXBlPWVtYWlsIGlucHV0IGZvciB0aGUg
InR5cGUgbWlzbWF0Y2giIGZsYWcKK3ZhciBlbWFpbElucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW5wdXQiKTsKK2VtYWlsSW5wdXQubmFtZSA9ICJlbWFpbElucHV0IjsKK2VtYWlsSW5w
dXQudHlwZSA9ICJlbWFpbCI7CitlbWFpbElucHV0LnZhbHVlID0gImluY29ycmVjdFZhbHVlIjsK
K2Zvcm0uYXBwZW5kQ2hpbGQoZW1haWxJbnB1dCk7CitzaG91bGRCZSgiZW1haWxJbnB1dC52YWxp
ZGF0aW9uTWVzc2FnZSIsICIndHlwZSBtaXNtYXRjaCciKTsKKworLy8gQSAicmFuZ2VkIiBpbnB1
dCBmb3IgInJhbmdlIHVuZGVyZmxvdyIgZmxhZwordmFyIHVuZGVySW5wdXQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpbnB1dCIpOwordW5kZXJJbnB1dC5uYW1lID0gInVuZGVySW5wdXQiOwor
dW5kZXJJbnB1dC50eXBlID0gInJhbmdlIjsKK3VuZGVySW5wdXQubWluID0gIjIiOwordW5kZXJJ
bnB1dC52YWx1ZSA9ICIxIjsKK2Zvcm0uYXBwZW5kQ2hpbGQodW5kZXJJbnB1dCk7CitzaG91bGRC
ZSgidW5kZXJJbnB1dC52YWxpZGF0aW9uTWVzc2FnZSIsICIncmFuZ2UgdW5kZXJmbG93JyIpOwor
CisvLyBBICJyYW5nZWQiIGlucHV0IGZvciAicmFuZ2Ugb3ZlcmZsb3ciIGZsYWcKK3ZhciBvdmVy
SW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOworb3ZlcklucHV0Lm5hbWUg
PSAib3ZlcklucHV0IjsKK292ZXJJbnB1dC50eXBlID0gInJhbmdlIjsKK292ZXJJbnB1dC5tYXgg
PSAiMiI7CitvdmVySW5wdXQudmFsdWUgPSAiMyI7Citmb3JtLmFwcGVuZENoaWxkKG92ZXJJbnB1
dCk7CitzaG91bGRCZSgib3ZlcklucHV0LnZhbGlkYXRpb25NZXNzYWdlIiwgIidyYW5nZSBvdmVy
ZmxvdyciKTsKKworLy8gQSBidXR0b24gY2FuJ3QgYmUgdmFsaXRlZCBhbmQsIHRodXMsIGhhcyBh
IGJsYW5rIHZhbGlkYXRpb25NZXNzYWdlCit2YXIgYnV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiYnV0dG9uIik7CitidXQubmFtZSA9ICJidXR0b24iOworZm9ybS5hcHBlbmRDaGlsZChidXQp
Oworc2hvdWxkQmUoImJ1dC52YWxpZGF0aW9uTWVzc2FnZSIsICInJyIpOworCisvLyBBbiBpbnB1
dCBjb250cm9sIHdpdGggbm8gbmFtZSwgc28gaXQgY2FuJ3QgYmUgdmFsaWRhdGVkICh3aWxsVmFs
aWRhdGUgPSBmYWxzZSkKK3ZhciBhbm9uaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJp
bnB1dCIpOworZm9ybS5hcHBlbmRDaGlsZChhbm9uaW5wdXQpOworc2hvdWxkQmUoImFub25pbnB1
dC52YWxpZGF0aW9uTWVzc2FnZSIsICInJyIpCisKKy8vIEZpZWxkc2V0cyBjYW4ndCBiZSB2YWxp
ZGF0ZWQKK3ZhciBoYXBweUZpZWxkc2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZmllbGRz
ZXQiKTsKK2hhcHB5RmllbGRzZXQubmFtZSA9ICJmaWVsZHNldCI7Citmb3JtLmFwcGVuZENoaWxk
KGhhcHB5RmllbGRzZXQpOworc2hvdWxkQmUoImhhcHB5RmllbGRzZXQudmFsaWRhdGlvbk1lc3Nh
Z2UiLCAiJyciKTsKKworLy8gU2VsZWN0IGNvbnRyb2xzIGNhbid0IGJlIHZhbGlkYXRlZCB0b28K
K3ZhciBoYXBweVNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOworaGFw
cHlTZWxlY3QubmFtZSA9ICJzZWxlY3QiOworZm9ybS5hcHBlbmRDaGlsZChoYXBweVNlbGVjdCk7
CitzaG91bGRCZSgiaGFwcHlTZWxlY3QudmFsaWRhdGlvbk1lc3NhZ2UiLCAiJyciKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZAkocmV2aXNpb24gNTEwNDUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAko
d29ya2luZyBjb3B5KQpAQCAtNTY3NiwzICs1Njc2LDYgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9p
c29sYXRlZFdvcmxkL2RpZENsZQogCiAjIE5lZWQgdG8gYWRkIGZ1bmN0aW9uYWxpdHkgdG8gRHVt
cFJlbmRlclRyZWUgdG8gaGFuZGxlIGVycm9yIHBhZ2VzCiBmYXN0L2hpc3RvcnkvYmFjay1mb3J3
YXJkLXJlc2V0LWFmdGVyLWVycm9yLWhhbmRsaW5nLmh0bWwKKworIyB2YWxpZGF0aW9uTWVzc2Fn
ZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3OTU5CitmYXN0L2Zv
cm1zL3ZhbGlkYXRpb25NZXNzYWdlLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAko
cmV2aXNpb24gNTEwNDUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MDY0LDMgKzUwNjQsNiBAQCB3ZWJzb2NrZXQvdGVzdHMKIAogIyBOZWVk
IHJlYmFzZWxpbmU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjgz
MAogZmFzdC9tdWx0aWNvbC9zaW5nbGUtbGluZS5odG1sCisKKyMgdmFsaWRhdGlvbk1lc3NhZ2U6
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzk1OQorZmFzdC9mb3Jt
cy92YWxpZGF0aW9uTWVzc2FnZS5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
U2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAko
cmV2aXNpb24gNTEwNDUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkod29y
a2luZyBjb3B5KQpAQCAtNjk4LDMgKzY5OCw2IEBAIGluc3BlY3Rvci90aW1lbGluZS1wYWludC5o
dG1sCiAKICMgTmVlZCB0byBhZGQgZnVuY3Rpb25hbGl0eSB0byBEdW1wUmVuZGVyVHJlZSB0byBo
YW5kbGUgZXJyb3IgcGFnZXMKIGZhc3QvaGlzdG9yeS9iYWNrLWZvcndhcmQtcmVzZXQtYWZ0ZXIt
ZXJyb3ItaGFuZGxpbmcuaHRtbAorCisjIHZhbGlkYXRpb25NZXNzYWdlOiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc5NTkKK2Zhc3QvZm9ybXMvdmFsaWRhdGlvbk1l
c3NhZ2UuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>