<?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>38688</bug_id>
          
          <creation_ts>2010-05-06 14:03:01 -0700</creation_ts>
          <short_desc>Support control attribute of HTMLLabelElement</short_desc>
          <delta_ts>2010-05-12 06:06:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>19264</blocked>
    
    <blocked>38713</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>221958</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-05-06 14:03:01 -0700</bug_when>
    <thetext>From http://dev.w3.org/html5/spec/Overview.html#the-label-element, the control attribute should return a reference to the control associated with the label, but only if it is a labelable control.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221961</commentid>
    <comment_count>1</comment_count>
      <attachid>55296</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-05-06 14:08:00 -0700</bug_when>
    <thetext>Created attachment 55296
Patch adding support for the control attribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222012</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 15:37:11 -0700</bug_when>
    <thetext>Attachment 55296 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2168027</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222043</commentid>
    <comment_count>3</comment_count>
      <attachid>55316</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-05-06 16:26:45 -0700</bug_when>
    <thetext>Created attachment 55316
Attempt to fix Chromium build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222080</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 17:45:45 -0700</bug_when>
    <thetext>Attachment 55316 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2174030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222107</commentid>
    <comment_count>5</comment_count>
      <attachid>55332</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-05-06 18:27:29 -0700</bug_when>
    <thetext>Created attachment 55332
Another try to fix the Chromium build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222133</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 20:05:32 -0700</bug_when>
    <thetext>Attachment 55332 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2177026</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222269</commentid>
    <comment_count>7</comment_count>
      <attachid>55360</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-05-07 04:36:05 -0700</bug_when>
    <thetext>Created attachment 55360
Another try to fix the Chromium build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222276</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-07 05:01:40 -0700</bug_when>
    <thetext>Attachment 55360 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2232047</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222296</commentid>
    <comment_count>9</comment_count>
      <attachid>55369</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-05-07 05:51:37 -0700</bug_when>
    <thetext>Created attachment 55369
Maybe this time it will compile?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222617</commentid>
    <comment_count>10</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-05-07 14:33:27 -0700</bug_when>
    <thetext>With this change, the following form controls cannot be associated with a label: fieldset, legend, optgroup and option.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223139</commentid>
    <comment_count>11</comment_count>
      <attachid>55369</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-09 19:44:06 -0700</bug_when>
    <thetext>Comment on attachment 55369
Maybe this time it will compile?

Looks good. But the multiple things you are doing need to be tested.

You changed the label element code so that it won&apos;t label other types of form control. So you need a test that shows that behavior change.

Your comment says that you &quot;cleaned up&quot; correspondingControl, but that&apos;s not what you did. You fixed a bug in it!

I&apos;d also like to see the code refactored so the two branches of the function shared the code to check isFormControlElement rather than repeating the code twice. You could use the traverseElement code to make it even easier to share code.

&gt; +bool HTMLFormControlElement::isControlLabelable() const

How about just &quot;isLabelable&quot; for this?
&gt; +    // FIXME: Add meterTag and outputTag to the list once we support them.
&gt; +    return hasTagName(buttonTag) || hasTagName(inputTag) || hasTagName(keygenTag)
&gt; +#if ENABLE(PROGRESS_TAG)
&gt; +    || hasTagName(progressTag)
&gt; +#endif
&gt; +    || hasTagName(selectTag) || hasTagName(textareaTag);

You should indent the continuation lines 4 spaces in.

&gt; -HTMLElement* HTMLLabelElement::correspondingControl()
&gt; +HTMLFormControlElement* HTMLLabelElement::correspondingControl() const

Does this really need to be a const member function? The need to const_cast in here is ugly.

&gt; +        // the control must be &quot;labelable form-associated element&quot;.

I see the &quot;labelable&quot; part here, but I don&apos;t see the &quot;form-associated&quot; part.

&gt; +PassRefPtr&lt;HTMLElement&gt; HTMLLabelElement::control() const
&gt; +{
&gt; +    return correspondingControl();
&gt; +}

There is no reason to return a PassRefPtr here. It should just be a raw pointer.

&gt; -    HTMLElement* correspondingControl();
&gt; +    HTMLFormControlElement* correspondingControl() const;

&gt; +    PassRefPtr&lt;HTMLElement&gt; control() const;

I suggest renaming our correspondingControl function to control rather than adding a second function. And I see no reason to make this a const member function.

&gt;      interface HTMLLabelElement : HTMLElement {
&gt;          readonly attribute HTMLFormElement form;
&gt; -        attribute [ConvertNullToNullString] DOMString accessKey;
&gt; -        attribute [ConvertNullToNullString] DOMString htmlFor;
&gt; +                 attribute [ConvertNullToNullString] DOMString accessKey;
&gt; +                 attribute [ConvertNullToNullString] DOMString htmlFor;
&gt; +        readonly attribute HTMLElement control;
&gt;      };

I don&apos;t think we need to mimic the indenting of the HTML5 specification. I&apos;d prefer to just have things indented one tab stop and not try to line things up.

Fix a few things and put it up for review again. Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223550</commentid>
    <comment_count>12</comment_count>
      <attachid>55614</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-05-10 15:47:00 -0700</bug_when>
    <thetext>Created attachment 55614
Patch for addressing review comments.

This patch addresses the comments and adds more tests, including a manual test for testing that the label properly propagates focus, activation and hover to the correct form control element, while ignoring form control elements which are not labelable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223590</commentid>
    <comment_count>13</comment_count>
      <attachid>55614</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-10 16:51:11 -0700</bug_when>
    <thetext>Comment on attachment 55614
Patch for addressing review comments.

&gt; +static HTMLFormControlElement* nodeAsLabelableFormControl(Node* node)
&gt; +{
&gt; +    if (!node)
&gt; +        return 0;
&gt; +
&gt; +    if (node-&gt;isHTMLElement() &amp;&amp; static_cast&lt;HTMLElement*&gt;(node)-&gt;isFormControlElement()) {
&gt; +        HTMLFormControlElement* formControlElement = static_cast&lt;HTMLFormControlElement*&gt;(node);
&gt; +        if (formControlElement-&gt;isLabelable())
&gt; +            return formControlElement;
&gt; +    }
&gt; +
&gt; +    return 0;
&gt; +}

I think this would read even better if it used early returns exclusively.

&gt; +        // Search the children of the label element for a form element.

This searches the descendants of the label element, not just the children.

&gt; +            if (HTMLFormControlElement* formControlElement = nodeAsLabelableFormControl(node))
&gt; +                return formControlElement;

As I said before, I see how this checks for &quot;labelable&quot; elements, but not &quot;form-associated&quot;. Maybe that&apos;s the same thing as checking isFormControlElement?

&gt; +class HTMLFormControlElement;    
&gt; +
&gt;  class HTMLLabelElement : public HTMLElement {
&gt;  public:
&gt;      HTMLLabelElement(const QualifiedName&amp;, Document*);
&gt; @@ -46,7 +48,7 @@ public:
&gt;      // Overridden to either click() or focus() the corresponding control.
&gt;      virtual void defaultEventHandler(Event*);
&gt;  
&gt; -    HTMLElement* correspondingControl();
&gt; +    HTMLElement* control();

Did you mean to change the type here to HTMLFormControlElement? If not, then why the forward declaration?

&gt; +        readonly attribute HTMLElement control;

Was the type here supposed to be HTMLFormControlElement?

I don&apos;t entirely understand why the manual test you made is a manual test. Automated tests can both activate and focus, although perhaps for hover you need a manual test.

I&apos;m going to say review- mainly because of the unused forward declaration in HTMLLabelElement.h that clearly seems to be in error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223624</commentid>
    <comment_count>14</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-05-10 17:41:20 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; As I said before, I see how this checks for &quot;labelable&quot; elements, but not &quot;form-associated&quot;. Maybe that&apos;s the same thing as checking isFormControlElement?
Sorry, I forgot to mention that form-associated elements are defined here http://dev.w3.org/html5/spec/Overview.html#form-associated-element, and are a super-set of labelable elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223697</commentid>
    <comment_count>15</comment_count>
      <attachid>55650</attachid>
    <who name="Yael">yael</who>
    <bug_when>2010-05-10 20:00:33 -0700</bug_when>
    <thetext>Created attachment 55650
Patch addressing comment #13.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223967</commentid>
    <comment_count>16</comment_count>
      <attachid>55650</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-11 09:46:18 -0700</bug_when>
    <thetext>Comment on attachment 55650
Patch addressing comment #13.

&gt; -HTMLElement* HTMLLabelElement::correspondingControl()
&gt; +HTMLElement* HTMLLabelElement::control()

Why isn&apos;t the return type of this HTMLFormControlElement*? There are a lot of places in this patch that use HTMLElement* but instead should use HTMLFormControlElement.

&gt; +        // Search the children and descendants of the label element for a form element.
&gt; +        // per http://dev.w3.org/html5/spec/Overview.html#the-label-element
&gt; +        // the form element must be &quot;labelable form-associated element&quot;.

I think the comment should just leave out the link and say something more like this:

    // HTML5 says to search our descendants for the first labelable form-associated element
    // in document order.

OK as-is, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223992</commentid>
    <comment_count>17</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-05-11 10:18:56 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 55650 [details])
&gt; &gt; -HTMLElement* HTMLLabelElement::correspondingControl()
&gt; &gt; +HTMLElement* HTMLLabelElement::control()
&gt; 
&gt; Why isn&apos;t the return type of this HTMLFormControlElement*? There are a lot of places in this patch that use HTMLElement* but instead should use HTMLFormControlElement.
I was going to do that for correspondingControl(), but since control() is defined by the HTML5 spec to be of type HTMLElement, I thought that I cannot do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223996</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-11 10:30:43 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; (From update of attachment 55650 [details] [details])
&gt; &gt; &gt; -HTMLElement* HTMLLabelElement::correspondingControl()
&gt; &gt; &gt; +HTMLElement* HTMLLabelElement::control()
&gt; &gt; 
&gt; &gt; Why isn&apos;t the return type of this HTMLFormControlElement*? There are a lot of places in this patch that use HTMLElement* but instead should use HTMLFormControlElement.
&gt; I was going to do that for correspondingControl(), but since control() is defined by the HTML5 spec to be of type HTMLElement, I thought that I cannot do that.

We can do it.

There are three angles on this:

    1) The DOM implementation itself can always use a more-specific return type. The binding mechanism supports that. And this gives us more type checking and in some cases can even lead to better code in the DOM implementation, so is probably worth doing.

    2) The JavaScript binding can&apos;t see the return type of a function, so it also doesn&apos;t matter exactly what object type is specified in the IDL file. So we probably could get away with using this type in the IDL file too.

    3) The reason HTML5 doesn&apos;t specify this is that HTMLFormControlElement is an implementation detail of WebKit and generally should not be exposed. It&apos;s an abstract base class. I do think, however, that it may be something you can see by looking at the prototype chains of form control elements. This has nothing to do with the return type of the function, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224558</commentid>
    <comment_count>19</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2010-05-12 06:06:31 -0700</bug_when>
    <thetext>Landed in r59228  &lt;http://trac.webkit.org/changeset/59228&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55296</attachid>
            <date>2010-05-06 14:08:00 -0700</date>
            <delta_ts>2010-05-06 16:26:45 -0700</delta_ts>
            <desc>Patch adding support for the control attribute.</desc>
            <filename>38688.patch</filename>
            <type>text/plain</type>
            <size>12813</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMDYgIHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN1cHBvcnQgY29udHJvbCBhdHRyaWJ1dGUgb2YgSFRNTExhYmVsRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2ODgKKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgdGhlIGNvbnRyb2wgYXR0cmlidXRlIGFuZCBjbGVhbnVwIHRoZSBtZXRo
b2QgY29ycmVzcG9uZGluZ0NvbnRyb2wgd2hpY2ggaXMgdXNlZAorICAgICAgICB0byBkZXRlcm1p
bmUgd2hpY2ggY29udHJvbCB0byByZXR1cm4uCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRN
TExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEZv
cm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Ojppc0NvbnRyb2xMYWJlbGFibGUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKToKKyAgICAgICAgKiBo
dG1sL0hUTUxMYWJlbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQu
aWRsOgorCiAyMDEwLTA1LTA2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDU4OTA4KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDAs
NiArNDAwLDE2IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cmVtb3ZlRnJvbUYKICAg
ICBtX2Zvcm0gPSAwOwogfQogCitib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzQ29udHJv
bExhYmVsYWJsZSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEFkZCBtZXRlclRhZyBhbmQgb3V0
cHV0VGFnIHRvIHRoZSBsaXN0IG9uY2Ugd2Ugc3VwcG9ydCB0aGVtLgorICAgIHJldHVybiBoYXNU
YWdOYW1lKGJ1dHRvblRhZykgfHwgaGFzVGFnTmFtZShpbnB1dFRhZykgfHwgaGFzVGFnTmFtZShr
ZXlnZW5UYWcpCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICB8fCBoYXNUYWdOYW1lKHBy
b2dyZXNzVGFnKQorI2VuZGlmCisgICAgfHwgaGFzVGFnTmFtZShzZWxlY3RUYWcpIHx8IGhhc1Rh
Z05hbWUodGV4dGFyZWFUYWcpOworfQorICAgIAogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhT
dGF0ZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCogZG9jLCBIVE1MRm9ybUVsZW1lbnQqIGYpCiAgICAgOiBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvYywgZikKIHsKQEAgLTU3NSw1ICs1ODUsNSBA
QCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZU1hCiAgICAgZWxzZQogICAg
ICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShhdHRyKTsKIH0KLQorICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViY29yZQpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw2ICsx
MjEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJsdXJFdmVudCgpOwogCisgICAgYm9vbCBpc0NvbnRy
b2xMYWJlbGFibGUoKSBjb25zdDsKKyAgICAKIHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZUZy
b21Gb3JtKCk7CiAgICAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCBhbnkgdGltZSB0aGUgcmVzdWx0
IG9mIHdpbGxWYWxpZGF0ZSgpIGhhcyBjaGFuZ2VkLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxM
YWJlbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVt
ZW50LmNwcAkocmV2aXNpb24gNTg5MDgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1
ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKIApAQCAtNTAsMTcgKzUxLDE5IEBAIGJvb2wgSFRN
TExhYmVsRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb24KICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LUhUTUxFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCgpCitI
VE1MRm9ybUNvbnRyb2xFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29u
dHJvbCgpIGNvbnN0CiB7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBjb250cm9sSWQgPSBnZXRB
dHRyaWJ1dGUoZm9yQXR0cik7CiAgICAgaWYgKGNvbnRyb2xJZC5pc051bGwoKSkgewogICAgICAg
ICAvLyBTZWFyY2ggY2hpbGRyZW4gb2YgdGhlIGxhYmVsIGVsZW1lbnQgZm9yIGEgZm9ybSBlbGVt
ZW50LgotICAgICAgICBOb2RlKiBub2RlID0gdGhpczsKKyAgICAgICAgLy8gcGVyIGh0dHA6Ly9k
ZXYudzMub3JnL2h0bWw1L3NwZWMvT3ZlcnZpZXcuaHRtbCN0aGUtbGFiZWwtZWxlbWVudAorICAg
ICAgICAvLyB0aGUgY29udHJvbCBtdXN0IGJlICJsYWJlbGFibGUgZm9ybS1hc3NvY2lhdGVkIGVs
ZW1lbnQiLgorICAgICAgICBOb2RlKiBub2RlID0gIGNvbnN0X2Nhc3Q8SFRNTExhYmVsRWxlbWVu
dCo+KHRoaXMpOwogICAgICAgICB3aGlsZSAoKG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2Rl
KHRoaXMpKSkgewotICAgICAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkgewotICAg
ICAgICAgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1l
bnQqPihub2RlKTsKLSAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC0+aXNGb3JtQ29udHJvbEVs
ZW1lbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CisgICAgICAgICAg
ICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4o
bm9kZSktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpIHsKKyAgICAgICAgICAgICAgICBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50KiBmb3JtQ29udHJvbEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRm9y
bUNvbnRyb2xFbGVtZW50Kj4obm9kZSk7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1Db250cm9s
RWxlbWVudC0+aXNDb250cm9sTGFiZWxhYmxlKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBmb3JtQ29udHJvbEVsZW1lbnQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIDA7CkBAIC02OCw4ICs3MSwxMSBAQCBIVE1MRWxlbWVudCogSFRNTExhYmVsRWxlbWVu
dDo6Y29ycmVzcG9uCiAgICAgICAgIAogICAgIC8vIE9ubHkgcmV0dXJuIEhUTUwgZWxlbWVudHMu
CiAgICAgRWxlbWVudCogZWx0ID0gZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoY29udHJvbElk
KTsKLSAgICBpZiAoZWx0ICYmIGVsdC0+aXNIVE1MRWxlbWVudCgpKQotICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbHQpOworICAgIGlmIChlbHQgJiYgZWx0LT5pc0hU
TUxFbGVtZW50KCkgJiYgZWx0LT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKSB7CisgICAgICAgIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQqIGZvcm1Db250cm9sRWxlbWVudCA9IHN0YXRpY19jYXN0PEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQqPihlbHQpOworICAgICAgICBpZiAoZm9ybUNvbnRyb2xFbGVt
ZW50LT5pc0NvbnRyb2xMYWJlbGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiBmb3JtQ29udHJv
bEVsZW1lbnQ7CisgICAgfQogICAgIHJldHVybiAwOwogfQogCkBAIC0xNjMsNCArMTY5LDkgQEAg
dm9pZCBIVE1MTGFiZWxFbGVtZW50OjpzZXRIdG1sRm9yKGNvbnN0IAogICAgIHNldEF0dHJpYnV0
ZShmb3JBdHRyLCB2YWx1ZSk7CiB9CiAKK1Bhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxMYWJl
bEVsZW1lbnQ6OmNvbnRyb2woKSBjb25zdAoreworICAgIHJldHVybiBjb3JyZXNwb25kaW5nQ29u
dHJvbCgpOworfQorCiB9IC8vIG5hbWVzcGFjZQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxMYWJl
bEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5o
CShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OyAgICAKKwogY2xhc3MgSFRNTExhYmVsRWxlbWVu
dCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgSFRNTExhYmVsRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKQEAgLTQ2LDcgKzQ4LDcgQEAgcHVibGlj
OgogICAgIC8vIE92ZXJyaWRkZW4gdG8gZWl0aGVyIGNsaWNrKCkgb3IgZm9jdXMoKSB0aGUgY29y
cmVzcG9uZGluZyBjb250cm9sLgogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50Kik7CiAKLSAgICBIVE1MRWxlbWVudCogY29ycmVzcG9uZGluZ0NvbnRyb2woKTsKKyAg
ICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBjb3JyZXNwb25kaW5nQ29udHJvbCgpIGNvbnN0Owog
CiAgICAgU3RyaW5nIGFjY2Vzc0tleSgpIGNvbnN0OwogICAgIHZvaWQgc2V0QWNjZXNzS2V5KGNv
bnN0IFN0cmluZyYpOwpAQCAtNTQsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGh0bWxG
b3IoKSBjb25zdDsKICAgICB2b2lkIHNldEh0bWxGb3IoY29uc3QgU3RyaW5nJik7CiAKKyAgICBQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjb250cm9sKCkgY29uc3Q7CisKICAgICB2b2lkIGZvY3Vz
KGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uID0gdHJ1ZSk7CiAKICBwcml2YXRlOgpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmlkbAkocmV2aXNpb24gNTg5MDgpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTExhYmVsRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDggKzIyLDkg
QEAgbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxMYWJlbEVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9y
bTsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IGFjY2Vzc0tleTsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIGh0bWxGb3I7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhY2Nlc3NLZXk7CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBodG1sRm9yOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEVsZW1lbnQgY29udHJvbDsKICAgICB9OwogCiB9
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA1ODkwOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA1LTA2ICB5YWVsIGFoYXJvbiAgPHlh
ZWwuYWhhcm9uQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTdXBwb3J0IGNvbnRyb2wgYXR0cmlidXRlIG9mIEhUTUxMYWJlbEVsZW1l
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4Njg4
CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xh
YmVsLWNvbnRyb2wuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTExhYmVsRWxl
bWVudC9zY3JpcHQtdGVzdHM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxMYWJlbEVs
ZW1lbnQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0LXRlc3RzL2xhYmVsLWNvbnRyb2wuanM6IEFkZGVk
LgorCiAyMDEwLTA1LTA2ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MTGFiZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvbGFiZWwtY29udHJvbC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFi
ZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDMyIEBACitUZXN0IHRoYXQgbGFiZWwuY29udHJvbCByZWZlcmVuY2VzIHRoZSBjb3JyZWN0
IGZvcm0gY29udHJvbCwgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBhc3NvY2lhdGVkIGNvbnRyb2wu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGaW5kIGEgY29udHJvbCB0aGF0IGlz
IHRoZSBmaXJzdCBkZXNjZW5kZW50IGluIGEgbGFiZWwKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QxJykuY29udHJvbC5pZCBpcyAnaW5wdXRJZDEnCitGaW5kIGEgY29udHJvbCBi
YXNlZCBvbiBhIGxhYmVsIHdpdGggdmFsaWQgJ2ZvcicgYXR0cmlidXRlCitQQVNTIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0MicpLmh0bWxGb3IgaXMgJ2lucHV0SWQyJworUEFTUyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDInKS5jb250cm9sLnR5cGUgaXMgJ251bWJlcicKK0Zp
bmQgYSBjb250cm9sIGNvbnRyb2wgaW4gcCBlbGVtZW50IGluIGxhYmVsCitQQVNTIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0MycpLmNvbnRyb2wuaWQgaXMgJ2lucHV0SWQzJworRmluZCBh
IGNvbnRyb2wgaW4gZmllbGRzZXQgaW4gbGFiZWwuCitOb3RlIHRoYXQgZmlsZWRzZXQgaXMgYSBm
b3JtIGNvbnRyb2wgdGhhdCBpcyBub3QgbGFiZWxhYmxlLgorUEFTUyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDQnKS5jb250cm9sLmlkIGlzICdpbnB1dElkNCcKK1Rlc3QgbGFiZWwgd2l0
aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEgdmFsaWQgZWxlbWVudCBpZAorUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDUnKS5jb250cm9sIGlzIG51bGwKK1Rlc3QgbGFi
ZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEgZm9ybSBjb250cm9sCitQQVNT
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NicpLmh0bWxGb3IgaXMgJ2RpdklkJworUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDYnKS5jb250cm9sIGlzIG51bGwKK1Rlc3Qg
bGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEgbGFiZWxhYmxlIGZvcm0g
Y29udHJvbAorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKS5odG1sRm9yIGlz
ICdmc0lkJworUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKS5jb250cm9sIGlz
IG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CisKKworCisKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9s
YWJlbC1jb250cm9sLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9sYWJlbC1jb250cm9sLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVs
ZW1lbnQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2Ny
aXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJZT1VSX0pTX0ZJTEVf
SEVSRSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9sYWJlbC1jb250cm9sLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0
LXRlc3RzL2xhYmVsLWNvbnRyb2wuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9sYWJlbC1jb250cm9sLmpzCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDM1IEBACitkZXNjcmlwdGlvbignVGVzdCB0aGF0IGxhYmVsLmNv
bnRyb2wgcmVmZXJlbmNlcyB0aGUgY29ycmVjdCBmb3JtIGNvbnRyb2wsIG9yIG51bGwgaWYgdGhl
cmUgaXMgbm8gYXNzb2NpYXRlZCBjb250cm9sLicpOworCitkZWJ1ZygiRmluZCBhIGNvbnRyb2wg
dGhhdCBpcyB0aGUgZmlyc3QgZGVzY2VuZGVudCBpbiBhIGxhYmVsIik7Citkb2N1bWVudC53cml0
ZSgiPGxhYmVsIGlkPSd0ZXN0MSc+PGlucHV0IGlkPSdpbnB1dElkMSc+PC9sYWJlbD4iKTsKK3No
b3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDEnKS5jb250cm9sLmlkIiwgIidp
bnB1dElkMSciKTsKKworZGVidWcoIkZpbmQgYSBjb250cm9sIGJhc2VkIG9uIGEgbGFiZWwgd2l0
aCB2YWxpZCAnZm9yJyBhdHRyaWJ1dGUiKTsKK2RvY3VtZW50LndyaXRlKCI8bGFiZWwgaWQ9J3Rl
c3QyJyBmb3I9J2lucHV0SWQyJz48L2xhYmVsPjxpbnB1dCBpZD0naW5wdXRJZDInIHR5cGU9J251
bWJlcic+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJykuaHRt
bEZvciIsICInaW5wdXRJZDInIik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3QyJykuY29udHJvbC50eXBlIiwgIidudW1iZXInIik7CisKK2RlYnVnKCJGaW5kIGEgY29u
dHJvbCBjb250cm9sIGluIHAgZWxlbWVudCBpbiBsYWJlbCIpOworZG9jdW1lbnQud3JpdGUoIjxs
YWJlbCBpZD0ndGVzdDMnPjxwPjxpbnB1dCBpZD0naW5wdXRJZDMnIHR5cGU9J2RhdGUnPjwvcD48
L2xhYmVsPiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MycpLmNv
bnRyb2wuaWQiLCAiJ2lucHV0SWQzJyIpOworCitkZWJ1ZygiRmluZCBhIGNvbnRyb2wgaW4gZmll
bGRzZXQgaW4gbGFiZWwuIik7CitkZWJ1ZygiTm90ZSB0aGF0IGZpbGVkc2V0IGlzIGEgZm9ybSBj
b250cm9sIHRoYXQgaXMgbm90IGxhYmVsYWJsZS4iKTsKK2RvY3VtZW50LndyaXRlKCI8bGFiZWwg
aWQ9J3Rlc3Q0Jz48ZmllbGRzZXQ+PGlucHV0IGlkPSdpbnB1dElkNCc+PC9maWVsZHNldD48L2xh
YmVsPiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NCcpLmNvbnRy
b2wuaWQiLCAiJ2lucHV0SWQ0JyIpOworCitkZWJ1ZygiVGVzdCBsYWJlbCB3aXRoICdmb3InIGF0
dHJpYnV0ZSB3aGljaCBpcyBub3QgYSB2YWxpZCBlbGVtZW50IGlkIik7Citkb2N1bWVudC53cml0
ZSgiPGxhYmVsIGZvcj0nZm9vJyBpZD0ndGVzdDUnPjxpbnB1dCBpZD0naW5wdXRJZDUnPjwvbGFi
ZWw+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1JykuY29udHJv
bCIsICJudWxsIik7CisKK2RlYnVnKCJUZXN0IGxhYmVsIHdpdGggJ2ZvcicgYXR0cmlidXRlIHdo
aWNoIGlzIG5vdCBhIGZvcm0gY29udHJvbCIpOworZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBmb3I9
J2RpdklkJyBpZD0ndGVzdDYnPjxpbnB1dCBpZD0naW5wdXRJZDYnPjwvbGFiZWw+PGRpdiBpZD0n
ZGl2SWQnPjwvZGl2PiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
NicpLmh0bWxGb3IiLCAiJ2RpdklkJyIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0NicpLmNvbnRyb2wiLCAibnVsbCIpOworCitkZWJ1ZygiVGVzdCBsYWJlbCB3aXRo
ICdmb3InIGF0dHJpYnV0ZSB3aGljaCBpcyBub3QgYSBsYWJlbGFibGUgZm9ybSBjb250cm9sIik7
Citkb2N1bWVudC53cml0ZSgiPGxhYmVsIGZvcj0nZnNJZCcgaWQ9J3Rlc3Q3Jz48aW5wdXQgaWQ9
J2lucHV0SWQ3Jz48L2xhYmVsPjxmaWVsZHNldCBpZD0nZnNJZCc+PC9maWVsZHNldD4iKTsKK3No
b3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKS5odG1sRm9yIiwgIidmc0lk
JyIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NycpLmNvbnRyb2wi
LCAibnVsbCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55316</attachid>
            <date>2010-05-06 16:26:45 -0700</date>
            <delta_ts>2010-05-06 18:27:29 -0700</delta_ts>
            <desc>Attempt to fix Chromium build</desc>
            <filename>38688.patch</filename>
            <type>text/plain</type>
            <size>14751</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMDYgIHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN1cHBvcnQgY29udHJvbCBhdHRyaWJ1dGUgb2YgSFRNTExhYmVsRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2ODgKKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgdGhlIGNvbnRyb2wgYXR0cmlidXRlIGFuZCBjbGVhbnVwIHRoZSBtZXRo
