<?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>59855</bug_id>
          
          <creation_ts>2011-04-29 18:03:28 -0700</creation_ts>
          <short_desc>DocumentMarker: Type specific details should be separately held by other object.</short_desc>
          <delta_ts>2011-08-04 20:26:13 -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>HTML Editing</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>56812</blocked>
    
    <blocked>58111</blocked>
    
    <blocked>59693</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>adele</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>enrica</cc>
    
    <cc>jiapu.mail</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>395673</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-04-29 18:03:28 -0700</bug_when>
    <thetext>DocumentMarker::description and DocumentMarker::activeMatch are never used at the same time.
Thus move to separate polymorphic object whose implementation is determined by DocumentMarker::type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405000</commentid>
    <comment_count>1</comment_count>
      <attachid>93753</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-17 04:05:37 -0700</bug_when>
    <thetext>Created attachment 93753
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405001</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-17 04:10:00 -0700</bug_when>
    <thetext>This is a part of effort for implementing Spellcheck API (Bug 59693)
I&apos;ll add a new marker type and a details class for the API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405099</commentid>
    <comment_count>3</comment_count>
      <attachid>93753</attachid>
    <who name="Jia Pu">jiapu.mail</who>
    <bug_when>2011-05-17 09:46:52 -0700</bug_when>
    <thetext>Comment on attachment 93753
Patch

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

&gt; Source/WebCore/dom/DocumentMarker.h:109
&gt; +    bool isDescriptionAllowed() const { return m_type == Grammar || m_type == Autocorrected; }

Morita, the autocorrection panel implementation on Mac relies heavily on description in marker of following types, Replacement, Autocorrected and DeletedAutocorrection. 

It seems what we need here is a way to allow different platforms to extend the marker types, in addition to a minimum set of base marker types. For instance, in order to implement the autocorrection panel, I have added 5 new marker types, which aren&apos;t really useful for other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405450</commentid>
    <comment_count>4</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-17 18:36:51 -0700</bug_when>
    <thetext>Hi Jia, thank you for taking a look!

&gt; Morita, the autocorrection panel implementation on Mac relies heavily on description in marker of following types, Replacement, Autocorrected and DeletedAutocorrection. 
&gt; 
Wow, so I should add these (at least), or...

&gt; It seems what we need here is a way to allow different platforms to extend the marker types, in addition to a minimum set of base marker types. For instance, in order to implement the autocorrection panel, I have added 5 new marker types, which aren&apos;t really useful for other platforms.

it might be better to move m_type to DocumentMarkerDetails as a type-tag. 
That means, we will have

  MarkerType DocumentMarkerDetails::type()
  bool DocumentMarkerDetails::hasDescription()
  ....

I&apos;ll try that way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407753</commentid>
    <comment_count>5</comment_count>
      <attachid>94364</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-22 22:00:37 -0700</bug_when>
    <thetext>Created attachment 94364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407755</commentid>
    <comment_count>6</comment_count>
      <attachid>94364</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-22 22:04:07 -0700</bug_when>
    <thetext>Comment on attachment 94364
Patch

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

&gt; Source/WebCore/dom/DocumentMarker.h:105
&gt; +    PassRefPtr&lt;DocumentMarkerDetails&gt; details() const { return m_details; }

I did not yet have a chance to review this patch, but this function should not be returning a PassRefPtr. It should return a raw pointer. Only a function that passes ownership should return a PassRefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407860</commentid>
    <comment_count>7</comment_count>
      <attachid>94396</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-23 03:49:32 -0700</bug_when>
    <thetext>Created attachment 94396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>407862</commentid>
    <comment_count>8</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-23 03:50:45 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/dom/DocumentMarker.h:105
&gt; &gt; +    PassRefPtr&lt;DocumentMarkerDetails&gt; details() const { return m_details; }
&gt; 
&gt; I did not yet have a chance to review this patch, but this function should not be returning a PassRefPtr. It should return a raw pointer. Only a function that passes ownership should return a PassRefPtr.

Hi Darin,
Thank you for the catch! I was confused but now fixed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444600</commentid>
    <comment_count>9</comment_count>
      <attachid>102499</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-08-01 02:26:08 -0700</bug_when>
    <thetext>Created attachment 102499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444742</commentid>
    <comment_count>10</comment_count>
      <attachid>102499</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-01 10:15:43 -0700</bug_when>
    <thetext>Comment on attachment 102499
Patch

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

I&apos;m not sure if this refactoring makes the code more obvious than it is now because of verbosity and indirection introduced in the class hierarchy.

&gt; Source/WebCore/dom/DocumentMarker.cpp:4
&gt; + * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
&gt; + *           (C) 1999 Antti Koivisto (koivisto@kde.org)
&gt; + *           (C) 2001 Dirk Mueller (mueller@kde.org)

Really? These people touched this file?

&gt; Source/WebCore/dom/DocumentMarker.cpp:8
&gt; + * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
&gt; + * Copyright (C) Research In Motion Limited 2010. All rights reserved.

And these companies?

&gt; Source/WebCore/dom/DocumentMarker.cpp:86
&gt; +                                       | DocumentMarker::Grammar
&gt; +                                       | DocumentMarker::Replacement
&gt; +                                       | DocumentMarker::Autocorrected
&gt; +                                       | DocumentMarker::DeletedAutocorrection);

Nit: deep indentation.

&gt; Source/WebCore/dom/DocumentMarker.h:151
&gt; +    virtual const String&amp; description() const;
&gt; +    virtual bool activeMatch() const;

It seems odd that the abstract class has interface for derived classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445723</commentid>
    <comment_count>11</comment_count>
      <attachid>102741</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-08-02 22:51:08 -0700</bug_when>
    <thetext>Created attachment 102741
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445725</commentid>
    <comment_count>12</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-08-02 22:59:17 -0700</bug_when>
    <thetext>Hi Ryosuke, thanks for taking a look!

&gt; I&apos;m not sure if this refactoring makes the code more obvious than it is now because of verbosity and indirection introduced in the class hierarchy.
Well, this is a preparation for add another type of metadata.
I&apos;m going to put suggested word list to the spellcheck marker but
don&apos;t want to waste extra space with it on non-spellchecking markers.
So I splited metadata out to type specific objects.

&gt; 
&gt; &gt; Source/WebCore/dom/DocumentMarker.cpp:4
&gt; &gt; + * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
&gt; &gt; + *           (C) 1999 Antti Koivisto (koivisto@kde.org)
&gt; &gt; + *           (C) 2001 Dirk Mueller (mueller@kde.org)
&gt; 
&gt; Really? These people touched this file?
Replaced with a correct one.

&gt; 
&gt; &gt; Source/WebCore/dom/DocumentMarker.cpp:86
&gt; &gt; +                                       | DocumentMarker::Grammar
&gt; &gt; +                                       | DocumentMarker::Replacement
&gt; &gt; +                                       | DocumentMarker::Autocorrected
&gt; &gt; +                                       | DocumentMarker::DeletedAutocorrection);
&gt; 
&gt; Nit: deep indentation.
Removed redundant constructor call.

&gt; 
&gt; &gt; Source/WebCore/dom/DocumentMarker.h:151
&gt; &gt; +    virtual const String&amp; description() const;
&gt; &gt; +    virtual bool activeMatch() const;
&gt; 
&gt; It seems odd that the abstract class has interface for derived classes.
Pushed down to the subclasses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446340</commentid>
    <comment_count>13</comment_count>
      <attachid>102741</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-03 23:01:17 -0700</bug_when>
    <thetext>Comment on attachment 102741
Patch

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

&gt; Source/WebCore/dom/DocumentMarker.cpp:38
&gt; +DocumentMarkerDetails::DocumentMarkerDetails()
&gt; +{
&gt; +}

We can make this constructor inline.

&gt; Source/WebCore/dom/DocumentMarker.cpp:75
&gt; +            | DocumentMarker::Grammar
&gt; +            | DocumentMarker::Replacement
&gt; +            | DocumentMarker::Autocorrected
&gt; +            | DocumentMarker::DeletedAutocorrection);

Nit: Still too deep.  Should be indented by 4 spaces.

&gt; Source/WebCore/dom/DocumentMarker.cpp:135
&gt; +    : m_type(type), m_startOffset(startOffset), m_endOffset(endOffset), m_details(DocumentMarkerDescription::createUnlessEmpty(description))

This is a really long line.  Split into two?  And I&apos;d prefer having a tertiary here and have a regular create in DocumentMarkerDescription.

&gt; Source/WebCore/dom/DocumentMarker.cpp:150
&gt; +DocumentMarker::DocumentMarker(MarkerType type, unsigned startOffset, unsigned endOffset, PassRefPtr&lt;DocumentMarkerDetails&gt; details)
&gt; +    : m_type(type), m_startOffset(startOffset), m_endOffset(endOffset), m_details(details)
&gt; +{
&gt; +    ASSERT(!m_details || m_details-&gt;isAllowedFor(m_type));
&gt; +}

Is this constructor used somewhere?  It appears that this is the only reason we need isAllowedFor and compatibleTypes because we know the exact type of details in all other cases.

&gt; Source/WebCore/dom/DocumentMarker.cpp:155
&gt; +    m_endOffset +=  delta;

Nit: two spaces after +=.

&gt; Source/WebCore/dom/DocumentMarker.h:141
&gt; +// A superclass of marker type specific metadata.
&gt; +//
&gt; +// Note that every details subclasses should know about description
&gt; +// and activeMatch as a least common denominator.

It seems like this comment repeats what the code says.  Please remove.

&gt; Source/WebCore/dom/DocumentMarker.h:146
&gt; +class DocumentMarkerDetails : public RefCounted&lt;DocumentMarkerDetails&gt;
&gt;  {
&gt; -}
&gt; +public:
&gt; +    DocumentMarkerDetails();
&gt; +    virtual ~DocumentMarkerDetails();

Do we need to expose this class in the header file at all?  If not, I&apos;d prefer it be moved into DocumentMarker.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446951</commentid>
    <comment_count>14</comment_count>
      <attachid>103015</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-08-04 18:20:37 -0700</bug_when>
    <thetext>Created attachment 103015
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446955</commentid>
    <comment_count>15</comment_count>
      <attachid>103019</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-08-04 18:29:36 -0700</bug_when>
    <thetext>Created attachment 103019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446956</commentid>
    <comment_count>16</comment_count>
      <attachid>103019</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-04 18:31:02 -0700</bug_when>
    <thetext>Comment on attachment 103019
Patch

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

What&apos;s up with all those idl changes?

&gt; Source/WebCore/ChangeLog:60
&gt; +2011-08-04  Mark Pilgrim  &lt;pilgrim@chromium.org&gt;
&gt; +
&gt; +        Remove LegacyDefaultOptionalArguments flag from DOM-related files except Document.idl
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=65715
&gt; +
&gt; +        Reviewed by Adam Barth.
&gt; +
&gt; +        No new tests, all existing tests pass.

??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446964</commentid>
    <comment_count>17</comment_count>
      <attachid>103020</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-08-04 18:49:56 -0700</bug_when>
    <thetext>Created attachment 103020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446965</commentid>
    <comment_count>18</comment_count>
      <attachid>102741</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-08-04 18:50:36 -0700</bug_when>
    <thetext>Comment on attachment 102741
Patch

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

Hi Ryosuke, thanks for another round! I updated the patch.

&gt;&gt; Source/WebCore/dom/DocumentMarker.cpp:38
&gt;&gt; +}
&gt; 
&gt; We can make this constructor inline.

Done.

&gt;&gt; Source/WebCore/dom/DocumentMarker.cpp:75
&gt;&gt; +            | DocumentMarker::DeletedAutocorrection);
&gt; 
&gt; Nit: Still too deep.  Should be indented by 4 spaces.

Done.

&gt;&gt; Source/WebCore/dom/DocumentMarker.cpp:135
&gt;&gt; +    : m_type(type), m_startOffset(startOffset), m_endOffset(endOffset), m_details(DocumentMarkerDescription::createUnlessEmpty(description))
&gt; 
&gt; This is a really long line.  Split into two?  And I&apos;d prefer having a tertiary here and have a regular create in DocumentMarkerDescription.

Done.

&gt;&gt; Source/WebCore/dom/DocumentMarker.cpp:150
&gt;&gt; +}
&gt; 
&gt; Is this constructor used somewhere?  It appears that this is the only reason we need isAllowedFor and compatibleTypes because we know the exact type of details in all other cases.

Good point. I removed this constructor.

&gt; Source/WebCore/dom/DocumentMarker.cpp:156
&gt; +}

Oops. removed.

&gt;&gt; Source/WebCore/dom/DocumentMarker.h:141
&gt;&gt; +// and activeMatch as a least common denominator.
&gt; 
&gt; It seems like this comment repeats what the code says.  Please remove.

Removed.

&gt;&gt; Source/WebCore/dom/DocumentMarker.h:146
&gt;&gt; +    virtual ~DocumentMarkerDetails();
&gt; 
&gt; Do we need to expose this class in the header file at all?  If not, I&apos;d prefer it be moved into DocumentMarker.cpp.

We need this definition because DocumentMarker is copiable (we copy it actually) and
the implicit copy constructor should know DocumentMarkerDetail is a subclass of RefCounted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446967</commentid>
    <comment_count>19</comment_count>
      <attachid>103020</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-08-04 18:59:12 -0700</bug_when>
    <thetext>Comment on attachment 103020
Patch

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

&gt; Source/WebCore/dom/DocumentMarker.cpp:59
&gt; +PassRefPtr&lt;DocumentMarkerDescription&gt; DocumentMarkerDescription::create(const String&amp; description)
&gt; +{
&gt; +    return adoptRef(new DocumentMarkerDescription(description));
&gt; +}

Should we make this inline?

&gt; Source/WebCore/dom/DocumentMarker.cpp:96
&gt; +    if (details &amp;&amp; details-&gt;isTextMatch())
&gt; +        return static_cast&lt;DocumentMarkerTextMatch*&gt;(details);
&gt; +    return 0;

I would have used tertiary for this.

&gt; Source/WebCore/dom/DocumentMarker.cpp:101
&gt; +    : m_type(Spelling), m_startOffset(0), m_endOffset(0)

Shouldn&apos;t they be on separate lines?

&gt; Source/WebCore/dom/DocumentMarker.cpp:106
&gt; +    : m_type(type), m_startOffset(startOffset), m_endOffset(endOffset)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446985</commentid>
    <comment_count>20</comment_count>
      <attachid>103020</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-04 20:26:08 -0700</bug_when>
    <thetext>Comment on attachment 103020
Patch

Clearing flags on attachment: 103020

Committed r92441: &lt;http://trac.webkit.org/changeset/92441&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446986</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-04 20:26:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93753</attachid>
            <date>2011-05-17 04:05:37 -0700</date>
            <delta_ts>2011-05-22 22:00:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59855-20110517200535.patch</filename>
            <type>text/plain</type>
            <size>19211</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY2NTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDlmMGFm
NGMyMTYwYzU1Y2Q3NDYyNmE5NDg0MjExODkzNDQ4MGFkNy4uYzUxNDhjMDhjMzRhNGQyNTExNzEy
ZDU2YWVkZDQ5ODViYmU0NTcxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTU0OSw2ICs1NDks
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwCiAgICAgZG9tL0RvY3VtZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwCisgICAgZG9tL0RvY3VtZW50TWFya2VyLmNwcAogICAgIGRvbS9Eb2N1bWVudEZyYWdt
ZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudFBhcnNlci5jcHAKICAgICBkb20vRG9jdW1lbnRPcmRl
cmVkTWFwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNhZDVkYzdmNGY4N2JhMGQ3YTM4NjQxNDJiNWY0N2Q4
NGZiOTRhNDkuLjMxMzUzY2QxZDdlNDkyMzlhY2EyMDI1NDY4YzYwMjNlZGE5MTVlYmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxMS0wNS0xNyAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEb2N1bWVudE1hcmtlcjogVHlwZSBzcGVjaWZpYyBkZXRhaWxzIHNob3VsZCBiZSBz
ZXBhcmF0ZWx5IGhlbGQgYnkgb3RoZXIgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk4NTUKKworICAgICAgICBJbnRyb2R1Y2VkIERvY3Vt
ZW50TWFya2VyRGV0YWlscyBhYnN0cmFjdCBjbGFzcyBhbmQgaXRzIHN1YmNsYXNzZXMKKyAgICAg
ICAgbmFtZWQgRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbiBhbmQgRG9jdW1lbnRNYXJrZXJBY3Rp
dmVNYXRjaCwKKyAgICAgICAgcmVwbGFjaW5nIERvY3VtZW50TWFya2VyOjptX2Rlc2NyaXB0aW9u
IGFuZAorICAgICAgICBEb2N1bWVudE1hcmtlcjo6bV9hY3RpdmVNYXRjaCB3aXRoIHRoZXNlIGRl
dGFpbHMgY2xhc3Nlcy4KKyAgICAgICAgCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gTm8gZnVuY3Rp
b25hbCBjaGFuZ2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0Rv
Y3VtZW50TWFya2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtl
ckRlc2NyaXB0aW9uOjpkZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1h
cmtlckRlc2NyaXB0aW9uOjpEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNyZWF0ZVVubGVzc0VtcHR5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQWN0aXZlTWF0Y2g6OkRvY3VtZW50TWFya2Vy
QWN0aXZlTWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJBY3RpdmVNYXRj
aDo6aW5zdGFuY2VJZk1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpE
b2N1bWVudE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6c2hpZnRP
ZmZzZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpzZXRBY3RpdmVNYXRj
aCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6ZGVzY3JpcHRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6OmFjdGl2ZU1hdGNoKToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnRNYXJrZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpj
bGVhckRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6OmlzRGVzY3Jp
cHRpb25BbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjppc0FjdGl2
ZU1hdGNoQWxsb3dlZCk6CisgICAgICAgICogZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OmNsZWFyRGVz
Y3JpcHRpb25Pbk1hcmtlcnNJbnRlcnNlY3RpbmdSYW5nZSk6CisgICAgICAgICogZG9tL0RPTUFs
bEluT25lLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4dEluTm9k
ZVByZXNlcnZpbmdNYXJrZXJzKToKKwogMjAxMS0wNS0xNiAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb3Igcjg2NjQ3
LCB3aGljaCBicm9rZSBTVVBQT1JUX0FVVE9DT1JSRUNUSU9OX1BBTkVMLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggY2U4NWRlZGYxYzFlYzQ5NDBmNjRiMjQwYzIzYTA4ZGUwNjNl
M2JhMy4uZDRmZjc0ODAwYTRmZWMyZjcyZTdkNjc2Zjk2NDk2MWZmYzc3ZTRhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMTA0LDYgKzExMDQsNyBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRNYXJrZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNGY3YzBl
MjVjZjNhYTZlNTY1N2E5OWY5YjhlYjlkNTY4ZjZiMGJhMy4uMDFmM2Q3MjRlNzFkYjc2NmFjNTM5
MzUwZjY4Y2VmMjRhNjlhYWNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjQ0Nyw2ICsyNDQ3LDcg
QEAKICAgICAgICAgICAgICdkb20vRG9jdW1lbnQuY3BwJywKICAgICAgICAgICAgICdkb20vRG9j
dW1lbnRGcmFnbWVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuY3BwJywKKyAgICAgICAgICAgICdkb20vRG9jdW1lbnRNYXJrZXIuY3BwJywKICAgICAg
ICAgICAgICdkb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0Rv
Y3VtZW50UGFyc2VyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RvY3VtZW50VHlwZS5jcHAnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnBybwppbmRleCA3ZmVjMDkzYmEyZWQ1M2VlY2M4Y2Q2M2E4ODlhODRlNGE1NzdhYjA1
Li44Nzc2YjBiYjdhMjE3Njg5ZTNlM2ExZTM4YWY2MWFlMjVjYmNmMGRjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
bwpAQCAtNDczLDYgKzQ3Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9Eb2N1bWVudC5jcHAg
XAogICAgIGRvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5jcHAgXAorICAgIGRvbS9Eb2N1bWVudE1hcmtlci5jcHAgXAogICAgIGRvbS9E
b2N1bWVudE9yZGVyZWRNYXAuY3BwIFwKICAgICBkb20vRG9jdW1lbnRQYXJzZXIuY3BwIFwKICAg
ICBkb20vRG9jdW1lbnRUeXBlLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCmluZGV4IDkwZmQxNzE2NDg5Y2M2NzM5M2U4ZGM2MjQwMWY1OGRiNTg3
YTgyYzEuLjBlZjI1Yjg1OGI5YzgzNzJjNWRmOTYwNmMzNGQ1ZTRlYmNmYTQ3MjEgMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00MzQ2Miw2ICs0
MzQ2Miw1OCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxkb21cRG9jdW1lbnRNYXJrZXIuY3BwIgorCQkJCT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
IgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJ
CQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJ
CQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgor
CQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkv
PgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wi
CisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPEZpbGVD
b25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlvbnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4K
KwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRG9jdW1lbnRPcmRlcmVkTWFwLmNw
cCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjExNmIyYzVmMTA5ZGQzYzM3
MTlmYTQ5M2Y1ODZiM2RmMzI0OTIxYS4uNWJlNDRlYTNmODAxZDNiNWU1MGNhODg0Y2Y2YmExODc0
M2RmN2ZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMzIxMiw2ICszMjEyLDcgQEAKIAkJQTc3OTc5MjkwRDZCOUU2NDAwMzg1
MUI5IC8qIEpTSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzc5NzkyNTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCAqLzsg
fTsKIAkJQTc3QjQxQTAxMkU2NzVBOTAwNTQzNDNEIC8qIFRleHRFdmVudElucHV0VHlwZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3QjQxOUYxMkU2
NzVBOTAwNTQzNDNEIC8qIFRleHRFdmVudElucHV0VHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3N0QwMDEyMTMzQjBBRUIwMEQ2NjU4QyAv
KiBUZXh0Q2hlY2tpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3N0QwMDExMTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBNzgxQzZBNzEzODI4
QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4MUM2QTYxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3Vt
ZW50TWFya2VyLmNwcCAqLzsgfTsKIAkJQTc4NDk0MUIwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBi
b2FyZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
Nzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLzsgfTsKIAkJQTc4RTUy
NkYxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhFNTI2RDEzNDZCRDE3MDBBRDlD
MzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmNwcCAqLzsgfTsKIAkJQTc4RTUyNzAxMzQ2QkQxNzAw
QUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4RTUyNkUxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hh
ZG93RWxlbWVudC5oICovOyB9OwpAQCAtOTczMSw2ICs5NzMyLDcgQEAKIAkJQTc3OTc5MjUwRDZC
OUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3N0I0
MTlGMTJFNjc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dEV2ZW50SW5wdXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE3N0QwMDExMTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dENoZWNraW5nLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3ODFDNkE2MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1
bWVudE1hcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1
bWVudE1hcmtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3ODQ5NDFBMEI1
RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENsaXBib2FyZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE3OEU1MjZEMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWV0ZXJTaGFkb3dFbGVtZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4RTUyNkUxMzQ2QkQxNzAwQUQ5QzMxIC8q
IE1ldGVyU2hhZG93RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZXRlclNoYWRvd0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MjI4
LDYgKzE5MjMwLDcgQEAKIAkJCQk1OUE4NUVBMTExOUQ2OEQ5MDBERUYxRUYgLyogRGV2aWNlT3Jp
ZW50YXRpb25FdmVudC5jcHAgKi8sCiAJCQkJNTlBODVFQTMxMTlENjhFQzAwREVGMUVGIC8qIERl
dmljZU9yaWVudGF0aW9uRXZlbnQuaCAqLywKIAkJCQk1OUE4NUVBQTExOUQ3QjZFMDBERUYxRUYg
LyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwgKi8sCisJCQkJQTc4MUM2QTYxMzgyOEI1RDAw
MTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCAqLywKIAkJCQlBODE4NUYzNDA5NzY1NzY1MDA1
ODI2RDkgLyogRG9jdW1lbnQuY3BwICovLAogCQkJCUE4MTg1RjM4MDk3NjU3NjUwMDU4MjZEOSAv
KiBEb2N1bWVudC5oICovLAogCQkJCTY1NDhFMjQ4MDlFMUUwNEQwMEFGODAyMCAvKiBEb2N1bWVu
dC5pZGwgKi8sCkBAIC0yMzM4Nyw2ICsyMzM5MCw3IEBACiAJCQkJQTgxODVGM0YwOTc2NTc2NjAw
NTgyNkQ5IC8qIERvY3VtZW50RnJhZ21lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFMjI3
RTAwQUY1ODlBRDAwRDQ4MzI0IC8qIERvY3VtZW50TG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFDMjY0OTdBMEQ3RTI0OEEwMEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBNzgxQzZBNzEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJr
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0UwNTdGQTUxMjIwNzMxMTAwQTQ3NkQ1IC8qIERv
Y3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDk0N0ZGRDEy
RjgwQ0QyMDBBMEY2MzEgLyogRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QzIyODBFMTFENEE1OTcwMEQ1QTdEMyAvKiBEb2N1bWVudFBhcnNlci5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCmluZGV4IGYyOTQ5YjE3NWI2NTYw
MzA2OTdmMzA4MmE5Y2Y1MjVjY2VlYWU3ZTcuLjM3YmRjMWNkOWJjMjc4Yzg2ZWNlYTY0M2NiNzEy
ODNlNjM5YjZkOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcApAQCAtNTgsNiArNTgs
NyBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIgogI2luY2x1ZGUgIkRv
Y3VtZW50LmNwcCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmNwcCIKKyNpbmNsdWRlICJE
b2N1bWVudE1hcmtlci5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNw
cCIKICNpbmNsdWRlICJEb2N1bWVudE9yZGVyZWRNYXAuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50
UGFyc2VyLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdlYmMzOTg4YjMyMzU2MTRjYzQzODRiYmJlNjc2ZDEwZDA1NmY2YWUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuY3BwCkBAIC0wLDAgKzEsMTE5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcp
CisgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcp
CisgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCisg
KiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAd2Via2l0Lm9yZykK
KyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgs
IDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cu
dG9yY2htb2JpbGUuY29tLykKKyAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExp
bWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJEb2N1bWVudE1hcmtlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24gOiBwdWJsaWMgRG9jdW1lbnRNYXJrZXJEZXRh
aWxzIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudE1hcmtlckRlc2Ny
aXB0aW9uPiBjcmVhdGVVbmxlc3NFbXB0eShjb25zdCBTdHJpbmcmKTsKKworICAgIGNvbnN0IFN0
cmluZyYgZGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rlc2NyaXB0aW9uOyB9CisgICAg
Citwcml2YXRlOgorICAgIERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24oY29uc3QgU3RyaW5nJiBk
ZXNjcmlwdGlvbikKKyAgICAgICAgOiBtX2Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKQorICAgIHsK
KyAgICB9CisKKyAgICBTdHJpbmcgbV9kZXNjcmlwdGlvbjsKK307CisKK1Bhc3NSZWZQdHI8RG9j
dW1lbnRNYXJrZXJEZXNjcmlwdGlvbj4gRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbjo6Y3JlYXRl
VW5sZXNzRW1wdHkoY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBpZiAoZGVzY3Jp
cHRpb24uaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pKTsKK30KKworCitjbGFz
cyBEb2N1bWVudE1hcmtlckFjdGl2ZU1hdGNoIDogcHVibGljIERvY3VtZW50TWFya2VyRGV0YWls
cyB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RG9jdW1lbnRNYXJrZXJBY3RpdmVN
YXRjaD4gaW5zdGFuY2VJZk1hdGNoKGJvb2wpOworCitwcml2YXRlOgorICAgIERvY3VtZW50TWFy
a2VyQWN0aXZlTWF0Y2goKQorICAgIHsKKyAgICB9Cit9OworCitQYXNzUmVmUHRyPERvY3VtZW50
TWFya2VyQWN0aXZlTWF0Y2g+IERvY3VtZW50TWFya2VyQWN0aXZlTWF0Y2g6Omluc3RhbmNlSWZN
YXRjaChib29sIG1hdGNoKQoreworICAgIC8vIFVzZXMgdGhlIG51bGwgcG9pbnRlciB0byByZXBy
ZXNlbnQgZmFsc2UgdmFsdWUuCisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8RG9jdW1l
bnRNYXJrZXJBY3RpdmVNYXRjaD4sIHRoZUluc3RhbmNlLCAoYWRvcHRSZWYobmV3IERvY3VtZW50
TWFya2VyQWN0aXZlTWF0Y2goKSkpKTsKKyAgICByZXR1cm4gbWF0Y2ggPyB0aGVJbnN0YW5jZSA6
IDA7Cit9CisKK0RvY3VtZW50TWFya2VyOjpEb2N1bWVudE1hcmtlcigpIAorICAgIDogbV90eXBl
KFNwZWxsaW5nKSwgbV9zdGFydE9mZnNldCgwKSwgbV9lbmRPZmZzZXQoMCkKK3sKK30KKworRG9j
dW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKE1hcmtlclR5cGUgdHlwZSwgdW5zaWduZWQgc3Rh
cnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCkKKyAgICA6IG1fdHlwZSh0eXBlKSwgbV9zdGFy
dE9mZnNldChzdGFydE9mZnNldCksIG1fZW5kT2Zmc2V0KGVuZE9mZnNldCkKK3sKK30KKworRG9j
dW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKE1hcmtlclR5cGUgdHlwZSwgdW5zaWduZWQgc3Rh
cnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikK
KyAgICA6IG1fdHlwZSh0eXBlKSwgbV9zdGFydE9mZnNldChzdGFydE9mZnNldCksIG1fZW5kT2Zm
c2V0KGVuZE9mZnNldCksIG1fZGV0YWlscyhEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uOjpjcmVh
dGVVbmxlc3NFbXB0eShkZXNjcmlwdGlvbikpCit7CisgICAgQVNTRVJUKGlzRGVzY3JpcHRpb25B
bGxvd2VkKCkpOworfQorCitEb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJrZXIodW5zaWduZWQg
c3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgYm9vbCBhY3RpdmVNYXRjaCkKKyAgICA6
IG1fdHlwZShEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKSwgbV9zdGFydE9mZnNldChzdGFydE9m
ZnNldCksIG1fZW5kT2Zmc2V0KGVuZE9mZnNldCksIG1fZGV0YWlscyhEb2N1bWVudE1hcmtlckFj
dGl2ZU1hdGNoOjppbnN0YW5jZUlmTWF0Y2goYWN0aXZlTWF0Y2gpKQoreworICAgIEFTU0VSVChp
c0FjdGl2ZU1hdGNoQWxsb3dlZCgpKTsKK30KKwordm9pZCBEb2N1bWVudE1hcmtlcjo6c2hpZnRP
ZmZzZXRzKGludCBkZWx0YSkKK3sKKyAgICBtX3N0YXJ0T2Zmc2V0ICs9IGRlbHRhOworICAgIG1f
ZW5kT2Zmc2V0ICs9ICBkZWx0YTsKK30KKwordm9pZCBEb2N1bWVudE1hcmtlcjo6c2V0QWN0aXZl
TWF0Y2goYm9vbCBhY3RpdmUpCit7CisgICAgQVNTRVJUKGlzQWN0aXZlTWF0Y2hBbGxvd2VkKCkp
OworICAgIG1fZGV0YWlscyA9IERvY3VtZW50TWFya2VyQWN0aXZlTWF0Y2g6Omluc3RhbmNlSWZN
YXRjaChhY3RpdmUpOworfQorCitjb25zdCBTdHJpbmcmIERvY3VtZW50TWFya2VyOjpkZXNjcmlw
dGlvbigpIGNvbnN0Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGVtcHR5RGVz
Y3JpcHRpb24sICgpKTsKKyAgICBpZiAoIWlzRGVzY3JpcHRpb25BbGxvd2VkKCkgfHwgIW1fZGV0
YWlscykKKyAgICAgICAgcmV0dXJuIGVtcHR5RGVzY3JpcHRpb247CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24qPihtX2RldGFpbHMuZ2V0KCkpLT5kZXNj
cmlwdGlvbigpOworfQorCitib29sIERvY3VtZW50TWFya2VyOjphY3RpdmVNYXRjaCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIChpc0FjdGl2ZU1hdGNoQWxsb3dlZCgpICYmIG1fZGV0YWlscyk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudE1hcmtlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmgK
aW5kZXggMDc3YWM2ZmI3Yjk3ZWU2OTE3ZWQwYWU1MTMzZTQ3MzNkZTE1MzkwMi4uYzRlMzNlMDlk
M2Y4ZmJiYzgxMWU2MjhiMDcxZWE1NGEzODQ3MTA5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50TWFya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
TWFya2VyLmgKQEAgLTI1LDEwICsyNSwxNSBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorLy8g
QSBzdXBlcmNsYXNzIG9mIG1hcmtlciB0eXBlIHNwZWNpZmljIG1ldGFkYXRhLgorY2xhc3MgRG9j
dW1lbnRNYXJrZXJEZXRhaWxzIDogcHVibGljIFJlZkNvdW50ZWQ8RG9jdW1lbnRNYXJrZXJEZXRh
aWxzPiB7IH07CisKIC8vIEEgcmFuZ2Ugb2YgYSBub2RlIHdpdGhpbiBhIGRvY3VtZW50IHRoYXQg
aXMgIm1hcmtlZCIsIHN1Y2ggYXMgdGhlIHJhbmdlIG9mIGEgbWlzc3BlbGxlZCB3b3JkLgogLy8g
SXQgb3B0aW9uYWxseSBpbmNsdWRlcyBhIGRlc2NyaXB0aW9uIHRoYXQgY291bGQgYmUgZGlzcGxh
eWVkIGluIHRoZSB1c2VyIGludGVyZmFjZS4KIC8vIEl0IGFsc28gb3B0aW9uYWxseSBpbmNsdWRl
cyBhIGZsYWcgc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBtYXRjaCBpcyBhY3RpdmUsIHdoaWNoIGlz
IGlnbm9yZWQKQEAgLTk0LDEyICs5OSwxNSBAQCBzdHJ1Y3QgRG9jdW1lbnRNYXJrZXIgewogICAg
IE1hcmtlclR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogICAgIHVuc2lnbmVk
IHN0YXJ0T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydE9mZnNldDsgfQogICAgIHVuc2ln
bmVkIGVuZE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5kT2Zmc2V0OyB9Ci0gICAgY29uc3Qg
U3RyaW5nJiBkZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KLSAg
ICBib29sIGhhc0Rlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gIW1fZGVzY3JpcHRpb24uaXNF
bXB0eSgpOyB9Ci0gICAgYm9vbCBhY3RpdmVNYXRjaCgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZl
TWF0Y2g7IH0KKworICAgIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24oKSBjb25zdDsKKyAgICBi
b29sIGFjdGl2ZU1hdGNoKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldEFjdGl2ZU1hdGNoKGJvb2wp
OwotICAgIHZvaWQgY2xlYXJEZXNjcmlwdGlvbigpIHsgbV9kZXNjcmlwdGlvbiA9IFN0cmluZygp
OyB9CisgICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscy5jbGVhcigpOyB9CisKKyAg
ICBib29sIGlzRGVzY3JpcHRpb25BbGxvd2VkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IEdy
YW1tYXIgfHwgbV90eXBlID09IEF1dG9jb3JyZWN0ZWQ7IH0KKyAgICBib29sIGlzQWN0aXZlTWF0
Y2hBbGxvd2VkKCkgY29uc3QgeyByZXR1cm4gbV90eXBlID09IFRleHRNYXRjaDsgfQogCiAgICAg
Ly8gT2Zmc2V0IG1vZGlmaWNhdGlvbnMgYXJlIGRvbmUgYnkgRG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyLgogICAgIC8vIE90aGVyIGNsYXNzZXMgc2hvdWxkIG5vdCBjYWxsIGZvbGxvd2luZyBzZXR0
ZXJzLgpAQCAtMTIxLDQzICsxMjksOSBAQCBwcml2YXRlOgogICAgIE1hcmtlclR5cGUgbV90eXBl
OwogICAgIHVuc2lnbmVkIG1fc3RhcnRPZmZzZXQ7CiAgICAgdW5zaWduZWQgbV9lbmRPZmZzZXQ7
Ci0gICAgU3RyaW5nIG1fZGVzY3JpcHRpb247Ci0gICAgYm9vbCBtX2FjdGl2ZU1hdGNoOworICAg
IFJlZlB0cjxEb2N1bWVudE1hcmtlckRldGFpbHM+IG1fZGV0YWlsczsKIH07CiAKLWlubGluZSBE
b2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJrZXIoKSAKLSAgICA6IG1fdHlwZShTcGVsbGluZyks
IG1fc3RhcnRPZmZzZXQoMCksIG1fZW5kT2Zmc2V0KDApLCBtX2FjdGl2ZU1hdGNoKGZhbHNlKQot
ewotfQotCi1pbmxpbmUgRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKE1hcmtlclR5cGUg
dHlwZSwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCkKLSAgICA6IG1f
dHlwZSh0eXBlKSwgbV9zdGFydE9mZnNldChzdGFydE9mZnNldCksIG1fZW5kT2Zmc2V0KGVuZE9m
ZnNldCksIG1fYWN0aXZlTWF0Y2goZmFsc2UpCi17Ci19Ci0KLWlubGluZSBEb2N1bWVudE1hcmtl
cjo6RG9jdW1lbnRNYXJrZXIoTWFya2VyVHlwZSB0eXBlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwg
dW5zaWduZWQgZW5kT2Zmc2V0LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQotICAgIDogbV90
eXBlKHR5cGUpLCBtX3N0YXJ0T2Zmc2V0KHN0YXJ0T2Zmc2V0KSwgbV9lbmRPZmZzZXQoZW5kT2Zm
c2V0KSwgbV9kZXNjcmlwdGlvbihkZXNjcmlwdGlvbiksIG1fYWN0aXZlTWF0Y2goZmFsc2UpCi17
Ci0gICAgQVNTRVJUKHR5cGUgPT0gRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIgfHwgRG9jdW1lbnRN
YXJrZXI6OkF1dG9jb3JyZWN0ZWQpOwotfQotCi1pbmxpbmUgRG9jdW1lbnRNYXJrZXI6OkRvY3Vt
ZW50TWFya2VyKHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGJvb2wg
YWN0aXZlTWF0Y2gpCi0gICAgOiBtX3R5cGUoRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCksIG1f
c3RhcnRPZmZzZXQoc3RhcnRPZmZzZXQpLCBtX2VuZE9mZnNldChlbmRPZmZzZXQpLCBtX2FjdGl2
ZU1hdGNoKGFjdGl2ZU1hdGNoKQotewotfQotCi1pbmxpbmUgdm9pZCBEb2N1bWVudE1hcmtlcjo6
c2hpZnRPZmZzZXRzKGludCBkZWx0YSkKLXsKLSAgICBtX3N0YXJ0T2Zmc2V0ICs9IGRlbHRhOwot
ICAgIG1fZW5kT2Zmc2V0ICs9ICBkZWx0YTsKLX0KLQotaW5saW5lIHZvaWQgRG9jdW1lbnRNYXJr
ZXI6OnNldEFjdGl2ZU1hdGNoKGJvb2wgYWN0aXZlKQotewotICAgIEFTU0VSVChtX3R5cGUgPT0g
RG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCk7Ci0gICAgbV9hY3RpdmVNYXRjaCA9IGFjdGl2ZTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRG9jdW1lbnRNYXJrZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcApp
bmRleCA0NTk4NTBiODlhNWJmNTlhMGU3NWQ3MzQ3ODI1YmI1ZTJiYTY0MzI3Li4wOTJlNjA2MDgx
ZGIwOThiMDY0NzdiYTQ5NWM1ZjI1M2ZkZjBkOTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcApAQCAtNjU0LDcgKzY1NCw3IEBAIHZvaWQg
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpjbGVhckRlc2NyaXB0aW9uT25NYXJrZXJzSW50ZXJz
ZWN0aW5nUmFuZ2UoUmFuZ2UqCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAg
ICB9CiAKLSAgICAgICAgICAgIG1hcmtlci5jbGVhckRlc2NyaXB0aW9uKCk7CisgICAgICAgICAg
ICBtYXJrZXIuY2xlYXJEZXRhaWxzKCk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDBhYjgzYTg1
MWE3YTMyMGU5N2IwNDAwYmRkMjZlZTYzNmJjZjhjZDUuLmZkNWEyNGVjYjRmZTkyMmJjODUxNTQ1
NDA2ZGFlOGFjZjVhYTM5OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCkBAIC0zNDksNyArMzQ5LDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0
Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRl
eHQ+IHAKICAgICByZXBsYWNlVGV4dEluTm9kZShub2RlLCBvZmZzZXQsIGNvdW50LCByZXBsYWNl
bWVudFRleHQpOwogICAgIFJlZlB0cjxSYW5nZT4gbmV3UmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKGRv
Y3VtZW50KCksIG5vZGUsIG9mZnNldCwgbm9kZSwgb2Zmc2V0ICsgcmVwbGFjZW1lbnRUZXh0Lmxl
bmd0aCgpKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1hcmtlcnMuc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgaWYgKG1hcmtlcnNbaV0uaGFzRGVzY3JpcHRpb24oKSkKKyAgICAgICAgaWYg
KG1hcmtlcnNbaV0uaXNEZXNjcmlwdGlvbkFsbG93ZWQoKSkKICAgICAgICAgICAgIG1hcmtlckNv
bnRyb2xsZXItPmFkZE1hcmtlcihuZXdSYW5nZS5nZXQoKSwgbWFya2Vyc1tpXS50eXBlKCksIG1h
cmtlcnNbaV0uZGVzY3JpcHRpb24oKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1hcmtl
ckNvbnRyb2xsZXItPmFkZE1hcmtlcihuZXdSYW5nZS5nZXQoKSwgbWFya2Vyc1tpXS50eXBlKCkp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94364</attachid>
            <date>2011-05-22 22:00:37 -0700</date>
            <delta_ts>2011-05-23 03:49:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59855-20110523140034.patch</filename>
            <type>text/plain</type>
            <size>22230</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwNDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTIxNTI1
MTU4NGQyOTdiNmQ5NTllYTA5YTFlYzBiNjhlZjRmNGIxZi4uMjM4MGE4YzAyNGJjMGI3MDk0M2E0
YmM2MjE3OTFlY2JkZjhkYjM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTU1MCw2ICs1NTAs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwCiAgICAgZG9tL0RvY3VtZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwCisgICAgZG9tL0RvY3VtZW50TWFya2VyLmNwcAogICAgIGRvbS9Eb2N1bWVudEZyYWdt
ZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudFBhcnNlci5jcHAKICAgICBkb20vRG9jdW1lbnRPcmRl
cmVkTWFwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEyOWYyMDRjZWVhYjBmYWY0ZTY5ZjM4Y2U5YjBiOTBh
NTJkYjFlMzMuLjg5ZDQ2MmQyZjFkNzQyMDQ2NmVmYjBlZDBlYmRiY2UzOTc4YjhiMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAxMS0wNS0yMiAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEb2N1bWVudE1hcmtlcjogVHlwZSBzcGVjaWZpYyBkZXRhaWxzIHNob3VsZCBiZSBz
ZXBhcmF0ZWx5IGhlbGQgYnkgb3RoZXIgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk4NTUKKworICAgICAgICAtIEludHJvZHVjZWQgRG9j
dW1lbnRNYXJrZXJEZXRhaWxzIGFic3RyYWN0IGNsYXNzIGFuZCB0d28gaXRzIHN1YmNsYXNzZXMK
KyAgICAgICAgICBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uIGFuZCBEb2N1bWVudE1hcmtlckFj
dGl2ZU1hdGNoLAorICAgICAgICAKKyAgICAgICAgLSBSZXBsYWNpbmcgRG9jdW1lbnRNYXJrZXI6
Om1fZGVzY3JpcHRpb24gYW5kCisgICAgICAgICAgRG9jdW1lbnRNYXJrZXI6Om1fYWN0aXZlTWF0
Y2ggd2l0aCB0aGVzZSBuZXcgZGV0YWlscyBjbGFzc2VzLgorICAgICAgICAKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRN
YXJrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmVtcHR5RGVzY3JpcHRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjpEb2N1bWVudE1hcmtlckRl
dGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjp+RG9jdW1l
bnRNYXJrZXJEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGV0YWls
czo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxz
OjphY3RpdmVNYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckRlc2NyaXB0
aW9uOjpkZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckRlc2Ny
aXB0aW9uOjpEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNyZWF0ZVVubGVzc0VtcHR5KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNvbXBhdGlibGVUeXBlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlclRleHRNYXRjaDo6YWN0aXZlTWF0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6OkRvY3VtZW50TWFya2VyVGV4
dE1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyVGV4dE1hdGNoOjppbnN0
YW5jZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlclRleHRNYXRjaDo6Y29t
cGF0aWJsZVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpEb2N1bWVu
dE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6c2hpZnRPZmZzZXRz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpzZXRBY3RpdmVNYXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6ZGVzY3JpcHRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6OmFjdGl2ZU1hdGNoKToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnRNYXJrZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpkZXRhaWxz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpjbGVhckRldGFpbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjppc0FsbG93ZWRGb3IpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpjbGVhckRlc2NyaXB0aW9uT25NYXJrZXJzSW50
ZXJzZWN0aW5nUmFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0
SW5Ob2RlUHJlc2VydmluZ01hcmtlcnMpOgorCiAyMDExLTA1LTIyICBBbmRyZXcgV2Fzb24gIDxy
ZWN0YWxvZ2ljQHJlY3RhbG9naWMuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWlu
IFBvdWxhaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwOWRmZmUyNDQwMmI1
MjQ5NWIzNzhkZDg3MWViNzhjZDhhZDUyZWQ3Li4zNjJlNjczMDU2YmNiZTZlYjUwZDJkNzI0YTU1
Yzk1YTRmNjgyYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTExMDUsNiAr
MTEwNSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggXAorCVNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudE1hcmtlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRPcmRlcmVk
TWFwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5oIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCBhZTA1ZWNkMjA4MDY4M2ZkMDc4MDU5NmQxZmEwN2IxODY0NTEzMDRm
Li45MjUzYTM5NzliNThhYmM4MmQ5YWE4YjU4ZTA2NzFmZjlkOWQwZTRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC0yNDUwLDYgKzI0NTAsNyBAQAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudC5jcHAn
LAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCcsCiAgICAgICAgICAgICAn
ZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Eb2N1
bWVudE1hcmtlci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3Bw
JywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnRQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdk
b20vRG9jdW1lbnRUeXBlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDJjNTI2MThlYjQyYjA4YTQ5
ZDc4ODk5MjU1YjM4M2NmNTVjNzc1OTkuLjNjNjFlNDI1Y2UwOGQ4ZGI0MzkzMTQ3ZGE3YmFmOWIx
NzE4NzI0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00NzYsNiArNDc2LDcgQEAgU09VUkNFUyArPSBc
CiAgICAgZG9tL0RvY3VtZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIFwK
ICAgICBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBcCisgICAgZG9tL0RvY3VtZW50
TWFya2VyLmNwcCBcCiAgICAgZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5jcHAgXAogICAgIGRvbS9E
b2N1bWVudFBhcnNlci5jcHAgXAogICAgIGRvbS9Eb2N1bWVudFR5cGUuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggODdjMzg2Mjc1MTA0
MGNhOTE5NTEwNzY5ZDA0Njc0ZTJmZTY4MWY0OC4uMDY3YzZhOWFmNDgyOTkzNzdhOGZiOTBiOTcw
NjBjMGVmYTgyNzc3NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKQEAgLTQzNDcwLDYgKzQzNDcwLDU4IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEb2N1bWVudE1hcmtlci5jcHAiCisJCQkJ
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxs
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9u
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRv
bVxEb2N1bWVudE9yZGVyZWRNYXAuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA0Mjc4ZjNiOGY2NmJlZjkyMjk1Y2FkNDhmZWE3ZjJjMDhmMTc0NWIxLi44YjUzYjczYjIw
ZjJlN2Q1ZjZlMjk4ZjkzYTk4MjkyYzE1MDJiODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjE1LDYgKzMyMTUsNyBAQAog
CQlBNzc5NzkyOTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFC
OSAvKiBKU0ltYWdlRGF0YS5oICovOyB9OwogCQlBNzdCNDFBMDEyRTY3NUE5MDA1NDM0M0QgLyog
VGV4dEV2ZW50SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzdCNDE5RjEyRTY3NUE5MDA1NDM0M0QgLyogVGV4dEV2ZW50SW5wdXRUeXBl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc3
RDAwMTIxMzNCMEFFQjAwRDY2NThDIC8qIFRleHRDaGVja2luZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3RDAwMTExMzNCMEFFQjAwRDY2NThDIC8q
IFRleHRDaGVja2luZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUE3ODFDNkE3MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzgxQzZBNjEz
ODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwICovOyB9OwogCQlBNzg0OTQxQjBC
NUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9h
cmQuY3BwICovOyB9OwogCQlBNzhFNTI2RjEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3OEU1MjZEMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuY3BwICovOyB9
OwogCQlBNzhFNTI3MDEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhFNTI2RTEzNDZC
RDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggKi87IH07CkBAIC05NzM4LDYgKzk3
MzksNyBAQAogCQlBNzc5NzkyNTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbWFnZURhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTc3QjQxOUYxMkU2NzVBOTAwNTQzNDNEIC8qIFRleHRFdmVudElu
cHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RXZlbnRJbnB1
dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3RDAwMTExMzNCMEFFQjAw
RDY2NThDIC8qIFRleHRDaGVja2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXh0Q2hlY2tpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc4MUM2QTYx
MzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TWFya2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xpcGJvYXJkLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4RTUyNkQxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVy
U2hhZG93RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
ZXRlclNoYWRvd0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzhF
NTI2RTEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1ldGVyU2hhZG93RWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTkyMzYsNiArMTkyMzgsNyBAQAogCQkJCTU5QTg1RUExMTE5RDY4
RDkwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk1OUE4NUVB
MzExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5oICovLAogCQkJCTU5
QTg1RUFBMTE5RDdCNkUwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCAqLywK
KwkJCQlBNzgxQzZBNjEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwICovLAog
CQkJCUE4MTg1RjM0MDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudC5jcHAgKi8sCiAJCQkJQTgx
ODVGMzgwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3VtZW50LmggKi8sCiAJCQkJNjU0OEUyNDgwOUUx
RTA0RDAwQUY4MDIwIC8qIERvY3VtZW50LmlkbCAqLywKQEAgLTIzNDAxLDYgKzIzNDA0LDcgQEAK
IAkJCQlBODE4NUYzRjA5NzY1NzY2MDA1ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5M0UyMjdFMDBBRjU4OUFEMDBENDgzMjQgLyogRG9jdW1lbnRMb2Fk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMyNjQ5N0EwRDdFMjQ4QTAwQkQxMEYyIC8qIERv
Y3VtZW50TG9hZGVyTWFjLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3ODFDNkE3MTM4MjhCNUQw
MDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRTA1N0ZB
NTEyMjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTE0OTQ3RkZEMTJGODBDRDIwMEEwRjYzMSAvKiBEb2N1bWVudE9yZGVyZWRN
YXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDMjI4MEUxMUQ0QTU5NzAwRDVBN0QzIC8qIERv
Y3VtZW50UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5j
cHAKaW5kZXggZGYxMDEzOGY2NDE1M2FlMGE0YTIzMGQxNGQzYTc4YTQ2YzRkYWMwZS4uY2U0MDQ5
YWM2MTVmOWQ1OWQ5NDM3OGYxNDU1NTNiMTBjYjcxYjM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxs
SW5PbmUuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25F
dmVudC5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnQuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50RnJh
Z21lbnQuY3BwIgorI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmNwcCIKICNpbmNsdWRlICJEb2N1
bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50T3JkZXJlZE1hcC5j
cHAiCiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dE1hcmtlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQ2MDc5ZDdjMDA4MmJiM2Y4YmYyNTY4NmUxZTA3Njhl
ZjYyYWE0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1h
cmtlci5jcHAKQEAgLTAsMCArMSwxNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxs
ZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1
cnlha292IChhcEB3ZWJraXQub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGNvbnN0IFN0cmluZyYgZW1wdHlEZXNjcmlwdGlv
bigpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGVtcHR5U3RyaW5nLCAoKSk7
CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nOworfQorCitEb2N1bWVudE1hcmtlckRldGFpbHM6OkRv
Y3VtZW50TWFya2VyRGV0YWlscygpCit7Cit9CisKK0RvY3VtZW50TWFya2VyRGV0YWlsczo6fkRv
Y3VtZW50TWFya2VyRGV0YWlscygpCit7Cit9CisKK2NvbnN0IFN0cmluZyYgRG9jdW1lbnRNYXJr
ZXJEZXRhaWxzOjpkZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGVtcHR5RGVzY3Jp
cHRpb24oKTsKK30KKworYm9vbCBEb2N1bWVudE1hcmtlckRldGFpbHM6OmFjdGl2ZU1hdGNoKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKworY2xhc3MgRG9jdW1lbnRNYXJrZXJE
ZXNjcmlwdGlvbiA6IHB1YmxpYyBEb2N1bWVudE1hcmtlckRldGFpbHMgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24+IGNyZWF0ZVVubGVz
c0VtcHR5KGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQorICAgIHZpcnR1YWwgRG9j
dW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzIGNvbXBhdGlibGVUeXBlcygpIGNvbnN0OworCitwcml2
YXRlOgorICAgIERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24oY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbikKKyAgICAgICAgOiBtX2Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKQorICAgIHsKKyAgICB9
CisKKyAgICBTdHJpbmcgbV9kZXNjcmlwdGlvbjsKK307CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRN
YXJrZXJEZXNjcmlwdGlvbj4gRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbjo6Y3JlYXRlVW5sZXNz
RW1wdHkoY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBpZiAoZGVzY3JpcHRpb24u
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IERv
Y3VtZW50TWFya2VyRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pKTsKK30KKworRG9jdW1lbnRNYXJr
ZXI6Ok1hcmtlclR5cGVzIERvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNvbXBhdGlibGVUeXBl
cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyhEb2N1
bWVudE1hcmtlcjo6U3BlbGxpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgRG9jdW1lbnRNYXJrZXI6OlJlcGxhY2VtZW50CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8IERvY3VtZW50TWFya2VyOjpBdXRvY29ycmVjdGVk
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERvY3VtZW50TWFya2Vy
OjpEZWxldGVkQXV0b2NvcnJlY3Rpb24pOworfQorCisKK2NsYXNzIERvY3VtZW50TWFya2VyVGV4
dE1hdGNoIDogcHVibGljIERvY3VtZW50TWFya2VyRGV0YWlscyB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g+IGluc3RhbmNlRm9yKGJvb2wp
OworCisgICAgdmlydHVhbCBib29sIGFjdGl2ZU1hdGNoKCkgY29uc3QgeyByZXR1cm4gbV9tYXRj
aDsgfQorICAgIHZpcnR1YWwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzIGNvbXBhdGlibGVU
eXBlcygpIGNvbnN0OworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IERvY3VtZW50TWFya2VyVGV4
dE1hdGNoKGJvb2wgbWF0Y2gpCisgICAgICAgIDogbV9tYXRjaChtYXRjaCkKKyAgICB7CisgICAg
fQorCisgICAgYm9vbCBtX21hdGNoOworfTsKKworUGFzc1JlZlB0cjxEb2N1bWVudE1hcmtlclRl
eHRNYXRjaD4gRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6Omluc3RhbmNlRm9yKGJvb2wgbWF0Y2gp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8RG9jdW1lbnRNYXJrZXJUZXh0TWF0
Y2g+LCB0cnVlSW5zdGFuY2UsIChhZG9wdFJlZihuZXcgRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2go
dHJ1ZSkpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8RG9jdW1lbnRNYXJrZXJU
ZXh0TWF0Y2g+LCBmYWxzZUluc3RhbmNlLCAoYWRvcHRSZWYobmV3IERvY3VtZW50TWFya2VyVGV4
dE1hdGNoKGZhbHNlKSkpKTsKKyAgICByZXR1cm4gbWF0Y2ggPyB0cnVlSW5zdGFuY2UgOiBmYWxz
ZUluc3RhbmNlOworfQorCitEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZXMgRG9jdW1lbnRNYXJr
ZXJUZXh0TWF0Y2g6OmNvbXBhdGlibGVUeXBlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIERvY3Vt
ZW50TWFya2VyOjpNYXJrZXJUeXBlcyhEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKTsKK30KKwor
CitEb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJrZXIoKSAKKyAgICA6IG1fdHlwZShTcGVsbGlu
ZyksIG1fc3RhcnRPZmZzZXQoMCksIG1fZW5kT2Zmc2V0KDApCit7Cit9CisKK0RvY3VtZW50TWFy
a2VyOjpEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlIHR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0
LCB1bnNpZ25lZCBlbmRPZmZzZXQpCisgICAgOiBtX3R5cGUodHlwZSksIG1fc3RhcnRPZmZzZXQo
c3RhcnRPZmZzZXQpLCBtX2VuZE9mZnNldChlbmRPZmZzZXQpCit7Cit9CisKK0RvY3VtZW50TWFy
a2VyOjpEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlIHR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0
LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pCisgICAgOiBt
X3R5cGUodHlwZSksIG1fc3RhcnRPZmZzZXQoc3RhcnRPZmZzZXQpLCBtX2VuZE9mZnNldChlbmRP
ZmZzZXQpLCBtX2RldGFpbHMoRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbjo6Y3JlYXRlVW5sZXNz
RW1wdHkoZGVzY3JpcHRpb24pKQoreworICAgIEFTU0VSVCghbV9kZXRhaWxzIHx8IG1fZGV0YWls
cy0+aXNBbGxvd2VkRm9yKG1fdHlwZSkpOworfQorCitEb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRN
YXJrZXIodW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgYm9vbCBhY3Rp
dmVNYXRjaCkKKyAgICA6IG1fdHlwZShEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKSwgbV9zdGFy
dE9mZnNldChzdGFydE9mZnNldCksIG1fZW5kT2Zmc2V0KGVuZE9mZnNldCksIG1fZGV0YWlscyhE
b2N1bWVudE1hcmtlclRleHRNYXRjaDo6aW5zdGFuY2VGb3IoYWN0aXZlTWF0Y2gpKQoreworICAg
IEFTU0VSVChtX2RldGFpbHMtPmlzQWxsb3dlZEZvcihtX3R5cGUpKTsKK30KKworRG9jdW1lbnRN
YXJrZXI6OkRvY3VtZW50TWFya2VyKE1hcmtlclR5cGUgdHlwZSwgdW5zaWduZWQgc3RhcnRPZmZz
ZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgUGFzc1JlZlB0cjxEb2N1bWVudE1hcmtlckRldGFpbHM+
IGRldGFpbHMpCisgICAgOiBtX3R5cGUodHlwZSksIG1fc3RhcnRPZmZzZXQoc3RhcnRPZmZzZXQp
LCBtX2VuZE9mZnNldChlbmRPZmZzZXQpLCBtX2RldGFpbHMoZGV0YWlscykKK3sKKyAgICBBU1NF
UlQoIW1fZGV0YWlscyB8fCBtX2RldGFpbHMtPmlzQWxsb3dlZEZvcihtX3R5cGUpKTsKK30KKwor
dm9pZCBEb2N1bWVudE1hcmtlcjo6c2hpZnRPZmZzZXRzKGludCBkZWx0YSkKK3sKKyAgICBtX3N0
YXJ0T2Zmc2V0ICs9IGRlbHRhOworICAgIG1fZW5kT2Zmc2V0ICs9ICBkZWx0YTsKK30KKwordm9p
ZCBEb2N1bWVudE1hcmtlcjo6c2V0QWN0aXZlTWF0Y2goYm9vbCBhY3RpdmUpCit7CisgICAgbV9k
ZXRhaWxzID0gRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6Omluc3RhbmNlRm9yKGFjdGl2ZSk7Cisg
ICAgQVNTRVJUKG1fZGV0YWlscy0+aXNBbGxvd2VkRm9yKG1fdHlwZSkpOworfQorCitjb25zdCBT
dHJpbmcmIERvY3VtZW50TWFya2VyOjpkZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fZGV0YWlscyA/IG1fZGV0YWlscy0+ZGVzY3JpcHRpb24oKSA6IGVtcHR5RGVzY3JpcHRpb24o
KTsKK30KKworYm9vbCBEb2N1bWVudE1hcmtlcjo6YWN0aXZlTWF0Y2goKSBjb25zdAoreworICAg
IHJldHVybiBtX2RldGFpbHMgJiYgbV9kZXRhaWxzLT5hY3RpdmVNYXRjaCgpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRNYXJrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCmluZGV4IGQ2
NzBlMmMwYjAzMjAxM2M2MzNhYmY0ZWJjOTg4NDVkNTE0Yjc5NmYuLjQxYWRhNGNiNWRhOTkxN2E1
YjQwMDE5MGZmNWNhNTdkOTYxZTZkY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudE1hcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5o
CkBAIC0yNSwxMCArMjUsMTQgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3Vt
ZW50TWFya2VyRGV0YWlsczsKKwogLy8gQSByYW5nZSBvZiBhIG5vZGUgd2l0aGluIGEgZG9jdW1l
bnQgdGhhdCBpcyAibWFya2VkIiwgc3VjaCBhcyB0aGUgcmFuZ2Ugb2YgYSBtaXNzcGVsbGVkIHdv
cmQuCiAvLyBJdCBvcHRpb25hbGx5IGluY2x1ZGVzIGEgZGVzY3JpcHRpb24gdGhhdCBjb3VsZCBi
ZSBkaXNwbGF5ZWQgaW4gdGhlIHVzZXIgaW50ZXJmYWNlLgogLy8gSXQgYWxzbyBvcHRpb25hbGx5
IGluY2x1ZGVzIGEgZmxhZyBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhlIG1hdGNoIGlzIGFjdGl2ZSwg
d2hpY2ggaXMgaWdub3JlZApAQCAtOTAsMTYgKzk0LDE4IEBAIHB1YmxpYzoKICAgICBEb2N1bWVu
dE1hcmtlcihNYXJrZXJUeXBlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zm
c2V0KTsKICAgICBEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlLCB1bnNpZ25lZCBzdGFydE9mZnNl
dCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKICAgICBE
b2N1bWVudE1hcmtlcih1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBi
b29sIGFjdGl2ZU1hdGNoKTsKKyAgICBEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlLCB1bnNpZ25l
ZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBQYXNzUmVmUHRyPERvY3VtZW50TWFy
a2VyRGV0YWlscz4pOwogCiAgICAgTWFya2VyVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlOyB9CiAgICAgdW5zaWduZWQgc3RhcnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0
T2Zmc2V0OyB9CiAgICAgdW5zaWduZWQgZW5kT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9lbmRP
ZmZzZXQ7IH0KLSAgICBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9kZXNjcmlwdGlvbjsgfQotICAgIGJvb2wgaGFzRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVy
biAhbV9kZXNjcmlwdGlvbi5pc0VtcHR5KCk7IH0KLSAgICBib29sIGFjdGl2ZU1hdGNoKCkgY29u
c3QgeyByZXR1cm4gbV9hY3RpdmVNYXRjaDsgfQorCisgICAgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbigpIGNvbnN0OworICAgIGJvb2wgYWN0aXZlTWF0Y2goKSBjb25zdDsKKyAgICBQYXNzUmVm
UHRyPERvY3VtZW50TWFya2VyRGV0YWlscz4gZGV0YWlscygpIGNvbnN0IHsgcmV0dXJuIG1fZGV0
YWlsczsgfQogCiAgICAgdm9pZCBzZXRBY3RpdmVNYXRjaChib29sKTsKLSAgICB2b2lkIGNsZWFy
RGVzY3JpcHRpb24oKSB7IG1fZGVzY3JpcHRpb24gPSBTdHJpbmcoKTsgfQorICAgIHZvaWQgY2xl
YXJEZXRhaWxzKCkgeyBtX2RldGFpbHMuY2xlYXIoKTsgfQogCiAgICAgLy8gT2Zmc2V0IG1vZGlm
aWNhdGlvbnMgYXJlIGRvbmUgYnkgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLgogICAgIC8vIE90
aGVyIGNsYXNzZXMgc2hvdWxkIG5vdCBjYWxsIGZvbGxvd2luZyBzZXR0ZXJzLgpAQCAtMTIxLDQy
ICsxMjcsMjUgQEAgcHJpdmF0ZToKICAgICBNYXJrZXJUeXBlIG1fdHlwZTsKICAgICB1bnNpZ25l
ZCBtX3N0YXJ0T2Zmc2V0OwogICAgIHVuc2lnbmVkIG1fZW5kT2Zmc2V0OwotICAgIFN0cmluZyBt
X2Rlc2NyaXB0aW9uOwotICAgIGJvb2wgbV9hY3RpdmVNYXRjaDsKKyAgICBSZWZQdHI8RG9jdW1l
bnRNYXJrZXJEZXRhaWxzPiBtX2RldGFpbHM7CiB9OwogCi1pbmxpbmUgRG9jdW1lbnRNYXJrZXI6
OkRvY3VtZW50TWFya2VyKCkKLSAgICA6IG1fdHlwZShTcGVsbGluZyksIG1fc3RhcnRPZmZzZXQo
MCksIG1fZW5kT2Zmc2V0KDApLCBtX2FjdGl2ZU1hdGNoKGZhbHNlKQotewotfQotCi1pbmxpbmUg
RG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKE1hcmtlclR5cGUgdHlwZSwgdW5zaWduZWQg
c3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCkKLSAgICA6IG1fdHlwZSh0eXBlKSwgbV9z
dGFydE9mZnNldChzdGFydE9mZnNldCksIG1fZW5kT2Zmc2V0KGVuZE9mZnNldCksIG1fYWN0aXZl
TWF0Y2goZmFsc2UpCi17Ci19Ci0KLWlubGluZSBEb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJr
ZXIoTWFya2VyVHlwZSB0eXBlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zm
c2V0LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQotICAgIDogbV90eXBlKHR5cGUpLCBtX3N0
YXJ0T2Zmc2V0KHN0YXJ0T2Zmc2V0KSwgbV9lbmRPZmZzZXQoZW5kT2Zmc2V0KSwgbV9kZXNjcmlw
dGlvbihkZXNjcmlwdGlvbiksIG1fYWN0aXZlTWF0Y2goZmFsc2UpCisvLyBBIHN1cGVyY2xhc3Mg
b2YgbWFya2VyIHR5cGUgc3BlY2lmaWMgbWV0YWRhdGEuCisvLworLy8gTm90ZSB0aGF0IGV2ZXJ5
IGRldGFpbHMgc3ViY2xhc3NlcyBzaG91bGQga25vdyBhYm91dCBkZXNjcmlwdGlvbgorLy8gYW5k
IGFjdGl2ZU1hdGNoIGFzIGEgbGVhc3QgY29tbW9uIGRlbm9taW5hdG9yLgorY2xhc3MgRG9jdW1l
bnRNYXJrZXJEZXRhaWxzIDogcHVibGljIFJlZkNvdW50ZWQ8RG9jdW1lbnRNYXJrZXJEZXRhaWxz
PgogewotICAgIEFTU0VSVCh0eXBlID09IERvY3VtZW50TWFya2VyOjpHcmFtbWFyIHx8IERvY3Vt
ZW50TWFya2VyOjpBdXRvY29ycmVjdGVkKTsKLX0KLQotaW5saW5lIERvY3VtZW50TWFya2VyOjpE
b2N1bWVudE1hcmtlcih1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBi
b29sIGFjdGl2ZU1hdGNoKQotICAgIDogbV90eXBlKERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2gp
LCBtX3N0YXJ0T2Zmc2V0KHN0YXJ0T2Zmc2V0KSwgbV9lbmRPZmZzZXQoZW5kT2Zmc2V0KSwgbV9h
Y3RpdmVNYXRjaChhY3RpdmVNYXRjaCkKLXsKLX0KK3B1YmxpYzoKKyAgICBEb2N1bWVudE1hcmtl
ckRldGFpbHMoKTsKKyAgICB2aXJ0dWFsIH5Eb2N1bWVudE1hcmtlckRldGFpbHMoKTsKIAotaW5s
aW5lIHZvaWQgRG9jdW1lbnRNYXJrZXI6OnNoaWZ0T2Zmc2V0cyhpbnQgZGVsdGEpCi17Ci0gICAg
bV9zdGFydE9mZnNldCArPSBkZWx0YTsKLSAgICBtX2VuZE9mZnNldCArPSAgZGVsdGE7Ci19Cisg
ICAgYm9vbCBpc0FsbG93ZWRGb3IoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgdHlwZSkgY29u
c3QgeyByZXR1cm4gY29tcGF0aWJsZVR5cGVzKCkuY29udGFpbnModHlwZSk7IH0KIAotaW5saW5l
IHZvaWQgRG9jdW1lbnRNYXJrZXI6OnNldEFjdGl2ZU1hdGNoKGJvb2wgYWN0aXZlKQotewotICAg
IEFTU0VSVChtX3R5cGUgPT0gRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCk7Ci0gICAgbV9hY3Rp
dmVNYXRjaCA9IGFjdGl2ZTsKLX0KKyAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRp
b24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgYWN0aXZlTWF0Y2goKSBjb25zdDsKKyAgICB2
aXJ0dWFsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyBjb21wYXRpYmxlVHlwZXMoKSBjb25z
dCA9IDA7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAKaW5kZXggNDU3NzAxMzY4NTkwYjMx
YjA2ZTI1ZWNhYTVhOWM4NWEzZmM3ZTk4My4uZjY0MTBlZTBmZDg4MmI2MmI0OWQ1ZGJjYmRlYjIx
ZDI5OWFkMTVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5jcHAKQEAgLTY1NCw3ICs2NTQsNyBAQCB2b2lkIERvY3VtZW50TWFya2VyQ29udHJv
bGxlcjo6Y2xlYXJEZXNjcmlwdGlvbk9uTWFya2Vyc0ludGVyc2VjdGluZ1JhbmdlKFJhbmdlKgog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBt
YXJrZXIuY2xlYXJEZXNjcmlwdGlvbigpOworICAgICAgICAgICAgbWFya2VyLmNsZWFyRGV0YWls
cygpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Nv
bXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCA0Y2M1NDQyMGM2NDY4Mjk1MDlkOWYwN2EzZTk1
MGNjMDEwMjQ5ZDkzLi5hYjExNjVkMzJkNmVjODRmMGI5ZmI2NzlkODU2OTUxZWI3NWY0ODAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApA
QCAtMzQ1LDEyICszNDUsOCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNlVGV4
dEluTm9kZVByZXNlcnZpbmdNYXJrZXJzKFBhc3NSZWZQdHI8VGV4dD4gcAogICAgIFZlY3RvcjxE
b2N1bWVudE1hcmtlcj4gbWFya2VycyA9IG1hcmtlckNvbnRyb2xsZXItPm1hcmtlcnNJblJhbmdl
KFJhbmdlOjpjcmVhdGUoZG9jdW1lbnQoKSwgbm9kZSwgb2Zmc2V0LCBub2RlLCBvZmZzZXQgKyBj
b3VudCkuZ2V0KCksIERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzKCkpOwogICAgIHJlcGxhY2VU
ZXh0SW5Ob2RlKG5vZGUsIG9mZnNldCwgY291bnQsIHJlcGxhY2VtZW50VGV4dCk7CiAgICAgUmVm
UHRyPFJhbmdlPiBuZXdSYW5nZSA9IFJhbmdlOjpjcmVhdGUoZG9jdW1lbnQoKSwgbm9kZSwgb2Zm
c2V0LCBub2RlLCBvZmZzZXQgKyByZXBsYWNlbWVudFRleHQubGVuZ3RoKCkpOwotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbWFya2Vycy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobWFy
a2Vyc1tpXS5oYXNEZXNjcmlwdGlvbigpKQotICAgICAgICAgICAgbWFya2VyQ29udHJvbGxlci0+
YWRkTWFya2VyKG5ld1JhbmdlLmdldCgpLCBtYXJrZXJzW2ldLnR5cGUoKSwgbWFya2Vyc1tpXS5k
ZXNjcmlwdGlvbigpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbWFya2VyQ29udHJvbGxl
ci0+YWRkTWFya2VyKG5ld1JhbmdlLmdldCgpLCBtYXJrZXJzW2ldLnR5cGUoKSk7Ci0gICAgfQor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWFya2Vycy5zaXplKCk7ICsraSkKKyAgICAgICAg
bWFya2VyQ29udHJvbGxlci0+YWRkTWFya2VyKG5ld1JhbmdlLmdldCgpLCBtYXJrZXJzW2ldLnR5
cGUoKSwgbWFya2Vyc1tpXS5kZXNjcmlwdGlvbigpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRl
RWRpdENvbW1hbmQ6OnBvc2l0aW9uT3V0c2lkZVRhYlNwYW4oY29uc3QgUG9zaXRpb24mIHBvcykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94396</attachid>
            <date>2011-05-23 03:49:32 -0700</date>
            <delta_ts>2011-08-01 02:26:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59855-20110523194930.patch</filename>
            <type>text/plain</type>
            <size>22290</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODcwNDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTIxNTI1
MTU4NGQyOTdiNmQ5NTllYTA5YTFlYzBiNjhlZjRmNGIxZi4uMjM4MGE4YzAyNGJjMGI3MDk0M2E0
YmM2MjE3OTFlY2JkZjhkYjM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTU1MCw2ICs1NTAs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwCiAgICAgZG9tL0RvY3VtZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwCisgICAgZG9tL0RvY3VtZW50TWFya2VyLmNwcAogICAgIGRvbS9Eb2N1bWVudEZyYWdt
ZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudFBhcnNlci5jcHAKICAgICBkb20vRG9jdW1lbnRPcmRl
cmVkTWFwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGEyOWYyMDRjZWVhYjBmYWY0ZTY5ZjM4Y2U5YjBiOTBh
NTJkYjFlMzMuLjg5ZDQ2MmQyZjFkNzQyMDQ2NmVmYjBlZDBlYmRiY2UzOTc4YjhiMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAxMS0wNS0yMiAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEb2N1bWVudE1hcmtlcjogVHlwZSBzcGVjaWZpYyBkZXRhaWxzIHNob3VsZCBiZSBz
ZXBhcmF0ZWx5IGhlbGQgYnkgb3RoZXIgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk4NTUKKworICAgICAgICAtIEludHJvZHVjZWQgRG9j
dW1lbnRNYXJrZXJEZXRhaWxzIGFic3RyYWN0IGNsYXNzIGFuZCB0d28gaXRzIHN1YmNsYXNzZXMK
KyAgICAgICAgICBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uIGFuZCBEb2N1bWVudE1hcmtlckFj
dGl2ZU1hdGNoLAorICAgICAgICAKKyAgICAgICAgLSBSZXBsYWNpbmcgRG9jdW1lbnRNYXJrZXI6
Om1fZGVzY3JpcHRpb24gYW5kCisgICAgICAgICAgRG9jdW1lbnRNYXJrZXI6Om1fYWN0aXZlTWF0
Y2ggd2l0aCB0aGVzZSBuZXcgZGV0YWlscyBjbGFzc2VzLgorICAgICAgICAKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRN
YXJrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmVtcHR5RGVzY3JpcHRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjpEb2N1bWVudE1hcmtlckRl
dGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjp+RG9jdW1l
bnRNYXJrZXJEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGV0YWls
czo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxz
OjphY3RpdmVNYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckRlc2NyaXB0
aW9uOjpkZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckRlc2Ny
aXB0aW9uOjpEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNyZWF0ZVVubGVzc0VtcHR5KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNvbXBhdGlibGVUeXBlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlclRleHRNYXRjaDo6YWN0aXZlTWF0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6OkRvY3VtZW50TWFya2VyVGV4
dE1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyVGV4dE1hdGNoOjppbnN0
YW5jZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlclRleHRNYXRjaDo6Y29t
cGF0aWJsZVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpEb2N1bWVu
dE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6c2hpZnRPZmZzZXRz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpzZXRBY3RpdmVNYXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6ZGVzY3JpcHRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6OmFjdGl2ZU1hdGNoKToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnRNYXJrZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpkZXRhaWxz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpjbGVhckRldGFpbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjppc0FsbG93ZWRGb3IpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpjbGVhckRlc2NyaXB0aW9uT25NYXJrZXJzSW50
ZXJzZWN0aW5nUmFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0
SW5Ob2RlUHJlc2VydmluZ01hcmtlcnMpOgorCiAyMDExLTA1LTIyICBBbmRyZXcgV2Fzb24gIDxy
ZWN0YWxvZ2ljQHJlY3RhbG9naWMuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWlu
IFBvdWxhaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwOWRmZmUyNDQwMmI1
MjQ5NWIzNzhkZDg3MWViNzhjZDhhZDUyZWQ3Li4zNjJlNjczMDU2YmNiZTZlYjUwZDJkNzI0YTU1
Yzk1YTRmNjgyYmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTExMDUsNiAr
MTEwNSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggXAorCVNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudE1hcmtlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRPcmRlcmVk
TWFwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5oIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCBhZTA1ZWNkMjA4MDY4M2ZkMDc4MDU5NmQxZmEwN2IxODY0NTEzMDRm
Li45MjUzYTM5NzliNThhYmM4MmQ5YWE4YjU4ZTA2NzFmZjlkOWQwZTRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC0yNDUwLDYgKzI0NTAsNyBAQAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudC5jcHAn
LAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCcsCiAgICAgICAgICAgICAn
ZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Eb2N1
bWVudE1hcmtlci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3Bw
JywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnRQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdk
b20vRG9jdW1lbnRUeXBlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDJjNTI2MThlYjQyYjA4YTQ5
ZDc4ODk5MjU1YjM4M2NmNTVjNzc1OTkuLjNjNjFlNDI1Y2UwOGQ4ZGI0MzkzMTQ3ZGE3YmFmOWIx
NzE4NzI0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC00NzYsNiArNDc2LDcgQEAgU09VUkNFUyArPSBc
CiAgICAgZG9tL0RvY3VtZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIFwK
ICAgICBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBcCisgICAgZG9tL0RvY3VtZW50
TWFya2VyLmNwcCBcCiAgICAgZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5jcHAgXAogICAgIGRvbS9E
b2N1bWVudFBhcnNlci5jcHAgXAogICAgIGRvbS9Eb2N1bWVudFR5cGUuY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggODdjMzg2Mjc1MTA0
MGNhOTE5NTEwNzY5ZDA0Njc0ZTJmZTY4MWY0OC4uMDY3YzZhOWFmNDgyOTkzNzdhOGZiOTBiOTcw
NjBjMGVmYTgyNzc3NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKQEAgLTQzNDcwLDYgKzQzNDcwLDU4IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEb2N1bWVudE1hcmtlci5jcHAiCisJCQkJ
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0
ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxs
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9u
fFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9v
bAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRv
bVxEb2N1bWVudE9yZGVyZWRNYXAuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCA0Mjc4ZjNiOGY2NmJlZjkyMjk1Y2FkNDhmZWE3ZjJjMDhmMTc0NWIxLi44YjUzYjczYjIw
ZjJlN2Q1ZjZlMjk4ZjkzYTk4MjkyYzE1MDJiODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjE1LDYgKzMyMTUsNyBAQAog
CQlBNzc5NzkyOTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFC
OSAvKiBKU0ltYWdlRGF0YS5oICovOyB9OwogCQlBNzdCNDFBMDEyRTY3NUE5MDA1NDM0M0QgLyog
VGV4dEV2ZW50SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzdCNDE5RjEyRTY3NUE5MDA1NDM0M0QgLyogVGV4dEV2ZW50SW5wdXRUeXBl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc3
RDAwMTIxMzNCMEFFQjAwRDY2NThDIC8qIFRleHRDaGVja2luZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3RDAwMTExMzNCMEFFQjAwRDY2NThDIC8q
IFRleHRDaGVja2luZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUE3ODFDNkE3MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzgxQzZBNjEz
ODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwICovOyB9OwogCQlBNzg0OTQxQjBC
NUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9h
cmQuY3BwICovOyB9OwogCQlBNzhFNTI2RjEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE3OEU1MjZEMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuY3BwICovOyB9
OwogCQlBNzhFNTI3MDEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhFNTI2RTEzNDZC
RDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggKi87IH07CkBAIC05NzM4LDYgKzk3
MzksNyBAQAogCQlBNzc5NzkyNTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbWFnZURhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTc3QjQxOUYxMkU2NzVBOTAwNTQzNDNEIC8qIFRleHRFdmVudElu
cHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RXZlbnRJbnB1
dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3RDAwMTExMzNCMEFFQjAw
RDY2NThDIC8qIFRleHRDaGVja2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXh0Q2hlY2tpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc4MUM2QTYx
MzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50TWFya2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xpcGJvYXJkLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4RTUyNkQxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVy
U2hhZG93RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
ZXRlclNoYWRvd0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzhF
NTI2RTEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1ldGVyU2hhZG93RWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTkyMzYsNiArMTkyMzgsNyBAQAogCQkJCTU5QTg1RUExMTE5RDY4
RDkwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk1OUE4NUVB
MzExOUQ2OEVDMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5oICovLAogCQkJCTU5
QTg1RUFBMTE5RDdCNkUwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCAqLywK
KwkJCQlBNzgxQzZBNjEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwICovLAog
CQkJCUE4MTg1RjM0MDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudC5jcHAgKi8sCiAJCQkJQTgx
ODVGMzgwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3VtZW50LmggKi8sCiAJCQkJNjU0OEUyNDgwOUUx
RTA0RDAwQUY4MDIwIC8qIERvY3VtZW50LmlkbCAqLywKQEAgLTIzNDAxLDYgKzIzNDA0LDcgQEAK
IAkJCQlBODE4NUYzRjA5NzY1NzY2MDA1ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5M0UyMjdFMDBBRjU4OUFEMDBENDgzMjQgLyogRG9jdW1lbnRMb2Fk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMyNjQ5N0EwRDdFMjQ4QTAwQkQxMEYyIC8qIERv
Y3VtZW50TG9hZGVyTWFjLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE3ODFDNkE3MTM4MjhCNUQw
MDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRTA1N0ZB
NTEyMjA3MzExMDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTE0OTQ3RkZEMTJGODBDRDIwMEEwRjYzMSAvKiBEb2N1bWVudE9yZGVyZWRN
YXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThDMjI4MEUxMUQ0QTU5NzAwRDVBN0QzIC8qIERv
Y3VtZW50UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5j
cHAKaW5kZXggZGYxMDEzOGY2NDE1M2FlMGE0YTIzMGQxNGQzYTc4YTQ2YzRkYWMwZS4uY2U0MDQ5
YWM2MTVmOWQ1OWQ5NDM3OGYxNDU1NTNiMTBjYjcxYjM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxs
SW5PbmUuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25F
dmVudC5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnQuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50RnJh
Z21lbnQuY3BwIgorI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmNwcCIKICNpbmNsdWRlICJEb2N1
bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50T3JkZXJlZE1hcC5j
cHAiCiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dE1hcmtlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQ2MDc5ZDdjMDA4MmJiM2Y4YmYyNTY4NmUxZTA3Njhl
ZjYyYWE0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1h
cmtlci5jcHAKQEAgLTAsMCArMSwxNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFy
cyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxs
ZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1
cnlha292IChhcEB3ZWJraXQub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGNvbnN0IFN0cmluZyYgZW1wdHlEZXNjcmlwdGlv
bigpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGVtcHR5U3RyaW5nLCAoKSk7
CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nOworfQorCitEb2N1bWVudE1hcmtlckRldGFpbHM6OkRv
Y3VtZW50TWFya2VyRGV0YWlscygpCit7Cit9CisKK0RvY3VtZW50TWFya2VyRGV0YWlsczo6fkRv
Y3VtZW50TWFya2VyRGV0YWlscygpCit7Cit9CisKK2NvbnN0IFN0cmluZyYgRG9jdW1lbnRNYXJr
ZXJEZXRhaWxzOjpkZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGVtcHR5RGVzY3Jp
cHRpb24oKTsKK30KKworYm9vbCBEb2N1bWVudE1hcmtlckRldGFpbHM6OmFjdGl2ZU1hdGNoKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKworY2xhc3MgRG9jdW1lbnRNYXJrZXJE
ZXNjcmlwdGlvbiA6IHB1YmxpYyBEb2N1bWVudE1hcmtlckRldGFpbHMgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24+IGNyZWF0ZVVubGVz
c0VtcHR5KGNvbnN0IFN0cmluZyYpOworCisgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQorICAgIHZpcnR1YWwgRG9j
dW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzIGNvbXBhdGlibGVUeXBlcygpIGNvbnN0OworCitwcml2
YXRlOgorICAgIERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24oY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbikKKyAgICAgICAgOiBtX2Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKQorICAgIHsKKyAgICB9
CisKKyAgICBTdHJpbmcgbV9kZXNjcmlwdGlvbjsKK307CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRN
YXJrZXJEZXNjcmlwdGlvbj4gRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbjo6Y3JlYXRlVW5sZXNz
RW1wdHkoY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBpZiAoZGVzY3JpcHRpb24u
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IERv
Y3VtZW50TWFya2VyRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pKTsKK30KKworRG9jdW1lbnRNYXJr
ZXI6Ok1hcmtlclR5cGVzIERvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNvbXBhdGlibGVUeXBl
cygpIGNvbnN0Cit7CisgICAgcmV0dXJuIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyhEb2N1
bWVudE1hcmtlcjo6U3BlbGxpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgRG9jdW1lbnRNYXJrZXI6OlJlcGxhY2VtZW50CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8IERvY3VtZW50TWFya2VyOjpBdXRvY29ycmVjdGVk
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERvY3VtZW50TWFya2Vy
OjpEZWxldGVkQXV0b2NvcnJlY3Rpb24pOworfQorCisKK2NsYXNzIERvY3VtZW50TWFya2VyVGV4
dE1hdGNoIDogcHVibGljIERvY3VtZW50TWFya2VyRGV0YWlscyB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g+IGluc3RhbmNlRm9yKGJvb2wp
OworCisgICAgdmlydHVhbCBib29sIGFjdGl2ZU1hdGNoKCkgY29uc3QgeyByZXR1cm4gbV9tYXRj
aDsgfQorICAgIHZpcnR1YWwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzIGNvbXBhdGlibGVU
eXBlcygpIGNvbnN0OworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IERvY3VtZW50TWFya2VyVGV4
dE1hdGNoKGJvb2wgbWF0Y2gpCisgICAgICAgIDogbV9tYXRjaChtYXRjaCkKKyAgICB7CisgICAg
fQorCisgICAgYm9vbCBtX21hdGNoOworfTsKKworUGFzc1JlZlB0cjxEb2N1bWVudE1hcmtlclRl
eHRNYXRjaD4gRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6Omluc3RhbmNlRm9yKGJvb2wgbWF0Y2gp
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8RG9jdW1lbnRNYXJrZXJUZXh0TWF0
Y2g+LCB0cnVlSW5zdGFuY2UsIChhZG9wdFJlZihuZXcgRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2go
dHJ1ZSkpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8RG9jdW1lbnRNYXJrZXJU
ZXh0TWF0Y2g+LCBmYWxzZUluc3RhbmNlLCAoYWRvcHRSZWYobmV3IERvY3VtZW50TWFya2VyVGV4
dE1hdGNoKGZhbHNlKSkpKTsKKyAgICByZXR1cm4gbWF0Y2ggPyB0cnVlSW5zdGFuY2UgOiBmYWxz
ZUluc3RhbmNlOworfQorCitEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZXMgRG9jdW1lbnRNYXJr
ZXJUZXh0TWF0Y2g6OmNvbXBhdGlibGVUeXBlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIERvY3Vt
ZW50TWFya2VyOjpNYXJrZXJUeXBlcyhEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKTsKK30KKwor
CitEb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJrZXIoKSAKKyAgICA6IG1fdHlwZShTcGVsbGlu
ZyksIG1fc3RhcnRPZmZzZXQoMCksIG1fZW5kT2Zmc2V0KDApCit7Cit9CisKK0RvY3VtZW50TWFy
a2VyOjpEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlIHR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0
LCB1bnNpZ25lZCBlbmRPZmZzZXQpCisgICAgOiBtX3R5cGUodHlwZSksIG1fc3RhcnRPZmZzZXQo
c3RhcnRPZmZzZXQpLCBtX2VuZE9mZnNldChlbmRPZmZzZXQpCit7Cit9CisKK0RvY3VtZW50TWFy
a2VyOjpEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlIHR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0
LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pCisgICAgOiBt
X3R5cGUodHlwZSksIG1fc3RhcnRPZmZzZXQoc3RhcnRPZmZzZXQpLCBtX2VuZE9mZnNldChlbmRP
ZmZzZXQpLCBtX2RldGFpbHMoRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbjo6Y3JlYXRlVW5sZXNz
RW1wdHkoZGVzY3JpcHRpb24pKQoreworICAgIEFTU0VSVCghbV9kZXRhaWxzIHx8IG1fZGV0YWls
cy0+aXNBbGxvd2VkRm9yKG1fdHlwZSkpOworfQorCitEb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRN
YXJrZXIodW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgYm9vbCBhY3Rp
dmVNYXRjaCkKKyAgICA6IG1fdHlwZShEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKSwgbV9zdGFy
dE9mZnNldChzdGFydE9mZnNldCksIG1fZW5kT2Zmc2V0KGVuZE9mZnNldCksIG1fZGV0YWlscyhE
b2N1bWVudE1hcmtlclRleHRNYXRjaDo6aW5zdGFuY2VGb3IoYWN0aXZlTWF0Y2gpKQoreworICAg
IEFTU0VSVChtX2RldGFpbHMtPmlzQWxsb3dlZEZvcihtX3R5cGUpKTsKK30KKworRG9jdW1lbnRN
YXJrZXI6OkRvY3VtZW50TWFya2VyKE1hcmtlclR5cGUgdHlwZSwgdW5zaWduZWQgc3RhcnRPZmZz
ZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgUGFzc1JlZlB0cjxEb2N1bWVudE1hcmtlckRldGFpbHM+
IGRldGFpbHMpCisgICAgOiBtX3R5cGUodHlwZSksIG1fc3RhcnRPZmZzZXQoc3RhcnRPZmZzZXQp
LCBtX2VuZE9mZnNldChlbmRPZmZzZXQpLCBtX2RldGFpbHMoZGV0YWlscykKK3sKKyAgICBBU1NF
UlQoIW1fZGV0YWlscyB8fCBtX2RldGFpbHMtPmlzQWxsb3dlZEZvcihtX3R5cGUpKTsKK30KKwor
dm9pZCBEb2N1bWVudE1hcmtlcjo6c2hpZnRPZmZzZXRzKGludCBkZWx0YSkKK3sKKyAgICBtX3N0
YXJ0T2Zmc2V0ICs9IGRlbHRhOworICAgIG1fZW5kT2Zmc2V0ICs9ICBkZWx0YTsKK30KKwordm9p
ZCBEb2N1bWVudE1hcmtlcjo6c2V0QWN0aXZlTWF0Y2goYm9vbCBhY3RpdmUpCit7CisgICAgbV9k
ZXRhaWxzID0gRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6Omluc3RhbmNlRm9yKGFjdGl2ZSk7Cisg
ICAgQVNTRVJUKG1fZGV0YWlscy0+aXNBbGxvd2VkRm9yKG1fdHlwZSkpOworfQorCitjb25zdCBT
dHJpbmcmIERvY3VtZW50TWFya2VyOjpkZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fZGV0YWlscyA/IG1fZGV0YWlscy0+ZGVzY3JpcHRpb24oKSA6IGVtcHR5RGVzY3JpcHRpb24o
KTsKK30KKworYm9vbCBEb2N1bWVudE1hcmtlcjo6YWN0aXZlTWF0Y2goKSBjb25zdAoreworICAg
IHJldHVybiBtX2RldGFpbHMgJiYgbV9kZXRhaWxzLT5hY3RpdmVNYXRjaCgpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRNYXJrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCmluZGV4IGQ2
NzBlMmMwYjAzMjAxM2M2MzNhYmY0ZWJjOTg4NDVkNTE0Yjc5NmYuLjdkMzAyNTRkNjU2N2FmNTBm
YWIzYWE4ZjExMmFhNjY4YmEwZTFiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudE1hcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5o
CkBAIC0yNSwxMCArMjUsMTQgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3Vt
ZW50TWFya2VyRGV0YWlsczsKKwogLy8gQSByYW5nZSBvZiBhIG5vZGUgd2l0aGluIGEgZG9jdW1l
bnQgdGhhdCBpcyAibWFya2VkIiwgc3VjaCBhcyB0aGUgcmFuZ2Ugb2YgYSBtaXNzcGVsbGVkIHdv
cmQuCiAvLyBJdCBvcHRpb25hbGx5IGluY2x1ZGVzIGEgZGVzY3JpcHRpb24gdGhhdCBjb3VsZCBi
ZSBkaXNwbGF5ZWQgaW4gdGhlIHVzZXIgaW50ZXJmYWNlLgogLy8gSXQgYWxzbyBvcHRpb25hbGx5
IGluY2x1ZGVzIGEgZmxhZyBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhlIG1hdGNoIGlzIGFjdGl2ZSwg
d2hpY2ggaXMgaWdub3JlZApAQCAtOTAsMTYgKzk0LDE4IEBAIHB1YmxpYzoKICAgICBEb2N1bWVu
dE1hcmtlcihNYXJrZXJUeXBlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zm
c2V0KTsKICAgICBEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlLCB1bnNpZ25lZCBzdGFydE9mZnNl
dCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKTsKICAgICBE
b2N1bWVudE1hcmtlcih1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBi
b29sIGFjdGl2ZU1hdGNoKTsKKyAgICBEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlLCB1bnNpZ25l
ZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBQYXNzUmVmUHRyPERvY3VtZW50TWFy
a2VyRGV0YWlscz4pOwogCiAgICAgTWFya2VyVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90
eXBlOyB9CiAgICAgdW5zaWduZWQgc3RhcnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0
T2Zmc2V0OyB9CiAgICAgdW5zaWduZWQgZW5kT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9lbmRP
ZmZzZXQ7IH0KLSAgICBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9kZXNjcmlwdGlvbjsgfQotICAgIGJvb2wgaGFzRGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVy
biAhbV9kZXNjcmlwdGlvbi5pc0VtcHR5KCk7IH0KLSAgICBib29sIGFjdGl2ZU1hdGNoKCkgY29u
c3QgeyByZXR1cm4gbV9hY3RpdmVNYXRjaDsgfQorCisgICAgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbigpIGNvbnN0OworICAgIGJvb2wgYWN0aXZlTWF0Y2goKSBjb25zdDsKKyAgICBEb2N1bWVu
dE1hcmtlckRldGFpbHMqIGRldGFpbHMoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0QWN0aXZlTWF0
Y2goYm9vbCk7Ci0gICAgdm9pZCBjbGVhckRlc2NyaXB0aW9uKCkgeyBtX2Rlc2NyaXB0aW9uID0g
U3RyaW5nKCk7IH0KKyAgICB2b2lkIGNsZWFyRGV0YWlscygpIHsgbV9kZXRhaWxzLmNsZWFyKCk7
IH0KIAogICAgIC8vIE9mZnNldCBtb2RpZmljYXRpb25zIGFyZSBkb25lIGJ5IERvY3VtZW50TWFy
a2VyQ29udHJvbGxlci4KICAgICAvLyBPdGhlciBjbGFzc2VzIHNob3VsZCBub3QgY2FsbCBmb2xs
b3dpbmcgc2V0dGVycy4KQEAgLTEyMSw0MiArMTI3LDMwIEBAIHByaXZhdGU6CiAgICAgTWFya2Vy
VHlwZSBtX3R5cGU7CiAgICAgdW5zaWduZWQgbV9zdGFydE9mZnNldDsKICAgICB1bnNpZ25lZCBt
X2VuZE9mZnNldDsKLSAgICBTdHJpbmcgbV9kZXNjcmlwdGlvbjsKLSAgICBib29sIG1fYWN0aXZl
TWF0Y2g7CisgICAgUmVmUHRyPERvY3VtZW50TWFya2VyRGV0YWlscz4gbV9kZXRhaWxzOwogfTsK
IAotaW5saW5lIERvY3VtZW50TWFya2VyOjpEb2N1bWVudE1hcmtlcigpCi0gICAgOiBtX3R5cGUo
U3BlbGxpbmcpLCBtX3N0YXJ0T2Zmc2V0KDApLCBtX2VuZE9mZnNldCgwKSwgbV9hY3RpdmVNYXRj
aChmYWxzZSkKLXsKLX0KLQotaW5saW5lIERvY3VtZW50TWFya2VyOjpEb2N1bWVudE1hcmtlcihN
YXJrZXJUeXBlIHR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQp
Ci0gICAgOiBtX3R5cGUodHlwZSksIG1fc3RhcnRPZmZzZXQoc3RhcnRPZmZzZXQpLCBtX2VuZE9m
ZnNldChlbmRPZmZzZXQpLCBtX2FjdGl2ZU1hdGNoKGZhbHNlKQotewotfQotCi1pbmxpbmUgRG9j
dW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKE1hcmtlclR5cGUgdHlwZSwgdW5zaWduZWQgc3Rh
cnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikK
LSAgICA6IG1fdHlwZSh0eXBlKSwgbV9zdGFydE9mZnNldChzdGFydE9mZnNldCksIG1fZW5kT2Zm
c2V0KGVuZE9mZnNldCksIG1fZGVzY3JpcHRpb24oZGVzY3JpcHRpb24pLCBtX2FjdGl2ZU1hdGNo
KGZhbHNlKQoraW5saW5lIERvY3VtZW50TWFya2VyRGV0YWlscyogRG9jdW1lbnRNYXJrZXI6OmRl
dGFpbHMoKSBjb25zdAogewotICAgIEFTU0VSVCh0eXBlID09IERvY3VtZW50TWFya2VyOjpHcmFt
bWFyIHx8IERvY3VtZW50TWFya2VyOjpBdXRvY29ycmVjdGVkKTsKKyAgICByZXR1cm4gbV9kZXRh
aWxzLmdldCgpOwogfQogCi1pbmxpbmUgRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKHVu
c2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGJvb2wgYWN0aXZlTWF0Y2gp
Ci0gICAgOiBtX3R5cGUoRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCksIG1fc3RhcnRPZmZzZXQo
c3RhcnRPZmZzZXQpLCBtX2VuZE9mZnNldChlbmRPZmZzZXQpLCBtX2FjdGl2ZU1hdGNoKGFjdGl2
ZU1hdGNoKQorLy8gQSBzdXBlcmNsYXNzIG9mIG1hcmtlciB0eXBlIHNwZWNpZmljIG1ldGFkYXRh
LgorLy8KKy8vIE5vdGUgdGhhdCBldmVyeSBkZXRhaWxzIHN1YmNsYXNzZXMgc2hvdWxkIGtub3cg
YWJvdXQgZGVzY3JpcHRpb24KKy8vIGFuZCBhY3RpdmVNYXRjaCBhcyBhIGxlYXN0IGNvbW1vbiBk
ZW5vbWluYXRvci4KK2NsYXNzIERvY3VtZW50TWFya2VyRGV0YWlscyA6IHB1YmxpYyBSZWZDb3Vu
dGVkPERvY3VtZW50TWFya2VyRGV0YWlscz4KIHsKLX0KK3B1YmxpYzoKKyAgICBEb2N1bWVudE1h
cmtlckRldGFpbHMoKTsKKyAgICB2aXJ0dWFsIH5Eb2N1bWVudE1hcmtlckRldGFpbHMoKTsKIAot
aW5saW5lIHZvaWQgRG9jdW1lbnRNYXJrZXI6OnNoaWZ0T2Zmc2V0cyhpbnQgZGVsdGEpCi17Ci0g
ICAgbV9zdGFydE9mZnNldCArPSBkZWx0YTsKLSAgICBtX2VuZE9mZnNldCArPSAgZGVsdGE7Ci19
CisgICAgYm9vbCBpc0FsbG93ZWRGb3IoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUgdHlwZSkg
Y29uc3QgeyByZXR1cm4gY29tcGF0aWJsZVR5cGVzKCkuY29udGFpbnModHlwZSk7IH0KIAotaW5s
aW5lIHZvaWQgRG9jdW1lbnRNYXJrZXI6OnNldEFjdGl2ZU1hdGNoKGJvb2wgYWN0aXZlKQotewot
ICAgIEFTU0VSVChtX3R5cGUgPT0gRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCk7Ci0gICAgbV9h
Y3RpdmVNYXRjaCA9IGFjdGl2ZTsKLX0KKyAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgYWN0aXZlTWF0Y2goKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyBjb21wYXRpYmxlVHlwZXMoKSBj
b25zdCA9IDA7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAKaW5kZXggNDU3NzAxMzY4NTkw
YjMxYjA2ZTI1ZWNhYTVhOWM4NWEzZmM3ZTk4My4uZjY0MTBlZTBmZDg4MmI2MmI0OWQ1ZGJjYmRl
YjIxZDI5OWFkMTVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5jcHAKQEAgLTY1NCw3ICs2NTQsNyBAQCB2b2lkIERvY3VtZW50TWFya2VyQ29u
dHJvbGxlcjo6Y2xlYXJEZXNjcmlwdGlvbk9uTWFya2Vyc0ludGVyc2VjdGluZ1JhbmdlKFJhbmdl
KgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBtYXJrZXIuY2xlYXJEZXNjcmlwdGlvbigpOworICAgICAgICAgICAgbWFya2VyLmNsZWFyRGV0
YWlscygpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCA0Y2M1NDQyMGM2NDY4Mjk1MDlkOWYwN2Ez
ZTk1MGNjMDEwMjQ5ZDkzLi5hYjExNjVkMzJkNmVjODRmMGI5ZmI2NzlkODU2OTUxZWI3NWY0ODAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNw
cApAQCAtMzQ1LDEyICszNDUsOCBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpyZXBsYWNl
VGV4dEluTm9kZVByZXNlcnZpbmdNYXJrZXJzKFBhc3NSZWZQdHI8VGV4dD4gcAogICAgIFZlY3Rv
cjxEb2N1bWVudE1hcmtlcj4gbWFya2VycyA9IG1hcmtlckNvbnRyb2xsZXItPm1hcmtlcnNJblJh
bmdlKFJhbmdlOjpjcmVhdGUoZG9jdW1lbnQoKSwgbm9kZSwgb2Zmc2V0LCBub2RlLCBvZmZzZXQg
KyBjb3VudCkuZ2V0KCksIERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzKCkpOwogICAgIHJlcGxh
Y2VUZXh0SW5Ob2RlKG5vZGUsIG9mZnNldCwgY291bnQsIHJlcGxhY2VtZW50VGV4dCk7CiAgICAg
UmVmUHRyPFJhbmdlPiBuZXdSYW5nZSA9IFJhbmdlOjpjcmVhdGUoZG9jdW1lbnQoKSwgbm9kZSwg
b2Zmc2V0LCBub2RlLCBvZmZzZXQgKyByZXBsYWNlbWVudFRleHQubGVuZ3RoKCkpOwotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbWFya2Vycy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAo
bWFya2Vyc1tpXS5oYXNEZXNjcmlwdGlvbigpKQotICAgICAgICAgICAgbWFya2VyQ29udHJvbGxl
ci0+YWRkTWFya2VyKG5ld1JhbmdlLmdldCgpLCBtYXJrZXJzW2ldLnR5cGUoKSwgbWFya2Vyc1tp
XS5kZXNjcmlwdGlvbigpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbWFya2VyQ29udHJv
bGxlci0+YWRkTWFya2VyKG5ld1JhbmdlLmdldCgpLCBtYXJrZXJzW2ldLnR5cGUoKSk7Ci0gICAg
fQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWFya2Vycy5zaXplKCk7ICsraSkKKyAgICAg
ICAgbWFya2VyQ29udHJvbGxlci0+YWRkTWFya2VyKG5ld1JhbmdlLmdldCgpLCBtYXJrZXJzW2ld
LnR5cGUoKSwgbWFya2Vyc1tpXS5kZXNjcmlwdGlvbigpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9z
aXRlRWRpdENvbW1hbmQ6OnBvc2l0aW9uT3V0c2lkZVRhYlNwYW4oY29uc3QgUG9zaXRpb24mIHBv
cykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102499</attachid>
            <date>2011-08-01 02:26:08 -0700</date>
            <delta_ts>2011-08-02 22:51:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59855-20110801182606.patch</filename>
            <type>text/plain</type>
            <size>22280</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIxMTEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTNiZWRi
NGI5NDY4OTc0ZDU1MDUzMmZlZjlkNzFhMTQzOWViMzgyNi4uYjFhNmE5YTBmMDk1OTU4YmQ4YTQ4
MGVlOGFhN2I0MTczOWFlZmU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTUxNSw2ICs1MTUs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwCiAgICAgZG9tL0RvY3VtZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwCisgICAgZG9tL0RvY3VtZW50TWFya2VyLmNwcAogICAgIGRvbS9Eb2N1bWVudEZyYWdt
ZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudFBhcnNlci5jcHAKICAgICBkb20vRG9jdW1lbnRPcmRl
cmVkTWFwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGVhN2QyMjNkNGVlZDQ2OGUwYTMzNGI2OGE3MjM3ZTFi
YmNkZDE1MGUuLjcyMzg4MDI5MzIzYzdhZTliZTIwM2Y4ZGUyODdlOTAwZjQ2ZWRmMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAxMS0wOC0wMSAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEb2N1bWVudE1hcmtlcjogVHlwZSBzcGVjaWZpYyBkZXRhaWxzIHNob3VsZCBiZSBz
ZXBhcmF0ZWx5IGhlbGQgYnkgb3RoZXIgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk4NTUKKworICAgICAgICAtIEludHJvZHVjZWQgRG9j
dW1lbnRNYXJrZXJEZXRhaWxzIGFic3RyYWN0IGNsYXNzIGFuZCB0d28gaXRzIHN1YmNsYXNzZXMK
KyAgICAgICAgICBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uIGFuZCBEb2N1bWVudE1hcmtlckFj
dGl2ZU1hdGNoLAorICAgICAgICAKKyAgICAgICAgLSBSZXBsYWNpbmcgRG9jdW1lbnRNYXJrZXI6
Om1fZGVzY3JpcHRpb24gYW5kCisgICAgICAgICAgRG9jdW1lbnRNYXJrZXI6Om1fYWN0aXZlTWF0
Y2ggd2l0aCB0aGVzZSBuZXcgZGV0YWlscyBjbGFzc2VzLgorICAgICAgICAKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRN
YXJrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmVtcHR5RGVzY3JpcHRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjpEb2N1bWVudE1hcmtlckRl
dGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjp+RG9jdW1l
bnRNYXJrZXJEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGV0YWls
czo6ZGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxz
OjphY3RpdmVNYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckRlc2NyaXB0
aW9uOjpkZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckRlc2Ny
aXB0aW9uOjpEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNyZWF0ZVVubGVzc0VtcHR5KToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNvbXBhdGlibGVUeXBlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlclRleHRNYXRjaDo6YWN0aXZlTWF0Y2gpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6OkRvY3VtZW50TWFya2VyVGV4
dE1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyVGV4dE1hdGNoOjppbnN0
YW5jZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlclRleHRNYXRjaDo6Y29t
cGF0aWJsZVR5cGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpEb2N1bWVu
dE1hcmtlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6c2hpZnRPZmZzZXRz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpzZXRBY3RpdmVNYXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6ZGVzY3JpcHRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6OmFjdGl2ZU1hdGNoKToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnRNYXJrZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpkZXRhaWxz
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpjbGVhckRldGFpbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjppc0FsbG93ZWRGb3IpOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpjbGVhckRlc2NyaXB0aW9uT25NYXJrZXJzSW50
ZXJzZWN0aW5nUmFuZ2UpOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0
SW5Ob2RlUHJlc2VydmluZ01hcmtlcnMpOgorCiAyMDExLTA4LTAxICBMdWtlIE1hY3BoZXJzb24g
ICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGl0ZXJhdG9yIHRvIENT
U1ZhbHVlTGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYjM4OGEzNjk5ZGI2
NmE2Y2Y0ZGRmOTkwYTliMzNiZDY1NDRjNmZlMi4uZjkyZTg4ZjRlZjFlNGIzODAxOGVjY2E4OWE0
ZDQ2ZjlkYTQ3ZDNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMTI2LDYg
KzExMjYsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRNYXJrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50T3JkZXJl
ZE1hcC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuaCBcCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggNTRjOWEzNGQzYjViMmFjMTE1MzcwMGRjODI1MTQwZTZhZjcyOWIw
Mi4uN2M1ODUwNjljZTQyY2U5MGZiOTAzNzFjZDFmOTIyOWI3YjNiYzI4NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNTI2OCw2ICs1MjY4LDcgQEAKICAgICAgICAgICAgICdkb20vRG9jdW1lbnQuY3Bw
JywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnRGcmFnbWVudC5jcHAnLAogICAgICAgICAgICAg
J2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwJywKKyAgICAgICAgICAgICdkb20vRG9j
dW1lbnRNYXJrZXIuY3BwJywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNw
cCcsCiAgICAgICAgICAgICAnZG9tL0RvY3VtZW50UGFyc2VyLmNwcCcsCiAgICAgICAgICAgICAn
ZG9tL0RvY3VtZW50VHlwZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA3YTNiZWYxNmY1NzZkNjNi
YjQyNDU4NzA1YmYzNjFiODZjNGM3YTFmLi5kNDk3Mjg0NGEzYTZmMzQ4N2M3OWNlZGU2MTY4N2I2
NGRkZDE2YzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNDc4LDYgKzQ3OCw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIGRvbS9Eb2N1bWVudC5jcHAgXAogICAgIGRvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCBc
CiAgICAgZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgXAorICAgIGRvbS9Eb2N1bWVu
dE1hcmtlci5jcHAgXAogICAgIGRvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwIFwKICAgICBkb20v
RG9jdW1lbnRQYXJzZXIuY3BwIFwKICAgICBkb20vRG9jdW1lbnRUeXBlLmNwcCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDkxZjJmYTUyZTMx
ODFlN2YxNGExZmMzOWVhZTMyNzI0MTBhM2VmZTQuLjRhY2NjM2M4NzBhZWZhZWI2Njc2MDdlZmEw
MzAxZTZjODU0YjE1NTUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC00NDY0Miw2ICs0NDY0Miw1OCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRG9jdW1lbnRNYXJrZXIuY3BwIgorCQkJ
CT4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiCisJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxp
dGV8V2luMzIiCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxU
b29sCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnX0Fs
bHxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUHJvZHVjdGlv
bnxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRv
b2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxk
b21cRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggNjgyMTk1OTQ1YTFiOGZmMTFhOTExMTIzNmJkYzFmZTNmYzFlMGYyYi4uMjZkZTExOWFh
M2MzMTRhY2Q1MThhMWQyYTAzMGJiODg1OTRhZWQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzM2MCw2ICszMzYwLDcgQEAK
IAkJQTc3OTc5MjkwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzc5NzkyNTBENkI5RTY0MDAzODUx
QjkgLyogSlNJbWFnZURhdGEuaCAqLzsgfTsKIAkJQTc3QjQxQTAxMkU2NzVBOTAwNTQzNDNEIC8q
IFRleHRFdmVudElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTc3QjQxOUYxMkU2NzVBOTAwNTQzNDNEIC8qIFRleHRFdmVudElucHV0VHlw
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3
N0QwMDEyMTMzQjBBRUIwMEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3N0QwMDExMTMzQjBBRUIwMEQ2NjU4QyAv
KiBUZXh0Q2hlY2tpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlBNzgxQzZBNzEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4MUM2QTYx
MzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCAqLzsgfTsKIAkJQTc4NDk0MUIw
QjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJv
YXJkLmNwcCAqLzsgfTsKIAkJQTc4RTUyNkYxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzhFNTI2RDEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmNwcCAqLzsg
fTsKIAkJQTc4RTUyNzAxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4RTUyNkUxMzQ2
QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxlbWVudC5oICovOyB9OwpAQCAtOTk0MCw2ICs5
OTQxLDcgQEAKIAkJQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpTSW1hZ2VEYXRhLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW1hZ2VEYXRhLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3N0I0MTlGMTJFNjc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJ
bnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dEV2ZW50SW5w
dXRUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3N0QwMDExMTMzQjBBRUIw
MEQ2NjU4QyAvKiBUZXh0Q2hlY2tpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVGV4dENoZWNraW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3ODFDNkE2
MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudE1hcmtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENsaXBib2FyZC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OEU1MjZEMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRl
clNoYWRvd0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWV0ZXJTaGFkb3dFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4
RTUyNkUxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNZXRlclNoYWRvd0VsZW1lbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE5NzE4LDYgKzE5NzIwLDcgQEAKIAkJCQk1OUE4NUVBMTExOUQ2
OEQ5MDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAgKi8sCiAJCQkJNTlBODVF
QTMxMTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCAqLywKIAkJCQk1
OUE4NUVBQTExOUQ3QjZFMDBERUYxRUYgLyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5pZGwgKi8s
CisJCQkJQTc4MUM2QTYxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCAqLywK
IAkJCQlBODE4NUYzNDA5NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnQuY3BwICovLAogCQkJCUE4
MTg1RjM4MDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudC5oICovLAogCQkJCTY1NDhFMjQ4MDlF
MUUwNEQwMEFGODAyMCAvKiBEb2N1bWVudC5pZGwgKi8sCkBAIC0yMzg4Myw2ICsyMzg4Niw3IEBA
CiAJCQkJQTgxODVGM0YwOTc2NTc2NjAwNTgyNkQ5IC8qIERvY3VtZW50RnJhZ21lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTNFMjI3RTAwQUY1ODlBRDAwRDQ4MzI0IC8qIERvY3VtZW50TG9h
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFDMjY0OTdBMEQ3RTI0OEEwMEJEMTBGMiAvKiBE
b2N1bWVudExvYWRlck1hYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBNzgxQzZBNzEzODI4QjVE
MDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0UwNTdG
QTUxMjIwNzMxMTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxNDk0N0ZGRDEyRjgwQ0QyMDBBMEY2MzEgLyogRG9jdW1lbnRPcmRlcmVk
TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QzIyODBFMTFENEE1OTcwMEQ1QTdEMyAvKiBE
b2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01BbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUu
Y3BwCmluZGV4IDNhZDE1NjZlNjczZDI3ZmI5MTIwOWJlNjZhNGZkOTczMTk3YTZkZjcuLjM0MmNj
YTE3YmI1YTBlZDAxNTI4OWZkNTI1NDcwYmMzODc5OGRmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFs
bEluT25lLmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
RXZlbnQuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50LmNwcCIKICNpbmNsdWRlICJEb2N1bWVudEZy
YWdtZW50LmNwcCIKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlci5jcHAiCiAjaW5jbHVkZSAiRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCIKICNpbmNsdWRlICJEb2N1bWVudE9yZGVyZWRNYXAu
Y3BwIgogI2luY2x1ZGUgIkRvY3VtZW50UGFyc2VyLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRNYXJrZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0NjA3OWQ3YzAwODJiYjNmOGJmMjU2ODZlMWUwNzY4
ZWY2MmFhNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRN
YXJrZXIuY3BwCkBAIC0wLDAgKzEsMTY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAxOTk5IExh
cnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29p
dmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVs
bGVyIChtdWVsbGVyQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3Nr
dXJ5YWtvdiAoYXBAd2Via2l0Lm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqIENvcHlyaWdodCAo
QykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlci5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBjb25zdCBTdHJpbmcmIGVtcHR5RGVzY3JpcHRp
b24oKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBlbXB0eVN0cmluZywgKCkp
OworICAgIHJldHVybiBlbXB0eVN0cmluZzsKK30KKworRG9jdW1lbnRNYXJrZXJEZXRhaWxzOjpE
b2N1bWVudE1hcmtlckRldGFpbHMoKQoreworfQorCitEb2N1bWVudE1hcmtlckRldGFpbHM6On5E
b2N1bWVudE1hcmtlckRldGFpbHMoKQoreworfQorCitjb25zdCBTdHJpbmcmIERvY3VtZW50TWFy
a2VyRGV0YWlsczo6ZGVzY3JpcHRpb24oKSBjb25zdAoreworICAgIHJldHVybiBlbXB0eURlc2Ny
aXB0aW9uKCk7Cit9CisKK2Jvb2wgRG9jdW1lbnRNYXJrZXJEZXRhaWxzOjphY3RpdmVNYXRjaCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCisKK2NsYXNzIERvY3VtZW50TWFya2Vy
RGVzY3JpcHRpb24gOiBwdWJsaWMgRG9jdW1lbnRNYXJrZXJEZXRhaWxzIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uPiBjcmVhdGVVbmxl
c3NFbXB0eShjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KKyAgICB2aXJ0dWFsIERv
Y3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyBjb21wYXRpYmxlVHlwZXMoKSBjb25zdDsKKworcHJp
dmF0ZToKKyAgICBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uKGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24pCisgICAgICAgIDogbV9kZXNjcmlwdGlvbihkZXNjcmlwdGlvbikKKyAgICB7CisgICAg
fQorCisgICAgU3RyaW5nIG1fZGVzY3JpcHRpb247Cit9OworCitQYXNzUmVmUHRyPERvY3VtZW50
TWFya2VyRGVzY3JpcHRpb24+IERvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNyZWF0ZVVubGVz
c0VtcHR5KGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pCit7CisgICAgaWYgKGRlc2NyaXB0aW9u
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBE
b2N1bWVudE1hcmtlckRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSk7Cit9CisKK0RvY3VtZW50TWFy
a2VyOjpNYXJrZXJUeXBlcyBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uOjpjb21wYXRpYmxlVHlw
ZXMoKSBjb25zdAoreworICAgIHJldHVybiBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZXMoRG9j
dW1lbnRNYXJrZXI6OlNwZWxsaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8IERvY3VtZW50TWFya2VyOjpHcmFtbWFyCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8IERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEb2N1bWVudE1hcmtlcjo6QXV0b2NvcnJlY3Rl
ZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEb2N1bWVudE1hcmtl
cjo6RGVsZXRlZEF1dG9jb3JyZWN0aW9uKTsKK30KKworCitjbGFzcyBEb2N1bWVudE1hcmtlclRl
eHRNYXRjaCA6IHB1YmxpYyBEb2N1bWVudE1hcmtlckRldGFpbHMgeworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50TWFya2VyVGV4dE1hdGNoPiBpbnN0YW5jZUZvcihib29s
KTsKKworICAgIHZpcnR1YWwgYm9vbCBhY3RpdmVNYXRjaCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0
Y2g7IH0KKyAgICB2aXJ0dWFsIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyBjb21wYXRpYmxl
VHlwZXMoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBEb2N1bWVudE1hcmtlclRl
eHRNYXRjaChib29sIG1hdGNoKQorICAgICAgICA6IG1fbWF0Y2gobWF0Y2gpCisgICAgeworICAg
IH0KKworICAgIGJvb2wgbV9tYXRjaDsKK307CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRNYXJrZXJU
ZXh0TWF0Y2g+IERvY3VtZW50TWFya2VyVGV4dE1hdGNoOjppbnN0YW5jZUZvcihib29sIG1hdGNo
KQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPERvY3VtZW50TWFya2VyVGV4dE1h
dGNoPiwgdHJ1ZUluc3RhbmNlLCAoYWRvcHRSZWYobmV3IERvY3VtZW50TWFya2VyVGV4dE1hdGNo
KHRydWUpKSkpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoUmVmUHRyPERvY3VtZW50TWFya2Vy
VGV4dE1hdGNoPiwgZmFsc2VJbnN0YW5jZSwgKGFkb3B0UmVmKG5ldyBEb2N1bWVudE1hcmtlclRl
eHRNYXRjaChmYWxzZSkpKSk7CisgICAgcmV0dXJuIG1hdGNoID8gdHJ1ZUluc3RhbmNlIDogZmFs
c2VJbnN0YW5jZTsKK30KKworRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzIERvY3VtZW50TWFy
a2VyVGV4dE1hdGNoOjpjb21wYXRpYmxlVHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBEb2N1
bWVudE1hcmtlcjo6TWFya2VyVHlwZXMoRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCk7Cit9CisK
KworRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKCkgCisgICAgOiBtX3R5cGUoU3BlbGxp
bmcpLCBtX3N0YXJ0T2Zmc2V0KDApLCBtX2VuZE9mZnNldCgwKQoreworfQorCitEb2N1bWVudE1h
cmtlcjo6RG9jdW1lbnRNYXJrZXIoTWFya2VyVHlwZSB0eXBlLCB1bnNpZ25lZCBzdGFydE9mZnNl
dCwgdW5zaWduZWQgZW5kT2Zmc2V0KQorICAgIDogbV90eXBlKHR5cGUpLCBtX3N0YXJ0T2Zmc2V0
KHN0YXJ0T2Zmc2V0KSwgbV9lbmRPZmZzZXQoZW5kT2Zmc2V0KQoreworfQorCitEb2N1bWVudE1h
cmtlcjo6RG9jdW1lbnRNYXJrZXIoTWFya2VyVHlwZSB0eXBlLCB1bnNpZ25lZCBzdGFydE9mZnNl
dCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQorICAgIDog
bV90eXBlKHR5cGUpLCBtX3N0YXJ0T2Zmc2V0KHN0YXJ0T2Zmc2V0KSwgbV9lbmRPZmZzZXQoZW5k
T2Zmc2V0KSwgbV9kZXRhaWxzKERvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNyZWF0ZVVubGVz
c0VtcHR5KGRlc2NyaXB0aW9uKSkKK3sKKyAgICBBU1NFUlQoIW1fZGV0YWlscyB8fCBtX2RldGFp
bHMtPmlzQWxsb3dlZEZvcihtX3R5cGUpKTsKK30KKworRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50
TWFya2VyKHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGJvb2wgYWN0
aXZlTWF0Y2gpCisgICAgOiBtX3R5cGUoRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCksIG1fc3Rh
cnRPZmZzZXQoc3RhcnRPZmZzZXQpLCBtX2VuZE9mZnNldChlbmRPZmZzZXQpLCBtX2RldGFpbHMo
RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6Omluc3RhbmNlRm9yKGFjdGl2ZU1hdGNoKSkKK3sKKyAg
ICBBU1NFUlQobV9kZXRhaWxzLT5pc0FsbG93ZWRGb3IobV90eXBlKSk7Cit9CisKK0RvY3VtZW50
TWFya2VyOjpEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlIHR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zm
c2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIFBhc3NSZWZQdHI8RG9jdW1lbnRNYXJrZXJEZXRhaWxz
PiBkZXRhaWxzKQorICAgIDogbV90eXBlKHR5cGUpLCBtX3N0YXJ0T2Zmc2V0KHN0YXJ0T2Zmc2V0
KSwgbV9lbmRPZmZzZXQoZW5kT2Zmc2V0KSwgbV9kZXRhaWxzKGRldGFpbHMpCit7CisgICAgQVNT
RVJUKCFtX2RldGFpbHMgfHwgbV9kZXRhaWxzLT5pc0FsbG93ZWRGb3IobV90eXBlKSk7Cit9CisK
K3ZvaWQgRG9jdW1lbnRNYXJrZXI6OnNoaWZ0T2Zmc2V0cyhpbnQgZGVsdGEpCit7CisgICAgbV9z
dGFydE9mZnNldCArPSBkZWx0YTsKKyAgICBtX2VuZE9mZnNldCArPSAgZGVsdGE7Cit9CisKK3Zv
aWQgRG9jdW1lbnRNYXJrZXI6OnNldEFjdGl2ZU1hdGNoKGJvb2wgYWN0aXZlKQoreworICAgIG1f
ZGV0YWlscyA9IERvY3VtZW50TWFya2VyVGV4dE1hdGNoOjppbnN0YW5jZUZvcihhY3RpdmUpOwor
ICAgIEFTU0VSVChtX2RldGFpbHMtPmlzQWxsb3dlZEZvcihtX3R5cGUpKTsKK30KKworY29uc3Qg
U3RyaW5nJiBEb2N1bWVudE1hcmtlcjo6ZGVzY3JpcHRpb24oKSBjb25zdAoreworICAgIHJldHVy
biBtX2RldGFpbHMgPyBtX2RldGFpbHMtPmRlc2NyaXB0aW9uKCkgOiBlbXB0eURlc2NyaXB0aW9u
KCk7Cit9CisKK2Jvb2wgRG9jdW1lbnRNYXJrZXI6OmFjdGl2ZU1hdGNoKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9kZXRhaWxzICYmIG1fZGV0YWlscy0+YWN0aXZlTWF0Y2goKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50TWFya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaAppbmRleCBk
NjcwZTJjMGIwMzIwMTNjNjMzYWJmNGViYzk4ODQ1ZDUxNGI3OTZmLi43ZDMwMjU0ZDY1NjdhZjUw
ZmFiM2FhOGYxMTJhYTY2OGJhMGUxYmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRNYXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIu
aApAQCAtMjUsMTAgKzI1LDE0IEBACiAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1
bWVudE1hcmtlckRldGFpbHM7CisKIC8vIEEgcmFuZ2Ugb2YgYSBub2RlIHdpdGhpbiBhIGRvY3Vt
ZW50IHRoYXQgaXMgIm1hcmtlZCIsIHN1Y2ggYXMgdGhlIHJhbmdlIG9mIGEgbWlzc3BlbGxlZCB3
b3JkLgogLy8gSXQgb3B0aW9uYWxseSBpbmNsdWRlcyBhIGRlc2NyaXB0aW9uIHRoYXQgY291bGQg
YmUgZGlzcGxheWVkIGluIHRoZSB1c2VyIGludGVyZmFjZS4KIC8vIEl0IGFsc28gb3B0aW9uYWxs
eSBpbmNsdWRlcyBhIGZsYWcgc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBtYXRjaCBpcyBhY3RpdmUs
IHdoaWNoIGlzIGlnbm9yZWQKQEAgLTkwLDE2ICs5NCwxOCBAQCBwdWJsaWM6CiAgICAgRG9jdW1l
bnRNYXJrZXIoTWFya2VyVHlwZSwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9m
ZnNldCk7CiAgICAgRG9jdW1lbnRNYXJrZXIoTWFya2VyVHlwZSwgdW5zaWduZWQgc3RhcnRPZmZz
ZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbik7CiAgICAg
RG9jdW1lbnRNYXJrZXIodW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwg
Ym9vbCBhY3RpdmVNYXRjaCk7CisgICAgRG9jdW1lbnRNYXJrZXIoTWFya2VyVHlwZSwgdW5zaWdu
ZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgUGFzc1JlZlB0cjxEb2N1bWVudE1h
cmtlckRldGFpbHM+KTsKIAogICAgIE1hcmtlclR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dHlwZTsgfQogICAgIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFy
dE9mZnNldDsgfQogICAgIHVuc2lnbmVkIGVuZE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5k
T2Zmc2V0OyB9Ci0gICAgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJu
IG1fZGVzY3JpcHRpb247IH0KLSAgICBib29sIGhhc0Rlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1
cm4gIW1fZGVzY3JpcHRpb24uaXNFbXB0eSgpOyB9Ci0gICAgYm9vbCBhY3RpdmVNYXRjaCgpIGNv
bnN0IHsgcmV0dXJuIG1fYWN0aXZlTWF0Y2g7IH0KKworICAgIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24oKSBjb25zdDsKKyAgICBib29sIGFjdGl2ZU1hdGNoKCkgY29uc3Q7CisgICAgRG9jdW1l
bnRNYXJrZXJEZXRhaWxzKiBkZXRhaWxzKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldEFjdGl2ZU1h
dGNoKGJvb2wpOwotICAgIHZvaWQgY2xlYXJEZXNjcmlwdGlvbigpIHsgbV9kZXNjcmlwdGlvbiA9
IFN0cmluZygpOyB9CisgICAgdm9pZCBjbGVhckRldGFpbHMoKSB7IG1fZGV0YWlscy5jbGVhcigp
OyB9CiAKICAgICAvLyBPZmZzZXQgbW9kaWZpY2F0aW9ucyBhcmUgZG9uZSBieSBEb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuCiAgICAgLy8gT3RoZXIgY2xhc3NlcyBzaG91bGQgbm90IGNhbGwgZm9s
bG93aW5nIHNldHRlcnMuCkBAIC0xMjEsNDIgKzEyNywzMCBAQCBwcml2YXRlOgogICAgIE1hcmtl
clR5cGUgbV90eXBlOwogICAgIHVuc2lnbmVkIG1fc3RhcnRPZmZzZXQ7CiAgICAgdW5zaWduZWQg
bV9lbmRPZmZzZXQ7Ci0gICAgU3RyaW5nIG1fZGVzY3JpcHRpb247Ci0gICAgYm9vbCBtX2FjdGl2
ZU1hdGNoOworICAgIFJlZlB0cjxEb2N1bWVudE1hcmtlckRldGFpbHM+IG1fZGV0YWlsczsKIH07
CiAKLWlubGluZSBEb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJrZXIoKQotICAgIDogbV90eXBl
KFNwZWxsaW5nKSwgbV9zdGFydE9mZnNldCgwKSwgbV9lbmRPZmZzZXQoMCksIG1fYWN0aXZlTWF0
Y2goZmFsc2UpCi17Ci19Ci0KLWlubGluZSBEb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJrZXIo
TWFya2VyVHlwZSB0eXBlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0
KQotICAgIDogbV90eXBlKHR5cGUpLCBtX3N0YXJ0T2Zmc2V0KHN0YXJ0T2Zmc2V0KSwgbV9lbmRP
ZmZzZXQoZW5kT2Zmc2V0KSwgbV9hY3RpdmVNYXRjaChmYWxzZSkKLXsKLX0KLQotaW5saW5lIERv
Y3VtZW50TWFya2VyOjpEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlIHR5cGUsIHVuc2lnbmVkIHN0
YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24p
Ci0gICAgOiBtX3R5cGUodHlwZSksIG1fc3RhcnRPZmZzZXQoc3RhcnRPZmZzZXQpLCBtX2VuZE9m
ZnNldChlbmRPZmZzZXQpLCBtX2Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSwgbV9hY3RpdmVNYXRj
aChmYWxzZSkKK2lubGluZSBEb2N1bWVudE1hcmtlckRldGFpbHMqIERvY3VtZW50TWFya2VyOjpk
ZXRhaWxzKCkgY29uc3QKIHsKLSAgICBBU1NFUlQodHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6R3Jh
bW1hciB8fCBEb2N1bWVudE1hcmtlcjo6QXV0b2NvcnJlY3RlZCk7CisgICAgcmV0dXJuIG1fZGV0
YWlscy5nZXQoKTsKIH0KIAotaW5saW5lIERvY3VtZW50TWFya2VyOjpEb2N1bWVudE1hcmtlcih1
bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBib29sIGFjdGl2ZU1hdGNo
KQotICAgIDogbV90eXBlKERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2gpLCBtX3N0YXJ0T2Zmc2V0
KHN0YXJ0T2Zmc2V0KSwgbV9lbmRPZmZzZXQoZW5kT2Zmc2V0KSwgbV9hY3RpdmVNYXRjaChhY3Rp
dmVNYXRjaCkKKy8vIEEgc3VwZXJjbGFzcyBvZiBtYXJrZXIgdHlwZSBzcGVjaWZpYyBtZXRhZGF0
YS4KKy8vCisvLyBOb3RlIHRoYXQgZXZlcnkgZGV0YWlscyBzdWJjbGFzc2VzIHNob3VsZCBrbm93
IGFib3V0IGRlc2NyaXB0aW9uCisvLyBhbmQgYWN0aXZlTWF0Y2ggYXMgYSBsZWFzdCBjb21tb24g
ZGVub21pbmF0b3IuCitjbGFzcyBEb2N1bWVudE1hcmtlckRldGFpbHMgOiBwdWJsaWMgUmVmQ291
bnRlZDxEb2N1bWVudE1hcmtlckRldGFpbHM+CiB7Ci19CitwdWJsaWM6CisgICAgRG9jdW1lbnRN
YXJrZXJEZXRhaWxzKCk7CisgICAgdmlydHVhbCB+RG9jdW1lbnRNYXJrZXJEZXRhaWxzKCk7CiAK
LWlubGluZSB2b2lkIERvY3VtZW50TWFya2VyOjpzaGlmdE9mZnNldHMoaW50IGRlbHRhKQotewot
ICAgIG1fc3RhcnRPZmZzZXQgKz0gZGVsdGE7Ci0gICAgbV9lbmRPZmZzZXQgKz0gIGRlbHRhOwot
fQorICAgIGJvb2wgaXNBbGxvd2VkRm9yKERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlIHR5cGUp
IGNvbnN0IHsgcmV0dXJuIGNvbXBhdGlibGVUeXBlcygpLmNvbnRhaW5zKHR5cGUpOyB9CiAKLWlu
bGluZSB2b2lkIERvY3VtZW50TWFya2VyOjpzZXRBY3RpdmVNYXRjaChib29sIGFjdGl2ZSkKLXsK
LSAgICBBU1NFUlQobV90eXBlID09IERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2gpOwotICAgIG1f
YWN0aXZlTWF0Y2ggPSBhY3RpdmU7Ci19CisgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGFjdGl2ZU1hdGNoKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZXMgY29tcGF0aWJsZVR5cGVzKCkg
Y29uc3QgPSAwOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCmluZGV4IGM4ZjExNjNhYWU0
Y2MwM2ZmMjBkMmYxODJjZTBkYzNkMGI0ZWI0NDIuLjFlN2FjMWQyMTRjMzYyYTRlZGU1MTRhMDYz
NGI5Y2EwNDkxNTRlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtl
ckNvbnRyb2xsZXIuY3BwCkBAIC02NTIsNyArNjUyLDcgQEAgdm9pZCBEb2N1bWVudE1hcmtlckNv
bnRyb2xsZXI6OmNsZWFyRGVzY3JpcHRpb25Pbk1hcmtlcnNJbnRlcnNlY3RpbmdSYW5nZShSYW5n
ZSoKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgbWFya2VyLmNsZWFyRGVzY3JpcHRpb24oKTsKKyAgICAgICAgICAgIG1hcmtlci5jbGVhckRl
dGFpbHMoKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggODEyMzc1ZjczOTU5NTM1ZmQxNGEwZWIw
ODdkYWM0NDQ4MGM5MGFmMy4uYTUyYjdiM2UxNzAzNDQzZjE1MDk5ZmZiM2JkMjJhY2E1ZWQ5MzFh
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5j
cHAKQEAgLTM1MywxMiArMzUzLDggQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFj
ZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNzUmVmUHRyPFRleHQ+IHAKICAgICBjb3B5
TWFya2VycyhtYXJrZXJDb250cm9sbGVyLT5tYXJrZXJzSW5SYW5nZShSYW5nZTo6Y3JlYXRlKGRv
Y3VtZW50KCksIG5vZGUsIG9mZnNldCwgbm9kZSwgb2Zmc2V0ICsgY291bnQpLmdldCgpLCBEb2N1
bWVudE1hcmtlcjo6QWxsTWFya2VycygpKSwgbWFya2Vycyk7CiAgICAgcmVwbGFjZVRleHRJbk5v
ZGUobm9kZSwgb2Zmc2V0LCBjb3VudCwgcmVwbGFjZW1lbnRUZXh0KTsKICAgICBSZWZQdHI8UmFu
Z2U+IG5ld1JhbmdlID0gUmFuZ2U6OmNyZWF0ZShkb2N1bWVudCgpLCBub2RlLCBvZmZzZXQsIG5v
ZGUsIG9mZnNldCArIHJlcGxhY2VtZW50VGV4dC5sZW5ndGgoKSk7Ci0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtYXJrZXJzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChtYXJrZXJzW2ld
Lmhhc0Rlc2NyaXB0aW9uKCkpCi0gICAgICAgICAgICBtYXJrZXJDb250cm9sbGVyLT5hZGRNYXJr
ZXIobmV3UmFuZ2UuZ2V0KCksIG1hcmtlcnNbaV0udHlwZSgpLCBtYXJrZXJzW2ldLmRlc2NyaXB0
aW9uKCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtYXJrZXJDb250cm9sbGVyLT5hZGRN
YXJrZXIobmV3UmFuZ2UuZ2V0KCksIG1hcmtlcnNbaV0udHlwZSgpKTsKLSAgICB9CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBtYXJrZXJzLnNpemUoKTsgKytpKQorICAgICAgICBtYXJrZXJD
b250cm9sbGVyLT5hZGRNYXJrZXIobmV3UmFuZ2UuZ2V0KCksIG1hcmtlcnNbaV0udHlwZSgpLCBt
YXJrZXJzW2ldLmRlc2NyaXB0aW9uKCkpOwogfQogCiBQb3NpdGlvbiBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6cG9zaXRpb25PdXRzaWRlVGFiU3Bhbihjb25zdCBQb3NpdGlvbiYgcG9zKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102741</attachid>
            <date>2011-08-02 22:51:08 -0700</date>
            <delta_ts>2011-08-04 18:50:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59855-20110803145106.patch</filename>
            <type>text/plain</type>
            <size>23049</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIyNjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNTNiZWRi
NGI5NDY4OTc0ZDU1MDUzMmZlZjlkNzFhMTQzOWViMzgyNi4uYjFhNmE5YTBmMDk1OTU4YmQ4YTQ4
MGVlOGFhN2I0MTczOWFlZmU4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTUxNSw2ICs1MTUs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwCiAgICAgZG9tL0RvY3VtZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwCisgICAgZG9tL0RvY3VtZW50TWFya2VyLmNwcAogICAgIGRvbS9Eb2N1bWVudEZyYWdt
ZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudFBhcnNlci5jcHAKICAgICBkb20vRG9jdW1lbnRPcmRl
cmVkTWFwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGNiM2Q1NWRhNTZlYTNjYjllNmViNTNmMzZlMzQ3NWJh
M2M1MDdjNTguLmI4NDJjMDljNmE5ZDE1NzYzZjIzZGRjZGY4MzljZTMyMDczMzAyZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMS0wOC0wMSAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEb2N1bWVudE1hcmtlcjogVHlwZSBzcGVjaWZpYyBkZXRhaWxzIHNob3VsZCBiZSBz
ZXBhcmF0ZWx5IGhlbGQgYnkgb3RoZXIgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk4NTUKKworICAgICAgICAtIEludHJvZHVjZWQgRG9j
dW1lbnRNYXJrZXJEZXRhaWxzIGFic3RyYWN0IGNsYXNzIGFuZCB0d28gaXRzIHN1YmNsYXNzZXMK
KyAgICAgICAgICBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uIGFuZCBEb2N1bWVudE1hcmtlckFj
dGl2ZU1hdGNoLAorICAgICAgICAKKyAgICAgICAgLSBSZXBsYWNpbmcgRG9jdW1lbnRNYXJrZXI6
Om1fZGVzY3JpcHRpb24gYW5kCisgICAgICAgICAgRG9jdW1lbnRNYXJrZXI6Om1fYWN0aXZlTWF0
Y2ggd2l0aCB0aGVzZSBuZXcgZGV0YWlscyBjbGFzc2VzLgorICAgICAgICAKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRN
YXJrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmVtcHR5RGVzY3JpcHRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjpEb2N1bWVudE1hcmtlckRl
dGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjp+RG9jdW1l
bnRNYXJrZXJEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGVzY3Jp
cHRpb246OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGVz
Y3JpcHRpb246OmlzRGVzY3JpcHRpb24pOiAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudE1hcmtlckRlc2NyaXB0aW9uOjpEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNyZWF0ZVVubGVzc0VtcHR5
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNvbXBhdGli
bGVUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlclRleHRNYXRjaDo6YWN0
aXZlTWF0Y2gpOiAgICAKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyVGV4dE1hdGNo
Ojppc1RleHRNYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlclRleHRNYXRj
aDo6RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRN
YXJrZXJUZXh0TWF0Y2g6Omluc3RhbmNlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TWFya2VyVGV4dE1hdGNoOjpjb21wYXRpYmxlVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TWFya2VyOjpzaGlmdE9mZnNldHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6
OnNldEFjdGl2ZU1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpkZXNj
cmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6YWN0aXZlTWF0Y2gp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlci5oOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnRNYXJrZXI6OmRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6
OmNsZWFyRGV0YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckRldGFpbHM6
OmlzRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxz
Ojppc1RleHRNYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckRldGFpbHM6
OmlzQWxsb3dlZEZvcik6CisgICAgICAgICogZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OmNsZWFyRGVz
Y3JpcHRpb25Pbk1hcmtlcnNJbnRlcnNlY3RpbmdSYW5nZSk6CisgICAgICAgICogZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0
Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2Vycyk6CisKIDIwMTEtMDgt
MDIgIFByYXRpayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNo
IGluIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ29tcGFyZSgpIHdpdGggVVNFKENGTkVUV09S
SykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGIzODhhMzY5OWRiNjZhNmNmNGRk
Zjk5MGE5YjMzYmQ2NTQ0YzZmZTIuLmY5MmU4OGY0ZWYxZTRiMzgwMThlY2NhODlhNGQ0NmY5ZGE0
N2QzYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTEyNiw2ICsxMTI2LDcg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBcCisJU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50TWFya2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRPcmRlcmVkTWFwLmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IGIxNDBhZDg4ODBhYmNmOWI1ODQ5YTZkYTc0NWNkZmQ0MGY0NGIyM2IuLmE5ZjM0
MThiMzUzNTE1NzkwMmQ4YWVlMmY1ODkwYjQ3M2IyNmYxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTUyNTgsNiArNTI1OCw3IEBACiAgICAgICAgICAgICAnZG9tL0RvY3VtZW50LmNwcCcsCiAgICAg
ICAgICAgICAnZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwJywKICAgICAgICAgICAgICdkb20vRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCcsCisgICAgICAgICAgICAnZG9tL0RvY3VtZW50TWFy
a2VyLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5jcHAnLAogICAg
ICAgICAgICAgJ2RvbS9Eb2N1bWVudFBhcnNlci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1
bWVudFR5cGUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggN2EzYmVmMTZmNTc2ZDYzYmI0MjQ1ODcw
NWJmMzYxYjg2YzRjN2ExZi4uZDQ5NzI4NDRhM2E2ZjM0ODdjNzljZWRlNjE2ODdiNjRkZGQxNmM3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8KQEAgLTQ3OCw2ICs0NzgsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBk
b20vRG9jdW1lbnQuY3BwIFwKICAgICBkb20vRG9jdW1lbnRGcmFnbWVudC5jcHAgXAogICAgIGRv
bS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIFwKKyAgICBkb20vRG9jdW1lbnRNYXJrZXIu
Y3BwIFwKICAgICBkb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCBcCiAgICAgZG9tL0RvY3VtZW50
UGFyc2VyLmNwcCBcCiAgICAgZG9tL0RvY3VtZW50VHlwZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA5MWYyZmE1MmUzMTgxZTdmMTRh
MWZjMzllYWUzMjcyNDEwYTNlZmU0Li40YWNjYzNjODcwYWVmYWViNjY3NjA3ZWZhMDMwMWU2Yzg1
NGIxNTU1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtNDQ2NDIsNiArNDQ2NDIsNTggQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQor
CQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERvY3VtZW50TWFya2VyLmNwcCIKKwkJCQk+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMy
IgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCU5hbWU9IlByb2R1Y3Rpb258V2luMzIi
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQk+CisJCQkJCTxUb29sCisJCQkJ
CQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkvPgorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERvY3Vt
ZW50T3JkZXJlZE1hcC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY4
MjE5NTk0NWExYjhmZjExYTkxMTEyMzZiZGMxZmUzZmMxZTBmMmIuLjI2ZGUxMTlhYTNjMzE0YWNk
NTE4YTFkMmEwMzBiYjg4NTk0YWVkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMzNjAsNiArMzM2MCw3IEBACiAJCUE3Nzk3
OTI5MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3OTc5MjUwRDZCOUU2NDAwMzg1MUI5IC8qIEpT
SW1hZ2VEYXRhLmggKi87IH07CiAJCUE3N0I0MUEwMTJFNjc1QTkwMDU0MzQzRCAvKiBUZXh0RXZl
bnRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3N0I0MTlGMTJFNjc1QTkwMDU0MzQzRCAvKiBUZXh0RXZlbnRJbnB1dFR5cGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzdEMDAxMjEz
M0IwQUVCMDBENjY1OEMgLyogVGV4dENoZWNraW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzdEMDAxMTEzM0IwQUVCMDBENjY1OEMgLyogVGV4dENo
ZWNraW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJQTc4MUM2QTcxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODFDNkE2MTM4MjhCNUQw
MDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAgKi87IH07CiAJCUE3ODQ5NDFCMEI1RkU1MDcw
MDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAg
Ki87IH07CiAJCUE3OEU1MjZGMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc4RTUy
NkQxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxlbWVudC5jcHAgKi87IH07CiAJCUE3
OEU1MjcwMTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEU1MjZFMTM0NkJEMTcwMEFE
OUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuaCAqLzsgfTsKQEAgLTk5NDAsNiArOTk0MSw3IEBA
CiAJCUE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ltYWdlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNzdCNDE5RjEyRTY3NUE5MDA1NDM0M0QgLyogVGV4dEV2ZW50SW5wdXRUeXBl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRFdmVudElucHV0VHlwZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzdEMDAxMTEzM0IwQUVCMDBENjY1OEMg
LyogVGV4dENoZWNraW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRD
aGVja2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzgxQzZBNjEzODI4QjVE
MDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRG9jdW1lbnRNYXJrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNzg0OTQxQTBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJkLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDbGlwYm9hcmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBNzhFNTI2RDEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dF
bGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1ldGVyU2hh
ZG93RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3OEU1MjZFMTM0
NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTWV0ZXJTaGFkb3dFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xOTcxOCw2ICsxOTcyMCw3IEBACiAJCQkJNTlBODVFQTExMTlENjhEOTAwREVG
MUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwICovLAogCQkJCTU5QTg1RUEzMTE5RDY4
RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggKi8sCiAJCQkJNTlBODVFQUEx
MTlEN0I2RTAwREVGMUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsICovLAorCQkJCUE3
ODFDNkE2MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAgKi8sCiAJCQkJQTgx
ODVGMzQwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3VtZW50LmNwcCAqLywKIAkJCQlBODE4NUYzODA5
NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnQuaCAqLywKIAkJCQk2NTQ4RTI0ODA5RTFFMDREMDBB
RjgwMjAgLyogRG9jdW1lbnQuaWRsICovLApAQCAtMjM4ODMsNiArMjM4ODYsNyBAQAogCQkJCUE4
MTg1RjNGMDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1bWVudEZyYWdtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzRTIyN0UwMEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQzI2NDk3QTBEN0UyNDhBMDBCRDEwRjIgLyogRG9jdW1lbnRM
b2FkZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTc4MUM2QTcxMzgyOEI1RDAwMTJBNjJB
IC8qIERvY3VtZW50TWFya2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNFMDU3RkE1MTIyMDcz
MTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMTQ5NDdGRkQxMkY4MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3JkZXJlZE1hcC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBOEMyMjgwRTExRDRBNTk3MDBENUE3RDMgLyogRG9jdW1lbnRQ
YXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRl
eCAzYWQxNTY2ZTY3M2QyN2ZiOTEyMDliZTY2YTRmZDk3MzE5N2E2ZGY3Li4zNDJjY2ExN2JiNWEw
ZWQwMTUyODlmZDUyNTQ3MGJjMzg3OThkZjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5j
cHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNw
cCIKICNpbmNsdWRlICJEb2N1bWVudC5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5j
cHAiCisjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXIuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCIKICNp
bmNsdWRlICJEb2N1bWVudFBhcnNlci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRNYXJrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2Vy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hMWM1MjY2Y2Q0ODQxYmE3MGQ3MGM5NGMwZGVhYzA0NTQ5NTNlOTcz
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNw
cApAQCAtMCwwICsxLDE3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dE1hcmtlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RvY3VtZW50TWFya2VyRGV0YWls
czo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzKCkKK3sKK30KKworRG9jdW1lbnRNYXJrZXJEZXRhaWxz
Ojp+RG9jdW1lbnRNYXJrZXJEZXRhaWxzKCkKK3sKK30KKworY2xhc3MgRG9jdW1lbnRNYXJrZXJE
ZXNjcmlwdGlvbiA6IHB1YmxpYyBEb2N1bWVudE1hcmtlckRldGFpbHMgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24+IGNyZWF0ZVVubGVz
c0VtcHR5KGNvbnN0IFN0cmluZyYpOworCisgICAgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fZGVzY3JpcHRpb247IH0KKworICAgIHZpcnR1YWwgYm9vbCBpc0Rl
c2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgRG9jdW1lbnRN
YXJrZXI6Ok1hcmtlclR5cGVzIGNvbXBhdGlibGVUeXBlcygpIGNvbnN0OworCitwcml2YXRlOgor
ICAgIERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24oY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikK
KyAgICAgICAgOiBtX2Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKQorICAgIHsKKyAgICB9CisKKyAg
ICBTdHJpbmcgbV9kZXNjcmlwdGlvbjsKK307CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRNYXJrZXJE
ZXNjcmlwdGlvbj4gRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbjo6Y3JlYXRlVW5sZXNzRW1wdHko
Y29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbikKK3sKKyAgICBpZiAoZGVzY3JpcHRpb24uaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IERvY3VtZW50
TWFya2VyRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pKTsKK30KKworRG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGVzIERvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNvbXBhdGlibGVUeXBlcygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIChEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcKKyAgICAgICAgICAg
IHwgRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIKKyAgICAgICAgICAgIHwgRG9jdW1lbnRNYXJrZXI6
OlJlcGxhY2VtZW50CisgICAgICAgICAgICB8IERvY3VtZW50TWFya2VyOjpBdXRvY29ycmVjdGVk
CisgICAgICAgICAgICB8IERvY3VtZW50TWFya2VyOjpEZWxldGVkQXV0b2NvcnJlY3Rpb24pOwor
fQorCitpbmxpbmUgRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbiogdG9Eb2N1bWVudE1hcmtlckRl
c2NyaXB0aW9uKERvY3VtZW50TWFya2VyRGV0YWlscyogZGV0YWlscykKK3sKKyAgICBpZiAoZGV0
YWlscyAmJiBkZXRhaWxzLT5pc0Rlc2NyaXB0aW9uKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uKj4oZGV0YWlscyk7CisgICAgcmV0dXJuIDA7
Cit9CisKKworY2xhc3MgRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2ggOiBwdWJsaWMgRG9jdW1lbnRN
YXJrZXJEZXRhaWxzIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudE1h
cmtlclRleHRNYXRjaD4gaW5zdGFuY2VGb3IoYm9vbCk7CisKKyAgICBib29sIGFjdGl2ZU1hdGNo
KCkgY29uc3QgeyByZXR1cm4gbV9tYXRjaDsgfQorCisgICAgdmlydHVhbCBib29sIGlzVGV4dE1h
dGNoKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgRG9jdW1lbnRNYXJrZXI6
Ok1hcmtlclR5cGVzIGNvbXBhdGlibGVUeXBlcygpIGNvbnN0OworCitwcml2YXRlOgorICAgIGV4
cGxpY2l0IERvY3VtZW50TWFya2VyVGV4dE1hdGNoKGJvb2wgbWF0Y2gpCisgICAgICAgIDogbV9t
YXRjaChtYXRjaCkKKyAgICB7CisgICAgfQorCisgICAgYm9vbCBtX21hdGNoOworfTsKKworUGFz
c1JlZlB0cjxEb2N1bWVudE1hcmtlclRleHRNYXRjaD4gRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6
Omluc3RhbmNlRm9yKGJvb2wgbWF0Y2gpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQ
dHI8RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g+LCB0cnVlSW5zdGFuY2UsIChhZG9wdFJlZihuZXcg
RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2godHJ1ZSkpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChSZWZQdHI8RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g+LCBmYWxzZUluc3RhbmNlLCAoYWRvcHRS
ZWYobmV3IERvY3VtZW50TWFya2VyVGV4dE1hdGNoKGZhbHNlKSkpKTsKKyAgICByZXR1cm4gbWF0
Y2ggPyB0cnVlSW5zdGFuY2UgOiBmYWxzZUluc3RhbmNlOworfQorCitEb2N1bWVudE1hcmtlcjo6
TWFya2VyVHlwZXMgRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6OmNvbXBhdGlibGVUeXBlcygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2g7Cit9CisKK2lubGlu
ZSBEb2N1bWVudE1hcmtlclRleHRNYXRjaCogdG9Eb2N1bWVudE1hcmtlclRleHRNYXRjaChEb2N1
bWVudE1hcmtlckRldGFpbHMqIGRldGFpbHMpCit7CisgICAgaWYgKGRldGFpbHMgJiYgZGV0YWls
cy0+aXNUZXh0TWF0Y2goKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PERvY3VtZW50TWFy
a2VyVGV4dE1hdGNoKj4oZGV0YWlscyk7CisgICAgcmV0dXJuIDA7Cit9CisKKworRG9jdW1lbnRN
YXJrZXI6OkRvY3VtZW50TWFya2VyKCkgCisgICAgOiBtX3R5cGUoU3BlbGxpbmcpLCBtX3N0YXJ0
T2Zmc2V0KDApLCBtX2VuZE9mZnNldCgwKQoreworfQorCitEb2N1bWVudE1hcmtlcjo6RG9jdW1l
bnRNYXJrZXIoTWFya2VyVHlwZSB0eXBlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQg
ZW5kT2Zmc2V0KQorICAgIDogbV90eXBlKHR5cGUpLCBtX3N0YXJ0T2Zmc2V0KHN0YXJ0T2Zmc2V0
KSwgbV9lbmRPZmZzZXQoZW5kT2Zmc2V0KQoreworfQorCitEb2N1bWVudE1hcmtlcjo6RG9jdW1l
bnRNYXJrZXIoTWFya2VyVHlwZSB0eXBlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQg
ZW5kT2Zmc2V0LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQorICAgIDogbV90eXBlKHR5cGUp
LCBtX3N0YXJ0T2Zmc2V0KHN0YXJ0T2Zmc2V0KSwgbV9lbmRPZmZzZXQoZW5kT2Zmc2V0KSwgbV9k
ZXRhaWxzKERvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNyZWF0ZVVubGVzc0VtcHR5KGRlc2Ny
aXB0aW9uKSkKK3sKKyAgICBBU1NFUlQoIW1fZGV0YWlscyB8fCBtX2RldGFpbHMtPmlzQWxsb3dl
ZEZvcihtX3R5cGUpKTsKK30KKworRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKHVuc2ln
bmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGJvb2wgYWN0aXZlTWF0Y2gpCisg
ICAgOiBtX3R5cGUoRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCksIG1fc3RhcnRPZmZzZXQoc3Rh
cnRPZmZzZXQpLCBtX2VuZE9mZnNldChlbmRPZmZzZXQpLCBtX2RldGFpbHMoRG9jdW1lbnRNYXJr
ZXJUZXh0TWF0Y2g6Omluc3RhbmNlRm9yKGFjdGl2ZU1hdGNoKSkKK3sKKyAgICBBU1NFUlQobV9k
ZXRhaWxzLT5pc0FsbG93ZWRGb3IobV90eXBlKSk7Cit9CisKK0RvY3VtZW50TWFya2VyOjpEb2N1
bWVudE1hcmtlcihNYXJrZXJUeXBlIHR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25l
ZCBlbmRPZmZzZXQsIFBhc3NSZWZQdHI8RG9jdW1lbnRNYXJrZXJEZXRhaWxzPiBkZXRhaWxzKQor
ICAgIDogbV90eXBlKHR5cGUpLCBtX3N0YXJ0T2Zmc2V0KHN0YXJ0T2Zmc2V0KSwgbV9lbmRPZmZz
ZXQoZW5kT2Zmc2V0KSwgbV9kZXRhaWxzKGRldGFpbHMpCit7CisgICAgQVNTRVJUKCFtX2RldGFp
bHMgfHwgbV9kZXRhaWxzLT5pc0FsbG93ZWRGb3IobV90eXBlKSk7Cit9CisKK3ZvaWQgRG9jdW1l
bnRNYXJrZXI6OnNoaWZ0T2Zmc2V0cyhpbnQgZGVsdGEpCit7CisgICAgbV9zdGFydE9mZnNldCAr
PSBkZWx0YTsKKyAgICBtX2VuZE9mZnNldCArPSAgZGVsdGE7Cit9CisKK3ZvaWQgRG9jdW1lbnRN
YXJrZXI6OnNldEFjdGl2ZU1hdGNoKGJvb2wgYWN0aXZlKQoreworICAgIG1fZGV0YWlscyA9IERv
Y3VtZW50TWFya2VyVGV4dE1hdGNoOjppbnN0YW5jZUZvcihhY3RpdmUpOworICAgIEFTU0VSVCht
X2RldGFpbHMtPmlzQWxsb3dlZEZvcihtX3R5cGUpKTsKK30KKworY29uc3QgU3RyaW5nJiBEb2N1
bWVudE1hcmtlcjo6ZGVzY3JpcHRpb24oKSBjb25zdAoreworICAgIGlmIChEb2N1bWVudE1hcmtl
ckRlc2NyaXB0aW9uKiBkZXRhaWxzID0gdG9Eb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uKG1fZGV0
YWlscy5nZXQoKSkpCisgICAgICAgIHJldHVybiBkZXRhaWxzLT5kZXNjcmlwdGlvbigpOworICAg
IHJldHVybiBlbXB0eVN0cmluZygpOworfQorCitib29sIERvY3VtZW50TWFya2VyOjphY3RpdmVN
YXRjaCgpIGNvbnN0Cit7CisgICAgaWYgKERvY3VtZW50TWFya2VyVGV4dE1hdGNoKiBkZXRhaWxz
ID0gdG9Eb2N1bWVudE1hcmtlclRleHRNYXRjaChtX2RldGFpbHMuZ2V0KCkpKQorICAgICAgICBy
ZXR1cm4gZGV0YWlscy0+YWN0aXZlTWF0Y2goKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudE1hcmtlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmgKaW5kZXgg
ZDY3MGUyYzBiMDMyMDEzYzYzM2FiZjRlYmM5ODg0NWQ1MTRiNzk2Zi4uMWQ1MjNlZDI2ZWJmOGJl
YmY0OTk1NjE3NWFkYzI4NzlkZjNjNGIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50TWFya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2Vy
LmgKQEAgLTI1LDEwICsyNSwxNCBAQAogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9j
dW1lbnRNYXJrZXJEZXRhaWxzOworCiAvLyBBIHJhbmdlIG9mIGEgbm9kZSB3aXRoaW4gYSBkb2N1
bWVudCB0aGF0IGlzICJtYXJrZWQiLCBzdWNoIGFzIHRoZSByYW5nZSBvZiBhIG1pc3NwZWxsZWQg
d29yZC4KIC8vIEl0IG9wdGlvbmFsbHkgaW5jbHVkZXMgYSBkZXNjcmlwdGlvbiB0aGF0IGNvdWxk
IGJlIGRpc3BsYXllZCBpbiB0aGUgdXNlciBpbnRlcmZhY2UuCiAvLyBJdCBhbHNvIG9wdGlvbmFs
bHkgaW5jbHVkZXMgYSBmbGFnIHNwZWNpZnlpbmcgd2hldGhlciB0aGUgbWF0Y2ggaXMgYWN0aXZl
LCB3aGljaCBpcyBpZ25vcmVkCkBAIC05MCwxNiArOTQsMTggQEAgcHVibGljOgogICAgIERvY3Vt
ZW50TWFya2VyKE1hcmtlclR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRP
ZmZzZXQpOwogICAgIERvY3VtZW50TWFya2VyKE1hcmtlclR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zm
c2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pOwogICAg
IERvY3VtZW50TWFya2VyKHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQs
IGJvb2wgYWN0aXZlTWF0Y2gpOworICAgIERvY3VtZW50TWFya2VyKE1hcmtlclR5cGUsIHVuc2ln
bmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIFBhc3NSZWZQdHI8RG9jdW1lbnRN
YXJrZXJEZXRhaWxzPik7CiAKICAgICBNYXJrZXJUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGU7IH0KICAgICB1bnNpZ25lZCBzdGFydE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
cnRPZmZzZXQ7IH0KICAgICB1bnNpZ25lZCBlbmRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2Vu
ZE9mZnNldDsgfQotICAgIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVy
biBtX2Rlc2NyaXB0aW9uOyB9Ci0gICAgYm9vbCBoYXNEZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0
dXJuICFtX2Rlc2NyaXB0aW9uLmlzRW1wdHkoKTsgfQotICAgIGJvb2wgYWN0aXZlTWF0Y2goKSBj
b25zdCB7IHJldHVybiBtX2FjdGl2ZU1hdGNoOyB9CisKKyAgICBjb25zdCBTdHJpbmcmIGRlc2Ny
aXB0aW9uKCkgY29uc3Q7CisgICAgYm9vbCBhY3RpdmVNYXRjaCgpIGNvbnN0OworICAgIERvY3Vt
ZW50TWFya2VyRGV0YWlscyogZGV0YWlscygpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRBY3RpdmVN
YXRjaChib29sKTsKLSAgICB2b2lkIGNsZWFyRGVzY3JpcHRpb24oKSB7IG1fZGVzY3JpcHRpb24g
PSBTdHJpbmcoKTsgfQorICAgIHZvaWQgY2xlYXJEZXRhaWxzKCkgeyBtX2RldGFpbHMuY2xlYXIo
KTsgfQogCiAgICAgLy8gT2Zmc2V0IG1vZGlmaWNhdGlvbnMgYXJlIGRvbmUgYnkgRG9jdW1lbnRN
YXJrZXJDb250cm9sbGVyLgogICAgIC8vIE90aGVyIGNsYXNzZXMgc2hvdWxkIG5vdCBjYWxsIGZv
bGxvd2luZyBzZXR0ZXJzLgpAQCAtMTIxLDQyICsxMjcsMzAgQEAgcHJpdmF0ZToKICAgICBNYXJr
ZXJUeXBlIG1fdHlwZTsKICAgICB1bnNpZ25lZCBtX3N0YXJ0T2Zmc2V0OwogICAgIHVuc2lnbmVk
IG1fZW5kT2Zmc2V0OwotICAgIFN0cmluZyBtX2Rlc2NyaXB0aW9uOwotICAgIGJvb2wgbV9hY3Rp
dmVNYXRjaDsKKyAgICBSZWZQdHI8RG9jdW1lbnRNYXJrZXJEZXRhaWxzPiBtX2RldGFpbHM7CiB9
OwogCi1pbmxpbmUgRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKCkKLSAgICA6IG1fdHlw
ZShTcGVsbGluZyksIG1fc3RhcnRPZmZzZXQoMCksIG1fZW5kT2Zmc2V0KDApLCBtX2FjdGl2ZU1h
dGNoKGZhbHNlKQotewotfQotCi1pbmxpbmUgRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2Vy
KE1hcmtlclR5cGUgdHlwZSwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNl
dCkKLSAgICA6IG1fdHlwZSh0eXBlKSwgbV9zdGFydE9mZnNldChzdGFydE9mZnNldCksIG1fZW5k
T2Zmc2V0KGVuZE9mZnNldCksIG1fYWN0aXZlTWF0Y2goZmFsc2UpCi17Ci19Ci0KLWlubGluZSBE
b2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJrZXIoTWFya2VyVHlwZSB0eXBlLCB1bnNpZ25lZCBz
dGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
KQotICAgIDogbV90eXBlKHR5cGUpLCBtX3N0YXJ0T2Zmc2V0KHN0YXJ0T2Zmc2V0KSwgbV9lbmRP
ZmZzZXQoZW5kT2Zmc2V0KSwgbV9kZXNjcmlwdGlvbihkZXNjcmlwdGlvbiksIG1fYWN0aXZlTWF0
Y2goZmFsc2UpCitpbmxpbmUgRG9jdW1lbnRNYXJrZXJEZXRhaWxzKiBEb2N1bWVudE1hcmtlcjo6
ZGV0YWlscygpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKHR5cGUgPT0gRG9jdW1lbnRNYXJrZXI6Okdy
YW1tYXIgfHwgRG9jdW1lbnRNYXJrZXI6OkF1dG9jb3JyZWN0ZWQpOworICAgIHJldHVybiBtX2Rl
dGFpbHMuZ2V0KCk7CiB9CiAKLWlubGluZSBEb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJrZXIo
dW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgYm9vbCBhY3RpdmVNYXRj
aCkKLSAgICA6IG1fdHlwZShEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKSwgbV9zdGFydE9mZnNl
dChzdGFydE9mZnNldCksIG1fZW5kT2Zmc2V0KGVuZE9mZnNldCksIG1fYWN0aXZlTWF0Y2goYWN0
aXZlTWF0Y2gpCisvLyBBIHN1cGVyY2xhc3Mgb2YgbWFya2VyIHR5cGUgc3BlY2lmaWMgbWV0YWRh
dGEuCisvLworLy8gTm90ZSB0aGF0IGV2ZXJ5IGRldGFpbHMgc3ViY2xhc3NlcyBzaG91bGQga25v
dyBhYm91dCBkZXNjcmlwdGlvbgorLy8gYW5kIGFjdGl2ZU1hdGNoIGFzIGEgbGVhc3QgY29tbW9u
IGRlbm9taW5hdG9yLgorY2xhc3MgRG9jdW1lbnRNYXJrZXJEZXRhaWxzIDogcHVibGljIFJlZkNv
dW50ZWQ8RG9jdW1lbnRNYXJrZXJEZXRhaWxzPgogewotfQorcHVibGljOgorICAgIERvY3VtZW50
TWFya2VyRGV0YWlscygpOworICAgIHZpcnR1YWwgfkRvY3VtZW50TWFya2VyRGV0YWlscygpOwog
Ci1pbmxpbmUgdm9pZCBEb2N1bWVudE1hcmtlcjo6c2hpZnRPZmZzZXRzKGludCBkZWx0YSkKLXsK
LSAgICBtX3N0YXJ0T2Zmc2V0ICs9IGRlbHRhOwotICAgIG1fZW5kT2Zmc2V0ICs9ICBkZWx0YTsK
LX0KKyAgICBib29sIGlzQWxsb3dlZEZvcihEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSB0eXBl
KSBjb25zdCB7IHJldHVybiBjb21wYXRpYmxlVHlwZXMoKS5jb250YWlucyh0eXBlKTsgfQogCi1p
bmxpbmUgdm9pZCBEb2N1bWVudE1hcmtlcjo6c2V0QWN0aXZlTWF0Y2goYm9vbCBhY3RpdmUpCi17
Ci0gICAgQVNTRVJUKG1fdHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKTsKLSAgICBt
X2FjdGl2ZU1hdGNoID0gYWN0aXZlOwotfQorICAgIHZpcnR1YWwgYm9vbCBpc0Rlc2NyaXB0aW9u
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0TWF0Y2go
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgRG9jdW1lbnRNYXJrZXI6Ok1h
cmtlclR5cGVzIGNvbXBhdGlibGVUeXBlcygpIGNvbnN0ID0gMDsKK307CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLmNwcAppbmRleCBjOGYxMTYzYWFlNGNjMDNmZjIwZDJmMTgyY2UwZGMzZDBiNGViNDQy
Li4xZTdhYzFkMjE0YzM2MmE0ZWRlNTE0YTA2MzRiOWNhMDQ5MTU0ZTE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcApAQCAtNjUyLDcgKzY1
Miw3IEBAIHZvaWQgRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjpjbGVhckRlc2NyaXB0aW9uT25N
YXJrZXJzSW50ZXJzZWN0aW5nUmFuZ2UoUmFuZ2UqCiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIG1hcmtlci5jbGVhckRlc2NyaXB0aW9uKCk7
CisgICAgICAgICAgICBtYXJrZXIuY2xlYXJEZXRhaWxzKCk7CiAgICAgICAgIH0KICAgICB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmlu
ZGV4IDgxMjM3NWY3Mzk1OTUzNWZkMTRhMGViMDg3ZGFjNDQ0ODBjOTBhZjMuLmE1MmI3YjNlMTcw
MzQ0M2YxNTA5OWZmYjNiZDIyYWNhNWVkOTMxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0zNTMsMTIgKzM1Myw4IEBAIHZvaWQg
Q29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VUZXh0SW5Ob2RlUHJlc2VydmluZ01hcmtlcnMo
UGFzc1JlZlB0cjxUZXh0PiBwCiAgICAgY29weU1hcmtlcnMobWFya2VyQ29udHJvbGxlci0+bWFy
a2Vyc0luUmFuZ2UoUmFuZ2U6OmNyZWF0ZShkb2N1bWVudCgpLCBub2RlLCBvZmZzZXQsIG5vZGUs
IG9mZnNldCArIGNvdW50KS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMoKSksIG1h
cmtlcnMpOwogICAgIHJlcGxhY2VUZXh0SW5Ob2RlKG5vZGUsIG9mZnNldCwgY291bnQsIHJlcGxh
Y2VtZW50VGV4dCk7CiAgICAgUmVmUHRyPFJhbmdlPiBuZXdSYW5nZSA9IFJhbmdlOjpjcmVhdGUo
ZG9jdW1lbnQoKSwgbm9kZSwgb2Zmc2V0LCBub2RlLCBvZmZzZXQgKyByZXBsYWNlbWVudFRleHQu
bGVuZ3RoKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWFya2Vycy5zaXplKCk7ICsr
aSkgewotICAgICAgICBpZiAobWFya2Vyc1tpXS5oYXNEZXNjcmlwdGlvbigpKQotICAgICAgICAg
ICAgbWFya2VyQ29udHJvbGxlci0+YWRkTWFya2VyKG5ld1JhbmdlLmdldCgpLCBtYXJrZXJzW2ld
LnR5cGUoKSwgbWFya2Vyc1tpXS5kZXNjcmlwdGlvbigpKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgbWFya2VyQ29udHJvbGxlci0+YWRkTWFya2VyKG5ld1JhbmdlLmdldCgpLCBtYXJrZXJz
W2ldLnR5cGUoKSk7Ci0gICAgfQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbWFya2Vycy5z
aXplKCk7ICsraSkKKyAgICAgICAgbWFya2VyQ29udHJvbGxlci0+YWRkTWFya2VyKG5ld1Jhbmdl
LmdldCgpLCBtYXJrZXJzW2ldLnR5cGUoKSwgbWFya2Vyc1tpXS5kZXNjcmlwdGlvbigpKTsKIH0K
IAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnBvc2l0aW9uT3V0c2lkZVRhYlNwYW4o
Y29uc3QgUG9zaXRpb24mIHBvcykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103015</attachid>
            <date>2011-08-04 18:20:37 -0700</date>
            <delta_ts>2011-08-04 18:29:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59855-20110805102035.patch</filename>
            <type>text/plain</type>
            <size>36087</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI0MzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyNjVhM2E4NzgyMmJhNmUy
MzBjMGEyNjAzYzQ0NDk3Y2ZlYWE4YjVhLi45NmU0YWUyMjgwNmE1MWM1YjkxY2Y1NTY2NzBlMGQy
MDBkN2Y2OTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDgtMDQgIE1hcmsg
UGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92ZSBMZWdhY3lE
ZWZhdWx0T3B0aW9uYWxBcmd1bWVudHMgZmxhZyBmcm9tIERPTS1yZWxhdGVkIGZpbGVzIGV4Y2Vw
dCBEb2N1bWVudC5pZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY1NzE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAg
ICBObyBuZXcgdGVzdHMsIGFsbCBleGlzdGluZyB0ZXN0cyBwYXNzLgorCisgICAgICAgICogZG9t
L0NoYXJhY3RlckRhdGEuaWRsOgorICAgICAgICAqIGRvbS9DbGllbnRSZWN0TGlzdC5pZGw6Cisg
ICAgICAgICogZG9tL0NsaXBib2FyZC5pZGw6CisgICAgICAgICogZG9tL0RPTUltcGxlbWVudGF0
aW9uLmlkbDoKKyAgICAgICAgKiBkb20vRE9NU3RyaW5nTGlzdC5pZGw6CisgICAgICAgICogZG9t
L0RhdGFUcmFuc2Zlckl0ZW0uaWRsOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5p
ZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsOgorICAgICAgICAqIGRvbS9F
bGVtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRXZlbnRMaXN0ZW5lci5pZGw6CisgICAgICAgICog
ZG9tL0V2ZW50VGFyZ2V0LmlkbDoKKyAgICAgICAgKiBkb20vTWVkaWFTdHJlYW0uaWRsOgorICAg
ICAgICAqIGRvbS9NZWRpYVN0cmVhbUxpc3QuaWRsOgorICAgICAgICAqIGRvbS9NZWRpYVN0cmVh
bVRyYWNrTGlzdC5pZGw6CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0LmlkbDoKKyAgICAgICAg
KiBkb20vTmFtZWROb2RlTWFwLmlkbDoKKyAgICAgICAgKiBkb20vTm9kZS5pZGw6CisgICAgICAg
ICogZG9tL05vZGVGaWx0ZXIuaWRsOgorICAgICAgICAqIGRvbS9Ob2RlTGlzdC5pZGw6CisgICAg
ICAgICogZG9tL1JhbmdlLmlkbDoKKyAgICAgICAgKiBkb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1l
Q2FsbGJhY2suaWRsOgorICAgICAgICAqIGRvbS9TdHJpbmdDYWxsYmFjay5pZGw6CisgICAgICAg
ICogZG9tL1RleHQuaWRsOgorICAgICAgICAqIGRvbS9Ub3VjaExpc3QuaWRsOgorCiAyMDExLTA4
LTA0ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgRnV0dXJlLXByb29m
IFhjb2RlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ2hhcmFjdGVyRGF0YS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0
YS5pZGwKaW5kZXggMDAzOGZkZTliMmY3NGViZjJlYzkzM2M2Mjk2NTA4NTBjYTMwNzVjOS4uY2E0
NDc0MWM1MzA0ZjA2ODY2NGRkMGJjN2RmNjhiODQyOTBkYjAzZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
aGFyYWN0ZXJEYXRhLmlkbApAQCAtMTksMzMgKzE5LDMxIEBACiAKIG1vZHVsZSBjb3JlIHsKIAot
ICAgIGludGVyZmFjZSBbCi0gICAgICAgIExlZ2FjeURlZmF1bHRPcHRpb25hbEFyZ3VtZW50cywK
LSAgICBdIENoYXJhY3RlckRhdGEgOiBOb2RlIHsKKyAgICBpbnRlcmZhY2UgQ2hhcmFjdGVyRGF0
YSA6IE5vZGUgewogCiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBkYXRhCiAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICAg
ICAgICAKLSAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbCwgT2xkU3R5bGVPYmpDXSBE
T01TdHJpbmcgc3Vic3RyaW5nRGF0YShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBvZmZzZXQs
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBsZW5ndGgpCisgICAgICAgIFtDb252ZXJ0
TnVsbFN0cmluZ1RvPU51bGwsIE9sZFN0eWxlT2JqQ10gRE9NU3RyaW5nIHN1YnN0cmluZ0RhdGEo
aW4gW0lzSW5kZXgsT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIHVuc2lnbmVkIGxvbmcg
b2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbSXNJbmRleCxPcHRpb25hbD1DYWxsV2l0aERl
ZmF1bHRWYWx1ZV0gdW5zaWduZWQgbG9uZyBsZW5ndGgpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKIAotICAgICAgICB2b2lkIGFwcGVuZERhdGEoaW4gRE9NU3RyaW5nIGRhdGEp
CisgICAgICAgIHZvaWQgYXBwZW5kRGF0YShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFs
dWVdIERPTVN0cmluZyBkYXRhKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAK
LSAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBpbnNlcnREYXRhKGluIFtJc0luZGV4XSB1bnNp
Z25lZCBsb25nIG9mZnNldCwgCi0gICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcg
ZGF0YSkKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBpbnNlcnREYXRhKGluIFtJc0luZGV4
LE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSB1bnNpZ25lZCBsb25nIG9mZnNldCwgCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdp
dGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBkYXRhKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKLSAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBkZWxldGVEYXRhKGluIFtJ
c0luZGV4XSB1bnNpZ25lZCBsb25nIG9mZnNldCwgCi0gICAgICAgICAgICAgICAgICAgICAgICBp
biBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBsZW5ndGgpCisgICAgICAgIFtPbGRTdHlsZU9iakNd
IHZvaWQgZGVsZXRlRGF0YShpbiBbSXNJbmRleCxPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1
ZV0gdW5zaWduZWQgbG9uZyBvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW0lzSW5kZXgsT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAg
ICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCByZXBsYWNlRGF0YShpbiBbSXNJbmRleF0gdW5zaWdu
ZWQgbG9uZyBvZmZzZXQsIAotICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtJc0luZGV4XSB1
bnNpZ25lZCBsb25nIGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJp
bmcgZGF0YSkKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCByZXBsYWNlRGF0YShpbiBbSXNJ
bmRleCxPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gdW5zaWduZWQgbG9uZyBvZmZzZXQs
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtJc0luZGV4LE9w
dGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSB1bnNpZ25lZCBsb25nIGxlbmd0aCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhE
ZWZhdWx0VmFsdWVdIERPTVN0cmluZyBkYXRhKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGll
bnRSZWN0TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50UmVjdExpc3QuaWRsCmlu
ZGV4IGQ0OGZjODQwZDI5MzVjN2I5MzE0YTI0YzkyNjBjMTc3OTJjNzliZDcuLmVlNDYyOWMzMGJi
OTY2Y2RjY2Y1NGUyNjNhMmI3YTMyOGVmN2ExZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DbGllbnRSZWN0TGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NsaWVudFJl
Y3RMaXN0LmlkbApAQCAtMjcsMTEgKzI3LDEwIEBACiBtb2R1bGUgdmlldyB7CiAKICAgICBpbnRl
cmZhY2UgWwotICAgICAgICBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1bWVudHMsCiAgICAgICAg
IEhhc0luZGV4R2V0dGVyCiAgICAgXSBDbGllbnRSZWN0TGlzdCB7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICAgICAgQ2xpZW50UmVjdCBpdGVt
KGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgQ2xpZW50UmVjdCBp
dGVtKGluIFtJc0luZGV4LE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSB1bnNpZ25lZCBs
b25nIGluZGV4KTsKICAgICAgICAgLy8gRklYTUU6IEZpeCBsaXN0IGJlaGF2aW9yIHRvIGFsbG93
IGN1c3RvbSBleGNlcHRpb25zIHRvIGJlIHRocm93bi4KICAgICB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlw
Ym9hcmQuaWRsCmluZGV4IDg2ZDExNjFjZWMxZGQ4YmEzODI4YmJjNWU2ZTFmMGM1ZGVjNWVhNzYu
LmQ1YmIzMzExN2Q0NDk2MmM4NWQ4ZTJjYTZlM2E3NjJiY2U3OGMzYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9D
bGlwYm9hcmQuaWRsCkBAIC0yOCw5ICsyOCw3IEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGlu
dGVyZmFjZSBbCi0gICAgICAgIExlZ2FjeURlZmF1bHRPcHRpb25hbEFyZ3VtZW50cywKLSAgICBd
IENsaXBib2FyZCB7CisgICAgaW50ZXJmYWNlIENsaXBib2FyZCB7CiAgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1VbmRlZmluZWRdIERPTVN0cmluZyBkcm9w
RWZmZWN0OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89
VW5kZWZpbmVkXSBET01TdHJpbmcgZWZmZWN0QWxsb3dlZDsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtDdXN0b21HZXR0ZXJdIEFycmF5IHR5cGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01J
bXBsZW1lbnRhdGlvbi5pZGwKaW5kZXggMzZhZWFiY2FhOTFkODFhZGU4YjIzM2JmOTdlODJmODBj
N2M3NTIyMy4uZDk2MzI5NDk4MDY1MjAyMDQwZDAxOTllYzc1ZWZiODg0YjUzZWQ4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCkBAIC0yMSwzNiArMjEsMzUgQEAK
IG1vZHVsZSBjb3JlIHsKIAogICAgIGludGVyZmFjZSBbCi0gICAgICAgIExlZ2FjeURlZmF1bHRP
cHRpb25hbEFyZ3VtZW50cywKICAgICAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRG9jdW1l
bnQsCiAgICAgICAgIFY4RGVwZW5kZW50TGlmZXRpbWUKICAgICBdIERPTUltcGxlbWVudGF0aW9u
IHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMQogCi0gICAgICAgIFtPbGRTdHlsZU9iakNdIGJv
b2xlYW4gaGFzRmVhdHVyZShpbiBET01TdHJpbmcgZmVhdHVyZSwgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyB2ZXJzaW9uKTsKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gYm9vbGVhbiBoYXNGZWF0
dXJlKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIGZlYXR1cmUs
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcg
dmVyc2lvbik7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDIKIAotICAgICAgICBbT2xkU3R5bGVP
YmpDXSBEb2N1bWVudFR5cGUgY3JlYXRlRG9jdW1lbnRUeXBlKGluIFtDb252ZXJ0VW5kZWZpbmVk
T3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbQ29udmVydFVu
ZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHB1YmxpY0lkLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtDb252ZXJ0
VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgc3lzdGVtSWQpCisgICAgICAg
IFtPbGRTdHlsZU9iakNdIERvY3VtZW50VHlwZSBjcmVhdGVEb2N1bWVudFR5cGUoaW4gW0NvbnZl
cnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmcsT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFs
dWVdIERPTVN0cmluZyBxdWFsaWZpZWROYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9O
dWxsU3RyaW5nLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgcHVibGlj
SWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmcsT3B0aW9uYWw9Q2FsbFdp
dGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBzeXN0ZW1JZCkKICAgICAgICAgICAgIHJhaXNlcyhE
T01FeGNlcHRpb24pOwotICAgICAgICBbT2xkU3R5bGVPYmpDXSBEb2N1bWVudCBjcmVhdGVEb2N1
bWVudChpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VVUkks
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbQ29u
dmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBxdWFsaWZpZWROYW1lLCAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW0NvbnZlcnROdWxsVG9O
dWxsU3RyaW5nXSBEb2N1bWVudFR5cGUgZG9jdHlwZSkKKyAgICAgICAgW09sZFN0eWxlT2JqQ10g
RG9jdW1lbnQgY3JlYXRlRG9jdW1lbnQoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLE9wdGlv
bmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgcXVh
bGlmaWVkTmFtZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyxPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRW
YWx1ZV0gRG9jdW1lbnRUeXBlIGRvY3R5cGUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKIAogICAgICAgICAvLyBET01JbXBsZW1lbnRhdGlvbkNTUyBpbnRlcmZhY2UgZnJvbSBE
T00gTGV2ZWwgMiBDU1MKIAotICAgICAgICBbT2xkU3R5bGVPYmpDXSBDU1NTdHlsZVNoZWV0IGNy
ZWF0ZUNTU1N0eWxlU2hlZXQoaW4gRE9NU3RyaW5nIHRpdGxlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIG1lZGlh
KQorICAgICAgICBbT2xkU3R5bGVPYmpDXSBDU1NTdHlsZVNoZWV0IGNyZWF0ZUNTU1N0eWxlU2hl
ZXQoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgdGl0bGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBtZWRpYSkKICAgICAg
ICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIEhUTUxET01JbXBsZW1l
bnRhdGlvbiBpbnRlcmZhY2UgZnJvbSBET00gTGV2ZWwgMiBIVE1MCiAKLSAgICAgICAgSFRNTERv
Y3VtZW50IGNyZWF0ZUhUTUxEb2N1bWVudChpbiBET01TdHJpbmcgdGl0bGUpOworICAgICAgICBI
VE1MRG9jdW1lbnQgY3JlYXRlSFRNTERvY3VtZW50KGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1
bHRWYWx1ZV0gRE9NU3RyaW5nIHRpdGxlKTsKICAgICB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9N
U3RyaW5nTGlzdC5pZGwKaW5kZXggZmI3YTJjZWY1M2FkNTIzOTRhODg2ZDdiMDNjZTc0N2RiZTk5
YTVlMS4uNDNhZjgyNTlmMGMwY2FkYTYwZDk1OTk0ZDM3NWViNzY0YzU3ZGE0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ0xpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01TdHJpbmdMaXN0LmlkbApAQCAtMjYsMTMgKzI2LDEyIEBACiBtb2R1bGUgY29y
ZSB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1
bWVudHMsCiAgICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3IsCiAgICAgICAgIEhhc0luZGV4R2V0
dGVyCiAgICAgXSBET01TdHJpbmdMaXN0IHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgICAgICBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBE
T01TdHJpbmcgaXRlbShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBpbmRleCk7Ci0gICAgICAg
IGJvb2xlYW4gY29udGFpbnMoaW4gRE9NU3RyaW5nIHN0cmluZyk7CisgICAgICAgIFtDb252ZXJ0
TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBpdGVtKGluIFtJc0luZGV4LE9wdGlvbmFsPUNh
bGxXaXRoRGVmYXVsdFZhbHVlXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAgICAgYm9vbGVh
biBjb250YWlucyhpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBz
dHJpbmcpOwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXJJdGVtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlk
bAppbmRleCA4YmU5YWExZjgxODdhMGU5M2E3OGZkNjA5OWFkYTRjMDM5MWI5YjEzLi5iZWZkN2Uy
YjEzZWY3ODBjYmY1ZDcyNGE0OGQ3NjVmZWI0ODI4Y2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rh
dGFUcmFuc2Zlckl0ZW0uaWRsCkBAIC0zMiwxMiArMzIsMTEgQEAgbW9kdWxlIGNvcmUgewogCiAg
ICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9REFUQV9UUkFOU0ZFUl9JVEVNUywK
LSAgICAgICAgTGVnYWN5RGVmYXVsdE9wdGlvbmFsQXJndW1lbnRzLAogICAgIF0gRGF0YVRyYW5z
ZmVySXRlbSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcga2luZDsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogCi0gICAgICAgIHZvaWQg
Z2V0QXNTdHJpbmcoaW4gW0NhbGxiYWNrXSBTdHJpbmdDYWxsYmFjayBjYWxsYmFjayk7CisgICAg
ICAgIHZvaWQgZ2V0QXNTdHJpbmcoaW4gW0NhbGxiYWNrLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVs
dFZhbHVlXSBTdHJpbmdDYWxsYmFjayBjYWxsYmFjayk7CiAgICAgICAgIEJsb2IgZ2V0QXNGaWxl
KCk7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwKaW5k
ZXggYThkNWExZjE4MWI5MGIyZTY0MjFiMzUxMGY4ZTc3ZDVjZjJhOTYwMS4uMmM3ZjFlYzhkOGQ1
NzkxMDJmODM2MDFkOTkzNjMyOWNhYWE0NjI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRy
YW5zZmVySXRlbXMuaWRsCkBAIC0zMiwxNyArMzIsMTcgQEAgbW9kdWxlIGNvcmUgewogCiAgICAg
aW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9REFUQV9UUkFOU0ZFUl9JVEVNUywKLSAg
ICAgICAgTGVnYWN5RGVmYXVsdE9wdGlvbmFsQXJndW1lbnRzLAogICAgICAgICBIYXNJbmRleEdl
dHRlciwKICNpZiBkZWZpbmVkKFY4X0JJTkRJTkcpICYmIFY4X0JJTkRJTkcKICAgICAgICAgQ3Vz
dG9tRGVsZXRlUHJvcGVydHksCiAjZW5kaWYKICAgICBdIERhdGFUcmFuc2Zlckl0ZW1zIHsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbGVuZ3RoOwotICAgICAgICBEYXRhVHJhbnNm
ZXJJdGVtIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCkgZ2V0dGVyOworICAgICAgICBEYXRh
VHJhbnNmZXJJdGVtIGl0ZW0oaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSB1bnNp
Z25lZCBsb25nIGluZGV4KSBnZXR0ZXI7CiAKICAgICAgICAgdm9pZCBjbGVhcigpOwotICAgICAg
ICB2b2lkIGFkZChpbiBET01TdHJpbmcgZGF0YSwgaW4gRE9NU3RyaW5nIHR5cGUpIHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICB2b2lkIGFkZChpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZh
dWx0VmFsdWVdIERPTVN0cmluZyBkYXRhLCAKKyAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFs
PUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgdHlwZSkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
RnJhZ21lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsCmlu
ZGV4IGM4YmZiY2Q3MWE4Mjg1NmE1NzZiNDM1OGE4NDFhY2ZkOTExNDMzNDEuLjg4MmI2MmRiMzll
YjdmMmUwNTA0NzgyMDQ5MmI3ZTkzNjFhOGVkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudEZyYWdtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRGcmFnbWVudC5pZGwKQEAgLTE5LDEzICsxOSwxMSBAQAogCiBtb2R1bGUgY29yZSB7CiAKLSAg
ICBpbnRlcmZhY2UgWwotICAgICAgICBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1bWVudHMsCi0g
ICAgXSBEb2N1bWVudEZyYWdtZW50IDogTm9kZSB7CisgICAgaW50ZXJmYWNlIERvY3VtZW50RnJh
Z21lbnQgOiBOb2RlIHsKICAgICAgICAgLy8gTm9kZVNlbGVjdG9yIC0gU2VsZWN0b3IgQVBJCi0g
ICAgICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gRWxlbWVudCBxdWVyeVNlbGVjdG9y
KGluIERPTVN0cmluZyBzZWxlY3RvcnMpCisgICAgICAgIEVsZW1lbnQgcXVlcnlTZWxlY3Rvcihp
biBET01TdHJpbmcgc2VsZWN0b3JzKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7
Ci0gICAgICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gTm9kZUxpc3QgcXVlcnlTZWxl
Y3RvckFsbChpbiBET01TdHJpbmcgc2VsZWN0b3JzKQorICAgICAgICBOb2RlTGlzdCBxdWVyeVNl
bGVjdG9yQWxsKGluIERPTVN0cmluZyBzZWxlY3RvcnMpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5pZGwKaW5kZXggMDc2NDlhZjYz
MzViY2MyYjY1NTQyNzU5ZGQ3NmNkMTQ5ZGRkYmYyYi4uYzcyOGFiZDBhNGJmZjEyYTQ3ZTQxZDgy
ZTVhZGE0OTU0NTFmZTgxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbApAQCAtMjEsNyArMjEsNiBA
QAogbW9kdWxlIGNvcmUgewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgTGVnYWN5RGVmYXVs
dE9wdGlvbmFsQXJndW1lbnRzLAogICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKICAg
ICAgICAgSW5saW5lR2V0T3duUHJvcGVydHlTbG90CiAgICAgXSBFbGVtZW50IDogTm9kZSB7CkBA
IC0zMCwzOSArMjksMzkgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgdGFnTmFtZTsKIAotICAg
ICAgICBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgZ2V0QXR0cmlidXRlKGlu
IERPTVN0cmluZyBuYW1lKTsKLSAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBzZXRBdHRyaWJ1
dGUoaW4gRE9NU3RyaW5nIG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIERPTVN0cmluZyB2YWx1ZSkKKyAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89
TnVsbF0gRE9NU3RyaW5nIGdldEF0dHJpYnV0ZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0
VmFsdWVdIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBzZXRB
dHRyaWJ1dGUoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFs
PUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgdmFsdWUpCiAgICAgICAgICAgICByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCByZW1vdmVBdHRyaWJ1dGUoaW4gRE9NU3Ry
aW5nIG5hbWUpCisgICAgICAgIHZvaWQgcmVtb3ZlQXR0cmlidXRlKGluIFtPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIG5hbWUpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKLSAgICAgICAgQXR0ciBnZXRBdHRyaWJ1dGVOb2RlKGluIERPTVN0cmluZyBu
YW1lKTsKLSAgICAgICAgQXR0ciBzZXRBdHRyaWJ1dGVOb2RlKGluIEF0dHIgbmV3QXR0cikKKyAg
ICAgICAgQXR0ciBnZXRBdHRyaWJ1dGVOb2RlKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRW
YWx1ZV0gRE9NU3RyaW5nIG5hbWUpOworICAgICAgICBBdHRyIHNldEF0dHJpYnV0ZU5vZGUoaW4g
W09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBBdHRyIG5ld0F0dHIpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgQXR0ciByZW1vdmVBdHRyaWJ1dGVOb2Rl
KGluIEF0dHIgb2xkQXR0cikKKyAgICAgICAgQXR0ciByZW1vdmVBdHRyaWJ1dGVOb2RlKGluIFtP
cHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gQXR0ciBvbGRBdHRyKQogICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdO
YW1lKGluIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRh
Z05hbWUoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFtZSk7
CiAKICAgICAgICAgLy8gRE9NIExldmVsIDIgQ29yZQogCi0gICAgICAgIFtPbGRTdHlsZU9iakNd
IERPTVN0cmluZyBnZXRBdHRyaWJ1dGVOUyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBET01TdHJpbmcgbG9jYWxOYW1lKTsKLSAgICAgICAgW09sZFN0eWxl
T2JqQ10gdm9pZCBzZXRBdHRyaWJ1dGVOUyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUsIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyB2YWx1ZSkKKyAgICAgICAgW09s
ZFN0eWxlT2JqQ10gRE9NU3RyaW5nIGdldEF0dHJpYnV0ZU5TKGluIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZyxPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIG5hbWVzcGFj
ZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIGxvY2FsTmFtZSk7Cisg
ICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgc2V0QXR0cmlidXRlTlMoaW4gW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFt
ZXNwYWNlVVJJLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHF1YWxpZmllZE5hbWUs
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25h
bD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHZhbHVlKQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgcmVtb3ZlQXR0
cmlidXRlTlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNwYWNl
VVJJLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERP
TVN0cmluZyBsb2NhbE5hbWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAg
ICAgICAgW09sZFN0eWxlT2JqQ10gTm9kZUxpc3QgZ2V0RWxlbWVudHNCeVRhZ05hbWVOUyhpbiBb
Q29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3Ry
aW5nIGxvY2FsTmFtZSk7Ci0gICAgICAgIFtPbGRTdHlsZU9iakNdIEF0dHIgZ2V0QXR0cmlidXRl
Tm9kZU5TKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVS
SSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9N
U3RyaW5nIGxvY2FsTmFtZSk7Ci0gICAgICAgIEF0dHIgc2V0QXR0cmlidXRlTm9kZU5TKGluIEF0
dHIgbmV3QXR0cikKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gTm9kZUxpc3QgZ2V0RWxlbWVudHNC
eVRhZ05hbWVOUyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmcsT3B0aW9uYWw9Q2FsbFdpdGhE
ZWZhdWx0VmFsdWVdIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRo
RGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbG9jYWxOYW1lKTsKKyAgICAgICAgW09sZFN0eWxlT2Jq
Q10gQXR0ciBnZXRBdHRyaWJ1dGVOb2RlTlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLE9w
dGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBsb2NhbE5hbWUpOworICAgICAgICBBdHRy
IHNldEF0dHJpYnV0ZU5vZGVOUyhpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIEF0
dHIgbmV3QXR0cikKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBi
b29sZWFuIGhhc0F0dHJpYnV0ZShpbiBET01TdHJpbmcgbmFtZSk7Ci0gICAgICAgIFtPbGRTdHls
ZU9iakNdIGJvb2xlYW4gaGFzQXR0cmlidXRlTlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5n
XSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBsb2NhbE5hbWUpOworICAgICAgICBbT2xkU3R5
bGVPYmpDXSBib29sZWFuIGhhc0F0dHJpYnV0ZU5TKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
ZyxPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9u
YWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBsb2NhbE5hbWUpOwogCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBDU1NTdHlsZURlY2xhcmF0aW9uIHN0eWxlOwogCkBAIC04OCwz
MyArODcsMzMgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgICAgIC8vIElFIGV4dGVuc2lvbnMKIAot
ICAgICAgICBib29sZWFuIGNvbnRhaW5zKGluIEVsZW1lbnQgZWxlbWVudCk7CisgICAgICAgIGJv
b2xlYW4gY29udGFpbnMoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBFbGVtZW50
IGVsZW1lbnQpOwogCiAgICAgICAgIC8vIFdlYktpdCBleHRlbnNpb25zCiAKICAgICAgICAgdm9p
ZCBzY3JvbGxJbnRvVmlld0lmTmVlZGVkKGluIFtPcHRpb25hbF0gYm9vbGVhbiBjZW50ZXJJZk5l
ZWRlZCk7Ci0gICAgICAgIHZvaWQgc2Nyb2xsQnlMaW5lcyhpbiBsb25nIGxpbmVzKTsKLSAgICAg
ICAgdm9pZCBzY3JvbGxCeVBhZ2VzKGluIGxvbmcgcGFnZXMpOworICAgICAgICB2b2lkIHNjcm9s
bEJ5TGluZXMoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBsb25nIGxpbmVzKTsK
KyAgICAgICAgdm9pZCBzY3JvbGxCeVBhZ2VzKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRW
YWx1ZV0gbG9uZyBwYWdlcyk7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9BTklNQVRJT05fQVBJKSAm
JiBFTkFCTEVfQU5JTUFUSU9OX0FQSQogICAgICAgICBXZWJLaXRBbmltYXRpb25MaXN0IHdlYmtp
dEdldEFuaW1hdGlvbnMoKTsKICNlbmRpZgogCiAgICAgICAgIC8vIEhUTUwgNQotICAgICAgICBO
b2RlTGlzdCBnZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGluIERPTVN0cmluZyBuYW1lKTsKKyAgICAg
ICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhE
ZWZhdWx0VmFsdWVdIERPTVN0cmluZyBuYW1lKTsKIAogI2lmIGRlZmluZWQoTEFOR1VBR0VfSkFW
QVNDUklQVCkgJiYgTEFOR1VBR0VfSkFWQVNDUklQVAogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nTWFwIGRhdGFzZXQ7CiAjZW5kaWYKIAogICAgICAgICAvLyBOb2RlU2VsZWN0
b3IgLSBTZWxlY3RvciBBUEkKLSAgICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNlXSBF
bGVtZW50IHF1ZXJ5U2VsZWN0b3IoaW4gRE9NU3RyaW5nIHNlbGVjdG9ycykKKyAgICAgICAgRWxl
bWVudCBxdWVyeVNlbGVjdG9yKGluIERPTVN0cmluZyBzZWxlY3RvcnMpCiAgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW1JlcXVpcmVzQWxsQXJndW1lbnRzPVJhaXNl
XSBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKGluIERPTVN0cmluZyBzZWxlY3RvcnMpCisgICAg
ICAgIE5vZGVMaXN0IHF1ZXJ5U2VsZWN0b3JBbGwoaW4gRE9NU3RyaW5nIHNlbGVjdG9ycykKICAg
ICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIFdlYktpdCBleHRl
bnNpb24sIHBlbmRpbmcgc3BlY2lmaWNhdGlvbi4KLSAgICAgICAgYm9vbGVhbiB3ZWJraXRNYXRj
aGVzU2VsZWN0b3IoaW4gRE9NU3RyaW5nIHNlbGVjdG9ycykKKyAgICAgICAgYm9vbGVhbiB3ZWJr
aXRNYXRjaGVzU2VsZWN0b3IoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01T
dHJpbmcgc2VsZWN0b3JzKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAg
ICAgICAgLy8gRWxlbWVudFRyYXZlcnNhbCBBUEkKQEAgLTEzNyw3ICsxMzYsNyBAQCBtb2R1bGUg
Y29yZSB7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJiYgRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEFMTE9XX0tFWUJPQVJE
X0lOUFVUID0gMTsKLSAgICAgICAgdm9pZCB3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbihpbiB1bnNp
Z25lZCBzaG9ydCBmbGFncyk7CisgICAgICAgIHZvaWQgd2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4o
aW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSB1bnNpZ25lZCBzaG9ydCBmbGFncyk7
CiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKExBTkdVQUdFX09CSkVDVElWRV9DKSB8fCAhTEFOR1VB
R0VfT0JKRUNUSVZFX0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3Rl
bmVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudExpc3RlbmVyLmlkbAppbmRleCAzYTY4
ZjRhNGI0ZTJkOTg5Njg4Zjg3YzMwNjUzNzIwYWEwNzlkNDE0Li4wMjM3NzdiZjM5NDMyNTdlOWQz
YmM2NjI0NTk3ZTMxMGQwZTY2OTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnRMaXN0ZW5lci5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIuaWRs
CkBAIC0yMiw3ICsyMiw2IEBAIG1vZHVsZSBldmVudHMgewogCiAgICAgLy8gSW50cm9kdWNlZCBp
biBET00gTGV2ZWwgMjoKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBMZWdhY3lEZWZhdWx0T3B0
aW9uYWxBcmd1bWVudHMsCiAgICAgICAgIE5vU3RhdGljVGFibGVzLAogICAgICAgICBPYmpDUHJv
dG9jb2wsCiAgICAgICAgIFB1cmVJbnRlcmZhY2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Lmlk
bAppbmRleCA1NDMxMzJlYzBjMDk2ZDY2YWJjNWJkNjlmYzUyMmZlMTliZmY4ZDE5Li44YzY4M2Rh
MWVlMDA3Y2UxODgwZDkwOTI2ZjcwMTIwOTIwMTFhZTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRXZlbnRUYXJnZXQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVudFRh
cmdldC5pZGwKQEAgLTIyLDcgKzIyLDYgQEAgbW9kdWxlIGV2ZW50cyB7CiAKICAgICAvLyBJbnRy
b2R1Y2VkIGluIERPTSBMZXZlbCAyOgogICAgIGludGVyZmFjZSBbCi0gICAgICAgIExlZ2FjeURl
ZmF1bHRPcHRpb25hbEFyZ3VtZW50cywKICAgICAgICAgT2JqQ1Byb3RvY29sLAogICAgICAgICBQ
dXJlSW50ZXJmYWNlLAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFT
dHJlYW0uaWRsCmluZGV4IGUzMjEyY2U1ZjdiM2JmY2M0ZTAxOGQxNTU0OGFhMzExZTM4MzAwOGMu
LjdmZjk1M2I2YTEyYTZmNTNhM2FlM2YzNjM2YTQ2ZmMzYjU4OWNjNzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L01lZGlhU3RyZWFtLmlkbApAQCAtMjUsNyArMjUsNiBAQAogbW9kdWxlIGNvcmUgewogCiAgICAg
aW50ZXJmYWNlIFsKLSAgICAgICAgTGVnYWN5RGVmYXVsdE9wdGlvbmFsQXJndW1lbnRzLAogICAg
ICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIEV2ZW50VGFyZ2V0CiAgICAg
XSBNZWRpYVN0cmVhbSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJl
YW1MaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbUxpc3QuaWRsCmluZGV4
IGFhOTY3Yzk2ZWNmY2ViZDE0MmQzMzlmZTRlMTlmOTFhN2NjNTY0NTIuLjNhZDc3YTk1ZTcxZDlk
NzllMzE0YmY5OGQ2ZGUxOTUxNDU2ZDI0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NZWRpYVN0cmVhbUxpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVh
bUxpc3QuaWRsCkBAIC0yNSw3ICsyNSw2IEBACiBtb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZh
Y2UgWwotICAgICAgICBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1bWVudHMsCiAgICAgICAgIENv
bmRpdGlvbmFsPU1FRElBX1NUUkVBTSwKICAgICAgICAgSGFzSW5kZXhHZXR0ZXIKICAgICBdIE1l
ZGlhU3RyZWFtTGlzdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJl
YW1UcmFja0xpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2tMaXN0
LmlkbAppbmRleCBlMzQ5NmVjNjJjNDNlY2E1NTI1YTdjNDhiYTlkNDBjZTBlMmNjOTI4Li4zZTNl
Y2ExNGVhOTk0MGM2M2MzMmZkYjQyZGU1YzBiZTAxN2U3NjgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTWVkaWFTdHJlYW1UcmFja0xpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5pZGwKQEAgLTI1LDcgKzI1LDYgQEAKIG1vZHVsZSBj
b3JlIHsKIAogICAgIGludGVyZmFjZSBbCi0gICAgICAgIExlZ2FjeURlZmF1bHRPcHRpb25hbEFy
Z3VtZW50cywKICAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogICAgICAgICBIYXNJ
bmRleEdldHRlcgogICAgIF0gTWVkaWFTdHJlYW1UcmFja0xpc3QgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNz
YWdlUG9ydC5pZGwKaW5kZXggMGY0MTBjYzBmNTZjMzE1ZjhkMGE4MmQ3NmFkMzcxMjI2MTY1MzFi
MC4uMjg4MzNjZWE5MjI1NDE4YTViODY4ZWY1ODNlYmViOWRhMGViZjkyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTWVzc2FnZVBvcnQuaWRsCkBAIC0yNyw3ICsyNyw2IEBACiBtb2R1bGUgZXZlbnRzIHsKIAog
ICAgIGludGVyZmFjZSBbCi0gICAgICAgIExlZ2FjeURlZmF1bHRPcHRpb25hbEFyZ3VtZW50cywK
ICAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxl
PUltcGwsCiAgICAgICAgIEFjdGl2ZURPTU9iamVjdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9OYW1lZE5vZGVNYXAuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkTm9kZU1h
cC5pZGwKaW5kZXggNjYxNDc0MWFhYWQ0OWJkMjA2MDkxMTQ0ZGNmMTJkMmQyNmJjMGZiNi4uMWJm
NDUyMTRiNjRjNmZiYTkxMTc4YmJkMjAxNDc2NDJkYzA1OWUzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05h
bWVkTm9kZU1hcC5pZGwKQEAgLTIxLDM4ICsyMSwzNyBAQAogbW9kdWxlIGNvcmUgewogCiAgICAg
aW50ZXJmYWNlIFsKLSAgICAgICAgTGVnYWN5RGVmYXVsdE9wdGlvbmFsQXJndW1lbnRzLAogICAg
ICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxFbGVtZW50Um9vdCwKICAgICAgICAgQ3VzdG9t
TWFya0Z1bmN0aW9uLAogICAgICAgICBIYXNJbmRleEdldHRlciwKICAgICAgICAgSGFzTmFtZUdl
dHRlcgogICAgIF0gTmFtZWROb2RlTWFwIHsKIAotICAgICAgICBOb2RlIGdldE5hbWVkSXRlbShp
biBET01TdHJpbmcgbmFtZSk7CisgICAgICAgIE5vZGUgZ2V0TmFtZWRJdGVtKGluIFtPcHRpb25h
bD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIG5hbWUpOwogCi0gICAgICAgIE5vZGUg
c2V0TmFtZWRJdGVtKGluIE5vZGUgbm9kZSkKKyAgICAgICAgTm9kZSBzZXROYW1lZEl0ZW0oaW4g
W09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBOb2RlIG5vZGUpCiAgICAgICAgICAgICBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBOb2RlIHJlbW92ZU5hbWVkSXRlbShpbiBE
T01TdHJpbmcgbmFtZSkKKyAgICAgICAgTm9kZSByZW1vdmVOYW1lZEl0ZW0oaW4gW09wdGlvbmFs
PUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFtZSkKICAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIE5vZGUgaXRlbShpbiB1bnNpZ25lZCBsb25nIGlu
ZGV4KTsKKyAgICAgICAgTm9kZSBpdGVtKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1
ZV0gdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgICAgIAogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAKIAogICAgICAgICAvLyBJbnRyb2R1Y2VkIGlu
IERPTSBMZXZlbCAyOgogCi0gICAgICAgIFtPbGRTdHlsZU9iakNdIE5vZGUgZ2V0TmFtZWRJdGVt
TlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcg
bG9jYWxOYW1lKQorICAgICAgICBbT2xkU3R5bGVPYmpDXSBOb2RlIGdldE5hbWVkSXRlbU5TKGlu
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyxPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0g
RE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcg
bG9jYWxOYW1lKQogICAgICAgICAgICAgLy8gRklYTUU6IHRoZSBpbXBsZW1lbnRhdGlvbiBkb2Vz
IHRha2UgYW4gZXhjZXB0aW9uY29kZSBwYXJhbWV0ZXIuCiAgICAgICAgICAgICAvKnJhaXNlcyhE
T01FeGNlcHRpb24pKi87CiAKLSAgICAgICAgTm9kZSBzZXROYW1lZEl0ZW1OUyhpbiBOb2RlIG5v
ZGUpCisgICAgICAgIE5vZGUgc2V0TmFtZWRJdGVtTlMoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVm
YXVsdFZhbHVlXSBOb2RlIG5vZGUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
IAotICAgICAgICBbT2xkU3R5bGVPYmpDXSBOb2RlIHJlbW92ZU5hbWVkSXRlbU5TKGluIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIGxvY2FsTmFt
ZSkKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gTm9kZSByZW1vdmVOYW1lZEl0ZW1OUyhpbiBbQ29u
dmVydE51bGxUb051bGxTdHJpbmcsT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0
cmluZyBuYW1lc3BhY2VVUkksIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIGxv
Y2FsTmFtZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmlkbAppbmRleCBjNGYwNDRkYzM2ZjA2OTI1YTNjY2IwOTY1MGNkMzkyODI1YTNhNmI2
Li5hYWNlZjE1YjY2NWI1MGU2MTk0MDUwZGNlOGQzYTAxN2NjMTRmNmQ1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUu
aWRsCkBAIC0yMSw3ICsyMSw2IEBACiBtb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZhY2UgWwot
ICAgICAgICBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1bWVudHMsCiAgICAgICAgIEN1c3RvbUhl
YWRlciwKICAgICAgICAgQ3VzdG9tTWFya0Z1bmN0aW9uLAogICAgICAgICBDdXN0b21QdXNoRXZl
bnRIYW5kbGVyU2NvcGUsCkBAIC04MCwxMyArNzksMTMgQEAgbW9kdWxlIGNvcmUgewogICAgICAg
ICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgYm9vbGVhbiAgICAgICAgICAg
IGhhc0NoaWxkTm9kZXMoKTsKLSAgICAgICAgTm9kZSAgICAgICAgICAgICAgIGNsb25lTm9kZShp
biBib29sZWFuIGRlZXApOworICAgICAgICBOb2RlICAgICAgICAgICAgICAgY2xvbmVOb2RlKGlu
IFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gYm9vbGVhbiBkZWVwKTsKICAgICAgICAg
dm9pZCAgICAgICAgICAgICAgIG5vcm1hbGl6ZSgpOwogCiAgICAgICAgIC8vIEludHJvZHVjZWQg
aW4gRE9NIExldmVsIDI6CiAKLSAgICAgICAgW09sZFN0eWxlT2JqQ10gYm9vbGVhbiBpc1N1cHBv
cnRlZChpbiBET01TdHJpbmcgZmVhdHVyZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdmVy
c2lvbik7CisgICAgICAgIFtPbGRTdHlsZU9iakNdIGJvb2xlYW4gaXNTdXBwb3J0ZWQoaW4gW09w
dGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgZmVhdHVyZSwgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW0NvbnZlcnROdWxsVG9OdWxs
U3RyaW5nLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgdmVyc2lvbik7
CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxd
IERPTVN0cmluZyAgICAgICAgbmFtZXNwYWNlVVJJOwogICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbCwgQ29udmVydE51bGxUb051bGxTdHJpbmddIERP
TVN0cmluZyAgICAgICAgcHJlZml4CkBAIC0xMDMsMTEgKzEwMiwxMSBAQCBtb2R1bGUgY29yZSB7
CiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsLCBD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nICAgICAgIHRleHRDb250ZW50CiAgICAg
ICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAg
Ym9vbGVhbiAgICAgICAgICAgIGlzU2FtZU5vZGUoaW4gTm9kZSBvdGhlcik7Ci0gICAgICAgIGJv
b2xlYW4gICAgICAgICAgICBpc0VxdWFsTm9kZShpbiBOb2RlIG90aGVyKTsKLSAgICAgICAgW0Nv
bnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nICAgICAgICAgIGxvb2t1cFByZWZpeChp
biBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VVUkkpOwotICAg
ICAgICBib29sZWFuICAgICAgICAgICAgaXNEZWZhdWx0TmFtZXNwYWNlKGluIFtDb252ZXJ0TnVs
bFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSk7Ci0gICAgICAgIFtDb252ZXJ0
TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyAgICAgICAgICBsb29rdXBOYW1lc3BhY2VVUkko
aW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgcHJlZml4KTsKKyAgICAgICAg
Ym9vbGVhbiAgICAgICAgICAgIGlzU2FtZU5vZGUoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVs
dFZhbHVlXSBOb2RlIG90aGVyKTsKKyAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGlzRXF1YWxO
b2RlKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gTm9kZSBvdGhlcik7CisgICAg
ICAgIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyAgICAgICAgICBsb29rdXBQ
cmVmaXgoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVs
dFZhbHVlXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJKTsKKyAgICAgICAgYm9vbGVhbiAgICAgICAg
ICAgIGlzRGVmYXVsdE5hbWVzcGFjZShpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmcsT3B0aW9u
YWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBuYW1lc3BhY2VVUkkpOworICAgICAg
ICBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgICAgICAgICAgbG9va3VwTmFt
ZXNwYWNlVVJJKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyxPcHRpb25hbD1DYWxsV2l0aERl
ZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHByZWZpeCk7CiAKICAgICAgICAgLy8gRG9jdW1lbnRQb3Np
dGlvbgogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIERPQ1VNRU5UX1BPU0lUSU9O
X0RJU0NPTk5FQ1RFRCA9IDB4MDE7CkBAIC0xMTcsNyArMTE2LDcgQEAgbW9kdWxlIGNvcmUgewog
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIERPQ1VNRU5UX1BPU0lUSU9OX0NPTlRB
SU5FRF9CWSA9IDB4MTA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgRE9DVU1F
TlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMgPSAweDIwOwogCi0gICAgICAgIHVu
c2lnbmVkIHNob3J0ICAgICBjb21wYXJlRG9jdW1lbnRQb3NpdGlvbihpbiBOb2RlIG90aGVyKTsK
KyAgICAgICAgdW5zaWduZWQgc2hvcnQgICAgIGNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGluIFtP
cHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gTm9kZSBvdGhlcik7CiAKICNpZiAwCiAgICAg
ICAgIERPTU9iamVjdCAgICAgICAgICBnZXRGZWF0dXJlKGluIERPTVN0cmluZyBmZWF0dXJlLCAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbAppbmRleCBkNzk4Mzg5MTJmOGYzZjQ5YjlkYzA0NTQx
MDE5OWY2YmJjM2VlYTI3Li4zOGRhYzEwZjAzNTRiZjkyMDA2MDEzOGUwNDBjOTBhOWJhMTdjNDg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVGaWx0ZXIuaWRsCkBAIC0yMiw3ICsyMiw2IEBAIG1vZHVsZSB0
cmF2ZXJzYWwgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKICAgICBpbnRl
cmZhY2UgWwotICAgICAgICBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1bWVudHMsCiAgICAgICAg
IEN1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAgICAgQ3VzdG9tTmF0aXZlQ29udmVydGVyLAogICAg
ICAgICBPYmpDUHJvdG9jb2wsCkBAIC00OCw3ICs0Nyw3IEBAIG1vZHVsZSB0cmF2ZXJzYWwgewog
ICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nICAgICAgIFNIT1dfRE9DVU1FTlRfRlJBR01FTlQg
ICAgICAgICA9IDB4MDAwMDA0MDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgICAgICAg
U0hPV19OT1RBVElPTiAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDgwMDsKIAotICAgICAgICBb
Q2FsbFdpdGg9U2NyaXB0U3RhdGVdIHNob3J0IGFjY2VwdE5vZGUoaW4gTm9kZSBuKTsKKyAgICAg
ICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBzaG9ydCBhY2NlcHROb2RlKGluIFtPcHRpb25hbD1D
YWxsV2l0aERlZmF1bHRWYWx1ZV0gTm9kZSBuKTsKIAogICAgIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxp
c3QuaWRsCmluZGV4IDBlNTA1YjQzOTYyODJlOTUxNmRkZmU2OGY4YWY2MTljMDg5Y2NlMzcuLjVi
YThiMjAwMGY5YTExZTJjYzE0OTk0Mjc0OGNkNGRlMDRmMzRlODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVM
aXN0LmlkbApAQCAtMjEsMTQgKzIxLDEzIEBACiBtb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZh
Y2UgWwotICAgICAgICBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1bWVudHMsCiAgICAgICAgIEN1
c3RvbUlzUmVhY2hhYmxlLAogICAgICAgICBIYXNJbmRleEdldHRlciwKICAgICAgICAgSGFzTmFt
ZUdldHRlciwKICAgICAgICAgQ3VzdG9tQ2FsbAogICAgIF0gTm9kZUxpc3QgewogCi0gICAgICAg
IE5vZGUgaXRlbShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgICAgIE5v
ZGUgaXRlbShpbiBbSXNJbmRleCxPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gdW5zaWdu
ZWQgbG9uZyBpbmRleCk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbGVuZ3RoOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRsIGIv
U291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlkbAppbmRleCAzMGFmZWRkOTZiMWE2NDc5M2I4ZWZj
MDY1OWQ1Y2VhNjBlNGZjMGM5Li42NjhmZDVmMTNlMTk1ZDQxMjgyNmQzOGU5NDNkYTU2NWE4ZDEx
YmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKQEAgLTIxLDkgKzIxLDcgQEAKIG1vZHVsZSByYW5nZXMg
ewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICBpbnRlcmZhY2UgWwot
ICAgICAgICBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1bWVudHMsCi0gICAgXSBSYW5nZSB7Cisg
ICAgaW50ZXJmYWNlIFJhbmdlIHsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSBz
dGFydENvbnRhaW5lcgogICAgICAgICAgICAgZ2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwpA
QCAtMzgsMjUgKzM2LDI1IEBAIG1vZHVsZSByYW5nZXMgewogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgTm9kZSBjb21tb25BbmNlc3RvckNvbnRhaW5lcgogICAgICAgICAgICAgZ2V0dGVyIHJh
aXNlcyhET01FeGNlcHRpb24pOwogCi0gICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgc2V0U3Rh
cnQoaW4gTm9kZSByZWZOb2RlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBsb25nIG9mZnNldCkKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBzZXRTdGFydChp
biBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUgcmVmTm9kZSwgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVs
dFZhbHVlXSBsb25nIG9mZnNldCkKICAgICAgICAgICAgIHJhaXNlcyhSYW5nZUV4Y2VwdGlvbiwg
RE9NRXhjZXB0aW9uKTsKLSAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBzZXRFbmQoaW4gTm9k
ZSByZWZOb2RlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBv
ZmZzZXQpCisgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgc2V0RW5kKGluIFtPcHRpb25hbD1D
YWxsV2l0aERlZmF1bHRWYWx1ZV0gTm9kZSByZWZOb2RlLCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBsb25nIG9m
ZnNldCkKICAgICAgICAgICAgIHJhaXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsK
LSAgICAgICAgdm9pZCBzZXRTdGFydEJlZm9yZShpbiBOb2RlIHJlZk5vZGUpCisgICAgICAgIHZv
aWQgc2V0U3RhcnRCZWZvcmUoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBOb2Rl
IHJlZk5vZGUpCiAgICAgICAgICAgICByYWlzZXMoUmFuZ2VFeGNlcHRpb24sIERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIHZvaWQgc2V0U3RhcnRBZnRlcihpbiBOb2RlIHJlZk5vZGUpCisgICAgICAg
IHZvaWQgc2V0U3RhcnRBZnRlcihpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5v
ZGUgcmVmTm9kZSkKICAgICAgICAgICAgIHJhaXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0
aW9uKTsKLSAgICAgICAgdm9pZCBzZXRFbmRCZWZvcmUoaW4gTm9kZSByZWZOb2RlKQorICAgICAg
ICB2b2lkIHNldEVuZEJlZm9yZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5v
ZGUgcmVmTm9kZSkKICAgICAgICAgICAgIHJhaXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0
aW9uKTsKLSAgICAgICAgdm9pZCBzZXRFbmRBZnRlcihpbiBOb2RlIHJlZk5vZGUpCisgICAgICAg
IHZvaWQgc2V0RW5kQWZ0ZXIoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBOb2Rl
IHJlZk5vZGUpCiAgICAgICAgICAgICByYWlzZXMoUmFuZ2VFeGNlcHRpb24sIERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIHZvaWQgY29sbGFwc2UoaW4gYm9vbGVhbiB0b1N0YXJ0KQorICAgICAgICB2
b2lkIGNvbGxhcHNlKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gYm9vbGVhbiB0
b1N0YXJ0KQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQg
c2VsZWN0Tm9kZShpbiBOb2RlIHJlZk5vZGUpCisgICAgICAgIHZvaWQgc2VsZWN0Tm9kZShpbiBb
T3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUgcmVmTm9kZSkKICAgICAgICAgICAg
IHJhaXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBzZWxl
Y3ROb2RlQ29udGVudHMoaW4gTm9kZSByZWZOb2RlKQorICAgICAgICB2b2lkIHNlbGVjdE5vZGVD
b250ZW50cyhpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUgcmVmTm9kZSkK
ICAgICAgICAgICAgIHJhaXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsKIAogICAg
ICAgICAvLyBDb21wYXJlSG93CkBAIC02NSw4ICs2Myw4IEBAIG1vZHVsZSByYW5nZXMgewogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBFTkRfVE9fRU5EICAgICA9IDI7CiAgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IEVORF9UT19TVEFSVCAgID0gMzsKIAotICAgICAgICBbT2xkU3R5
bGVPYmpDXSBzaG9ydCBjb21wYXJlQm91bmRhcnlQb2ludHMoaW4gQ29tcGFyZUhvdyBob3csCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBSYW5n
ZSBzb3VyY2VSYW5nZSkKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gc2hvcnQgY29tcGFyZUJvdW5k
YXJ5UG9pbnRzKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gQ29tcGFyZUhvdyBo
b3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIFJhbmdlIHNvdXJjZVJhbmdlKQogICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgdm9pZCBkZWxldGVDb250
ZW50cygpCkBAIC03NSw5ICs3Myw5IEBAIG1vZHVsZSByYW5nZXMgewogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIERvY3VtZW50RnJhZ21lbnQgY2xvbmVDb250ZW50
cygpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdm9pZCBpbnNl
cnROb2RlKGluIE5vZGUgbmV3Tm9kZSkKKyAgICAgICAgdm9pZCBpbnNlcnROb2RlKGluIFtPcHRp
b25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gTm9kZSBuZXdOb2RlKQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbiwgUmFuZ2VFeGNlcHRpb24pOwotICAgICAgICB2b2lkIHN1cnJvdW5k
Q29udGVudHMoaW4gTm9kZSBuZXdQYXJlbnQpCisgICAgICAgIHZvaWQgc3Vycm91bmRDb250ZW50
cyhpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUgbmV3UGFyZW50KQogICAg
ICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbiwgUmFuZ2VFeGNlcHRpb24pOwogICAgICAgICBS
YW5nZSBjbG9uZVJhbmdlKCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwpAQCAt
OTYsMTUgKzk0LDE1IEBAIG1vZHVsZSByYW5nZXMgewogCiAgICAgICAgIC8vIGV4dGVuc2lvbnMK
IAotICAgICAgICBEb2N1bWVudEZyYWdtZW50IGNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChpbiBE
T01TdHJpbmcgaHRtbCkKKyAgICAgICAgRG9jdW1lbnRGcmFnbWVudCBjcmVhdGVDb250ZXh0dWFs
RnJhZ21lbnQoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgaHRt
bCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIFdlYktp
dCBleHRlbnNpb25zCiAKLSAgICAgICAgYm9vbGVhbiBpbnRlcnNlY3RzTm9kZShpbiBOb2RlIHJl
Zk5vZGUpCisgICAgICAgIGJvb2xlYW4gaW50ZXJzZWN0c05vZGUoaW4gW09wdGlvbmFsPUNhbGxX
aXRoRGVmYXVsdFZhbHVlXSBOb2RlIHJlZk5vZGUpCiAgICAgICAgICAgICByYWlzZXMoUmFuZ2VF
eGNlcHRpb24sIERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgc2hvcnQgY29tcGFyZU5vZGUoaW4g
Tm9kZSByZWZOb2RlKQorICAgICAgICBzaG9ydCBjb21wYXJlTm9kZShpbiBbT3B0aW9uYWw9Q2Fs
bFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUgcmVmTm9kZSkKICAgICAgICAgICAgIHJhaXNlcyhSYW5n
ZUV4Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBDb21wYXJlUmVzdWx0cwpA
QCAtMTEzLDE1ICsxMTEsMTUgQEAgbW9kdWxlIHJhbmdlcyB7CiAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IE5PREVfQkVGT1JFX0FORF9BRlRFUiA9IDI7CiAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IE5PREVfSU5TSURFICAgICAgICAgICA9IDM7CiAKLSAgICAgICAgc2hvcnQgY29t
cGFyZVBvaW50KGluIE5vZGUgcmVmTm9kZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBsb25nIG9mZnNldCkKKyAgICAgICAgc2hvcnQgY29tcGFyZVBvaW50KGluIFtPcHRpb25hbD1D
YWxsV2l0aERlZmF1bHRWYWx1ZV0gTm9kZSByZWZOb2RlLCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gbG9uZyBvZmZzZXQpCiAg
ICAgICAgICAgICByYWlzZXMoUmFuZ2VFeGNlcHRpb24sIERPTUV4Y2VwdGlvbik7CiAKLSAgICAg
ICAgYm9vbGVhbiBpc1BvaW50SW5SYW5nZShpbiBOb2RlIHJlZk5vZGUsIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIGxvbmcgb2Zmc2V0KQorICAgICAgICBib29sZWFuIGlzUG9p
bnRJblJhbmdlKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gTm9kZSByZWZOb2Rl
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhE
ZWZhdWx0VmFsdWVdIGxvbmcgb2Zmc2V0KQogICAgICAgICAgICAgcmFpc2VzKFJhbmdlRXhjZXB0
aW9uLCBET01FeGNlcHRpb24pOwogCi0gICAgICAgIHZvaWQgZXhwYW5kKGluIERPTVN0cmluZyB1
bml0KQorICAgICAgICB2b2lkIGV4cGFuZChpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFs
dWVdIERPTVN0cmluZyB1bml0KQogICAgICAgICAgICAgcmFpc2VzKFJhbmdlRXhjZXB0aW9uLCBE
T01FeGNlcHRpb24pOwogCiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkgfHwgIUxB
TkdVQUdFX0pBVkFTQ1JJUFQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SZXF1ZXN0
QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmVxdWVzdEFu
aW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsCmluZGV4IDhmMGZiZmEyOTFlNmVmMzZkZjRiZGUzNDc4
NjQyN2FmNzliZjI3OTguLjVmNzI2YWZjMmIxNjk3MGMzMDRmN2ZkMjFlNWNhOWFmMzcwNWFhMzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxs
YmFjay5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZUNh
bGxiYWNrLmlkbApAQCAtMzIsNyArMzIsNiBAQCBtb2R1bGUgY29yZSB7CiAgICAgaW50ZXJmYWNl
IFsKICAgICAgICAgQ2FsbGJhY2s9RnVuY3Rpb25Pbmx5LAogICAgICAgICBDb25kaXRpb25hbD1S
RVFVRVNUX0FOSU1BVElPTl9GUkFNRSwKLSAgICAgICAgTGVnYWN5RGVmYXVsdE9wdGlvbmFsQXJn
dW1lbnRzLAogICAgIF0gUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2t7CiAgICAgICAgIGJv
b2xlYW4gaGFuZGxlRXZlbnQoaW4gRE9NVGltZVN0YW1wIHRpbWUpOwogICAgIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNv
cmUvZG9tL1N0cmluZ0NhbGxiYWNrLmlkbAppbmRleCA0NDY4ZDVlN2IxYTA2ODE5YmQ5MGI0ZDdk
MzE5OTZhYTU4NDVmZGE0Li4xZTE4ZDgzZmUwYWY0YzJhNWQ0MzJhODUwYTBiZDA4ZTNjMzJlZDJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5pZGwKQEAgLTMwLDcgKzMwLDYgQEAK
IAogbW9kdWxlIGNvcmUgewogICAgIGludGVyZmFjZSBbCi0gICAgICAgIExlZ2FjeURlZmF1bHRP
cHRpb25hbEFyZ3VtZW50cywKICAgICAgICAgQ2FsbGJhY2sKICAgICBdIFN0cmluZ0NhbGxiYWNr
IHsKICAgICAgICAgYm9vbGVhbiBoYW5kbGVFdmVudChpbiBET01TdHJpbmcgZGF0YSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
VGV4dC5pZGwKaW5kZXggYjVlZjdkYjIzZjcxMWZiNjA4ZWIwM2Q2YjVmNjgxMzIwOTNmMjdkZS4u
ZDc4MTY3N2Y1OWM5ODMxNGQ0ZjIwZjA0YTA0NTVhNTQyYWY1NTMwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1RleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0Lmlk
bApAQCAtMTksMTggKzE5LDE2IEBACiAKIG1vZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBb
Ci0gICAgICAgIExlZ2FjeURlZmF1bHRPcHRpb25hbEFyZ3VtZW50cywKLSAgICBdIFRleHQgOiBD
aGFyYWN0ZXJEYXRhIHsKKyAgICBpbnRlcmZhY2UgVGV4dCA6IENoYXJhY3RlckRhdGEgewogCiAg
ICAgICAgIC8vIERPTSBMZXZlbCAxCiAKLSAgICAgICAgVGV4dCBzcGxpdFRleHQoaW4gW0lzSW5k
ZXhdIHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQorICAgICAgICBUZXh0IHNwbGl0VGV4dChpbiBbSXNJ
bmRleCxPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gdW5zaWduZWQgbG9uZyBvZmZzZXQp
CiAgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gSW50cm9k
dWNlZCBpbiBET00gTGV2ZWwgMzoKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyAgICAgICB3aG9sZVRleHQ7Ci0gICAgICAgIFRleHQgICAgICAgICAgICAgICByZXBsYWNlV2hv
bGVUZXh0KGluIERPTVN0cmluZyBjb250ZW50KQorICAgICAgICBUZXh0ICAgICAgICAgICAgICAg
cmVwbGFjZVdob2xlVGV4dChpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0
cmluZyBjb250ZW50KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vVG91Y2hMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaExpc3QuaWRs
CmluZGV4IGI4NWU5MzgxYzU4ZjY0YmMwZTQyZjU2MzMwN2U0ZjAyM2EzM2EyZTUuLmVkZTdiZjJl
NWQ3NjIyN2ZhNjUxY2FkMGFiMDFiNjFkZmQyOTZjZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ub3VjaExpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ub3VjaExpc3Qu
aWRsCkBAIC0yNiw3ICsyNiw2IEBACiBtb2R1bGUgZXZlbnRzIHsKIAogICAgIGludGVyZmFjZSBb
Ci0gICAgICAgIExlZ2FjeURlZmF1bHRPcHRpb25hbEFyZ3VtZW50cywKICAgICAgICAgQ29uZGl0
aW9uYWw9VE9VQ0hfRVZFTlRTLAogICAgICAgICBIYXNJbmRleEdldHRlcgogICAgIF0gVG91Y2hM
aXN0IHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103019</attachid>
            <date>2011-08-04 18:29:36 -0700</date>
            <delta_ts>2011-08-04 18:49:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59855-20110805102935.patch</filename>
            <type>text/plain</type>
            <size>56991</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI0MzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDk4OWRk
YTBiNDJiZjBkMDQ0ZDM3ZTEzZWIxNjQ1OTM0MTFlZGVkNC4uYmFmNjdiNGE2NzdhZmM1YTk3ZmJm
MzY1NDdmNTZmMGMzNjA2NzMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTUxNSw2ICs1MTUs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwCiAgICAgZG9tL0RvY3VtZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwCisgICAgZG9tL0RvY3VtZW50TWFya2VyLmNwcAogICAgIGRvbS9Eb2N1bWVudEZyYWdt
ZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudFBhcnNlci5jcHAKICAgICBkb20vRG9jdW1lbnRPcmRl
cmVkTWFwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI2NWEzYTg3ODIyYmE2ZTIzMGMwYTI2MDNjNDQ0OTdj
ZmVhYThiNWEuLjdiNGM2ZjBlMTU4NWE3MjgwZTQ4Y2RhOTEyMGQ4YTg0MjA5MjQyNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw4OSBAQAorMjAxMS0wOC0wNCAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEb2N1bWVudE1hcmtlcjogVHlwZSBzcGVjaWZpYyBkZXRhaWxzIHNob3VsZCBiZSBz
ZXBhcmF0ZWx5IGhlbGQgYnkgb3RoZXIgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk4NTUKKworICAgICAgICAtIEludHJvZHVjZWQgRG9j
dW1lbnRNYXJrZXJEZXRhaWxzIGFic3RyYWN0IGNsYXNzIGFuZCB0d28gaXRzIHN1YmNsYXNzZXMK
KyAgICAgICAgICBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uIGFuZCBEb2N1bWVudE1hcmtlckFj
dGl2ZU1hdGNoLAorICAgICAgICAKKyAgICAgICAgLSBSZXBsYWNpbmcgRG9jdW1lbnRNYXJrZXI6
Om1fZGVzY3JpcHRpb24gYW5kCisgICAgICAgICAgRG9jdW1lbnRNYXJrZXI6Om1fYWN0aXZlTWF0
Y2ggd2l0aCB0aGVzZSBuZXcgZGV0YWlscyBjbGFzc2VzLgorICAgICAgICAKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRN
YXJrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmVtcHR5RGVzY3JpcHRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjpEb2N1bWVudE1hcmtlckRl
dGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjp+RG9jdW1l
bnRNYXJrZXJEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGVzY3Jp
cHRpb246OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGVz
Y3JpcHRpb246OmlzRGVzY3JpcHRpb24pOiAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudE1hcmtlckRlc2NyaXB0aW9uOjpEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNyZWF0ZVVubGVzc0VtcHR5
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNvbXBhdGli
bGVUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlclRleHRNYXRjaDo6YWN0
aXZlTWF0Y2gpOiAgICAKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyVGV4dE1hdGNo
Ojppc1RleHRNYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlclRleHRNYXRj
aDo6RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRN
YXJrZXJUZXh0TWF0Y2g6Omluc3RhbmNlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TWFya2VyVGV4dE1hdGNoOjpjb21wYXRpYmxlVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TWFya2VyOjpzaGlmdE9mZnNldHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6
OnNldEFjdGl2ZU1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpkZXNj
cmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6YWN0aXZlTWF0Y2gp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlci5oOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnRNYXJrZXI6OmRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6
OmNsZWFyRGV0YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckRldGFpbHM6
OmlzRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxz
Ojppc1RleHRNYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckRldGFpbHM6
OmlzQWxsb3dlZEZvcik6CisgICAgICAgICogZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OmNsZWFyRGVz
Y3JpcHRpb25Pbk1hcmtlcnNJbnRlcnNlY3RpbmdSYW5nZSk6CisgICAgICAgICogZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0
Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2Vycyk6CisKKzIwMTEtMDgt
MDQgIE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlbW92
ZSBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1bWVudHMgZmxhZyBmcm9tIERPTS1yZWxhdGVkIGZp
bGVzIGV4Y2VwdCBEb2N1bWVudC5pZGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY1NzE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIGFsbCBleGlzdGluZyB0ZXN0cyBwYXNzLgorCisgICAg
ICAgICogZG9tL0NoYXJhY3RlckRhdGEuaWRsOgorICAgICAgICAqIGRvbS9DbGllbnRSZWN0TGlz
dC5pZGw6CisgICAgICAgICogZG9tL0NsaXBib2FyZC5pZGw6CisgICAgICAgICogZG9tL0RPTUlt
cGxlbWVudGF0aW9uLmlkbDoKKyAgICAgICAgKiBkb20vRE9NU3RyaW5nTGlzdC5pZGw6CisgICAg
ICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNm
ZXJJdGVtcy5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsOgorICAgICAg
ICAqIGRvbS9FbGVtZW50LmlkbDoKKyAgICAgICAgKiBkb20vRXZlbnRMaXN0ZW5lci5pZGw6Cisg
ICAgICAgICogZG9tL0V2ZW50VGFyZ2V0LmlkbDoKKyAgICAgICAgKiBkb20vTWVkaWFTdHJlYW0u
aWRsOgorICAgICAgICAqIGRvbS9NZWRpYVN0cmVhbUxpc3QuaWRsOgorICAgICAgICAqIGRvbS9N
ZWRpYVN0cmVhbVRyYWNrTGlzdC5pZGw6CisgICAgICAgICogZG9tL01lc3NhZ2VQb3J0LmlkbDoK
KyAgICAgICAgKiBkb20vTmFtZWROb2RlTWFwLmlkbDoKKyAgICAgICAgKiBkb20vTm9kZS5pZGw6
CisgICAgICAgICogZG9tL05vZGVGaWx0ZXIuaWRsOgorICAgICAgICAqIGRvbS9Ob2RlTGlzdC5p
ZGw6CisgICAgICAgICogZG9tL1JhbmdlLmlkbDoKKyAgICAgICAgKiBkb20vUmVxdWVzdEFuaW1h
dGlvbkZyYW1lQ2FsbGJhY2suaWRsOgorICAgICAgICAqIGRvbS9TdHJpbmdDYWxsYmFjay5pZGw6
CisgICAgICAgICogZG9tL1RleHQuaWRsOgorICAgICAgICAqIGRvbS9Ub3VjaExpc3QuaWRsOgor
CiAyMDExLTA4LTA0ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgRnV0
dXJlLXByb29mIFhjb2RlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQppbmRleCA5NWM5ZjlhZjYyY2RiMjRlMDlkNzVmNGFmMmYzNGQ1MTYyZmE2Yjcz
Li40NmU5MDRkYjJjNjFhNGVhMWFmZDRiZjU0MmI2MjZiYWY1MmNiYzg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTExMzIsNiArMTEzMiw3IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1h
cmtlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0MjIyMjExYjMy
Njc3N2U1NmEzZjVlMTVlZGNlMDE4Njk3ZjBlMGJkLi42OTMyZWY5ZjJmNTg5NjdhYTU0ODIxZmFj
NzIwYjg0YjUzNGFiOTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01MjY2LDYgKzUyNjYsNyBAQAog
ICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVu
dEZyYWdtZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxl
ci5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudE1hcmtlci5jcHAnLAogICAgICAgICAg
ICAgJ2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwJywKICAgICAgICAgICAgICdkb20vRG9jdW1l
bnRQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdkb20vRG9jdW1lbnRUeXBlLmNwcCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUucHJvCmluZGV4IGFkZjQzMWY0MjQzZDBmNzY1YWY1ZmZlODgzOWM4OGIyMWY5NDBmYTkuLmVj
YTgwMWI3MDViNDNiMjQwNjM5MDg4YWEzMWY4YjRjMDcwMTJjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBA
IC00NzgsNiArNDc4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL0RvY3VtZW50LmNwcCBcCiAg
ICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIFwKICAgICBkb20vRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLmNwcCBcCisgICAgZG9tL0RvY3VtZW50TWFya2VyLmNwcCBcCiAgICAgZG9tL0RvY3Vt
ZW50T3JkZXJlZE1hcC5jcHAgXAogICAgIGRvbS9Eb2N1bWVudFBhcnNlci5jcHAgXAogICAgIGRv
bS9Eb2N1bWVudFR5cGUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKaW5kZXggYTE0ODFiYWM0NTY1YTllMDI5MGViZDIxZmU0MmRiNmY3ZDJhMDIx
ZC4uN2YzY2JjODVhZDY2YzdkZDQxZGNmOTljYjQ2M2E0OWZjZGUzZDQzZiAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQ0NzUwLDYgKzQ0NzUw
LDU4IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGRvbVxEb2N1bWVudE1hcmtlci5jcHAiCisJCQkJPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJ
CQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJ
TmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJ
CT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJ
CQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFt
ZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJ
CQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgor
CQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJPC9GaWxlPgorCQkJ
PEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEb2N1bWVudE9yZGVyZWRNYXAuY3BwIgog
CQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNDBmZDg1YTJjNjc5ZGNjMGIzZTBi
Nzk1NDMxZTM3ZWYxMjkzMzQ5Li5iMGNhY2IzMzAyZjNkZjNlNzUwZDRmM2M3YTFmOTFhNDA3YWM4
MWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0zMzczLDYgKzMzNzMsNyBAQAogCQlBNzc5NzkyOTBENkI5RTY0MDAzODUxQjkg
LyogSlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5oICovOyB9Owog
CQlBNzdCNDFBMDEyRTY3NUE5MDA1NDM0M0QgLyogVGV4dEV2ZW50SW5wdXRUeXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzdCNDE5RjEyRTY3NUE5
MDA1NDM0M0QgLyogVGV4dEV2ZW50SW5wdXRUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc3RDAwMTIxMzNCMEFFQjAwRDY2NThDIC8qIFRl
eHRDaGVja2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTc3RDAwMTExMzNCMEFFQjAwRDY2NThDIC8qIFRleHRDaGVja2luZy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUE3ODFDNkE3MTM4MjhCNUQw
MDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNzgxQzZBNjEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRN
YXJrZXIuY3BwICovOyB9OwogCQlBNzg0OTQxQjBCNUZFNTA3MDAxRTIzN0EgLyogQ2xpcGJvYXJk
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3ODQ5
NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICovOyB9OwogCQlBNzhFNTI2RjEz
NDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEU1MjZEMTM0NkJEMTcwMEFEOUMzMSAv
KiBNZXRlclNoYWRvd0VsZW1lbnQuY3BwICovOyB9OwogCQlBNzhFNTI3MDEzNDZCRDE3MDBBRDlD
MzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzhFNTI2RTEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dF
bGVtZW50LmggKi87IH07CkBAIC05OTY4LDYgKzk5NjksNyBAQAogCQlBNzc5NzkyNTBENkI5RTY0
MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNJbWFnZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3QjQxOUYx
MkU2NzVBOTAwNTQzNDNEIC8qIFRleHRFdmVudElucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUZXh0RXZlbnRJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTc3RDAwMTExMzNCMEFFQjAwRDY2NThDIC8qIFRleHRDaGVja2luZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0Q2hlY2tpbmcuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc4MUM2QTYxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50
TWFya2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERvY3VtZW50
TWFya2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4NDk0MUEwQjVGRTUw
NzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ2xpcGJvYXJkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc4
RTUyNkQxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxlbWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZXRlclNoYWRvd0VsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzhFNTI2RTEzNDZCRDE3MDBBRDlDMzEgLyogTWV0
ZXJTaGFkb3dFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1ldGVy
U2hhZG93RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk3NzMsNiAr
MTk3NzUsNyBAQAogCQkJCTU5QTg1RUFBMTE5RDdCNkUwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRh
dGlvbkV2ZW50LmlkbCAqLywKIAkJCQk0OTBDNDdDRDEzRTgyRDE4MDBGN0FCODIgLyogRGlzcGF0
Y2hUYXNrLmggKi8sCiAJCQkJQTgxODVGMzQwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3VtZW50LmNw
cCAqLywKKwkJCQlBNzgxQzZBNjEzODI4QjVEMDAxMkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3Bw
ICovLAogCQkJCUE4MTg1RjM4MDk3NjU3NjUwMDU4MjZEOSAvKiBEb2N1bWVudC5oICovLAogCQkJ
CTY1NDhFMjQ4MDlFMUUwNEQwMEFGODAyMCAvKiBEb2N1bWVudC5pZGwgKi8sCiAJCQkJQTgxODVG
MzcwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3VtZW50RnJhZ21lbnQuY3BwICovLApAQCAtMjM5NDEs
NiArMjM5NDQsNyBAQAogCQkJCUE4MTg1RjNGMDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1bWVudEZy
YWdtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRTIyN0UwMEFGNTg5QUQwMEQ0ODMyNCAv
KiBEb2N1bWVudExvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzI2NDk3QTBEN0UyNDhB
MDBCRDEwRjIgLyogRG9jdW1lbnRMb2FkZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTc4
MUM2QTcxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUNFMDU3RkE1MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ5NDdGRkQxMkY4MENEMjAwQTBGNjMxIC8qIERv
Y3VtZW50T3JkZXJlZE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEMyMjgwRTExRDRBNTk3
MDBENUE3RDMgLyogRG9jdW1lbnRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vQ2hhcmFjdGVyRGF0YS5pZGwKaW5kZXggMDAzOGZkZTliMmY3NGViZjJlYzkzM2M2Mjk2NTA4
NTBjYTMwNzVjOS4uY2E0NDc0MWM1MzA0ZjA2ODY2NGRkMGJjN2RmNjhiODQyOTBkYjAzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NoYXJhY3RlckRhdGEuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmlkbApAQCAtMTksMzMgKzE5LDMxIEBACiAKIG1v
ZHVsZSBjb3JlIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIExlZ2FjeURlZmF1bHRPcHRp
b25hbEFyZ3VtZW50cywKLSAgICBdIENoYXJhY3RlckRhdGEgOiBOb2RlIHsKKyAgICBpbnRlcmZh
Y2UgQ2hhcmFjdGVyRGF0YSA6IE5vZGUgewogCiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBkYXRhCiAgICAgICAgICAgICBzZXR0ZXIgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbGVuZ3RoOwogICAgICAgICAKLSAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbCwg
T2xkU3R5bGVPYmpDXSBET01TdHJpbmcgc3Vic3RyaW5nRGF0YShpbiBbSXNJbmRleF0gdW5zaWdu
ZWQgbG9uZyBvZmZzZXQsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBsZW5ndGgpCisg
ICAgICAgIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGwsIE9sZFN0eWxlT2JqQ10gRE9NU3RyaW5n
IHN1YnN0cmluZ0RhdGEoaW4gW0lzSW5kZXgsT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVd
IHVuc2lnbmVkIGxvbmcgb2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbSXNJbmRleCxPcHRp
b25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gdW5zaWduZWQgbG9uZyBsZW5ndGgpCiAgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICB2b2lkIGFwcGVuZERhdGEoaW4g
RE9NU3RyaW5nIGRhdGEpCisgICAgICAgIHZvaWQgYXBwZW5kRGF0YShpbiBbT3B0aW9uYWw9Q2Fs
bFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBkYXRhKQogICAgICAgICAgICAgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAKLSAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBpbnNlcnREYXRhKGlu
IFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIG9mZnNldCwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICBpbiBET01TdHJpbmcgZGF0YSkKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBpbnNlcnRE
YXRhKGluIFtJc0luZGV4LE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSB1bnNpZ25lZCBs
b25nIG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBb
T3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBkYXRhKQogICAgICAgICAg
ICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBk
ZWxldGVEYXRhKGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIG9mZnNldCwgCi0gICAgICAgICAg
ICAgICAgICAgICAgICBpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBsZW5ndGgpCisgICAgICAg
IFtPbGRTdHlsZU9iakNdIHZvaWQgZGVsZXRlRGF0YShpbiBbSXNJbmRleCxPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gdW5zaWduZWQgbG9uZyBvZmZzZXQsIAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gW0lzSW5kZXgsT3B0aW9uYWw9Q2FsbFdpdGhEZWZh
dWx0VmFsdWVdIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKLSAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCByZXBsYWNlRGF0YShpbiBb
SXNJbmRleF0gdW5zaWduZWQgbG9uZyBvZmZzZXQsIAotICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIGxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBET01TdHJpbmcgZGF0YSkKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCByZXBs
YWNlRGF0YShpbiBbSXNJbmRleCxPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gdW5zaWdu
ZWQgbG9uZyBvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtJc0luZGV4LE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSB1bnNpZ25lZCBsb25n
IGxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0
aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBkYXRhKQogICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpZW50
UmVjdExpc3QuaWRsCmluZGV4IGQ0OGZjODQwZDI5MzVjN2I5MzE0YTI0YzkyNjBjMTc3OTJjNzli
ZDcuLmVlNDYyOWMzMGJiOTY2Y2RjY2Y1NGUyNjNhMmI3YTMyOGVmN2ExZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9DbGllbnRSZWN0TGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NsaWVudFJlY3RMaXN0LmlkbApAQCAtMjcsMTEgKzI3LDEwIEBACiBtb2R1bGUgdmll
dyB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1
bWVudHMsCiAgICAgICAgIEhhc0luZGV4R2V0dGVyCiAgICAgXSBDbGllbnRSZWN0TGlzdCB7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKLSAgICAgICAg
Q2xpZW50UmVjdCBpdGVtKGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKyAgICAg
ICAgQ2xpZW50UmVjdCBpdGVtKGluIFtJc0luZGV4LE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZh
bHVlXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKICAgICAgICAgLy8gRklYTUU6IEZpeCBsaXN0IGJl
aGF2aW9yIHRvIGFsbG93IGN1c3RvbSBleGNlcHRpb25zIHRvIGJlIHRocm93bi4KICAgICB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsCmluZGV4IDg2ZDExNjFjZWMxZGQ4YmEzODI4YmJjNWU2
ZTFmMGM1ZGVjNWVhNzYuLmQ1YmIzMzExN2Q0NDk2MmM4NWQ4ZTJjYTZlM2E3NjJiY2U3OGMzYzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsCkBAIC0yOCw5ICsyOCw3IEBACiAKIG1vZHVsZSBj
b3JlIHsKIAotICAgIGludGVyZmFjZSBbCi0gICAgICAgIExlZ2FjeURlZmF1bHRPcHRpb25hbEFy
Z3VtZW50cywKLSAgICBdIENsaXBib2FyZCB7CisgICAgaW50ZXJmYWNlIENsaXBib2FyZCB7CiAg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1VbmRlZmluZWRd
IERPTVN0cmluZyBkcm9wRWZmZWN0OwogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsU3RyaW5nVG89VW5kZWZpbmVkXSBET01TdHJpbmcgZWZmZWN0QWxsb3dlZDsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDdXN0b21HZXR0ZXJdIEFycmF5IHR5cGVzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01BbGxJbk9uZS5jcHAKaW5kZXggYjhiODVkNTg1OWY1OTRhN2MyYWExYjhlNDE0YTNi
ZjRmNWY1MWIzOC4uZTM4OWNkMWVmMTg4NGRiMjk1MGVhNTU2OTU2OTZlZjc3YzAzZTZjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAi
RGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnQuY3BwIgogI2lu
Y2x1ZGUgIkRvY3VtZW50RnJhZ21lbnQuY3BwIgorI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmNw
cCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIgogI2luY2x1ZGUgIkRv
Y3VtZW50T3JkZXJlZE1hcC5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnRQYXJzZXIuY3BwIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5pZGwKaW5kZXggMzZhZWFiY2FhOTFkODFh
ZGU4YjIzM2JmOTdlODJmODBjN2M3NTIyMy4uZDk2MzI5NDk4MDY1MjAyMDQwZDAxOTllYzc1ZWZi
ODg0YjUzZWQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0
aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uaWRsCkBA
IC0yMSwzNiArMjEsMzUgQEAKIG1vZHVsZSBjb3JlIHsKIAogICAgIGludGVyZmFjZSBbCi0gICAg
ICAgIExlZ2FjeURlZmF1bHRPcHRpb25hbEFyZ3VtZW50cywKICAgICAgICAgR2VuZXJhdGVJc1Jl
YWNoYWJsZT1JbXBsRG9jdW1lbnQsCiAgICAgICAgIFY4RGVwZW5kZW50TGlmZXRpbWUKICAgICBd
IERPTUltcGxlbWVudGF0aW9uIHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMQogCi0gICAgICAg
IFtPbGRTdHlsZU9iakNdIGJvb2xlYW4gaGFzRmVhdHVyZShpbiBET01TdHJpbmcgZmVhdHVyZSwg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbQ29udmVydE51
bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2ZXJzaW9uKTsKKyAgICAgICAgW09sZFN0eWxlT2Jq
Q10gYm9vbGVhbiBoYXNGZWF0dXJlKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0g
RE9NU3RyaW5nIGZlYXR1cmUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVs
dFZhbHVlXSBET01TdHJpbmcgdmVyc2lvbik7CiAKICAgICAgICAgLy8gRE9NIExldmVsIDIKIAot
ICAgICAgICBbT2xkU3R5bGVPYmpDXSBEb2N1bWVudFR5cGUgY3JlYXRlRG9jdW1lbnRUeXBlKGlu
IFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgcXVhbGlmaWVk
TmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBbQ29udmVydFVuZGVmaW5lZE9yTnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHB1
YmxpY0lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIFtDb252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
c3lzdGVtSWQpCisgICAgICAgIFtPbGRTdHlsZU9iakNdIERvY3VtZW50VHlwZSBjcmVhdGVEb2N1
bWVudFR5cGUoaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJpbmcsT3B0aW9uYWw9
Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBxdWFsaWZpZWROYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtDb252ZXJ0
VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVl
XSBET01TdHJpbmcgcHVibGljSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW0NvbnZlcnRVbmRlZmluZWRPck51bGxUb051bGxTdHJp
bmcsT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBzeXN0ZW1JZCkKICAg
ICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBbT2xkU3R5bGVPYmpDXSBE
b2N1bWVudCBjcmVhdGVEb2N1bWVudChpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0
cmluZyBuYW1lc3BhY2VVUkksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBxdWFsaWZp
ZWROYW1lLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBEb2N1bWVudFR5cGUgZG9jdHlwZSkKKyAgICAg
ICAgW09sZFN0eWxlT2JqQ10gRG9jdW1lbnQgY3JlYXRlRG9jdW1lbnQoaW4gW0NvbnZlcnROdWxs
VG9OdWxsU3RyaW5nLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFt
ZXNwYWNlVVJJLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZh
bHVlXSBET01TdHJpbmcgcXVhbGlmaWVkTmFtZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyxPcHRpb25h
bD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRG9jdW1lbnRUeXBlIGRvY3R5cGUpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICAvLyBET01JbXBsZW1lbnRhdGlvbkNT
UyBpbnRlcmZhY2UgZnJvbSBET00gTGV2ZWwgMiBDU1MKIAotICAgICAgICBbT2xkU3R5bGVPYmpD
XSBDU1NTdHlsZVNoZWV0IGNyZWF0ZUNTU1N0eWxlU2hlZXQoaW4gRE9NU3RyaW5nIHRpdGxlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gRE9NU3RyaW5nIG1lZGlhKQorICAgICAgICBbT2xkU3R5bGVPYmpDXSBDU1NTdHlsZVNoZWV0
IGNyZWF0ZUNTU1N0eWxlU2hlZXQoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBE
T01TdHJpbmcgdGl0bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0
cmluZyBtZWRpYSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAg
IC8vIEhUTUxET01JbXBsZW1lbnRhdGlvbiBpbnRlcmZhY2UgZnJvbSBET00gTGV2ZWwgMiBIVE1M
CiAKLSAgICAgICAgSFRNTERvY3VtZW50IGNyZWF0ZUhUTUxEb2N1bWVudChpbiBET01TdHJpbmcg
dGl0bGUpOworICAgICAgICBIVE1MRG9jdW1lbnQgY3JlYXRlSFRNTERvY3VtZW50KGluIFtPcHRp
b25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHRpdGxlKTsKICAgICB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTGlzdC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTGlzdC5pZGwKaW5kZXggZmI3YTJjZWY1M2FkNTIzOTRh
ODg2ZDdiMDNjZTc0N2RiZTk5YTVlMS4uNDNhZjgyNTlmMGMwY2FkYTYwZDk1OTk0ZDM3NWViNzY0
YzU3ZGE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ0xpc3QuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01TdHJpbmdMaXN0LmlkbApAQCAtMjYsMTMgKzI2
LDEyIEBACiBtb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBMZWdhY3lE
ZWZhdWx0T3B0aW9uYWxBcmd1bWVudHMsCiAgICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3IsCiAg
ICAgICAgIEhhc0luZGV4R2V0dGVyCiAgICAgXSBET01TdHJpbmdMaXN0IHsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwotICAgICAgICBbQ29udmVydE51
bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgaXRlbShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9u
ZyBpbmRleCk7Ci0gICAgICAgIGJvb2xlYW4gY29udGFpbnMoaW4gRE9NU3RyaW5nIHN0cmluZyk7
CisgICAgICAgIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBpdGVtKGluIFtJ
c0luZGV4LE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSB1bnNpZ25lZCBsb25nIGluZGV4
KTsKKyAgICAgICAgYm9vbGVhbiBjb250YWlucyhpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0
VmFsdWVdIERPTVN0cmluZyBzdHJpbmcpOwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
YXRhVHJhbnNmZXJJdGVtLmlkbAppbmRleCA4YmU5YWExZjgxODdhMGU5M2E3OGZkNjA5OWFkYTRj
MDM5MWI5YjEzLi5iZWZkN2UyYjEzZWY3ODBjYmY1ZDcyNGE0OGQ3NjVmZWI0ODI4Y2ZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsCkBAIC0zMiwxMiArMzIsMTEgQEAg
bW9kdWxlIGNvcmUgewogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9REFU
QV9UUkFOU0ZFUl9JVEVNUywKLSAgICAgICAgTGVnYWN5RGVmYXVsdE9wdGlvbmFsQXJndW1lbnRz
LAogICAgIF0gRGF0YVRyYW5zZmVySXRlbSB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcga2luZDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBl
OwogCi0gICAgICAgIHZvaWQgZ2V0QXNTdHJpbmcoaW4gW0NhbGxiYWNrXSBTdHJpbmdDYWxsYmFj
ayBjYWxsYmFjayk7CisgICAgICAgIHZvaWQgZ2V0QXNTdHJpbmcoaW4gW0NhbGxiYWNrLE9wdGlv
bmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBTdHJpbmdDYWxsYmFjayBjYWxsYmFjayk7CiAgICAg
ICAgIEJsb2IgZ2V0QXNGaWxlKCk7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJh
bnNmZXJJdGVtcy5pZGwKaW5kZXggYThkNWExZjE4MWI5MGIyZTY0MjFiMzUxMGY4ZTc3ZDVjZjJh
OTYwMS4uMmM3ZjFlYzhkOGQ1NzkxMDJmODM2MDFkOTkzNjMyOWNhYWE0NjI4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsCkBAIC0zMiwxNyArMzIsMTcgQEAgbW9k
dWxlIGNvcmUgewogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9REFUQV9U
UkFOU0ZFUl9JVEVNUywKLSAgICAgICAgTGVnYWN5RGVmYXVsdE9wdGlvbmFsQXJndW1lbnRzLAog
ICAgICAgICBIYXNJbmRleEdldHRlciwKICNpZiBkZWZpbmVkKFY4X0JJTkRJTkcpICYmIFY4X0JJ
TkRJTkcKICAgICAgICAgQ3VzdG9tRGVsZXRlUHJvcGVydHksCiAjZW5kaWYKICAgICBdIERhdGFU
cmFuc2Zlckl0ZW1zIHsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbGVuZ3RoOwot
ICAgICAgICBEYXRhVHJhbnNmZXJJdGVtIGl0ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCkgZ2V0
dGVyOworICAgICAgICBEYXRhVHJhbnNmZXJJdGVtIGl0ZW0oaW4gW09wdGlvbmFsPUNhbGxXaXRo
RGVmYXVsdFZhbHVlXSB1bnNpZ25lZCBsb25nIGluZGV4KSBnZXR0ZXI7CiAKICAgICAgICAgdm9p
ZCBjbGVhcigpOwotICAgICAgICB2b2lkIGFkZChpbiBET01TdHJpbmcgZGF0YSwgaW4gRE9NU3Ry
aW5nIHR5cGUpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIGFkZChpbiBbT3B0
aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBkYXRhLCAKKyAgICAgICAgICAg
ICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgdHlwZSkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50RnJhZ21lbnQuaWRsCmluZGV4IGM4YmZiY2Q3MWE4Mjg1NmE1NzZiNDM1OGE4NDFhY2ZkOTEx
NDMzNDEuLjg4MmI2MmRiMzllYjdmMmUwNTA0NzgyMDQ5MmI3ZTkzNjFhOGVkZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEZyYWdtZW50LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRGcmFnbWVudC5pZGwKQEAgLTE5LDEzICsxOSwxMSBAQAogCiBt
b2R1bGUgY29yZSB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBMZWdhY3lEZWZhdWx0T3B0
aW9uYWxBcmd1bWVudHMsCi0gICAgXSBEb2N1bWVudEZyYWdtZW50IDogTm9kZSB7CisgICAgaW50
ZXJmYWNlIERvY3VtZW50RnJhZ21lbnQgOiBOb2RlIHsKICAgICAgICAgLy8gTm9kZVNlbGVjdG9y
IC0gU2VsZWN0b3IgQVBJCi0gICAgICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gRWxl
bWVudCBxdWVyeVNlbGVjdG9yKGluIERPTVN0cmluZyBzZWxlY3RvcnMpCisgICAgICAgIEVsZW1l
bnQgcXVlcnlTZWxlY3RvcihpbiBET01TdHJpbmcgc2VsZWN0b3JzKQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtSZXF1aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0g
Tm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChpbiBET01TdHJpbmcgc2VsZWN0b3JzKQorICAgICAg
ICBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKGluIERPTVN0cmluZyBzZWxlY3RvcnMpCiAgICAg
ICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50TWFya2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDE4ZjIyYTYwYzY3MmQ4YWE2NWJkOTYwYzg1
Y2VkNmFiNGY5OWFhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50TWFya2VyLmNwcApAQCAtMCwwICsxLDE2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJEb2N1bWVudE1hcmtlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RvY3VtZW50
TWFya2VyRGV0YWlsczo6fkRvY3VtZW50TWFya2VyRGV0YWlscygpCit7Cit9CisKK2NsYXNzIERv
Y3VtZW50TWFya2VyRGVzY3JpcHRpb24gOiBwdWJsaWMgRG9jdW1lbnRNYXJrZXJEZXRhaWxzIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9u
PiBjcmVhdGUoY29uc3QgU3RyaW5nJik7CisKKyAgICBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQorCisgICAgdmlydHVhbCBib29sIGlz
RGVzY3JpcHRpb24oKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKK3ByaXZhdGU6CisgICAgRG9j
dW1lbnRNYXJrZXJEZXNjcmlwdGlvbihjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKQorICAgICAg
ICA6IG1fZGVzY3JpcHRpb24oZGVzY3JpcHRpb24pCisgICAgeworICAgIH0KKworICAgIFN0cmlu
ZyBtX2Rlc2NyaXB0aW9uOworfTsKKworUGFzc1JlZlB0cjxEb2N1bWVudE1hcmtlckRlc2NyaXB0
aW9uPiBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXNj
cmlwdGlvbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IERvY3VtZW50TWFya2VyRGVzY3Jp
cHRpb24oZGVzY3JpcHRpb24pKTsKK30KKworaW5saW5lIERvY3VtZW50TWFya2VyRGVzY3JpcHRp
b24qIHRvRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbihEb2N1bWVudE1hcmtlckRldGFpbHMqIGRl
dGFpbHMpCit7CisgICAgaWYgKGRldGFpbHMgJiYgZGV0YWlscy0+aXNEZXNjcmlwdGlvbigpKQor
ICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbio+KGRl
dGFpbHMpOworICAgIHJldHVybiAwOworfQorCisKK2NsYXNzIERvY3VtZW50TWFya2VyVGV4dE1h
dGNoIDogcHVibGljIERvY3VtZW50TWFya2VyRGV0YWlscyB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g+IGluc3RhbmNlRm9yKGJvb2wpOwor
CisgICAgYm9vbCBhY3RpdmVNYXRjaCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0Y2g7IH0KKworICAg
IHZpcnR1YWwgYm9vbCBpc1RleHRNYXRjaCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKworcHJp
dmF0ZToKKyAgICBleHBsaWNpdCBEb2N1bWVudE1hcmtlclRleHRNYXRjaChib29sIG1hdGNoKQor
ICAgICAgICA6IG1fbWF0Y2gobWF0Y2gpCisgICAgeworICAgIH0KKworICAgIGJvb2wgbV9tYXRj
aDsKK307CisKK1Bhc3NSZWZQdHI8RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g+IERvY3VtZW50TWFy
a2VyVGV4dE1hdGNoOjppbnN0YW5jZUZvcihib29sIG1hdGNoKQoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoUmVmUHRyPERvY3VtZW50TWFya2VyVGV4dE1hdGNoPiwgdHJ1ZUluc3RhbmNlLCAo
YWRvcHRSZWYobmV3IERvY3VtZW50TWFya2VyVGV4dE1hdGNoKHRydWUpKSkpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoUmVmUHRyPERvY3VtZW50TWFya2VyVGV4dE1hdGNoPiwgZmFsc2VJbnN0
YW5jZSwgKGFkb3B0UmVmKG5ldyBEb2N1bWVudE1hcmtlclRleHRNYXRjaChmYWxzZSkpKSk7Cisg
ICAgcmV0dXJuIG1hdGNoID8gdHJ1ZUluc3RhbmNlIDogZmFsc2VJbnN0YW5jZTsKK30KKworaW5s
aW5lIERvY3VtZW50TWFya2VyVGV4dE1hdGNoKiB0b0RvY3VtZW50TWFya2VyVGV4dE1hdGNoKERv
Y3VtZW50TWFya2VyRGV0YWlscyogZGV0YWlscykKK3sKKyAgICBpZiAoZGV0YWlscyAmJiBkZXRh
aWxzLT5pc1RleHRNYXRjaCgpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RG9jdW1lbnRN
YXJrZXJUZXh0TWF0Y2gqPihkZXRhaWxzKTsKKyAgICByZXR1cm4gMDsKK30KKworCitEb2N1bWVu
dE1hcmtlcjo6RG9jdW1lbnRNYXJrZXIoKSAKKyAgICA6IG1fdHlwZShTcGVsbGluZykKKyAgICAs
IG1fc3RhcnRPZmZzZXQoMCkKKyAgICAsIG1fZW5kT2Zmc2V0KDApCit7Cit9CisKK0RvY3VtZW50
TWFya2VyOjpEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlIHR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zm
c2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQpCisgICAgOiBtX3R5cGUodHlwZSkKKyAgICAsIG1fc3Rh
cnRPZmZzZXQoc3RhcnRPZmZzZXQpCisgICAgLCBtX2VuZE9mZnNldChlbmRPZmZzZXQpCit7Cit9
CisKK0RvY3VtZW50TWFya2VyOjpEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlIHR5cGUsIHVuc2ln
bmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGNvbnN0IFN0cmluZyYgZGVzY3Jp
cHRpb24pCisgICAgOiBtX3R5cGUodHlwZSkKKyAgICAsIG1fc3RhcnRPZmZzZXQoc3RhcnRPZmZz
ZXQpCisgICAgLCBtX2VuZE9mZnNldChlbmRPZmZzZXQpCisgICAgLCBtX2RldGFpbHMoZGVzY3Jp
cHRpb24uaXNFbXB0eSgpID8gMCA6IERvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNyZWF0ZShk
ZXNjcmlwdGlvbikpCit7Cit9CisKK0RvY3VtZW50TWFya2VyOjpEb2N1bWVudE1hcmtlcih1bnNp
Z25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBib29sIGFjdGl2ZU1hdGNoKQor
ICAgIDogbV90eXBlKERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2gpCisgICAgLCBtX3N0YXJ0T2Zm
c2V0KHN0YXJ0T2Zmc2V0KQorICAgICwgbV9lbmRPZmZzZXQoZW5kT2Zmc2V0KQorICAgICwgbV9k
ZXRhaWxzKERvY3VtZW50TWFya2VyVGV4dE1hdGNoOjppbnN0YW5jZUZvcihhY3RpdmVNYXRjaCkp
Cit7Cit9CisKK3ZvaWQgRG9jdW1lbnRNYXJrZXI6OmNsZWFyRGV0YWlscygpCit7CisgICAgbV9k
ZXRhaWxzLmNsZWFyKCk7Cit9CisKK3ZvaWQgRG9jdW1lbnRNYXJrZXI6OnNoaWZ0T2Zmc2V0cyhp
bnQgZGVsdGEpCit7CisgICAgbV9zdGFydE9mZnNldCArPSBkZWx0YTsKKyAgICBtX2VuZE9mZnNl
dCArPSBkZWx0YTsKK30KKwordm9pZCBEb2N1bWVudE1hcmtlcjo6c2V0QWN0aXZlTWF0Y2goYm9v
bCBhY3RpdmUpCit7CisgICAgbV9kZXRhaWxzID0gRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6Omlu
c3RhbmNlRm9yKGFjdGl2ZSk7Cit9CisKK2NvbnN0IFN0cmluZyYgRG9jdW1lbnRNYXJrZXI6OmRl
c2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAoRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbiog
ZGV0YWlscyA9IHRvRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbihtX2RldGFpbHMuZ2V0KCkpKQor
ICAgICAgICByZXR1cm4gZGV0YWlscy0+ZGVzY3JpcHRpb24oKTsKKyAgICByZXR1cm4gZW1wdHlT
dHJpbmcoKTsKK30KKworYm9vbCBEb2N1bWVudE1hcmtlcjo6YWN0aXZlTWF0Y2goKSBjb25zdAor
eworICAgIGlmIChEb2N1bWVudE1hcmtlclRleHRNYXRjaCogZGV0YWlscyA9IHRvRG9jdW1lbnRN
YXJrZXJUZXh0TWF0Y2gobV9kZXRhaWxzLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIGRldGFpbHMt
PmFjdGl2ZU1hdGNoKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCmluZGV4IGQ2NzBlMmMwYjAzMjAx
M2M2MzNhYmY0ZWJjOTg4NDVkNTE0Yjc5NmYuLjMxYTEwN2ZjZDBiNzIxMDQyYmM1ZTdhZTQ3NTg1
ZGIyNjgyMmQ1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCkBAIC0yNSwxMCAr
MjUsMTQgQEAKIAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3VtZW50TWFya2VyRGV0
YWlsczsKKwogLy8gQSByYW5nZSBvZiBhIG5vZGUgd2l0aGluIGEgZG9jdW1lbnQgdGhhdCBpcyAi
bWFya2VkIiwgc3VjaCBhcyB0aGUgcmFuZ2Ugb2YgYSBtaXNzcGVsbGVkIHdvcmQuCiAvLyBJdCBv
cHRpb25hbGx5IGluY2x1ZGVzIGEgZGVzY3JpcHRpb24gdGhhdCBjb3VsZCBiZSBkaXNwbGF5ZWQg
aW4gdGhlIHVzZXIgaW50ZXJmYWNlLgogLy8gSXQgYWxzbyBvcHRpb25hbGx5IGluY2x1ZGVzIGEg
ZmxhZyBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhlIG1hdGNoIGlzIGFjdGl2ZSwgd2hpY2ggaXMgaWdu
b3JlZApAQCAtOTQsMTIgKzk4LDEzIEBAIHB1YmxpYzoKICAgICBNYXJrZXJUeXBlIHR5cGUoKSBj
b25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAgICB1bnNpZ25lZCBzdGFydE9mZnNldCgpIGNvbnN0
IHsgcmV0dXJuIG1fc3RhcnRPZmZzZXQ7IH0KICAgICB1bnNpZ25lZCBlbmRPZmZzZXQoKSBjb25z
dCB7IHJldHVybiBtX2VuZE9mZnNldDsgfQotICAgIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24o
KSBjb25zdCB7IHJldHVybiBtX2Rlc2NyaXB0aW9uOyB9Ci0gICAgYm9vbCBoYXNEZXNjcmlwdGlv
bigpIGNvbnN0IHsgcmV0dXJuICFtX2Rlc2NyaXB0aW9uLmlzRW1wdHkoKTsgfQotICAgIGJvb2wg
YWN0aXZlTWF0Y2goKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZU1hdGNoOyB9CisKKyAgICBjb25z
dCBTdHJpbmcmIGRlc2NyaXB0aW9uKCkgY29uc3Q7CisgICAgYm9vbCBhY3RpdmVNYXRjaCgpIGNv
bnN0OworICAgIERvY3VtZW50TWFya2VyRGV0YWlscyogZGV0YWlscygpIGNvbnN0OwogCiAgICAg
dm9pZCBzZXRBY3RpdmVNYXRjaChib29sKTsKLSAgICB2b2lkIGNsZWFyRGVzY3JpcHRpb24oKSB7
IG1fZGVzY3JpcHRpb24gPSBTdHJpbmcoKTsgfQorICAgIHZvaWQgY2xlYXJEZXRhaWxzKCk7CiAK
ICAgICAvLyBPZmZzZXQgbW9kaWZpY2F0aW9ucyBhcmUgZG9uZSBieSBEb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIuCiAgICAgLy8gT3RoZXIgY2xhc3NlcyBzaG91bGQgbm90IGNhbGwgZm9sbG93aW5n
IHNldHRlcnMuCkBAIC0xMjEsNDIgKzEyNiwyMyBAQCBwcml2YXRlOgogICAgIE1hcmtlclR5cGUg
bV90eXBlOwogICAgIHVuc2lnbmVkIG1fc3RhcnRPZmZzZXQ7CiAgICAgdW5zaWduZWQgbV9lbmRP
ZmZzZXQ7Ci0gICAgU3RyaW5nIG1fZGVzY3JpcHRpb247Ci0gICAgYm9vbCBtX2FjdGl2ZU1hdGNo
OworICAgIFJlZlB0cjxEb2N1bWVudE1hcmtlckRldGFpbHM+IG1fZGV0YWlsczsKIH07CiAKLWlu
bGluZSBEb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJrZXIoKQotICAgIDogbV90eXBlKFNwZWxs
aW5nKSwgbV9zdGFydE9mZnNldCgwKSwgbV9lbmRPZmZzZXQoMCksIG1fYWN0aXZlTWF0Y2goZmFs
c2UpCi17Ci19Ci0KLWlubGluZSBEb2N1bWVudE1hcmtlcjo6RG9jdW1lbnRNYXJrZXIoTWFya2Vy
VHlwZSB0eXBlLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0KQotICAg
IDogbV90eXBlKHR5cGUpLCBtX3N0YXJ0T2Zmc2V0KHN0YXJ0T2Zmc2V0KSwgbV9lbmRPZmZzZXQo
ZW5kT2Zmc2V0KSwgbV9hY3RpdmVNYXRjaChmYWxzZSkKLXsKLX0KLQotaW5saW5lIERvY3VtZW50
TWFya2VyOjpEb2N1bWVudE1hcmtlcihNYXJrZXJUeXBlIHR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zm
c2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pCi0gICAg
OiBtX3R5cGUodHlwZSksIG1fc3RhcnRPZmZzZXQoc3RhcnRPZmZzZXQpLCBtX2VuZE9mZnNldChl
bmRPZmZzZXQpLCBtX2Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSwgbV9hY3RpdmVNYXRjaChmYWxz
ZSkKK2lubGluZSBEb2N1bWVudE1hcmtlckRldGFpbHMqIERvY3VtZW50TWFya2VyOjpkZXRhaWxz
KCkgY29uc3QKIHsKLSAgICBBU1NFUlQodHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6R3JhbW1hciB8
fCBEb2N1bWVudE1hcmtlcjo6QXV0b2NvcnJlY3RlZCk7CisgICAgcmV0dXJuIG1fZGV0YWlscy5n
ZXQoKTsKIH0KIAotaW5saW5lIERvY3VtZW50TWFya2VyOjpEb2N1bWVudE1hcmtlcih1bnNpZ25l
ZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBib29sIGFjdGl2ZU1hdGNoKQotICAg
IDogbV90eXBlKERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2gpLCBtX3N0YXJ0T2Zmc2V0KHN0YXJ0
T2Zmc2V0KSwgbV9lbmRPZmZzZXQoZW5kT2Zmc2V0KSwgbV9hY3RpdmVNYXRjaChhY3RpdmVNYXRj
aCkKK2NsYXNzIERvY3VtZW50TWFya2VyRGV0YWlscyA6IHB1YmxpYyBSZWZDb3VudGVkPERvY3Vt
ZW50TWFya2VyRGV0YWlscz4KIHsKLX0KLQotaW5saW5lIHZvaWQgRG9jdW1lbnRNYXJrZXI6OnNo
aWZ0T2Zmc2V0cyhpbnQgZGVsdGEpCi17Ci0gICAgbV9zdGFydE9mZnNldCArPSBkZWx0YTsKLSAg
ICBtX2VuZE9mZnNldCArPSAgZGVsdGE7Ci19CitwdWJsaWM6CisgICAgRG9jdW1lbnRNYXJrZXJE
ZXRhaWxzKCkgeyB9CisgICAgdmlydHVhbCB+RG9jdW1lbnRNYXJrZXJEZXRhaWxzKCk7CiAKLWlu
bGluZSB2b2lkIERvY3VtZW50TWFya2VyOjpzZXRBY3RpdmVNYXRjaChib29sIGFjdGl2ZSkKLXsK
LSAgICBBU1NFUlQobV90eXBlID09IERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2gpOwotICAgIG1f
YWN0aXZlTWF0Y2ggPSBhY3RpdmU7Ci19CisgICAgdmlydHVhbCBib29sIGlzRGVzY3JpcHRpb24o
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1RleHRNYXRjaCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAKaW5k
ZXggYzhmMTE2M2FhZTRjYzAzZmYyMGQyZjE4MmNlMGRjM2QwYjRlYjQ0Mi4uMWU3YWMxZDIxNGMz
NjJhNGVkZTUxNGEwNjM0YjljYTA0OTE1NGUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAKQEAgLTY1Miw3ICs2NTIsNyBAQCB2b2lkIERv
Y3VtZW50TWFya2VyQ29udHJvbGxlcjo6Y2xlYXJEZXNjcmlwdGlvbk9uTWFya2Vyc0ludGVyc2Vj
dGluZ1JhbmdlKFJhbmdlKgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAg
fQogCi0gICAgICAgICAgICBtYXJrZXIuY2xlYXJEZXNjcmlwdGlvbigpOworICAgICAgICAgICAg
bWFya2VyLmNsZWFyRGV0YWlscygpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaWRsCmluZGV4IDA3NjQ5YWY2MzM1YmNjMmI2NTU0Mjc1OWRkNzZjZDE0OWRkZGJmMmIuLmM3
MjhhYmQwYTRiZmYxMmE0N2U0MWQ4MmU1YWRhNDk1NDUxZmU4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5pZGwKQEAgLTIxLDcgKzIxLDYgQEAKIG1vZHVsZSBjb3JlIHsKIAogICAgIGludGVyZmFjZSBb
Ci0gICAgICAgIExlZ2FjeURlZmF1bHRPcHRpb25hbEFyZ3VtZW50cywKICAgICAgICAgR2VuZXJh
dGVOYXRpdmVDb252ZXJ0ZXIsCiAgICAgICAgIElubGluZUdldE93blByb3BlcnR5U2xvdAogICAg
IF0gRWxlbWVudCA6IE5vZGUgewpAQCAtMzAsMzkgKzI5LDM5IEBAIG1vZHVsZSBjb3JlIHsKIAog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9N
U3RyaW5nIHRhZ05hbWU7CiAKLSAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9N
U3RyaW5nIGdldEF0dHJpYnV0ZShpbiBET01TdHJpbmcgbmFtZSk7Ci0gICAgICAgIFtPbGRTdHls
ZU9iakNdIHZvaWQgc2V0QXR0cmlidXRlKGluIERPTVN0cmluZyBuYW1lLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgdmFsdWUpCisgICAgICAg
IFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBnZXRBdHRyaWJ1dGUoaW4gW09w
dGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFtZSk7CisgICAgICAgIFtP
bGRTdHlsZU9iakNdIHZvaWQgc2V0QXR0cmlidXRlKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1
bHRWYWx1ZV0gRE9NU3RyaW5nIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHZh
bHVlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgcmVt
b3ZlQXR0cmlidXRlKGluIERPTVN0cmluZyBuYW1lKQorICAgICAgICB2b2lkIHJlbW92ZUF0dHJp
YnV0ZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBuYW1lKQog
ICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIEF0dHIgZ2V0QXR0cmli
dXRlTm9kZShpbiBET01TdHJpbmcgbmFtZSk7Ci0gICAgICAgIEF0dHIgc2V0QXR0cmlidXRlTm9k
ZShpbiBBdHRyIG5ld0F0dHIpCisgICAgICAgIEF0dHIgZ2V0QXR0cmlidXRlTm9kZShpbiBbT3B0
aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBuYW1lKTsKKyAgICAgICAgQXR0
ciBzZXRBdHRyaWJ1dGVOb2RlKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gQXR0
ciBuZXdBdHRyKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIEF0
dHIgcmVtb3ZlQXR0cmlidXRlTm9kZShpbiBBdHRyIG9sZEF0dHIpCisgICAgICAgIEF0dHIgcmVt
b3ZlQXR0cmlidXRlTm9kZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIEF0dHIg
b2xkQXR0cikKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBOb2Rl
TGlzdCBnZXRFbGVtZW50c0J5VGFnTmFtZShpbiBET01TdHJpbmcgbmFtZSk7CisgICAgICAgIE5v
ZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRW
YWx1ZV0gRE9NU3RyaW5nIG5hbWUpOwogCiAgICAgICAgIC8vIERPTSBMZXZlbCAyIENvcmUKIAot
ICAgICAgICBbT2xkU3R5bGVPYmpDXSBET01TdHJpbmcgZ2V0QXR0cmlidXRlTlMoaW4gW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIGxvY2FsTmFt
ZSk7Ci0gICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgc2V0QXR0cmlidXRlTlMoaW4gW0NvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBxdWFsaWZpZWROYW1l
LCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJp
bmcgdmFsdWUpCisgICAgICAgIFtPbGRTdHlsZU9iakNdIERPTVN0cmluZyBnZXRBdHRyaWJ1dGVO
UyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmcsT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFs
dWVdIERPTVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERP
TVN0cmluZyBsb2NhbE5hbWUpOworICAgICAgICBbT2xkU3R5bGVPYmpDXSB2b2lkIHNldEF0dHJp
YnV0ZU5TKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyxPcHRpb25hbD1DYWxsV2l0aERlZmF1
bHRWYWx1ZV0gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERP
TVN0cmluZyBxdWFsaWZpZWROYW1lLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyB2
YWx1ZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBbT2xkU3R5
bGVPYmpDXSB2b2lkIHJlbW92ZUF0dHJpYnV0ZU5TKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgbG9jYWxOYW1lKQogICAgICAgICAgICAgcmFp
c2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtPbGRTdHlsZU9iakNdIE5vZGVMaXN0IGdldEVs
ZW1lbnRzQnlUYWdOYW1lTlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
bmFtZXNwYWNlVVJJLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIERPTVN0cmluZyBsb2NhbE5hbWUpOwotICAgICAgICBbT2xkU3R5bGVP
YmpDXSBBdHRyIGdldEF0dHJpYnV0ZU5vZGVOUyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmdd
IERPTVN0cmluZyBuYW1lc3BhY2VVUkksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBsb2NhbE5hbWUpOwotICAgICAgICBBdHRyIHNl
dEF0dHJpYnV0ZU5vZGVOUyhpbiBBdHRyIG5ld0F0dHIpCisgICAgICAgIFtPbGRTdHlsZU9iakNd
IE5vZGVMaXN0IGdldEVsZW1lbnRzQnlUYWdOYW1lTlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJ
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIGxvY2FsTmFtZSk7
CisgICAgICAgIFtPbGRTdHlsZU9iakNdIEF0dHIgZ2V0QXR0cmlidXRlTm9kZU5TKGluIFtDb252
ZXJ0TnVsbFRvTnVsbFN0cmluZyxPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3Ry
aW5nIG5hbWVzcGFjZVVSSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbG9j
YWxOYW1lKTsKKyAgICAgICAgQXR0ciBzZXRBdHRyaWJ1dGVOb2RlTlMoaW4gW09wdGlvbmFsPUNh
bGxXaXRoRGVmYXVsdFZhbHVlXSBBdHRyIG5ld0F0dHIpCiAgICAgICAgICAgICByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgYm9vbGVhbiBoYXNBdHRyaWJ1dGUoaW4gRE9NU3RyaW5nIG5h
bWUpOwotICAgICAgICBbT2xkU3R5bGVPYmpDXSBib29sZWFuIGhhc0F0dHJpYnV0ZU5TKGluIFtD
b252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgbG9jYWxO
YW1lKTsKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gYm9vbGVhbiBoYXNBdHRyaWJ1dGVOUyhpbiBb
Q29udmVydE51bGxUb051bGxTdHJpbmcsT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERP
TVN0cmluZyBuYW1lc3BhY2VVUkksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcg
bG9jYWxOYW1lKTsKIAogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgQ1NTU3R5bGVEZWNsYXJh
dGlvbiBzdHlsZTsKIApAQCAtODgsMzMgKzg3LDMzIEBAIG1vZHVsZSBjb3JlIHsKIAogICAgICAg
ICAvLyBJRSBleHRlbnNpb25zCiAKLSAgICAgICAgYm9vbGVhbiBjb250YWlucyhpbiBFbGVtZW50
IGVsZW1lbnQpOworICAgICAgICBib29sZWFuIGNvbnRhaW5zKGluIFtPcHRpb25hbD1DYWxsV2l0
aERlZmF1bHRWYWx1ZV0gRWxlbWVudCBlbGVtZW50KTsKIAogICAgICAgICAvLyBXZWJLaXQgZXh0
ZW5zaW9ucwogCiAgICAgICAgIHZvaWQgc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChpbiBbT3B0aW9u
YWxdIGJvb2xlYW4gY2VudGVySWZOZWVkZWQpOwotICAgICAgICB2b2lkIHNjcm9sbEJ5TGluZXMo
aW4gbG9uZyBsaW5lcyk7Ci0gICAgICAgIHZvaWQgc2Nyb2xsQnlQYWdlcyhpbiBsb25nIHBhZ2Vz
KTsKKyAgICAgICAgdm9pZCBzY3JvbGxCeUxpbmVzKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1
bHRWYWx1ZV0gbG9uZyBsaW5lcyk7CisgICAgICAgIHZvaWQgc2Nyb2xsQnlQYWdlcyhpbiBbT3B0
aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGxvbmcgcGFnZXMpOwogCiAjaWYgZGVmaW5lZChF
TkFCTEVfQU5JTUFUSU9OX0FQSSkgJiYgRU5BQkxFX0FOSU1BVElPTl9BUEkKICAgICAgICAgV2Vi
S2l0QW5pbWF0aW9uTGlzdCB3ZWJraXRHZXRBbmltYXRpb25zKCk7CiAjZW5kaWYKIAogICAgICAg
ICAvLyBIVE1MIDUKLSAgICAgICAgTm9kZUxpc3QgZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShpbiBE
T01TdHJpbmcgbmFtZSk7CisgICAgICAgIE5vZGVMaXN0IGdldEVsZW1lbnRzQnlDbGFzc05hbWUo
aW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFtZSk7CiAKICNp
ZiBkZWZpbmVkKExBTkdVQUdFX0pBVkFTQ1JJUFQpICYmIExBTkdVQUdFX0pBVkFTQ1JJUFQKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZ01hcCBkYXRhc2V0OwogI2VuZGlmCiAK
ICAgICAgICAgLy8gTm9kZVNlbGVjdG9yIC0gU2VsZWN0b3IgQVBJCi0gICAgICAgIFtSZXF1aXJl
c0FsbEFyZ3VtZW50cz1SYWlzZV0gRWxlbWVudCBxdWVyeVNlbGVjdG9yKGluIERPTVN0cmluZyBz
ZWxlY3RvcnMpCisgICAgICAgIEVsZW1lbnQgcXVlcnlTZWxlY3RvcihpbiBET01TdHJpbmcgc2Vs
ZWN0b3JzKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtSZXF1
aXJlc0FsbEFyZ3VtZW50cz1SYWlzZV0gTm9kZUxpc3QgcXVlcnlTZWxlY3RvckFsbChpbiBET01T
dHJpbmcgc2VsZWN0b3JzKQorICAgICAgICBOb2RlTGlzdCBxdWVyeVNlbGVjdG9yQWxsKGluIERP
TVN0cmluZyBzZWxlY3RvcnMpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAog
ICAgICAgICAvLyBXZWJLaXQgZXh0ZW5zaW9uLCBwZW5kaW5nIHNwZWNpZmljYXRpb24uCi0gICAg
ICAgIGJvb2xlYW4gd2Via2l0TWF0Y2hlc1NlbGVjdG9yKGluIERPTVN0cmluZyBzZWxlY3RvcnMp
CisgICAgICAgIGJvb2xlYW4gd2Via2l0TWF0Y2hlc1NlbGVjdG9yKGluIFtPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHNlbGVjdG9ycykKICAgICAgICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIC8vIEVsZW1lbnRUcmF2ZXJzYWwgQVBJCkBAIC0x
MzcsNyArMTM2LDcgQEAgbW9kdWxlIGNvcmUgewogCiAjaWYgZGVmaW5lZChFTkFCTEVfRlVMTFND
UkVFTl9BUEkpICYmIEVOQUJMRV9GVUxMU0NSRUVOX0FQSQogICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBBTExPV19LRVlCT0FSRF9JTlBVVCA9IDE7Ci0gICAgICAgIHZvaWQgd2Via2l0UmVx
dWVzdEZ1bGxTY3JlZW4oaW4gdW5zaWduZWQgc2hvcnQgZmxhZ3MpOworICAgICAgICB2b2lkIHdl
YmtpdFJlcXVlc3RGdWxsU2NyZWVuKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0g
dW5zaWduZWQgc2hvcnQgZmxhZ3MpOwogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9P
QkpFQ1RJVkVfQykgfHwgIUxBTkdVQUdFX09CSkVDVElWRV9DCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRXZlbnRMaXN0ZW5lci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRM
aXN0ZW5lci5pZGwKaW5kZXggM2E2OGY0YTRiNGUyZDk4OTY4OGY4N2MzMDY1MzcyMGFhMDc5ZDQx
NC4uMDIzNzc3YmYzOTQzMjU3ZTlkM2JjNjYyNDU5N2UzMTBkMGU2NjkzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TGlzdGVuZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FdmVudExpc3RlbmVyLmlkbApAQCAtMjIsNyArMjIsNiBAQCBtb2R1bGUgZXZlbnRzIHsK
IAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CiAgICAgaW50ZXJmYWNlIFsKLSAg
ICAgICAgTGVnYWN5RGVmYXVsdE9wdGlvbmFsQXJndW1lbnRzLAogICAgICAgICBOb1N0YXRpY1Rh
YmxlcywKICAgICAgICAgT2JqQ1Byb3RvY29sLAogICAgICAgICBQdXJlSW50ZXJmYWNlLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FdmVudFRhcmdldC5pZGwKaW5kZXggNTQzMTMyZWMwYzA5NmQ2NmFiYzViZDY5ZmM1
MjJmZTE5YmZmOGQxOS4uOGM2ODNkYTFlZTAwN2NlMTg4MGQ5MDkyNmY3MDEyMDkyMDExYWUzYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaWRsCkBAIC0yMiw3ICsyMiw2IEBAIG1vZHVsZSBl
dmVudHMgewogCiAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKICAgICBpbnRlcmZh
Y2UgWwotICAgICAgICBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1bWVudHMsCiAgICAgICAgIE9i
akNQcm90b2NvbCwKICAgICAgICAgUHVyZUludGVyZmFjZSwKICAgICAgICAgT21pdENvbnN0cnVj
dG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW0uaWRsIGIvU291
cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtLmlkbAppbmRleCBlMzIxMmNlNWY3YjNiZmNjNGUw
MThkMTU1NDhhYTMxMWUzODMwMDhjLi43ZmY5NTNiNmExMmE2ZjUzYTNhZTNmMzYzNmE0NmZjM2I1
ODljYzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW0uaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZWRpYVN0cmVhbS5pZGwKQEAgLTI1LDcgKzI1LDYgQEAK
IG1vZHVsZSBjb3JlIHsKIAogICAgIGludGVyZmFjZSBbCi0gICAgICAgIExlZ2FjeURlZmF1bHRP
cHRpb25hbEFyZ3VtZW50cywKICAgICAgICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAogICAg
ICAgICBFdmVudFRhcmdldAogICAgIF0gTWVkaWFTdHJlYW0gewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVk
aWFTdHJlYW1MaXN0LmlkbAppbmRleCBhYTk2N2M5NmVjZmNlYmQxNDJkMzM5ZmU0ZTE5ZjkxYTdj
YzU2NDUyLi4zYWQ3N2E5NWU3MWQ5ZDc5ZTMxNGJmOThkNmRlMTk1MTQ1NmQyNDkyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW1MaXN0LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vTWVkaWFTdHJlYW1MaXN0LmlkbApAQCAtMjUsNyArMjUsNiBAQAogbW9kdWxl
IGNvcmUgewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgTGVnYWN5RGVmYXVsdE9wdGlvbmFs
QXJndW1lbnRzLAogICAgICAgICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCiAgICAgICAgIEhh
c0luZGV4R2V0dGVyCiAgICAgXSBNZWRpYVN0cmVhbUxpc3QgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2tMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9NZWRpYVN0cmVhbVRyYWNrTGlzdC5pZGwKaW5kZXggZTM0OTZlYzYyYzQzZWNhNTUyNWE3YzQ4
YmE5ZDQwY2UwZTJjYzkyOC4uM2UzZWNhMTRlYTk5NDBjNjNjMzJmZGI0MmRlNWMwYmUwMTdlNzY4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lZGlhU3RyZWFtVHJhY2tMaXN0Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTWVkaWFTdHJlYW1UcmFja0xpc3QuaWRsCkBAIC0y
NSw3ICsyNSw2IEBACiBtb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBM
ZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1bWVudHMsCiAgICAgICAgIENvbmRpdGlvbmFsPU1FRElB
X1NUUkVBTSwKICAgICAgICAgSGFzSW5kZXhHZXR0ZXIKICAgICBdIE1lZGlhU3RyZWFtVHJhY2tM
aXN0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaWRsCmluZGV4IDBmNDEwY2MwZjU2YzMxNWY4
ZDBhODJkNzZhZDM3MTIyNjE2NTMxYjAuLjI4ODMzY2VhOTIyNTQxOGE1Yjg2OGVmNTgzZWJlYjlk
YTBlYmY5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmlkbApAQCAtMjcsNyArMjcsNiBA
QAogbW9kdWxlIGV2ZW50cyB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBMZWdhY3lEZWZh
dWx0T3B0aW9uYWxBcmd1bWVudHMsCiAgICAgICAgIEN1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAg
ICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsLAogICAgICAgICBBY3RpdmVET01PYmplY3QsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAuaWRsCmluZGV4IDY2MTQ3NDFhYWFkNDliZDIwNjA5MTE0
NGRjZjEyZDJkMjZiYzBmYjYuLjFiZjQ1MjE0YjY0YzZmYmE5MTE3OGJiZDIwMTQ3NjQyZGMwNTll
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9OYW1lZE5vZGVNYXAuaWRsCkBAIC0yMSwzOCArMjEsMzcgQEAK
IG1vZHVsZSBjb3JlIHsKIAogICAgIGludGVyZmFjZSBbCi0gICAgICAgIExlZ2FjeURlZmF1bHRP
cHRpb25hbEFyZ3VtZW50cywKICAgICAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsRWxlbWVu
dFJvb3QsCiAgICAgICAgIEN1c3RvbU1hcmtGdW5jdGlvbiwKICAgICAgICAgSGFzSW5kZXhHZXR0
ZXIsCiAgICAgICAgIEhhc05hbWVHZXR0ZXIKICAgICBdIE5hbWVkTm9kZU1hcCB7CiAKLSAgICAg
ICAgTm9kZSBnZXROYW1lZEl0ZW0oaW4gRE9NU3RyaW5nIG5hbWUpOworICAgICAgICBOb2RlIGdl
dE5hbWVkSXRlbShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBu
YW1lKTsKIAotICAgICAgICBOb2RlIHNldE5hbWVkSXRlbShpbiBOb2RlIG5vZGUpCisgICAgICAg
IE5vZGUgc2V0TmFtZWRJdGVtKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gTm9k
ZSBub2RlKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgTm9k
ZSByZW1vdmVOYW1lZEl0ZW0oaW4gRE9NU3RyaW5nIG5hbWUpCisgICAgICAgIE5vZGUgcmVtb3Zl
TmFtZWRJdGVtKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIG5h
bWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBOb2RlIGl0
ZW0oaW4gdW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgICAgIE5vZGUgaXRlbShpbiBbT3B0aW9u
YWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgICAgICAK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogCiAKICAg
ICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKIAotICAgICAgICBbT2xkU3R5bGVP
YmpDXSBOb2RlIGdldE5hbWVkSXRlbU5TKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9N
U3RyaW5nIG5hbWVzcGFjZVVSSSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW4gRE9NU3RyaW5nIGxvY2FsTmFtZSkKKyAgICAgICAgW09sZFN0eWxlT2JqQ10g
Tm9kZSBnZXROYW1lZEl0ZW1OUyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmcsT3B0aW9uYWw9
Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBuYW1lc3BhY2VVUkksIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERl
ZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIGxvY2FsTmFtZSkKICAgICAgICAgICAgIC8vIEZJWE1FOiB0
aGUgaW1wbGVtZW50YXRpb24gZG9lcyB0YWtlIGFuIGV4Y2VwdGlvbmNvZGUgcGFyYW1ldGVyLgog
ICAgICAgICAgICAgLypyYWlzZXMoRE9NRXhjZXB0aW9uKSovOwogCi0gICAgICAgIE5vZGUgc2V0
TmFtZWRJdGVtTlMoaW4gTm9kZSBub2RlKQorICAgICAgICBOb2RlIHNldE5hbWVkSXRlbU5TKGlu
IFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gTm9kZSBub2RlKQogICAgICAgICAgICAg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgW09sZFN0eWxlT2JqQ10gTm9kZSByZW1v
dmVOYW1lZEl0ZW1OUyhpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1l
c3BhY2VVUkksIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIERPTVN0cmluZyBsb2NhbE5hbWUpCisgICAgICAgIFtPbGRTdHlsZU9iakNdIE5vZGUgcmVt
b3ZlTmFtZWRJdGVtTlMoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nLE9wdGlvbmFsPUNhbGxX
aXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgbmFtZXNwYWNlVVJJLCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZh
dWx0VmFsdWVdIERPTVN0cmluZyBsb2NhbE5hbWUpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKIAogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5pZGwKaW5kZXggYzRmMDQ0ZGMzNmYwNjkyNWEz
Y2NiMDk2NTBjZDM5MjgyNWEzYTZiNi4uYWFjZWYxNWI2NjViNTBlNjE5NDA1MGRjZThkM2EwMTdj
YzE0ZjZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmlkbApAQCAtMjEsNyArMjEsNiBAQAogbW9kdWxlIGNvcmUg
ewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgTGVnYWN5RGVmYXVsdE9wdGlvbmFsQXJndW1l
bnRzLAogICAgICAgICBDdXN0b21IZWFkZXIsCiAgICAgICAgIEN1c3RvbU1hcmtGdW5jdGlvbiwK
ICAgICAgICAgQ3VzdG9tUHVzaEV2ZW50SGFuZGxlclNjb3BlLApAQCAtODAsMTMgKzc5LDEzIEBA
IG1vZHVsZSBjb3JlIHsKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAg
ICAgIGJvb2xlYW4gICAgICAgICAgICBoYXNDaGlsZE5vZGVzKCk7Ci0gICAgICAgIE5vZGUgICAg
ICAgICAgICAgICBjbG9uZU5vZGUoaW4gYm9vbGVhbiBkZWVwKTsKKyAgICAgICAgTm9kZSAgICAg
ICAgICAgICAgIGNsb25lTm9kZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGJv
b2xlYW4gZGVlcCk7CiAgICAgICAgIHZvaWQgICAgICAgICAgICAgICBub3JtYWxpemUoKTsKIAog
ICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgogCi0gICAgICAgIFtPbGRTdHls
ZU9iakNdIGJvb2xlYW4gaXNTdXBwb3J0ZWQoaW4gRE9NU3RyaW5nIGZlYXR1cmUsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtDb252ZXJ0TnVsbFRvTnVs
bFN0cmluZ10gRE9NU3RyaW5nIHZlcnNpb24pOworICAgICAgICBbT2xkU3R5bGVPYmpDXSBib29s
ZWFuIGlzU3VwcG9ydGVkKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3Ry
aW5nIGZlYXR1cmUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyxPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1
ZV0gRE9NU3RyaW5nIHZlcnNpb24pOwogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29u
dmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgICAgICAgIG5hbWVzcGFjZVVSSTsKICAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGwsIENvbnZl
cnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgICAgICAgIHByZWZpeApAQCAtMTAzLDExICsx
MDIsMTEgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgW0NvbnZl
cnROdWxsU3RyaW5nVG89TnVsbCwgQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyAg
ICAgICB0ZXh0Q29udGVudAogICAgICAgICAgICAgICAgICAgICAgc2V0dGVyIHJhaXNlcyhET01F
eGNlcHRpb24pOwogCi0gICAgICAgIGJvb2xlYW4gICAgICAgICAgICBpc1NhbWVOb2RlKGluIE5v
ZGUgb3RoZXIpOwotICAgICAgICBib29sZWFuICAgICAgICAgICAgaXNFcXVhbE5vZGUoaW4gTm9k
ZSBvdGhlcik7Ci0gICAgICAgIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyAg
ICAgICAgICBsb29rdXBQcmVmaXgoaW4gW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJp
bmcgbmFtZXNwYWNlVVJJKTsKLSAgICAgICAgYm9vbGVhbiAgICAgICAgICAgIGlzRGVmYXVsdE5h
bWVzcGFjZShpbiBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyBuYW1lc3BhY2VV
UkkpOwotICAgICAgICBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgICAgICAg
ICAgbG9va3VwTmFtZXNwYWNlVVJJKGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIHByZWZpeCk7CisgICAgICAgIGJvb2xlYW4gICAgICAgICAgICBpc1NhbWVOb2RlKGluIFtP
cHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gTm9kZSBvdGhlcik7CisgICAgICAgIGJvb2xl
YW4gICAgICAgICAgICBpc0VxdWFsTm9kZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFs
dWVdIE5vZGUgb3RoZXIpOworICAgICAgICBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01T
dHJpbmcgICAgICAgICAgbG9va3VwUHJlZml4KGluIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZyxP
cHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIG5hbWVzcGFjZVVSSSk7Cisg
ICAgICAgIGJvb2xlYW4gICAgICAgICAgICBpc0RlZmF1bHROYW1lc3BhY2UoaW4gW0NvbnZlcnRO
dWxsVG9OdWxsU3RyaW5nLE9wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcg
bmFtZXNwYWNlVVJJKTsKKyAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3Ry
aW5nICAgICAgICAgIGxvb2t1cE5hbWVzcGFjZVVSSShpbiBbQ29udmVydE51bGxUb051bGxTdHJp
bmcsT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyBwcmVmaXgpOwogCiAg
ICAgICAgIC8vIERvY3VtZW50UG9zaXRpb24KICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
ICAgICBET0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQgPSAweDAxOwpAQCAtMTE3LDcgKzEx
Niw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBE
T0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkgPSAweDEwOwogICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCAgICAgIERPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJRklD
ID0gMHgyMDsKIAotICAgICAgICB1bnNpZ25lZCBzaG9ydCAgICAgY29tcGFyZURvY3VtZW50UG9z
aXRpb24oaW4gTm9kZSBvdGhlcik7CisgICAgICAgIHVuc2lnbmVkIHNob3J0ICAgICBjb21wYXJl
RG9jdW1lbnRQb3NpdGlvbihpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUg
b3RoZXIpOwogCiAjaWYgMAogICAgICAgICBET01PYmplY3QgICAgICAgICAgZ2V0RmVhdHVyZShp
biBET01TdHJpbmcgZmVhdHVyZSwgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZUZpbHRlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUZpbHRlci5pZGwKaW5kZXggZDc5
ODM4OTEyZjhmM2Y0OWI5ZGMwNDU0MTAxOTlmNmJiYzNlZWEyNy4uMzhkYWMxMGYwMzU0YmY5MjAw
NjAxMzhlMDQwYzkwYTliYTE3YzQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVGaWx0ZXIuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlRmlsdGVyLmlkbApAQCAt
MjIsNyArMjIsNiBAQCBtb2R1bGUgdHJhdmVyc2FsIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4g
RE9NIExldmVsIDI6CiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgTGVnYWN5RGVmYXVsdE9wdGlv
bmFsQXJndW1lbnRzLAogICAgICAgICBDdXN0b21NYXJrRnVuY3Rpb24sCiAgICAgICAgIEN1c3Rv
bU5hdGl2ZUNvbnZlcnRlciwKICAgICAgICAgT2JqQ1Byb3RvY29sLApAQCAtNDgsNyArNDcsNyBA
QCBtb2R1bGUgdHJhdmVyc2FsIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgbG9uZyAgICAgICBT
SE9XX0RPQ1VNRU5UX0ZSQUdNRU5UICAgICAgICAgPSAweDAwMDAwNDAwOwogICAgICAgICBjb25z
dCB1bnNpZ25lZCBsb25nICAgICAgIFNIT1dfTk9UQVRJT04gICAgICAgICAgICAgICAgICA9IDB4
MDAwMDA4MDA7CiAKLSAgICAgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlXSBzaG9ydCBhY2NlcHRO
b2RlKGluIE5vZGUgbik7CisgICAgICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gc2hvcnQgYWNj
ZXB0Tm9kZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUgbik7CiAKICAg
ICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVMaXN0LmlkbAppbmRleCAwZTUwNWI0Mzk2MjgyZTk1MTZkZGZl
NjhmOGFmNjE5YzA4OWNjZTM3Li41YmE4YjIwMDBmOWExMWUyY2MxNDk5NDI3NDhjZDRkZTA0ZjM0
ZTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlTGlzdC5pZGwKQEAgLTIxLDE0ICsyMSwxMyBAQAogbW9kdWxl
IGNvcmUgewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgTGVnYWN5RGVmYXVsdE9wdGlvbmFs
QXJndW1lbnRzLAogICAgICAgICBDdXN0b21Jc1JlYWNoYWJsZSwKICAgICAgICAgSGFzSW5kZXhH
ZXR0ZXIsCiAgICAgICAgIEhhc05hbWVHZXR0ZXIsCiAgICAgICAgIEN1c3RvbUNhbGwKICAgICBd
IE5vZGVMaXN0IHsKIAotICAgICAgICBOb2RlIGl0ZW0oaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOworICAgICAgICBOb2RlIGl0ZW0oaW4gW0lzSW5kZXgsT3B0aW9uYWw9Q2FsbFdp
dGhEZWZhdWx0VmFsdWVdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogCiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKaW5kZXgg
MzBhZmVkZDk2YjFhNjQ3OTNiOGVmYzA2NTlkNWNlYTYwZTRmYzBjOS4uNjY4ZmQ1ZjEzZTE5NWQ0
MTI4MjZkMzhlOTQzZGE1NjVhOGQxMWJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1JhbmdlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRsCkBAIC0yMSw5ICsy
MSw3IEBACiBtb2R1bGUgcmFuZ2VzIHsKIAogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVs
IDI6Ci0gICAgaW50ZXJmYWNlIFsKLSAgICAgICAgTGVnYWN5RGVmYXVsdE9wdGlvbmFsQXJndW1l
bnRzLAotICAgIF0gUmFuZ2UgeworICAgIGludGVyZmFjZSBSYW5nZSB7CiAKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIE5vZGUgc3RhcnRDb250YWluZXIKICAgICAgICAgICAgIGdldHRlciBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTM4LDI1ICszNiwyNSBAQCBtb2R1bGUgcmFuZ2VzIHsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgY29tbW9uQW5jZXN0b3JDb250YWluZXIK
ICAgICAgICAgICAgIGdldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICBbT2xk
U3R5bGVPYmpDXSB2b2lkIHNldFN0YXJ0KGluIE5vZGUgcmVmTm9kZSwgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBvZmZzZXQpCisgICAgICAgIFtPbGRTdHls
ZU9iakNdIHZvaWQgc2V0U3RhcnQoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBO
b2RlIHJlZk5vZGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gbG9uZyBvZmZzZXQpCiAgICAgICAgICAgICBy
YWlzZXMoUmFuZ2VFeGNlcHRpb24sIERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFtPbGRTdHlsZU9i
akNdIHZvaWQgc2V0RW5kKGluIE5vZGUgcmVmTm9kZSwgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluIGxvbmcgb2Zmc2V0KQorICAgICAgICBbT2xkU3R5bGVPYmpDXSB2b2lk
IHNldEVuZChpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUgcmVmTm9kZSwg
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0
aERlZmF1bHRWYWx1ZV0gbG9uZyBvZmZzZXQpCiAgICAgICAgICAgICByYWlzZXMoUmFuZ2VFeGNl
cHRpb24sIERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0U3RhcnRCZWZvcmUoaW4gTm9k
ZSByZWZOb2RlKQorICAgICAgICB2b2lkIHNldFN0YXJ0QmVmb3JlKGluIFtPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gTm9kZSByZWZOb2RlKQogICAgICAgICAgICAgcmFpc2VzKFJhbmdl
RXhjZXB0aW9uLCBET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIHNldFN0YXJ0QWZ0ZXIoaW4g
Tm9kZSByZWZOb2RlKQorICAgICAgICB2b2lkIHNldFN0YXJ0QWZ0ZXIoaW4gW09wdGlvbmFsPUNh
bGxXaXRoRGVmYXVsdFZhbHVlXSBOb2RlIHJlZk5vZGUpCiAgICAgICAgICAgICByYWlzZXMoUmFu
Z2VFeGNlcHRpb24sIERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0RW5kQmVmb3JlKGlu
IE5vZGUgcmVmTm9kZSkKKyAgICAgICAgdm9pZCBzZXRFbmRCZWZvcmUoaW4gW09wdGlvbmFsPUNh
bGxXaXRoRGVmYXVsdFZhbHVlXSBOb2RlIHJlZk5vZGUpCiAgICAgICAgICAgICByYWlzZXMoUmFu
Z2VFeGNlcHRpb24sIERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHZvaWQgc2V0RW5kQWZ0ZXIoaW4g
Tm9kZSByZWZOb2RlKQorICAgICAgICB2b2lkIHNldEVuZEFmdGVyKGluIFtPcHRpb25hbD1DYWxs
V2l0aERlZmF1bHRWYWx1ZV0gTm9kZSByZWZOb2RlKQogICAgICAgICAgICAgcmFpc2VzKFJhbmdl
RXhjZXB0aW9uLCBET01FeGNlcHRpb24pOwotICAgICAgICB2b2lkIGNvbGxhcHNlKGluIGJvb2xl
YW4gdG9TdGFydCkKKyAgICAgICAgdm9pZCBjb2xsYXBzZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhE
ZWZhdWx0VmFsdWVdIGJvb2xlYW4gdG9TdGFydCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNl
cHRpb24pOwotICAgICAgICB2b2lkIHNlbGVjdE5vZGUoaW4gTm9kZSByZWZOb2RlKQorICAgICAg
ICB2b2lkIHNlbGVjdE5vZGUoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBOb2Rl
IHJlZk5vZGUpCiAgICAgICAgICAgICByYWlzZXMoUmFuZ2VFeGNlcHRpb24sIERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIHZvaWQgc2VsZWN0Tm9kZUNvbnRlbnRzKGluIE5vZGUgcmVmTm9kZSkKKyAg
ICAgICAgdm9pZCBzZWxlY3ROb2RlQ29udGVudHMoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVs
dFZhbHVlXSBOb2RlIHJlZk5vZGUpCiAgICAgICAgICAgICByYWlzZXMoUmFuZ2VFeGNlcHRpb24s
IERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgLy8gQ29tcGFyZUhvdwpAQCAtNjUsOCArNjMsOCBA
QCBtb2R1bGUgcmFuZ2VzIHsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgRU5EX1RPX0VO
RCAgICAgPSAyOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBFTkRfVE9fU1RBUlQgICA9
IDM7CiAKLSAgICAgICAgW09sZFN0eWxlT2JqQ10gc2hvcnQgY29tcGFyZUJvdW5kYXJ5UG9pbnRz
KGluIENvbXBhcmVIb3cgaG93LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gUmFuZ2Ugc291cmNlUmFuZ2UpCisgICAgICAgIFtPbGRTdHlsZU9i
akNdIHNob3J0IGNvbXBhcmVCb3VuZGFyeVBvaW50cyhpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZh
dWx0VmFsdWVdIENvbXBhcmVIb3cgaG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBS
YW5nZSBzb3VyY2VSYW5nZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAg
ICAgICAgIHZvaWQgZGVsZXRlQ29udGVudHMoKQpAQCAtNzUsOSArNzMsOSBAQCBtb2R1bGUgcmFu
Z2VzIHsKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBEb2N1bWVu
dEZyYWdtZW50IGNsb25lQ29udGVudHMoKQogICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIHZvaWQgaW5zZXJ0Tm9kZShpbiBOb2RlIG5ld05vZGUpCisgICAgICAgIHZv
aWQgaW5zZXJ0Tm9kZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUgbmV3
Tm9kZSkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24sIFJhbmdlRXhjZXB0aW9uKTsK
LSAgICAgICAgdm9pZCBzdXJyb3VuZENvbnRlbnRzKGluIE5vZGUgbmV3UGFyZW50KQorICAgICAg
ICB2b2lkIHN1cnJvdW5kQ29udGVudHMoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVl
XSBOb2RlIG5ld1BhcmVudCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24sIFJhbmdl
RXhjZXB0aW9uKTsKICAgICAgICAgUmFuZ2UgY2xvbmVSYW5nZSgpCiAgICAgICAgICAgICByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTk2LDE1ICs5NCwxNSBAQCBtb2R1bGUgcmFuZ2VzIHsKIAog
ICAgICAgICAvLyBleHRlbnNpb25zCiAKLSAgICAgICAgRG9jdW1lbnRGcmFnbWVudCBjcmVhdGVD
b250ZXh0dWFsRnJhZ21lbnQoaW4gRE9NU3RyaW5nIGh0bWwpCisgICAgICAgIERvY3VtZW50RnJh
Z21lbnQgY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1
bHRWYWx1ZV0gRE9NU3RyaW5nIGh0bWwpCiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKIAogICAgICAgICAvLyBXZWJLaXQgZXh0ZW5zaW9ucwogCi0gICAgICAgIGJvb2xlYW4gaW50
ZXJzZWN0c05vZGUoaW4gTm9kZSByZWZOb2RlKQorICAgICAgICBib29sZWFuIGludGVyc2VjdHNO
b2RlKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gTm9kZSByZWZOb2RlKQogICAg
ICAgICAgICAgcmFpc2VzKFJhbmdlRXhjZXB0aW9uLCBET01FeGNlcHRpb24pOwogCi0gICAgICAg
IHNob3J0IGNvbXBhcmVOb2RlKGluIE5vZGUgcmVmTm9kZSkKKyAgICAgICAgc2hvcnQgY29tcGFy
ZU5vZGUoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBOb2RlIHJlZk5vZGUpCiAg
ICAgICAgICAgICByYWlzZXMoUmFuZ2VFeGNlcHRpb24sIERPTUV4Y2VwdGlvbik7CiAKICAgICAg
ICAgLy8gQ29tcGFyZVJlc3VsdHMKQEAgLTExMywxNSArMTExLDE1IEBAIG1vZHVsZSByYW5nZXMg
ewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT0RFX0JFRk9SRV9BTkRfQUZURVIgPSAy
OwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT0RFX0lOU0lERSAgICAgICAgICAgPSAz
OwogCi0gICAgICAgIHNob3J0IGNvbXBhcmVQb2ludChpbiBOb2RlIHJlZk5vZGUsIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBvZmZzZXQpCisgICAgICAgIHNob3J0IGNvbXBh
cmVQb2ludChpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIE5vZGUgcmVmTm9kZSwg
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0
VmFsdWVdIGxvbmcgb2Zmc2V0KQogICAgICAgICAgICAgcmFpc2VzKFJhbmdlRXhjZXB0aW9uLCBE
T01FeGNlcHRpb24pOwogCi0gICAgICAgIGJvb2xlYW4gaXNQb2ludEluUmFuZ2UoaW4gTm9kZSBy
ZWZOb2RlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIG9mZnNldCkK
KyAgICAgICAgYm9vbGVhbiBpc1BvaW50SW5SYW5nZShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZh
dWx0VmFsdWVdIE5vZGUgcmVmTm9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBsb25nIG9mZnNldCkKICAgICAgICAg
ICAgIHJhaXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICB2b2lk
IGV4cGFuZChpbiBET01TdHJpbmcgdW5pdCkKKyAgICAgICAgdm9pZCBleHBhbmQoaW4gW09wdGlv
bmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgdW5pdCkKICAgICAgICAgICAgIHJh
aXNlcyhSYW5nZUV4Y2VwdGlvbiwgRE9NRXhjZXB0aW9uKTsKIAogI2lmICFkZWZpbmVkKExBTkdV
QUdFX0pBVkFTQ1JJUFQpIHx8ICFMQU5HVUFHRV9KQVZBU0NSSVBUCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsIGIvU291cmNl
L1dlYkNvcmUvZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmlkbAppbmRleCA4ZjBm
YmZhMjkxZTZlZjM2ZGY0YmRlMzQ3ODY0MjdhZjc5YmYyNzk4Li41ZjcyNmFmYzJiMTY5NzBjMzA0
ZjdmZDIxZTVjYTlhZjM3MDVhYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9S
ZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5pZGwKQEAgLTMyLDcgKzMyLDYgQEAgbW9kdWxl
IGNvcmUgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENhbGxiYWNrPUZ1bmN0aW9uT25seSwK
ICAgICAgICAgQ29uZGl0aW9uYWw9UkVRVUVTVF9BTklNQVRJT05fRlJBTUUsCi0gICAgICAgIExl
Z2FjeURlZmF1bHRPcHRpb25hbEFyZ3VtZW50cywKICAgICBdIFJlcXVlc3RBbmltYXRpb25GcmFt
ZUNhbGxiYWNrewogICAgICAgICBib29sZWFuIGhhbmRsZUV2ZW50KGluIERPTVRpbWVTdGFtcCB0
aW1lKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxi
YWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5pZGwKaW5kZXggNDQ2
OGQ1ZTdiMWEwNjgxOWJkOTBiNGQ3ZDMxOTk2YWE1ODQ1ZmRhNC4uMWUxOGQ4M2ZlMGFmNGMyYTVk
NDMyYTg1MGEwYmQwOGUzYzMyZWQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1N0
cmluZ0NhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2su
aWRsCkBAIC0zMCw3ICszMCw2IEBACiAKIG1vZHVsZSBjb3JlIHsKICAgICBpbnRlcmZhY2UgWwot
ICAgICAgICBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1bWVudHMsCiAgICAgICAgIENhbGxiYWNr
CiAgICAgXSBTdHJpbmdDYWxsYmFjayB7CiAgICAgICAgIGJvb2xlYW4gaGFuZGxlRXZlbnQoaW4g
RE9NU3RyaW5nIGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuaWRs
IGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuaWRsCmluZGV4IGI1ZWY3ZGIyM2Y3MTFmYjYwOGVi
MDNkNmI1ZjY4MTMyMDkzZjI3ZGUuLmQ3ODE2NzdmNTljOTgzMTRkNGYyMGYwNGEwNDU1YTU0MmFm
NTUzMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGV4dC5pZGwKQEAgLTE5LDE4ICsxOSwxNiBAQAogCiBtb2R1bGUgY29y
ZSB7CiAKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1
bWVudHMsCi0gICAgXSBUZXh0IDogQ2hhcmFjdGVyRGF0YSB7CisgICAgaW50ZXJmYWNlIFRleHQg
OiBDaGFyYWN0ZXJEYXRhIHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMQogCi0gICAgICAgIFRl
eHQgc3BsaXRUZXh0KGluIFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIG9mZnNldCkKKyAgICAgICAg
VGV4dCBzcGxpdFRleHQoaW4gW0lzSW5kZXgsT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVd
IHVuc2lnbmVkIGxvbmcgb2Zmc2V0KQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24p
OwogCiAgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDM6CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgd2hvbGVUZXh0OwotICAgICAgICBUZXh0ICAg
ICAgICAgICAgICAgcmVwbGFjZVdob2xlVGV4dChpbiBET01TdHJpbmcgY29udGVudCkKKyAgICAg
ICAgVGV4dCAgICAgICAgICAgICAgIHJlcGxhY2VXaG9sZVRleHQoaW4gW09wdGlvbmFsPUNhbGxX
aXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgY29udGVudCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RvdWNoTGlzdC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vVG91Y2hMaXN0LmlkbAppbmRleCBiODVlOTM4MWM1OGY2NGJjMGU0MmY1NjMzMDdl
NGYwMjNhMzNhMmU1Li5lZGU3YmYyZTVkNzYyMjdmYTY1MWNhZDBhYjAxYjYxZGZkMjk2Y2VjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVG91Y2hMaXN0LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vVG91Y2hMaXN0LmlkbApAQCAtMjYsNyArMjYsNiBAQAogbW9kdWxlIGV2ZW50
cyB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBMZWdhY3lEZWZhdWx0T3B0aW9uYWxBcmd1
bWVudHMsCiAgICAgICAgIENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUywKICAgICAgICAgSGFzSW5k
ZXhHZXR0ZXIKICAgICBdIFRvdWNoTGlzdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Q29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDgxMjM3NWY3Mzk1OTUzNWZkMTRhMGViMDg3
ZGFjNDQ0ODBjOTBhZjMuLmE1MmI3YjNlMTcwMzQ0M2YxNTA5OWZmYjNiZDIyYWNhNWVkOTMxYTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
CkBAIC0zNTMsMTIgKzM1Myw4IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnJlcGxhY2VU
ZXh0SW5Ob2RlUHJlc2VydmluZ01hcmtlcnMoUGFzc1JlZlB0cjxUZXh0PiBwCiAgICAgY29weU1h
cmtlcnMobWFya2VyQ29udHJvbGxlci0+bWFya2Vyc0luUmFuZ2UoUmFuZ2U6OmNyZWF0ZShkb2N1
bWVudCgpLCBub2RlLCBvZmZzZXQsIG5vZGUsIG9mZnNldCArIGNvdW50KS5nZXQoKSwgRG9jdW1l
bnRNYXJrZXI6OkFsbE1hcmtlcnMoKSksIG1hcmtlcnMpOwogICAgIHJlcGxhY2VUZXh0SW5Ob2Rl
KG5vZGUsIG9mZnNldCwgY291bnQsIHJlcGxhY2VtZW50VGV4dCk7CiAgICAgUmVmUHRyPFJhbmdl
PiBuZXdSYW5nZSA9IFJhbmdlOjpjcmVhdGUoZG9jdW1lbnQoKSwgbm9kZSwgb2Zmc2V0LCBub2Rl
LCBvZmZzZXQgKyByZXBsYWNlbWVudFRleHQubGVuZ3RoKCkpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbWFya2Vycy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobWFya2Vyc1tpXS5o
YXNEZXNjcmlwdGlvbigpKQotICAgICAgICAgICAgbWFya2VyQ29udHJvbGxlci0+YWRkTWFya2Vy
KG5ld1JhbmdlLmdldCgpLCBtYXJrZXJzW2ldLnR5cGUoKSwgbWFya2Vyc1tpXS5kZXNjcmlwdGlv
bigpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbWFya2VyQ29udHJvbGxlci0+YWRkTWFy
a2VyKG5ld1JhbmdlLmdldCgpLCBtYXJrZXJzW2ldLnR5cGUoKSk7Ci0gICAgfQorICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbWFya2Vycy5zaXplKCk7ICsraSkKKyAgICAgICAgbWFya2VyQ29u
dHJvbGxlci0+YWRkTWFya2VyKG5ld1JhbmdlLmdldCgpLCBtYXJrZXJzW2ldLnR5cGUoKSwgbWFy
a2Vyc1tpXS5kZXNjcmlwdGlvbigpKTsKIH0KIAogUG9zaXRpb24gQ29tcG9zaXRlRWRpdENvbW1h
bmQ6OnBvc2l0aW9uT3V0c2lkZVRhYlNwYW4oY29uc3QgUG9zaXRpb24mIHBvcykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103020</attachid>
            <date>2011-08-04 18:49:56 -0700</date>
            <delta_ts>2011-08-04 20:26:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59855-20110805104955.patch</filename>
            <type>text/plain</type>
            <size>21221</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTI0MzkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDk4OWRk
YTBiNDJiZjBkMDQ0ZDM3ZTEzZWIxNjQ1OTM0MTFlZGVkNC4uYmFmNjdiNGE2NzdhZmM1YTk3ZmJm
MzY1NDdmNTZmMGMzNjA2NzMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTUxNSw2ICs1MTUs
NyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQu
Y3BwCiAgICAgZG9tL0RvY3VtZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwCisgICAgZG9tL0RvY3VtZW50TWFya2VyLmNwcAogICAgIGRvbS9Eb2N1bWVudEZyYWdt
ZW50LmNwcAogICAgIGRvbS9Eb2N1bWVudFBhcnNlci5jcHAKICAgICBkb20vRG9jdW1lbnRPcmRl
cmVkTWFwLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDgwOTY2NzRkYWQ4ZWE5MmI0ZjZjNDg3YWYxYjZmY2Q4
OWNiMWY4MWMuLjMwNmQ0ZmM2NzU5NDU0MTFmODE3ZWY3NjdlMzg0NTgzYTExNDZjYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxMS0wOC0wNCAgTU9SSVRBIEhhamltZSAgPG1vcnJp
dGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEb2N1bWVudE1hcmtlcjogVHlwZSBzcGVjaWZpYyBkZXRhaWxzIHNob3VsZCBiZSBz
ZXBhcmF0ZWx5IGhlbGQgYnkgb3RoZXIgb2JqZWN0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk4NTUKKworICAgICAgICAtIEludHJvZHVjZWQgRG9j
dW1lbnRNYXJrZXJEZXRhaWxzIGFic3RyYWN0IGNsYXNzIGFuZCB0d28gaXRzIHN1YmNsYXNzZXMK
KyAgICAgICAgICBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uIGFuZCBEb2N1bWVudE1hcmtlckFj
dGl2ZU1hdGNoLAorICAgICAgICAKKyAgICAgICAgLSBSZXBsYWNpbmcgRG9jdW1lbnRNYXJrZXI6
Om1fZGVzY3JpcHRpb24gYW5kCisgICAgICAgICAgRG9jdW1lbnRNYXJrZXI6Om1fYWN0aXZlTWF0
Y2ggd2l0aCB0aGVzZSBuZXcgZGV0YWlscyBjbGFzc2VzLgorICAgICAgICAKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogZG9tL0RPTUFsbEluT25lLmNwcDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRN
YXJrZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmVtcHR5RGVzY3JpcHRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjpEb2N1bWVudE1hcmtlckRl
dGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxzOjp+RG9jdW1l
bnRNYXJrZXJEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGVzY3Jp
cHRpb246OmRlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGVz
Y3JpcHRpb246OmlzRGVzY3JpcHRpb24pOiAgICAgICAgCisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudE1hcmtlckRlc2NyaXB0aW9uOjpEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNyZWF0ZVVubGVzc0VtcHR5
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyRGVzY3JpcHRpb246OmNvbXBhdGli
bGVUeXBlcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlclRleHRNYXRjaDo6YWN0
aXZlTWF0Y2gpOiAgICAKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyVGV4dE1hdGNo
Ojppc1RleHRNYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlclRleHRNYXRj
aDo6RG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRN
YXJrZXJUZXh0TWF0Y2g6Omluc3RhbmNlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TWFya2VyVGV4dE1hdGNoOjpjb21wYXRpYmxlVHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
TWFya2VyOjpzaGlmdE9mZnNldHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6
OnNldEFjdGl2ZU1hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyOjpkZXNj
cmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlcjo6YWN0aXZlTWF0Y2gp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlci5oOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnRNYXJrZXI6OmRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXI6
OmNsZWFyRGV0YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckRldGFpbHM6
OmlzRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJEZXRhaWxz
Ojppc1RleHRNYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckRldGFpbHM6
OmlzQWxsb3dlZEZvcik6CisgICAgICAgICogZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OmNsZWFyRGVz
Y3JpcHRpb25Pbk1hcmtlcnNJbnRlcnNlY3RpbmdSYW5nZSk6CisgICAgICAgICogZWRpdGluZy9D
b21wb3NpdGVFZGl0Q29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGVFZGl0
Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2Vycyk6CisKIDIwMTEtMDgt
MDQgIFNjb3R0IEdyYWhhbSAgPHNjb3R0bWdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEJhZCBp
bnRlcmFjdGlvbiBiZXR3ZWVuIGRvY3VtZW50IGRlc3RydWN0aW9uIGFuZCB1bmxvYWQgZXZlbnRz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5NWM5ZjlhZjYyY2RiMjRlMDlkNzVm
NGFmMmYzNGQ1MTYyZmE2YjczLi40NmU5MDRkYjJjNjFhNGVhMWFmZDRiZjU0MmI2MjZiYWY1MmNi
Yzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTExMzIsNiArMTEzMiw3IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggXAog
CVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggXAorCVNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudE1hcmtlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dE1hcmtlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5oIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCA0MjIyMjExYjMyNjc3N2U1NmEzZjVlMTVlZGNlMDE4Njk3ZjBlMGJkLi42OTMyZWY5
ZjJmNTg5NjdhYTU0ODIxZmFjNzIwYjg0YjUzNGFiOTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01
MjY2LDYgKzUyNjYsNyBAQAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudC5jcHAnLAogICAgICAg
ICAgICAgJ2RvbS9Eb2N1bWVudEZyYWdtZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RvY3Vt
ZW50TWFya2VyQ29udHJvbGxlci5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudE1hcmtl
ci5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudE9yZGVyZWRNYXAuY3BwJywKICAgICAg
ICAgICAgICdkb20vRG9jdW1lbnRQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdkb20vRG9jdW1l
bnRUeXBlLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGFkZjQzMWY0MjQzZDBmNzY1YWY1ZmZlODgz
OWM4OGIyMWY5NDBmYTkuLmVjYTgwMWI3MDViNDNiMjQwNjM5MDg4YWEzMWY4YjRjMDcwMTJjMWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC00NzgsNiArNDc4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9t
L0RvY3VtZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuY3BwIFwKICAgICBkb20v
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBcCisgICAgZG9tL0RvY3VtZW50TWFya2VyLmNw
cCBcCiAgICAgZG9tL0RvY3VtZW50T3JkZXJlZE1hcC5jcHAgXAogICAgIGRvbS9Eb2N1bWVudFBh
cnNlci5jcHAgXAogICAgIGRvbS9Eb2N1bWVudFR5cGUuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYTE0ODFiYWM0NTY1YTllMDI5MGVi
ZDIxZmU0MmRiNmY3ZDJhMDIxZC4uN2YzY2JjODVhZDY2YzdkZDQxZGNmOTljYjQ2M2E0OWZjZGUz
ZDQzZiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTQ0NzUwLDYgKzQ0NzUwLDU4IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEb2N1bWVudE1hcmtlci5jcHAiCisJCQkJPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKKwkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvX0NGTGl0ZXxXaW4zMiIK
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCT4KKwkJCQkJPFRvb2wKKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCS8+CisJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMyIgor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJPgorCQkJCQk8VG9vbAorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJLz4KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9u
PgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEb2N1bWVu
dE9yZGVyZWRNYXAuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNDBm
ZDg1YTJjNjc5ZGNjMGIzZTBiNzk1NDMxZTM3ZWYxMjkzMzQ5Li5iMGNhY2IzMzAyZjNkZjNlNzUw
ZDRmM2M3YTFmOTFhNDA3YWM4MWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMzczLDYgKzMzNzMsNyBAQAogCQlBNzc5Nzky
OTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3Nzk3OTI1MEQ2QjlFNjQwMDM4NTFCOSAvKiBKU0lt
YWdlRGF0YS5oICovOyB9OwogCQlBNzdCNDFBMDEyRTY3NUE5MDA1NDM0M0QgLyogVGV4dEV2ZW50
SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBNzdCNDE5RjEyRTY3NUE5MDA1NDM0M0QgLyogVGV4dEV2ZW50SW5wdXRUeXBlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTc3RDAwMTIxMzNC
MEFFQjAwRDY2NThDIC8qIFRleHRDaGVja2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc3RDAwMTExMzNCMEFFQjAwRDY2NThDIC8qIFRleHRDaGVj
a2luZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUE3ODFDNkE3MTM4MjhCNUQwMDEyQTYyQSAvKiBEb2N1bWVudE1hcmtlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzgxQzZBNjEzODI4QjVEMDAx
MkE2MkEgLyogRG9jdW1lbnRNYXJrZXIuY3BwICovOyB9OwogCQlBNzg0OTQxQjBCNUZFNTA3MDAx
RTIzN0EgLyogQ2xpcGJvYXJkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE3ODQ5NDFBMEI1RkU1MDcwMDFFMjM3QSAvKiBDbGlwYm9hcmQuY3BwICov
OyB9OwogCQlBNzhFNTI2RjEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OEU1MjZE
MTM0NkJEMTcwMEFEOUMzMSAvKiBNZXRlclNoYWRvd0VsZW1lbnQuY3BwICovOyB9OwogCQlBNzhF
NTI3MDEzNDZCRDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzhFNTI2RTEzNDZCRDE3MDBBRDlD
MzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggKi87IH07CkBAIC05OTY4LDYgKzk5NjksNyBAQAog
CQlBNzc5NzkyNTBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURhdGEuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJbWFnZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTc3QjQxOUYxMkU2NzVBOTAwNTQzNDNEIC8qIFRleHRFdmVudElucHV0VHlwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RXZlbnRJbnB1dFR5cGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc3RDAwMTExMzNCMEFFQjAwRDY2NThDIC8q
IFRleHRDaGVja2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0Q2hl
Y2tpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc4MUM2QTYxMzgyOEI1RDAw
MTJBNjJBIC8qIERvY3VtZW50TWFya2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERvY3VtZW50TWFya2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTc4NDk0MUEwQjVGRTUwNzAwMUUyMzdBIC8qIENsaXBib2FyZC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2xpcGJvYXJkLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTc4RTUyNkQxMzQ2QkQxNzAwQUQ5QzMxIC8qIE1ldGVyU2hhZG93RWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZXRlclNoYWRv
d0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzhFNTI2RTEzNDZC
RDE3MDBBRDlDMzEgLyogTWV0ZXJTaGFkb3dFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE1ldGVyU2hhZG93RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTk3NzMsNiArMTk3NzUsNyBAQAogCQkJCTU5QTg1RUFBMTE5RDdCNkUwMERFRjFF
RiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCAqLywKIAkJCQk0OTBDNDdDRDEzRTgyRDE4
MDBGN0FCODIgLyogRGlzcGF0Y2hUYXNrLmggKi8sCiAJCQkJQTgxODVGMzQwOTc2NTc2NTAwNTgy
NkQ5IC8qIERvY3VtZW50LmNwcCAqLywKKwkJCQlBNzgxQzZBNjEzODI4QjVEMDAxMkE2MkEgLyog
RG9jdW1lbnRNYXJrZXIuY3BwICovLAogCQkJCUE4MTg1RjM4MDk3NjU3NjUwMDU4MjZEOSAvKiBE
b2N1bWVudC5oICovLAogCQkJCTY1NDhFMjQ4MDlFMUUwNEQwMEFGODAyMCAvKiBEb2N1bWVudC5p
ZGwgKi8sCiAJCQkJQTgxODVGMzcwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3VtZW50RnJhZ21lbnQu
Y3BwICovLApAQCAtMjM5NDEsNiArMjM5NDQsNyBAQAogCQkJCUE4MTg1RjNGMDk3NjU3NjYwMDU4
MjZEOSAvKiBEb2N1bWVudEZyYWdtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRTIyN0Uw
MEFGNTg5QUQwMEQ0ODMyNCAvKiBEb2N1bWVudExvYWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQzI2NDk3QTBEN0UyNDhBMDBCRDEwRjIgLyogRG9jdW1lbnRMb2FkZXJNYWMuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQTc4MUM2QTcxMzgyOEI1RDAwMTJBNjJBIC8qIERvY3VtZW50TWFya2Vy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNFMDU3RkE1MTIyMDczMTEwMEE0NzZENSAvKiBEb2N1
bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ5NDdGRkQxMkY4
MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3JkZXJlZE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOEMyMjgwRTExRDRBNTk3MDBENUE3RDMgLyogRG9jdW1lbnRQYXJzZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAppbmRleCBiOGI4NWQ1ODU5ZjU5NGE3
YzJhYTFiOGU0MTRhM2JmNGY1ZjUxYjM4Li5lMzg5Y2QxZWYxODg0ZGIyOTUwZWE1NTY5NTY5NmVm
NzdjMDNlNmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKQEAgLTU4LDYgKzU4LDcg
QEAKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCIKICNpbmNsdWRlICJEb2N1
bWVudC5jcHAiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5jcHAiCisjaW5jbHVkZSAiRG9j
dW1lbnRNYXJrZXIuY3BwIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAi
CiAjaW5jbHVkZSAiRG9jdW1lbnRPcmRlcmVkTWFwLmNwcCIKICNpbmNsdWRlICJEb2N1bWVudFBh
cnNlci5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
NGY5OTk0ZGI0ZWY2YWVjZmQ4YzU2NzkzMGI4MTc3ODhlZWJkNjFhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyLmNwcApAQCAtMCwwICsxLDE1MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlci5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0RvY3VtZW50TWFya2VyRGV0YWlsczo6fkRvY3VtZW50TWFya2Vy
RGV0YWlscygpCit7Cit9CisKK2NsYXNzIERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24gOiBwdWJs
aWMgRG9jdW1lbnRNYXJrZXJEZXRhaWxzIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uPiBjcmVhdGUoY29uc3QgU3RyaW5nJik7CisKKyAg
ICBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXNjcmlwdGlv
bjsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0Rlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQorCitwcml2YXRlOgorICAgIERvY3VtZW50TWFya2VyRGVzY3JpcHRpb24oY29uc3QgU3Ry
aW5nJiBkZXNjcmlwdGlvbikKKyAgICAgICAgOiBtX2Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKQor
ICAgIHsKKyAgICB9CisKKyAgICBTdHJpbmcgbV9kZXNjcmlwdGlvbjsKK307CisKK1Bhc3NSZWZQ
dHI8RG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbj4gRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbjo6
Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSk7Cit9CisKK2lubGlu
ZSBEb2N1bWVudE1hcmtlckRlc2NyaXB0aW9uKiB0b0RvY3VtZW50TWFya2VyRGVzY3JpcHRpb24o
RG9jdW1lbnRNYXJrZXJEZXRhaWxzKiBkZXRhaWxzKQoreworICAgIGlmIChkZXRhaWxzICYmIGRl
dGFpbHMtPmlzRGVzY3JpcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PERvY3Vt
ZW50TWFya2VyRGVzY3JpcHRpb24qPihkZXRhaWxzKTsKKyAgICByZXR1cm4gMDsKK30KKworCitj
bGFzcyBEb2N1bWVudE1hcmtlclRleHRNYXRjaCA6IHB1YmxpYyBEb2N1bWVudE1hcmtlckRldGFp
bHMgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50TWFya2VyVGV4dE1h
dGNoPiBpbnN0YW5jZUZvcihib29sKTsKKworICAgIGJvb2wgYWN0aXZlTWF0Y2goKSBjb25zdCB7
IHJldHVybiBtX21hdGNoOyB9CisgICAgdmlydHVhbCBib29sIGlzVGV4dE1hdGNoKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IERvY3VtZW50TWFya2Vy
VGV4dE1hdGNoKGJvb2wgbWF0Y2gpCisgICAgICAgIDogbV9tYXRjaChtYXRjaCkKKyAgICB7Cisg
ICAgfQorCisgICAgYm9vbCBtX21hdGNoOworfTsKKworUGFzc1JlZlB0cjxEb2N1bWVudE1hcmtl
clRleHRNYXRjaD4gRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6Omluc3RhbmNlRm9yKGJvb2wgbWF0
Y2gpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8RG9jdW1lbnRNYXJrZXJUZXh0
TWF0Y2g+LCB0cnVlSW5zdGFuY2UsIChhZG9wdFJlZihuZXcgRG9jdW1lbnRNYXJrZXJUZXh0TWF0
Y2godHJ1ZSkpKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZWZQdHI8RG9jdW1lbnRNYXJr
ZXJUZXh0TWF0Y2g+LCBmYWxzZUluc3RhbmNlLCAoYWRvcHRSZWYobmV3IERvY3VtZW50TWFya2Vy
VGV4dE1hdGNoKGZhbHNlKSkpKTsKKyAgICByZXR1cm4gbWF0Y2ggPyB0cnVlSW5zdGFuY2UgOiBm
YWxzZUluc3RhbmNlOworfQorCitpbmxpbmUgRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2gqIHRvRG9j
dW1lbnRNYXJrZXJUZXh0TWF0Y2goRG9jdW1lbnRNYXJrZXJEZXRhaWxzKiBkZXRhaWxzKQorewor
ICAgIGlmIChkZXRhaWxzICYmIGRldGFpbHMtPmlzVGV4dE1hdGNoKCkpCisgICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxEb2N1bWVudE1hcmtlclRleHRNYXRjaCo+KGRldGFpbHMpOworICAgIHJl
dHVybiAwOworfQorCisKK0RvY3VtZW50TWFya2VyOjpEb2N1bWVudE1hcmtlcigpIAorICAgIDog
bV90eXBlKFNwZWxsaW5nKSwgbV9zdGFydE9mZnNldCgwKSwgbV9lbmRPZmZzZXQoMCkKK3sKK30K
KworRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKE1hcmtlclR5cGUgdHlwZSwgdW5zaWdu
ZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCkKKyAgICA6IG1fdHlwZSh0eXBlKSwg
bV9zdGFydE9mZnNldChzdGFydE9mZnNldCksIG1fZW5kT2Zmc2V0KGVuZE9mZnNldCkKK3sKK30K
KworRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKE1hcmtlclR5cGUgdHlwZSwgdW5zaWdu
ZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgY29uc3QgU3RyaW5nJiBkZXNjcmlw
dGlvbikKKyAgICA6IG1fdHlwZSh0eXBlKQorICAgICwgbV9zdGFydE9mZnNldChzdGFydE9mZnNl
dCkKKyAgICAsIG1fZW5kT2Zmc2V0KGVuZE9mZnNldCkKKyAgICAsIG1fZGV0YWlscyhkZXNjcmlw
dGlvbi5pc0VtcHR5KCkgPyAwIDogRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbjo6Y3JlYXRlKGRl
c2NyaXB0aW9uKSkKK3sKK30KKworRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKHVuc2ln
bmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGJvb2wgYWN0aXZlTWF0Y2gpCisg
ICAgOiBtX3R5cGUoRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCkKKyAgICAsIG1fc3RhcnRPZmZz
ZXQoc3RhcnRPZmZzZXQpCisgICAgLCBtX2VuZE9mZnNldChlbmRPZmZzZXQpCisgICAgLCBtX2Rl
dGFpbHMoRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6Omluc3RhbmNlRm9yKGFjdGl2ZU1hdGNoKSkK
K3sKK30KKwordm9pZCBEb2N1bWVudE1hcmtlcjo6c2hpZnRPZmZzZXRzKGludCBkZWx0YSkKK3sK
KyAgICBtX3N0YXJ0T2Zmc2V0ICs9IGRlbHRhOworICAgIG1fZW5kT2Zmc2V0ICs9ICBkZWx0YTsK
K30KKwordm9pZCBEb2N1bWVudE1hcmtlcjo6c2V0QWN0aXZlTWF0Y2goYm9vbCBhY3RpdmUpCit7
CisgICAgbV9kZXRhaWxzID0gRG9jdW1lbnRNYXJrZXJUZXh0TWF0Y2g6Omluc3RhbmNlRm9yKGFj
dGl2ZSk7Cit9CisKK2NvbnN0IFN0cmluZyYgRG9jdW1lbnRNYXJrZXI6OmRlc2NyaXB0aW9uKCkg
Y29uc3QKK3sKKyAgICBpZiAoRG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbiogZGV0YWlscyA9IHRv
RG9jdW1lbnRNYXJrZXJEZXNjcmlwdGlvbihtX2RldGFpbHMuZ2V0KCkpKQorICAgICAgICByZXR1
cm4gZGV0YWlscy0+ZGVzY3JpcHRpb24oKTsKKyAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKK30K
KworYm9vbCBEb2N1bWVudE1hcmtlcjo6YWN0aXZlTWF0Y2goKSBjb25zdAoreworICAgIGlmIChE
b2N1bWVudE1hcmtlclRleHRNYXRjaCogZGV0YWlscyA9IHRvRG9jdW1lbnRNYXJrZXJUZXh0TWF0
Y2gobV9kZXRhaWxzLmdldCgpKSkKKyAgICAgICAgcmV0dXJuIGRldGFpbHMtPmFjdGl2ZU1hdGNo
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCmluZGV4IGQ2NzBlMmMwYjAzMjAxM2M2MzNhYmY0ZWJj
OTg4NDVkNTE0Yjc5NmYuLjQxZWQ4NDgzNjQwZGNlNWY5OTFmYzczNmFjMzNiZDdlNTZlOTYyNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlci5oCkBAIC0yNSwxMCArMjUsMTQgQEAKIAog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERvY3VtZW50TWFya2VyRGV0YWlsczsKKwogLy8g
QSByYW5nZSBvZiBhIG5vZGUgd2l0aGluIGEgZG9jdW1lbnQgdGhhdCBpcyAibWFya2VkIiwgc3Vj
aCBhcyB0aGUgcmFuZ2Ugb2YgYSBtaXNzcGVsbGVkIHdvcmQuCiAvLyBJdCBvcHRpb25hbGx5IGlu
Y2x1ZGVzIGEgZGVzY3JpcHRpb24gdGhhdCBjb3VsZCBiZSBkaXNwbGF5ZWQgaW4gdGhlIHVzZXIg
aW50ZXJmYWNlLgogLy8gSXQgYWxzbyBvcHRpb25hbGx5IGluY2x1ZGVzIGEgZmxhZyBzcGVjaWZ5
aW5nIHdoZXRoZXIgdGhlIG1hdGNoIGlzIGFjdGl2ZSwgd2hpY2ggaXMgaWdub3JlZApAQCAtOTQs
MTIgKzk4LDEzIEBAIHB1YmxpYzoKICAgICBNYXJrZXJUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KICAgICB1bnNpZ25lZCBzdGFydE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1f
c3RhcnRPZmZzZXQ7IH0KICAgICB1bnNpZ25lZCBlbmRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBt
X2VuZE9mZnNldDsgfQotICAgIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24oKSBjb25zdCB7IHJl
dHVybiBtX2Rlc2NyaXB0aW9uOyB9Ci0gICAgYm9vbCBoYXNEZXNjcmlwdGlvbigpIGNvbnN0IHsg
cmV0dXJuICFtX2Rlc2NyaXB0aW9uLmlzRW1wdHkoKTsgfQotICAgIGJvb2wgYWN0aXZlTWF0Y2go
KSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZU1hdGNoOyB9CisKKyAgICBjb25zdCBTdHJpbmcmIGRl
c2NyaXB0aW9uKCkgY29uc3Q7CisgICAgYm9vbCBhY3RpdmVNYXRjaCgpIGNvbnN0OworICAgIERv
Y3VtZW50TWFya2VyRGV0YWlscyogZGV0YWlscygpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRBY3Rp
dmVNYXRjaChib29sKTsKLSAgICB2b2lkIGNsZWFyRGVzY3JpcHRpb24oKSB7IG1fZGVzY3JpcHRp
b24gPSBTdHJpbmcoKTsgfQorICAgIHZvaWQgY2xlYXJEZXRhaWxzKCkgeyBtX2RldGFpbHMuY2xl
YXIoKTsgfQogCiAgICAgLy8gT2Zmc2V0IG1vZGlmaWNhdGlvbnMgYXJlIGRvbmUgYnkgRG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyLgogICAgIC8vIE90aGVyIGNsYXNzZXMgc2hvdWxkIG5vdCBjYWxs
IGZvbGxvd2luZyBzZXR0ZXJzLgpAQCAtMTIxLDQyICsxMjYsMjIgQEAgcHJpdmF0ZToKICAgICBN
YXJrZXJUeXBlIG1fdHlwZTsKICAgICB1bnNpZ25lZCBtX3N0YXJ0T2Zmc2V0OwogICAgIHVuc2ln
bmVkIG1fZW5kT2Zmc2V0OwotICAgIFN0cmluZyBtX2Rlc2NyaXB0aW9uOwotICAgIGJvb2wgbV9h
Y3RpdmVNYXRjaDsKKyAgICBSZWZQdHI8RG9jdW1lbnRNYXJrZXJEZXRhaWxzPiBtX2RldGFpbHM7
CiB9OwogCi1pbmxpbmUgRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFya2VyKCkKLSAgICA6IG1f
dHlwZShTcGVsbGluZyksIG1fc3RhcnRPZmZzZXQoMCksIG1fZW5kT2Zmc2V0KDApLCBtX2FjdGl2
ZU1hdGNoKGZhbHNlKQotewotfQotCi1pbmxpbmUgRG9jdW1lbnRNYXJrZXI6OkRvY3VtZW50TWFy
a2VyKE1hcmtlclR5cGUgdHlwZSwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9m
ZnNldCkKLSAgICA6IG1fdHlwZSh0eXBlKSwgbV9zdGFydE9mZnNldChzdGFydE9mZnNldCksIG1f
ZW5kT2Zmc2V0KGVuZE9mZnNldCksIG1fYWN0aXZlTWF0Y2goZmFsc2UpCitpbmxpbmUgRG9jdW1l
bnRNYXJrZXJEZXRhaWxzKiBEb2N1bWVudE1hcmtlcjo6ZGV0YWlscygpIGNvbnN0CiB7CisgICAg
cmV0dXJuIG1fZGV0YWlscy5nZXQoKTsKIH0KIAotaW5saW5lIERvY3VtZW50TWFya2VyOjpEb2N1
bWVudE1hcmtlcihNYXJrZXJUeXBlIHR5cGUsIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25l
ZCBlbmRPZmZzZXQsIGNvbnN0IFN0cmluZyYgZGVzY3JpcHRpb24pCi0gICAgOiBtX3R5cGUodHlw
ZSksIG1fc3RhcnRPZmZzZXQoc3RhcnRPZmZzZXQpLCBtX2VuZE9mZnNldChlbmRPZmZzZXQpLCBt
X2Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKSwgbV9hY3RpdmVNYXRjaChmYWxzZSkKK2NsYXNzIERv
Y3VtZW50TWFya2VyRGV0YWlscyA6IHB1YmxpYyBSZWZDb3VudGVkPERvY3VtZW50TWFya2VyRGV0
YWlscz4KIHsKLSAgICBBU1NFUlQodHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6R3JhbW1hciB8fCBE
b2N1bWVudE1hcmtlcjo6QXV0b2NvcnJlY3RlZCk7Ci19Ci0KLWlubGluZSBEb2N1bWVudE1hcmtl
cjo6RG9jdW1lbnRNYXJrZXIodW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNl
dCwgYm9vbCBhY3RpdmVNYXRjaCkKLSAgICA6IG1fdHlwZShEb2N1bWVudE1hcmtlcjo6VGV4dE1h
dGNoKSwgbV9zdGFydE9mZnNldChzdGFydE9mZnNldCksIG1fZW5kT2Zmc2V0KGVuZE9mZnNldCks
IG1fYWN0aXZlTWF0Y2goYWN0aXZlTWF0Y2gpCi17Ci19Ci0KLWlubGluZSB2b2lkIERvY3VtZW50
TWFya2VyOjpzaGlmdE9mZnNldHMoaW50IGRlbHRhKQotewotICAgIG1fc3RhcnRPZmZzZXQgKz0g
ZGVsdGE7Ci0gICAgbV9lbmRPZmZzZXQgKz0gIGRlbHRhOwotfQotCi1pbmxpbmUgdm9pZCBEb2N1
bWVudE1hcmtlcjo6c2V0QWN0aXZlTWF0Y2goYm9vbCBhY3RpdmUpCi17Ci0gICAgQVNTRVJUKG1f
dHlwZSA9PSBEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKTsKLSAgICBtX2FjdGl2ZU1hdGNoID0g
YWN0aXZlOwotfQorcHVibGljOgorICAgIERvY3VtZW50TWFya2VyRGV0YWlscygpIHsgfQorICAg
IHZpcnR1YWwgfkRvY3VtZW50TWFya2VyRGV0YWlscygpOworICAgIHZpcnR1YWwgYm9vbCBpc0Rl
c2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNU
ZXh0TWF0Y2goKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwCmluZGV4IGM4ZjExNjNhYWU0Y2MwM2ZmMjBkMmYxODJjZTBkYzNkMGI0ZWI0NDIuLjFl
N2FjMWQyMTRjMzYyYTRlZGU1MTRhMDYzNGI5Y2EwNDkxNTRlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCkBAIC02NTIsNyArNjUyLDcg
QEAgdm9pZCBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6OmNsZWFyRGVzY3JpcHRpb25Pbk1hcmtl
cnNJbnRlcnNlY3RpbmdSYW5nZShSYW5nZSoKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICAgIH0KIAotICAgICAgICAgICAgbWFya2VyLmNsZWFyRGVzY3JpcHRpb24oKTsKKyAg
ICAgICAgICAgIG1hcmtlci5jbGVhckRldGFpbHMoKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXgg
ODEyMzc1ZjczOTU5NTM1ZmQxNGEwZWIwODdkYWM0NDQ4MGM5MGFmMy4uYTUyYjdiM2UxNzAzNDQz
ZjE1MDk5ZmZiM2JkMjJhY2E1ZWQ5MzFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTM1MywxMiArMzUzLDggQEAgdm9pZCBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6cmVwbGFjZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2VycyhQYXNz
UmVmUHRyPFRleHQ+IHAKICAgICBjb3B5TWFya2VycyhtYXJrZXJDb250cm9sbGVyLT5tYXJrZXJz
SW5SYW5nZShSYW5nZTo6Y3JlYXRlKGRvY3VtZW50KCksIG5vZGUsIG9mZnNldCwgbm9kZSwgb2Zm
c2V0ICsgY291bnQpLmdldCgpLCBEb2N1bWVudE1hcmtlcjo6QWxsTWFya2VycygpKSwgbWFya2Vy
cyk7CiAgICAgcmVwbGFjZVRleHRJbk5vZGUobm9kZSwgb2Zmc2V0LCBjb3VudCwgcmVwbGFjZW1l
bnRUZXh0KTsKICAgICBSZWZQdHI8UmFuZ2U+IG5ld1JhbmdlID0gUmFuZ2U6OmNyZWF0ZShkb2N1
bWVudCgpLCBub2RlLCBvZmZzZXQsIG5vZGUsIG9mZnNldCArIHJlcGxhY2VtZW50VGV4dC5sZW5n
dGgoKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtYXJrZXJzLnNpemUoKTsgKytpKSB7
Ci0gICAgICAgIGlmIChtYXJrZXJzW2ldLmhhc0Rlc2NyaXB0aW9uKCkpCi0gICAgICAgICAgICBt
YXJrZXJDb250cm9sbGVyLT5hZGRNYXJrZXIobmV3UmFuZ2UuZ2V0KCksIG1hcmtlcnNbaV0udHlw
ZSgpLCBtYXJrZXJzW2ldLmRlc2NyaXB0aW9uKCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBtYXJrZXJDb250cm9sbGVyLT5hZGRNYXJrZXIobmV3UmFuZ2UuZ2V0KCksIG1hcmtlcnNbaV0u
dHlwZSgpKTsKLSAgICB9CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtYXJrZXJzLnNpemUo
KTsgKytpKQorICAgICAgICBtYXJrZXJDb250cm9sbGVyLT5hZGRNYXJrZXIobmV3UmFuZ2UuZ2V0
KCksIG1hcmtlcnNbaV0udHlwZSgpLCBtYXJrZXJzW2ldLmRlc2NyaXB0aW9uKCkpOwogfQogCiBQ
b3NpdGlvbiBDb21wb3NpdGVFZGl0Q29tbWFuZDo6cG9zaXRpb25PdXRzaWRlVGFiU3Bhbihjb25z
dCBQb3NpdGlvbiYgcG9zKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>