b2QgY29ycmVzcG9uZGluZ0NvbnRyb2wgd2hpY2ggaXMgdXNlZAorICAgICAgICB0byBkZXRlcm1p
bmUgd2hpY2ggY29udHJvbCB0byByZXR1cm4uCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRN
TExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEZv
cm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Ojppc0NvbnRyb2xMYWJlbGFibGUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKToKKyAgICAgICAgKiBo
dG1sL0hUTUxMYWJlbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQu
aWRsOgorCiAyMDEwLTA1LTA2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDU4OTA4KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDAs
NiArNDAwLDE2IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cmVtb3ZlRnJvbUYKICAg
ICBtX2Zvcm0gPSAwOwogfQogCitib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzQ29udHJv
bExhYmVsYWJsZSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEFkZCBtZXRlclRhZyBhbmQgb3V0
cHV0VGFnIHRvIHRoZSBsaXN0IG9uY2Ugd2Ugc3VwcG9ydCB0aGVtLgorICAgIHJldHVybiBoYXNU
YWdOYW1lKGJ1dHRvblRhZykgfHwgaGFzVGFnTmFtZShpbnB1dFRhZykgfHwgaGFzVGFnTmFtZShr
ZXlnZW5UYWcpCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICB8fCBoYXNUYWdOYW1lKHBy
b2dyZXNzVGFnKQorI2VuZGlmCisgICAgfHwgaGFzVGFnTmFtZShzZWxlY3RUYWcpIHx8IGhhc1Rh
Z05hbWUodGV4dGFyZWFUYWcpOworfQorICAgIAogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhT
dGF0ZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCogZG9jLCBIVE1MRm9ybUVsZW1lbnQqIGYpCiAgICAgOiBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvYywgZikKIHsKQEAgLTU3NSw1ICs1ODUsNSBA
QCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZU1hCiAgICAgZWxzZQogICAg
ICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShhdHRyKTsKIH0KLQorICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViY29yZQpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw2ICsx
MjEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJsdXJFdmVudCgpOwogCisgICAgYm9vbCBpc0NvbnRy
b2xMYWJlbGFibGUoKSBjb25zdDsKKyAgICAKIHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZUZy
b21Gb3JtKCk7CiAgICAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCBhbnkgdGltZSB0aGUgcmVzdWx0
IG9mIHdpbGxWYWxpZGF0ZSgpIGhhcyBjaGFuZ2VkLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxM
YWJlbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVt
ZW50LmNwcAkocmV2aXNpb24gNTg5MDgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1
ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKIApAQCAtNTAsMTcgKzUxLDE5IEBAIGJvb2wgSFRN
TExhYmVsRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb24KICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LUhUTUxFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCgpCitI
VE1MRm9ybUNvbnRyb2xFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29u
dHJvbCgpIGNvbnN0CiB7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBjb250cm9sSWQgPSBnZXRB
dHRyaWJ1dGUoZm9yQXR0cik7CiAgICAgaWYgKGNvbnRyb2xJZC5pc051bGwoKSkgewogICAgICAg
ICAvLyBTZWFyY2ggY2hpbGRyZW4gb2YgdGhlIGxhYmVsIGVsZW1lbnQgZm9yIGEgZm9ybSBlbGVt
ZW50LgotICAgICAgICBOb2RlKiBub2RlID0gdGhpczsKKyAgICAgICAgLy8gcGVyIGh0dHA6Ly9k
ZXYudzMub3JnL2h0bWw1L3NwZWMvT3ZlcnZpZXcuaHRtbCN0aGUtbGFiZWwtZWxlbWVudAorICAg
ICAgICAvLyB0aGUgY29udHJvbCBtdXN0IGJlICJsYWJlbGFibGUgZm9ybS1hc3NvY2lhdGVkIGVs
ZW1lbnQiLgorICAgICAgICBOb2RlKiBub2RlID0gIGNvbnN0X2Nhc3Q8SFRNTExhYmVsRWxlbWVu
dCo+KHRoaXMpOwogICAgICAgICB3aGlsZSAoKG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2Rl
KHRoaXMpKSkgewotICAgICAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkgewotICAg
ICAgICAgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1l
bnQqPihub2RlKTsKLSAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC0+aXNGb3JtQ29udHJvbEVs
ZW1lbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CisgICAgICAgICAg
ICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4o
bm9kZSktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpIHsKKyAgICAgICAgICAgICAgICBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50KiBmb3JtQ29udHJvbEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRm9y
bUNvbnRyb2xFbGVtZW50Kj4obm9kZSk7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1Db250cm9s
RWxlbWVudC0+aXNDb250cm9sTGFiZWxhYmxlKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBmb3JtQ29udHJvbEVsZW1lbnQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIDA7CkBAIC02OCw4ICs3MSwxMSBAQCBIVE1MRWxlbWVudCogSFRNTExhYmVsRWxlbWVu
dDo6Y29ycmVzcG9uCiAgICAgICAgIAogICAgIC8vIE9ubHkgcmV0dXJuIEhUTUwgZWxlbWVudHMu
CiAgICAgRWxlbWVudCogZWx0ID0gZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoY29udHJvbElk
KTsKLSAgICBpZiAoZWx0ICYmIGVsdC0+aXNIVE1MRWxlbWVudCgpKQotICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbHQpOworICAgIGlmIChlbHQgJiYgZWx0LT5pc0hU
TUxFbGVtZW50KCkgJiYgZWx0LT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKSB7CisgICAgICAgIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQqIGZvcm1Db250cm9sRWxlbWVudCA9IHN0YXRpY19jYXN0PEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQqPihlbHQpOworICAgICAgICBpZiAoZm9ybUNvbnRyb2xFbGVt
ZW50LT5pc0NvbnRyb2xMYWJlbGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiBmb3JtQ29udHJv
bEVsZW1lbnQ7CisgICAgfQogICAgIHJldHVybiAwOwogfQogCkBAIC0xNjMsNCArMTY5LDkgQEAg
dm9pZCBIVE1MTGFiZWxFbGVtZW50OjpzZXRIdG1sRm9yKGNvbnN0IAogICAgIHNldEF0dHJpYnV0
ZShmb3JBdHRyLCB2YWx1ZSk7CiB9CiAKK1Bhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxMYWJl
bEVsZW1lbnQ6OmNvbnRyb2woKSBjb25zdAoreworICAgIHJldHVybiBjb3JyZXNwb25kaW5nQ29u
dHJvbCgpOworfQorCiB9IC8vIG5hbWVzcGFjZQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxMYWJl
bEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5o
CShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OyAgICAKKwogY2xhc3MgSFRNTExhYmVsRWxlbWVu
dCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgSFRNTExhYmVsRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKQEAgLTQ2LDcgKzQ4LDcgQEAgcHVibGlj
OgogICAgIC8vIE92ZXJyaWRkZW4gdG8gZWl0aGVyIGNsaWNrKCkgb3IgZm9jdXMoKSB0aGUgY29y
cmVzcG9uZGluZyBjb250cm9sLgogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50Kik7CiAKLSAgICBIVE1MRWxlbWVudCogY29ycmVzcG9uZGluZ0NvbnRyb2woKTsKKyAg
ICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBjb3JyZXNwb25kaW5nQ29udHJvbCgpIGNvbnN0Owog
CiAgICAgU3RyaW5nIGFjY2Vzc0tleSgpIGNvbnN0OwogICAgIHZvaWQgc2V0QWNjZXNzS2V5KGNv
bnN0IFN0cmluZyYpOwpAQCAtNTQsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGh0bWxG
b3IoKSBjb25zdDsKICAgICB2b2lkIHNldEh0bWxGb3IoY29uc3QgU3RyaW5nJik7CiAKKyAgICBQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjb250cm9sKCkgY29uc3Q7CisKICAgICB2b2lkIGZvY3Vz
KGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uID0gdHJ1ZSk7CiAKICBwcml2YXRlOgpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmlkbAkocmV2aXNpb24gNTg5MDgpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTExhYmVsRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDggKzIyLDkg
QEAgbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxMYWJlbEVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9y
bTsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IGFjY2Vzc0tleTsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIGh0bWxGb3I7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhY2Nlc3NLZXk7CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBodG1sRm9yOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEVsZW1lbnQgY29udHJvbDsKICAgICB9OwogCiB9
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4OTE2KQorKysgV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA1LTA2ICB5YWVs
IGFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGNvbnRyb2wgYXR0cmlidXRlIG9mIEhU
TUxMYWJlbEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM4Njg4CisKKyAgICAgICAgQ2hhbmdlIHJldHVybiB2YWx1ZSBmcm9tIFdlYkVsZW1l
bnQgdG8gV2ViRm9ybUNvbnRyb2xFbGVtZW50CisKKyAgICAgICAgKiBwdWJsaWMvV2ViTGFiZWxF
bGVtZW50Lmg6CisgICAgICAgICogc3JjL1dlYkxhYmVsRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkxhYmVsRWxlbWVudDo6Y29ycmVzcG9uZGluZ0NvbnRyb2wpOgorCiAyMDEwLTA1
LTA2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViTGFiZWxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJMYWJlbEVsZW1lbnQuaAkocmV2aXNpb24gNTg5MDgpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkxhYmVsRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIHB1
YmxpYzoKIAogICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ24oY29uc3QgV2ViTGFiZWxFbGVtZW50
JiBlKSB7IFdlYkVsZW1lbnQ6OmFzc2lnbihlKTsgfQogCi0gICAgV0VCS0lUX0FQSSBXZWJFbGVt
ZW50IGNvcnJlc3BvbmRpbmdDb250cm9sKCk7CisgICAgV0VCS0lUX0FQSSBXZWJGb3JtQ29udHJv
bEVsZW1lbnQgY29ycmVzcG9uZGluZ0NvbnRyb2woKTsKIAogI2lmIFdFQktJVF9JTVBMRU1FTlRB
VElPTgogICAgIFdlYkxhYmVsRWxlbWVudChjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6
SFRNTExhYmVsRWxlbWVudD4mKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGFiZWxF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxhYmVsRWxl
bWVudC5jcHAJKHJldmlzaW9uIDU4OTA4KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYWJl
bEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw5ICs0MCw5IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViRWxlbWVudCBXZWJMYWJl
bEVsZW1lbnQ6OmNvcnJlc3BvbmRpbmdDb250cm9sKCkKK1dlYkZvcm1Db250cm9sRWxlbWVudCBX
ZWJMYWJlbEVsZW1lbnQ6OmNvcnJlc3BvbmRpbmdDb250cm9sKCkKIHsKLSAgICByZXR1cm4gV2Vi
RWxlbWVudCh1bndyYXA8SFRNTExhYmVsRWxlbWVudD4oKS0+Y29ycmVzcG9uZGluZ0NvbnRyb2wo
KSk7CisgICAgcmV0dXJuIFdlYkZvcm1Db250cm9sRWxlbWVudCh1bndyYXA8SFRNTExhYmVsRWxl
bWVudD4oKS0+Y29ycmVzcG9uZGluZ0NvbnRyb2woKSk7CiB9CiAKIFdlYkxhYmVsRWxlbWVudDo6
V2ViTGFiZWxFbGVtZW50KGNvbnN0IFBhc3NSZWZQdHI8SFRNTExhYmVsRWxlbWVudD4mIGVsZW0p
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA1ODkwOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA1LTA2ICB5YWVsIGFoYXJvbiAgPHlh
ZWwuYWhhcm9uQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTdXBwb3J0IGNvbnRyb2wgYXR0cmlidXRlIG9mIEhUTUxMYWJlbEVsZW1l
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4Njg4
CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xh
YmVsLWNvbnRyb2wuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTExhYmVsRWxl
bWVudC9zY3JpcHQtdGVzdHM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxMYWJlbEVs
ZW1lbnQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0LXRlc3RzL2xhYmVsLWNvbnRyb2wuanM6IEFkZGVk
LgorCiAyMDEwLTA1LTA2ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MTGFiZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvbGFiZWwtY29udHJvbC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFi
ZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDMyIEBACitUZXN0IHRoYXQgbGFiZWwuY29udHJvbCByZWZlcmVuY2VzIHRoZSBjb3JyZWN0
IGZvcm0gY29udHJvbCwgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBhc3NvY2lhdGVkIGNvbnRyb2wu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGaW5kIGEgY29udHJvbCB0aGF0IGlz
IHRoZSBmaXJzdCBkZXNjZW5kZW50IGluIGEgbGFiZWwKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QxJykuY29udHJvbC5pZCBpcyAnaW5wdXRJZDEnCitGaW5kIGEgY29udHJvbCBi
YXNlZCBvbiBhIGxhYmVsIHdpdGggdmFsaWQgJ2ZvcicgYXR0cmlidXRlCitQQVNTIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0MicpLmh0bWxGb3IgaXMgJ2lucHV0SWQyJworUEFTUyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDInKS5jb250cm9sLnR5cGUgaXMgJ251bWJlcicKK0Zp
bmQgYSBjb250cm9sIGNvbnRyb2wgaW4gcCBlbGVtZW50IGluIGxhYmVsCitQQVNTIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0MycpLmNvbnRyb2wuaWQgaXMgJ2lucHV0SWQzJworRmluZCBh
IGNvbnRyb2wgaW4gZmllbGRzZXQgaW4gbGFiZWwuCitOb3RlIHRoYXQgZmlsZWRzZXQgaXMgYSBm
b3JtIGNvbnRyb2wgdGhhdCBpcyBub3QgbGFiZWxhYmxlLgorUEFTUyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDQnKS5jb250cm9sLmlkIGlzICdpbnB1dElkNCcKK1Rlc3QgbGFiZWwgd2l0
aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEgdmFsaWQgZWxlbWVudCBpZAorUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDUnKS5jb250cm9sIGlzIG51bGwKK1Rlc3QgbGFi
ZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEgZm9ybSBjb250cm9sCitQQVNT
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NicpLmh0bWxGb3IgaXMgJ2RpdklkJworUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDYnKS5jb250cm9sIGlzIG51bGwKK1Rlc3Qg
bGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEgbGFiZWxhYmxlIGZvcm0g
Y29udHJvbAorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKS5odG1sRm9yIGlz
ICdmc0lkJworUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKS5jb250cm9sIGlz
IG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CisKKworCisKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9s
YWJlbC1jb250cm9sLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgor
PHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9sYWJlbC1jb250cm9sLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVs
ZW1lbnQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2Ny
aXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwh
RE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhl
YWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJZT1VSX0pTX0ZJTEVf
SEVSRSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9sYWJlbC1jb250cm9sLmpzCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0
LXRlc3RzL2xhYmVsLWNvbnRyb2wuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9sYWJlbC1jb250cm9sLmpzCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDM1IEBACitkZXNjcmlwdGlvbignVGVzdCB0aGF0IGxhYmVsLmNv
bnRyb2wgcmVmZXJlbmNlcyB0aGUgY29ycmVjdCBmb3JtIGNvbnRyb2wsIG9yIG51bGwgaWYgdGhl
cmUgaXMgbm8gYXNzb2NpYXRlZCBjb250cm9sLicpOworCitkZWJ1ZygiRmluZCBhIGNvbnRyb2wg
dGhhdCBpcyB0aGUgZmlyc3QgZGVzY2VuZGVudCBpbiBhIGxhYmVsIik7Citkb2N1bWVudC53cml0
ZSgiPGxhYmVsIGlkPSd0ZXN0MSc+PGlucHV0IGlkPSdpbnB1dElkMSc+PC9sYWJlbD4iKTsKK3No
b3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDEnKS5jb250cm9sLmlkIiwgIidp
bnB1dElkMSciKTsKKworZGVidWcoIkZpbmQgYSBjb250cm9sIGJhc2VkIG9uIGEgbGFiZWwgd2l0
aCB2YWxpZCAnZm9yJyBhdHRyaWJ1dGUiKTsKK2RvY3VtZW50LndyaXRlKCI8bGFiZWwgaWQ9J3Rl
c3QyJyBmb3I9J2lucHV0SWQyJz48L2xhYmVsPjxpbnB1dCBpZD0naW5wdXRJZDInIHR5cGU9J251
bWJlcic+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJykuaHRt
bEZvciIsICInaW5wdXRJZDInIik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3QyJykuY29udHJvbC50eXBlIiwgIidudW1iZXInIik7CisKK2RlYnVnKCJGaW5kIGEgY29u
dHJvbCBjb250cm9sIGluIHAgZWxlbWVudCBpbiBsYWJlbCIpOworZG9jdW1lbnQud3JpdGUoIjxs
YWJlbCBpZD0ndGVzdDMnPjxwPjxpbnB1dCBpZD0naW5wdXRJZDMnIHR5cGU9J2RhdGUnPjwvcD48
L2xhYmVsPiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MycpLmNv
bnRyb2wuaWQiLCAiJ2lucHV0SWQzJyIpOworCitkZWJ1ZygiRmluZCBhIGNvbnRyb2wgaW4gZmll
bGRzZXQgaW4gbGFiZWwuIik7CitkZWJ1ZygiTm90ZSB0aGF0IGZpbGVkc2V0IGlzIGEgZm9ybSBj
b250cm9sIHRoYXQgaXMgbm90IGxhYmVsYWJsZS4iKTsKK2RvY3VtZW50LndyaXRlKCI8bGFiZWwg
aWQ9J3Rlc3Q0Jz48ZmllbGRzZXQ+PGlucHV0IGlkPSdpbnB1dElkNCc+PC9maWVsZHNldD48L2xh
YmVsPiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NCcpLmNvbnRy
b2wuaWQiLCAiJ2lucHV0SWQ0JyIpOworCitkZWJ1ZygiVGVzdCBsYWJlbCB3aXRoICdmb3InIGF0
dHJpYnV0ZSB3aGljaCBpcyBub3QgYSB2YWxpZCBlbGVtZW50IGlkIik7Citkb2N1bWVudC53cml0
ZSgiPGxhYmVsIGZvcj0nZm9vJyBpZD0ndGVzdDUnPjxpbnB1dCBpZD0naW5wdXRJZDUnPjwvbGFi
ZWw+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1JykuY29udHJv
bCIsICJudWxsIik7CisKK2RlYnVnKCJUZXN0IGxhYmVsIHdpdGggJ2ZvcicgYXR0cmlidXRlIHdo
aWNoIGlzIG5vdCBhIGZvcm0gY29udHJvbCIpOworZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBmb3I9
J2RpdklkJyBpZD0ndGVzdDYnPjxpbnB1dCBpZD0naW5wdXRJZDYnPjwvbGFiZWw+PGRpdiBpZD0n
ZGl2SWQnPjwvZGl2PiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
NicpLmh0bWxGb3IiLCAiJ2RpdklkJyIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0NicpLmNvbnRyb2wiLCAibnVsbCIpOworCitkZWJ1ZygiVGVzdCBsYWJlbCB3aXRo
ICdmb3InIGF0dHJpYnV0ZSB3aGljaCBpcyBub3QgYSBsYWJlbGFibGUgZm9ybSBjb250cm9sIik7
Citkb2N1bWVudC53cml0ZSgiPGxhYmVsIGZvcj0nZnNJZCcgaWQ9J3Rlc3Q3Jz48aW5wdXQgaWQ9
J2lucHV0SWQ3Jz48L2xhYmVsPjxmaWVsZHNldCBpZD0nZnNJZCc+PC9maWVsZHNldD4iKTsKK3No
b3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKS5odG1sRm9yIiwgIidmc0lk
JyIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NycpLmNvbnRyb2wi
LCAibnVsbCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55332</attachid>
            <date>2010-05-06 18:27:29 -0700</date>
            <delta_ts>2010-05-07 04:36:05 -0700</delta_ts>
            <desc>Another try to fix the Chromium build</desc>
            <filename>38688.patch</filename>
            <type>text/plain</type>
            <size>14935</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMDYgIHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN1cHBvcnQgY29udHJvbCBhdHRyaWJ1dGUgb2YgSFRNTExhYmVsRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2ODgKKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgdGhlIGNvbnRyb2wgYXR0cmlidXRlIGFuZCBjbGVhbnVwIHRoZSBtZXRo
b2QgY29ycmVzcG9uZGluZ0NvbnRyb2wgd2hpY2ggaXMgdXNlZAorICAgICAgICB0byBkZXRlcm1p
bmUgd2hpY2ggY29udHJvbCB0byByZXR1cm4uCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRN
TExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEZv
cm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Ojppc0NvbnRyb2xMYWJlbGFibGUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKToKKyAgICAgICAgKiBo
dG1sL0hUTUxMYWJlbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQu
aWRsOgorCiAyMDEwLTA1LTA2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDU4OTA4KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDAs
NiArNDAwLDE2IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cmVtb3ZlRnJvbUYKICAg
ICBtX2Zvcm0gPSAwOwogfQogCitib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzQ29udHJv
bExhYmVsYWJsZSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEFkZCBtZXRlclRhZyBhbmQgb3V0
cHV0VGFnIHRvIHRoZSBsaXN0IG9uY2Ugd2Ugc3VwcG9ydCB0aGVtLgorICAgIHJldHVybiBoYXNU
YWdOYW1lKGJ1dHRvblRhZykgfHwgaGFzVGFnTmFtZShpbnB1dFRhZykgfHwgaGFzVGFnTmFtZShr
ZXlnZW5UYWcpCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICB8fCBoYXNUYWdOYW1lKHBy
b2dyZXNzVGFnKQorI2VuZGlmCisgICAgfHwgaGFzVGFnTmFtZShzZWxlY3RUYWcpIHx8IGhhc1Rh
Z05hbWUodGV4dGFyZWFUYWcpOworfQorICAgIAogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhT
dGF0ZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCogZG9jLCBIVE1MRm9ybUVsZW1lbnQqIGYpCiAgICAgOiBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvYywgZikKIHsKQEAgLTU3NSw1ICs1ODUsNSBA
QCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZU1hCiAgICAgZWxzZQogICAg
ICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShhdHRyKTsKIH0KLQorICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViY29yZQpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw2ICsx
MjEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJsdXJFdmVudCgpOwogCisgICAgYm9vbCBpc0NvbnRy
b2xMYWJlbGFibGUoKSBjb25zdDsKKyAgICAKIHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZUZy
b21Gb3JtKCk7CiAgICAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCBhbnkgdGltZSB0aGUgcmVzdWx0
IG9mIHdpbGxWYWxpZGF0ZSgpIGhhcyBjaGFuZ2VkLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxM
YWJlbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVt
ZW50LmNwcAkocmV2aXNpb24gNTg5MDgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1
ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKIApAQCAtNTAsMTcgKzUxLDE5IEBAIGJvb2wgSFRN
TExhYmVsRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb24KICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LUhUTUxFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCgpCitI
VE1MRm9ybUNvbnRyb2xFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29u
dHJvbCgpIGNvbnN0CiB7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBjb250cm9sSWQgPSBnZXRB
dHRyaWJ1dGUoZm9yQXR0cik7CiAgICAgaWYgKGNvbnRyb2xJZC5pc051bGwoKSkgewogICAgICAg
ICAvLyBTZWFyY2ggY2hpbGRyZW4gb2YgdGhlIGxhYmVsIGVsZW1lbnQgZm9yIGEgZm9ybSBlbGVt
ZW50LgotICAgICAgICBOb2RlKiBub2RlID0gdGhpczsKKyAgICAgICAgLy8gcGVyIGh0dHA6Ly9k
ZXYudzMub3JnL2h0bWw1L3NwZWMvT3ZlcnZpZXcuaHRtbCN0aGUtbGFiZWwtZWxlbWVudAorICAg
ICAgICAvLyB0aGUgY29udHJvbCBtdXN0IGJlICJsYWJlbGFibGUgZm9ybS1hc3NvY2lhdGVkIGVs
ZW1lbnQiLgorICAgICAgICBOb2RlKiBub2RlID0gIGNvbnN0X2Nhc3Q8SFRNTExhYmVsRWxlbWVu
dCo+KHRoaXMpOwogICAgICAgICB3aGlsZSAoKG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2Rl
KHRoaXMpKSkgewotICAgICAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkgewotICAg
ICAgICAgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1l
bnQqPihub2RlKTsKLSAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC0+aXNGb3JtQ29udHJvbEVs
ZW1lbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CisgICAgICAgICAg
ICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4o
bm9kZSktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpIHsKKyAgICAgICAgICAgICAgICBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50KiBmb3JtQ29udHJvbEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRm9y
bUNvbnRyb2xFbGVtZW50Kj4obm9kZSk7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1Db250cm9s
RWxlbWVudC0+aXNDb250cm9sTGFiZWxhYmxlKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBmb3JtQ29udHJvbEVsZW1lbnQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIDA7CkBAIC02OCw4ICs3MSwxMSBAQCBIVE1MRWxlbWVudCogSFRNTExhYmVsRWxlbWVu
dDo6Y29ycmVzcG9uCiAgICAgICAgIAogICAgIC8vIE9ubHkgcmV0dXJuIEhUTUwgZWxlbWVudHMu
CiAgICAgRWxlbWVudCogZWx0ID0gZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoY29udHJvbElk
KTsKLSAgICBpZiAoZWx0ICYmIGVsdC0+aXNIVE1MRWxlbWVudCgpKQotICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbHQpOworICAgIGlmIChlbHQgJiYgZWx0LT5pc0hU
TUxFbGVtZW50KCkgJiYgZWx0LT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKSB7CisgICAgICAgIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQqIGZvcm1Db250cm9sRWxlbWVudCA9IHN0YXRpY19jYXN0PEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQqPihlbHQpOworICAgICAgICBpZiAoZm9ybUNvbnRyb2xFbGVt
ZW50LT5pc0NvbnRyb2xMYWJlbGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiBmb3JtQ29udHJv
bEVsZW1lbnQ7CisgICAgfQogICAgIHJldHVybiAwOwogfQogCkBAIC0xNjMsNCArMTY5LDkgQEAg
dm9pZCBIVE1MTGFiZWxFbGVtZW50OjpzZXRIdG1sRm9yKGNvbnN0IAogICAgIHNldEF0dHJpYnV0
ZShmb3JBdHRyLCB2YWx1ZSk7CiB9CiAKK1Bhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxMYWJl
bEVsZW1lbnQ6OmNvbnRyb2woKSBjb25zdAoreworICAgIHJldHVybiBjb3JyZXNwb25kaW5nQ29u
dHJvbCgpOworfQorCiB9IC8vIG5hbWVzcGFjZQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxMYWJl
bEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5o
CShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OyAgICAKKwogY2xhc3MgSFRNTExhYmVsRWxlbWVu
dCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgSFRNTExhYmVsRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKQEAgLTQ2LDcgKzQ4LDcgQEAgcHVibGlj
OgogICAgIC8vIE92ZXJyaWRkZW4gdG8gZWl0aGVyIGNsaWNrKCkgb3IgZm9jdXMoKSB0aGUgY29y
cmVzcG9uZGluZyBjb250cm9sLgogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50Kik7CiAKLSAgICBIVE1MRWxlbWVudCogY29ycmVzcG9uZGluZ0NvbnRyb2woKTsKKyAg
ICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBjb3JyZXNwb25kaW5nQ29udHJvbCgpIGNvbnN0Owog
CiAgICAgU3RyaW5nIGFjY2Vzc0tleSgpIGNvbnN0OwogICAgIHZvaWQgc2V0QWNjZXNzS2V5KGNv
bnN0IFN0cmluZyYpOwpAQCAtNTQsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGh0bWxG
b3IoKSBjb25zdDsKICAgICB2b2lkIHNldEh0bWxGb3IoY29uc3QgU3RyaW5nJik7CiAKKyAgICBQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjb250cm9sKCkgY29uc3Q7CisKICAgICB2b2lkIGZvY3Vz
KGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uID0gdHJ1ZSk7CiAKICBwcml2YXRlOgpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmlkbAkocmV2aXNpb24gNTg5MDgpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTExhYmVsRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDggKzIyLDkg
QEAgbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxMYWJlbEVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9y
bTsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IGFjY2Vzc0tleTsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIGh0bWxGb3I7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhY2Nlc3NLZXk7CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBodG1sRm9yOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEVsZW1lbnQgY29udHJvbDsKICAgICB9OwogCiB9
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4OTE2KQorKysgV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA1LTA2ICB5YWVs
IGFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGNvbnRyb2wgYXR0cmlidXRlIG9mIEhU
TUxMYWJlbEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM4Njg4CisKKyAgICAgICAgQ2hhbmdlIHJldHVybiB2YWx1ZSBmcm9tIFdlYkVsZW1l
bnQgdG8gV2ViRm9ybUNvbnRyb2xFbGVtZW50CisKKyAgICAgICAgKiBwdWJsaWMvV2ViTGFiZWxF
bGVtZW50Lmg6CisgICAgICAgICogc3JjL1dlYkxhYmVsRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkxhYmVsRWxlbWVudDo6Y29ycmVzcG9uZGluZ0NvbnRyb2wpOgorCiAyMDEwLTA1
LTA2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViTGFiZWxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJMYWJlbEVsZW1lbnQuaAkocmV2aXNpb24gNTg5MDgpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkxhYmVsRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAj
ZGVmaW5lIFdlYkxhYmVsRWxlbWVudF9oCiAKICNpbmNsdWRlICJXZWJFbGVtZW50LmgiCisjaW5j
bHVkZSAiV2ViRm9ybUNvbnRyb2xFbGVtZW50LmgiCiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJ
T04KIG5hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgSFRNTExhYmVsRWxlbWVudDsgfQpAQCAtNTQs
NyArNTUsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdl
YkxhYmVsRWxlbWVudCYgZSkgeyBXZWJFbGVtZW50Ojphc3NpZ24oZSk7IH0KIAotICAgIFdFQktJ
VF9BUEkgV2ViRWxlbWVudCBjb3JyZXNwb25kaW5nQ29udHJvbCgpOworICAgIFdFQktJVF9BUEkg
V2ViRm9ybUNvbnRyb2xFbGVtZW50IGNvcnJlc3BvbmRpbmdDb250cm9sKCk7CiAKICNpZiBXRUJL
SVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJMYWJlbEVsZW1lbnQoY29uc3QgV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1lbnQ+Jik7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkxhYmVsRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJMYWJlbEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViTGFiZWxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsOSArNDAsOSBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYkVs
ZW1lbnQgV2ViTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCgpCitXZWJGb3JtQ29u
dHJvbEVsZW1lbnQgV2ViTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCgpCiB7Ci0g
ICAgcmV0dXJuIFdlYkVsZW1lbnQodW53cmFwPEhUTUxMYWJlbEVsZW1lbnQ+KCktPmNvcnJlc3Bv
bmRpbmdDb250cm9sKCkpOworICAgIHJldHVybiBXZWJGb3JtQ29udHJvbEVsZW1lbnQodW53cmFw
PEhUTUxMYWJlbEVsZW1lbnQ+KCktPmNvcnJlc3BvbmRpbmdDb250cm9sKCkpOwogfQogCiBXZWJM
YWJlbEVsZW1lbnQ6OldlYkxhYmVsRWxlbWVudChjb25zdCBQYXNzUmVmUHRyPEhUTUxMYWJlbEVs
ZW1lbnQ+JiBlbGVtKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTg5MDgpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNS0wNiAgeWFl
bCBhaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBjb250cm9sIGF0dHJpYnV0ZSBvZiBI
VE1MTGFiZWxFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zODY4OAorCisgICAgICAgICogZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9sYWJl
bC1jb250cm9sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTExh
YmVsRWxlbWVudC9sYWJlbC1jb250cm9sLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0LXRlc3RzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9IVE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9sYWJlbC1jb250
cm9sLmpzOiBBZGRlZC4KKwogMjAxMC0wNS0wNiAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xh
YmVsLWNvbnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwzMiBAQAorVGVzdCB0aGF0IGxhYmVsLmNvbnRyb2wgcmVmZXJlbmNl
cyB0aGUgY29ycmVjdCBmb3JtIGNvbnRyb2wsIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gYXNzb2Np
YXRlZCBjb250cm9sLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmluZCBhIGNv
bnRyb2wgdGhhdCBpcyB0aGUgZmlyc3QgZGVzY2VuZGVudCBpbiBhIGxhYmVsCitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MScpLmNvbnRyb2wuaWQgaXMgJ2lucHV0SWQxJworRmlu
ZCBhIGNvbnRyb2wgYmFzZWQgb24gYSBsYWJlbCB3aXRoIHZhbGlkICdmb3InIGF0dHJpYnV0ZQor
UEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDInKS5odG1sRm9yIGlzICdpbnB1dElk
MicKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJykuY29udHJvbC50eXBlIGlz
ICdudW1iZXInCitGaW5kIGEgY29udHJvbCBjb250cm9sIGluIHAgZWxlbWVudCBpbiBsYWJlbAor
UEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDMnKS5jb250cm9sLmlkIGlzICdpbnB1
dElkMycKK0ZpbmQgYSBjb250cm9sIGluIGZpZWxkc2V0IGluIGxhYmVsLgorTm90ZSB0aGF0IGZp
bGVkc2V0IGlzIGEgZm9ybSBjb250cm9sIHRoYXQgaXMgbm90IGxhYmVsYWJsZS4KK1BBU1MgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0JykuY29udHJvbC5pZCBpcyAnaW5wdXRJZDQnCitU
ZXN0IGxhYmVsIHdpdGggJ2ZvcicgYXR0cmlidXRlIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGVsZW1l
bnQgaWQKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1JykuY29udHJvbCBpcyBu
dWxsCitUZXN0IGxhYmVsIHdpdGggJ2ZvcicgYXR0cmlidXRlIHdoaWNoIGlzIG5vdCBhIGZvcm0g
Y29udHJvbAorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDYnKS5odG1sRm9yIGlz
ICdkaXZJZCcKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q2JykuY29udHJvbCBp
cyBudWxsCitUZXN0IGxhYmVsIHdpdGggJ2ZvcicgYXR0cmlidXRlIHdoaWNoIGlzIG5vdCBhIGxh
YmVsYWJsZSBmb3JtIGNvbnRyb2wKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q3
JykuaHRtbEZvciBpcyAnZnNJZCcKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q3
JykuY29udHJvbCBpcyBudWxsCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKworCisKKworCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxM
YWJlbEVsZW1lbnQvbGFiZWwtY29udHJvbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvbGFiZWwtY29udHJvbC5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9s
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJ
QyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0
eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbGFiZWwtY29udHJvbC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0LXRlc3RzL1RF
TVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFi
ZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
WU9VUl9KU19GSUxFX0hFUkUiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3JpcHQtdGVzdHMvbGFiZWwt
Y29udHJvbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxF
bGVtZW50L3NjcmlwdC10ZXN0cy9sYWJlbC1jb250cm9sLmpzCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3JpcHQtdGVzdHMvbGFiZWwtY29u
dHJvbC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBAQAorZGVzY3JpcHRpb24oJ1Rlc3Qg
dGhhdCBsYWJlbC5jb250cm9sIHJlZmVyZW5jZXMgdGhlIGNvcnJlY3QgZm9ybSBjb250cm9sLCBv
ciBudWxsIGlmIHRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgY29udHJvbC4nKTsKKworZGVidWcoIkZp
bmQgYSBjb250cm9sIHRoYXQgaXMgdGhlIGZpcnN0IGRlc2NlbmRlbnQgaW4gYSBsYWJlbCIpOwor
ZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBpZD0ndGVzdDEnPjxpbnB1dCBpZD0naW5wdXRJZDEnPjwv
bGFiZWw+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxJykuY29u
dHJvbC5pZCIsICInaW5wdXRJZDEnIik7CisKK2RlYnVnKCJGaW5kIGEgY29udHJvbCBiYXNlZCBv
biBhIGxhYmVsIHdpdGggdmFsaWQgJ2ZvcicgYXR0cmlidXRlIik7Citkb2N1bWVudC53cml0ZSgi
PGxhYmVsIGlkPSd0ZXN0MicgZm9yPSdpbnB1dElkMic+PC9sYWJlbD48aW5wdXQgaWQ9J2lucHV0
SWQyJyB0eXBlPSdudW1iZXInPiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0MicpLmh0bWxGb3IiLCAiJ2lucHV0SWQyJyIpOworc2hvdWxkQmUoImRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0MicpLmNvbnRyb2wudHlwZSIsICInbnVtYmVyJyIpOworCitkZWJ1
ZygiRmluZCBhIGNvbnRyb2wgY29udHJvbCBpbiBwIGVsZW1lbnQgaW4gbGFiZWwiKTsKK2RvY3Vt
ZW50LndyaXRlKCI8bGFiZWwgaWQ9J3Rlc3QzJz48cD48aW5wdXQgaWQ9J2lucHV0SWQzJyB0eXBl
PSdkYXRlJz48L3A+PC9sYWJlbD4iKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGVzdDMnKS5jb250cm9sLmlkIiwgIidpbnB1dElkMyciKTsKKworZGVidWcoIkZpbmQgYSBj
b250cm9sIGluIGZpZWxkc2V0IGluIGxhYmVsLiIpOworZGVidWcoIk5vdGUgdGhhdCBmaWxlZHNl
dCBpcyBhIGZvcm0gY29udHJvbCB0aGF0IGlzIG5vdCBsYWJlbGFibGUuIik7Citkb2N1bWVudC53
cml0ZSgiPGxhYmVsIGlkPSd0ZXN0NCc+PGZpZWxkc2V0PjxpbnB1dCBpZD0naW5wdXRJZDQnPjwv
ZmllbGRzZXQ+PC9sYWJlbD4iKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDQnKS5jb250cm9sLmlkIiwgIidpbnB1dElkNCciKTsKKworZGVidWcoIlRlc3QgbGFiZWwg
d2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEgdmFsaWQgZWxlbWVudCBpZCIpOwor
ZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBmb3I9J2ZvbycgaWQ9J3Rlc3Q1Jz48aW5wdXQgaWQ9J2lu
cHV0SWQ1Jz48L2xhYmVsPiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0NScpLmNvbnRyb2wiLCAibnVsbCIpOworCitkZWJ1ZygiVGVzdCBsYWJlbCB3aXRoICdmb3In
IGF0dHJpYnV0ZSB3aGljaCBpcyBub3QgYSBmb3JtIGNvbnRyb2wiKTsKK2RvY3VtZW50LndyaXRl
KCI8bGFiZWwgZm9yPSdkaXZJZCcgaWQ9J3Rlc3Q2Jz48aW5wdXQgaWQ9J2lucHV0SWQ2Jz48L2xh
YmVsPjxkaXYgaWQ9J2RpdklkJz48L2Rpdj4iKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDYnKS5odG1sRm9yIiwgIidkaXZJZCciKTsKK3Nob3VsZEJlKCJkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVzdDYnKS5jb250cm9sIiwgIm51bGwiKTsKKworZGVidWcoIlRl
c3QgbGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEgbGFiZWxhYmxlIGZv
cm0gY29udHJvbCIpOworZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBmb3I9J2ZzSWQnIGlkPSd0ZXN0
Nyc+PGlucHV0IGlkPSdpbnB1dElkNyc+PC9sYWJlbD48ZmllbGRzZXQgaWQ9J2ZzSWQnPjwvZmll
bGRzZXQ+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q3JykuaHRt
bEZvciIsICInZnNJZCciKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDcnKS5jb250cm9sIiwgIm51bGwiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55360</attachid>
            <date>2010-05-07 04:36:05 -0700</date>
            <delta_ts>2010-05-10 15:47:00 -0700</delta_ts>
            <desc>Another try to fix the Chromium build</desc>
            <filename>38688.patch</filename>
            <type>text/plain</type>
            <size>15160</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMDYgIHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN1cHBvcnQgY29udHJvbCBhdHRyaWJ1dGUgb2YgSFRNTExhYmVsRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2ODgKKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgdGhlIGNvbnRyb2wgYXR0cmlidXRlIGFuZCBjbGVhbnVwIHRoZSBtZXRo
b2QgY29ycmVzcG9uZGluZ0NvbnRyb2wgd2hpY2ggaXMgdXNlZAorICAgICAgICB0byBkZXRlcm1p
bmUgd2hpY2ggY29udHJvbCB0byByZXR1cm4uCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRN
TExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEZv
cm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Ojppc0NvbnRyb2xMYWJlbGFibGUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKToKKyAgICAgICAgKiBo
dG1sL0hUTUxMYWJlbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQu
aWRsOgorCiAyMDEwLTA1LTA2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDU4OTA4KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDAs
NiArNDAwLDE2IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cmVtb3ZlRnJvbUYKICAg
ICBtX2Zvcm0gPSAwOwogfQogCitib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzQ29udHJv
bExhYmVsYWJsZSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEFkZCBtZXRlclRhZyBhbmQgb3V0
cHV0VGFnIHRvIHRoZSBsaXN0IG9uY2Ugd2Ugc3VwcG9ydCB0aGVtLgorICAgIHJldHVybiBoYXNU
YWdOYW1lKGJ1dHRvblRhZykgfHwgaGFzVGFnTmFtZShpbnB1dFRhZykgfHwgaGFzVGFnTmFtZShr
ZXlnZW5UYWcpCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICB8fCBoYXNUYWdOYW1lKHBy
b2dyZXNzVGFnKQorI2VuZGlmCisgICAgfHwgaGFzVGFnTmFtZShzZWxlY3RUYWcpIHx8IGhhc1Rh
Z05hbWUodGV4dGFyZWFUYWcpOworfQorICAgIAogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhT
dGF0ZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCogZG9jLCBIVE1MRm9ybUVsZW1lbnQqIGYpCiAgICAgOiBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvYywgZikKIHsKQEAgLTU3NSw1ICs1ODUsNSBA
QCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZU1hCiAgICAgZWxzZQogICAg
ICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZShhdHRyKTsKIH0KLQorICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViY29yZQpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw2ICsx
MjEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRm9jdXNFdmVudCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEJsdXJFdmVudCgpOwogCisgICAgYm9vbCBpc0NvbnRy
b2xMYWJlbGFibGUoKSBjb25zdDsKKyAgICAKIHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZUZy
b21Gb3JtKCk7CiAgICAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCBhbnkgdGltZSB0aGUgcmVzdWx0
IG9mIHdpbGxWYWxpZGF0ZSgpIGhhcyBjaGFuZ2VkLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxM
YWJlbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVt
ZW50LmNwcAkocmV2aXNpb24gNTg5MDgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1
ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKIApAQCAtNTAsMTcgKzUxLDE5IEBAIGJvb2wgSFRN
TExhYmVsRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb24KICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LUhUTUxFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCgpCitI
VE1MRm9ybUNvbnRyb2xFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29u
dHJvbCgpIGNvbnN0CiB7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBjb250cm9sSWQgPSBnZXRB
dHRyaWJ1dGUoZm9yQXR0cik7CiAgICAgaWYgKGNvbnRyb2xJZC5pc051bGwoKSkgewogICAgICAg
ICAvLyBTZWFyY2ggY2hpbGRyZW4gb2YgdGhlIGxhYmVsIGVsZW1lbnQgZm9yIGEgZm9ybSBlbGVt
ZW50LgotICAgICAgICBOb2RlKiBub2RlID0gdGhpczsKKyAgICAgICAgLy8gcGVyIGh0dHA6Ly9k
ZXYudzMub3JnL2h0bWw1L3NwZWMvT3ZlcnZpZXcuaHRtbCN0aGUtbGFiZWwtZWxlbWVudAorICAg
ICAgICAvLyB0aGUgY29udHJvbCBtdXN0IGJlICJsYWJlbGFibGUgZm9ybS1hc3NvY2lhdGVkIGVs
ZW1lbnQiLgorICAgICAgICBOb2RlKiBub2RlID0gIGNvbnN0X2Nhc3Q8SFRNTExhYmVsRWxlbWVu
dCo+KHRoaXMpOwogICAgICAgICB3aGlsZSAoKG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2Rl
KHRoaXMpKSkgewotICAgICAgICAgICAgaWYgKG5vZGUtPmlzSFRNTEVsZW1lbnQoKSkgewotICAg
ICAgICAgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1l
bnQqPihub2RlKTsKLSAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC0+aXNGb3JtQ29udHJvbEVs
ZW1lbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CisgICAgICAgICAg
ICBpZiAobm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4o
bm9kZSktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpIHsKKyAgICAgICAgICAgICAgICBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50KiBmb3JtQ29udHJvbEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRm9y
bUNvbnRyb2xFbGVtZW50Kj4obm9kZSk7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1Db250cm9s
RWxlbWVudC0+aXNDb250cm9sTGFiZWxhYmxlKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBmb3JtQ29udHJvbEVsZW1lbnQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIDA7CkBAIC02OCw4ICs3MSwxMSBAQCBIVE1MRWxlbWVudCogSFRNTExhYmVsRWxlbWVu
dDo6Y29ycmVzcG9uCiAgICAgICAgIAogICAgIC8vIE9ubHkgcmV0dXJuIEhUTUwgZWxlbWVudHMu
CiAgICAgRWxlbWVudCogZWx0ID0gZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoY29udHJvbElk
KTsKLSAgICBpZiAoZWx0ICYmIGVsdC0+aXNIVE1MRWxlbWVudCgpKQotICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbHQpOworICAgIGlmIChlbHQgJiYgZWx0LT5pc0hU
TUxFbGVtZW50KCkgJiYgZWx0LT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKSB7CisgICAgICAgIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQqIGZvcm1Db250cm9sRWxlbWVudCA9IHN0YXRpY19jYXN0PEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQqPihlbHQpOworICAgICAgICBpZiAoZm9ybUNvbnRyb2xFbGVt
ZW50LT5pc0NvbnRyb2xMYWJlbGFibGUoKSkKKyAgICAgICAgICAgIHJldHVybiBmb3JtQ29udHJv
bEVsZW1lbnQ7CisgICAgfQogICAgIHJldHVybiAwOwogfQogCkBAIC0xNjMsNCArMTY5LDkgQEAg
dm9pZCBIVE1MTGFiZWxFbGVtZW50OjpzZXRIdG1sRm9yKGNvbnN0IAogICAgIHNldEF0dHJpYnV0
ZShmb3JBdHRyLCB2YWx1ZSk7CiB9CiAKK1Bhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IEhUTUxMYWJl
bEVsZW1lbnQ6OmNvbnRyb2woKSBjb25zdAoreworICAgIHJldHVybiBjb3JyZXNwb25kaW5nQ29u
dHJvbCgpOworfQorCiB9IC8vIG5hbWVzcGFjZQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxMYWJl
bEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5o
CShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OyAgICAKKwogY2xhc3MgSFRNTExhYmVsRWxlbWVu
dCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgSFRNTExhYmVsRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKQEAgLTQ2LDcgKzQ4LDcgQEAgcHVibGlj
OgogICAgIC8vIE92ZXJyaWRkZW4gdG8gZWl0aGVyIGNsaWNrKCkgb3IgZm9jdXMoKSB0aGUgY29y
cmVzcG9uZGluZyBjb250cm9sLgogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50Kik7CiAKLSAgICBIVE1MRWxlbWVudCogY29ycmVzcG9uZGluZ0NvbnRyb2woKTsKKyAg
ICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KiBjb3JyZXNwb25kaW5nQ29udHJvbCgpIGNvbnN0Owog
CiAgICAgU3RyaW5nIGFjY2Vzc0tleSgpIGNvbnN0OwogICAgIHZvaWQgc2V0QWNjZXNzS2V5KGNv
bnN0IFN0cmluZyYpOwpAQCAtNTQsNiArNTYsOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGh0bWxG
b3IoKSBjb25zdDsKICAgICB2b2lkIHNldEh0bWxGb3IoY29uc3QgU3RyaW5nJik7CiAKKyAgICBQ
YXNzUmVmUHRyPEhUTUxFbGVtZW50PiBjb250cm9sKCkgY29uc3Q7CisKICAgICB2b2lkIGZvY3Vz
KGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uID0gdHJ1ZSk7CiAKICBwcml2YXRlOgpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmlkbAkocmV2aXNpb24gNTg5MDgpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTExhYmVsRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDggKzIyLDkg
QEAgbW9kdWxlIGh0bWwgewogCiAgICAgaW50ZXJmYWNlIEhUTUxMYWJlbEVsZW1lbnQgOiBIVE1M
RWxlbWVudCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9y
bTsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IGFjY2Vzc0tleTsKLSAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIGh0bWxGb3I7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhY2Nlc3NLZXk7CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBodG1sRm9yOworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEVsZW1lbnQgY29udHJvbDsKICAgICB9OwogCiB9
CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU4OTE2KQorKysgV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEwLTA1LTA2ICB5YWVs
IGFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGNvbnRyb2wgYXR0cmlidXRlIG9mIEhU
TUxMYWJlbEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM4Njg4CisKKyAgICAgICAgQ2hhbmdlIHJldHVybiB2YWx1ZSBmcm9tIFdlYkVsZW1l
bnQgdG8gV2ViRm9ybUNvbnRyb2xFbGVtZW50CisKKyAgICAgICAgKiBwdWJsaWMvV2ViTGFiZWxF
bGVtZW50Lmg6CisgICAgICAgICogc3JjL1dlYkxhYmVsRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkxhYmVsRWxlbWVudDo6Y29ycmVzcG9uZGluZ0NvbnRyb2wpOgorCiAyMDEwLTA1
LTA2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViTGFiZWxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJMYWJlbEVsZW1lbnQuaAkocmV2aXNpb24gNTg5MDgpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkxhYmVsRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAj
ZGVmaW5lIFdlYkxhYmVsRWxlbWVudF9oCiAKICNpbmNsdWRlICJXZWJFbGVtZW50LmgiCisjaW5j
bHVkZSAiV2ViRm9ybUNvbnRyb2xFbGVtZW50LmgiCiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJ
T04KIG5hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgSFRNTExhYmVsRWxlbWVudDsgfQpAQCAtNTQs
NyArNTUsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdl
YkxhYmVsRWxlbWVudCYgZSkgeyBXZWJFbGVtZW50Ojphc3NpZ24oZSk7IH0KIAotICAgIFdFQktJ
VF9BUEkgV2ViRWxlbWVudCBjb3JyZXNwb25kaW5nQ29udHJvbCgpOworICAgIFdFQktJVF9BUEkg
V2ViRm9ybUNvbnRyb2xFbGVtZW50IGNvcnJlc3BvbmRpbmdDb250cm9sKCk7CiAKICNpZiBXRUJL
SVRfSU1QTEVNRU5UQVRJT04KICAgICBXZWJMYWJlbEVsZW1lbnQoY29uc3QgV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1lbnQ+Jik7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkxhYmVsRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJMYWJlbEVsZW1lbnQuY3BwCShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViTGFiZWxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksOSArMjksMTAg
QEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViTGFiZWxFbGVtZW50
LmgiCiAKICNpbmNsdWRlICJIVE1MTGFiZWxFbGVtZW50LmgiCisKKyNpbmNsdWRlICJXZWJGb3Jt
Q29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJXZWJT
dHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNDAsOSArNDEsOSBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYkVsZW1l
bnQgV2ViTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCgpCitXZWJGb3JtQ29udHJv
bEVsZW1lbnQgV2ViTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCgpCiB7Ci0gICAg
cmV0dXJuIFdlYkVsZW1lbnQodW53cmFwPEhUTUxMYWJlbEVsZW1lbnQ+KCktPmNvcnJlc3BvbmRp
bmdDb250cm9sKCkpOworICAgIHJldHVybiBXZWJGb3JtQ29udHJvbEVsZW1lbnQodW53cmFwPEhU
TUxMYWJlbEVsZW1lbnQ+KCktPmNvcnJlc3BvbmRpbmdDb250cm9sKCkpOwogfQogCiBXZWJMYWJl
bEVsZW1lbnQ6OldlYkxhYmVsRWxlbWVudChjb25zdCBQYXNzUmVmUHRyPEhUTUxMYWJlbEVsZW1l
bnQ+JiBlbGVtKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTg5MDgpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNS0wNiAgeWFlbCBh
aGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBjb250cm9sIGF0dHJpYnV0ZSBvZiBIVE1M
TGFiZWxFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zODY4OAorCisgICAgICAgICogZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9sYWJlbC1j
b250cm9sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTExhYmVs
RWxlbWVudC9sYWJlbC1jb250cm9sLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hU
TUxMYWJlbEVsZW1lbnQvc2NyaXB0LXRlc3RzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9I
VE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9sYWJlbC1jb250cm9s
LmpzOiBBZGRlZC4KKwogMjAxMC0wNS0wNiAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xhYmVs
LWNvbnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwzMiBAQAorVGVzdCB0aGF0IGxhYmVsLmNvbnRyb2wgcmVmZXJlbmNlcyB0
aGUgY29ycmVjdCBmb3JtIGNvbnRyb2wsIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gYXNzb2NpYXRl
ZCBjb250cm9sLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRmluZCBhIGNvbnRy
b2wgdGhhdCBpcyB0aGUgZmlyc3QgZGVzY2VuZGVudCBpbiBhIGxhYmVsCitQQVNTIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0MScpLmNvbnRyb2wuaWQgaXMgJ2lucHV0SWQxJworRmluZCBh
IGNvbnRyb2wgYmFzZWQgb24gYSBsYWJlbCB3aXRoIHZhbGlkICdmb3InIGF0dHJpYnV0ZQorUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDInKS5odG1sRm9yIGlzICdpbnB1dElkMicK
K1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJykuY29udHJvbC50eXBlIGlzICdu
dW1iZXInCitGaW5kIGEgY29udHJvbCBjb250cm9sIGluIHAgZWxlbWVudCBpbiBsYWJlbAorUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDMnKS5jb250cm9sLmlkIGlzICdpbnB1dElk
MycKK0ZpbmQgYSBjb250cm9sIGluIGZpZWxkc2V0IGluIGxhYmVsLgorTm90ZSB0aGF0IGZpbGVk
c2V0IGlzIGEgZm9ybSBjb250cm9sIHRoYXQgaXMgbm90IGxhYmVsYWJsZS4KK1BBU1MgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0JykuY29udHJvbC5pZCBpcyAnaW5wdXRJZDQnCitUZXN0
IGxhYmVsIHdpdGggJ2ZvcicgYXR0cmlidXRlIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGVsZW1lbnQg
aWQKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1JykuY29udHJvbCBpcyBudWxs
CitUZXN0IGxhYmVsIHdpdGggJ2ZvcicgYXR0cmlidXRlIHdoaWNoIGlzIG5vdCBhIGZvcm0gY29u
dHJvbAorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDYnKS5odG1sRm9yIGlzICdk
aXZJZCcKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q2JykuY29udHJvbCBpcyBu
dWxsCitUZXN0IGxhYmVsIHdpdGggJ2ZvcicgYXR0cmlidXRlIHdoaWNoIGlzIG5vdCBhIGxhYmVs
YWJsZSBmb3JtIGNvbnRyb2wKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q3Jyku
aHRtbEZvciBpcyAnZnNJZCcKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q3Jyku
Y29udHJvbCBpcyBudWxsCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKworCisKKworCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJl
bEVsZW1lbnQvbGFiZWwtY29udHJvbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvbGFiZWwtY29udHJvbC5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbGFiZWwtY29udHJvbC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0LXRlc3RzL1RFTVBM
QVRFLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxF
bGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0iWU9V
Ul9KU19GSUxFX0hFUkUiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3JpcHQtdGVzdHMvbGFiZWwtY29u
dHJvbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVt
ZW50L3NjcmlwdC10ZXN0cy9sYWJlbC1jb250cm9sLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3JpcHQtdGVzdHMvbGFiZWwtY29udHJv
bC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNSBAQAorZGVzY3JpcHRpb24oJ1Rlc3QgdGhh
dCBsYWJlbC5jb250cm9sIHJlZmVyZW5jZXMgdGhlIGNvcnJlY3QgZm9ybSBjb250cm9sLCBvciBu
dWxsIGlmIHRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgY29udHJvbC4nKTsKKworZGVidWcoIkZpbmQg
YSBjb250cm9sIHRoYXQgaXMgdGhlIGZpcnN0IGRlc2NlbmRlbnQgaW4gYSBsYWJlbCIpOworZG9j
dW1lbnQud3JpdGUoIjxsYWJlbCBpZD0ndGVzdDEnPjxpbnB1dCBpZD0naW5wdXRJZDEnPjwvbGFi
ZWw+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxJykuY29udHJv
bC5pZCIsICInaW5wdXRJZDEnIik7CisKK2RlYnVnKCJGaW5kIGEgY29udHJvbCBiYXNlZCBvbiBh
IGxhYmVsIHdpdGggdmFsaWQgJ2ZvcicgYXR0cmlidXRlIik7Citkb2N1bWVudC53cml0ZSgiPGxh
YmVsIGlkPSd0ZXN0MicgZm9yPSdpbnB1dElkMic+PC9sYWJlbD48aW5wdXQgaWQ9J2lucHV0SWQy
JyB0eXBlPSdudW1iZXInPiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0MicpLmh0bWxGb3IiLCAiJ2lucHV0SWQyJyIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0MicpLmNvbnRyb2wudHlwZSIsICInbnVtYmVyJyIpOworCitkZWJ1Zygi
RmluZCBhIGNvbnRyb2wgY29udHJvbCBpbiBwIGVsZW1lbnQgaW4gbGFiZWwiKTsKK2RvY3VtZW50
LndyaXRlKCI8bGFiZWwgaWQ9J3Rlc3QzJz48cD48aW5wdXQgaWQ9J2lucHV0SWQzJyB0eXBlPSdk
YXRlJz48L3A+PC9sYWJlbD4iKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDMnKS5jb250cm9sLmlkIiwgIidpbnB1dElkMyciKTsKKworZGVidWcoIkZpbmQgYSBjb250
cm9sIGluIGZpZWxkc2V0IGluIGxhYmVsLiIpOworZGVidWcoIk5vdGUgdGhhdCBmaWxlZHNldCBp
cyBhIGZvcm0gY29udHJvbCB0aGF0IGlzIG5vdCBsYWJlbGFibGUuIik7Citkb2N1bWVudC53cml0
ZSgiPGxhYmVsIGlkPSd0ZXN0NCc+PGZpZWxkc2V0PjxpbnB1dCBpZD0naW5wdXRJZDQnPjwvZmll
bGRzZXQ+PC9sYWJlbD4iKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDQnKS5jb250cm9sLmlkIiwgIidpbnB1dElkNCciKTsKKworZGVidWcoIlRlc3QgbGFiZWwgd2l0
aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEgdmFsaWQgZWxlbWVudCBpZCIpOworZG9j
dW1lbnQud3JpdGUoIjxsYWJlbCBmb3I9J2ZvbycgaWQ9J3Rlc3Q1Jz48aW5wdXQgaWQ9J2lucHV0
SWQ1Jz48L2xhYmVsPiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
NScpLmNvbnRyb2wiLCAibnVsbCIpOworCitkZWJ1ZygiVGVzdCBsYWJlbCB3aXRoICdmb3InIGF0
dHJpYnV0ZSB3aGljaCBpcyBub3QgYSBmb3JtIGNvbnRyb2wiKTsKK2RvY3VtZW50LndyaXRlKCI8
bGFiZWwgZm9yPSdkaXZJZCcgaWQ9J3Rlc3Q2Jz48aW5wdXQgaWQ9J2lucHV0SWQ2Jz48L2xhYmVs
PjxkaXYgaWQ9J2RpdklkJz48L2Rpdj4iKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDYnKS5odG1sRm9yIiwgIidkaXZJZCciKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGVzdDYnKS5jb250cm9sIiwgIm51bGwiKTsKKworZGVidWcoIlRlc3Qg
bGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEgbGFiZWxhYmxlIGZvcm0g
Y29udHJvbCIpOworZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBmb3I9J2ZzSWQnIGlkPSd0ZXN0Nyc+
PGlucHV0IGlkPSdpbnB1dElkNyc+PC9sYWJlbD48ZmllbGRzZXQgaWQ9J2ZzSWQnPjwvZmllbGRz
ZXQ+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q3JykuaHRtbEZv
ciIsICInZnNJZCciKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcn
KS5jb250cm9sIiwgIm51bGwiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55369</attachid>
            <date>2010-05-07 05:51:37 -0700</date>
            <delta_ts>2010-05-10 15:47:00 -0700</delta_ts>
            <desc>Maybe this time it will compile?</desc>
            <filename>38688.patch</filename>
            <type>text/plain</type>
            <size>14946</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1ODkwOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMDYgIHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN1cHBvcnQgY29udHJvbCBhdHRyaWJ1dGUgb2YgSFRNTExhYmVsRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2ODgKKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgdGhlIGNvbnRyb2wgYXR0cmlidXRlIGFuZCBjbGVhbnVwIHRoZSBtZXRo
b2QgY29ycmVzcG9uZGluZ0NvbnRyb2wgd2hpY2ggaXMgdXNlZAorICAgICAgICB0byBkZXRlcm1p
bmUgd2hpY2ggY29udHJvbCB0byByZXR1cm4uCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRN
TExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTEZv
cm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Ojppc0NvbnRyb2xMYWJlbGFibGUpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKToKKyAgICAgICAgKiBo
dG1sL0hUTUxMYWJlbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxMYWJlbEVsZW1lbnQu
aWRsOgorCiAyMDEwLTA1LTA2ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpvc2VwaCBQZWNvcmFyby4KSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDU4OTA4KQorKysgV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MDAs
NiArNDAwLDE2IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cmVtb3ZlRnJvbUYKICAg
ICBtX2Zvcm0gPSAwOwogfQogCitib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzQ29udHJv
bExhYmVsYWJsZSgpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEFkZCBtZXRlclRhZyBhbmQgb3V0
cHV0VGFnIHRvIHRoZSBsaXN0IG9uY2Ugd2Ugc3VwcG9ydCB0aGVtLgorICAgIHJldHVybiBoYXNU
YWdOYW1lKGJ1dHRvblRhZykgfHwgaGFzVGFnTmFtZShpbnB1dFRhZykgfHwgaGFzVGFnTmFtZShr
ZXlnZW5UYWcpCisjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKKyAgICB8fCBoYXNUYWdOYW1lKHBy
b2dyZXNzVGFnKQorI2VuZGlmCisgICAgfHwgaGFzVGFnTmFtZShzZWxlY3RUYWcpIHx8IGhhc1Rh
Z05hbWUodGV4dGFyZWFUYWcpOworfQorICAgIAogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhT
dGF0ZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCogZG9jLCBIVE1MRm9ybUVsZW1lbnQqIGYpCiAgICAgOiBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvYywgZikKIHsKSW5kZXg6IFdlYkNvcmUvaHRt
bC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaAkocmV2aXNpb24gNTg5MDgpCisrKyBXZWJDb3JlL2h0bWwv
SFRNTEZvcm1Db250cm9sRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsNiArMTIxLDgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlzcGF0Y2hCbHVyRXZlbnQoKTsKIAorICAgIGJvb2wgaXNDb250cm9sTGFi
ZWxhYmxlKCkgY29uc3Q7CisgICAgCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZW1vdmVGcm9tRm9y
bSgpOwogICAgIC8vIFRoaXMgbXVzdCBiZSBjYWxsZWQgYW55IHRpbWUgdGhlIHJlc3VsdCBvZiB3
aWxsVmFsaWRhdGUoKSBoYXMgY2hhbmdlZC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5j
cHAJKHJldmlzaW9uIDU4OTA4KQorKysgV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJI
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAKQEAgLTUwLDE3ICs1MSwxOSBAQCBib29sIEhUTUxMYWJl
bEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1IVE1M
RWxlbWVudCogSFRNTExhYmVsRWxlbWVudDo6Y29ycmVzcG9uZGluZ0NvbnRyb2woKQorSFRNTEZv
cm1Db250cm9sRWxlbWVudCogSFRNTExhYmVsRWxlbWVudDo6Y29ycmVzcG9uZGluZ0NvbnRyb2wo
KSBjb25zdAogewogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY29udHJvbElkID0gZ2V0QXR0cmli
dXRlKGZvckF0dHIpOwogICAgIGlmIChjb250cm9sSWQuaXNOdWxsKCkpIHsKICAgICAgICAgLy8g
U2VhcmNoIGNoaWxkcmVuIG9mIHRoZSBsYWJlbCBlbGVtZW50IGZvciBhIGZvcm0gZWxlbWVudC4K
LSAgICAgICAgTm9kZSogbm9kZSA9IHRoaXM7CisgICAgICAgIC8vIHBlciBodHRwOi8vZGV2Lncz
Lm9yZy9odG1sNS9zcGVjL092ZXJ2aWV3Lmh0bWwjdGhlLWxhYmVsLWVsZW1lbnQKKyAgICAgICAg
Ly8gdGhlIGNvbnRyb2wgbXVzdCBiZSAibGFiZWxhYmxlIGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50
Ii4KKyAgICAgICAgTm9kZSogbm9kZSA9ICBjb25zdF9jYXN0PEhUTUxMYWJlbEVsZW1lbnQqPih0
aGlzKTsKICAgICAgICAgd2hpbGUgKChub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSh0aGlz
KSkpIHsKLSAgICAgICAgICAgIGlmIChub2RlLT5pc0hUTUxFbGVtZW50KCkpIHsKLSAgICAgICAg
ICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4o
bm9kZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmlzRm9ybUNvbnRyb2xFbGVtZW50
KCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50OworICAgICAgICAgICAgaWYg
KG5vZGUtPmlzSFRNTEVsZW1lbnQoKSAmJiBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KG5vZGUp
LT5pc0Zvcm1Db250cm9sRWxlbWVudCgpKSB7CisgICAgICAgICAgICAgICAgSFRNTEZvcm1Db250
cm9sRWxlbWVudCogZm9ybUNvbnRyb2xFbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEZvcm1Db250
cm9sRWxlbWVudCo+KG5vZGUpOworICAgICAgICAgICAgICAgIGlmIChmb3JtQ29udHJvbEVsZW1l
bnQtPmlzQ29udHJvbExhYmVsYWJsZSgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm9y
bUNvbnRyb2xFbGVtZW50OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVy
biAwOwpAQCAtNjgsOCArNzEsMTEgQEAgSFRNTEVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmNv
cnJlc3BvbgogICAgICAgICAKICAgICAvLyBPbmx5IHJldHVybiBIVE1MIGVsZW1lbnRzLgogICAg
IEVsZW1lbnQqIGVsdCA9IGRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKGNvbnRyb2xJZCk7Ci0g
ICAgaWYgKGVsdCAmJiBlbHQtPmlzSFRNTEVsZW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEhUTUxFbGVtZW50Kj4oZWx0KTsKKyAgICBpZiAoZWx0ICYmIGVsdC0+aXNIVE1MRWxl
bWVudCgpICYmIGVsdC0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkgeworICAgICAgICBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50KiBmb3JtQ29udHJvbEVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MRm9y
bUNvbnRyb2xFbGVtZW50Kj4oZWx0KTsKKyAgICAgICAgaWYgKGZvcm1Db250cm9sRWxlbWVudC0+
aXNDb250cm9sTGFiZWxhYmxlKCkpCisgICAgICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2xFbGVt
ZW50OworICAgIH0KICAgICByZXR1cm4gMDsKIH0KIApAQCAtMTYzLDQgKzE2OSw5IEBAIHZvaWQg
SFRNTExhYmVsRWxlbWVudDo6c2V0SHRtbEZvcihjb25zdCAKICAgICBzZXRBdHRyaWJ1dGUoZm9y
QXR0ciwgdmFsdWUpOwogfQogCitQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBIVE1MTGFiZWxFbGVt
ZW50Ojpjb250cm9sKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29ycmVzcG9uZGluZ0NvbnRyb2wo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAkocmV2
aXNpb24gNTg5MDgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3Mg
SFRNTEZvcm1Db250cm9sRWxlbWVudDsgICAgCisKIGNsYXNzIEhUTUxMYWJlbEVsZW1lbnQgOiBw
dWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGljOgogICAgIEhUTUxMYWJlbEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CkBAIC00Niw3ICs0OCw3IEBAIHB1YmxpYzoKICAg
ICAvLyBPdmVycmlkZGVuIHRvIGVpdGhlciBjbGljaygpIG9yIGZvY3VzKCkgdGhlIGNvcnJlc3Bv
bmRpbmcgY29udHJvbC4KICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCopOwogCi0gICAgSFRNTEVsZW1lbnQqIGNvcnJlc3BvbmRpbmdDb250cm9sKCk7CisgICAgSFRN
TEZvcm1Db250cm9sRWxlbWVudCogY29ycmVzcG9uZGluZ0NvbnRyb2woKSBjb25zdDsKIAogICAg
IFN0cmluZyBhY2Nlc3NLZXkoKSBjb25zdDsKICAgICB2b2lkIHNldEFjY2Vzc0tleShjb25zdCBT
dHJpbmcmKTsKQEAgLTU0LDYgKzU2LDggQEAgcHVibGljOgogICAgIFN0cmluZyBodG1sRm9yKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRIdG1sRm9yKGNvbnN0IFN0cmluZyYpOwogCisgICAgUGFzc1Jl
ZlB0cjxIVE1MRWxlbWVudD4gY29udHJvbCgpIGNvbnN0OworCiAgICAgdm9pZCBmb2N1cyhib29s
IHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiA9IHRydWUpOwogCiAgcHJpdmF0ZToKSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTExhYmVsRWxlbWVudC5pZGwJKHJldmlzaW9uIDU4OTA4KQorKysgV2ViQ29yZS9odG1s
L0hUTUxMYWJlbEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw4ICsyMiw5IEBAIG1v
ZHVsZSBodG1sIHsKIAogICAgIGludGVyZmFjZSBIVE1MTGFiZWxFbGVtZW50IDogSFRNTEVsZW1l
bnQgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50IGZvcm07Ci0g
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBhY2Nl
c3NLZXk7Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0
cmluZyBodG1sRm9yOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBET01TdHJpbmcgYWNjZXNzS2V5OworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgaHRtbEZvcjsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEhUTUxFbGVtZW50IGNvbnRyb2w7CiAgICAgfTsKIAogfQpJbmRl
eDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA1ODkxNikKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNS0wNiAgeWFlbCBhaGFy
b24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBjb250cm9sIGF0dHJpYnV0ZSBvZiBIVE1MTGFi
ZWxFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zODY4OAorCisgICAgICAgIENoYW5nZSByZXR1cm4gdmFsdWUgZnJvbSBXZWJFbGVtZW50IHRv
IFdlYkZvcm1Db250cm9sRWxlbWVudAorCisgICAgICAgICogcHVibGljL1dlYkxhYmVsRWxlbWVu
dC5oOgorICAgICAgICAqIHNyYy9XZWJMYWJlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJMYWJlbEVsZW1lbnQ6OmNvcnJlc3BvbmRpbmdDb250cm9sKToKKwogMjAxMC0wNS0wNiAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkxh
YmVsRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTGFi
ZWxFbGVtZW50LmgJKHJldmlzaW9uIDU4OTA4KQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJMYWJlbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogI2RlZmlu
ZSBXZWJMYWJlbEVsZW1lbnRfaAogCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgorI2luY2x1ZGUg
IldlYkZvcm1Db250cm9sRWxlbWVudC5oIgogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiBu
YW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIEhUTUxMYWJlbEVsZW1lbnQ7IH0KQEAgLTU0LDcgKzU1
LDcgQEAgcHVibGljOgogCiAgICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBXZWJMYWJl
bEVsZW1lbnQmIGUpIHsgV2ViRWxlbWVudDo6YXNzaWduKGUpOyB9CiAKLSAgICBXRUJLSVRfQVBJ
IFdlYkVsZW1lbnQgY29ycmVzcG9uZGluZ0NvbnRyb2woKTsKKyAgICBXRUJLSVRfQVBJIFdlYkZv
cm1Db250cm9sRWxlbWVudCBjb3JyZXNwb25kaW5nQ29udHJvbCgpOwogCiAjaWYgV0VCS0lUX0lN
UExFTUVOVEFUSU9OCiAgICAgV2ViTGFiZWxFbGVtZW50KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxX
ZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50PiYpOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJMYWJlbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TGFiZWxFbGVtZW50LmNwcAkocmV2aXNpb24gNTg5MDgpCisrKyBXZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkxhYmVsRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJMYWJlbEVsZW1lbnQuaCIKIAorI2luY2x1
ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTGFiZWxFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCkBAIC00
MCw5ICs0MSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotV2ViRWxlbWVudCBXZWJMYWJlbEVsZW1lbnQ6OmNvcnJlc3BvbmRpbmdDb250cm9sKCkK
K1dlYkZvcm1Db250cm9sRWxlbWVudCBXZWJMYWJlbEVsZW1lbnQ6OmNvcnJlc3BvbmRpbmdDb250
cm9sKCkKIHsKLSAgICByZXR1cm4gV2ViRWxlbWVudCh1bndyYXA8SFRNTExhYmVsRWxlbWVudD4o
KS0+Y29ycmVzcG9uZGluZ0NvbnRyb2woKSk7CisgICAgcmV0dXJuIFdlYkZvcm1Db250cm9sRWxl
bWVudCh1bndyYXA8SFRNTExhYmVsRWxlbWVudD4oKS0+Y29ycmVzcG9uZGluZ0NvbnRyb2woKSk7
CiB9CiAKIFdlYkxhYmVsRWxlbWVudDo6V2ViTGFiZWxFbGVtZW50KGNvbnN0IFBhc3NSZWZQdHI8
SFRNTExhYmVsRWxlbWVudD4mIGVsZW0pCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1ODkwOCkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEw
LTA1LTA2ICB5YWVsIGFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGNvbnRyb2wgYXR0
cmlidXRlIG9mIEhUTUxMYWJlbEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM4Njg4CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGFiZWxF
bGVtZW50L2xhYmVsLWNvbnRyb2wtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3JpcHQtdGVzdHM6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0LXRlc3Rz
L2xhYmVsLWNvbnRyb2wuanM6IEFkZGVkLgorCiAyMDEwLTA1LTA2ICBPbGl2ZXIgSHVudCAgPG9s
aXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJl
bEVsZW1lbnQvbGFiZWwtY29udHJvbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACitUZXN0IHRoYXQgbGFiZWwuY29udHJv
bCByZWZlcmVuY2VzIHRoZSBjb3JyZWN0IGZvcm0gY29udHJvbCwgb3IgbnVsbCBpZiB0aGVyZSBp
cyBubyBhc3NvY2lhdGVkIGNvbnRyb2wuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitGaW5kIGEgY29udHJvbCB0aGF0IGlzIHRoZSBmaXJzdCBkZXNjZW5kZW50IGluIGEgbGFiZWwK
K1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxJykuY29udHJvbC5pZCBpcyAnaW5w
dXRJZDEnCitGaW5kIGEgY29udHJvbCBiYXNlZCBvbiBhIGxhYmVsIHdpdGggdmFsaWQgJ2Zvcicg
YXR0cmlidXRlCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MicpLmh0bWxGb3Ig
aXMgJ2lucHV0SWQyJworUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDInKS5jb250
cm9sLnR5cGUgaXMgJ251bWJlcicKK0ZpbmQgYSBjb250cm9sIGNvbnRyb2wgaW4gcCBlbGVtZW50
IGluIGxhYmVsCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MycpLmNvbnRyb2wu
aWQgaXMgJ2lucHV0SWQzJworRmluZCBhIGNvbnRyb2wgaW4gZmllbGRzZXQgaW4gbGFiZWwuCitO
b3RlIHRoYXQgZmlsZWRzZXQgaXMgYSBmb3JtIGNvbnRyb2wgdGhhdCBpcyBub3QgbGFiZWxhYmxl
LgorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDQnKS5jb250cm9sLmlkIGlzICdp
bnB1dElkNCcKK1Rlc3QgbGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEg
dmFsaWQgZWxlbWVudCBpZAorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDUnKS5j
b250cm9sIGlzIG51bGwKK1Rlc3QgbGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMg
bm90IGEgZm9ybSBjb250cm9sCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Nicp
Lmh0bWxGb3IgaXMgJ2RpdklkJworUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDYn
KS5jb250cm9sIGlzIG51bGwKK1Rlc3QgbGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2gg
aXMgbm90IGEgbGFiZWxhYmxlIGZvcm0gY29udHJvbAorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDcnKS5odG1sRm9yIGlzICdmc0lkJworUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDcnKS5jb250cm9sIGlzIG51bGwKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCisKKworCisKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xh
YmVsLWNvbnRyb2wuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9sYWJlbC1j
b250cm9sLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3Jp
cHQtdGVzdHMvVEVNUExBVEUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L3NjcmlwdC10
ZXN0cy9sYWJlbC1jb250cm9sLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0LXRlc3RzL2xhYmVsLWNvbnRyb2wuanMJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0
cy9sYWJlbC1jb250cm9sLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM1IEBACitkZXNjcmlw
dGlvbignVGVzdCB0aGF0IGxhYmVsLmNvbnRyb2wgcmVmZXJlbmNlcyB0aGUgY29ycmVjdCBmb3Jt
IGNvbnRyb2wsIG9yIG51bGwgaWYgdGhlcmUgaXMgbm8gYXNzb2NpYXRlZCBjb250cm9sLicpOwor
CitkZWJ1ZygiRmluZCBhIGNvbnRyb2wgdGhhdCBpcyB0aGUgZmlyc3QgZGVzY2VuZGVudCBpbiBh
IGxhYmVsIik7Citkb2N1bWVudC53cml0ZSgiPGxhYmVsIGlkPSd0ZXN0MSc+PGlucHV0IGlkPSdp
bnB1dElkMSc+PC9sYWJlbD4iKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDEnKS5jb250cm9sLmlkIiwgIidpbnB1dElkMSciKTsKKworZGVidWcoIkZpbmQgYSBjb250
cm9sIGJhc2VkIG9uIGEgbGFiZWwgd2l0aCB2YWxpZCAnZm9yJyBhdHRyaWJ1dGUiKTsKK2RvY3Vt
ZW50LndyaXRlKCI8bGFiZWwgaWQ9J3Rlc3QyJyBmb3I9J2lucHV0SWQyJz48L2xhYmVsPjxpbnB1
dCBpZD0naW5wdXRJZDInIHR5cGU9J251bWJlcic+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QyJykuaHRtbEZvciIsICInaW5wdXRJZDInIik7CitzaG91bGRCZSgi
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QyJykuY29udHJvbC50eXBlIiwgIidudW1iZXIn
Iik7CisKK2RlYnVnKCJGaW5kIGEgY29udHJvbCBjb250cm9sIGluIHAgZWxlbWVudCBpbiBsYWJl
bCIpOworZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBpZD0ndGVzdDMnPjxwPjxpbnB1dCBpZD0naW5w
dXRJZDMnIHR5cGU9J2RhdGUnPjwvcD48L2xhYmVsPiIpOworc2hvdWxkQmUoImRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0MycpLmNvbnRyb2wuaWQiLCAiJ2lucHV0SWQzJyIpOworCitkZWJ1
ZygiRmluZCBhIGNvbnRyb2wgaW4gZmllbGRzZXQgaW4gbGFiZWwuIik7CitkZWJ1ZygiTm90ZSB0
aGF0IGZpbGVkc2V0IGlzIGEgZm9ybSBjb250cm9sIHRoYXQgaXMgbm90IGxhYmVsYWJsZS4iKTsK
K2RvY3VtZW50LndyaXRlKCI8bGFiZWwgaWQ9J3Rlc3Q0Jz48ZmllbGRzZXQ+PGlucHV0IGlkPSdp
bnB1dElkNCc+PC9maWVsZHNldD48L2xhYmVsPiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXN0NCcpLmNvbnRyb2wuaWQiLCAiJ2lucHV0SWQ0JyIpOworCitkZWJ1Zygi
VGVzdCBsYWJlbCB3aXRoICdmb3InIGF0dHJpYnV0ZSB3aGljaCBpcyBub3QgYSB2YWxpZCBlbGVt
ZW50IGlkIik7Citkb2N1bWVudC53cml0ZSgiPGxhYmVsIGZvcj0nZm9vJyBpZD0ndGVzdDUnPjxp
bnB1dCBpZD0naW5wdXRJZDUnPjwvbGFiZWw+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3Rlc3Q1JykuY29udHJvbCIsICJudWxsIik7CisKK2RlYnVnKCJUZXN0IGxhYmVs
IHdpdGggJ2ZvcicgYXR0cmlidXRlIHdoaWNoIGlzIG5vdCBhIGZvcm0gY29udHJvbCIpOworZG9j
dW1lbnQud3JpdGUoIjxsYWJlbCBmb3I9J2RpdklkJyBpZD0ndGVzdDYnPjxpbnB1dCBpZD0naW5w
dXRJZDYnPjwvbGFiZWw+PGRpdiBpZD0nZGl2SWQnPjwvZGl2PiIpOworc2hvdWxkQmUoImRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NicpLmh0bWxGb3IiLCAiJ2RpdklkJyIpOworc2hvdWxk
QmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NicpLmNvbnRyb2wiLCAibnVsbCIpOwor
CitkZWJ1ZygiVGVzdCBsYWJlbCB3aXRoICdmb3InIGF0dHJpYnV0ZSB3aGljaCBpcyBub3QgYSBs
YWJlbGFibGUgZm9ybSBjb250cm9sIik7Citkb2N1bWVudC53cml0ZSgiPGxhYmVsIGZvcj0nZnNJ
ZCcgaWQ9J3Rlc3Q3Jz48aW5wdXQgaWQ9J2lucHV0SWQ3Jz48L2xhYmVsPjxmaWVsZHNldCBpZD0n
ZnNJZCc+PC9maWVsZHNldD4iKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDcnKS5odG1sRm9yIiwgIidmc0lkJyIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0NycpLmNvbnRyb2wiLCAibnVsbCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsK
</data>
<flag name="review"
          id="39539"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55614</attachid>
            <date>2010-05-10 15:47:00 -0700</date>
            <delta_ts>2010-05-10 20:00:33 -0700</delta_ts>
            <desc>Patch for addressing review comments.</desc>
            <filename>38688.patch</filename>
            <type>text/plain</type>
            <size>22085</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTA5OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTAtMDUtMTAgIHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN1cHBvcnQgY29udHJvbCBhdHRyaWJ1dGUgb2YgSFRNTExhYmVsRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2ODgKKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgdGhlIGNvbnRyb2wgYXR0cmlidXRlIG9mIEhUTUxMYWJlbEVsZW1lbnQg
YW5kIGNoYW5nZWQgdGhlIGxvZ2ljIG9mIGRldGVybWluaW5nCisgICAgICAgIHdoaWNoIGNvbnRy
b2wgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBsYWJlbCB0byBjb25mb3JtIHRvIEhUTUw1IHNwZWMu
CisgICAgICAgIEFkZGVkIGEgbWFudWFsIHRlc3QgZm9yIHRlc3RpbmcgdGhlIGxvZ2ljIG9mIHNl
bGVjdGluZyB0aGUgY29udHJvbCB0byBnZXQgZm9jdXNlZCwgYWN0aXZhdGVkIG9yIGhvdmVyZWQK
KyAgICAgICAgd2hlbiB0aGUgbGFiZWwgZ2V0cyBmb2N1c2VkLCBhY3RpdmF0ZWQgb3IgaXMgaG92
ZXJlZC4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xhYmVsLWNv
bnRyb2wuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxhYmVsRm9yRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb3JyZXNwb25kaW5nQ29udHJv
bEZvckxhYmVsRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzTGFiZWxh
YmxlKToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL0hUTUxMYWJlbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bm9kZUFzTGFi
ZWxhYmxlRm9ybUNvbnRyb2wpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExhYmVsRWxlbWVudDo6
Y29udHJvbCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50OjpzZXRBY3RpdmUp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTExhYmVsRWxlbWVudDo6c2V0SG92ZXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1lbnQ6OmZvY3VzKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxMYWJlbEVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbik6CisgICAgICAgICogaHRtbC9I
VE1MTGFiZWxFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTGFiZWxFbGVtZW50LmlkbDoK
KyAgICAgICAgKiBtYW51YWwtdGVzdHMvZG9tL2Zvcm0tY29udHJvbC1mb3ItbGFiZWwuaHRtbDog
QWRkZWQuCisKIDIwMTAtMDUtMTAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCShyZXZpc2lv
biA1OTA4MSkKKysrIFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI0MCw3ICsxMjQwLDcgQEAgc3RhdGljIEhUTUxM
YWJlbEVsZW1lbnQqIGxhYmVsRm9yRWxlbWVudAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBsZW47IGkrKykgewogICAgICAgICBpZiAobGlzdC0+aXRlbShpKS0+aGFzVGFnTmFtZShsYWJl
bFRhZykpIHsKICAgICAgICAgICAgIEhUTUxMYWJlbEVsZW1lbnQqIGxhYmVsID0gc3RhdGljX2Nh
c3Q8SFRNTExhYmVsRWxlbWVudCo+KGxpc3QtPml0ZW0oaSkpOwotICAgICAgICAgICAgaWYgKGxh
YmVsLT5jb3JyZXNwb25kaW5nQ29udHJvbCgpID09IGVsZW1lbnQpCisgICAgICAgICAgICBpZiAo
bGFiZWwtPmNvbnRyb2woKSA9PSBlbGVtZW50KQogICAgICAgICAgICAgICAgIHJldHVybiBsYWJl
bDsKICAgICAgICAgfQogICAgIH0KQEAgLTI4NDUsNyArMjg0NSw3IEBAIEFjY2Vzc2liaWxpdHlP
YmplY3QqIEFjY2Vzc2liaWxpdHlSZW5kZXIKICAgICBpZiAoIWxhYmVsRWxlbWVudCkKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgCi0gICAgSFRNTEVsZW1lbnQqIGNvcnJlc3BvbmRpbmdDb250cm9s
ID0gbGFiZWxFbGVtZW50LT5jb3JyZXNwb25kaW5nQ29udHJvbCgpOworICAgIEhUTUxFbGVtZW50
KiBjb3JyZXNwb25kaW5nQ29udHJvbCA9IGxhYmVsRWxlbWVudC0+Y29udHJvbCgpOwogICAgIGlm
ICghY29ycmVzcG9uZGluZ0NvbnRyb2wpCiAgICAgICAgIHJldHVybiAwOwogICAgIApJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAkocmV2aXNpb24gNTkwODEpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQwMCw2ICs0MDAsMTYgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpyZW1vdmVG
cm9tRgogICAgIG1fZm9ybSA9IDA7CiB9CiAKK2Jvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6
aXNMYWJlbGFibGUoKSBjb25zdAoreworICAgIC8vIEZJWE1FOiBBZGQgbWV0ZXJUYWcgYW5kIG91
dHB1dFRhZyB0byB0aGUgbGlzdCBvbmNlIHdlIHN1cHBvcnQgdGhlbS4KKyAgICByZXR1cm4gaGFz
VGFnTmFtZShidXR0b25UYWcpIHx8IGhhc1RhZ05hbWUoaW5wdXRUYWcpIHx8IGhhc1RhZ05hbWUo
a2V5Z2VuVGFnKQorI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCisgICAgICAgIHx8IGhhc1RhZ05h
bWUocHJvZ3Jlc3NUYWcpCisjZW5kaWYKKyAgICAgICAgfHwgaGFzVGFnTmFtZShzZWxlY3RUYWcp
IHx8IGhhc1RhZ05hbWUodGV4dGFyZWFUYWcpOworfQorICAgIAogSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jLCBIVE1MRm9ybUVsZW1lbnQqIGYpCiAg
ICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvYywgZikKIHsKSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAkocmV2aXNpb24gNTkwODEpCisrKyBXZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEs
NiArMTIxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQo
KTsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hCbHVyRXZlbnQoKTsKIAorICAgIGJvb2wgaXNM
YWJlbGFibGUoKSBjb25zdDsKKyAgICAKIHByb3RlY3RlZDoKICAgICB2b2lkIHJlbW92ZUZyb21G
b3JtKCk7CiAgICAgLy8gVGhpcyBtdXN0IGJlIGNhbGxlZCBhbnkgdGltZSB0aGUgcmVzdWx0IG9m
IHdpbGxWYWxpZGF0ZSgpIGhhcyBjaGFuZ2VkLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxMYWJl
bEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmNwcAkocmV2aXNpb24gNTkwODEpCisrKyBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUg
IkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKIApAQCAtMzUsNiArMzYsMjAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCitzdGF0aWMgSFRNTEZvcm1D
b250cm9sRWxlbWVudCogbm9kZUFzTGFiZWxhYmxlRm9ybUNvbnRyb2woTm9kZSogbm9kZSkKK3sK
KyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKG5vZGUtPmlzSFRN
TEVsZW1lbnQoKSAmJiBzdGF0aWNfY2FzdDxIVE1MRWxlbWVudCo+KG5vZGUpLT5pc0Zvcm1Db250
cm9sRWxlbWVudCgpKSB7CisgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGZvcm1Db250
cm9sRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPihub2RlKTsK
KyAgICAgICAgaWYgKGZvcm1Db250cm9sRWxlbWVudC0+aXNMYWJlbGFibGUoKSkKKyAgICAgICAg
ICAgIHJldHVybiBmb3JtQ29udHJvbEVsZW1lbnQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9
CisKIEhUTUxMYWJlbEVsZW1lbnQ6OkhUTUxMYWJlbEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQgKmRvYykKICAgICA6IEhUTUxFbGVtZW50KHRhZ05hbWUsIGRv
YykKIHsKQEAgLTUwLDI3ICs2NSwyNCBAQCBib29sIEhUTUxMYWJlbEVsZW1lbnQ6OmlzRm9jdXNh
YmxlKCkgY29uCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1IVE1MRWxlbWVudCogSFRNTExhYmVs
RWxlbWVudDo6Y29ycmVzcG9uZGluZ0NvbnRyb2woKQorSFRNTEVsZW1lbnQqIEhUTUxMYWJlbEVs
ZW1lbnQ6OmNvbnRyb2woKQogewogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgY29udHJvbElkID0g
Z2V0QXR0cmlidXRlKGZvckF0dHIpOwogICAgIGlmIChjb250cm9sSWQuaXNOdWxsKCkpIHsKLSAg
ICAgICAgLy8gU2VhcmNoIGNoaWxkcmVuIG9mIHRoZSBsYWJlbCBlbGVtZW50IGZvciBhIGZvcm0g
ZWxlbWVudC4KKyAgICAgICAgLy8gU2VhcmNoIHRoZSBjaGlsZHJlbiBvZiB0aGUgbGFiZWwgZWxl
bWVudCBmb3IgYSBmb3JtIGVsZW1lbnQuCisgICAgICAgIC8vIHBlciBodHRwOi8vZGV2LnczLm9y
Zy9odG1sNS9zcGVjL092ZXJ2aWV3Lmh0bWwjdGhlLWxhYmVsLWVsZW1lbnQKKyAgICAgICAgLy8g
dGhlIGZvcm0gZWxlbWVudCBtdXN0IGJlICJsYWJlbGFibGUgZm9ybS1hc3NvY2lhdGVkIGVsZW1l
bnQiLgogICAgICAgICBOb2RlKiBub2RlID0gdGhpczsKICAgICAgICAgd2hpbGUgKChub2RlID0g
bm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSh0aGlzKSkpIHsKLSAgICAgICAgICAgIGlmIChub2RlLT5p
c0hUTUxFbGVtZW50KCkpIHsKLSAgICAgICAgICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9
IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4obm9kZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGVs
ZW1lbnQtPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBlbGVtZW50OwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKEhUTUxGb3JtQ29udHJv
bEVsZW1lbnQqIGZvcm1Db250cm9sRWxlbWVudCA9IG5vZGVBc0xhYmVsYWJsZUZvcm1Db250cm9s
KG5vZGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmb3JtQ29udHJvbEVsZW1lbnQ7CiAgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgICAgICAKLSAgICAvLyBPbmx5IHJl
dHVybiBIVE1MIGVsZW1lbnRzLgotICAgIEVsZW1lbnQqIGVsdCA9IGRvY3VtZW50KCktPmdldEVs
ZW1lbnRCeUlkKGNvbnRyb2xJZCk7Ci0gICAgaWYgKGVsdCAmJiBlbHQtPmlzSFRNTEVsZW1lbnQo
KSkKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4oZWx0KTsKLSAgICBy
ZXR1cm4gMDsKKyAgICAKKyAgICAvLyBGaW5kIHRoZSBmaXJzdCBlbGVtZW50IHdob3NlIGlkIGlz
IGNvbnRyb2xJZC4gSWYgaXQgaXMgZm91bmQgYW5kIGl0IGlzIGEgbGFiZWxhYmxlIGZvcm0gY29u
dHJvbCwKKyAgICAvLyByZXR1cm4gaXQsIG90aGVyd2lzZSByZXR1cm4gMC4KKyAgICByZXR1cm4g
bm9kZUFzTGFiZWxhYmxlRm9ybUNvbnRyb2woZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoY29u
dHJvbElkKSk7CiB9CiAKIHZvaWQgSFRNTExhYmVsRWxlbWVudDo6c2V0QWN0aXZlKGJvb2wgZG93
biwgYm9vbCBwYXVzZSkKQEAgLTgyLDcgKzk0LDcgQEAgdm9pZCBIVE1MTGFiZWxFbGVtZW50Ojpz
ZXRBY3RpdmUoYm9vbCBkbwogICAgIEhUTUxFbGVtZW50OjpzZXRBY3RpdmUoZG93biwgcGF1c2Up
OwogCiAgICAgLy8gQWxzbyB1cGRhdGUgb3VyIGNvcnJlc3BvbmRpbmcgY29udHJvbC4KLSAgICBp
ZiAoSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBjb3JyZXNwb25kaW5nQ29udHJvbCgpKQorICAgIGlm
IChIVE1MRWxlbWVudCogZWxlbWVudCA9IGNvbnRyb2woKSkKICAgICAgICAgZWxlbWVudC0+c2V0
QWN0aXZlKGRvd24sIHBhdXNlKTsKIH0KIApAQCAtOTUsNyArMTA3LDcgQEAgdm9pZCBIVE1MTGFi
ZWxFbGVtZW50OjpzZXRIb3ZlcmVkKGJvb2wgbwogICAgIEhUTUxFbGVtZW50OjpzZXRIb3ZlcmVk
KG92ZXIpOwogCiAgICAgLy8gQWxzbyB1cGRhdGUgb3VyIGNvcnJlc3BvbmRpbmcgY29udHJvbC4K
LSAgICBpZiAoSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBjb3JyZXNwb25kaW5nQ29udHJvbCgpKQor
ICAgIGlmIChIVE1MRWxlbWVudCogZWxlbWVudCA9IGNvbnRyb2woKSkKICAgICAgICAgZWxlbWVu
dC0+c2V0SG92ZXJlZChvdmVyKTsKIH0KIApAQCAtMTA0LDIxICsxMTYsMjEgQEAgdm9pZCBIVE1M
TGFiZWxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbAogICAgIHN0YXRpYyBib29sIHByb2Nlc3Np
bmdDbGljayA9IGZhbHNlOwogCiAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5j
bGlja0V2ZW50ICYmICFwcm9jZXNzaW5nQ2xpY2spIHsKLSAgICAgICAgUmVmUHRyPEhUTUxFbGVt
ZW50PiBjb250cm9sID0gY29ycmVzcG9uZGluZ0NvbnRyb2woKTsKKyAgICAgICAgUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50ID0gY29udHJvbCgpOwogCiAgICAgICAgIC8vIElmIHdlIGNhbid0
IGZpbmQgYSBjb250cm9sIG9yIGlmIHRoZSBjb250cm9sIHJlY2VpdmVkIHRoZSBjbGljawogICAg
ICAgICAvLyBldmVudCwgdGhlbiB0aGVyZSdzIG5vIG5lZWQgZm9yIHVzIHRvIGRvIGFueXRoaW5n
LgotICAgICAgICBpZiAoIWNvbnRyb2wgfHwgKGV2dC0+dGFyZ2V0KCkgJiYgY29udHJvbC0+Y29u
dGFpbnMoZXZ0LT50YXJnZXQoKS0+dG9Ob2RlKCkpKSkKKyAgICAgICAgaWYgKCFlbGVtZW50IHx8
IChldnQtPnRhcmdldCgpICYmIGVsZW1lbnQtPmNvbnRhaW5zKGV2dC0+dGFyZ2V0KCktPnRvTm9k
ZSgpKSkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgcHJvY2Vzc2luZ0NsaWNrID0g
dHJ1ZTsKIAogICAgICAgICAvLyBDbGljayB0aGUgY29ycmVzcG9uZGluZyBjb250cm9sLgotICAg
ICAgICBjb250cm9sLT5kaXNwYXRjaFNpbXVsYXRlZENsaWNrKGV2dCk7CisgICAgICAgIGVsZW1l
bnQtPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soZXZ0KTsKIAogICAgICAgICAvLyBJZiB0aGUgY29u
dHJvbCBjYW4gYmUgZm9jdXNlZCB2aWEgdGhlIG1vdXNlLCB0aGVuIGRvIHRoYXQgdG9vLgotICAg
ICAgICBpZiAoY29udHJvbC0+aXNNb3VzZUZvY3VzYWJsZSgpKQotICAgICAgICAgICAgY29udHJv
bC0+Zm9jdXMoKTsKKyAgICAgICAgaWYgKGVsZW1lbnQtPmlzTW91c2VGb2N1c2FibGUoKSkKKyAg
ICAgICAgICAgIGVsZW1lbnQtPmZvY3VzKCk7CiAKICAgICAgICAgcHJvY2Vzc2luZ0NsaWNrID0g
ZmFsc2U7CiAgICAgICAgIApAQCAtMTMxLDEzICsxNDMsMTMgQEAgdm9pZCBIVE1MTGFiZWxFbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbAogdm9pZCBIVE1MTGFiZWxFbGVtZW50Ojpmb2N1cyhib29s
KQogewogICAgIC8vIHRvIG1hdGNoIG90aGVyIGJyb3dzZXJzLCBhbHdheXMgcmVzdG9yZSBwcmV2
aW91cyBzZWxlY3Rpb24KLSAgICBpZiAoSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBjb3JyZXNwb25k
aW5nQ29udHJvbCgpKQorICAgIGlmIChIVE1MRWxlbWVudCogZWxlbWVudCA9IGNvbnRyb2woKSkK
ICAgICAgICAgZWxlbWVudC0+Zm9jdXMoKTsKIH0KIAogdm9pZCBIVE1MTGFiZWxFbGVtZW50Ojph
Y2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kVG9BbnlFbGVtZW50KQogewotICAgIGlmIChIVE1MRWxl
bWVudCogZWxlbWVudCA9IGNvcnJlc3BvbmRpbmdDb250cm9sKCkpCisgICAgaWYgKEhUTUxFbGVt
ZW50KiBlbGVtZW50ID0gY29udHJvbCgpKQogICAgICAgICBlbGVtZW50LT5hY2Nlc3NLZXlBY3Rp
b24oc2VuZFRvQW55RWxlbWVudCk7CiAgICAgZWxzZQogICAgICAgICBIVE1MRWxlbWVudDo6YWNj
ZXNzS2V5QWN0aW9uKHNlbmRUb0FueUVsZW1lbnQpOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxM
YWJlbEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVu
dC5oCShyZXZpc2lvbiA1OTA4MSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OyAgICAKKwogY2xhc3MgSFRNTExhYmVsRWxl
bWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgSFRNTExhYmVsRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKQEAgLTQ2LDcgKzQ4LDcgQEAgcHVi
bGljOgogICAgIC8vIE92ZXJyaWRkZW4gdG8gZWl0aGVyIGNsaWNrKCkgb3IgZm9jdXMoKSB0aGUg
Y29ycmVzcG9uZGluZyBjb250cm9sLgogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50Kik7CiAKLSAgICBIVE1MRWxlbWVudCogY29ycmVzcG9uZGluZ0NvbnRyb2woKTsK
KyAgICBIVE1MRWxlbWVudCogY29udHJvbCgpOwogCiAgICAgU3RyaW5nIGFjY2Vzc0tleSgpIGNv
bnN0OwogICAgIHZvaWQgc2V0QWNjZXNzS2V5KGNvbnN0IFN0cmluZyYpOwpJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9I
VE1MTGFiZWxFbGVtZW50LmlkbAkocmV2aXNpb24gNTkwODEpCisrKyBXZWJDb3JlL2h0bWwvSFRN
TExhYmVsRWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEZvcm1FbGVtZW50IGZvcm07
CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBh
Y2Nlc3NLZXk7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyBodG1sRm9yOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSFRNTEVsZW1lbnQg
Y29udHJvbDsKICAgICB9OwogCiB9CkluZGV4OiBXZWJDb3JlL21hbnVhbC10ZXN0cy9kb20vZm9y
bS1jb250cm9sLWZvci1sYWJlbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbWFudWFsLXRl
c3RzL2RvbS9mb3JtLWNvbnRyb2wtZm9yLWxhYmVsLmh0bWwJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL21hbnVhbC10ZXN0cy9kb20vZm9ybS1jb250cm9sLWZvci1sYWJlbC5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDIzIEBACis8aHRtbD4KKzxzdHlsZT4KK3Byb2dyZXNzIHtib3JkZXI6
IDNweCBzb2xpZCBibHVlO30KK3Byb2dyZXNzOmhvdmVyIHtib3JkZXI6IDNweCBzb2xpZCByZWQ7
fQorPC9zdHlsZT4KKzxib2R5PgorPGgzPlRlc3QgaG92ZXI8L2gzPgorPGxhYmVsPlRoZSBib3Jk
ZXIgY29sb3Igb2YgdGhlIHByb2dyZXNzIGJhciBzaG91bGQgY2hhbmdlIGZyb20gYmx1ZSB0byBy
ZWQgd2hlbiB5b3UgaG92ZXIgb24gdGhpcyBsYWJlbCB0ZXh0IDxwcm9ncmVzcz48L3Byb2dyZXNz
PjwvbGFiZWw+PGJyPgorPGxhYmVsPlRoZSBib3JkZXIgb2YgdGhpcyBwcm9ncmVzcyBiYXIgd291
bGQgY2hhbmdlIGNvbG9yIHdoZW4gaXQgaXMgaW5zaWRlIGZpZWxkc2V0IGFuZCBsZWdlbmQgZWxl
bWVudHMgPGZpZWxkc2V0PjxsZWdlbmQ+PHByb2dyZXNzPjwvcHJvZ3Jlc3M+PC9sZWdlbmQ+PC9m
aWVsZHNldD48L2xhYmVsPjxicj4KKzxoMz5UZXN0IGFjdGl2YXRpb248L2gzPgorPExhYmVsPlRo
ZSBjaGVja2JveCBzaG91bGQgYmUgYWN0aXZhdGVkIHdoZW4geW91IGNsaWNrIG9uIHRoaXMgbGFi
ZWwgdGV4dCA8aW5wdXQgdHlwZT0iY2hlY2tib3giPjwvbGFiZWw+PGJyPgorPExhYmVsPkFjdGl2
YXRlIGNoZWNrYm94IGluc2lkZSBmaWVsZHNldCBhbmQgbGVnZW5kIGVsZW1lbnRzIDxmaWVsZHNl
dD48bGVnZW5kPjxpbnB1dCB0eXBlPSJjaGVja2JveCI+PC9sZWdlbmQ+PC9maWVsZHNldD48L2xh
YmVsPjxicj4KKworPGgzPlRlc3QgZm9jdXM8L2gzPgorQ2xpY2sgdGhpcyBidXR0b24gdG8gZm9j
dXMgdGhlIHJhZGlvLWJ1dHRvbiBpbnNpZGUgdGhlIGxhYmVsCis8YnV0dG9uIG9uY2xpY2s9ImRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdsMScpLmZvY3VzKCk7Ij5DbGljazwvYnV0dG9uPjxicj4K
KzxMYWJlbCBpZD0ibDEiPlRoZSByYWRpby1idXR0b24gc2hvdWxkIGJlIGZvY3VzIHdoZW4geW91
IGNsaWNrIHRoZSBidXR0b24gYWJvdmUgPGlucHV0IHR5cGU9ImNoZWNrYm94Ij48L2xhYmVsPjxi
cj4KK0NsaWNrIHRoaXMgYnV0dG9uIHRvIGZvY3VzIHRoZSByYWRpby1idXR0b24gaW5zaWRlIHRo
ZSBsYWJlbCBpbnNpZGUgZmlsZWRzZXQgYW5kIGxlZ2VuZCBlbGVtZW50cworPGJ1dHRvbiBvbmNs
aWNrPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbDInKS5mb2N1cygpOyI+Q2xpY2s8L2J1dHRv
bj48YnI+Cis8TGFiZWwgaWQ9ImwyIj5UaGUgcmFkaW8tYnV0dG9uIHNob3VsZCBiZSBmb2N1cyB3
aGVuIHlvdSBjbGljayB0aGUgYnV0dG9uIGFib3ZlIDxmaWVsZHNldD48bGVnZW5kPjxpbnB1dCB0
eXBlPSJjaGVja2JveCI+PC9sZWdlbmQ+PC9maWVsZHNldD48L2xhYmVsPjxicj4KKzwvYm9keT4K
KzwvaHRtbD4KKwpJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA1OTA5OCkKKysrIFdlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0w
NS0xMCAgeWFlbCBhaGFyb24gIDx5YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBjb250cm9sIGF0dHJp
YnV0ZSBvZiBIVE1MTGFiZWxFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zODY4OAorCisgICAgICAgIFJlbmFtZWQgSFRNTExhYmVsRWxlbWVu
dDo6Y29ycmVzcG9uZGluZ0NvbnRyb2wgdG8gSFRNTExhYmVsRWxlbWVudDo6Y29udHJvbAorCisg
ICAgICAgICogc3JjL1dlYkxhYmVsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxh
YmVsRWxlbWVudDo6Y29ycmVzcG9uZGluZ0NvbnRyb2wpOgorCiAyMDEwLTA1LTEwICBUb255IEdl
bnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bSBCYXJ0aC4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGFiZWxFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxhYmVsRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDU5MDgxKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYWJlbEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBX
ZWJFbGVtZW50IFdlYkxhYmVsRWxlbWVudDo6Y29ycmVzcG9uZGluZ0NvbnRyb2woKQogewotICAg
IHJldHVybiBXZWJFbGVtZW50KHVud3JhcDxIVE1MTGFiZWxFbGVtZW50PigpLT5jb3JyZXNwb25k
aW5nQ29udHJvbCgpKTsKKyAgICByZXR1cm4gV2ViRWxlbWVudCh1bndyYXA8SFRNTExhYmVsRWxl
bWVudD4oKS0+Y29udHJvbCgpKTsKIH0KIAogV2ViTGFiZWxFbGVtZW50OjpXZWJMYWJlbEVsZW1l
bnQoY29uc3QgUGFzc1JlZlB0cjxIVE1MTGFiZWxFbGVtZW50PiYgZWxlbSkKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDU5MDk4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMDUtMTAgIHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN1cHBvcnQgY29udHJvbCBhdHRyaWJ1dGUgb2YgSFRNTExhYmVsRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2ODgKKworICAgICAgICAq
IGZhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvbGFiZWwtY29udHJvbC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvbGFiZWwtY29udHJvbC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L3NjcmlwdC10
ZXN0czogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3JpcHQt
dGVzdHMvVEVNUExBVEUuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTExhYmVs
RWxlbWVudC9zY3JpcHQtdGVzdHMvbGFiZWwtY29udHJvbC5qczogQWRkZWQuCisKIDIwMTAtMDUt
MTAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxF
bGVtZW50L2xhYmVsLWNvbnRyb2wtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvbGFiZWwtY29udHJvbC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xh
YmVsLWNvbnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ5IEBACitU
ZXN0IHRoYXQgbGFiZWwuY29udHJvbCByZWZlcmVuY2VzIHRoZSBjb3JyZWN0IGZvcm0gY29udHJv
bCwgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBhc3NvY2lhdGVkIGNvbnRyb2wuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitGaW5kIGEgY29udHJvbCB0aGF0IGlzIHRoZSBmaXJzdCBk
ZXNjZW5kZW50IGluIGEgbGFiZWwKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Qx
JykuY29udHJvbC5pZCBpcyAnaW5wdXRJZDEnCitGaW5kIGEgY29udHJvbCBiYXNlZCBvbiBhIGxh
YmVsIHdpdGggdmFsaWQgJ2ZvcicgYXR0cmlidXRlCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0MicpLmh0bWxGb3IgaXMgJ2lucHV0SWQyJworUEFTUyBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDInKS5jb250cm9sLnR5cGUgaXMgJ251bWJlcicKK0ZpbmQgYSBjb250cm9s
IGluIHAgZWxlbWVudCBpbiBsYWJlbAorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDMnKS5jb250cm9sLmlkIGlzICdpbnB1dElkMycKK0ZpbmQgYSBjb250cm9sIGluIGZpZWxkc2V0
IGluIGxhYmVsLgorTm90ZSB0aGF0IGZpbGVkc2V0IGlzIGEgZm9ybSBjb250cm9sIHRoYXQgaXMg
bm90IGxhYmVsYWJsZS4KK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0JykuY29u
dHJvbC5pZCBpcyAnaW5wdXRJZDQnCitGaW5kIGEgY29udHJvbCBpbiBsZWdlbmQgaW4gbGFiZWwu
CitOb3RlIHRoYXQgbGVnZW5kIGlzIGEgZm9ybSBjb250cm9sIHRoYXQgaXMgbm90IGxhYmVsYWJs
ZS4KK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q1JykuY29udHJvbC5pZCBpcyAn
aW5wdXRJZDUnCitGaW5kIGEgY29udHJvbCBpbiBvcHRncm91cCBpbiBsYWJlbC4KK05vdGUgdGhh
dCBvcHRncm91cCBpcyBhIGZvcm0gY29udHJvbCB0aGF0IGlzIG5vdCBsYWJlbGFibGUuCitQQVNT
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NicpLmNvbnRyb2wuaWQgaXMgJ2lucHV0SWQ2
JworRmluZCBhIGNvbnRyb2wgaW4gb3B0aW9uIGluIGxhYmVsLgorTm90ZSB0aGF0IG9wdGlvbiBp
cyBhIGZvcm0gY29udHJvbCB0aGF0IGlzIG5vdCBsYWJlbGFibGUuCitQQVNTIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0ZXN0NycpLmNvbnRyb2wuaWQgaXMgJ2lucHV0SWQ3JworVGVzdCBsYWJl
bCB3aXRoICdmb3InIGF0dHJpYnV0ZSB3aGljaCBpcyBub3QgYSB2YWxpZCBlbGVtZW50IGlkCitQ
QVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0OCcpLmNvbnRyb2wgaXMgbnVsbAorVGVz
dCBsYWJlbCB3aXRoICdmb3InIGF0dHJpYnV0ZSB3aGljaCBpcyBub3QgYSBmb3JtIGNvbnRyb2wK
K1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q5JykuaHRtbEZvciBpcyAnZGl2SWQn
CitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0OScpLmNvbnRyb2wgaXMgbnVsbAor
VGVzdCBsYWJlbCB3aXRoICdmb3InIGF0dHJpYnV0ZSB3aGljaCBpcyBub3QgYSBsYWJlbGFibGUg
Zm9ybSBjb250cm9sIC0gZmllbGRzZXQKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3QxMCcpLmh0bWxGb3IgaXMgJ2ZzSWQnCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0MTAnKS5jb250cm9sIGlzIG51bGwKK1Rlc3QgbGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUg
d2hpY2ggaXMgbm90IGEgbGFiZWxhYmxlIGZvcm0gY29udHJvbCAtIGxlZ2VuZAorUEFTUyBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDExJykuaHRtbEZvciBpcyAnbGVnZW5kSWQnCitQQVNT
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTEnKS5jb250cm9sIGlzIG51bGwKK1Rlc3Qg
bGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEgbGFiZWxhYmxlIGZvcm0g
Y29udHJvbCAtIG9wdGdyb3VwCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTIn
KS5odG1sRm9yIGlzICdvcHRncm91cElkJworUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDEyJykuY29udHJvbCBpcyBudWxsCitUZXN0IGxhYmVsIHdpdGggJ2ZvcicgYXR0cmlidXRl
IHdoaWNoIGlzIG5vdCBhIGxhYmVsYWJsZSBmb3JtIGNvbnRyb2wgLSBvcHRpb24KK1BBU1MgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxMycpLmh0bWxGb3IgaXMgJ29wdGlvbklkJworUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDEzJykuY29udHJvbCBpcyBudWxsCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCisKKworCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50
L2xhYmVsLWNvbnRyb2wuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxMYWJlbEVsZW1lbnQvbGFiZWwtY29udHJvbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0i
c2NyaXB0LXRlc3RzL2xhYmVsLWNvbnRyb2wuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3JpcHQt
dGVzdHMvVEVNUExBVEUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3JpcHQtdGVzdHMvVEVN
UExBVEUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9IllPVVJfSlNfRklMRV9IRVJFIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxM
YWJlbEVsZW1lbnQvc2NyaXB0LXRlc3RzL2xhYmVsLWNvbnRyb2wuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3JpcHQtdGVzdHMvbGFiZWwt
Y29udHJvbC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJl
bEVsZW1lbnQvc2NyaXB0LXRlc3RzL2xhYmVsLWNvbnRyb2wuanMJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNjUgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoYXQgbGFiZWwuY29udHJvbCByZWZlcmVu
Y2VzIHRoZSBjb3JyZWN0IGZvcm0gY29udHJvbCwgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBhc3Nv
Y2lhdGVkIGNvbnRyb2wuJyk7CisKK2RlYnVnKCJGaW5kIGEgY29udHJvbCB0aGF0IGlzIHRoZSBm
aXJzdCBkZXNjZW5kZW50IGluIGEgbGFiZWwiKTsKK2RvY3VtZW50LndyaXRlKCI8bGFiZWwgaWQ9
J3Rlc3QxJz48aW5wdXQgaWQ9J2lucHV0SWQxJz48L2xhYmVsPiIpOworc2hvdWxkQmUoImRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MScpLmNvbnRyb2wuaWQiLCAiJ2lucHV0SWQxJyIpOwor
CitkZWJ1ZygiRmluZCBhIGNvbnRyb2wgYmFzZWQgb24gYSBsYWJlbCB3aXRoIHZhbGlkICdmb3In
IGF0dHJpYnV0ZSIpOworZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBpZD0ndGVzdDInIGZvcj0naW5w
dXRJZDInPjwvbGFiZWw+PGlucHV0IGlkPSdpbnB1dElkMicgdHlwZT0nbnVtYmVyJz4iKTsKK3No
b3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDInKS5odG1sRm9yIiwgIidpbnB1
dElkMiciKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDInKS5jb250
cm9sLnR5cGUiLCAiJ251bWJlciciKTsKKworZGVidWcoIkZpbmQgYSBjb250cm9sIGluIHAgZWxl
bWVudCBpbiBsYWJlbCIpOworZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBpZD0ndGVzdDMnPjxwPjxp
bnB1dCBpZD0naW5wdXRJZDMnIHR5cGU9J2RhdGUnPjwvcD48L2xhYmVsPiIpOworc2hvdWxkQmUo
ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MycpLmNvbnRyb2wuaWQiLCAiJ2lucHV0SWQz
JyIpOworCitkZWJ1ZygiRmluZCBhIGNvbnRyb2wgaW4gZmllbGRzZXQgaW4gbGFiZWwuIik7Citk
ZWJ1ZygiTm90ZSB0aGF0IGZpbGVkc2V0IGlzIGEgZm9ybSBjb250cm9sIHRoYXQgaXMgbm90IGxh
YmVsYWJsZS4iKTsKK2RvY3VtZW50LndyaXRlKCI8bGFiZWwgaWQ9J3Rlc3Q0Jz48ZmllbGRzZXQ+
PGlucHV0IGlkPSdpbnB1dElkNCc+PC9maWVsZHNldD48L2xhYmVsPiIpOworc2hvdWxkQmUoImRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NCcpLmNvbnRyb2wuaWQiLCAiJ2lucHV0SWQ0JyIp
OworCitkZWJ1ZygiRmluZCBhIGNvbnRyb2wgaW4gbGVnZW5kIGluIGxhYmVsLiIpOworZGVidWco
Ik5vdGUgdGhhdCBsZWdlbmQgaXMgYSBmb3JtIGNvbnRyb2wgdGhhdCBpcyBub3QgbGFiZWxhYmxl
LiIpOworZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBpZD0ndGVzdDUnPjxsZWdlbmQ+PGlucHV0IGlk
PSdpbnB1dElkNSc+PC9sZWdlbmQ+PC9sYWJlbD4iKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdDUnKS5jb250cm9sLmlkIiwgIidpbnB1dElkNSciKTsKKworZGVidWco
IkZpbmQgYSBjb250cm9sIGluIG9wdGdyb3VwIGluIGxhYmVsLiIpOworZGVidWcoIk5vdGUgdGhh
dCBvcHRncm91cCBpcyBhIGZvcm0gY29udHJvbCB0aGF0IGlzIG5vdCBsYWJlbGFibGUuIik7Citk
b2N1bWVudC53cml0ZSgiPGxhYmVsIGlkPSd0ZXN0Nic+PG9wdGdyb3VwPjxpbnB1dCBpZD0naW5w
dXRJZDYnPjwvb3B0Z3JvdXA+PC9sYWJlbD4iKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDYnKS5jb250cm9sLmlkIiwgIidpbnB1dElkNiciKTsKKworZGVidWcoIkZp
bmQgYSBjb250cm9sIGluIG9wdGlvbiBpbiBsYWJlbC4iKTsKK2RlYnVnKCJOb3RlIHRoYXQgb3B0
aW9uIGlzIGEgZm9ybSBjb250cm9sIHRoYXQgaXMgbm90IGxhYmVsYWJsZS4iKTsKK2RvY3VtZW50
LndyaXRlKCI8bGFiZWwgaWQ9J3Rlc3Q3Jz48b3B0aW9uPjxpbnB1dCBpZD0naW5wdXRJZDcnPjwv
b3B0aW9uPjwvbGFiZWw+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3Q3JykuY29udHJvbC5pZCIsICInaW5wdXRJZDcnIik7CisKK2RlYnVnKCJUZXN0IGxhYmVsIHdp
dGggJ2ZvcicgYXR0cmlidXRlIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGVsZW1lbnQgaWQiKTsKK2Rv
Y3VtZW50LndyaXRlKCI8bGFiZWwgZm9yPSdmb28nIGlkPSd0ZXN0OCc+PGlucHV0IGlkPSdpbnB1
dElkOCc+PC9sYWJlbD4iKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDgnKS5jb250cm9sIiwgIm51bGwiKTsKKworZGVidWcoIlRlc3QgbGFiZWwgd2l0aCAnZm9yJyBh
dHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEgZm9ybSBjb250cm9sIik7Citkb2N1bWVudC53cml0ZSgi
PGxhYmVsIGZvcj0nZGl2SWQnIGlkPSd0ZXN0OSc+PGlucHV0IGlkPSdpbnB1dElkOSc+PC9sYWJl
bD48ZGl2IGlkPSdkaXZJZCc+PC9kaXY+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3Q5JykuaHRtbEZvciIsICInZGl2SWQnIik7CitzaG91bGRCZSgiZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3Q5JykuY29udHJvbCIsICJudWxsIik7CisKK2RlYnVnKCJUZXN0
IGxhYmVsIHdpdGggJ2ZvcicgYXR0cmlidXRlIHdoaWNoIGlzIG5vdCBhIGxhYmVsYWJsZSBmb3Jt
IGNvbnRyb2wgLSBmaWVsZHNldCIpOworZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBmb3I9J2ZzSWQn
IGlkPSd0ZXN0MTAnPjxpbnB1dCBpZD0naW5wdXRJZDEwJz48L2xhYmVsPjxmaWVsZHNldCBpZD0n
ZnNJZCc+PC9maWVsZHNldD4iKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
dGVzdDEwJykuaHRtbEZvciIsICInZnNJZCciKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDEwJykuY29udHJvbCIsICJudWxsIik7CisKK2RlYnVnKCJUZXN0IGxhYmVs
IHdpdGggJ2ZvcicgYXR0cmlidXRlIHdoaWNoIGlzIG5vdCBhIGxhYmVsYWJsZSBmb3JtIGNvbnRy
b2wgLSBsZWdlbmQiKTsKK2RvY3VtZW50LndyaXRlKCI8bGFiZWwgZm9yPSdsZWdlbmRJZCcgaWQ9
J3Rlc3QxMSc+PGlucHV0IGlkPSdpbnB1dElkMTEnPjwvbGFiZWw+PGxlZ2VuZCBpZD0nbGVnZW5k
SWQnPjwvbGVnZW5kPiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
MTEnKS5odG1sRm9yIiwgIidsZWdlbmRJZCciKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgndGVzdDExJykuY29udHJvbCIsICJudWxsIik7CisKK2RlYnVnKCJUZXN0IGxhYmVs
IHdpdGggJ2ZvcicgYXR0cmlidXRlIHdoaWNoIGlzIG5vdCBhIGxhYmVsYWJsZSBmb3JtIGNvbnRy
b2wgLSBvcHRncm91cCIpOworZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBmb3I9J29wdGdyb3VwSWQn
IGlkPSd0ZXN0MTInPjxpbnB1dCBpZD0naW5wdXRJZDEyJz48L2xhYmVsPjxvcHRncm91cCBpZD0n
b3B0Z3JvdXBJZCc+PC9vcHRncm91cD4iKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGVzdDEyJykuaHRtbEZvciIsICInb3B0Z3JvdXBJZCciKTsKK3Nob3VsZEJlKCJkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDEyJykuY29udHJvbCIsICJudWxsIik7CisKK2RlYnVn
KCJUZXN0IGxhYmVsIHdpdGggJ2ZvcicgYXR0cmlidXRlIHdoaWNoIGlzIG5vdCBhIGxhYmVsYWJs
ZSBmb3JtIGNvbnRyb2wgLSBvcHRpb24iKTsKK2RvY3VtZW50LndyaXRlKCI8bGFiZWwgZm9yPSdv
cHRpb25JZCcgaWQ9J3Rlc3QxMyc+PGlucHV0IGlkPSdpbnB1dElkMTMnPjwvbGFiZWw+PG9wdGlv
biBpZD0nb3B0aW9uSWQnPjwvb3B0aW9uPiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0MTMnKS5odG1sRm9yIiwgIidvcHRpb25JZCciKTsKK3Nob3VsZEJlKCJkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDEzJykuY29udHJvbCIsICJudWxsIik7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>
<flag name="review"
          id="39843"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55650</attachid>
            <date>2010-05-10 20:00:33 -0700</date>
            <delta_ts>2010-05-12 06:04:24 -0700</delta_ts>
            <desc>Patch addressing comment #13.</desc>
            <filename>38688.patch</filename>
            <type>text/plain</type>
            <size>25135</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTA5OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzcgQEAKKzIwMTAtMDUtMTAgIHlhZWwgYWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFN1cHBvcnQgY29udHJvbCBhdHRyaWJ1dGUgb2YgSFRNTExhYmVsRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2ODgKKworICAgICAgICBB
ZGRlZCBzdXBwb3J0IGZvciB0aGUgY29udHJvbCBhdHRyaWJ1dGUgb2YgSFRNTExhYmVsRWxlbWVu
dCBhbmQgY2hhbmdlZCB0aGUgbG9naWMgb2YgZGV0ZXJtaW5pbmcKKyAgICAgICAgd2hpY2ggY29u
dHJvbCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGxhYmVsIHRvIGNvbmZvcm0gdG8gSFRNTDUgc3Bl
Yy4KKyAgICAgICAgQWRkZWQgYSBtYW51YWwgdGVzdCBmb3IgdGVzdGluZyB0aGUgbG9naWMgb2Yg
c2VsZWN0aW5nIHRoZSBjb250cm9sIHRvIGdldCBmb2N1c2VkLCBhY3RpdmF0ZWQgb3IgaG92ZXJl
ZAorICAgICAgICB3aGVuIHRoZSBsYWJlbCBnZXRzIGZvY3VzZWQsIGFjdGl2YXRlZCBvciBpcyBo
b3ZlcmVkLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvY2xpY2st
bGFiZWwuaHRtbAorICAgICAgICBUZXN0OiBmYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2ZvY3Vz
LWxhYmVsLmh0bWwKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9sYWJl
bC1jb250cm9sLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsYWJlbEZvckVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29ycmVzcG9uZGluZ0Nv
bnRyb2xGb3JMYWJlbEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0xh
YmVsYWJsZSk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MTGFiZWxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5vZGVB
c0xhYmVsYWJsZUZvcm1Db250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1l
bnQ6OmNvbnRyb2wpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTExhYmVsRWxlbWVudDo6c2V0QWN0
aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMYWJlbEVsZW1lbnQ6OnNldEhvdmVyZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTExhYmVsRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50Ojpmb2N1cyk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTGFiZWxFbGVtZW50OjphY2Nlc3NLZXlBY3Rpb24pOgorICAgICAgICAqIGh0
bWwvSFRNTExhYmVsRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTExhYmVsRWxlbWVudC5p
ZGw6CisgICAgICAgICogbWFudWFsLXRlc3RzL2RvbS9mb3JtLWNvbnRyb2wtZm9yLWxhYmVsLmh0
bWw6IEFkZGVkLgorCiAyMDEwLTA1LTEwICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAkocmV2
aXNpb24gNTkwODEpCisrKyBXZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNDAsNyArMTI0MCw3IEBAIHN0YXRpYyBI
VE1MTGFiZWxFbGVtZW50KiBsYWJlbEZvckVsZW1lbnQKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAgaWYgKGxpc3QtPml0ZW0oaSktPmhhc1RhZ05hbWUo
bGFiZWxUYWcpKSB7CiAgICAgICAgICAgICBIVE1MTGFiZWxFbGVtZW50KiBsYWJlbCA9IHN0YXRp
Y19jYXN0PEhUTUxMYWJlbEVsZW1lbnQqPihsaXN0LT5pdGVtKGkpKTsKLSAgICAgICAgICAgIGlm
IChsYWJlbC0+Y29ycmVzcG9uZGluZ0NvbnRyb2woKSA9PSBlbGVtZW50KQorICAgICAgICAgICAg
aWYgKGxhYmVsLT5jb250cm9sKCkgPT0gZWxlbWVudCkKICAgICAgICAgICAgICAgICByZXR1cm4g
bGFiZWw7CiAgICAgICAgIH0KICAgICB9CkBAIC0yODQ1LDcgKzI4NDUsNyBAQCBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyCiAgICAgaWYgKCFsYWJlbEVsZW1lbnQpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIAotICAgIEhUTUxFbGVtZW50KiBjb3JyZXNwb25kaW5nQ29u
dHJvbCA9IGxhYmVsRWxlbWVudC0+Y29ycmVzcG9uZGluZ0NvbnRyb2woKTsKKyAgICBIVE1MRWxl
bWVudCogY29ycmVzcG9uZGluZ0NvbnRyb2wgPSBsYWJlbEVsZW1lbnQtPmNvbnRyb2woKTsKICAg
ICBpZiAoIWNvcnJlc3BvbmRpbmdDb250cm9sKQogICAgICAgICByZXR1cm4gMDsKICAgICAKSW5k
ZXg6IFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDU5MDgx
KQorKysgV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MDAsNiArNDAwLDE2IEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cmVt
b3ZlRnJvbUYKICAgICBtX2Zvcm0gPSAwOwogfQogCitib29sIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OmlzTGFiZWxhYmxlKCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogQWRkIG1ldGVyVGFnIGFu
ZCBvdXRwdXRUYWcgdG8gdGhlIGxpc3Qgb25jZSB3ZSBzdXBwb3J0IHRoZW0uCisgICAgcmV0dXJu
IGhhc1RhZ05hbWUoYnV0dG9uVGFnKSB8fCBoYXNUYWdOYW1lKGlucHV0VGFnKSB8fCBoYXNUYWdO
YW1lKGtleWdlblRhZykKKyNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQorICAgICAgICB8fCBoYXNU
YWdOYW1lKHByb2dyZXNzVGFnKQorI2VuZGlmCisgICAgICAgIHx8IGhhc1RhZ05hbWUoc2VsZWN0
VGFnKSB8fCBoYXNUYWdOYW1lKHRleHRhcmVhVGFnKTsKK30KKyAgICAKIEhUTUxGb3JtQ29udHJv
bEVsZW1lbnRXaXRoU3RhdGU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvYywgSFRNTEZvcm1FbGVtZW50KiBm
KQogICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVudCh0YWdOYW1lLCBkb2MsIGYpCiB7CkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgJKHJldmlzaW9uIDU5MDgxKQorKysg
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MTIxLDYgKzEyMSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hGb2N1c0V2
ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQmx1ckV2ZW50KCk7CiAKKyAgICBib29s
IGlzTGFiZWxhYmxlKCkgY29uc3Q7CisgICAgCiBwcm90ZWN0ZWQ6CiAgICAgdm9pZCByZW1vdmVG
cm9tRm9ybSgpOwogICAgIC8vIFRoaXMgbXVzdCBiZSBjYWxsZWQgYW55IHRpbWUgdGhlIHJlc3Vs
dCBvZiB3aWxsVmFsaWRhdGUoKSBoYXMgY2hhbmdlZC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1M
TGFiZWxFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxl
bWVudC5jcHAJKHJldmlzaW9uIDU5MDgxKQorKysgV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNs
dWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAKQEAgLTM1LDYgKzM2LDE4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAorc3RhdGljIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnQqIG5vZGVBc0xhYmVsYWJsZUZvcm1Db250cm9sKE5vZGUqIG5vZGUp
Cit7CisgICAgaWYgKCFub2RlIHx8ICFub2RlLT5pc0hUTUxFbGVtZW50KCkgfHwgIXN0YXRpY19j
YXN0PEhUTUxFbGVtZW50Kj4obm9kZSktPmlzRm9ybUNvbnRyb2xFbGVtZW50KCkpCisgICAgICAg
IHJldHVybiAwOworICAgIAorICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIGZvcm1Db250cm9s
RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqPihub2RlKTsKKyAg
ICBpZiAoIWZvcm1Db250cm9sRWxlbWVudC0+aXNMYWJlbGFibGUoKSkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICByZXR1cm4gZm9ybUNvbnRyb2xFbGVtZW50OworfQorCiBIVE1MTGFiZWxFbGVt
ZW50OjpIVE1MTGFiZWxFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50ICpkb2MpCiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2MpCiB7CkBAIC01MCwyNyAr
NjMsMjQgQEAgYm9vbCBIVE1MTGFiZWxFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbgogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotSFRNTEVsZW1lbnQqIEhUTUxMYWJlbEVsZW1lbnQ6OmNvcnJlc3Bv
bmRpbmdDb250cm9sKCkKK0hUTUxFbGVtZW50KiBIVE1MTGFiZWxFbGVtZW50Ojpjb250cm9sKCkK
IHsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGNvbnRyb2xJZCA9IGdldEF0dHJpYnV0ZShmb3JB
dHRyKTsKICAgICBpZiAoY29udHJvbElkLmlzTnVsbCgpKSB7Ci0gICAgICAgIC8vIFNlYXJjaCBj
aGlsZHJlbiBvZiB0aGUgbGFiZWwgZWxlbWVudCBmb3IgYSBmb3JtIGVsZW1lbnQuCisgICAgICAg
IC8vIFNlYXJjaCB0aGUgY2hpbGRyZW4gYW5kIGRlc2NlbmRhbnRzIG9mIHRoZSBsYWJlbCBlbGVt
ZW50IGZvciBhIGZvcm0gZWxlbWVudC4KKyAgICAgICAgLy8gcGVyIGh0dHA6Ly9kZXYudzMub3Jn
L2h0bWw1L3NwZWMvT3ZlcnZpZXcuaHRtbCN0aGUtbGFiZWwtZWxlbWVudAorICAgICAgICAvLyB0
aGUgZm9ybSBlbGVtZW50IG11c3QgYmUgImxhYmVsYWJsZSBmb3JtLWFzc29jaWF0ZWQgZWxlbWVu
dCIuCiAgICAgICAgIE5vZGUqIG5vZGUgPSB0aGlzOwogICAgICAgICB3aGlsZSAoKG5vZGUgPSBu
b2RlLT50cmF2ZXJzZU5leHROb2RlKHRoaXMpKSkgewotICAgICAgICAgICAgaWYgKG5vZGUtPmlz
SFRNTEVsZW1lbnQoKSkgewotICAgICAgICAgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0g
c3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihub2RlKTsKLSAgICAgICAgICAgICAgICBpZiAoZWxl
bWVudC0+aXNGb3JtQ29udHJvbEVsZW1lbnQoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGVsZW1lbnQ7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoSFRNTEZvcm1Db250cm9s
RWxlbWVudCogZm9ybUNvbnRyb2xFbGVtZW50ID0gbm9kZUFzTGFiZWxhYmxlRm9ybUNvbnRyb2wo
bm9kZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1Db250cm9sRWxlbWVudDsKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgICAgIAotICAgIC8vIE9ubHkgcmV0
dXJuIEhUTUwgZWxlbWVudHMuCi0gICAgRWxlbWVudCogZWx0ID0gZG9jdW1lbnQoKS0+Z2V0RWxl
bWVudEJ5SWQoY29udHJvbElkKTsKLSAgICBpZiAoZWx0ICYmIGVsdC0+aXNIVE1MRWxlbWVudCgp
KQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbHQpOwotICAgIHJl
dHVybiAwOworICAgIAorICAgIC8vIEZpbmQgdGhlIGZpcnN0IGVsZW1lbnQgd2hvc2UgaWQgaXMg
Y29udHJvbElkLiBJZiBpdCBpcyBmb3VuZCBhbmQgaXQgaXMgYSBsYWJlbGFibGUgZm9ybSBjb250
cm9sLAorICAgIC8vIHJldHVybiBpdCwgb3RoZXJ3aXNlIHJldHVybiAwLgorICAgIHJldHVybiBu
b2RlQXNMYWJlbGFibGVGb3JtQ29udHJvbChkb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChjb250
cm9sSWQpKTsKIH0KIAogdm9pZCBIVE1MTGFiZWxFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBkb3du
LCBib29sIHBhdXNlKQpAQCAtODIsNyArOTIsNyBAQCB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OnNl
dEFjdGl2ZShib29sIGRvCiAgICAgSFRNTEVsZW1lbnQ6OnNldEFjdGl2ZShkb3duLCBwYXVzZSk7
CiAKICAgICAvLyBBbHNvIHVwZGF0ZSBvdXIgY29ycmVzcG9uZGluZyBjb250cm9sLgotICAgIGlm
IChIVE1MRWxlbWVudCogZWxlbWVudCA9IGNvcnJlc3BvbmRpbmdDb250cm9sKCkpCisgICAgaWYg
KEhUTUxFbGVtZW50KiBlbGVtZW50ID0gY29udHJvbCgpKQogICAgICAgICBlbGVtZW50LT5zZXRB
Y3RpdmUoZG93biwgcGF1c2UpOwogfQogCkBAIC05NSw3ICsxMDUsNyBAQCB2b2lkIEhUTUxMYWJl
bEVsZW1lbnQ6OnNldEhvdmVyZWQoYm9vbCBvCiAgICAgSFRNTEVsZW1lbnQ6OnNldEhvdmVyZWQo
b3Zlcik7CiAKICAgICAvLyBBbHNvIHVwZGF0ZSBvdXIgY29ycmVzcG9uZGluZyBjb250cm9sLgot
ICAgIGlmIChIVE1MRWxlbWVudCogZWxlbWVudCA9IGNvcnJlc3BvbmRpbmdDb250cm9sKCkpCisg
ICAgaWYgKEhUTUxFbGVtZW50KiBlbGVtZW50ID0gY29udHJvbCgpKQogICAgICAgICBlbGVtZW50
LT5zZXRIb3ZlcmVkKG92ZXIpOwogfQogCkBAIC0xMDQsMjEgKzExNCwyMSBAQCB2b2lkIEhUTUxM
YWJlbEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsCiAgICAgc3RhdGljIGJvb2wgcHJvY2Vzc2lu
Z0NsaWNrID0gZmFsc2U7CiAKICAgICBpZiAoZXZ0LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNs
aWNrRXZlbnQgJiYgIXByb2Nlc3NpbmdDbGljaykgewotICAgICAgICBSZWZQdHI8SFRNTEVsZW1l
bnQ+IGNvbnRyb2wgPSBjb3JyZXNwb25kaW5nQ29udHJvbCgpOworICAgICAgICBSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQgPSBjb250cm9sKCk7CiAKICAgICAgICAgLy8gSWYgd2UgY2FuJ3Qg
ZmluZCBhIGNvbnRyb2wgb3IgaWYgdGhlIGNvbnRyb2wgcmVjZWl2ZWQgdGhlIGNsaWNrCiAgICAg
ICAgIC8vIGV2ZW50LCB0aGVuIHRoZXJlJ3Mgbm8gbmVlZCBmb3IgdXMgdG8gZG8gYW55dGhpbmcu
Ci0gICAgICAgIGlmICghY29udHJvbCB8fCAoZXZ0LT50YXJnZXQoKSAmJiBjb250cm9sLT5jb250
YWlucyhldnQtPnRhcmdldCgpLT50b05vZGUoKSkpKQorICAgICAgICBpZiAoIWVsZW1lbnQgfHwg
KGV2dC0+dGFyZ2V0KCkgJiYgZWxlbWVudC0+Y29udGFpbnMoZXZ0LT50YXJnZXQoKS0+dG9Ob2Rl
KCkpKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBwcm9jZXNzaW5nQ2xpY2sgPSB0
cnVlOwogCiAgICAgICAgIC8vIENsaWNrIHRoZSBjb3JyZXNwb25kaW5nIGNvbnRyb2wuCi0gICAg
ICAgIGNvbnRyb2wtPmRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soZXZ0KTsKKyAgICAgICAgZWxlbWVu
dC0+ZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhldnQpOwogCiAgICAgICAgIC8vIElmIHRoZSBjb250
cm9sIGNhbiBiZSBmb2N1c2VkIHZpYSB0aGUgbW91c2UsIHRoZW4gZG8gdGhhdCB0b28uCi0gICAg
ICAgIGlmIChjb250cm9sLT5pc01vdXNlRm9jdXNhYmxlKCkpCi0gICAgICAgICAgICBjb250cm9s
LT5mb2N1cygpOworICAgICAgICBpZiAoZWxlbWVudC0+aXNNb3VzZUZvY3VzYWJsZSgpKQorICAg
ICAgICAgICAgZWxlbWVudC0+Zm9jdXMoKTsKIAogICAgICAgICBwcm9jZXNzaW5nQ2xpY2sgPSBm
YWxzZTsKICAgICAgICAgCkBAIC0xMzEsMTMgKzE0MSwxMyBAQCB2b2lkIEhUTUxMYWJlbEVsZW1l
bnQ6OmRlZmF1bHRFdmVudEhhbmRsCiB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OmZvY3VzKGJvb2wp
CiB7CiAgICAgLy8gdG8gbWF0Y2ggb3RoZXIgYnJvd3NlcnMsIGFsd2F5cyByZXN0b3JlIHByZXZp
b3VzIHNlbGVjdGlvbgotICAgIGlmIChIVE1MRWxlbWVudCogZWxlbWVudCA9IGNvcnJlc3BvbmRp
bmdDb250cm9sKCkpCisgICAgaWYgKEhUTUxFbGVtZW50KiBlbGVtZW50ID0gY29udHJvbCgpKQog
ICAgICAgICBlbGVtZW50LT5mb2N1cygpOwogfQogCiB2b2lkIEhUTUxMYWJlbEVsZW1lbnQ6OmFj
Y2Vzc0tleUFjdGlvbihib29sIHNlbmRUb0FueUVsZW1lbnQpCiB7Ci0gICAgaWYgKEhUTUxFbGVt
ZW50KiBlbGVtZW50ID0gY29ycmVzcG9uZGluZ0NvbnRyb2woKSkKKyAgICBpZiAoSFRNTEVsZW1l
bnQqIGVsZW1lbnQgPSBjb250cm9sKCkpCiAgICAgICAgIGVsZW1lbnQtPmFjY2Vzc0tleUFjdGlv
bihzZW5kVG9BbnlFbGVtZW50KTsKICAgICBlbHNlCiAgICAgICAgIEhUTUxFbGVtZW50OjphY2Nl
c3NLZXlBY3Rpb24oc2VuZFRvQW55RWxlbWVudCk7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTExh
YmVsRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50
LmgJKHJldmlzaW9uIDU5MDgxKQorKysgV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgLy8gT3ZlcnJpZGRl
biB0byBlaXRoZXIgY2xpY2soKSBvciBmb2N1cygpIHRoZSBjb3JyZXNwb25kaW5nIGNvbnRyb2wu
CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKIAotICAgIEhU
TUxFbGVtZW50KiBjb3JyZXNwb25kaW5nQ29udHJvbCgpOworICAgIEhUTUxFbGVtZW50KiBjb250
cm9sKCk7CiAKICAgICBTdHJpbmcgYWNjZXNzS2V5KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBY2Nl
c3NLZXkoY29uc3QgU3RyaW5nJik7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTExhYmVsRWxlbWVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxMYWJlbEVsZW1lbnQuaWRsCShy
ZXZpc2lvbiA1OTA4MSkKKysrIFdlYkNvcmUvaHRtbC9IVE1MTGFiZWxFbGVtZW50LmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMjQsNiArMjQsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBIVE1MRm9ybUVsZW1lbnQgZm9ybTsKICAgICAgICAgYXR0cmlidXRlIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGFjY2Vzc0tleTsKICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIGh0bWxGb3I7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBIVE1MRWxlbWVudCBjb250cm9sOwogICAgIH07CiAKIH0K
SW5kZXg6IFdlYkNvcmUvbWFudWFsLXRlc3RzL2RvbS9mb3JtLWNvbnRyb2wtZm9yLWxhYmVsLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9tYW51YWwtdGVzdHMvZG9tL2Zvcm0tY29udHJvbC1m
b3ItbGFiZWwuaHRtbAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvbWFudWFsLXRlc3RzL2RvbS9m
b3JtLWNvbnRyb2wtZm9yLWxhYmVsLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIgQEAK
KzxodG1sPgorPHN0eWxlPgorcHJvZ3Jlc3Mge2JvcmRlcjogM3B4IHNvbGlkIGJsdWU7fQorcHJv
Z3Jlc3M6aG92ZXIge2JvcmRlcjogM3B4IHNvbGlkIHJlZDt9Cis8L3N0eWxlPgorPGJvZHk+Cis8
aDM+VGVzdCBob3ZlcjwvaDM+Cis8bGFiZWw+VGhlIGJvcmRlciBjb2xvciBvZiB0aGUgcHJvZ3Jl
c3MgYmFyIHNob3VsZCBjaGFuZ2UgZnJvbSBibHVlIHRvIHJlZCB3aGVuIHlvdSBob3ZlciBvbiB0
aGlzIGxhYmVsIHRleHQgPHByb2dyZXNzPjwvcHJvZ3Jlc3M+PC9sYWJlbD48YnI+Cis8bGFiZWw+
VGhlIGJvcmRlciBvZiB0aGlzIHByb2dyZXNzIGJhciB3b3VsZCBjaGFuZ2UgY29sb3Igd2hlbiBp
dCBpcyBpbnNpZGUgZmllbGRzZXQgYW5kIGxlZ2VuZCBlbGVtZW50cyA8ZmllbGRzZXQ+PGxlZ2Vu
ZD48cHJvZ3Jlc3M+PC9wcm9ncmVzcz48L2xlZ2VuZD48L2ZpZWxkc2V0PjwvbGFiZWw+PGJyPgor
PC9ib2R5PgorPC9odG1sPgorCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU5MDk4KQorKysg
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDEwLTA1LTEwICB5YWVsIGFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGNvbnRy
b2wgYXR0cmlidXRlIG9mIEhUTUxMYWJlbEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4Njg4CisKKyAgICAgICAgUmVuYW1lZCBIVE1MTGFi
ZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCB0byBIVE1MTGFiZWxFbGVtZW50Ojpjb250
cm9sCisKKyAgICAgICAgKiBzcmMvV2ViTGFiZWxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCk6CisKIDIwMTAtMDUtMTAg
IFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBBZGFtIEJhcnRoLgpJbmRleDogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYWJlbEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGFiZWxFbGVtZW50
LmNwcAkocmV2aXNpb24gNTkwODEpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxhYmVsRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYkVsZW1lbnQgV2ViTGFiZWxFbGVtZW50Ojpjb3JyZXNwb25kaW5nQ29udHJvbCgp
CiB7Ci0gICAgcmV0dXJuIFdlYkVsZW1lbnQodW53cmFwPEhUTUxMYWJlbEVsZW1lbnQ+KCktPmNv
cnJlc3BvbmRpbmdDb250cm9sKCkpOworICAgIHJldHVybiBXZWJFbGVtZW50KHVud3JhcDxIVE1M
TGFiZWxFbGVtZW50PigpLT5jb250cm9sKCkpOwogfQogCiBXZWJMYWJlbEVsZW1lbnQ6OldlYkxh
YmVsRWxlbWVudChjb25zdCBQYXNzUmVmUHRyPEhUTUxMYWJlbEVsZW1lbnQ+JiBlbGVtKQpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNTkwOTgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNS0xMCAgeWFlbCBhaGFyb24gIDx5YWVsLmFo
YXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3VwcG9ydCBjb250cm9sIGF0dHJpYnV0ZSBvZiBIVE1MTGFiZWxFbGVtZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODY4OAorCisg
ICAgICAgICogZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9jbGljay1sYWJlbC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvY2xpY2stbGFi
ZWwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9mb2N1
cy1sYWJlbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxMYWJl
bEVsZW1lbnQvZm9jdXMtbGFiZWwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vSFRN
TExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9sYWJlbC1jb250cm9sLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0LXRlc3RzOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFU
RS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L3Njcmlw
dC10ZXN0cy9sYWJlbC1jb250cm9sLmpzOiBBZGRlZC4KKwogMjAxMC0wNS0xMCAgQWxleGV5IFBy
b3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvY2xpY2st
bGFiZWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxMYWJlbEVsZW1lbnQvY2xpY2stbGFiZWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9jbGljay1sYWJlbC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0cyB0aGF0IHRoZSBj
b3JyZWN0IGZvcm0gY29udHJvbCBlbGVtZW50IGlzIGNsaWNrZWQgd2hlbiBjbGlja2luZyBvbiBh
IGxhYmVsLiBJZiB0aGUgdGVzdCBpcyBzdWNjZXNzZnVsLCB0aGUgdGV4dCAiU1VDQ0VTUyIgc2hv
dWxkIHNob3cgYmVsb3cuCitsYWJlbDFpbmMKK2xhYmVsMmluYworCitTVUNDRVNTCkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2NsaWNrLWxhYmVsLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9jbGljay1s
YWJlbC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVs
RWxlbWVudC9jbGljay1sYWJlbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQzIEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK3ZhciBjbGlja2NvdW50ID0gMDsKK2Z1bmN0aW9uIGRp
c3BhdGNoQ2xpY2tFdmVudCh0YXJnZXQpIHsKKyAgICAvLyBDcmVhdGUgYSBjbGljayBldmVudCBh
bmQgZGlzcGF0Y2ggaXQKKyAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnVUlF
dmVudHMnKTsKKyAgICBldmVudC5pbml0VUlFdmVudCgnY2xpY2snLCB0cnVlLCB0cnVlLCB3aW5k
b3csIDEpCisgICAgdGFyZ2V0LmRpc3BhdGNoRXZlbnQoZXZlbnQpOyAgICAgICAgICAgICAgICAK
K30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAg
ICB2YXIgbGFiZWwxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xhYmVsMScpOworICAgIGRp
c3BhdGNoQ2xpY2tFdmVudChsYWJlbDEpOworICAgIGlmIChjbGlja2NvdW50IDwgMSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgdmFyIGxhYmVsMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCds
YWJlbDInKTsKKyAgICBkaXNwYXRjaENsaWNrRXZlbnQobGFiZWwyKTsKKyAgICBpZiAoY2xpY2tj
b3VudCA8IDIpCisgICAgICAgIHJldHVybjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
cmVzdWx0JykuaW5uZXJIVE1MID0gJ1NVQ0NFU1MnCit9CisKK2Z1bmN0aW9uIGluYygpCit7Cisg
ICAgY2xpY2tjb3VudCsrOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+CitUaGlzIHRlc3RzIHRoYXQgdGhlIGNvcnJlY3QgZm9ybSBjb250cm9sIGVsZW1l
bnQgaXMgY2xpY2tlZCB3aGVuIGNsaWNraW5nIG9uIGEgbGFiZWwuCitJZiB0aGUgdGVzdCBpcyBz
dWNjZXNzZnVsLCB0aGUgdGV4dCAiU1VDQ0VTUyIgc2hvdWxkIHNob3cgYmVsb3cuPGJyPgorPExh
YmVsIGlkPSJsYWJlbDEiPmxhYmVsMTxidXR0b24gb25jbGljaz0iaW5jKCk7Ij5pbmM8L2J1dHRv
bj48L2xhYmVsPjxicj4KKzxMYWJlbCBpZD0ibGFiZWwyIj5sYWJlbDI8ZmllbGRzZXQ+PGxlZ2Vu
ZD48YnV0dG9uIG9uY2xpY2s9ImluYygpOyI+aW5jPC9idXR0b24+PC9sZWdlbmQ+PC9maWVsZHNl
dD48L2xhYmVsPjxicj4KKzxkaXYgaWQ9InJlc3VsdCI+RkFJTFVSRTwvZGl2PgorCis8L2JvZHk+
Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQv
Zm9jdXMtbGFiZWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxMYWJlbEVsZW1lbnQvZm9jdXMtbGFiZWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9mb2N1cy1sYWJlbC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0cyB0aGF0
IHRoZSBjb3JyZWN0IGZvcm0gY29udHJvbCBlbGVtZW50IGlzIGFjdGl2YXRlZCB3aGVuIGNsaWNr
aW5nIG9uIGEgbGFiZWwuIElmIHRoZSB0ZXN0IGlzIHN1Y2Nlc3NmdWwsIHRoZSB0ZXh0ICJTVUND
RVNTIiBzaG91bGQgc2hvdyBiZWxvdy4KK2xhYmVsMQorbGFiZWwyCisKK1NVQ0NFU1MKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvZm9jdXMtbGFiZWwuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2ZvY3Vz
LWxhYmVsLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFi
ZWxFbGVtZW50L2ZvY3VzLWxhYmVsLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKworICAgIHZhciBsYWJlbDEgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnbGFiZWwxJyk7CisgICAgbGFiZWwxLmZvY3VzKCk7CisgICAgaWYgKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjYjEnKSAhPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KQorICAgICAgICBy
ZXR1cm47CisKKyAgICB2YXIgbGFiZWwyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xhYmVs
MicpOworICAgIGxhYmVsMi5mb2N1cygpOworICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY2IyJykgIT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkKKyAgICAgICAgcmV0dXJuOworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSAnU1VDQ0VTUycK
K30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CitUaGlz
IHRlc3RzIHRoYXQgdGhlIGNvcnJlY3QgZm9ybSBjb250cm9sIGVsZW1lbnQgaXMgYWN0aXZhdGVk
IHdoZW4gY2xpY2tpbmcgb24gYSBsYWJlbC4KK0lmIHRoZSB0ZXN0IGlzIHN1Y2Nlc3NmdWwsIHRo
ZSB0ZXh0ICJTVUNDRVNTIiBzaG91bGQgc2hvdyBiZWxvdy48YnI+Cis8TGFiZWwgaWQ9ImxhYmVs
MSI+bGFiZWwxPGlucHV0IGlkPSJjYjEiIHR5cGU9ImNoZWNrYm94Ij48L2xhYmVsPjxicj4KKzxM
YWJlbCBpZD0ibGFiZWwyIj5sYWJlbDI8ZmllbGRzZXQ+PGxlZ2VuZD48aW5wdXQgaWQ9ImNiMiIg
dHlwZT0iY2hlY2tib3giPjwvbGVnZW5kPjwvZmllbGRzZXQ+PC9sYWJlbD48YnI+Cis8ZGl2IGlk
PSJyZXN1bHQiPkZBSUxVUkU8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgorCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQv
bGFiZWwtY29udHJvbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MTGFiZWxFbGVtZW50L2xhYmVsLWNvbnRyb2wtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDUwIEBACitUZXN0IHRoYXQgbGFiZWwuY29udHJvbCByZWZlcmVu
Y2VzIHRoZSBjb3JyZWN0IGZvcm0gY29udHJvbCwgb3IgbnVsbCBpZiB0aGVyZSBpcyBubyBhc3Nv
Y2lhdGVkIGNvbnRyb2wuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitGaW5kIGEg
Y29udHJvbCB0aGF0IGlzIHRoZSBmaXJzdCBkZXNjZW5kZW50IGluIGEgbGFiZWwKK1BBU1MgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxJykuY29udHJvbC5pZCBpcyAnaW5wdXRJZDEnCitG
aW5kIGEgY29udHJvbCBiYXNlZCBvbiBhIGxhYmVsIHdpdGggdmFsaWQgJ2ZvcicgYXR0cmlidXRl
CitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MicpLmh0bWxGb3IgaXMgJ2lucHV0
SWQyJworUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDInKS5jb250cm9sLnR5cGUg
aXMgJ251bWJlcicKK0ZpbmQgYSBjb250cm9sIGluIHAgZWxlbWVudCBpbiBsYWJlbAorUEFTUyBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDMnKS5jb250cm9sLmlkIGlzICdpbnB1dElkMycK
K0ZpbmQgYSBjb250cm9sIGluIGZpZWxkc2V0IGluIGxhYmVsLgorTm90ZSB0aGF0IGZpbGVkc2V0
IGlzIGEgZm9ybSBjb250cm9sIHRoYXQgaXMgbm90IGxhYmVsYWJsZS4KK1BBU1MgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0JykuY29udHJvbC5pZCBpcyAnaW5wdXRJZDQnCitGaW5kIGEg
Y29udHJvbCBpbiBsZWdlbmQgaW4gbGFiZWwuCitOb3RlIHRoYXQgbGVnZW5kIGlzIGEgZm9ybSBj
b250cm9sIHRoYXQgaXMgbm90IGxhYmVsYWJsZS4KK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Rlc3Q1JykuY29udHJvbC5pZCBpcyAnaW5wdXRJZDUnCitGaW5kIGEgY29udHJvbCBpbiBv
cHRncm91cCBpbiBsYWJlbC4KK05vdGUgdGhhdCBvcHRncm91cCBpcyBhIGZvcm0gY29udHJvbCB0
aGF0IGlzIG5vdCBsYWJlbGFibGUuCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
NicpLmNvbnRyb2wuaWQgaXMgJ2lucHV0SWQ2JworRmluZCBhIGNvbnRyb2wgaW4gb3B0aW9uIGlu
IGxhYmVsLgorTm90ZSB0aGF0IG9wdGlvbiBpcyBhIGZvcm0gY29udHJvbCB0aGF0IGlzIG5vdCBs
YWJlbGFibGUuCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NycpLmNvbnRyb2wu
aWQgaXMgJ2lucHV0SWQ3JworVGVzdCBsYWJlbCB3aXRoICdmb3InIGF0dHJpYnV0ZSB3aGljaCBp
cyBub3QgYSB2YWxpZCBlbGVtZW50IGlkCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
ZXN0OCcpLmNvbnRyb2wgaXMgbnVsbAorVGVzdCBsYWJlbCB3aXRoICdmb3InIGF0dHJpYnV0ZSB3
aGljaCBpcyBub3QgYSBmb3JtIGNvbnRyb2wKK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Rlc3Q5JykuaHRtbEZvciBpcyAnZGl2SWQnCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0OScpLmNvbnRyb2wgaXMgbnVsbAorVGVzdCBsYWJlbCB3aXRoICdmb3InIGF0dHJpYnV0
ZSB3aGljaCBpcyBub3QgYSBsYWJlbGFibGUgZm9ybSBjb250cm9sIC0gZmllbGRzZXQKK1BBU1Mg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxMCcpLmh0bWxGb3IgaXMgJ2ZzSWQnCitQQVNT
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTAnKS5jb250cm9sIGlzIG51bGwKK1Rlc3Qg
bGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMgbm90IGEgbGFiZWxhYmxlIGZvcm0g
Y29udHJvbCAtIGxlZ2VuZAorUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDExJyku
aHRtbEZvciBpcyAnbGVnZW5kSWQnCitQQVNTIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0
MTEnKS5jb250cm9sIGlzIG51bGwKK1Rlc3QgbGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hp
Y2ggaXMgbm90IGEgbGFiZWxhYmxlIGZvcm0gY29udHJvbCAtIG9wdGdyb3VwCitQQVNTIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTInKS5odG1sRm9yIGlzICdvcHRncm91cElkJworUEFT
UyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDEyJykuY29udHJvbCBpcyBudWxsCitUZXN0
IGxhYmVsIHdpdGggJ2ZvcicgYXR0cmlidXRlIHdoaWNoIGlzIG5vdCBhIGxhYmVsYWJsZSBmb3Jt
IGNvbnRyb2wgLSBvcHRpb24KK1BBU1MgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxMycp
Lmh0bWxGb3IgaXMgJ29wdGlvbklkJworUEFTUyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dDEzJykuY29udHJvbCBpcyBudWxsCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKworCisKKworCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxMYWJlbEVsZW1lbnQvbGFiZWwtY29udHJvbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvbGFiZWwtY29udHJvbC5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9sYWJlbC1jb250
cm9sLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvbGFiZWwtY29udHJvbC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MTGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMYWJlbEVsZW1lbnQvc2NyaXB0LXRlc3Rz
L1RFTVBMQVRFLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
TGFiZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9URU1QTEFURS5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNy
Yz0iWU9VUl9KU19GSUxFX0hFUkUiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3JpcHQtdGVzdHMvbGFi
ZWwtY29udHJvbC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGFi
ZWxFbGVtZW50L3NjcmlwdC10ZXN0cy9sYWJlbC1jb250cm9sLmpzCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExhYmVsRWxlbWVudC9zY3JpcHQtdGVzdHMvbGFiZWwt
Y29udHJvbC5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NSBAQAorZGVzY3JpcHRpb24oJ1Rl
c3QgdGhhdCBsYWJlbC5jb250cm9sIHJlZmVyZW5jZXMgdGhlIGNvcnJlY3QgZm9ybSBjb250cm9s
LCBvciBudWxsIGlmIHRoZXJlIGlzIG5vIGFzc29jaWF0ZWQgY29udHJvbC4nKTsKKworZGVidWco
IkZpbmQgYSBjb250cm9sIHRoYXQgaXMgdGhlIGZpcnN0IGRlc2NlbmRlbnQgaW4gYSBsYWJlbCIp
OworZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBpZD0ndGVzdDEnPjxpbnB1dCBpZD0naW5wdXRJZDEn
PjwvbGFiZWw+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxJyku
Y29udHJvbC5pZCIsICInaW5wdXRJZDEnIik7CisKK2RlYnVnKCJGaW5kIGEgY29udHJvbCBiYXNl
ZCBvbiBhIGxhYmVsIHdpdGggdmFsaWQgJ2ZvcicgYXR0cmlidXRlIik7Citkb2N1bWVudC53cml0
ZSgiPGxhYmVsIGlkPSd0ZXN0MicgZm9yPSdpbnB1dElkMic+PC9sYWJlbD48aW5wdXQgaWQ9J2lu
cHV0SWQyJyB0eXBlPSdudW1iZXInPiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0ZXN0MicpLmh0bWxGb3IiLCAiJ2lucHV0SWQyJyIpOworc2hvdWxkQmUoImRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXN0MicpLmNvbnRyb2wudHlwZSIsICInbnVtYmVyJyIpOworCitk
ZWJ1ZygiRmluZCBhIGNvbnRyb2wgaW4gcCBlbGVtZW50IGluIGxhYmVsIik7Citkb2N1bWVudC53
cml0ZSgiPGxhYmVsIGlkPSd0ZXN0Myc+PHA+PGlucHV0IGlkPSdpbnB1dElkMycgdHlwZT0nZGF0
ZSc+PC9wPjwvbGFiZWw+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3QzJykuY29udHJvbC5pZCIsICInaW5wdXRJZDMnIik7CisKK2RlYnVnKCJGaW5kIGEgY29udHJv
bCBpbiBmaWVsZHNldCBpbiBsYWJlbC4iKTsKK2RlYnVnKCJOb3RlIHRoYXQgZmlsZWRzZXQgaXMg
YSBmb3JtIGNvbnRyb2wgdGhhdCBpcyBub3QgbGFiZWxhYmxlLiIpOworZG9jdW1lbnQud3JpdGUo
IjxsYWJlbCBpZD0ndGVzdDQnPjxmaWVsZHNldD48aW5wdXQgaWQ9J2lucHV0SWQ0Jz48L2ZpZWxk
c2V0PjwvbGFiZWw+Iik7CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3Q0
JykuY29udHJvbC5pZCIsICInaW5wdXRJZDQnIik7CisKK2RlYnVnKCJGaW5kIGEgY29udHJvbCBp
biBsZWdlbmQgaW4gbGFiZWwuIik7CitkZWJ1ZygiTm90ZSB0aGF0IGxlZ2VuZCBpcyBhIGZvcm0g
Y29udHJvbCB0aGF0IGlzIG5vdCBsYWJlbGFibGUuIik7Citkb2N1bWVudC53cml0ZSgiPGxhYmVs
IGlkPSd0ZXN0NSc+PGxlZ2VuZD48aW5wdXQgaWQ9J2lucHV0SWQ1Jz48L2xlZ2VuZD48L2xhYmVs
PiIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NScpLmNvbnRyb2wu
aWQiLCAiJ2lucHV0SWQ1JyIpOworCitkZWJ1ZygiRmluZCBhIGNvbnRyb2wgaW4gb3B0Z3JvdXAg
aW4gbGFiZWwuIik7CitkZWJ1ZygiTm90ZSB0aGF0IG9wdGdyb3VwIGlzIGEgZm9ybSBjb250cm9s
IHRoYXQgaXMgbm90IGxhYmVsYWJsZS4iKTsKK2RvY3VtZW50LndyaXRlKCI8bGFiZWwgaWQ9J3Rl
c3Q2Jz48b3B0Z3JvdXA+PGlucHV0IGlkPSdpbnB1dElkNic+PC9vcHRncm91cD48L2xhYmVsPiIp
Oworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0NicpLmNvbnRyb2wuaWQi
LCAiJ2lucHV0SWQ2JyIpOworCitkZWJ1ZygiRmluZCBhIGNvbnRyb2wgaW4gb3B0aW9uIGluIGxh
YmVsLiIpOworZGVidWcoIk5vdGUgdGhhdCBvcHRpb24gaXMgYSBmb3JtIGNvbnRyb2wgdGhhdCBp
cyBub3QgbGFiZWxhYmxlLiIpOworZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBpZD0ndGVzdDcnPjxv
cHRpb24+PGlucHV0IGlkPSdpbnB1dElkNyc+PC9vcHRpb24+PC9sYWJlbD4iKTsKK3Nob3VsZEJl
KCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDcnKS5jb250cm9sLmlkIiwgIidpbnB1dElk
NyciKTsKKworZGVidWcoIlRlc3QgbGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2ggaXMg
bm90IGEgdmFsaWQgZWxlbWVudCBpZCIpOworZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBmb3I9J2Zv
bycgaWQ9J3Rlc3Q4Jz48aW5wdXQgaWQ9J2lucHV0SWQ4Jz48L2xhYmVsPiIpOworc2hvdWxkQmUo
ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0OCcpLmNvbnRyb2wiLCAibnVsbCIpOworCitk
ZWJ1ZygiVGVzdCBsYWJlbCB3aXRoICdmb3InIGF0dHJpYnV0ZSB3aGljaCBpcyBub3QgYSBmb3Jt
IGNvbnRyb2wiKTsKK2RvY3VtZW50LndyaXRlKCI8bGFiZWwgZm9yPSdkaXZJZCcgaWQ9J3Rlc3Q5
Jz48aW5wdXQgaWQ9J2lucHV0SWQ5Jz48L2xhYmVsPjxkaXYgaWQ9J2RpdklkJz48L2Rpdj4iKTsK
K3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDknKS5odG1sRm9yIiwgIidk
aXZJZCciKTsKK3Nob3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdDknKS5jb250
cm9sIiwgIm51bGwiKTsKKworZGVidWcoIlRlc3QgbGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUg
d2hpY2ggaXMgbm90IGEgbGFiZWxhYmxlIGZvcm0gY29udHJvbCAtIGZpZWxkc2V0Iik7Citkb2N1
bWVudC53cml0ZSgiPGxhYmVsIGZvcj0nZnNJZCcgaWQ9J3Rlc3QxMCc+PGlucHV0IGlkPSdpbnB1
dElkMTAnPjwvbGFiZWw+PGZpZWxkc2V0IGlkPSdmc0lkJz48L2ZpZWxkc2V0PiIpOworc2hvdWxk
QmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTAnKS5odG1sRm9yIiwgIidmc0lkJyIp
Oworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTAnKS5jb250cm9sIiwg
Im51bGwiKTsKKworZGVidWcoIlRlc3QgbGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2gg
aXMgbm90IGEgbGFiZWxhYmxlIGZvcm0gY29udHJvbCAtIGxlZ2VuZCIpOworZG9jdW1lbnQud3Jp
dGUoIjxsYWJlbCBmb3I9J2xlZ2VuZElkJyBpZD0ndGVzdDExJz48aW5wdXQgaWQ9J2lucHV0SWQx
MSc+PC9sYWJlbD48bGVnZW5kIGlkPSdsZWdlbmRJZCc+PC9sZWdlbmQ+Iik7CitzaG91bGRCZSgi
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxMScpLmh0bWxGb3IiLCAiJ2xlZ2VuZElkJyIp
Oworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTEnKS5jb250cm9sIiwg
Im51bGwiKTsKKworZGVidWcoIlRlc3QgbGFiZWwgd2l0aCAnZm9yJyBhdHRyaWJ1dGUgd2hpY2gg
aXMgbm90IGEgbGFiZWxhYmxlIGZvcm0gY29udHJvbCAtIG9wdGdyb3VwIik7Citkb2N1bWVudC53
cml0ZSgiPGxhYmVsIGZvcj0nb3B0Z3JvdXBJZCcgaWQ9J3Rlc3QxMic+PGlucHV0IGlkPSdpbnB1
dElkMTInPjwvbGFiZWw+PG9wdGdyb3VwIGlkPSdvcHRncm91cElkJz48L29wdGdyb3VwPiIpOwor
c2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTInKS5odG1sRm9yIiwgIidv
cHRncm91cElkJyIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTIn
KS5jb250cm9sIiwgIm51bGwiKTsKKworZGVidWcoIlRlc3QgbGFiZWwgd2l0aCAnZm9yJyBhdHRy
aWJ1dGUgd2hpY2ggaXMgbm90IGEgbGFiZWxhYmxlIGZvcm0gY29udHJvbCAtIG9wdGlvbiIpOwor
ZG9jdW1lbnQud3JpdGUoIjxsYWJlbCBmb3I9J29wdGlvbklkJyBpZD0ndGVzdDEzJz48aW5wdXQg
aWQ9J2lucHV0SWQxMyc+PC9sYWJlbD48b3B0aW9uIGlkPSdvcHRpb25JZCc+PC9vcHRpb24+Iik7
CitzaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QxMycpLmh0bWxGb3IiLCAi
J29wdGlvbklkJyIpOworc2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0MTMn
KS5jb250cm9sIiwgIm51bGwiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="39885"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>