<?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>62881</bug_id>
          
          <creation_ts>2011-06-17 10:53:16 -0700</creation_ts>
          <short_desc>Loading out-of-band text track files from &lt;track&gt;</short_desc>
          <delta_ts>2011-06-24 16:06:16 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>43668</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Anna Cavender">annacc</reporter>
          <assigned_to name="Anna Cavender">annacc</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>hclam</cc>
    
    <cc>mrobinson</cc>
    
    <cc>vrk</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>422726</commentid>
    <comment_count>0</comment_count>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-06-17 10:53:16 -0700</bug_when>
    <thetext>This change will load a file from the src (or &lt;source&gt;) of a &lt;track&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424249</commentid>
    <comment_count>1</comment_count>
      <attachid>97928</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-06-20 21:40:10 -0700</bug_when>
    <thetext>Created attachment 97928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424251</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-20 21:42:07 -0700</bug_when>
    <thetext>Attachment 97928 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/html/HTMLTrackElement.cpp:141:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424252</commentid>
    <comment_count>3</comment_count>
      <attachid>97928</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-06-20 21:45:56 -0700</bug_when>
    <thetext>Comment on attachment 97928
Patch

Attachment 97928 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/8909848</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424255</commentid>
    <comment_count>4</comment_count>
      <attachid>97928</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-06-20 21:53:27 -0700</bug_when>
    <thetext>Comment on attachment 97928
Patch

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

&gt; Source/WebCore/html/HTMLTrackElement.cpp:45
&gt; +    , m_track(0)

RefPtr&apos;s are initialized to null, so this is not necessary.

&gt; Source/WebCore/html/HTMLTrackElement.cpp:54
&gt; +    document()-&gt;unregisterForDocumentActivationCallbacks(this);

You probably need to add calls to this and registerForDocumentActivationCallbacks when moving to a different document.  See HTMLMediaElement::willMoveToNewOwnerDocument and HTMLMediaElement::didMoveToNewOwnerDocument.

&gt; Source/WebCore/html/HTMLTrackElement.cpp:143
&gt; +        Node* node;
&gt; +        for (node = firstChild(); node; node = node-&gt;nextSibling()) {

There is no reason to declare the Node* out side of the for-loop syntax.

&gt; Source/WebCore/platform/track/CueParser.h:70
&gt;      void fetchParsedCues(Vector&lt;PassRefPtr&lt;TextTrackCue&gt; &gt;&amp;);

Not new code, but this is a highly unusual thing to do.  This Vector should probably be a Vector&lt;RefPtr&lt;foo&gt; &gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424508</commentid>
    <comment_count>5</comment_count>
      <attachid>97928</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-06-21 09:57:58 -0700</bug_when>
    <thetext>Comment on attachment 97928
Patch

Thanks for the fast review response!

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

&gt;&gt; Source/WebCore/html/HTMLTrackElement.cpp:45
&gt;&gt; +    , m_track(0)
&gt; 
&gt; RefPtr&apos;s are initialized to null, so this is not necessary.

Done.

&gt;&gt; Source/WebCore/html/HTMLTrackElement.cpp:54
&gt;&gt; +    document()-&gt;unregisterForDocumentActivationCallbacks(this);
&gt; 
&gt; You probably need to add calls to this and registerForDocumentActivationCallbacks when moving to a different document.  See HTMLMediaElement::willMoveToNewOwnerDocument and HTMLMediaElement::didMoveToNewOwnerDocument.

Ah, ok, I misunderstood the meaning of this call.  Will remove.  Plus, I&apos;m not entirely sure that HTMLTrackElement needs to be an ActiveDOMObject, so I&apos;ve eliminated that altogether and instead pass along the ScriptExecutionContext from HTMLMediaElement during a load.  Please let me know if this is not the right approach.

&gt;&gt; Source/WebCore/html/HTMLTrackElement.cpp:143
&gt;&gt; +        for (node = firstChild(); node; node = node-&gt;nextSibling()) {
&gt; 
&gt; There is no reason to declare the Node* out side of the for-loop syntax.

Agreed.  Done.

&gt;&gt; Source/WebCore/platform/track/CueParser.h:70
&gt;&gt;      void fetchParsedCues(Vector&lt;PassRefPtr&lt;TextTrackCue&gt; &gt;&amp;);
&gt; 
&gt; Not new code, but this is a highly unusual thing to do.  This Vector should probably be a Vector&lt;RefPtr&lt;foo&gt; &gt;.

Thanks, I&apos;ll change it to RefPtr instead of PassRefPtr, but I need to leave it as a reference (&amp;) because the parameter in an output parameter to be filled by this function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424509</commentid>
    <comment_count>6</comment_count>
      <attachid>98003</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-06-21 09:58:25 -0700</bug_when>
    <thetext>Created attachment 98003
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424513</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-21 10:00:30 -0700</bug_when>
    <thetext>Attachment 98003 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/html/HTMLTrackElement.cpp:137:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424518</commentid>
    <comment_count>8</comment_count>
      <attachid>98003</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-06-21 10:12:53 -0700</bug_when>
    <thetext>Comment on attachment 98003
Patch

Attachment 98003 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/8913977</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424871</commentid>
    <comment_count>9</comment_count>
      <attachid>98080</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-06-21 16:45:45 -0700</bug_when>
    <thetext>Created attachment 98080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424899</commentid>
    <comment_count>10</comment_count>
      <attachid>98080</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-06-21 17:28:20 -0700</bug_when>
    <thetext>Comment on attachment 98080
Patch

Attachment 98080 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/8925094</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425024</commentid>
    <comment_count>11</comment_count>
      <attachid>98117</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-06-21 22:22:04 -0700</bug_when>
    <thetext>Created attachment 98117
Adding files to GNUmakefile.list.am</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425027</commentid>
    <comment_count>12</comment_count>
      <attachid>98118</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-06-21 22:29:24 -0700</bug_when>
    <thetext>Created attachment 98118
Adding tabs to GNUmakefile.list.am</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425028</commentid>
    <comment_count>13</comment_count>
      <attachid>98118</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-06-21 22:34:16 -0700</bug_when>
    <thetext>Comment on attachment 98118
Adding tabs to GNUmakefile.list.am

Attachment 98118 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/8923223</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425036</commentid>
    <comment_count>14</comment_count>
      <attachid>98121</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-06-21 22:46:06 -0700</bug_when>
    <thetext>Created attachment 98121
Adding &quot;Source/WebCore/platform/track \&quot; to GNUmakefile.am</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426210</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-06-23 08:46:50 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Created an attachment (id=98121) [details]
&gt; Patch

(In reply to comment #11)
&gt; Created an attachment (id=98121) [details]
&gt; Patch

(In reply to comment #12)
&gt; Created an attachment (id=98121) [details]
&gt; Patch

(In reply to comment #14)
&gt; Created an attachment (id=98121) [details]
&gt; Patch

I find it is often helpful to have a comment about what changed when a patch is updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426298</commentid>
    <comment_count>16</comment_count>
      <attachid>98121</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-06-23 10:52:34 -0700</bug_when>
    <thetext>Comment on attachment 98121
Adding &quot;Source/WebCore/platform/track \&quot; to GNUmakefile.am

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

Clearing r? so you can respond to comments.


&gt; Source/WebCore/html/HTMLMediaElement.h:306
&gt; +#if ENABLE(VIDEO_TRACK)
&gt; +    // loading tracks
&gt; +    void loadTextTracks();
&gt; +#endif

Comments should be complete sentences (first word capitalized, followed by a period, etc). However in this case I don&apos;t think this comment adds anything because the function name says what it does.

&gt; Source/WebCore/html/HTMLTrackElement.cpp:146
&gt; +    if (hasAttribute(srcAttr))
&gt; +        m_track-&gt;load(getNonEmptyURLAttribute(srcAttr), context);
&gt; +    else
&gt; +        for (Node* node = firstChild(); node; node = node-&gt;nextSibling()) {
&gt; +            if (node-&gt;hasTagName(sourceTag)) {
&gt; +                HTMLSourceElement* source = static_cast&lt;HTMLSourceElement*&gt;(node);
&gt; +                KURL url = source-&gt;getNonEmptyURLAttribute(srcAttr);
&gt; +                if (!url.isEmpty() &amp;&amp; m_track-&gt;supportsType(url))
&gt; +                    m_track-&gt;load(url, context);
&gt; +            }
&gt; +        }
&gt; +

While I agree that &lt;track&gt; should support &lt;source&gt;, it is a void element in both specs at the moment so I think you shouldn&apos;t land support for it yet.

&gt; Source/WebCore/html/LoadableTextTrack.cpp:41
&gt;  LoadableTextTrack::~LoadableTextTrack()
&gt;  {
&gt; -    // FIXME(62881): Implement.
&gt;  }

Aren&apos;t you leaking &quot;m_private&quot; here? Is there any reason not to use an OwnPtr?

As discussed in IRC, please consider just getting rid of LoadableTextTrackImpl by combining it with this class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427080</commentid>
    <comment_count>17</comment_count>
      <attachid>98531</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-06-24 13:39:02 -0700</bug_when>
    <thetext>Created attachment 98531
Removing TextTrackPrivateInterface, LoadableTextTrackImpl, and MutableTextTrackImpl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427090</commentid>
    <comment_count>18</comment_count>
      <attachid>98121</attachid>
    <who name="Anna Cavender">annacc</who>
    <bug_when>2011-06-24 13:44:10 -0700</bug_when>
    <thetext>Comment on attachment 98121
Adding &quot;Source/WebCore/platform/track \&quot; to GNUmakefile.am

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

&gt;&gt; Source/WebCore/html/HTMLMediaElement.h:306
&gt;&gt; +#endif
&gt; 
&gt; Comments should be complete sentences (first word capitalized, followed by a period, etc). However in this case I don&apos;t think this comment adds anything because the function name says what it does.

Done.

&gt;&gt; Source/WebCore/html/HTMLTrackElement.cpp:146
&gt;&gt; +
&gt; 
&gt; While I agree that &lt;track&gt; should support &lt;source&gt;, it is a void element in both specs at the moment so I think you shouldn&apos;t land support for it yet.

OK.  Too bad :(  I guess I got a little excited.

&gt;&gt; Source/WebCore/html/LoadableTextTrack.cpp:41
&gt;&gt;  }
&gt; 
&gt; Aren&apos;t you leaking &quot;m_private&quot; here? Is there any reason not to use an OwnPtr?
&gt; 
&gt; As discussed in IRC, please consider just getting rid of LoadableTextTrackImpl by combining it with this class.

I thought about it and I agree.  Can&apos;t remember why the extra abstraction was there in the first place.  It is gone in the latest patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427143</commentid>
    <comment_count>19</comment_count>
      <attachid>98531</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2011-06-24 14:19:15 -0700</bug_when>
    <thetext>Comment on attachment 98531
Removing TextTrackPrivateInterface, LoadableTextTrackImpl, and MutableTextTrackImpl.

Nice simplification!
r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427221</commentid>
    <comment_count>20</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2011-06-24 16:06:16 -0700</bug_when>
    <thetext>Committed r89711: &lt;http://trac.webkit.org/changeset/89711&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97928</attachid>
            <date>2011-06-20 21:40:10 -0700</date>
            <delta_ts>2011-06-21 09:58:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62881-20110620214009.patch</filename>
            <type>text/plain</type>
            <size>18203</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzMzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjOTVjZDQ4MWNiNjBhZTI3
N2U4NTJhMTgyYzk2NzY1YzQzNzdlZmFlLi41MjYxOTcyNDNmYWQ2NzZkMDFjMTg1OTVmMWZiNzRj
NmI5Yzc3NmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDYtMjAgIEFubmEg
Q2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIExvYWRpbmcgb3V0LW9mLWJhbmQgdGV4dCB0cmFjayBm
aWxlcyBmcm9tIDx0cmFjaz4uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02Mjg4MQorICAgICAgICAKKyAgICAgICAgVXNlcyB0aGUgc3JjIGF0dHJpYnV0
ZSBvciA8c291cmNlPiBjaGlsZHJlbiB0YWdzIG9mIDx0cmFjaz4gdXJscyB0bworICAgICAgICBs
b2FkIG91dC1vZi1iYW5kIHRleHQgdHJhY2sgZmlsZXMgdXNpbmcgVGhyZWFkYWJsZUxvYWRlci4K
KworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBmZWF0dXJlIGlzIGhpZGRlbiBiZWhpbmQg
VklERU9fVFJBQ0sgZmVhdHVyZQorICAgICAgICBkZWZpbmUsIHdoaWNoIGlzIHR1cm5lZCBvZmYu
CisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6
CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9Mb2Fk
YWJsZVRleHRUcmFjay5jcHA6CisgICAgICAgICogaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5oOgor
ICAgICAgICAqIGh0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmNwcDoKKyAgICAgICAgKiBodG1s
L0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oOgorICAgICAgICAqIGh0bWwvVGV4dFRyYWNrLmNwcDoK
KyAgICAgICAgKiBodG1sL1RleHRUcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90
cmFjay9DdWVQYXJzZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5o
OgorCiAyMDExLTA2LTIwICBEYWkgTWlrdXJ1YmUgIDxkbWlrdXJ1YmVAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYzM4M2NjOWZjZmRmMDQzZWE1Y2I0NWExODhmZDc3Zjc4
NDZlZDJmMS4uYWY3YzI1ZTRhZDdiNDlmMzVlODM5ZTQwOGEzOGNhMmE3OGM3OTMzMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC04NCw2ICs4NCwxMCBAQAog
I2luY2x1ZGUgIldpZGdldC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisj
aW5jbHVkZSAiSFRNTFRyYWNrRWxlbWVudC5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU5MCw2ICs1OTQsOSBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmxvYWRJbnRlcm5hbCgpCiAgICAgfQogCiAgICAgc2VsZWN0TWVkaWFSZXNv
dXJjZSgpOworI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBsb2FkVGV4dFRyYWNrcygpOwor
I2VuZGlmCiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSgp
CkBAIC03NjYsNiArNzczLDE4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNl
KGNvbnN0IEtVUkwmIGluaXRpYWxVUkwsIENvbnRlbnRUeXBlJiBjb250ZW50CiAgICAgICAgIHJl
bmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiB9CiAKKyNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRUZXh0VHJhY2tzKCkKK3sKKyAgICBmb3Ig
KE5vZGUqIG5vZGUgPSBmaXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGlu
ZygpKSB7CisgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHRyYWNrVGFnKSkgeworICAgICAg
ICAgICAgSFRNTFRyYWNrRWxlbWVudCogdHJhY2sgPSBzdGF0aWNfY2FzdDxIVE1MVHJhY2tFbGVt
ZW50Kj4obm9kZSk7CisgICAgICAgICAgICB0cmFjay0+bG9hZCgpOworICAgICAgICB9CisgICAg
fQorfQorI2VuZGlmCisKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNTYWZlVG9Mb2FkVVJMKGNv
bnN0IEtVUkwmIHVybCwgSW52YWxpZFNvdXJjZUFjdGlvbiBhY3Rpb25JZkludmFsaWQpCiB7CiAg
ICAgaWYgKCF1cmwuaXNWYWxpZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCmluZGV4IGUxZWM0NTk0MmIyNTk1NTBlOWNiMTgxZjNhY2NjNDEwOWM0OTJmZjIuLjExZjBj
NGE0NjdjM2EzZTBmNDJhZjZmYzE4NmE4N2E4MTRlNmQwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCkBAIC0zMDAsNiArMzAwLDExIEBAIHByaXZhdGU6CiAgICAgS1VS
TCBzZWxlY3ROZXh0U291cmNlQ2hpbGQoQ29udGVudFR5cGUqLCBJbnZhbGlkU291cmNlQWN0aW9u
KTsKICAgICB2b2lkIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRl
KTsKIAorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICAvLyBsb2FkaW5nIHRyYWNrcworICAg
IHZvaWQgbG9hZFRleHRUcmFja3MoKTsKKyNlbmRpZgorCiAgICAgLy8gVGhlc2UgImludGVybmFs
IiBmdW5jdGlvbnMgZG8gbm90IGNoZWNrIHVzZXIgZ2VzdHVyZSByZXN0cmljdGlvbnMuCiAgICAg
dm9pZCBsb2FkSW50ZXJuYWwoKTsKICAgICB2b2lkIHBsYXlJbnRlcm5hbCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKaW5kZXggNjNmMjc4OGI4ODA2MGI4YmE3NjRm
MjllYmVjZTZjYjZkZGExZjQ0Ni4uZjVkMjNhYjVjNDIxZmY4YTAxOTViYmM3YjY5MDU1NTE2ZWY1
MjRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCkBAIC0zMCw2
ICszMCw3IEBACiAKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFNvdXJjZUVsZW1lbnQuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC00MCw5ICs0MSwxNyBAQCB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCiBpbmxpbmUgSFRNTFRyYWNrRWxlbWVudDo6SFRNTFRyYWNr
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
CiAgICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKKyAgICAsIEFjdGl2ZURPTU9i
amVjdChkb2N1bWVudCwgdGhpcykKKyAgICAsIG1fdHJhY2soMCkKIHsKICAgICBMT0coTWVkaWEs
ICJIVE1MVHJhY2tFbGVtZW50OjpIVE1MVHJhY2tFbGVtZW50IC0gJXAiLCB0aGlzKTsKICAgICBB
U1NFUlQoaGFzVGFnTmFtZSh0cmFja1RhZykpOworICAgIGRvY3VtZW50LT5yZWdpc3RlckZvckRv
Y3VtZW50QWN0aXZhdGlvbkNhbGxiYWNrcyh0aGlzKTsKK30KKworSFRNTFRyYWNrRWxlbWVudDo6
fkhUTUxUcmFja0VsZW1lbnQoKQoreworICAgIGRvY3VtZW50KCktPnVucmVnaXN0ZXJGb3JEb2N1
bWVudEFjdGl2YXRpb25DYWxsYmFja3ModGhpcyk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTFRyYWNr
RWxlbWVudD4gSFRNTFRyYWNrRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTEyMyw2ICsxMzIsMjYgQEAgYm9vbCBIVE1M
VHJhY2tFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkgY29uc3QK
ICAgICByZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gc3JjQXR0cjsKIH0KIAordm9pZCBIVE1M
VHJhY2tFbGVtZW50Ojpsb2FkKCkKK3sKKyAgICBtX3RyYWNrID0gTG9hZGFibGVUZXh0VHJhY2s6
OmNyZWF0ZShraW5kKCksIGxhYmVsKCksIHNyY2xhbmcoKSwgaXNEZWZhdWx0KCkpOworCisgICAg
aWYgKGhhc0F0dHJpYnV0ZShzcmNBdHRyKSkgeworICAgICAgICBtX3RyYWNrLT5sb2FkKGdldE5v
bkVtcHR5VVJMQXR0cmlidXRlKHNyY0F0dHIpLCBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgTm9kZSogbm9kZTsKKyAgICAg
ICAgZm9yIChub2RlID0gZmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxp
bmcoKSkgeworICAgICAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoc291cmNlVGFnKSkgewor
ICAgICAgICAgICAgICAgIEhUTUxTb3VyY2VFbGVtZW50KiBzb3VyY2UgPSBzdGF0aWNfY2FzdDxI
VE1MU291cmNlRWxlbWVudCo+KG5vZGUpOworICAgICAgICAgICAgICAgIEtVUkwgdXJsID0gc291
cmNlLT5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShzcmNBdHRyKTsKKyAgICAgICAgICAgICAgICBp
ZiAoIXVybC5pc0VtcHR5KCkgJiYgbV90cmFjay0+c3VwcG9ydHNUeXBlKHVybCkpCisgICAgICAg
ICAgICAgICAgICAgIG1fdHJhY2stPmxvYWQodXJsLCBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKK30K
KwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNr
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKaW5kZXgg
NDY5N2UwMmFiOGNlNzRiZDljMzg3N2IwNDI0Y2RkNmExOGQxOTA5YS4uOWJlMWJjNGRjN2YxZDNh
OWQ2NzRiYjcyYTk5MDBiYTVhMGQ1N2I0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVHJhY2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tF
bGVtZW50LmgKQEAgLTI5LDEwICsyOSwxMSBAQAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAog
I2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiTG9hZGFibGVUZXh0VHJhY2suaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVE1MVHJhY2tFbGVtZW50IDogcHVibGlj
IEhUTUxFbGVtZW50IHsKK2NsYXNzIEhUTUxUcmFja0VsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1l
bnQsIHByaXZhdGUgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxIVE1MVHJhY2tFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CiAKQEAgLTQ3LDEzICs0OCwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTcmNsYW5n
KGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc2V0TGFiZWwoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBzZXRJc0RlZmF1bHQoYm9vbCk7CisgICAgCisgICAgdm9pZCBsb2FkKCk7CiAKIHByaXZh
dGU6CiAgICAgSFRNTFRyYWNrRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKKyAgICB2aXJ0dWFsIH5IVE1MVHJhY2tFbGVtZW50KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
aW5zZXJ0ZWRJbnRvVHJlZShib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlbW92ZSgpOwog
ICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKKyAgICAK
KyAgICBSZWZQdHI8TG9hZGFibGVUZXh0VHJhY2s+IG1fdHJhY2s7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2suY3BwCmluZGV4IGRiOWRhYTE0NWM4M2Y2YzZh
YmJjZjMwNTE3ZDc3YTRjM2ViOWFlMTQuLmUzZmRkMGM4MjIyYmU3OTdjOGQwNzI5NjUwMWE3N2I0
YTdiODY2MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJh
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2suY3BwCkBA
IC0zMywxOCArMzMsMzEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBMb2FkYWJsZVRleHRUcmFj
azo6TG9hZGFibGVUZXh0VHJhY2soY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxh
YmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCkKIHsKLSAgICAvLyBG
SVhNRSg2Mjg4MSk6IEltcGxlbWVudC4KLSAgICBtX3ByaXZhdGUgPSBMb2FkYWJsZVRleHRUcmFj
a0ltcGw6OmNyZWF0ZShraW5kLCBsYWJlbCwgbGFuZ3VhZ2UsIGlzRGVmYXVsdCk7CisgICAgbV9w
cml2YXRlID0gTG9hZGFibGVUZXh0VHJhY2tJbXBsOjpjcmVhdGUodGhpcywga2luZCwgbGFiZWws
IGxhbmd1YWdlLCBpc0RlZmF1bHQpOwogfQogCiBMb2FkYWJsZVRleHRUcmFjazo6fkxvYWRhYmxl
VGV4dFRyYWNrKCkKIHsKLSAgICAvLyBGSVhNRSg2Mjg4MSk6IEltcGxlbWVudC4KIH0KIAotdm9p
ZCBMb2FkYWJsZVRleHRUcmFjazo6bG9hZChjb25zdCBTdHJpbmcmKQordm9pZCBMb2FkYWJsZVRl
eHRUcmFjazo6bG9hZChjb25zdCBTdHJpbmcmIHVybCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKIHsKLSAgICAvLyBGSVhNRSg2Mjg4MSk6IEltcGxlbWVudC4KKyAgICBtX3ByaXZh
dGUtPmxvYWQodXJsLCBjb250ZXh0KTsKK30KKworYm9vbCBMb2FkYWJsZVRleHRUcmFjazo6c3Vw
cG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIHJldHVybiBtX3ByaXZhdGUtPnN1
cHBvcnRzVHlwZSh1cmwpOworfQorCit2b2lkIExvYWRhYmxlVGV4dFRyYWNrOjp0cmFja0xvYWRT
dGFydGVkKCkKK3sKKyAgICAvLyBGSVhNRSg2MzA0Mik6IERpc3BhdGNoIGxvYWRFdmVudC4KK30K
Kwordm9pZCBMb2FkYWJsZVRleHRUcmFjazo6dHJhY2tMb2FkRXJyb3IoKQoreworICAgIC8vIEZJ
WE1FKDYzMDQyKTogRGlzcGF0Y2ggZXJyb3JFdmVudC4KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5oCmluZGV4IGI3MTI5NjIx
ZGE2Mjg5OTg2MzE4ZjczZWQ3ZWM4MjlhY2Y4NDI3NzQuLjBiMjM4NzY5MWU5OTJlY2NhMjY2YzMx
MzBlYWVkNDgzN2M3ZmQ3N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFi
bGVUZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNr
LmgKQEAgLTM1LDcgKzM1LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBMb2Fk
YWJsZVRleHRUcmFjayA6IHB1YmxpYyBUZXh0VHJhY2sgeworY2xhc3MgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDsKKworY2xhc3MgTG9hZGFibGVUZXh0VHJhY2sgOiBwdWJsaWMgVGV4dFRyYWNrLCBw
dWJsaWMgTG9hZGFibGVUZXh0VHJhY2tDbGllbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNz
UmVmUHRyPExvYWRhYmxlVGV4dFRyYWNrPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBraW5kLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCkK
ICAgICB7CkBAIC00Myw3ICs0NSwxMiBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZpcnR1YWwgfkxv
YWRhYmxlVGV4dFRyYWNrKCk7CiAKLSAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJik7CisgICAg
dm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICBi
b29sIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICAKKyAgICAvLyBMb2FkYWJsZVRl
eHRUcmFja0NsaWVudCBtZXRob2RzCisgICAgdm9pZCB0cmFja0xvYWRTdGFydGVkKCk7CisgICAg
dm9pZCB0cmFja0xvYWRFcnJvcigpOwogCiBwcml2YXRlOgogICAgIExvYWRhYmxlVGV4dFRyYWNr
KGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBs
YW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJs
ZVRleHRUcmFja0ltcGwuY3BwCmluZGV4IDFmZmM2OWQyZWZjY2JjNTJmN2I5NzI3OTdhY2FjZTgy
Njc4M2U5ZDAuLmQ4OTIyYjFkOWU4NjRjOTRlMDYyOGIzYzgxODQxMDZlZWVlNmQyZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5jcHAKQEAgLTMzLDgg
KzMzLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Mb2FkYWJsZVRleHRUcmFja0ltcGw6
OkxvYWRhYmxlVGV4dFRyYWNrSW1wbChjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYg
bGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNEZWZhdWx0KQorTG9hZGFibGVU
ZXh0VHJhY2tJbXBsOjpMb2FkYWJsZVRleHRUcmFja0ltcGwoTG9hZGFibGVUZXh0VHJhY2tDbGll
bnQqIGNsaWVudCwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25z
dCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCkKICAgICA6IFRleHRUcmFja1ByaXZh
dGVJbnRlcmZhY2Uoa2luZCwgbGFiZWwsIGxhbmd1YWdlKQorICAgICwgbV90ZXh0VHJhY2tDbGll
bnQoY2xpZW50KQogICAgICwgbV9pc0RlZmF1bHQoaXNEZWZhdWx0KQogewogfQpAQCAtNjAsMTQg
KzYxLDQxIEBAIHZvaWQgTG9hZGFibGVUZXh0VHJhY2tJbXBsOjpmZXRjaE5ld2VzdEN1ZXMoVmVj
dG9yPFRleHRUcmFja0N1ZSo+JikKICAgICAvLyBGSVhNRSg2Mjg4NSk6IEltcGxlbWVudC4KIH0K
IAotdm9pZCBMb2FkYWJsZVRleHRUcmFja0ltcGw6OmxvYWQoY29uc3QgU3RyaW5nJikKK3ZvaWQg
TG9hZGFibGVUZXh0VHJhY2tJbXBsOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJsLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0KQogewotICAgIC8vIEZJWE1FKDYyODgxKTogSW1wbGVtZW50
LgorICAgIG1fcGFyc2VyLmxvYWQodXJsLCBjb250ZXh0LCB0aGlzKTsKK30KKworYm9vbCBMb2Fk
YWJsZVRleHRUcmFja0ltcGw6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAg
ICByZXR1cm4gbV9wYXJzZXIuc3VwcG9ydHNUeXBlKHVybCk7Cit9CisKK3ZvaWQgTG9hZGFibGVU
ZXh0VHJhY2tJbXBsOjpuZXdDdWVzUGFyc2VkKCkKK3sKKyAgICAvLyBGSVhNRSg2Mjg4Myk6IEZl
dGNoIG5ldyBjdWVzIGZyb20gcGFyc2VyIGFuZCB0ZW1wb3JhcmlseSBzdG9yZSB0byBnaXZlIHRv
IEN1ZUxvYWRlckNsaWVudCB3aGVuIGZldGNoTmV3Q3Vlc0Zyb21Mb2FkZXIgaXMgY2FsbGVkLgog
fQogCiB2b2lkIExvYWRhYmxlVGV4dFRyYWNrSW1wbDo6bmV3Q3Vlc0xvYWRlZCgpCiB7Ci0gICAg
Ly8gRklYTUUoNjI4ODEpOiBJbXBsZW1lbnQuCisgICAgLy8gRklYTUUoNjI4ODUpOiBUZWxsIHRo
ZSBjbGllbnQgdG8gZmV0Y2ggdGhlIGxhdGVzdCBjdWVzLgorfQorCit2b2lkIExvYWRhYmxlVGV4
dFRyYWNrSW1wbDo6dHJhY2tMb2FkU3RhcnRlZCgpCit7CisgICAgbV90ZXh0VHJhY2tDbGllbnQt
PnRyYWNrTG9hZFN0YXJ0ZWQoKTsKKyAgICBtX3JlYWR5U3RhdGUgPSBUZXh0VHJhY2s6OkxPQURJ
Tkc7Cit9CisKK3ZvaWQgTG9hZGFibGVUZXh0VHJhY2tJbXBsOjp0cmFja0xvYWRFcnJvcigpCit7
CisgICAgbV90ZXh0VHJhY2tDbGllbnQtPnRyYWNrTG9hZEVycm9yKCk7CisgICAgbV9yZWFkeVN0
YXRlID0gVGV4dFRyYWNrOjpFUlJPUjsKK30KKwordm9pZCBMb2FkYWJsZVRleHRUcmFja0ltcGw6
OnRyYWNrTG9hZENvbXBsZXRlZCgpCit7CisgICAgbV9yZWFkeVN0YXRlID0gVGV4dFRyYWNrOjpM
T0FERUQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oCmluZGV4IGVhODE2NzQxNTJjMWJmMDFlODBiZTBmNWIw
OGYyY2U0OWM5ODY4YWQuLjczNDY1MjU4NjIyZjg2ZmY0YzU3ZDhhNWEzZTljZTkyZDRmMTc0NTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuaApAQCAtMzYs
MzQgKzM2LDUwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDsKIGNsYXNzIFRleHRUcmFjazsKIGNsYXNzIFRleHRUcmFja0N1ZTsKIGNsYXNz
IFRleHRUcmFja0N1ZUxpc3Q7CiAKLWNsYXNzIExvYWRhYmxlVGV4dFRyYWNrSW1wbCA6IHB1Ymxp
YyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlLCBwdWJsaWMgQ3VlTG9hZGVyIHsKK2NsYXNzIExv
YWRhYmxlVGV4dFRyYWNrQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxM
b2FkYWJsZVRleHRUcmFja0ltcGw+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0
cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNEZWZhdWx0KQorICAg
IHZpcnR1YWwgdm9pZCB0cmFja0xvYWRTdGFydGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0
cmFja0xvYWRFcnJvcigpID0gMDsKK307CisKK2NsYXNzIExvYWRhYmxlVGV4dFRyYWNrSW1wbCA6
IHB1YmxpYyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlLCBwdWJsaWMgQ3VlUGFyc2VyQ2xpZW50
LCBwdWJsaWMgQ3VlTG9hZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxMb2Fk
YWJsZVRleHRUcmFja0ltcGw+IGNyZWF0ZShMb2FkYWJsZVRleHRUcmFja0NsaWVudCogY2xpZW50
LCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYg
bGFuZ3VhZ2UsIGJvb2wgaXNEZWZhdWx0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBMb2FkYWJsZVRleHRUcmFja0ltcGwoa2luZCwgbGFiZWwsIGxhbmd1YWdlLCBpc0RlZmF1
bHQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBMb2FkYWJsZVRleHRUcmFja0ltcGwo
Y2xpZW50LCBraW5kLCBsYWJlbCwgbGFuZ3VhZ2UsIGlzRGVmYXVsdCkpOwogICAgIH0KICAgICB2
aXJ0dWFsIH5Mb2FkYWJsZVRleHRUcmFja0ltcGwoKTsKIAogICAgIC8vIFRleHRUcmFja1ByaXZh
dGVJbnRlcmZhY2UgbWV0aG9kcwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVM
aXN0PiBjdWVzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUxp
c3Q+IGFjdGl2ZUN1ZXMoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJp
bmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kik7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcm
KTsKKworICAgIC8vIEN1ZVBhcnNlckNsaWVudCBtZXRob2RzCisgICAgdmlydHVhbCB2b2lkIG5l
d0N1ZXNQYXJzZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tMb2FkU3RhcnRlZCgpOworICAg
IHZpcnR1YWwgdm9pZCB0cmFja0xvYWRFcnJvcigpOworICAgIHZpcnR1YWwgdm9pZCB0cmFja0xv
YWRDb21wbGV0ZWQoKTsKIAogICAgIC8vIEN1ZUxvYWRlciBpbnRlcmZhY2UKICAgICB2aXJ0dWFs
IHZvaWQgbmV3Q3Vlc0xvYWRlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBmZXRjaE5ld2VzdEN1ZXMo
VmVjdG9yPFRleHRUcmFja0N1ZSo+Jik7CiAKIHByaXZhdGU6Ci0gICAgTG9hZGFibGVUZXh0VHJh
Y2tJbXBsKGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3Ry
aW5nJiBsYW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQpOworICAgIExvYWRhYmxlVGV4dFRyYWNrSW1w
bChMb2FkYWJsZVRleHRUcmFja0NsaWVudCosIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3Ry
aW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQpOwogCi0g
ICAgYm9vbCBtX2lzRGVmYXVsdDsKKyAgICBMb2FkYWJsZVRleHRUcmFja0NsaWVudCogbV90ZXh0
VHJhY2tDbGllbnQ7CiAKICAgICBDdWVQYXJzZXIgbV9wYXJzZXI7CiAgICAgUmVmUHRyPFRleHRU
cmFja0N1ZUxpc3Q+IG1fY3VlczsKKyAgICAKKyAgICBib29sIG1faXNEZWZhdWx0OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0VHJhY2suY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2suY3BwCmluZGV4IDYz
M2U1OGRlZTlkMjkxNmM4ODE1YWM4OTZkODU1NzFhYmU0MWE0ZmMuLmUzNzcxMTI4ZThjYmM0ZTg3
ZDU4Y2Q5ZGU1YTI5Y2QwZDBjMjc0ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5jcHAKQEAg
LTQxLDE5ICs0MSwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE51bGxUZXh0VHJh
Y2tQcml2YXRlIDogcHVibGljIFRleHRUcmFja1ByaXZhdGVJbnRlcmZhY2UgewogcHVibGljOgot
ICAgIE51bGxUZXh0VHJhY2tQcml2YXRlKCk7Ci0gICAgdmlydHVhbCB+TnVsbFRleHRUcmFja1By
aXZhdGUoKTsKLQotICAgIC8vIFRleHRUcmFja1ByaXZhdGVJbnRlcmZhY2UgbWV0aG9kcwotICAg
IHZpcnR1YWwgU3RyaW5nIGtpbmQoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9Ci0g
ICAgdmlydHVhbCBTdHJpbmcgbGFiZWwoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9
Ci0gICAgdmlydHVhbCBTdHJpbmcgbGFuZ3VhZ2UoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmlu
ZygpOyB9Ci0gICAgdmlydHVhbCBUZXh0VHJhY2s6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIFRleHRUcmFjazo6Tk9ORTsgfQotICAgIHZpcnR1YWwgVGV4dFRyYWNrOjpN
b2RlIG1vZGUoKSBjb25zdCB7IHJldHVybiBUZXh0VHJhY2s6Ok9GRjsgfQotICAgIHZpcnR1YWwg
dm9pZCBzZXRNb2RlKFRleHRUcmFjazo6TW9kZSkgeyB9CisgICAgTnVsbFRleHRUcmFja1ByaXZh
dGUoKQorICAgICAgICA6IFRleHRUcmFja1ByaXZhdGVJbnRlcmZhY2UoZW1wdHlTdHJpbmcoKSwg
ZW1wdHlTdHJpbmcoKSwgZW1wdHlTdHJpbmcoKSkKKyAgICB7CisgICAgfQorICAgIHZpcnR1YWwg
fk51bGxUZXh0VHJhY2tQcml2YXRlKCkgeyB9CisKKyAgICAvLyBUZXh0VHJhY2tQcml2YXRlSW50
ZXJmYWNlIG1ldGhvZAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBj
dWVzKCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUZXh0VHJh
Y2tDdWVMaXN0PiBhY3RpdmVDdWVzKCkgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwg
dm9pZCBsb2FkKGNvbnN0IFN0cmluZyYpIHsgfQogfTsKIAogc3RhdGljIFBhc3NPd25QdHI8TnVs
bFRleHRUcmFja1ByaXZhdGU+IGNyZWF0ZU51bGxUZXh0VHJhY2tQcml2YXRlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0VHJhY2tQcml2YXRlLmgKaW5kZXggMmNjYzdhZjk1MjhhZmUxYzMyMTI3OGEz
Y2Y1M2JkMmIxMDhhNDJhMC4uZTU2NzUyYzdkYjc2M2Y3Njk5ZmIwYTViNjQ1MWMzZWMwZmM3NTQz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tQcml2YXRlLmgKQEAgLTM1LDYgKzM1LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3VlTG9hZGVyQ2xpZW50OworY2xhc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFRleHRUcmFja0N1ZUxpc3Q7CiAKIGNsYXNz
IFRleHRUcmFja1ByaXZhdGVJbnRlcmZhY2UgewpAQCAtNjMsOSArNjQsMTAgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBhY3RpdmVDdWVzKCkgY29u
c3QgPSAwOwogCiAgICAgLy8gVGhpcyBtZXRob2Qgc2hvdWxkIG9ubHkgYmUgb3ZlcnJpZGRlbiBi
eSB0cmFja3MgdGhhdCBsb2FkIGN1ZSBkYXRhIGZyb20gYSBVUkwuCi0gICAgdmlydHVhbCB2b2lk
IGxvYWQoY29uc3QgU3RyaW5nJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3Ry
aW5nJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c1R5cGUoY29uc3QgU3RyaW5nJikgeyByZXR1cm4gZmFsc2U7IH0KIAotcHJpdmF0ZToKK3By
b3RlY3RlZDoKICAgICBTdHJpbmcgbV9raW5kOwogICAgIFN0cmluZyBtX2xhYmVsOwogICAgIFN0
cmluZyBtX2xhbmd1YWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJh
Y2svQ3VlUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNl
ci5jcHAKaW5kZXggMDY2YTFlYTYwOGFmZDYxZWMzNGQzZGJiMWY2MDkyZGRlYjRhMTY0ZS4uNWE1
ZjdmMDY5YTQ1ODBiMDcwN2E2MjZmZmU0Mjk1Nzk0OWE2MTYyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuY3BwCkBAIC0zNCw2ICszNCw5IEBACiAKICNpbmNs
dWRlICJDdWVQYXJzZXIuaCIKIAorI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1
ZGUgIlRocmVhZGFibGVMb2FkZXIuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDdWVQYXJz
ZXI6OkN1ZVBhcnNlcigpCkBAIC00MywxNiArNDYsNDkgQEAgQ3VlUGFyc2VyOjpDdWVQYXJzZXIo
KQogCiBDdWVQYXJzZXI6On5DdWVQYXJzZXIoKQogeworICAgIGlmIChtX2xvYWRlcikKKyAgICAg
ICAgbV9sb2FkZXItPmNhbmNlbCgpOworICAgIG1fbG9hZGVyID0gMDsKK30KKwordm9pZCBDdWVQ
YXJzZXI6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIEN1ZVBhcnNlckNsaWVudCogY2xpZW50KQoreworICAgIFJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0KHVybCk7CisKKyAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zOworICAg
IG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSB0cnVlOworICAgIG9wdGlvbnMuY3Jvc3NPcmln
aW5SZXF1ZXN0UG9saWN5ID0gQWxsb3dDcm9zc09yaWdpblJlcXVlc3RzOworCisgICAgbV9jbGll
bnQgPSBjbGllbnQ7CisKKyAgICBtX2xvYWRlciA9IFRocmVhZGFibGVMb2FkZXI6OmNyZWF0ZShj
b250ZXh0LCB0aGlzLCByZXF1ZXN0LCBvcHRpb25zKTsKK30KKworYm9vbCBDdWVQYXJzZXI6OnN1
cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICAvLyBGSVhNRSg2Mjg5Myk6IGNo
ZWNrIGFnYWluc3QgYSBsaXN0IG9mIHN1cHBvcnRlZCB0eXBlcworICAgIHJldHVybiBmYWxzZTsK
K30KKwordm9pZCBDdWVQYXJzZXI6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJikKK3sKKyAgICAvLyBGSVhNRSg2Mjg5Myk6IENyZWF0ZSBtX3ByaXZhdGUgYmFzZWQg
b24gTUlNRSB0eXBlLgorICAgIG1fY2xpZW50LT50cmFja0xvYWRTdGFydGVkKCk7Cit9CisKK3Zv
aWQgQ3VlUGFyc2VyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuKQor
eworICAgIC8vIEZJWE1FKDYyODkzKTogU2VuZCBkYXRhIGFsb25nIHRvIG1fcHJpdmF0ZSBwYXJz
ZXIgdG8gYmUgcGFyc2VkLgogfQogCi12b2lkIEN1ZVBhcnNlcjo6bG9hZChjb25zdCBTdHJpbmcm
KQordm9pZCBDdWVQYXJzZXI6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZykKIHsKLSAg
ICAvLyBGSVhNRSg2Mjg4MSk6IEltcGxlbWVudC4KKyAgICBtX2NsaWVudC0+dHJhY2tMb2FkQ29t
cGxldGVkKCk7CiB9CiAKLXZvaWQgQ3VlUGFyc2VyOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFy
KiwgaW50KQordm9pZCBDdWVQYXJzZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpCiB7
Ci0gICAgLy8gRklYTUUoNjI4ODEpOiBJbXBsZW1lbnQuCisgICAgbV9jbGllbnQtPnRyYWNrTG9h
ZEVycm9yKCk7CiB9CiAKIHZvaWQgQ3VlUGFyc2VyOjpmZXRjaFBhcnNlZEN1ZXMoVmVjdG9yPFBh
c3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiA+JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2sv
Q3VlUGFyc2VyLmgKaW5kZXggNzdhNzlmNGIwZDc0ZGYxZTJiOTQ0ZWNlYjZjNmFmODI5NTdkNThi
Yi4uMjI0MTA3NWM5OWIyODg1NWViMWNhZmJhYWU4MWQ1NzllN2QwODZhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFyc2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFyc2VyLmgKQEAgLTQyLDIyICs0MiwzNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFz
cyBUZXh0VHJhY2tDdWU7CiAKK2NsYXNzIEN1ZVBhcnNlckNsaWVudCB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB2b2lkIG5ld0N1ZXNQYXJzZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRyYWNr
TG9hZFN0YXJ0ZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRyYWNrTG9hZEVycm9yKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB0cmFja0xvYWRDb21wbGV0ZWQoKSA9IDA7Cit9OworCiBjbGFz
cyBDdWVQYXJzZXIgOiBwdWJsaWMgVGhyZWFkYWJsZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6CiAg
ICAgQ3VlUGFyc2VyKCk7CiAgICAgdmlydHVhbCB+Q3VlUGFyc2VyKCk7CiAKICAgICAvLyBUaHJl
YWRhYmxlTG9hZGVyQ2xpZW50IG1ldGhvZHMuCisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3Qg
Y2hhciosIGludCk7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcpOwor
ICAgIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKLSAgICB2b2lkIGxvYWQo
Y29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBDdWVQYXJzZXJDbGllbnQqKTsKKyAgICBib29sIHN1cHBvcnRzVHlwZShj
b25zdCBTdHJpbmcmKTsKKyAgICAKICAgICB2b2lkIGZldGNoUGFyc2VkQ3VlcyhWZWN0b3I8UGFz
c1JlZlB0cjxUZXh0VHJhY2tDdWU+ID4mKTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8VGhyZWFk
YWJsZUxvYWRlcj4gbV9sb2FkZXI7CiAgICAgT3duUHRyPEN1ZVBhcnNlclByaXZhdGVJbnRlcmZh
Y2U+IG1fcHJpdmF0ZTsKKyAgICBDdWVQYXJzZXJDbGllbnQqIG1fY2xpZW50OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98003</attachid>
            <date>2011-06-21 09:58:25 -0700</date>
            <delta_ts>2011-06-21 16:45:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62881-20110621095824.patch</filename>
            <type>text/plain</type>
            <size>17899</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzMzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjOTVjZDQ4MWNiNjBhZTI3
N2U4NTJhMTgyYzk2NzY1YzQzNzdlZmFlLi41MjYxOTcyNDNmYWQ2NzZkMDFjMTg1OTVmMWZiNzRj
NmI5Yzc3NmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDYtMjAgIEFubmEg
Q2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIExvYWRpbmcgb3V0LW9mLWJhbmQgdGV4dCB0cmFjayBm
aWxlcyBmcm9tIDx0cmFjaz4uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02Mjg4MQorICAgICAgICAKKyAgICAgICAgVXNlcyB0aGUgc3JjIGF0dHJpYnV0
ZSBvciA8c291cmNlPiBjaGlsZHJlbiB0YWdzIG9mIDx0cmFjaz4gdXJscyB0bworICAgICAgICBs
b2FkIG91dC1vZi1iYW5kIHRleHQgdHJhY2sgZmlsZXMgdXNpbmcgVGhyZWFkYWJsZUxvYWRlci4K
KworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSBmZWF0dXJlIGlzIGhpZGRlbiBiZWhpbmQg
VklERU9fVFJBQ0sgZmVhdHVyZQorICAgICAgICBkZWZpbmUsIHdoaWNoIGlzIHR1cm5lZCBvZmYu
CisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwv
SFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6
CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9Mb2Fk
YWJsZVRleHRUcmFjay5jcHA6CisgICAgICAgICogaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5oOgor
ICAgICAgICAqIGh0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmNwcDoKKyAgICAgICAgKiBodG1s
L0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oOgorICAgICAgICAqIGh0bWwvVGV4dFRyYWNrLmNwcDoK
KyAgICAgICAgKiBodG1sL1RleHRUcmFja1ByaXZhdGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90
cmFjay9DdWVQYXJzZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5o
OgorCiAyMDExLTA2LTIwICBEYWkgTWlrdXJ1YmUgIDxkbWlrdXJ1YmVAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYzM4M2NjOWZjZmRmMDQzZWE1Y2I0NWExODhmZDc3Zjc4
NDZlZDJmMS4uZmFjOWE5MjA3YjAxODNiYjcxMjM5YjcwMmQ0NmQyOGIzZDA2M2M3NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC04NCw2ICs4NCwxMCBAQAog
I2luY2x1ZGUgIldpZGdldC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisj
aW5jbHVkZSAiSFRNTFRyYWNrRWxlbWVudC5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU5MCw2ICs1OTQsOSBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmxvYWRJbnRlcm5hbCgpCiAgICAgfQogCiAgICAgc2VsZWN0TWVkaWFSZXNv
dXJjZSgpOworI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBsb2FkVGV4dFRyYWNrcygpOwor
I2VuZGlmCiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2VsZWN0TWVkaWFSZXNvdXJjZSgp
CkBAIC03NjYsNiArNzczLDE4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNl
KGNvbnN0IEtVUkwmIGluaXRpYWxVUkwsIENvbnRlbnRUeXBlJiBjb250ZW50CiAgICAgICAgIHJl
bmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiB9CiAKKyNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRUZXh0VHJhY2tzKCkKK3sKKyAgICBmb3Ig
KE5vZGUqIG5vZGUgPSBmaXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGlu
ZygpKSB7CisgICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHRyYWNrVGFnKSkgeworICAgICAg
ICAgICAgSFRNTFRyYWNrRWxlbWVudCogdHJhY2sgPSBzdGF0aWNfY2FzdDxIVE1MVHJhY2tFbGVt
ZW50Kj4obm9kZSk7CisgICAgICAgICAgICB0cmFjay0+bG9hZChBY3RpdmVET01PYmplY3Q6OnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgICAgIH0KKyAgICB9Cit9CisjZW5kaWYKKwog
Ym9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1NhZmVUb0xvYWRVUkwoY29uc3QgS1VSTCYgdXJsLCBJ
bnZhbGlkU291cmNlQWN0aW9uIGFjdGlvbklmSW52YWxpZCkKIHsKICAgICBpZiAoIXVybC5pc1Zh
bGlkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggZTFlYzQ1
OTQyYjI1OTU1MGU5Y2IxODFmM2FjY2M0MTA5YzQ5MmZmMi4uMTFmMGM0YTQ2N2MzYTNlMGY0MmFm
NmZjMTg2YTg3YTgxNGU2ZDBkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmgKQEAgLTMwMCw2ICszMDAsMTEgQEAgcHJpdmF0ZToKICAgICBLVVJMIHNlbGVjdE5leHRTb3Vy
Y2VDaGlsZChDb250ZW50VHlwZSosIEludmFsaWRTb3VyY2VBY3Rpb24pOwogICAgIHZvaWQgbWVk
aWFMb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUpOwogCisjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQorICAgIC8vIGxvYWRpbmcgdHJhY2tzCisgICAgdm9pZCBsb2FkVGV4dFRy
YWNrcygpOworI2VuZGlmCisKICAgICAvLyBUaGVzZSAiaW50ZXJuYWwiIGZ1bmN0aW9ucyBkbyBu
b3QgY2hlY2sgdXNlciBnZXN0dXJlIHJlc3RyaWN0aW9ucy4KICAgICB2b2lkIGxvYWRJbnRlcm5h
bCgpOwogICAgIHZvaWQgcGxheUludGVybmFsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJh
Y2tFbGVtZW50LmNwcAppbmRleCA2M2YyNzg4Yjg4MDYwYjhiYTc2NGYyOWViZWNlNmNiNmRkYTFm
NDQ2Li42N2Q3YWQyNThmNjcxMjEwYmE4Mjk2ZGY5OTllNDY2MTAzOWJkZTI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2lu
Y2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNs
dWRlICJIVE1MU291cmNlRWxlbWVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKIAogdXNpbmcg
bmFtZXNwYWNlIHN0ZDsKQEAgLTQ1LDYgKzQ2LDEwIEBAIGlubGluZSBIVE1MVHJhY2tFbGVtZW50
OjpIVE1MVHJhY2tFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUodHJhY2tUYWcpKTsKIH0KIAorSFRNTFRyYWNrRWxlbWVu
dDo6fkhUTUxUcmFja0VsZW1lbnQoKQoreworfQorCiBQYXNzUmVmUHRyPEhUTUxUcmFja0VsZW1l
bnQ+IEhUTUxUcmFja0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MVHJh
Y2tFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CkBAIC0xMjMsNiArMTI4LDI1IEBAIGJvb2wg
SFRNTFRyYWNrRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyaWJ1dGUpIGNv
bnN0CiAgICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IHNyY0F0dHI7CiB9CiAKK3ZvaWQg
SFRNTFRyYWNrRWxlbWVudDo6bG9hZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQor
eworICAgIG1fdHJhY2sgPSBMb2FkYWJsZVRleHRUcmFjazo6Y3JlYXRlKGtpbmQoKSwgbGFiZWwo
KSwgc3JjbGFuZygpLCBpc0RlZmF1bHQoKSk7CisKKyAgICBpZiAoaGFzQXR0cmlidXRlKHNyY0F0
dHIpKSB7CisgICAgICAgIG1fdHJhY2stPmxvYWQoZ2V0Tm9uRW1wdHlVUkxBdHRyaWJ1dGUoc3Jj
QXR0ciksIGNvbnRleHQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoTm9kZSogbm9kZSA9
IGZpcnN0Q2hpbGQoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAg
ICAgICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHNvdXJjZVRhZykpIHsKKyAgICAgICAgICAgICAg
ICBIVE1MU291cmNlRWxlbWVudCogc291cmNlID0gc3RhdGljX2Nhc3Q8SFRNTFNvdXJjZUVsZW1l
bnQqPihub2RlKTsKKyAgICAgICAgICAgICAgICBLVVJMIHVybCA9IHNvdXJjZS0+Z2V0Tm9uRW1w
dHlVUkxBdHRyaWJ1dGUoc3JjQXR0cik7CisgICAgICAgICAgICAgICAgaWYgKCF1cmwuaXNFbXB0
eSgpICYmIG1fdHJhY2stPnN1cHBvcnRzVHlwZSh1cmwpKQorICAgICAgICAgICAgICAgICAgICBt
X3RyYWNrLT5sb2FkKHVybCwgY29udGV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRyYWNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50
LmgKaW5kZXggNDY5N2UwMmFiOGNlNzRiZDljMzg3N2IwNDI0Y2RkNmExOGQxOTA5YS4uOTQ2NTY0
MmU1Njc1NzU2MDhhNjQ2OGQzMDNmODRkYWQ2OGI3NWM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCiAKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkxvYWRhYmxlVGV4dFRy
YWNrLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsMTMgKzQ4LDE4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFNyY2xhbmcoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRMYWJl
bChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldElzRGVmYXVsdChib29sKTsKKyAgICAKKyAg
ICB2b2lkIGxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiBwcml2YXRlOgogICAgIEhU
TUxUcmFja0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgdmly
dHVhbCB+SFRNTFRyYWNrRWxlbWVudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50
b1RyZWUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoKTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CisgICAgCisgICAgUmVmUHRy
PExvYWRhYmxlVGV4dFRyYWNrPiBtX3RyYWNrOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0xvYWRhYmxlVGV4dFRyYWNrLmNwcAppbmRleCBkYjlkYWExNDVjODNmNmM2YWJiY2YzMDUxN2Q3
N2E0YzNlYjlhZTE0Li5lM2ZkZDBjODIyMmJlNzk3YzhkMDcyOTY1MDFhNzdiNGE3Yjg2NjE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmNwcApAQCAtMzMsMTggKzMz
LDMxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTG9hZGFibGVUZXh0VHJhY2s6OkxvYWRhYmxl
VGV4dFRyYWNrKGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3Qg
U3RyaW5nJiBsYW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQpCiB7Ci0gICAgLy8gRklYTUUoNjI4ODEp
OiBJbXBsZW1lbnQuCi0gICAgbV9wcml2YXRlID0gTG9hZGFibGVUZXh0VHJhY2tJbXBsOjpjcmVh
dGUoa2luZCwgbGFiZWwsIGxhbmd1YWdlLCBpc0RlZmF1bHQpOworICAgIG1fcHJpdmF0ZSA9IExv
YWRhYmxlVGV4dFRyYWNrSW1wbDo6Y3JlYXRlKHRoaXMsIGtpbmQsIGxhYmVsLCBsYW5ndWFnZSwg
aXNEZWZhdWx0KTsKIH0KIAogTG9hZGFibGVUZXh0VHJhY2s6On5Mb2FkYWJsZVRleHRUcmFjaygp
CiB7Ci0gICAgLy8gRklYTUUoNjI4ODEpOiBJbXBsZW1lbnQuCiB9CiAKLXZvaWQgTG9hZGFibGVU
ZXh0VHJhY2s6OmxvYWQoY29uc3QgU3RyaW5nJikKK3ZvaWQgTG9hZGFibGVUZXh0VHJhY2s6Omxv
YWQoY29uc3QgU3RyaW5nJiB1cmwsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7
Ci0gICAgLy8gRklYTUUoNjI4ODEpOiBJbXBsZW1lbnQuCisgICAgbV9wcml2YXRlLT5sb2FkKHVy
bCwgY29udGV4dCk7Cit9CisKK2Jvb2wgTG9hZGFibGVUZXh0VHJhY2s6OnN1cHBvcnRzVHlwZShj
b25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zdXBwb3J0c1R5cGUo
dXJsKTsKK30KKwordm9pZCBMb2FkYWJsZVRleHRUcmFjazo6dHJhY2tMb2FkU3RhcnRlZCgpCit7
CisgICAgLy8gRklYTUUoNjMwNDIpOiBEaXNwYXRjaCBsb2FkRXZlbnQuCit9CisKK3ZvaWQgTG9h
ZGFibGVUZXh0VHJhY2s6OnRyYWNrTG9hZEVycm9yKCkKK3sKKyAgICAvLyBGSVhNRSg2MzA0Mik6
IERpc3BhdGNoIGVycm9yRXZlbnQuCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2suaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2suaAppbmRleCBiNzEyOTYyMWRhNjI4OTk4NjMx
OGY3M2VkN2VjODI5YWNmODQyNzc0Li4wYjIzODc2OTFlOTkyZWNjYTI2NmMzMTMwZWFlZDQ4Mzdj
N2ZkNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNr
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5oCkBAIC0zNSw3
ICszNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTG9hZGFibGVUZXh0VHJh
Y2sgOiBwdWJsaWMgVGV4dFRyYWNrIHsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisK
K2NsYXNzIExvYWRhYmxlVGV4dFRyYWNrIDogcHVibGljIFRleHRUcmFjaywgcHVibGljIExvYWRh
YmxlVGV4dFRyYWNrQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxMb2Fk
YWJsZVRleHRUcmFjaz4gY3JlYXRlKGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBs
YWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQpCiAgICAgewpAQCAt
NDMsNyArNDUsMTIgQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5Mb2FkYWJsZVRleHRU
cmFjaygpOwogCi0gICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgbG9hZChj
b25zdCBTdHJpbmcmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgYm9vbCBzdXBwb3J0
c1R5cGUoY29uc3QgU3RyaW5nJik7CisgICAgCisgICAgLy8gTG9hZGFibGVUZXh0VHJhY2tDbGll
bnQgbWV0aG9kcworICAgIHZvaWQgdHJhY2tMb2FkU3RhcnRlZCgpOworICAgIHZvaWQgdHJhY2tM
b2FkRXJyb3IoKTsKIAogcHJpdmF0ZToKICAgICBMb2FkYWJsZVRleHRUcmFjayhjb25zdCBTdHJp
bmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJv
b2wgaXNEZWZhdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVU
ZXh0VHJhY2tJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJ
bXBsLmNwcAppbmRleCAxZmZjNjlkMmVmY2NiYzUyZjdiOTcyNzk3YWNhY2U4MjY3ODNlOWQwLi5k
ODkyMmIxZDllODY0Yzk0ZTA2MjhiM2M4MTg0MTA2ZWVlZTZkMmU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuY3BwCkBAIC0zMyw4ICszMyw5IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTG9hZGFibGVUZXh0VHJhY2tJbXBsOjpMb2FkYWJsZVRl
eHRUcmFja0ltcGwoY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25z
dCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCkKK0xvYWRhYmxlVGV4dFRyYWNrSW1w
bDo6TG9hZGFibGVUZXh0VHJhY2tJbXBsKExvYWRhYmxlVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQs
IGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBs
YW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQpCiAgICAgOiBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNl
KGtpbmQsIGxhYmVsLCBsYW5ndWFnZSkKKyAgICAsIG1fdGV4dFRyYWNrQ2xpZW50KGNsaWVudCkK
ICAgICAsIG1faXNEZWZhdWx0KGlzRGVmYXVsdCkKIHsKIH0KQEAgLTYwLDE0ICs2MSw0MSBAQCB2
b2lkIExvYWRhYmxlVGV4dFRyYWNrSW1wbDo6ZmV0Y2hOZXdlc3RDdWVzKFZlY3RvcjxUZXh0VHJh
Y2tDdWUqPiYpCiAgICAgLy8gRklYTUUoNjI4ODUpOiBJbXBsZW1lbnQuCiB9CiAKLXZvaWQgTG9h
ZGFibGVUZXh0VHJhY2tJbXBsOjpsb2FkKGNvbnN0IFN0cmluZyYpCit2b2lkIExvYWRhYmxlVGV4
dFRyYWNrSW1wbDo6bG9hZChjb25zdCBTdHJpbmcmIHVybCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCkKIHsKLSAgICAvLyBGSVhNRSg2Mjg4MSk6IEltcGxlbWVudC4KKyAgICBtX3Bh
cnNlci5sb2FkKHVybCwgY29udGV4dCwgdGhpcyk7Cit9CisKK2Jvb2wgTG9hZGFibGVUZXh0VHJh
Y2tJbXBsOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgcmV0dXJuIG1f
cGFyc2VyLnN1cHBvcnRzVHlwZSh1cmwpOworfQorCit2b2lkIExvYWRhYmxlVGV4dFRyYWNrSW1w
bDo6bmV3Q3Vlc1BhcnNlZCgpCit7CisgICAgLy8gRklYTUUoNjI4ODMpOiBGZXRjaCBuZXcgY3Vl
cyBmcm9tIHBhcnNlciBhbmQgdGVtcG9yYXJpbHkgc3RvcmUgdG8gZ2l2ZSB0byBDdWVMb2FkZXJD
bGllbnQgd2hlbiBmZXRjaE5ld0N1ZXNGcm9tTG9hZGVyIGlzIGNhbGxlZC4KIH0KIAogdm9pZCBM
b2FkYWJsZVRleHRUcmFja0ltcGw6Om5ld0N1ZXNMb2FkZWQoKQogewotICAgIC8vIEZJWE1FKDYy
ODgxKTogSW1wbGVtZW50LgorICAgIC8vIEZJWE1FKDYyODg1KTogVGVsbCB0aGUgY2xpZW50IHRv
IGZldGNoIHRoZSBsYXRlc3QgY3Vlcy4KK30KKwordm9pZCBMb2FkYWJsZVRleHRUcmFja0ltcGw6
OnRyYWNrTG9hZFN0YXJ0ZWQoKQoreworICAgIG1fdGV4dFRyYWNrQ2xpZW50LT50cmFja0xvYWRT
dGFydGVkKCk7CisgICAgbV9yZWFkeVN0YXRlID0gVGV4dFRyYWNrOjpMT0FESU5HOworfQorCit2
b2lkIExvYWRhYmxlVGV4dFRyYWNrSW1wbDo6dHJhY2tMb2FkRXJyb3IoKQoreworICAgIG1fdGV4
dFRyYWNrQ2xpZW50LT50cmFja0xvYWRFcnJvcigpOworICAgIG1fcmVhZHlTdGF0ZSA9IFRleHRU
cmFjazo6RVJST1I7Cit9CisKK3ZvaWQgTG9hZGFibGVUZXh0VHJhY2tJbXBsOjp0cmFja0xvYWRD
b21wbGV0ZWQoKQoreworICAgIG1fcmVhZHlTdGF0ZSA9IFRleHRUcmFjazo6TE9BREVEOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRl
eHRUcmFja0ltcGwuaAppbmRleCBlYTgxNjc0MTUyYzFiZjAxZTgwYmUwZjViMDhmMmNlNDljOTg2
OGFkLi43MzQ2NTI1ODYyMmY4NmZmNGM1N2Q4YTVhM2U5Y2U5MmQ0ZjE3NDUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmgKQEAgLTM2LDM0ICszNiw1MCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CiBjbGFzcyBUZXh0VHJhY2s7CiBjbGFzcyBUZXh0VHJhY2tDdWU7CiBjbGFzcyBUZXh0VHJhY2tD
dWVMaXN0OwogCi1jbGFzcyBMb2FkYWJsZVRleHRUcmFja0ltcGwgOiBwdWJsaWMgVGV4dFRyYWNr
UHJpdmF0ZUludGVyZmFjZSwgcHVibGljIEN1ZUxvYWRlciB7CitjbGFzcyBMb2FkYWJsZVRleHRU
cmFja0NsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TG9hZGFibGVUZXh0
VHJhY2tJbXBsPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVs
LCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCkKKyAgICB2aXJ0dWFsIHZv
aWQgdHJhY2tMb2FkU3RhcnRlZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tMb2FkRXJy
b3IoKSA9IDA7Cit9OworCitjbGFzcyBMb2FkYWJsZVRleHRUcmFja0ltcGwgOiBwdWJsaWMgVGV4
dFRyYWNrUHJpdmF0ZUludGVyZmFjZSwgcHVibGljIEN1ZVBhcnNlckNsaWVudCwgcHVibGljIEN1
ZUxvYWRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8TG9hZGFibGVUZXh0VHJh
Y2tJbXBsPiBjcmVhdGUoTG9hZGFibGVUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgY29uc3QgU3Ry
aW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBi
b29sIGlzRGVmYXVsdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgTG9hZGFi
bGVUZXh0VHJhY2tJbXBsKGtpbmQsIGxhYmVsLCBsYW5ndWFnZSwgaXNEZWZhdWx0KSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgTG9hZGFibGVUZXh0VHJhY2tJbXBsKGNsaWVudCwga2lu
ZCwgbGFiZWwsIGxhbmd1YWdlLCBpc0RlZmF1bHQpKTsKICAgICB9CiAgICAgdmlydHVhbCB+TG9h
ZGFibGVUZXh0VHJhY2tJbXBsKCk7CiAKICAgICAvLyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNl
IG1ldGhvZHMKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gY3Vlcygp
IGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBhY3RpdmVD
dWVzKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJik7CisgICAg
dmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCop
OworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJik7CisKKyAgICAv
LyBDdWVQYXJzZXJDbGllbnQgbWV0aG9kcworICAgIHZpcnR1YWwgdm9pZCBuZXdDdWVzUGFyc2Vk
KCk7CisgICAgdmlydHVhbCB2b2lkIHRyYWNrTG9hZFN0YXJ0ZWQoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgdHJhY2tMb2FkRXJyb3IoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tMb2FkQ29tcGxldGVk
KCk7CiAKICAgICAvLyBDdWVMb2FkZXIgaW50ZXJmYWNlCiAgICAgdmlydHVhbCB2b2lkIG5ld0N1
ZXNMb2FkZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZmV0Y2hOZXdlc3RDdWVzKFZlY3RvcjxUZXh0
VHJhY2tDdWUqPiYpOwogCiBwcml2YXRlOgotICAgIExvYWRhYmxlVGV4dFRyYWNrSW1wbChjb25z
dCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3Vh
Z2UsIGJvb2wgaXNEZWZhdWx0KTsKKyAgICBMb2FkYWJsZVRleHRUcmFja0ltcGwoTG9hZGFibGVU
ZXh0VHJhY2tDbGllbnQqLCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWws
IGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNEZWZhdWx0KTsKIAotICAgIGJvb2wgbV9p
c0RlZmF1bHQ7CisgICAgTG9hZGFibGVUZXh0VHJhY2tDbGllbnQqIG1fdGV4dFRyYWNrQ2xpZW50
OwogCiAgICAgQ3VlUGFyc2VyIG1fcGFyc2VyOwogICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVMaXN0
PiBtX2N1ZXM7CisgICAgCisgICAgYm9vbCBtX2lzRGVmYXVsdDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmNwcAppbmRleCA2MzNlNThkZWU5ZDI5
MTZjODgxNWFjODk2ZDg1NTcxYWJlNDFhNGZjLi5lMzc3MTEyOGU4Y2JjNGU4N2Q1OGNkOWRlNWEy
OWNkMGQwYzI3NGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2suY3BwCkBAIC00MSwxOSArNDEs
MTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBOdWxsVGV4dFRyYWNrUHJpdmF0ZSA6
IHB1YmxpYyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBOdWxsVGV4
dFRyYWNrUHJpdmF0ZSgpOwotICAgIHZpcnR1YWwgfk51bGxUZXh0VHJhY2tQcml2YXRlKCk7Ci0K
LSAgICAvLyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlIG1ldGhvZHMKLSAgICB2aXJ0dWFsIFN0
cmluZyBraW5kKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwg
U3RyaW5nIGxhYmVsKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotICAgIHZpcnR1
YWwgU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotICAg
IHZpcnR1YWwgVGV4dFRyYWNrOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVy
biBUZXh0VHJhY2s6Ok5PTkU7IH0KLSAgICB2aXJ0dWFsIFRleHRUcmFjazo6TW9kZSBtb2RlKCkg
Y29uc3QgeyByZXR1cm4gVGV4dFRyYWNrOjpPRkY7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TW9k
ZShUZXh0VHJhY2s6Ok1vZGUpIHsgfQorICAgIE51bGxUZXh0VHJhY2tQcml2YXRlKCkKKyAgICAg
ICAgOiBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlKGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5n
KCksIGVtcHR5U3RyaW5nKCkpCisgICAgeworICAgIH0KKyAgICB2aXJ0dWFsIH5OdWxsVGV4dFRy
YWNrUHJpdmF0ZSgpIHsgfQorCisgICAgLy8gVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSBtZXRo
b2QKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gY3VlcygpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4g
YWN0aXZlQ3VlcygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChj
b25zdCBTdHJpbmcmKSB7IH0KIH07CiAKIHN0YXRpYyBQYXNzT3duUHRyPE51bGxUZXh0VHJhY2tQ
cml2YXRlPiBjcmVhdGVOdWxsVGV4dFRyYWNrUHJpdmF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RleHRUcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dFRyYWNrUHJpdmF0ZS5oCmluZGV4IDJjY2M3YWY5NTI4YWZlMWMzMjEyNzhhM2NmNTNiZDJiMTA4
YTQyYTAuLmU1Njc1MmM3ZGI3NjNmNzY5OWZiMGE1YjY0NTFjM2VjMGZjNzU0M2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dFRyYWNrUHJpdmF0ZS5oCkBAIC0zNSw2ICszNSw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEN1ZUxvYWRlckNsaWVudDsKK2NsYXNzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CiBjbGFzcyBUZXh0VHJhY2tDdWVMaXN0OwogCiBjbGFzcyBUZXh0VHJhY2tQ
cml2YXRlSW50ZXJmYWNlIHsKQEAgLTYzLDkgKzY0LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gYWN0aXZlQ3VlcygpIGNvbnN0ID0gMDsKIAog
ICAgIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJlIG92ZXJyaWRkZW4gYnkgdHJhY2tzIHRo
YXQgbG9hZCBjdWUgZGF0YSBmcm9tIGEgVVJMLgotICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0
IFN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNUeXBlKGNv
bnN0IFN0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAg
ICAgU3RyaW5nIG1fa2luZDsKICAgICBTdHJpbmcgbV9sYWJlbDsKICAgICBTdHJpbmcgbV9sYW5n
dWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuY3BwCmluZGV4
IDA2NmExZWE2MDhhZmQ2MWVjMzRkM2RiYjFmNjA5MmRkZWI0YTE2NGUuLjQ4OTExNWFjZGZjM2U3
NTg5NGJhYWI1NzdiM2Y0YmI2Y2FhNWZkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dHJhY2svQ3VlUGFyc2VyLmNwcApAQCAtMzQsNiArMzQsOSBAQAogCiAjaW5jbHVkZSAiQ3VlUGFy
c2VyLmgiCiAKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJUaHJlYWRh
YmxlTG9hZGVyLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ3VlUGFyc2VyOjpDdWVQYXJz
ZXIoKQpAQCAtNDMsMTkgKzQ2LDUyIEBAIEN1ZVBhcnNlcjo6Q3VlUGFyc2VyKCkKIAogQ3VlUGFy
c2VyOjp+Q3VlUGFyc2VyKCkKIHsKKyAgICBpZiAobV9sb2FkZXIpCisgICAgICAgIG1fbG9hZGVy
LT5jYW5jZWwoKTsKKyAgICBtX2xvYWRlciA9IDA7Cit9CisKK3ZvaWQgQ3VlUGFyc2VyOjpsb2Fk
KGNvbnN0IFN0cmluZyYgdXJsLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBDdWVQ
YXJzZXJDbGllbnQqIGNsaWVudCkKK3sKKyAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwp
OworCisgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLnNl
bmRMb2FkQ2FsbGJhY2tzID0gdHJ1ZTsKKyAgICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBv
bGljeSA9IEFsbG93Q3Jvc3NPcmlnaW5SZXF1ZXN0czsKKworICAgIG1fY2xpZW50ID0gY2xpZW50
OworCisgICAgbV9sb2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoY29udGV4dCwgdGhp
cywgcmVxdWVzdCwgb3B0aW9ucyk7Cit9CisKK2Jvb2wgQ3VlUGFyc2VyOjpzdXBwb3J0c1R5cGUo
Y29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgLy8gRklYTUUoNjI4OTMpOiBjaGVjayBhZ2FpbnN0
IGEgbGlzdCBvZiBzdXBwb3J0ZWQgdHlwZXMKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQg
Q3VlUGFyc2VyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpCit7
CisgICAgLy8gRklYTUUoNjI4OTMpOiBDcmVhdGUgbV9wcml2YXRlIGJhc2VkIG9uIE1JTUUgdHlw
ZS4KKyAgICBtX2NsaWVudC0+dHJhY2tMb2FkU3RhcnRlZCgpOworfQorCit2b2lkIEN1ZVBhcnNl
cjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbikKK3sKKyAgICAvLyBG
SVhNRSg2Mjg5Myk6IFNlbmQgZGF0YSBhbG9uZyB0byBtX3ByaXZhdGUgcGFyc2VyIHRvIGJlIHBh
cnNlZC4KIH0KIAotdm9pZCBDdWVQYXJzZXI6OmxvYWQoY29uc3QgU3RyaW5nJikKK3ZvaWQgQ3Vl
UGFyc2VyOjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcpCiB7Ci0gICAgLy8gRklYTUUo
NjI4ODEpOiBJbXBsZW1lbnQuCisgICAgbV9jbGllbnQtPnRyYWNrTG9hZENvbXBsZXRlZCgpOwog
fQogCi12b2lkIEN1ZVBhcnNlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCkKK3Zv
aWQgQ3VlUGFyc2VyOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKQogewotICAgIC8vIEZJ
WE1FKDYyODgxKTogSW1wbGVtZW50LgorICAgIG1fY2xpZW50LT50cmFja0xvYWRFcnJvcigpOwog
fQogCi12b2lkIEN1ZVBhcnNlcjo6ZmV0Y2hQYXJzZWRDdWVzKFZlY3RvcjxQYXNzUmVmUHRyPFRl
eHRUcmFja0N1ZT4gPiYpCit2b2lkIEN1ZVBhcnNlcjo6ZmV0Y2hQYXJzZWRDdWVzKFZlY3RvcjxS
ZWZQdHI8VGV4dFRyYWNrQ3VlPiA+JikKIHsKICAgICAvLyBGSVhNRSg2Mjg5Myk6IEltcGxlbWVu
dC4KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFyc2VyLmgKaW5kZXggNzdh
NzlmNGIwZDc0ZGYxZTJiOTQ0ZWNlYjZjNmFmODI5NTdkNThiYi4uNDU3NDk2NjdiNjM5N2NmNjNj
ZWE5ODA2ZjY4NjE3ZTkwNzZhM2YzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdHJhY2svQ3VlUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2sv
Q3VlUGFyc2VyLmgKQEAgLTQyLDIyICs0MiwzNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBUZXh0VHJhY2tDdWU7CiAKK2Ns
YXNzIEN1ZVBhcnNlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIG5ld0N1ZXNQ
YXJzZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRyYWNrTG9hZFN0YXJ0ZWQoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHRyYWNrTG9hZEVycm9yKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0
cmFja0xvYWRDb21wbGV0ZWQoKSA9IDA7Cit9OworCiBjbGFzcyBDdWVQYXJzZXIgOiBwdWJsaWMg
VGhyZWFkYWJsZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgQ3VlUGFyc2VyKCk7CiAgICAg
dmlydHVhbCB+Q3VlUGFyc2VyKCk7CiAKICAgICAvLyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50IG1l
dGhvZHMuCisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCk7CisgICAgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcpOworICAgIHZvaWQgZGlkRmFpbChjb25z
dCBSZXNvdXJjZUVycm9yJik7CiAKLSAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJik7Ci0gICAg
dm9pZCBmZXRjaFBhcnNlZEN1ZXMoVmVjdG9yPFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiA+Jik7
CisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBD
dWVQYXJzZXJDbGllbnQqKTsKKyAgICBib29sIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmKTsK
KyAgICAKKyAgICB2b2lkIGZldGNoUGFyc2VkQ3VlcyhWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1
ZT4gPiYpOwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBtX2xvYWRl
cjsKICAgICBPd25QdHI8Q3VlUGFyc2VyUHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOworICAg
IEN1ZVBhcnNlckNsaWVudCogbV9jbGllbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98080</attachid>
            <date>2011-06-21 16:45:45 -0700</date>
            <delta_ts>2011-06-21 22:22:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62881-20110621164544.patch</filename>
            <type>text/plain</type>
            <size>21417</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzNjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNTc1NmI0OWRjNzJiNjQ3
ZWFhYzZkMmQwZTk0M2E0NWFiYTcyODEzLi5jNzlmMjk1NjA2MWE2NDFjYTI5OTQ3NGU2MDhhODM3
NGFjZTU5ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDYtMjEgIEFubmEg
Q2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIExvYWRpbmcgb3V0LW9mLWJhbmQgdGV4dCB0cmFjayBm
aWxlcyBmcm9tIDx0cmFjaz4uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02Mjg4MQorCisgICAgICAgIFVzZXMgdGhlIHNyYyBhdHRyaWJ1dGUgb3IgPHNv
dXJjZT4gY2hpbGRyZW4gdGFncyBvZiA8dHJhY2s+IHVybHMgdG8KKyAgICAgICAgbG9hZCBvdXQt
b2YtYmFuZCB0ZXh0IHRyYWNrIGZpbGVzIHVzaW5nIFRocmVhZGFibGVMb2FkZXIuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgZmVhdHVyZSBpcyBoaWRkZW4gYmVoaW5kIFZJREVPX1RS
QUNLIGZlYXR1cmUKKyAgICAgICAgZGVmaW5lLCB3aGljaCBpcyB0dXJuZWQgb2ZmLgorCisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5jcHA6CisgICAgICAgICogaHRt
bC9Mb2FkYWJsZVRleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvTG9hZGFibGVUZXh0VHJhY2tJ
bXBsLmNwcDoKKyAgICAgICAgKiBodG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oOgorICAgICAg
ICAqIGh0bWwvVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKiBodG1sL1RleHRUcmFja1ByaXZhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oOgorCiAyMDExLTA2LTIxICBWc2V2b2xvZCBWbGFzb3Yg
IDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRt
YW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwYjlhOTBjNjAwODJmYzNlNTIw
MGEwMzZjMDVhNTVjODIxZTQ0YTJiLi42OTFmNTFkNDQ0NzU0YjcyYjE4MWIzNWFiNzQwZjI0Y2Q4
YTJkMzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE1OTQsNiArMTU5NCw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9u
VHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oIFwKKyAgU291cmNlL1dlYkNvcmUvaHRt
bC9DdWVJbmRleC5jcHAgXAorICBTb3VyY2UvV2ViQ29yZS9odG1sL0N1ZUluZGV4LmggXAogCVNv
dXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZUlucHV0VHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRU
eXBlLmNwcCBcCkBAIC0xODAzLDExICsxODA1LDE5IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9MYWJlbHNOb2RlTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxB
dHRyaWJ1dGUuaCBcCisgIFNvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2suY3Bw
IFwKKyAgU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5oIFwKKyAgU291cmNl
L1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuY3BwIFwKKyAgU291cmNlL1dlYkNv
cmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9N
ZWRpYURvY3VtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFcnJvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL01vbnRoSW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0
VHlwZS5oIFwKKyAgU291cmNlL1dlYkNvcmUvaHRtbC9NdXRhYmxlVGV4dFRyYWNrLmNwcCBcCisg
IFNvdXJjZS9XZWJDb3JlL2h0bWwvTXV0YWJsZVRleHRUcmFjay5oIFwKKyAgU291cmNlL1dlYkNv
cmUvaHRtbC9NdXRhYmxlVGV4dFRyYWNrSW1wbC5jcHAgXAorICBTb3VyY2UvV2ViQ29yZS9odG1s
L011dGFibGVUZXh0VHJhY2tJbXBsLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5w
dXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaCBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwIFwKQEAgLTE5
MDAsNiArMTkxMCwxMyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dElucHV0VHlwZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlw
ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRNZXRyaWNzLmggXAorICBTb3VyY2UvV2Vi
Q29yZS9odG1sL1RleHRUcmFjay5jcHAgXAorICBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFj
ay5oIFwKKyAgU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tDdWUuY3BwIFwKKyAgU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tDdWUuaCBcCisgIFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dFRyYWNrQ3VlTGlzdC5jcHAgXAorICBTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFja0N1ZUxp
c3QuaCBcCisgIFNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrUHJpdmF0ZS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lUmFuZ2VzLmNwcCBc
CkBAIC0yMDgwLDYgKzIwOTcsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCBcCiAJU291cmNlL1dlYkNvcmUv
bG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1bHRDYWNoZS5oIFwKKyAgU291cmNl
L1dlYkNvcmUvbG9hZGVyL0N1ZUxvYWRlci5jcHAgXAorICBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Q3VlTG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkVGltaW5nLmggXApAQCAtMjgyNSw2ICsyODQ0LDkgQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRUaW1l
cnMuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9UaW1lci5oIFwKKyAgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2sv
Q3VlUGFyc2VyLmggXAorICBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIu
Y3BwIFwKKyAgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFyc2VyUHJpdmF0ZS5o
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UcmVlU2hhcmVkLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1VSTFN0cmluZy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VVUlE
LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBjMzgz
Y2M5ZmNmZGYwNDNlYTVjYjQ1YTE4OGZkNzdmNzg0NmVkMmYxLi5mYWM5YTkyMDdiMDE4M2JiNzEy
MzliNzAyZDQ2ZDI4YjNkMDYzYzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKQEAgLTg0LDYgKzg0LDEwIEBACiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyNpbmNsdWRlICJIVE1MVHJhY2tFbGVtZW50Lmgi
CisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNTkwLDYgKzU5NCw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZEludGVybmFsKCkK
ICAgICB9CiAKICAgICBzZWxlY3RNZWRpYVJlc291cmNlKCk7CisjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQorICAgIGxvYWRUZXh0VHJhY2tzKCk7CisjZW5kaWYKIH0KIAogdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpzZWxlY3RNZWRpYVJlc291cmNlKCkKQEAgLTc2Niw2ICs3NzMsMTggQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgS1VSTCYgaW5pdGlhbFVSTCwgQ29u
dGVudFR5cGUmIGNvbnRlbnQKICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQo
KTsKIH0KIAorI2lmIEVOQUJMRShWSURFT19UUkFDSykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
bG9hZFRleHRUcmFja3MoKQoreworICAgIGZvciAoTm9kZSogbm9kZSA9IGZpcnN0Q2hpbGQoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKG5vZGUtPmhh
c1RhZ05hbWUodHJhY2tUYWcpKSB7CisgICAgICAgICAgICBIVE1MVHJhY2tFbGVtZW50KiB0cmFj
ayA9IHN0YXRpY19jYXN0PEhUTUxUcmFja0VsZW1lbnQqPihub2RlKTsKKyAgICAgICAgICAgIHRy
YWNrLT5sb2FkKEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAg
ICAgICAgfQorICAgIH0KK30KKyNlbmRpZgorCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzU2Fm
ZVRvTG9hZFVSTChjb25zdCBLVVJMJiB1cmwsIEludmFsaWRTb3VyY2VBY3Rpb24gYWN0aW9uSWZJ
bnZhbGlkKQogewogICAgIGlmICghdXJsLmlzVmFsaWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAppbmRleCBlMWVjNDU5NDJiMjU5NTUwZTljYjE4MWYzYWNjYzQxMDlj
NDkyZmYyLi4xMWYwYzRhNDY3YzNhM2UwZjQyYWY2ZmMxODZhODdhODE0ZTZkMGRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMzAwLDYgKzMwMCwxMSBAQCBwcml2
YXRlOgogICAgIEtVUkwgc2VsZWN0TmV4dFNvdXJjZUNoaWxkKENvbnRlbnRUeXBlKiwgSW52YWxp
ZFNvdXJjZUFjdGlvbik7CiAgICAgdm9pZCBtZWRpYUxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6
Ok5ldHdvcmtTdGF0ZSk7CiAKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgLy8gbG9hZGlu
ZyB0cmFja3MKKyAgICB2b2lkIGxvYWRUZXh0VHJhY2tzKCk7CisjZW5kaWYKKwogICAgIC8vIFRo
ZXNlICJpbnRlcm5hbCIgZnVuY3Rpb25zIGRvIG5vdCBjaGVjayB1c2VyIGdlc3R1cmUgcmVzdHJp
Y3Rpb25zLgogICAgIHZvaWQgbG9hZEludGVybmFsKCk7CiAgICAgdm9pZCBwbGF5SW50ZXJuYWwo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCmluZGV4IDYzZjI3ODhi
ODgwNjBiOGJhNzY0ZjI5ZWJlY2U2Y2I2ZGRhMWY0NDYuLjAxNzY1ZDdlY2UxM2M1NDNjNTE1NmJk
ZTJjZjA5ZGE2NjdiM2U5MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRy
YWNrRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxTb3VyY2VFbGVtZW50LmgiCiAj
aW5jbHVkZSAiTG9nZ2luZy5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtNDUsNiArNDYs
MTAgQEAgaW5saW5lIEhUTUxUcmFja0VsZW1lbnQ6OkhUTUxUcmFja0VsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQKICAgICBBU1NFUlQoaGFzVGFnTmFtZSh0cmFj
a1RhZykpOwogfQogCitIVE1MVHJhY2tFbGVtZW50Ojp+SFRNTFRyYWNrRWxlbWVudCgpCit7Cit9
CisKIFBhc3NSZWZQdHI8SFRNTFRyYWNrRWxlbWVudD4gSFRNTFRyYWNrRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxUcmFja0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
KTsKQEAgLTEyMyw2ICsxMjgsMjQgQEAgYm9vbCBIVE1MVHJhY2tFbGVtZW50Ojppc1VSTEF0dHJp
YnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkgY29uc3QKICAgICByZXR1cm4gYXR0cmlidXRlLT5u
YW1lKCkgPT0gc3JjQXR0cjsKIH0KIAordm9pZCBIVE1MVHJhY2tFbGVtZW50Ojpsb2FkKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgbV90cmFjayA9IExvYWRhYmxlVGV4
dFRyYWNrOjpjcmVhdGUoa2luZCgpLCBsYWJlbCgpLCBzcmNsYW5nKCksIGlzRGVmYXVsdCgpKTsK
KworICAgIGlmIChoYXNBdHRyaWJ1dGUoc3JjQXR0cikpCisgICAgICAgIG1fdHJhY2stPmxvYWQo
Z2V0Tm9uRW1wdHlVUkxBdHRyaWJ1dGUoc3JjQXR0ciksIGNvbnRleHQpOworICAgIGVsc2UKKyAg
ICAgICAgZm9yIChOb2RlKiBub2RlID0gZmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+
bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYgKG5vZGUtPmhhc1RhZ05hbWUoc291cmNl
VGFnKSkgeworICAgICAgICAgICAgICAgIEhUTUxTb3VyY2VFbGVtZW50KiBzb3VyY2UgPSBzdGF0
aWNfY2FzdDxIVE1MU291cmNlRWxlbWVudCo+KG5vZGUpOworICAgICAgICAgICAgICAgIEtVUkwg
dXJsID0gc291cmNlLT5nZXROb25FbXB0eVVSTEF0dHJpYnV0ZShzcmNBdHRyKTsKKyAgICAgICAg
ICAgICAgICBpZiAoIXVybC5pc0VtcHR5KCkgJiYgbV90cmFjay0+c3VwcG9ydHNUeXBlKHVybCkp
CisgICAgICAgICAgICAgICAgICAgIG1fdHJhY2stPmxvYWQodXJsLCBjb250ZXh0KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorCit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRyYWNrRWxlbWVudC5oCmluZGV4IDQ2OTdlMDJhYjhjZTc0YmQ5YzM4NzdiMDQyNGNkZDZh
MThkMTkwOWEuLjk0NjU2NDJlNTY3NTc1NjA4YTY0NjhkMzAzZjg0ZGFkNjhiNzVjOWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJMb2FkYWJsZVRleHRUcmFjay5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ3LDEz
ICs0OCwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTcmNsYW5nKGNvbnN0IFN0cmluZyYpOwog
ICAgIHZvaWQgc2V0TGFiZWwoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRJc0RlZmF1bHQo
Ym9vbCk7CisgICAgCisgICAgdm9pZCBsb2FkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAog
cHJpdmF0ZToKICAgICBIVE1MVHJhY2tFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworICAgIHZpcnR1YWwgfkhUTUxUcmFja0VsZW1lbnQoKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBpbnNlcnRlZEludG9UcmVlKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3Zl
KCk7CiAgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0Owor
ICAgIAorICAgIFJlZlB0cjxMb2FkYWJsZVRleHRUcmFjaz4gbV90cmFjazsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2suY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5jcHAKaW5kZXggZGI5ZGFhMTQ1Yzgz
ZjZjNmFiYmNmMzA1MTdkNzdhNGMzZWI5YWUxNC4uZTNmZGQwYzgyMjJiZTc5N2M4ZDA3Mjk2NTAx
YTc3YjRhN2I4NjYxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRl
eHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5j
cHAKQEAgLTMzLDE4ICszMywzMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIExvYWRhYmxlVGV4
dFRyYWNrOjpMb2FkYWJsZVRleHRUcmFjayhjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmlu
ZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNEZWZhdWx0KQogewotICAg
IC8vIEZJWE1FKDYyODgxKTogSW1wbGVtZW50LgotICAgIG1fcHJpdmF0ZSA9IExvYWRhYmxlVGV4
dFRyYWNrSW1wbDo6Y3JlYXRlKGtpbmQsIGxhYmVsLCBsYW5ndWFnZSwgaXNEZWZhdWx0KTsKKyAg
ICBtX3ByaXZhdGUgPSBMb2FkYWJsZVRleHRUcmFja0ltcGw6OmNyZWF0ZSh0aGlzLCBraW5kLCBs
YWJlbCwgbGFuZ3VhZ2UsIGlzRGVmYXVsdCk7CiB9CiAKIExvYWRhYmxlVGV4dFRyYWNrOjp+TG9h
ZGFibGVUZXh0VHJhY2soKQogewotICAgIC8vIEZJWE1FKDYyODgxKTogSW1wbGVtZW50LgogfQog
Ci12b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpsb2FkKGNvbnN0IFN0cmluZyYpCit2b2lkIExvYWRh
YmxlVGV4dFRyYWNrOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJsLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0KQogewotICAgIC8vIEZJWE1FKDYyODgxKTogSW1wbGVtZW50LgorICAgIG1f
cHJpdmF0ZS0+bG9hZCh1cmwsIGNvbnRleHQpOworfQorCitib29sIExvYWRhYmxlVGV4dFRyYWNr
OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgcmV0dXJuIG1fcHJpdmF0
ZS0+c3VwcG9ydHNUeXBlKHVybCk7Cit9CisKK3ZvaWQgTG9hZGFibGVUZXh0VHJhY2s6OnRyYWNr
TG9hZFN0YXJ0ZWQoKQoreworICAgIC8vIEZJWE1FKDYzMDQyKTogRGlzcGF0Y2ggbG9hZEV2ZW50
LgorfQorCit2b2lkIExvYWRhYmxlVGV4dFRyYWNrOjp0cmFja0xvYWRFcnJvcigpCit7CisgICAg
Ly8gRklYTUUoNjMwNDIpOiBEaXNwYXRjaCBlcnJvckV2ZW50LgogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRy
YWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmgKaW5kZXggYjcx
Mjk2MjFkYTYyODk5ODYzMThmNzNlZDdlYzgyOWFjZjg0Mjc3NC4uMGIyMzg3NjkxZTk5MmVjY2Ey
NjZjMzEzMGVhZWQ0ODM3YzdmZDc3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9M
b2FkYWJsZVRleHRUcmFjay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0
VHJhY2suaApAQCAtMzUsNyArMzUsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IExvYWRhYmxlVGV4dFRyYWNrIDogcHVibGljIFRleHRUcmFjayB7CitjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OworCitjbGFzcyBMb2FkYWJsZVRleHRUcmFjayA6IHB1YmxpYyBUZXh0VHJh
Y2ssIHB1YmxpYyBMb2FkYWJsZVRleHRUcmFja0NsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8TG9hZGFibGVUZXh0VHJhY2s+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGtpbmQs
IGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNEZWZh
dWx0KQogICAgIHsKQEAgLTQzLDcgKzQ1LDEyIEBAIHB1YmxpYzoKICAgICB9CiAgICAgdmlydHVh
bCB+TG9hZGFibGVUZXh0VHJhY2soKTsKIAotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKTsK
KyAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwor
ICAgIGJvb2wgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYpOworICAgIAorICAgIC8vIExvYWRh
YmxlVGV4dFRyYWNrQ2xpZW50IG1ldGhvZHMKKyAgICB2b2lkIHRyYWNrTG9hZFN0YXJ0ZWQoKTsK
KyAgICB2b2lkIHRyYWNrTG9hZEVycm9yKCk7CiAKIHByaXZhdGU6CiAgICAgTG9hZGFibGVUZXh0
VHJhY2soY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJp
bmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xv
YWRhYmxlVGV4dFRyYWNrSW1wbC5jcHAKaW5kZXggMWZmYzY5ZDJlZmNjYmM1MmY3Yjk3Mjc5N2Fj
YWNlODI2NzgzZTlkMC4uZDg5MjJiMWQ5ZTg2NGM5NGUwNjI4YjNjODE4NDEwNmVlZWU2ZDJlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmNwcApAQCAt
MzMsOCArMzMsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUxvYWRhYmxlVGV4dFRyYWNr
SW1wbDo6TG9hZGFibGVUZXh0VHJhY2tJbXBsKGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3Ry
aW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQpCitMb2Fk
YWJsZVRleHRUcmFja0ltcGw6OkxvYWRhYmxlVGV4dFRyYWNrSW1wbChMb2FkYWJsZVRleHRUcmFj
a0NsaWVudCogY2xpZW50LCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWws
IGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNEZWZhdWx0KQogICAgIDogVGV4dFRyYWNr
UHJpdmF0ZUludGVyZmFjZShraW5kLCBsYWJlbCwgbGFuZ3VhZ2UpCisgICAgLCBtX3RleHRUcmFj
a0NsaWVudChjbGllbnQpCiAgICAgLCBtX2lzRGVmYXVsdChpc0RlZmF1bHQpCiB7CiB9CkBAIC02
MCwxNCArNjEsNDEgQEAgdm9pZCBMb2FkYWJsZVRleHRUcmFja0ltcGw6OmZldGNoTmV3ZXN0Q3Vl
cyhWZWN0b3I8VGV4dFRyYWNrQ3VlKj4mKQogICAgIC8vIEZJWE1FKDYyODg1KTogSW1wbGVtZW50
LgogfQogCi12b2lkIExvYWRhYmxlVGV4dFRyYWNrSW1wbDo6bG9hZChjb25zdCBTdHJpbmcmKQor
dm9pZCBMb2FkYWJsZVRleHRUcmFja0ltcGw6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgLy8gRklYTUUoNjI4ODEpOiBJbXBs
ZW1lbnQuCisgICAgbV9wYXJzZXIubG9hZCh1cmwsIGNvbnRleHQsIHRoaXMpOworfQorCitib29s
IExvYWRhYmxlVGV4dFRyYWNrSW1wbDo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdXJsKQor
eworICAgIHJldHVybiBtX3BhcnNlci5zdXBwb3J0c1R5cGUodXJsKTsKK30KKwordm9pZCBMb2Fk
YWJsZVRleHRUcmFja0ltcGw6Om5ld0N1ZXNQYXJzZWQoKQoreworICAgIC8vIEZJWE1FKDYyODgz
KTogRmV0Y2ggbmV3IGN1ZXMgZnJvbSBwYXJzZXIgYW5kIHRlbXBvcmFyaWx5IHN0b3JlIHRvIGdp
dmUgdG8gQ3VlTG9hZGVyQ2xpZW50IHdoZW4gZmV0Y2hOZXdDdWVzRnJvbUxvYWRlciBpcyBjYWxs
ZWQuCiB9CiAKIHZvaWQgTG9hZGFibGVUZXh0VHJhY2tJbXBsOjpuZXdDdWVzTG9hZGVkKCkKIHsK
LSAgICAvLyBGSVhNRSg2Mjg4MSk6IEltcGxlbWVudC4KKyAgICAvLyBGSVhNRSg2Mjg4NSk6IFRl
bGwgdGhlIGNsaWVudCB0byBmZXRjaCB0aGUgbGF0ZXN0IGN1ZXMuCit9CisKK3ZvaWQgTG9hZGFi
bGVUZXh0VHJhY2tJbXBsOjp0cmFja0xvYWRTdGFydGVkKCkKK3sKKyAgICBtX3RleHRUcmFja0Ns
aWVudC0+dHJhY2tMb2FkU3RhcnRlZCgpOworICAgIG1fcmVhZHlTdGF0ZSA9IFRleHRUcmFjazo6
TE9BRElORzsKK30KKwordm9pZCBMb2FkYWJsZVRleHRUcmFja0ltcGw6OnRyYWNrTG9hZEVycm9y
KCkKK3sKKyAgICBtX3RleHRUcmFja0NsaWVudC0+dHJhY2tMb2FkRXJyb3IoKTsKKyAgICBtX3Jl
YWR5U3RhdGUgPSBUZXh0VHJhY2s6OkVSUk9SOworfQorCit2b2lkIExvYWRhYmxlVGV4dFRyYWNr
SW1wbDo6dHJhY2tMb2FkQ29tcGxldGVkKCkKK3sKKyAgICBtX3JlYWR5U3RhdGUgPSBUZXh0VHJh
Y2s6OkxPQURFRDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmgKaW5kZXggZWE4MTY3NDE1MmMxYmYwMWU4MGJl
MGY1YjA4ZjJjZTQ5Yzk4NjhhZC4uNzM0NjUyNTg2MjJmODZmZjRjNTdkOGE1YTNlOWNlOTJkNGYx
NzQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFja0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oCkBA
IC0zNiwzNCArMzYsNTAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OwogY2xhc3MgVGV4dFRyYWNrOwogY2xhc3MgVGV4dFRyYWNrQ3VlOwog
Y2xhc3MgVGV4dFRyYWNrQ3VlTGlzdDsKIAotY2xhc3MgTG9hZGFibGVUZXh0VHJhY2tJbXBsIDog
cHVibGljIFRleHRUcmFja1ByaXZhdGVJbnRlcmZhY2UsIHB1YmxpYyBDdWVMb2FkZXIgeworY2xh
c3MgTG9hZGFibGVUZXh0VHJhY2tDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3du
UHRyPExvYWRhYmxlVGV4dFRyYWNrSW1wbD4gY3JlYXRlKGNvbnN0IFN0cmluZyYga2luZCwgY29u
c3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQp
CisgICAgdmlydHVhbCB2b2lkIHRyYWNrTG9hZFN0YXJ0ZWQoKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHRyYWNrTG9hZEVycm9yKCkgPSAwOworfTsKKworY2xhc3MgTG9hZGFibGVUZXh0VHJhY2tJ
bXBsIDogcHVibGljIFRleHRUcmFja1ByaXZhdGVJbnRlcmZhY2UsIHB1YmxpYyBDdWVQYXJzZXJD
bGllbnQsIHB1YmxpYyBDdWVMb2FkZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRy
PExvYWRhYmxlVGV4dFRyYWNrSW1wbD4gY3JlYXRlKExvYWRhYmxlVGV4dFRyYWNrQ2xpZW50KiBj
bGllbnQsIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3Ry
aW5nJiBsYW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IExvYWRhYmxlVGV4dFRyYWNrSW1wbChraW5kLCBsYWJlbCwgbGFuZ3VhZ2UsIGlz
RGVmYXVsdCkpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IExvYWRhYmxlVGV4dFRyYWNr
SW1wbChjbGllbnQsIGtpbmQsIGxhYmVsLCBsYW5ndWFnZSwgaXNEZWZhdWx0KSk7CiAgICAgfQog
ICAgIHZpcnR1YWwgfkxvYWRhYmxlVGV4dFRyYWNrSW1wbCgpOwogCiAgICAgLy8gVGV4dFRyYWNr
UHJpdmF0ZUludGVyZmFjZSBtZXRob2RzCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRleHRUcmFj
a0N1ZUxpc3Q+IGN1ZXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRyYWNr
Q3VlTGlzdD4gYWN0aXZlQ3VlcygpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0
IFN0cmluZyYpOworICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqKTsKKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNUeXBlKGNvbnN0IFN0
cmluZyYpOworCisgICAgLy8gQ3VlUGFyc2VyQ2xpZW50IG1ldGhvZHMKKyAgICB2aXJ0dWFsIHZv
aWQgbmV3Q3Vlc1BhcnNlZCgpOworICAgIHZpcnR1YWwgdm9pZCB0cmFja0xvYWRTdGFydGVkKCk7
CisgICAgdmlydHVhbCB2b2lkIHRyYWNrTG9hZEVycm9yKCk7CisgICAgdmlydHVhbCB2b2lkIHRy
YWNrTG9hZENvbXBsZXRlZCgpOwogCiAgICAgLy8gQ3VlTG9hZGVyIGludGVyZmFjZQogICAgIHZp
cnR1YWwgdm9pZCBuZXdDdWVzTG9hZGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIGZldGNoTmV3ZXN0
Q3VlcyhWZWN0b3I8VGV4dFRyYWNrQ3VlKj4mKTsKIAogcHJpdmF0ZToKLSAgICBMb2FkYWJsZVRl
eHRUcmFja0ltcGwoY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25z
dCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCk7CisgICAgTG9hZGFibGVUZXh0VHJh
Y2tJbXBsKExvYWRhYmxlVGV4dFRyYWNrQ2xpZW50KiwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCk7
CiAKLSAgICBib29sIG1faXNEZWZhdWx0OworICAgIExvYWRhYmxlVGV4dFRyYWNrQ2xpZW50KiBt
X3RleHRUcmFja0NsaWVudDsKIAogICAgIEN1ZVBhcnNlciBtX3BhcnNlcjsKICAgICBSZWZQdHI8
VGV4dFRyYWNrQ3VlTGlzdD4gbV9jdWVzOworICAgIAorICAgIGJvb2wgbV9pc0RlZmF1bHQ7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5jcHAKaW5k
ZXggNjMzZTU4ZGVlOWQyOTE2Yzg4MTVhYzg5NmQ4NTU3MWFiZTQxYTRmYy4uZTM3NzExMjhlOGNi
YzRlODdkNThjZDlkZTVhMjljZDBkMGMyNzRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmNw
cApAQCAtNDEsMTkgKzQxLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTnVsbFRl
eHRUcmFja1ByaXZhdGUgOiBwdWJsaWMgVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSB7CiBwdWJs
aWM6Ci0gICAgTnVsbFRleHRUcmFja1ByaXZhdGUoKTsKLSAgICB2aXJ0dWFsIH5OdWxsVGV4dFRy
YWNrUHJpdmF0ZSgpOwotCi0gICAgLy8gVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSBtZXRob2Rz
Ci0gICAgdmlydHVhbCBTdHJpbmcga2luZCgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
IH0KLSAgICB2aXJ0dWFsIFN0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5n
KCk7IH0KLSAgICB2aXJ0dWFsIFN0cmluZyBsYW5ndWFnZSgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7IH0KLSAgICB2aXJ0dWFsIFRleHRUcmFjazo6UmVhZHlTdGF0ZSByZWFkeVN0YXRl
KCkgY29uc3QgeyByZXR1cm4gVGV4dFRyYWNrOjpOT05FOyB9Ci0gICAgdmlydHVhbCBUZXh0VHJh
Y2s6Ok1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIFRleHRUcmFjazo6T0ZGOyB9Ci0gICAgdmly
dHVhbCB2b2lkIHNldE1vZGUoVGV4dFRyYWNrOjpNb2RlKSB7IH0KKyAgICBOdWxsVGV4dFRyYWNr
UHJpdmF0ZSgpCisgICAgICAgIDogVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZShlbXB0eVN0cmlu
ZygpLCBlbXB0eVN0cmluZygpLCBlbXB0eVN0cmluZygpKQorICAgIHsKKyAgICB9CisgICAgdmly
dHVhbCB+TnVsbFRleHRUcmFja1ByaXZhdGUoKSB7IH0KKworICAgIC8vIFRleHRUcmFja1ByaXZh
dGVJbnRlcmZhY2UgbWV0aG9kCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUxp
c3Q+IGN1ZXMoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRl
eHRUcmFja0N1ZUxpc3Q+IGFjdGl2ZUN1ZXMoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0gICAgdmly
dHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJikgeyB9CiB9OwogCiBzdGF0aWMgUGFzc093blB0
cjxOdWxsVGV4dFRyYWNrUHJpdmF0ZT4gY3JlYXRlTnVsbFRleHRUcmFja1ByaXZhdGUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RleHRUcmFja1ByaXZhdGUuaAppbmRleCAyY2NjN2FmOTUyOGFmZTFjMzIx
Mjc4YTNjZjUzYmQyYjEwOGE0MmEwLi5lNTY3NTJjN2RiNzYzZjc2OTlmYjBhNWI2NDUxYzNlYzBm
Yzc1NDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFja1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFja1ByaXZhdGUuaApAQCAtMzUsNiAr
MzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDdWVMb2FkZXJDbGllbnQ7Citj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgVGV4dFRyYWNrQ3VlTGlzdDsKIAog
Y2xhc3MgVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSB7CkBAIC02Myw5ICs2NCwxMCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUxpc3Q+IGFjdGl2ZUN1ZXMo
KSBjb25zdCA9IDA7CiAKICAgICAvLyBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSBvdmVycmlk
ZGVuIGJ5IHRyYWNrcyB0aGF0IGxvYWQgY3VlIGRhdGEgZnJvbSBhIFVSTC4KLSAgICB2aXJ0dWFs
IHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25z
dCBTdHJpbmcmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgeyB9CisgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmKSB7IHJldHVybiBmYWxzZTsgfQogCi1wcml2YXRl
OgorcHJvdGVjdGVkOgogICAgIFN0cmluZyBtX2tpbmQ7CiAgICAgU3RyaW5nIG1fbGFiZWw7CiAg
ICAgU3RyaW5nIG1fbGFuZ3VhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90cmFjay9DdWVQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2svQ3Vl
UGFyc2VyLmNwcAppbmRleCAwNjZhMWVhNjA4YWZkNjFlYzM0ZDNkYmIxZjYwOTJkZGViNGExNjRl
Li40ODkxMTVhY2RmYzNlNzU4OTRiYWFiNTc3YjNmNGJiNmNhYTVmZDc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5jcHAKQEAgLTM0LDYgKzM0LDkgQEAKIAog
I2luY2x1ZGUgIkN1ZVBhcnNlci5oIgogCisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisj
aW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEN1
ZVBhcnNlcjo6Q3VlUGFyc2VyKCkKQEAgLTQzLDE5ICs0Niw1MiBAQCBDdWVQYXJzZXI6OkN1ZVBh
cnNlcigpCiAKIEN1ZVBhcnNlcjo6fkN1ZVBhcnNlcigpCiB7CisgICAgaWYgKG1fbG9hZGVyKQor
ICAgICAgICBtX2xvYWRlci0+Y2FuY2VsKCk7CisgICAgbV9sb2FkZXIgPSAwOworfQorCit2b2lk
IEN1ZVBhcnNlcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgQ3VlUGFyc2VyQ2xpZW50KiBjbGllbnQpCit7CisgICAgUmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QodXJsKTsKKworICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIG9wdGlvbnM7
CisgICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IHRydWU7CisgICAgb3B0aW9ucy5jcm9z
c09yaWdpblJlcXVlc3RQb2xpY3kgPSBBbGxvd0Nyb3NzT3JpZ2luUmVxdWVzdHM7CisKKyAgICBt
X2NsaWVudCA9IGNsaWVudDsKKworICAgIG1fbG9hZGVyID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3Jl
YXRlKGNvbnRleHQsIHRoaXMsIHJlcXVlc3QsIG9wdGlvbnMpOworfQorCitib29sIEN1ZVBhcnNl
cjo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIC8vIEZJWE1FKDYyODkz
KTogY2hlY2sgYWdhaW5zdCBhIGxpc3Qgb2Ygc3VwcG9ydGVkIHR5cGVzCisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIEN1ZVBhcnNlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKQoreworICAgIC8vIEZJWE1FKDYyODkzKTogQ3JlYXRlIG1fcHJpdmF0ZSBi
YXNlZCBvbiBNSU1FIHR5cGUuCisgICAgbV9jbGllbnQtPnRyYWNrTG9hZFN0YXJ0ZWQoKTsKK30K
Kwordm9pZCBDdWVQYXJzZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBs
ZW4pCit7CisgICAgLy8gRklYTUUoNjI4OTMpOiBTZW5kIGRhdGEgYWxvbmcgdG8gbV9wcml2YXRl
IHBhcnNlciB0byBiZSBwYXJzZWQuCiB9CiAKLXZvaWQgQ3VlUGFyc2VyOjpsb2FkKGNvbnN0IFN0
cmluZyYpCit2b2lkIEN1ZVBhcnNlcjo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nKQog
ewotICAgIC8vIEZJWE1FKDYyODgxKTogSW1wbGVtZW50LgorICAgIG1fY2xpZW50LT50cmFja0xv
YWRDb21wbGV0ZWQoKTsKIH0KIAotdm9pZCBDdWVQYXJzZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0
IGNoYXIqLCBpbnQpCit2b2lkIEN1ZVBhcnNlcjo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9y
JikKIHsKLSAgICAvLyBGSVhNRSg2Mjg4MSk6IEltcGxlbWVudC4KKyAgICBtX2NsaWVudC0+dHJh
Y2tMb2FkRXJyb3IoKTsKIH0KIAotdm9pZCBDdWVQYXJzZXI6OmZldGNoUGFyc2VkQ3VlcyhWZWN0
b3I8UGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+ID4mKQordm9pZCBDdWVQYXJzZXI6OmZldGNoUGFy
c2VkQ3VlcyhWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4gPiYpCiB7CiAgICAgLy8gRklYTUUo
NjI4OTMpOiBJbXBsZW1lbnQuCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90cmFjay9DdWVQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBh
cnNlci5oCmluZGV4IDc3YTc5ZjRiMGQ3NGRmMWUyYjk0NGVjZWI2YzZhZjgyOTU3ZDU4YmIuLjQ1
NzQ5NjY3YjYzOTdjZjYzY2VhOTgwNmY2ODYxN2U5MDc2YTNmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oCkBAIC00MiwyMiArNDIsMzcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3MgVGV4
dFRyYWNrQ3VlOwogCitjbGFzcyBDdWVQYXJzZXJDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1
YWwgdm9pZCBuZXdDdWVzUGFyc2VkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0cmFja0xvYWRT
dGFydGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0cmFja0xvYWRFcnJvcigpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdHJhY2tMb2FkQ29tcGxldGVkKCkgPSAwOworfTsKKwogY2xhc3MgQ3Vl
UGFyc2VyIDogcHVibGljIFRocmVhZGFibGVMb2FkZXJDbGllbnQgewogcHVibGljOgogICAgIEN1
ZVBhcnNlcigpOwogICAgIHZpcnR1YWwgfkN1ZVBhcnNlcigpOwogCiAgICAgLy8gVGhyZWFkYWJs
ZUxvYWRlckNsaWVudCBtZXRob2RzLgorICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIq
LCBpbnQpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nKTsKKyAgICB2
b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCi0gICAgdm9pZCBsb2FkKGNvbnN0
IFN0cmluZyYpOwotICAgIHZvaWQgZmV0Y2hQYXJzZWRDdWVzKFZlY3RvcjxQYXNzUmVmUHRyPFRl
eHRUcmFja0N1ZT4gPiYpOworICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgQ3VlUGFyc2VyQ2xpZW50Kik7CisgICAgYm9vbCBzdXBwb3J0c1R5cGUo
Y29uc3QgU3RyaW5nJik7CisgICAgCisgICAgdm9pZCBmZXRjaFBhcnNlZEN1ZXMoVmVjdG9yPFJl
ZlB0cjxUZXh0VHJhY2tDdWU+ID4mKTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8VGhyZWFkYWJs
ZUxvYWRlcj4gbV9sb2FkZXI7CiAgICAgT3duUHRyPEN1ZVBhcnNlclByaXZhdGVJbnRlcmZhY2U+
IG1fcHJpdmF0ZTsKKyAgICBDdWVQYXJzZXJDbGllbnQqIG1fY2xpZW50OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0
dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IGFh
YWE3MzBmMTk0ZjZiYjgyMTNlMjUzM2MzOGI4MGJjNTFjNzM3MTYuLjBmZWU0NzAxMThjZTFiOWMw
Njk4NTYzMDIyNmUyNmExOGMzM2Y4MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5
cGkKQEAgLTg0LDYgKzg0LDcgQEAKICAgICAgICdFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HPTwo
ZW5hYmxlX3RvdWNoX2ljb25fbG9hZGluZyknLAogICAgICAgJ0VOQUJMRV9WOF9TQ1JJUFRfREVC
VUdfU0VSVkVSPTEnLAogICAgICAgJ0VOQUJMRV9WSURFTz0xJywKKyAgICAgICdFTkFCTEVfVklE
RU9fVFJBQ0s9MScsCiAgICAgICAnRU5BQkxFX1dFQl9TT0NLRVRTPTEnLAogICAgICAgJ0VOQUJM
RV9XRUJfVElNSU5HPTEnLAogICAgICAgJ0VOQUJMRV9XRUJHTD0xJywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98117</attachid>
            <date>2011-06-21 22:22:04 -0700</date>
            <delta_ts>2011-06-23 08:53:46 -0700</delta_ts>
            <desc>Adding files to GNUmakefile.list.am</desc>
            <filename>bug-62881-20110621222203.patch</filename>
            <type>text/plain</type>
            <size>21395</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzNjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNTc1NmI0OWRjNzJiNjQ3
ZWFhYzZkMmQwZTk0M2E0NWFiYTcyODEzLi5jNzlmMjk1NjA2MWE2NDFjYTI5OTQ3NGU2MDhhODM3
NGFjZTU5ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDYtMjEgIEFubmEg
Q2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIExvYWRpbmcgb3V0LW9mLWJhbmQgdGV4dCB0cmFjayBm
aWxlcyBmcm9tIDx0cmFjaz4uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02Mjg4MQorCisgICAgICAgIFVzZXMgdGhlIHNyYyBhdHRyaWJ1dGUgb3IgPHNv
dXJjZT4gY2hpbGRyZW4gdGFncyBvZiA8dHJhY2s+IHVybHMgdG8KKyAgICAgICAgbG9hZCBvdXQt
b2YtYmFuZCB0ZXh0IHRyYWNrIGZpbGVzIHVzaW5nIFRocmVhZGFibGVMb2FkZXIuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgZmVhdHVyZSBpcyBoaWRkZW4gYmVoaW5kIFZJREVPX1RS
QUNLIGZlYXR1cmUKKyAgICAgICAgZGVmaW5lLCB3aGljaCBpcyB0dXJuZWQgb2ZmLgorCisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5jcHA6CisgICAgICAgICogaHRt
bC9Mb2FkYWJsZVRleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvTG9hZGFibGVUZXh0VHJhY2tJ
bXBsLmNwcDoKKyAgICAgICAgKiBodG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oOgorICAgICAg
ICAqIGh0bWwvVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKiBodG1sL1RleHRUcmFja1ByaXZhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oOgorCiAyMDExLTA2LTIxICBWc2V2b2xvZCBWbGFzb3Yg
IDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRt
YW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwYjlhOTBjNjAwODJmYzNlNTIw
MGEwMzZjMDVhNTVjODIxZTQ0YTJiLi4wNDA1NTVhNjNlYTI2YTM4ZGE1MzE3N2RiNDMwNmNhZGI4
MTQ4ODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE1OTQsNiArMTU5NCw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9u
VHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1s
L0N1ZUluZGV4LmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9DdWVJbmRleC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVJbnB1dFR5cGUuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlw
ZS5jcHAgXApAQCAtMTgwMywxMSArMTgwNSwxOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxzTm9kZUxpc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRt
bC9MaW5rUmVsQXR0cmlidXRlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0
cmlidXRlLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2suY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmggXAorCVNvdXJjZS9XZWJD
b3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRt
bC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURv
Y3VtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmggXAogCVNv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFcnJvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL01v
bnRoSW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5o
IFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL011dGFibGVUZXh0VHJhY2suY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9odG1sL011dGFibGVUZXh0VHJhY2suaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9N
dXRhYmxlVGV4dFRyYWNrSW1wbC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvTXV0YWJsZVRl
eHRUcmFja0ltcGwuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAgXApAQCAtMTkwMCw2ICsxOTEw
LDEzIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5w
dXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmggXAogCVNv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dE1ldHJpY3MuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0VHJhY2suY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRUcmFja0N1ZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dFRyYWNrQ3VlLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlTGlzdC5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlTGlzdC5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9odG1sL1RleHRUcmFja1ByaXZhdGUuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9U
aW1lSW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVGltZVJhbmdlcy5jcHAgXApAQCAtMjA4MCw2ICsyMDk3
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdp
blByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3Nz
T3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL0N1
ZUxvYWRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9DdWVMb2FkZXIuaCBcCiAJU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRUaW1pbmcuaCBcCkBAIC0yODI1LDYgKzI4NDQsOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZFRpbWVycy5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9UaW1lci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVy
LmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXJQcml2YXRlLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1RyZWVTaGFyZWQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMU3RyaW5n
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VVSUQuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGMzODNjYzlmY2ZkZjA0M2VhNWNiNDVhMTg4
ZmQ3N2Y3ODQ2ZWQyZjEuLmZhYzlhOTIwN2IwMTgzYmI3MTIzOWI3MDJkNDZkMjhiM2QwNjNjNzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtODQsNiArODQs
MTAgQEAKICNpbmNsdWRlICJXaWRnZXQuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQorI2luY2x1ZGUgIkhUTUxUcmFja0VsZW1lbnQuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1l
c3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01OTAsNiArNTk0LDkgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkSW50ZXJuYWwoKQogICAgIH0KIAogICAgIHNlbGVjdE1l
ZGlhUmVzb3VyY2UoKTsKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgbG9hZFRleHRUcmFj
a3MoKTsKKyNlbmRpZgogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVz
b3VyY2UoKQpAQCAtNzY2LDYgKzc3MywxOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRS
ZXNvdXJjZShjb25zdCBLVVJMJiBpbml0aWFsVVJMLCBDb250ZW50VHlwZSYgY29udGVudAogICAg
ICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCisjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkVGV4dFRyYWNrcygpCit7Cisg
ICAgZm9yIChOb2RlKiBub2RlID0gZmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4
dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZSh0cmFja1RhZykpIHsK
KyAgICAgICAgICAgIEhUTUxUcmFja0VsZW1lbnQqIHRyYWNrID0gc3RhdGljX2Nhc3Q8SFRNTFRy
YWNrRWxlbWVudCo+KG5vZGUpOworICAgICAgICAgICAgdHJhY2stPmxvYWQoQWN0aXZlRE9NT2Jq
ZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICB9CisgICAgfQorfQorI2Vu
ZGlmCisKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNTYWZlVG9Mb2FkVVJMKGNvbnN0IEtVUkwm
IHVybCwgSW52YWxpZFNvdXJjZUFjdGlvbiBhY3Rpb25JZkludmFsaWQpCiB7CiAgICAgaWYgKCF1
cmwuaXNWYWxpZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4
IGUxZWM0NTk0MmIyNTk1NTBlOWNiMTgxZjNhY2NjNDEwOWM0OTJmZjIuLjExZjBjNGE0NjdjM2Ez
ZTBmNDJhZjZmYzE4NmE4N2E4MTRlNmQwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCkBAIC0zMDAsNiArMzAwLDExIEBAIHByaXZhdGU6CiAgICAgS1VSTCBzZWxlY3RO
ZXh0U291cmNlQ2hpbGQoQ29udGVudFR5cGUqLCBJbnZhbGlkU291cmNlQWN0aW9uKTsKICAgICB2
b2lkIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlKTsKIAorI2lm
IEVOQUJMRShWSURFT19UUkFDSykKKyAgICAvLyBsb2FkaW5nIHRyYWNrcworICAgIHZvaWQgbG9h
ZFRleHRUcmFja3MoKTsKKyNlbmRpZgorCiAgICAgLy8gVGhlc2UgImludGVybmFsIiBmdW5jdGlv
bnMgZG8gbm90IGNoZWNrIHVzZXIgZ2VzdHVyZSByZXN0cmljdGlvbnMuCiAgICAgdm9pZCBsb2Fk
SW50ZXJuYWwoKTsKICAgICB2b2lkIHBsYXlJbnRlcm5hbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRyYWNrRWxlbWVudC5jcHAKaW5kZXggNjNmMjc4OGI4ODA2MGI4YmE3NjRmMjllYmVjZTZj
YjZkZGExZjQ0Ni4uMDE3NjVkN2VjZTEzYzU0M2M1MTU2YmRlMmNmMDlkYTY2N2IzZTkzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CisjaW5jbHVkZSAiSFRNTFNvdXJjZUVsZW1lbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAK
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC00NSw2ICs0NiwxMCBAQCBpbmxpbmUgSFRNTFRyYWNr
RWxlbWVudDo6SFRNTFRyYWNrRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudAogICAgIEFTU0VSVChoYXNUYWdOYW1lKHRyYWNrVGFnKSk7CiB9CiAKK0hUTUxUcmFj
a0VsZW1lbnQ6On5IVE1MVHJhY2tFbGVtZW50KCkKK3sKK30KKwogUGFzc1JlZlB0cjxIVE1MVHJh
Y2tFbGVtZW50PiBIVE1MVHJhY2tFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SFRNTFRyYWNrRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwpAQCAtMTIzLDYgKzEyOCwyNCBA
QCBib29sIEhUTUxUcmFja0VsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cmli
dXRlKSBjb25zdAogICAgIHJldHVybiBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBzcmNBdHRyOwogfQog
Cit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OmxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKK3sKKyAgICBtX3RyYWNrID0gTG9hZGFibGVUZXh0VHJhY2s6OmNyZWF0ZShraW5kKCks
IGxhYmVsKCksIHNyY2xhbmcoKSwgaXNEZWZhdWx0KCkpOworCisgICAgaWYgKGhhc0F0dHJpYnV0
ZShzcmNBdHRyKSkKKyAgICAgICAgbV90cmFjay0+bG9hZChnZXROb25FbXB0eVVSTEF0dHJpYnV0
ZShzcmNBdHRyKSwgY29udGV4dCk7CisgICAgZWxzZQorICAgICAgICBmb3IgKE5vZGUqIG5vZGUg
PSBmaXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7CisgICAg
ICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShzb3VyY2VUYWcpKSB7CisgICAgICAgICAgICAg
ICAgSFRNTFNvdXJjZUVsZW1lbnQqIHNvdXJjZSA9IHN0YXRpY19jYXN0PEhUTUxTb3VyY2VFbGVt
ZW50Kj4obm9kZSk7CisgICAgICAgICAgICAgICAgS1VSTCB1cmwgPSBzb3VyY2UtPmdldE5vbkVt
cHR5VVJMQXR0cmlidXRlKHNyY0F0dHIpOworICAgICAgICAgICAgICAgIGlmICghdXJsLmlzRW1w
dHkoKSAmJiBtX3RyYWNrLT5zdXBwb3J0c1R5cGUodXJsKSkKKyAgICAgICAgICAgICAgICAgICAg
bV90cmFjay0+bG9hZCh1cmwsIGNvbnRleHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisK
K30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRy
YWNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKaW5k
ZXggNDY5N2UwMmFiOGNlNzRiZDljMzg3N2IwNDI0Y2RkNmExOGQxOTA5YS4uOTQ2NTY0MmU1Njc1
NzU2MDhhNjQ2OGQzMDNmODRkYWQ2OGI3NWM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJh
Y2tFbGVtZW50LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAK
ICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsMTMgKzQ4LDE4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFNyY2xhbmcoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRMYWJlbChjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIHNldElzRGVmYXVsdChib29sKTsKKyAgICAKKyAgICB2b2lk
IGxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiBwcml2YXRlOgogICAgIEhUTUxUcmFj
a0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+
SFRNTFRyYWNrRWxlbWVudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUo
Ym9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoKTsKICAgICB2aXJ0dWFsIGJvb2wg
aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CisgICAgCisgICAgUmVmUHRyPExvYWRh
YmxlVGV4dFRyYWNrPiBtX3RyYWNrOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRh
YmxlVGV4dFRyYWNrLmNwcAppbmRleCBkYjlkYWExNDVjODNmNmM2YWJiY2YzMDUxN2Q3N2E0YzNl
YjlhZTE0Li5lM2ZkZDBjODIyMmJlNzk3YzhkMDcyOTY1MDFhNzdiNGE3Yjg2NjE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmNwcApAQCAtMzMsMTggKzMzLDMxIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTG9hZGFibGVUZXh0VHJhY2s6OkxvYWRhYmxlVGV4dFRy
YWNrKGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5n
JiBsYW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQpCiB7Ci0gICAgLy8gRklYTUUoNjI4ODEpOiBJbXBs
ZW1lbnQuCi0gICAgbV9wcml2YXRlID0gTG9hZGFibGVUZXh0VHJhY2tJbXBsOjpjcmVhdGUoa2lu
ZCwgbGFiZWwsIGxhbmd1YWdlLCBpc0RlZmF1bHQpOworICAgIG1fcHJpdmF0ZSA9IExvYWRhYmxl
VGV4dFRyYWNrSW1wbDo6Y3JlYXRlKHRoaXMsIGtpbmQsIGxhYmVsLCBsYW5ndWFnZSwgaXNEZWZh
dWx0KTsKIH0KIAogTG9hZGFibGVUZXh0VHJhY2s6On5Mb2FkYWJsZVRleHRUcmFjaygpCiB7Ci0g
ICAgLy8gRklYTUUoNjI4ODEpOiBJbXBsZW1lbnQuCiB9CiAKLXZvaWQgTG9hZGFibGVUZXh0VHJh
Y2s6OmxvYWQoY29uc3QgU3RyaW5nJikKK3ZvaWQgTG9hZGFibGVUZXh0VHJhY2s6OmxvYWQoY29u
c3QgU3RyaW5nJiB1cmwsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAg
Ly8gRklYTUUoNjI4ODEpOiBJbXBsZW1lbnQuCisgICAgbV9wcml2YXRlLT5sb2FkKHVybCwgY29u
dGV4dCk7Cit9CisKK2Jvb2wgTG9hZGFibGVUZXh0VHJhY2s6OnN1cHBvcnRzVHlwZShjb25zdCBT
dHJpbmcmIHVybCkKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zdXBwb3J0c1R5cGUodXJsKTsK
K30KKwordm9pZCBMb2FkYWJsZVRleHRUcmFjazo6dHJhY2tMb2FkU3RhcnRlZCgpCit7CisgICAg
Ly8gRklYTUUoNjMwNDIpOiBEaXNwYXRjaCBsb2FkRXZlbnQuCit9CisKK3ZvaWQgTG9hZGFibGVU
ZXh0VHJhY2s6OnRyYWNrTG9hZEVycm9yKCkKK3sKKyAgICAvLyBGSVhNRSg2MzA0Mik6IERpc3Bh
dGNoIGVycm9yRXZlbnQuCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTG9hZGFibGVUZXh0VHJhY2suaAppbmRleCBiNzEyOTYyMWRhNjI4OTk4NjMxOGY3M2Vk
N2VjODI5YWNmODQyNzc0Li4wYjIzODc2OTFlOTkyZWNjYTI2NmMzMTMwZWFlZDQ4MzdjN2ZkNzdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5oCkBAIC0zNSw3ICszNSw5
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTG9hZGFibGVUZXh0VHJhY2sgOiBw
dWJsaWMgVGV4dFRyYWNrIHsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNz
IExvYWRhYmxlVGV4dFRyYWNrIDogcHVibGljIFRleHRUcmFjaywgcHVibGljIExvYWRhYmxlVGV4
dFRyYWNrQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxMb2FkYWJsZVRl
eHRUcmFjaz4gY3JlYXRlKGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwg
Y29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQpCiAgICAgewpAQCAtNDMsNyAr
NDUsMTIgQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5Mb2FkYWJsZVRleHRUcmFjaygp
OwogCi0gICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgbG9hZChjb25zdCBT
dHJpbmcmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgYm9vbCBzdXBwb3J0c1R5cGUo
Y29uc3QgU3RyaW5nJik7CisgICAgCisgICAgLy8gTG9hZGFibGVUZXh0VHJhY2tDbGllbnQgbWV0
aG9kcworICAgIHZvaWQgdHJhY2tMb2FkU3RhcnRlZCgpOworICAgIHZvaWQgdHJhY2tMb2FkRXJy
b3IoKTsKIAogcHJpdmF0ZToKICAgICBMb2FkYWJsZVRleHRUcmFjayhjb25zdCBTdHJpbmcmIGtp
bmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNE
ZWZhdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJh
Y2tJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmNw
cAppbmRleCAxZmZjNjlkMmVmY2NiYzUyZjdiOTcyNzk3YWNhY2U4MjY3ODNlOWQwLi5kODkyMmIx
ZDllODY0Yzk0ZTA2MjhiM2M4MTg0MTA2ZWVlZTZkMmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuY3BwCkBAIC0zMyw4ICszMyw5IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotTG9hZGFibGVUZXh0VHJhY2tJbXBsOjpMb2FkYWJsZVRleHRUcmFj
a0ltcGwoY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJp
bmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCkKK0xvYWRhYmxlVGV4dFRyYWNrSW1wbDo6TG9h
ZGFibGVUZXh0VHJhY2tJbXBsKExvYWRhYmxlVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIGNvbnN0
IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFn
ZSwgYm9vbCBpc0RlZmF1bHQpCiAgICAgOiBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlKGtpbmQs
IGxhYmVsLCBsYW5ndWFnZSkKKyAgICAsIG1fdGV4dFRyYWNrQ2xpZW50KGNsaWVudCkKICAgICAs
IG1faXNEZWZhdWx0KGlzRGVmYXVsdCkKIHsKIH0KQEAgLTYwLDE0ICs2MSw0MSBAQCB2b2lkIExv
YWRhYmxlVGV4dFRyYWNrSW1wbDo6ZmV0Y2hOZXdlc3RDdWVzKFZlY3RvcjxUZXh0VHJhY2tDdWUq
PiYpCiAgICAgLy8gRklYTUUoNjI4ODUpOiBJbXBsZW1lbnQuCiB9CiAKLXZvaWQgTG9hZGFibGVU
ZXh0VHJhY2tJbXBsOjpsb2FkKGNvbnN0IFN0cmluZyYpCit2b2lkIExvYWRhYmxlVGV4dFRyYWNr
SW1wbDo6bG9hZChjb25zdCBTdHJpbmcmIHVybCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKIHsKLSAgICAvLyBGSVhNRSg2Mjg4MSk6IEltcGxlbWVudC4KKyAgICBtX3BhcnNlci5s
b2FkKHVybCwgY29udGV4dCwgdGhpcyk7Cit9CisKK2Jvb2wgTG9hZGFibGVUZXh0VHJhY2tJbXBs
OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgcmV0dXJuIG1fcGFyc2Vy
LnN1cHBvcnRzVHlwZSh1cmwpOworfQorCit2b2lkIExvYWRhYmxlVGV4dFRyYWNrSW1wbDo6bmV3
Q3Vlc1BhcnNlZCgpCit7CisgICAgLy8gRklYTUUoNjI4ODMpOiBGZXRjaCBuZXcgY3VlcyBmcm9t
IHBhcnNlciBhbmQgdGVtcG9yYXJpbHkgc3RvcmUgdG8gZ2l2ZSB0byBDdWVMb2FkZXJDbGllbnQg
d2hlbiBmZXRjaE5ld0N1ZXNGcm9tTG9hZGVyIGlzIGNhbGxlZC4KIH0KIAogdm9pZCBMb2FkYWJs
ZVRleHRUcmFja0ltcGw6Om5ld0N1ZXNMb2FkZWQoKQogewotICAgIC8vIEZJWE1FKDYyODgxKTog
SW1wbGVtZW50LgorICAgIC8vIEZJWE1FKDYyODg1KTogVGVsbCB0aGUgY2xpZW50IHRvIGZldGNo
IHRoZSBsYXRlc3QgY3Vlcy4KK30KKwordm9pZCBMb2FkYWJsZVRleHRUcmFja0ltcGw6OnRyYWNr
TG9hZFN0YXJ0ZWQoKQoreworICAgIG1fdGV4dFRyYWNrQ2xpZW50LT50cmFja0xvYWRTdGFydGVk
KCk7CisgICAgbV9yZWFkeVN0YXRlID0gVGV4dFRyYWNrOjpMT0FESU5HOworfQorCit2b2lkIExv
YWRhYmxlVGV4dFRyYWNrSW1wbDo6dHJhY2tMb2FkRXJyb3IoKQoreworICAgIG1fdGV4dFRyYWNr
Q2xpZW50LT50cmFja0xvYWRFcnJvcigpOworICAgIG1fcmVhZHlTdGF0ZSA9IFRleHRUcmFjazo6
RVJST1I7Cit9CisKK3ZvaWQgTG9hZGFibGVUZXh0VHJhY2tJbXBsOjp0cmFja0xvYWRDb21wbGV0
ZWQoKQoreworICAgIG1fcmVhZHlTdGF0ZSA9IFRleHRUcmFjazo6TE9BREVEOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRh
YmxlVGV4dFRyYWNrSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFj
a0ltcGwuaAppbmRleCBlYTgxNjc0MTUyYzFiZjAxZTgwYmUwZjViMDhmMmNlNDljOTg2OGFkLi43
MzQ2NTI1ODYyMmY4NmZmNGM1N2Q4YTVhM2U5Y2U5MmQ0ZjE3NDUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmgKQEAgLTM2LDM0ICszNiw1MCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFz
cyBUZXh0VHJhY2s7CiBjbGFzcyBUZXh0VHJhY2tDdWU7CiBjbGFzcyBUZXh0VHJhY2tDdWVMaXN0
OwogCi1jbGFzcyBMb2FkYWJsZVRleHRUcmFja0ltcGwgOiBwdWJsaWMgVGV4dFRyYWNrUHJpdmF0
ZUludGVyZmFjZSwgcHVibGljIEN1ZUxvYWRlciB7CitjbGFzcyBMb2FkYWJsZVRleHRUcmFja0Ns
aWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TG9hZGFibGVUZXh0VHJhY2tJ
bXBsPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25z
dCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCkKKyAgICB2aXJ0dWFsIHZvaWQgdHJh
Y2tMb2FkU3RhcnRlZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tMb2FkRXJyb3IoKSA9
IDA7Cit9OworCitjbGFzcyBMb2FkYWJsZVRleHRUcmFja0ltcGwgOiBwdWJsaWMgVGV4dFRyYWNr
UHJpdmF0ZUludGVyZmFjZSwgcHVibGljIEN1ZVBhcnNlckNsaWVudCwgcHVibGljIEN1ZUxvYWRl
ciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8TG9hZGFibGVUZXh0VHJhY2tJbXBs
PiBjcmVhdGUoTG9hZGFibGVUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgY29uc3QgU3RyaW5nJiBr
aW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlz
RGVmYXVsdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgTG9hZGFibGVUZXh0
VHJhY2tJbXBsKGtpbmQsIGxhYmVsLCBsYW5ndWFnZSwgaXNEZWZhdWx0KSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgTG9hZGFibGVUZXh0VHJhY2tJbXBsKGNsaWVudCwga2luZCwgbGFi
ZWwsIGxhbmd1YWdlLCBpc0RlZmF1bHQpKTsKICAgICB9CiAgICAgdmlydHVhbCB+TG9hZGFibGVU
ZXh0VHJhY2tJbXBsKCk7CiAKICAgICAvLyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlIG1ldGhv
ZHMKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gY3VlcygpIGNvbnN0
OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBhY3RpdmVDdWVzKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVh
bCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJik7CisKKyAgICAvLyBDdWVQ
YXJzZXJDbGllbnQgbWV0aG9kcworICAgIHZpcnR1YWwgdm9pZCBuZXdDdWVzUGFyc2VkKCk7Cisg
ICAgdmlydHVhbCB2b2lkIHRyYWNrTG9hZFN0YXJ0ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJh
Y2tMb2FkRXJyb3IoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tMb2FkQ29tcGxldGVkKCk7CiAK
ICAgICAvLyBDdWVMb2FkZXIgaW50ZXJmYWNlCiAgICAgdmlydHVhbCB2b2lkIG5ld0N1ZXNMb2Fk
ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZmV0Y2hOZXdlc3RDdWVzKFZlY3RvcjxUZXh0VHJhY2tD
dWUqPiYpOwogCiBwcml2YXRlOgotICAgIExvYWRhYmxlVGV4dFRyYWNrSW1wbChjb25zdCBTdHJp
bmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJv
b2wgaXNEZWZhdWx0KTsKKyAgICBMb2FkYWJsZVRleHRUcmFja0ltcGwoTG9hZGFibGVUZXh0VHJh
Y2tDbGllbnQqLCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0
IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNEZWZhdWx0KTsKIAotICAgIGJvb2wgbV9pc0RlZmF1
bHQ7CisgICAgTG9hZGFibGVUZXh0VHJhY2tDbGllbnQqIG1fdGV4dFRyYWNrQ2xpZW50OwogCiAg
ICAgQ3VlUGFyc2VyIG1fcGFyc2VyOwogICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBtX2N1
ZXM7CisgICAgCisgICAgYm9vbCBtX2lzRGVmYXVsdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmNwcAppbmRleCA2MzNlNThkZWU5ZDI5MTZjODgx
NWFjODk2ZDg1NTcxYWJlNDFhNGZjLi5lMzc3MTEyOGU4Y2JjNGU4N2Q1OGNkOWRlNWEyOWNkMGQw
YzI3NGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2suY3BwCkBAIC00MSwxOSArNDEsMTUgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBOdWxsVGV4dFRyYWNrUHJpdmF0ZSA6IHB1Ymxp
YyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBOdWxsVGV4dFRyYWNr
UHJpdmF0ZSgpOwotICAgIHZpcnR1YWwgfk51bGxUZXh0VHJhY2tQcml2YXRlKCk7Ci0KLSAgICAv
LyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlIG1ldGhvZHMKLSAgICB2aXJ0dWFsIFN0cmluZyBr
aW5kKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgU3RyaW5n
IGxhYmVsKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgU3Ry
aW5nIGxhbmd1YWdlKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotICAgIHZpcnR1
YWwgVGV4dFRyYWNrOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBUZXh0
VHJhY2s6Ok5PTkU7IH0KLSAgICB2aXJ0dWFsIFRleHRUcmFjazo6TW9kZSBtb2RlKCkgY29uc3Qg
eyByZXR1cm4gVGV4dFRyYWNrOjpPRkY7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TW9kZShUZXh0
VHJhY2s6Ok1vZGUpIHsgfQorICAgIE51bGxUZXh0VHJhY2tQcml2YXRlKCkKKyAgICAgICAgOiBU
ZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlKGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksIGVt
cHR5U3RyaW5nKCkpCisgICAgeworICAgIH0KKyAgICB2aXJ0dWFsIH5OdWxsVGV4dFRyYWNrUHJp
dmF0ZSgpIHsgfQorCisgICAgLy8gVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSBtZXRob2QKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gY3VlcygpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gYWN0aXZl
Q3VlcygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBT
dHJpbmcmKSB7IH0KIH07CiAKIHN0YXRpYyBQYXNzT3duUHRyPE51bGxUZXh0VHJhY2tQcml2YXRl
PiBjcmVhdGVOdWxsVGV4dFRyYWNrUHJpdmF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHRUcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNr
UHJpdmF0ZS5oCmluZGV4IDJjY2M3YWY5NTI4YWZlMWMzMjEyNzhhM2NmNTNiZDJiMTA4YTQyYTAu
LmU1Njc1MmM3ZGI3NjNmNzY5OWZiMGE1YjY0NTFjM2VjMGZjNzU0M2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGV4dFRyYWNrUHJpdmF0ZS5oCkBAIC0zNSw2ICszNSw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEN1ZUxvYWRlckNsaWVudDsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CiBjbGFzcyBUZXh0VHJhY2tDdWVMaXN0OwogCiBjbGFzcyBUZXh0VHJhY2tQcml2YXRl
SW50ZXJmYWNlIHsKQEAgLTYzLDkgKzY0LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gYWN0aXZlQ3VlcygpIGNvbnN0ID0gMDsKIAogICAgIC8v
IFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJlIG92ZXJyaWRkZW4gYnkgdHJhY2tzIHRoYXQgbG9h
ZCBjdWUgZGF0YSBmcm9tIGEgVVJMLgotICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmlu
ZyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNUeXBlKGNvbnN0IFN0
cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgU3Ry
aW5nIG1fa2luZDsKICAgICBTdHJpbmcgbV9sYWJlbDsKICAgICBTdHJpbmcgbV9sYW5ndWFnZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuY3BwCmluZGV4IDA2NmEx
ZWE2MDhhZmQ2MWVjMzRkM2RiYjFmNjA5MmRkZWI0YTE2NGUuLjQ4OTExNWFjZGZjM2U3NTg5NGJh
YWI1NzdiM2Y0YmI2Y2FhNWZkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RyYWNrL0N1ZVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2sv
Q3VlUGFyc2VyLmNwcApAQCAtMzQsNiArMzQsOSBAQAogCiAjaW5jbHVkZSAiQ3VlUGFyc2VyLmgi
CiAKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJUaHJlYWRhYmxlTG9h
ZGVyLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ3VlUGFyc2VyOjpDdWVQYXJzZXIoKQpA
QCAtNDMsMTkgKzQ2LDUyIEBAIEN1ZVBhcnNlcjo6Q3VlUGFyc2VyKCkKIAogQ3VlUGFyc2VyOjp+
Q3VlUGFyc2VyKCkKIHsKKyAgICBpZiAobV9sb2FkZXIpCisgICAgICAgIG1fbG9hZGVyLT5jYW5j
ZWwoKTsKKyAgICBtX2xvYWRlciA9IDA7Cit9CisKK3ZvaWQgQ3VlUGFyc2VyOjpsb2FkKGNvbnN0
IFN0cmluZyYgdXJsLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBDdWVQYXJzZXJD
bGllbnQqIGNsaWVudCkKK3sKKyAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOworCisg
ICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLnNlbmRMb2Fk
Q2FsbGJhY2tzID0gdHJ1ZTsKKyAgICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9
IEFsbG93Q3Jvc3NPcmlnaW5SZXF1ZXN0czsKKworICAgIG1fY2xpZW50ID0gY2xpZW50OworCisg
ICAgbV9sb2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoY29udGV4dCwgdGhpcywgcmVx
dWVzdCwgb3B0aW9ucyk7Cit9CisKK2Jvb2wgQ3VlUGFyc2VyOjpzdXBwb3J0c1R5cGUoY29uc3Qg
U3RyaW5nJiB1cmwpCit7CisgICAgLy8gRklYTUUoNjI4OTMpOiBjaGVjayBhZ2FpbnN0IGEgbGlz
dCBvZiBzdXBwb3J0ZWQgdHlwZXMKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQ3VlUGFy
c2VyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpCit7CisgICAg
Ly8gRklYTUUoNjI4OTMpOiBDcmVhdGUgbV9wcml2YXRlIGJhc2VkIG9uIE1JTUUgdHlwZS4KKyAg
ICBtX2NsaWVudC0+dHJhY2tMb2FkU3RhcnRlZCgpOworfQorCit2b2lkIEN1ZVBhcnNlcjo6ZGlk
UmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbikKK3sKKyAgICAvLyBGSVhNRSg2
Mjg5Myk6IFNlbmQgZGF0YSBhbG9uZyB0byBtX3ByaXZhdGUgcGFyc2VyIHRvIGJlIHBhcnNlZC4K
IH0KIAotdm9pZCBDdWVQYXJzZXI6OmxvYWQoY29uc3QgU3RyaW5nJikKK3ZvaWQgQ3VlUGFyc2Vy
OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcpCiB7Ci0gICAgLy8gRklYTUUoNjI4ODEp
OiBJbXBsZW1lbnQuCisgICAgbV9jbGllbnQtPnRyYWNrTG9hZENvbXBsZXRlZCgpOwogfQogCi12
b2lkIEN1ZVBhcnNlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCkKK3ZvaWQgQ3Vl
UGFyc2VyOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKQogewotICAgIC8vIEZJWE1FKDYy
ODgxKTogSW1wbGVtZW50LgorICAgIG1fY2xpZW50LT50cmFja0xvYWRFcnJvcigpOwogfQogCi12
b2lkIEN1ZVBhcnNlcjo6ZmV0Y2hQYXJzZWRDdWVzKFZlY3RvcjxQYXNzUmVmUHRyPFRleHRUcmFj
a0N1ZT4gPiYpCit2b2lkIEN1ZVBhcnNlcjo6ZmV0Y2hQYXJzZWRDdWVzKFZlY3RvcjxSZWZQdHI8
VGV4dFRyYWNrQ3VlPiA+JikKIHsKICAgICAvLyBGSVhNRSg2Mjg5Myk6IEltcGxlbWVudC4KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFyc2VyLmgKaW5kZXggNzdhNzlmNGIw
ZDc0ZGYxZTJiOTQ0ZWNlYjZjNmFmODI5NTdkNThiYi4uNDU3NDk2NjdiNjM5N2NmNjNjZWE5ODA2
ZjY4NjE3ZTkwNzZhM2YzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJh
Y2svQ3VlUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFy
c2VyLmgKQEAgLTQyLDIyICs0MiwzNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBUZXh0VHJhY2tDdWU7CiAKK2NsYXNzIEN1
ZVBhcnNlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIG5ld0N1ZXNQYXJzZWQo
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRyYWNrTG9hZFN0YXJ0ZWQoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHRyYWNrTG9hZEVycm9yKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0cmFja0xv
YWRDb21wbGV0ZWQoKSA9IDA7Cit9OworCiBjbGFzcyBDdWVQYXJzZXIgOiBwdWJsaWMgVGhyZWFk
YWJsZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgQ3VlUGFyc2VyKCk7CiAgICAgdmlydHVh
bCB+Q3VlUGFyc2VyKCk7CiAKICAgICAvLyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50IG1ldGhvZHMu
CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCk7CisgICAgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcpOworICAgIHZvaWQgZGlkRmFpbChjb25zdCBSZXNv
dXJjZUVycm9yJik7CiAKLSAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBm
ZXRjaFBhcnNlZEN1ZXMoVmVjdG9yPFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiA+Jik7CisgICAg
dm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBDdWVQYXJz
ZXJDbGllbnQqKTsKKyAgICBib29sIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICAK
KyAgICB2b2lkIGZldGNoUGFyc2VkQ3VlcyhWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4gPiYp
OwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBtX2xvYWRlcjsKICAg
ICBPd25QdHI8Q3VlUGFyc2VyUHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOworICAgIEN1ZVBh
cnNlckNsaWVudCogbV9jbGllbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggYWFhYTczMGYxOTRmNmJiODIxM2UyNTMz
YzM4YjgwYmM1MWM3MzcxNi4uMGZlZTQ3MDExOGNlMWI5YzA2OTg1NjMwMjI2ZTI2YTE4YzMzZjgx
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtODQsNiArODQsNyBAQAog
ICAgICAgJ0VOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkc9PChlbmFibGVfdG91Y2hfaWNvbl9sb2Fk
aW5nKScsCiAgICAgICAnRU5BQkxFX1Y4X1NDUklQVF9ERUJVR19TRVJWRVI9MScsCiAgICAgICAn
RU5BQkxFX1ZJREVPPTEnLAorICAgICAgJ0VOQUJMRV9WSURFT19UUkFDSz0xJywKICAgICAgICdF
TkFCTEVfV0VCX1NPQ0tFVFM9MScsCiAgICAgICAnRU5BQkxFX1dFQl9USU1JTkc9MScsCiAgICAg
ICAnRU5BQkxFX1dFQkdMPTEnLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98118</attachid>
            <date>2011-06-21 22:29:24 -0700</date>
            <delta_ts>2011-06-23 08:53:16 -0700</delta_ts>
            <desc>Adding tabs to GNUmakefile.list.am</desc>
            <filename>bug-62881-20110621222923.patch</filename>
            <type>text/plain</type>
            <size>20857</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzNjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNTc1NmI0OWRjNzJiNjQ3
ZWFhYzZkMmQwZTk0M2E0NWFiYTcyODEzLi5jNzlmMjk1NjA2MWE2NDFjYTI5OTQ3NGU2MDhhODM3
NGFjZTU5ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDYtMjEgIEFubmEg
Q2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIExvYWRpbmcgb3V0LW9mLWJhbmQgdGV4dCB0cmFjayBm
aWxlcyBmcm9tIDx0cmFjaz4uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02Mjg4MQorCisgICAgICAgIFVzZXMgdGhlIHNyYyBhdHRyaWJ1dGUgb3IgPHNv
dXJjZT4gY2hpbGRyZW4gdGFncyBvZiA8dHJhY2s+IHVybHMgdG8KKyAgICAgICAgbG9hZCBvdXQt
b2YtYmFuZCB0ZXh0IHRyYWNrIGZpbGVzIHVzaW5nIFRocmVhZGFibGVMb2FkZXIuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgZmVhdHVyZSBpcyBoaWRkZW4gYmVoaW5kIFZJREVPX1RS
QUNLIGZlYXR1cmUKKyAgICAgICAgZGVmaW5lLCB3aGljaCBpcyB0dXJuZWQgb2ZmLgorCisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5jcHA6CisgICAgICAgICogaHRt
bC9Mb2FkYWJsZVRleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvTG9hZGFibGVUZXh0VHJhY2tJ
bXBsLmNwcDoKKyAgICAgICAgKiBodG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oOgorICAgICAg
ICAqIGh0bWwvVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKiBodG1sL1RleHRUcmFja1ByaXZhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oOgorCiAyMDExLTA2LTIxICBWc2V2b2xvZCBWbGFzb3Yg
IDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRt
YW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAwYjlhOTBjNjAwODJmYzNlNTIw
MGEwMzZjMDVhNTVjODIxZTQ0YTJiLi4wNDA1NTVhNjNlYTI2YTM4ZGE1MzE3N2RiNDMwNmNhZGI4
MTQ4ODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE1OTQsNiArMTU5NCw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9u
VHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1s
L0N1ZUluZGV4LmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9DdWVJbmRleC5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVJbnB1dFR5cGUuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlw
ZS5jcHAgXApAQCAtMTgwMywxMSArMTgwNSwxOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxzTm9kZUxpc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRt
bC9MaW5rUmVsQXR0cmlidXRlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0
cmlidXRlLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2suY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmggXAorCVNvdXJjZS9XZWJD
b3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRt
bC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURv
Y3VtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmggXAogCVNv
dXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFcnJvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL01v
bnRoSW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5o
IFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL011dGFibGVUZXh0VHJhY2suY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9odG1sL011dGFibGVUZXh0VHJhY2suaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9N
dXRhYmxlVGV4dFRyYWNrSW1wbC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvTXV0YWJsZVRl
eHRUcmFja0ltcGwuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAgXApAQCAtMTkwMCw2ICsxOTEw
LDEzIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5w
dXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmggXAogCVNv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dE1ldHJpY3MuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0VHJhY2suY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRUcmFja0N1ZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dFRyYWNrQ3VlLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlTGlzdC5j
cHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlTGlzdC5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9odG1sL1RleHRUcmFja1ByaXZhdGUuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9U
aW1lSW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVGltZVJhbmdlcy5jcHAgXApAQCAtMjA4MCw2ICsyMDk3
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdp
blByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3Nz
T3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL0N1
ZUxvYWRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9DdWVMb2FkZXIuaCBcCiAJU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRUaW1pbmcuaCBcCkBAIC0yODI1LDYgKzI4NDQsOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZFRpbWVycy5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9UaW1lci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVy
LmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXJQcml2YXRlLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1RyZWVTaGFyZWQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMU3RyaW5n
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VVSUQuY3BwIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGMzODNjYzlmY2ZkZjA0M2VhNWNiNDVhMTg4
ZmQ3N2Y3ODQ2ZWQyZjEuLmZhYzlhOTIwN2IwMTgzYmI3MTIzOWI3MDJkNDZkMjhiM2QwNjNjNzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtODQsNiArODQs
MTAgQEAKICNpbmNsdWRlICJXaWRnZXQuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQorI2luY2x1ZGUgIkhUTUxUcmFja0VsZW1lbnQuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1l
c3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01OTAsNiArNTk0LDkgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkSW50ZXJuYWwoKQogICAgIH0KIAogICAgIHNlbGVjdE1l
ZGlhUmVzb3VyY2UoKTsKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgbG9hZFRleHRUcmFj
a3MoKTsKKyNlbmRpZgogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVz
b3VyY2UoKQpAQCAtNzY2LDYgKzc3MywxOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRS
ZXNvdXJjZShjb25zdCBLVVJMJiBpbml0aWFsVVJMLCBDb250ZW50VHlwZSYgY29udGVudAogICAg
ICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogfQogCisjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQordm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkVGV4dFRyYWNrcygpCit7Cisg
ICAgZm9yIChOb2RlKiBub2RlID0gZmlyc3RDaGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4
dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZSh0cmFja1RhZykpIHsK
KyAgICAgICAgICAgIEhUTUxUcmFja0VsZW1lbnQqIHRyYWNrID0gc3RhdGljX2Nhc3Q8SFRNTFRy
YWNrRWxlbWVudCo+KG5vZGUpOworICAgICAgICAgICAgdHJhY2stPmxvYWQoQWN0aXZlRE9NT2Jq
ZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgICAgICB9CisgICAgfQorfQorI2Vu
ZGlmCisKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNTYWZlVG9Mb2FkVVJMKGNvbnN0IEtVUkwm
IHVybCwgSW52YWxpZFNvdXJjZUFjdGlvbiBhY3Rpb25JZkludmFsaWQpCiB7CiAgICAgaWYgKCF1
cmwuaXNWYWxpZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4
IGUxZWM0NTk0MmIyNTk1NTBlOWNiMTgxZjNhY2NjNDEwOWM0OTJmZjIuLjExZjBjNGE0NjdjM2Ez
ZTBmNDJhZjZmYzE4NmE4N2E4MTRlNmQwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCkBAIC0zMDAsNiArMzAwLDExIEBAIHByaXZhdGU6CiAgICAgS1VSTCBzZWxlY3RO
ZXh0U291cmNlQ2hpbGQoQ29udGVudFR5cGUqLCBJbnZhbGlkU291cmNlQWN0aW9uKTsKICAgICB2
b2lkIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlKTsKIAorI2lm
IEVOQUJMRShWSURFT19UUkFDSykKKyAgICAvLyBsb2FkaW5nIHRyYWNrcworICAgIHZvaWQgbG9h
ZFRleHRUcmFja3MoKTsKKyNlbmRpZgorCiAgICAgLy8gVGhlc2UgImludGVybmFsIiBmdW5jdGlv
bnMgZG8gbm90IGNoZWNrIHVzZXIgZ2VzdHVyZSByZXN0cmljdGlvbnMuCiAgICAgdm9pZCBsb2Fk
SW50ZXJuYWwoKTsKICAgICB2b2lkIHBsYXlJbnRlcm5hbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFRyYWNrRWxlbWVudC5jcHAKaW5kZXggNjNmMjc4OGI4ODA2MGI4YmE3NjRmMjllYmVjZTZj
YjZkZGExZjQ0Ni4uMDE3NjVkN2VjZTEzYzU0M2M1MTU2YmRlMmNmMDlkYTY2N2IzZTkzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CisjaW5jbHVkZSAiSFRNTFNvdXJjZUVsZW1lbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAK
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC00NSw2ICs0NiwxMCBAQCBpbmxpbmUgSFRNTFRyYWNr
RWxlbWVudDo6SFRNTFRyYWNrRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudAogICAgIEFTU0VSVChoYXNUYWdOYW1lKHRyYWNrVGFnKSk7CiB9CiAKK0hUTUxUcmFj
a0VsZW1lbnQ6On5IVE1MVHJhY2tFbGVtZW50KCkKK3sKK30KKwogUGFzc1JlZlB0cjxIVE1MVHJh
Y2tFbGVtZW50PiBIVE1MVHJhY2tFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SFRNTFRyYWNrRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwpAQCAtMTIzLDYgKzEyOCwyNCBA
QCBib29sIEhUTUxUcmFja0VsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cmli
dXRlKSBjb25zdAogICAgIHJldHVybiBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBzcmNBdHRyOwogfQog
Cit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6OmxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKK3sKKyAgICBtX3RyYWNrID0gTG9hZGFibGVUZXh0VHJhY2s6OmNyZWF0ZShraW5kKCks
IGxhYmVsKCksIHNyY2xhbmcoKSwgaXNEZWZhdWx0KCkpOworCisgICAgaWYgKGhhc0F0dHJpYnV0
ZShzcmNBdHRyKSkKKyAgICAgICAgbV90cmFjay0+bG9hZChnZXROb25FbXB0eVVSTEF0dHJpYnV0
ZShzcmNBdHRyKSwgY29udGV4dCk7CisgICAgZWxzZQorICAgICAgICBmb3IgKE5vZGUqIG5vZGUg
PSBmaXJzdENoaWxkKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7CisgICAg
ICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFtZShzb3VyY2VUYWcpKSB7CisgICAgICAgICAgICAg
ICAgSFRNTFNvdXJjZUVsZW1lbnQqIHNvdXJjZSA9IHN0YXRpY19jYXN0PEhUTUxTb3VyY2VFbGVt
ZW50Kj4obm9kZSk7CisgICAgICAgICAgICAgICAgS1VSTCB1cmwgPSBzb3VyY2UtPmdldE5vbkVt
cHR5VVJMQXR0cmlidXRlKHNyY0F0dHIpOworICAgICAgICAgICAgICAgIGlmICghdXJsLmlzRW1w
dHkoKSAmJiBtX3RyYWNrLT5zdXBwb3J0c1R5cGUodXJsKSkKKyAgICAgICAgICAgICAgICAgICAg
bV90cmFjay0+bG9hZCh1cmwsIGNvbnRleHQpOworICAgICAgICAgICAgfQorICAgICAgICB9CisK
K30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRy
YWNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKaW5k
ZXggNDY5N2UwMmFiOGNlNzRiZDljMzg3N2IwNDI0Y2RkNmExOGQxOTA5YS4uOTQ2NTY0MmU1Njc1
NzU2MDhhNjQ2OGQzMDNmODRkYWQ2OGI3NWM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJh
Y2tFbGVtZW50LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAK
ICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsMTMgKzQ4LDE4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFNyY2xhbmcoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRMYWJlbChjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIHNldElzRGVmYXVsdChib29sKTsKKyAgICAKKyAgICB2b2lk
IGxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwogCiBwcml2YXRlOgogICAgIEhUTUxUcmFj
a0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+
SFRNTFRyYWNrRWxlbWVudCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUo
Ym9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoKTsKICAgICB2aXJ0dWFsIGJvb2wg
aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CisgICAgCisgICAgUmVmUHRyPExvYWRh
YmxlVGV4dFRyYWNrPiBtX3RyYWNrOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRh
YmxlVGV4dFRyYWNrLmNwcAppbmRleCBkYjlkYWExNDVjODNmNmM2YWJiY2YzMDUxN2Q3N2E0YzNl
YjlhZTE0Li5lM2ZkZDBjODIyMmJlNzk3YzhkMDcyOTY1MDFhNzdiNGE3Yjg2NjE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmNwcApAQCAtMzMsMTggKzMzLDMxIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTG9hZGFibGVUZXh0VHJhY2s6OkxvYWRhYmxlVGV4dFRy
YWNrKGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5n
JiBsYW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQpCiB7Ci0gICAgLy8gRklYTUUoNjI4ODEpOiBJbXBs
ZW1lbnQuCi0gICAgbV9wcml2YXRlID0gTG9hZGFibGVUZXh0VHJhY2tJbXBsOjpjcmVhdGUoa2lu
ZCwgbGFiZWwsIGxhbmd1YWdlLCBpc0RlZmF1bHQpOworICAgIG1fcHJpdmF0ZSA9IExvYWRhYmxl
VGV4dFRyYWNrSW1wbDo6Y3JlYXRlKHRoaXMsIGtpbmQsIGxhYmVsLCBsYW5ndWFnZSwgaXNEZWZh
dWx0KTsKIH0KIAogTG9hZGFibGVUZXh0VHJhY2s6On5Mb2FkYWJsZVRleHRUcmFjaygpCiB7Ci0g
ICAgLy8gRklYTUUoNjI4ODEpOiBJbXBsZW1lbnQuCiB9CiAKLXZvaWQgTG9hZGFibGVUZXh0VHJh
Y2s6OmxvYWQoY29uc3QgU3RyaW5nJikKK3ZvaWQgTG9hZGFibGVUZXh0VHJhY2s6OmxvYWQoY29u
c3QgU3RyaW5nJiB1cmwsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAg
Ly8gRklYTUUoNjI4ODEpOiBJbXBsZW1lbnQuCisgICAgbV9wcml2YXRlLT5sb2FkKHVybCwgY29u
dGV4dCk7Cit9CisKK2Jvb2wgTG9hZGFibGVUZXh0VHJhY2s6OnN1cHBvcnRzVHlwZShjb25zdCBT
dHJpbmcmIHVybCkKK3sKKyAgICByZXR1cm4gbV9wcml2YXRlLT5zdXBwb3J0c1R5cGUodXJsKTsK
K30KKwordm9pZCBMb2FkYWJsZVRleHRUcmFjazo6dHJhY2tMb2FkU3RhcnRlZCgpCit7CisgICAg
Ly8gRklYTUUoNjMwNDIpOiBEaXNwYXRjaCBsb2FkRXZlbnQuCit9CisKK3ZvaWQgTG9hZGFibGVU
ZXh0VHJhY2s6OnRyYWNrTG9hZEVycm9yKCkKK3sKKyAgICAvLyBGSVhNRSg2MzA0Mik6IERpc3Bh
dGNoIGVycm9yRXZlbnQuCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTG9hZGFibGVUZXh0VHJhY2suaAppbmRleCBiNzEyOTYyMWRhNjI4OTk4NjMxOGY3M2Vk
N2VjODI5YWNmODQyNzc0Li4wYjIzODc2OTFlOTkyZWNjYTI2NmMzMTMwZWFlZDQ4MzdjN2ZkNzdk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5oCkBAIC0zNSw3ICszNSw5
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTG9hZGFibGVUZXh0VHJhY2sgOiBw
dWJsaWMgVGV4dFRyYWNrIHsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNz
IExvYWRhYmxlVGV4dFRyYWNrIDogcHVibGljIFRleHRUcmFjaywgcHVibGljIExvYWRhYmxlVGV4
dFRyYWNrQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxMb2FkYWJsZVRl
eHRUcmFjaz4gY3JlYXRlKGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwg
Y29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQpCiAgICAgewpAQCAtNDMsNyAr
NDUsMTIgQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5Mb2FkYWJsZVRleHRUcmFjaygp
OwogCi0gICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgbG9hZChjb25zdCBT
dHJpbmcmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisgICAgYm9vbCBzdXBwb3J0c1R5cGUo
Y29uc3QgU3RyaW5nJik7CisgICAgCisgICAgLy8gTG9hZGFibGVUZXh0VHJhY2tDbGllbnQgbWV0
aG9kcworICAgIHZvaWQgdHJhY2tMb2FkU3RhcnRlZCgpOworICAgIHZvaWQgdHJhY2tMb2FkRXJy
b3IoKTsKIAogcHJpdmF0ZToKICAgICBMb2FkYWJsZVRleHRUcmFjayhjb25zdCBTdHJpbmcmIGtp
bmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNE
ZWZhdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJh
Y2tJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmNw
cAppbmRleCAxZmZjNjlkMmVmY2NiYzUyZjdiOTcyNzk3YWNhY2U4MjY3ODNlOWQwLi5kODkyMmIx
ZDllODY0Yzk0ZTA2MjhiM2M4MTg0MTA2ZWVlZTZkMmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuY3BwCkBAIC0zMyw4ICszMyw5IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotTG9hZGFibGVUZXh0VHJhY2tJbXBsOjpMb2FkYWJsZVRleHRUcmFj
a0ltcGwoY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJp
bmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCkKK0xvYWRhYmxlVGV4dFRyYWNrSW1wbDo6TG9h
ZGFibGVUZXh0VHJhY2tJbXBsKExvYWRhYmxlVGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIGNvbnN0
IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFn
ZSwgYm9vbCBpc0RlZmF1bHQpCiAgICAgOiBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlKGtpbmQs
IGxhYmVsLCBsYW5ndWFnZSkKKyAgICAsIG1fdGV4dFRyYWNrQ2xpZW50KGNsaWVudCkKICAgICAs
IG1faXNEZWZhdWx0KGlzRGVmYXVsdCkKIHsKIH0KQEAgLTYwLDE0ICs2MSw0MSBAQCB2b2lkIExv
YWRhYmxlVGV4dFRyYWNrSW1wbDo6ZmV0Y2hOZXdlc3RDdWVzKFZlY3RvcjxUZXh0VHJhY2tDdWUq
PiYpCiAgICAgLy8gRklYTUUoNjI4ODUpOiBJbXBsZW1lbnQuCiB9CiAKLXZvaWQgTG9hZGFibGVU
ZXh0VHJhY2tJbXBsOjpsb2FkKGNvbnN0IFN0cmluZyYpCit2b2lkIExvYWRhYmxlVGV4dFRyYWNr
SW1wbDo6bG9hZChjb25zdCBTdHJpbmcmIHVybCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCkKIHsKLSAgICAvLyBGSVhNRSg2Mjg4MSk6IEltcGxlbWVudC4KKyAgICBtX3BhcnNlci5s
b2FkKHVybCwgY29udGV4dCwgdGhpcyk7Cit9CisKK2Jvb2wgTG9hZGFibGVUZXh0VHJhY2tJbXBs
OjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgcmV0dXJuIG1fcGFyc2Vy
LnN1cHBvcnRzVHlwZSh1cmwpOworfQorCit2b2lkIExvYWRhYmxlVGV4dFRyYWNrSW1wbDo6bmV3
Q3Vlc1BhcnNlZCgpCit7CisgICAgLy8gRklYTUUoNjI4ODMpOiBGZXRjaCBuZXcgY3VlcyBmcm9t
IHBhcnNlciBhbmQgdGVtcG9yYXJpbHkgc3RvcmUgdG8gZ2l2ZSB0byBDdWVMb2FkZXJDbGllbnQg
d2hlbiBmZXRjaE5ld0N1ZXNGcm9tTG9hZGVyIGlzIGNhbGxlZC4KIH0KIAogdm9pZCBMb2FkYWJs
ZVRleHRUcmFja0ltcGw6Om5ld0N1ZXNMb2FkZWQoKQogewotICAgIC8vIEZJWE1FKDYyODgxKTog
SW1wbGVtZW50LgorICAgIC8vIEZJWE1FKDYyODg1KTogVGVsbCB0aGUgY2xpZW50IHRvIGZldGNo
IHRoZSBsYXRlc3QgY3Vlcy4KK30KKwordm9pZCBMb2FkYWJsZVRleHRUcmFja0ltcGw6OnRyYWNr
TG9hZFN0YXJ0ZWQoKQoreworICAgIG1fdGV4dFRyYWNrQ2xpZW50LT50cmFja0xvYWRTdGFydGVk
KCk7CisgICAgbV9yZWFkeVN0YXRlID0gVGV4dFRyYWNrOjpMT0FESU5HOworfQorCit2b2lkIExv
YWRhYmxlVGV4dFRyYWNrSW1wbDo6dHJhY2tMb2FkRXJyb3IoKQoreworICAgIG1fdGV4dFRyYWNr
Q2xpZW50LT50cmFja0xvYWRFcnJvcigpOworICAgIG1fcmVhZHlTdGF0ZSA9IFRleHRUcmFjazo6
RVJST1I7Cit9CisKK3ZvaWQgTG9hZGFibGVUZXh0VHJhY2tJbXBsOjp0cmFja0xvYWRDb21wbGV0
ZWQoKQoreworICAgIG1fcmVhZHlTdGF0ZSA9IFRleHRUcmFjazo6TE9BREVEOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRh
YmxlVGV4dFRyYWNrSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFj
a0ltcGwuaAppbmRleCBlYTgxNjc0MTUyYzFiZjAxZTgwYmUwZjViMDhmMmNlNDljOTg2OGFkLi43
MzQ2NTI1ODYyMmY4NmZmNGM1N2Q4YTVhM2U5Y2U5MmQ0ZjE3NDUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmgKQEAgLTM2LDM0ICszNiw1MCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFz
cyBUZXh0VHJhY2s7CiBjbGFzcyBUZXh0VHJhY2tDdWU7CiBjbGFzcyBUZXh0VHJhY2tDdWVMaXN0
OwogCi1jbGFzcyBMb2FkYWJsZVRleHRUcmFja0ltcGwgOiBwdWJsaWMgVGV4dFRyYWNrUHJpdmF0
ZUludGVyZmFjZSwgcHVibGljIEN1ZUxvYWRlciB7CitjbGFzcyBMb2FkYWJsZVRleHRUcmFja0Ns
aWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TG9hZGFibGVUZXh0VHJhY2tJ
bXBsPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25z
dCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCkKKyAgICB2aXJ0dWFsIHZvaWQgdHJh
Y2tMb2FkU3RhcnRlZCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tMb2FkRXJyb3IoKSA9
IDA7Cit9OworCitjbGFzcyBMb2FkYWJsZVRleHRUcmFja0ltcGwgOiBwdWJsaWMgVGV4dFRyYWNr
UHJpdmF0ZUludGVyZmFjZSwgcHVibGljIEN1ZVBhcnNlckNsaWVudCwgcHVibGljIEN1ZUxvYWRl
ciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8TG9hZGFibGVUZXh0VHJhY2tJbXBs
PiBjcmVhdGUoTG9hZGFibGVUZXh0VHJhY2tDbGllbnQqIGNsaWVudCwgY29uc3QgU3RyaW5nJiBr
aW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlz
RGVmYXVsdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgTG9hZGFibGVUZXh0
VHJhY2tJbXBsKGtpbmQsIGxhYmVsLCBsYW5ndWFnZSwgaXNEZWZhdWx0KSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgTG9hZGFibGVUZXh0VHJhY2tJbXBsKGNsaWVudCwga2luZCwgbGFi
ZWwsIGxhbmd1YWdlLCBpc0RlZmF1bHQpKTsKICAgICB9CiAgICAgdmlydHVhbCB+TG9hZGFibGVU
ZXh0VHJhY2tJbXBsKCk7CiAKICAgICAvLyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlIG1ldGhv
ZHMKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gY3VlcygpIGNvbnN0
OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBhY3RpdmVDdWVzKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVh
bCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAg
IHZpcnR1YWwgYm9vbCBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJik7CisKKyAgICAvLyBDdWVQ
YXJzZXJDbGllbnQgbWV0aG9kcworICAgIHZpcnR1YWwgdm9pZCBuZXdDdWVzUGFyc2VkKCk7Cisg
ICAgdmlydHVhbCB2b2lkIHRyYWNrTG9hZFN0YXJ0ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJh
Y2tMb2FkRXJyb3IoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tMb2FkQ29tcGxldGVkKCk7CiAK
ICAgICAvLyBDdWVMb2FkZXIgaW50ZXJmYWNlCiAgICAgdmlydHVhbCB2b2lkIG5ld0N1ZXNMb2Fk
ZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZmV0Y2hOZXdlc3RDdWVzKFZlY3RvcjxUZXh0VHJhY2tD
dWUqPiYpOwogCiBwcml2YXRlOgotICAgIExvYWRhYmxlVGV4dFRyYWNrSW1wbChjb25zdCBTdHJp
bmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJv
b2wgaXNEZWZhdWx0KTsKKyAgICBMb2FkYWJsZVRleHRUcmFja0ltcGwoTG9hZGFibGVUZXh0VHJh
Y2tDbGllbnQqLCBjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0
IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNEZWZhdWx0KTsKIAotICAgIGJvb2wgbV9pc0RlZmF1
bHQ7CisgICAgTG9hZGFibGVUZXh0VHJhY2tDbGllbnQqIG1fdGV4dFRyYWNrQ2xpZW50OwogCiAg
ICAgQ3VlUGFyc2VyIG1fcGFyc2VyOwogICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBtX2N1
ZXM7CisgICAgCisgICAgYm9vbCBtX2lzRGVmYXVsdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmNwcAppbmRleCA2MzNlNThkZWU5ZDI5MTZjODgx
NWFjODk2ZDg1NTcxYWJlNDFhNGZjLi5lMzc3MTEyOGU4Y2JjNGU4N2Q1OGNkOWRlNWEyOWNkMGQw
YzI3NGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2suY3BwCkBAIC00MSwxOSArNDEsMTUgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBOdWxsVGV4dFRyYWNrUHJpdmF0ZSA6IHB1Ymxp
YyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBOdWxsVGV4dFRyYWNr
UHJpdmF0ZSgpOwotICAgIHZpcnR1YWwgfk51bGxUZXh0VHJhY2tQcml2YXRlKCk7Ci0KLSAgICAv
LyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlIG1ldGhvZHMKLSAgICB2aXJ0dWFsIFN0cmluZyBr
aW5kKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgU3RyaW5n
IGxhYmVsKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgU3Ry
aW5nIGxhbmd1YWdlKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotICAgIHZpcnR1
YWwgVGV4dFRyYWNrOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBUZXh0
VHJhY2s6Ok5PTkU7IH0KLSAgICB2aXJ0dWFsIFRleHRUcmFjazo6TW9kZSBtb2RlKCkgY29uc3Qg
eyByZXR1cm4gVGV4dFRyYWNrOjpPRkY7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TW9kZShUZXh0
VHJhY2s6Ok1vZGUpIHsgfQorICAgIE51bGxUZXh0VHJhY2tQcml2YXRlKCkKKyAgICAgICAgOiBU
ZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlKGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksIGVt
cHR5U3RyaW5nKCkpCisgICAgeworICAgIH0KKyAgICB2aXJ0dWFsIH5OdWxsVGV4dFRyYWNrUHJp
dmF0ZSgpIHsgfQorCisgICAgLy8gVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSBtZXRob2QKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gY3VlcygpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gYWN0aXZl
Q3VlcygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBT
dHJpbmcmKSB7IH0KIH07CiAKIHN0YXRpYyBQYXNzT3duUHRyPE51bGxUZXh0VHJhY2tQcml2YXRl
PiBjcmVhdGVOdWxsVGV4dFRyYWNrUHJpdmF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHRUcmFja1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNr
UHJpdmF0ZS5oCmluZGV4IDJjY2M3YWY5NTI4YWZlMWMzMjEyNzhhM2NmNTNiZDJiMTA4YTQyYTAu
LmU1Njc1MmM3ZGI3NjNmNzY5OWZiMGE1YjY0NTFjM2VjMGZjNzU0M2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGV4dFRyYWNrUHJpdmF0ZS5oCkBAIC0zNSw2ICszNSw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEN1ZUxvYWRlckNsaWVudDsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CiBjbGFzcyBUZXh0VHJhY2tDdWVMaXN0OwogCiBjbGFzcyBUZXh0VHJhY2tQcml2YXRl
SW50ZXJmYWNlIHsKQEAgLTYzLDkgKzY0LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gYWN0aXZlQ3VlcygpIGNvbnN0ID0gMDsKIAogICAgIC8v
IFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJlIG92ZXJyaWRkZW4gYnkgdHJhY2tzIHRoYXQgbG9h
ZCBjdWUgZGF0YSBmcm9tIGEgVVJMLgotICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmlu
ZyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNUeXBlKGNvbnN0IFN0
cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgU3Ry
aW5nIG1fa2luZDsKICAgICBTdHJpbmcgbV9sYWJlbDsKICAgICBTdHJpbmcgbV9sYW5ndWFnZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuY3BwCmluZGV4IDA2NmEx
ZWE2MDhhZmQ2MWVjMzRkM2RiYjFmNjA5MmRkZWI0YTE2NGUuLjQ4OTExNWFjZGZjM2U3NTg5NGJh
YWI1NzdiM2Y0YmI2Y2FhNWZkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RyYWNrL0N1ZVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2sv
Q3VlUGFyc2VyLmNwcApAQCAtMzQsNiArMzQsOSBAQAogCiAjaW5jbHVkZSAiQ3VlUGFyc2VyLmgi
CiAKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJUaHJlYWRhYmxlTG9h
ZGVyLmgiCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQ3VlUGFyc2VyOjpDdWVQYXJzZXIoKQpA
QCAtNDMsMTkgKzQ2LDUyIEBAIEN1ZVBhcnNlcjo6Q3VlUGFyc2VyKCkKIAogQ3VlUGFyc2VyOjp+
Q3VlUGFyc2VyKCkKIHsKKyAgICBpZiAobV9sb2FkZXIpCisgICAgICAgIG1fbG9hZGVyLT5jYW5j
ZWwoKTsKKyAgICBtX2xvYWRlciA9IDA7Cit9CisKK3ZvaWQgQ3VlUGFyc2VyOjpsb2FkKGNvbnN0
IFN0cmluZyYgdXJsLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBDdWVQYXJzZXJD
bGllbnQqIGNsaWVudCkKK3sKKyAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOworCisg
ICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9uczsKKyAgICBvcHRpb25zLnNlbmRMb2Fk
Q2FsbGJhY2tzID0gdHJ1ZTsKKyAgICBvcHRpb25zLmNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9
IEFsbG93Q3Jvc3NPcmlnaW5SZXF1ZXN0czsKKworICAgIG1fY2xpZW50ID0gY2xpZW50OworCisg
ICAgbV9sb2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUoY29udGV4dCwgdGhpcywgcmVx
dWVzdCwgb3B0aW9ucyk7Cit9CisKK2Jvb2wgQ3VlUGFyc2VyOjpzdXBwb3J0c1R5cGUoY29uc3Qg
U3RyaW5nJiB1cmwpCit7CisgICAgLy8gRklYTUUoNjI4OTMpOiBjaGVjayBhZ2FpbnN0IGEgbGlz
dCBvZiBzdXBwb3J0ZWQgdHlwZXMKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQ3VlUGFy
c2VyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpCit7CisgICAg
Ly8gRklYTUUoNjI4OTMpOiBDcmVhdGUgbV9wcml2YXRlIGJhc2VkIG9uIE1JTUUgdHlwZS4KKyAg
ICBtX2NsaWVudC0+dHJhY2tMb2FkU3RhcnRlZCgpOworfQorCit2b2lkIEN1ZVBhcnNlcjo6ZGlk
UmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbikKK3sKKyAgICAvLyBGSVhNRSg2
Mjg5Myk6IFNlbmQgZGF0YSBhbG9uZyB0byBtX3ByaXZhdGUgcGFyc2VyIHRvIGJlIHBhcnNlZC4K
IH0KIAotdm9pZCBDdWVQYXJzZXI6OmxvYWQoY29uc3QgU3RyaW5nJikKK3ZvaWQgQ3VlUGFyc2Vy
OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcpCiB7Ci0gICAgLy8gRklYTUUoNjI4ODEp
OiBJbXBsZW1lbnQuCisgICAgbV9jbGllbnQtPnRyYWNrTG9hZENvbXBsZXRlZCgpOwogfQogCi12
b2lkIEN1ZVBhcnNlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCkKK3ZvaWQgQ3Vl
UGFyc2VyOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKQogewotICAgIC8vIEZJWE1FKDYy
ODgxKTogSW1wbGVtZW50LgorICAgIG1fY2xpZW50LT50cmFja0xvYWRFcnJvcigpOwogfQogCi12
b2lkIEN1ZVBhcnNlcjo6ZmV0Y2hQYXJzZWRDdWVzKFZlY3RvcjxQYXNzUmVmUHRyPFRleHRUcmFj
a0N1ZT4gPiYpCit2b2lkIEN1ZVBhcnNlcjo6ZmV0Y2hQYXJzZWRDdWVzKFZlY3RvcjxSZWZQdHI8
VGV4dFRyYWNrQ3VlPiA+JikKIHsKICAgICAvLyBGSVhNRSg2Mjg5Myk6IEltcGxlbWVudC4KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFyc2VyLmgKaW5kZXggNzdhNzlmNGIw
ZDc0ZGYxZTJiOTQ0ZWNlYjZjNmFmODI5NTdkNThiYi4uNDU3NDk2NjdiNjM5N2NmNjNjZWE5ODA2
ZjY4NjE3ZTkwNzZhM2YzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJh
Y2svQ3VlUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFy
c2VyLmgKQEAgLTQyLDIyICs0MiwzNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBUZXh0VHJhY2tDdWU7CiAKK2NsYXNzIEN1
ZVBhcnNlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIG5ld0N1ZXNQYXJzZWQo
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRyYWNrTG9hZFN0YXJ0ZWQoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHRyYWNrTG9hZEVycm9yKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0cmFja0xv
YWRDb21wbGV0ZWQoKSA9IDA7Cit9OworCiBjbGFzcyBDdWVQYXJzZXIgOiBwdWJsaWMgVGhyZWFk
YWJsZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgQ3VlUGFyc2VyKCk7CiAgICAgdmlydHVh
bCB+Q3VlUGFyc2VyKCk7CiAKICAgICAvLyBUaHJlYWRhYmxlTG9hZGVyQ2xpZW50IG1ldGhvZHMu
CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGludCk7CisgICAgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcpOworICAgIHZvaWQgZGlkRmFpbChjb25zdCBSZXNv
dXJjZUVycm9yJik7CiAKLSAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBm
ZXRjaFBhcnNlZEN1ZXMoVmVjdG9yPFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlPiA+Jik7CisgICAg
dm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBDdWVQYXJz
ZXJDbGllbnQqKTsKKyAgICBib29sIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICAK
KyAgICB2b2lkIGZldGNoUGFyc2VkQ3VlcyhWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4gPiYp
OwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBtX2xvYWRlcjsKICAg
ICBPd25QdHI8Q3VlUGFyc2VyUHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOworICAgIEN1ZVBh
cnNlckNsaWVudCogbV9jbGllbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98121</attachid>
            <date>2011-06-21 22:46:06 -0700</date>
            <delta_ts>2011-06-24 13:44:10 -0700</delta_ts>
            <desc>Adding &quot;Source/WebCore/platform/track \&quot; to GNUmakefile.am</desc>
            <filename>bug-62881-20110621224605.patch</filename>
            <type>text/plain</type>
            <size>21457</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzNjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNTc1NmI0OWRjNzJiNjQ3
ZWFhYzZkMmQwZTk0M2E0NWFiYTcyODEzLi5jNzlmMjk1NjA2MWE2NDFjYTI5OTQ3NGU2MDhhODM3
NGFjZTU5ZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMDYtMjEgIEFubmEg
Q2F2ZW5kZXIgIDxhbm5hY2NAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIExvYWRpbmcgb3V0LW9mLWJhbmQgdGV4dCB0cmFjayBm
aWxlcyBmcm9tIDx0cmFjaz4uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD02Mjg4MQorCisgICAgICAgIFVzZXMgdGhlIHNyYyBhdHRyaWJ1dGUgb3IgPHNv
dXJjZT4gY2hpbGRyZW4gdGFncyBvZiA8dHJhY2s+IHVybHMgdG8KKyAgICAgICAgbG9hZCBvdXQt
b2YtYmFuZCB0ZXh0IHRyYWNrIGZpbGVzIHVzaW5nIFRocmVhZGFibGVMb2FkZXIuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgZmVhdHVyZSBpcyBoaWRkZW4gYmVoaW5kIFZJREVPX1RS
QUNLIGZlYXR1cmUKKyAgICAgICAgZGVmaW5lLCB3aGljaCBpcyB0dXJuZWQgb2ZmLgorCisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAgICAgICAqIGh0
bWwvSFRNTFRyYWNrRWxlbWVudC5jcHA6CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5jcHA6CisgICAgICAgICogaHRt
bC9Mb2FkYWJsZVRleHRUcmFjay5oOgorICAgICAgICAqIGh0bWwvTG9hZGFibGVUZXh0VHJhY2tJ
bXBsLmNwcDoKKyAgICAgICAgKiBodG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oOgorICAgICAg
ICAqIGh0bWwvVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKiBodG1sL1RleHRUcmFja1ByaXZhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oOgorCiAyMDExLTA2LTIxICBWc2V2b2xvZCBWbGFzb3Yg
IDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRt
YW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IGFiY2VlMTZmMTczZjAyZWQwYTZjOTFjZTA3YTQ1
NjUxZTE4MjY5NzUuLjU4MGQ1NjU5NGZkYTQwNTg5NThmOTQ0MTI0ZGM5OTUyMmE1ZWU5Y2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCkBAIC02Myw2ICs2Myw3IEBAIHdlYmNvcmVfY3BwZmxhZ3MgKz0g
XAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbCBcCiAJLUkkKHNyY2Rp
cikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dCBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC90cmFuc2NvZGVyIFwKKwktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90cmFjayBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zIFwKIAktSSQoc3Jj
ZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQppbmRleCAwYjlhOTBjNjAwODJmYzNlNTIwMGEwMzZjMDVhNTVjODIxZTQ0YTJiLi4wNDA1
NTVhNjNlYTI2YTM4ZGE1MzE3N2RiNDMwNmNhZGI4MTQ4ODQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KQEAgLTE1OTQsNiArMTU5NCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0
VHlwZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0N1ZUluZGV4LmNwcCBcCisJU291cmNlL1dl
YkNvcmUvaHRtbC9DdWVJbmRleC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5
cGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAgXApAQCAtMTgwMywxMSArMTgwNSwx
OSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTGFiZWxzTm9k
ZUxpc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmggXAorCVNvdXJjZS9XZWJDb3Jl
L2h0bWwvTG9hZGFibGVUZXh0VHJhY2suY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRh
YmxlVGV4dFRyYWNrLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJ
bXBsLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuaCBc
CiAJU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYURvY3VtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFFcnJv
ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL011
dGFibGVUZXh0VHJhY2suY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL011dGFibGVUZXh0VHJh
Y2suaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9NdXRhYmxlVGV4dFRyYWNrSW1wbC5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2h0bWwvTXV0YWJsZVRleHRUcmFja0ltcGwuaCBcCiAJU291cmNlL1dl
YkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL051
bWJlcklucHV0VHlwZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9DU1NQcmVsb2Fk
U2Nhbm5lci5jcHAgXApAQCAtMTkwMCw2ICsxOTEwLDEzIEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0SW5wdXRUeXBlLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dE1ldHJp
Y3MuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2suY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9odG1sL1RleHRUcmFjay5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFja0N1
ZS5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlLmggXAorCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dFRyYWNrQ3VlTGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwv
VGV4dFRyYWNrQ3VlTGlzdC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFja1ByaXZh
dGUuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZVJhbmdlcy5jcHAgXApAQCAtMjA4MCw2ICsyMDk3LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmggXAogCVNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUu
aCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL0N1ZUxvYWRlci5jcHAgXAorCVNvdXJjZS9XZWJD
b3JlL2xvYWRlci9DdWVMb2FkZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmggXAog
CVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRUaW1pbmcuaCBcCkBAIC0yODI1LDYg
KzI4NDQsOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1RocmVhZFRpbWVycy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RyYWNrL0N1ZVBhcnNlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90cmFjay9D
dWVQYXJzZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXJQ
cml2YXRlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RyZWVTaGFyZWQuaCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJMU3RyaW5nLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1VVSUQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmlu
ZGV4IGMzODNjYzlmY2ZkZjA0M2VhNWNiNDVhMTg4ZmQ3N2Y3ODQ2ZWQyZjEuLmZhYzlhOTIwN2Iw
MTgzYmI3MTIzOWI3MDJkNDZkMjhiM2QwNjNjNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcApAQCAtODQsNiArODQsMTAgQEAKICNpbmNsdWRlICJXaWRnZXQuaCIK
ICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorI2luY2x1ZGUgIkhUTUxUcmFja0Vs
ZW1lbnQuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC01OTAsNiArNTk0LDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkSW50
ZXJuYWwoKQogICAgIH0KIAogICAgIHNlbGVjdE1lZGlhUmVzb3VyY2UoKTsKKyNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCisgICAgbG9hZFRleHRUcmFja3MoKTsKKyNlbmRpZgogfQogCiB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnNlbGVjdE1lZGlhUmVzb3VyY2UoKQpAQCAtNzY2LDYgKzc3MywxOCBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZShjb25zdCBLVVJMJiBpbml0aWFs
VVJMLCBDb250ZW50VHlwZSYgY29udGVudAogICAgICAgICByZW5kZXJlcigpLT51cGRhdGVGcm9t
RWxlbWVudCgpOwogfQogCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQordm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojpsb2FkVGV4dFRyYWNrcygpCit7CisgICAgZm9yIChOb2RlKiBub2RlID0gZmlyc3RD
aGlsZCgpOyBub2RlOyBub2RlID0gbm9kZS0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAo
bm9kZS0+aGFzVGFnTmFtZSh0cmFja1RhZykpIHsKKyAgICAgICAgICAgIEhUTUxUcmFja0VsZW1l
bnQqIHRyYWNrID0gc3RhdGljX2Nhc3Q8SFRNTFRyYWNrRWxlbWVudCo+KG5vZGUpOworICAgICAg
ICAgICAgdHJhY2stPmxvYWQoQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOworICAgICAgICB9CisgICAgfQorfQorI2VuZGlmCisKIGJvb2wgSFRNTE1lZGlhRWxlbWVu
dDo6aXNTYWZlVG9Mb2FkVVJMKGNvbnN0IEtVUkwmIHVybCwgSW52YWxpZFNvdXJjZUFjdGlvbiBh
Y3Rpb25JZkludmFsaWQpCiB7CiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGUxZWM0NTk0MmIyNTk1NTBlOWNiMTgxZjNh
Y2NjNDEwOWM0OTJmZjIuLjExZjBjNGE0NjdjM2EzZTBmNDJhZjZmYzE4NmE4N2E4MTRlNmQwZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC0zMDAsNiArMzAwLDEx
IEBAIHByaXZhdGU6CiAgICAgS1VSTCBzZWxlY3ROZXh0U291cmNlQ2hpbGQoQ29udGVudFR5cGUq
LCBJbnZhbGlkU291cmNlQWN0aW9uKTsKICAgICB2b2lkIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRp
YVBsYXllcjo6TmV0d29ya1N0YXRlKTsKIAorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICAv
LyBsb2FkaW5nIHRyYWNrcworICAgIHZvaWQgbG9hZFRleHRUcmFja3MoKTsKKyNlbmRpZgorCiAg
ICAgLy8gVGhlc2UgImludGVybmFsIiBmdW5jdGlvbnMgZG8gbm90IGNoZWNrIHVzZXIgZ2VzdHVy
ZSByZXN0cmljdGlvbnMuCiAgICAgdm9pZCBsb2FkSW50ZXJuYWwoKTsKICAgICB2b2lkIHBsYXlJ
bnRlcm5hbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKaW5kZXgg
NjNmMjc4OGI4ODA2MGI4YmE3NjRmMjllYmVjZTZjYjZkZGExZjQ0Ni4uMDE3NjVkN2VjZTEzYzU0
M2M1MTU2YmRlMmNmMDlkYTY2N2IzZTkzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVHJhY2tFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFj
a0VsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJIVE1MTWVkaWFFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFNvdXJjZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC00
NSw2ICs0NiwxMCBAQCBpbmxpbmUgSFRNTFRyYWNrRWxlbWVudDo6SFRNTFRyYWNrRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudAogICAgIEFTU0VSVChoYXNUYWdO
YW1lKHRyYWNrVGFnKSk7CiB9CiAKK0hUTUxUcmFja0VsZW1lbnQ6On5IVE1MVHJhY2tFbGVtZW50
KCkKK3sKK30KKwogUGFzc1JlZlB0cjxIVE1MVHJhY2tFbGVtZW50PiBIVE1MVHJhY2tFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTFRyYWNrRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCkpOwpAQCAtMTIzLDYgKzEyOCwyNCBAQCBib29sIEhUTUxUcmFja0VsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cmlidXRlKSBjb25zdAogICAgIHJldHVybiBhdHRy
aWJ1dGUtPm5hbWUoKSA9PSBzcmNBdHRyOwogfQogCit2b2lkIEhUTUxUcmFja0VsZW1lbnQ6Omxv
YWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBtX3RyYWNrID0gTG9h
ZGFibGVUZXh0VHJhY2s6OmNyZWF0ZShraW5kKCksIGxhYmVsKCksIHNyY2xhbmcoKSwgaXNEZWZh
dWx0KCkpOworCisgICAgaWYgKGhhc0F0dHJpYnV0ZShzcmNBdHRyKSkKKyAgICAgICAgbV90cmFj
ay0+bG9hZChnZXROb25FbXB0eVVSTEF0dHJpYnV0ZShzcmNBdHRyKSwgY29udGV4dCk7CisgICAg
ZWxzZQorICAgICAgICBmb3IgKE5vZGUqIG5vZGUgPSBmaXJzdENoaWxkKCk7IG5vZGU7IG5vZGUg
PSBub2RlLT5uZXh0U2libGluZygpKSB7CisgICAgICAgICAgICBpZiAobm9kZS0+aGFzVGFnTmFt
ZShzb3VyY2VUYWcpKSB7CisgICAgICAgICAgICAgICAgSFRNTFNvdXJjZUVsZW1lbnQqIHNvdXJj
ZSA9IHN0YXRpY19jYXN0PEhUTUxTb3VyY2VFbGVtZW50Kj4obm9kZSk7CisgICAgICAgICAgICAg
ICAgS1VSTCB1cmwgPSBzb3VyY2UtPmdldE5vbkVtcHR5VVJMQXR0cmlidXRlKHNyY0F0dHIpOwor
ICAgICAgICAgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSAmJiBtX3RyYWNrLT5zdXBwb3J0c1R5
cGUodXJsKSkKKyAgICAgICAgICAgICAgICAgICAgbV90cmFjay0+bG9hZCh1cmwsIGNvbnRleHQp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKaW5kZXggNDY5N2UwMmFiOGNlNzRiZDljMzg3N2Iw
NDI0Y2RkNmExOGQxOTA5YS4uOTQ2NTY0MmU1Njc1NzU2MDhhNjQ2OGQzMDNmODRkYWQ2OGI3NWM5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKQEAgLTI5LDYgKzI5LDcg
QEAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgor
I2luY2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtNDcsMTMgKzQ4LDE4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNyY2xhbmcoY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCBzZXRMYWJlbChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldElz
RGVmYXVsdChib29sKTsKKyAgICAKKyAgICB2b2lkIGxvYWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopOwogCiBwcml2YXRlOgogICAgIEhUTUxUcmFja0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+SFRNTFRyYWNrRWxlbWVudCgpOwogCiAgICAg
dmlydHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHdp
bGxSZW1vdmUoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikg
Y29uc3Q7CisgICAgCisgICAgUmVmUHRyPExvYWRhYmxlVGV4dFRyYWNrPiBtX3RyYWNrOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmNwcAppbmRleCBkYjlk
YWExNDVjODNmNmM2YWJiY2YzMDUxN2Q3N2E0YzNlYjlhZTE0Li5lM2ZkZDBjODIyMmJlNzk3Yzhk
MDcyOTY1MDFhNzdiNGE3Yjg2NjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xv
YWRhYmxlVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4
dFRyYWNrLmNwcApAQCAtMzMsMTggKzMzLDMxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTG9h
ZGFibGVUZXh0VHJhY2s6OkxvYWRhYmxlVGV4dFRyYWNrKGNvbnN0IFN0cmluZyYga2luZCwgY29u
c3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQp
CiB7Ci0gICAgLy8gRklYTUUoNjI4ODEpOiBJbXBsZW1lbnQuCi0gICAgbV9wcml2YXRlID0gTG9h
ZGFibGVUZXh0VHJhY2tJbXBsOjpjcmVhdGUoa2luZCwgbGFiZWwsIGxhbmd1YWdlLCBpc0RlZmF1
bHQpOworICAgIG1fcHJpdmF0ZSA9IExvYWRhYmxlVGV4dFRyYWNrSW1wbDo6Y3JlYXRlKHRoaXMs
IGtpbmQsIGxhYmVsLCBsYW5ndWFnZSwgaXNEZWZhdWx0KTsKIH0KIAogTG9hZGFibGVUZXh0VHJh
Y2s6On5Mb2FkYWJsZVRleHRUcmFjaygpCiB7Ci0gICAgLy8gRklYTUUoNjI4ODEpOiBJbXBsZW1l
bnQuCiB9CiAKLXZvaWQgTG9hZGFibGVUZXh0VHJhY2s6OmxvYWQoY29uc3QgU3RyaW5nJikKK3Zv
aWQgTG9hZGFibGVUZXh0VHJhY2s6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7Ci0gICAgLy8gRklYTUUoNjI4ODEpOiBJbXBsZW1lbnQu
CisgICAgbV9wcml2YXRlLT5sb2FkKHVybCwgY29udGV4dCk7Cit9CisKK2Jvb2wgTG9hZGFibGVU
ZXh0VHJhY2s6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICByZXR1cm4g
bV9wcml2YXRlLT5zdXBwb3J0c1R5cGUodXJsKTsKK30KKwordm9pZCBMb2FkYWJsZVRleHRUcmFj
azo6dHJhY2tMb2FkU3RhcnRlZCgpCit7CisgICAgLy8gRklYTUUoNjMwNDIpOiBEaXNwYXRjaCBs
b2FkRXZlbnQuCit9CisKK3ZvaWQgTG9hZGFibGVUZXh0VHJhY2s6OnRyYWNrTG9hZEVycm9yKCkK
K3sKKyAgICAvLyBGSVhNRSg2MzA0Mik6IERpc3BhdGNoIGVycm9yRXZlbnQuCiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFi
bGVUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2suaApp
bmRleCBiNzEyOTYyMWRhNjI4OTk4NjMxOGY3M2VkN2VjODI5YWNmODQyNzc0Li4wYjIzODc2OTFl
OTkyZWNjYTI2NmMzMTMwZWFlZDQ4MzdjN2ZkNzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2Fk
YWJsZVRleHRUcmFjay5oCkBAIC0zNSw3ICszNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgTG9hZGFibGVUZXh0VHJhY2sgOiBwdWJsaWMgVGV4dFRyYWNrIHsKK2NsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CisKK2NsYXNzIExvYWRhYmxlVGV4dFRyYWNrIDogcHVibGlj
IFRleHRUcmFjaywgcHVibGljIExvYWRhYmxlVGV4dFRyYWNrQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxMb2FkYWJsZVRleHRUcmFjaz4gY3JlYXRlKGNvbnN0IFN0cmlu
ZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgYm9v
bCBpc0RlZmF1bHQpCiAgICAgewpAQCAtNDMsNyArNDUsMTIgQEAgcHVibGljOgogICAgIH0KICAg
ICB2aXJ0dWFsIH5Mb2FkYWJsZVRleHRUcmFjaygpOwogCi0gICAgdm9pZCBsb2FkKGNvbnN0IFN0
cmluZyYpOworICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kik7CisgICAgYm9vbCBzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJik7CisgICAgCisgICAg
Ly8gTG9hZGFibGVUZXh0VHJhY2tDbGllbnQgbWV0aG9kcworICAgIHZvaWQgdHJhY2tMb2FkU3Rh
cnRlZCgpOworICAgIHZvaWQgdHJhY2tMb2FkRXJyb3IoKTsKIAogcHJpdmF0ZToKICAgICBMb2Fk
YWJsZVRleHRUcmFjayhjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNv
bnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNEZWZhdWx0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmNwcAppbmRleCAxZmZjNjlkMmVmY2NiYzUyZjdi
OTcyNzk3YWNhY2U4MjY3ODNlOWQwLi5kODkyMmIxZDllODY0Yzk0ZTA2MjhiM2M4MTg0MTA2ZWVl
ZTZkMmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNr
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwu
Y3BwCkBAIC0zMyw4ICszMyw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTG9hZGFibGVU
ZXh0VHJhY2tJbXBsOjpMb2FkYWJsZVRleHRUcmFja0ltcGwoY29uc3QgU3RyaW5nJiBraW5kLCBj
b25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVs
dCkKK0xvYWRhYmxlVGV4dFRyYWNrSW1wbDo6TG9hZGFibGVUZXh0VHJhY2tJbXBsKExvYWRhYmxl
VGV4dFRyYWNrQ2xpZW50KiBjbGllbnQsIGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5n
JiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgYm9vbCBpc0RlZmF1bHQpCiAgICAgOiBU
ZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlKGtpbmQsIGxhYmVsLCBsYW5ndWFnZSkKKyAgICAsIG1f
dGV4dFRyYWNrQ2xpZW50KGNsaWVudCkKICAgICAsIG1faXNEZWZhdWx0KGlzRGVmYXVsdCkKIHsK
IH0KQEAgLTYwLDE0ICs2MSw0MSBAQCB2b2lkIExvYWRhYmxlVGV4dFRyYWNrSW1wbDo6ZmV0Y2hO
ZXdlc3RDdWVzKFZlY3RvcjxUZXh0VHJhY2tDdWUqPiYpCiAgICAgLy8gRklYTUUoNjI4ODUpOiBJ
bXBsZW1lbnQuCiB9CiAKLXZvaWQgTG9hZGFibGVUZXh0VHJhY2tJbXBsOjpsb2FkKGNvbnN0IFN0
cmluZyYpCit2b2lkIExvYWRhYmxlVGV4dFRyYWNrSW1wbDo6bG9hZChjb25zdCBTdHJpbmcmIHVy
bCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsKLSAgICAvLyBGSVhNRSg2Mjg4
MSk6IEltcGxlbWVudC4KKyAgICBtX3BhcnNlci5sb2FkKHVybCwgY29udGV4dCwgdGhpcyk7Cit9
CisKK2Jvb2wgTG9hZGFibGVUZXh0VHJhY2tJbXBsOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5n
JiB1cmwpCit7CisgICAgcmV0dXJuIG1fcGFyc2VyLnN1cHBvcnRzVHlwZSh1cmwpOworfQorCit2
b2lkIExvYWRhYmxlVGV4dFRyYWNrSW1wbDo6bmV3Q3Vlc1BhcnNlZCgpCit7CisgICAgLy8gRklY
TUUoNjI4ODMpOiBGZXRjaCBuZXcgY3VlcyBmcm9tIHBhcnNlciBhbmQgdGVtcG9yYXJpbHkgc3Rv
cmUgdG8gZ2l2ZSB0byBDdWVMb2FkZXJDbGllbnQgd2hlbiBmZXRjaE5ld0N1ZXNGcm9tTG9hZGVy
IGlzIGNhbGxlZC4KIH0KIAogdm9pZCBMb2FkYWJsZVRleHRUcmFja0ltcGw6Om5ld0N1ZXNMb2Fk
ZWQoKQogewotICAgIC8vIEZJWE1FKDYyODgxKTogSW1wbGVtZW50LgorICAgIC8vIEZJWE1FKDYy
ODg1KTogVGVsbCB0aGUgY2xpZW50IHRvIGZldGNoIHRoZSBsYXRlc3QgY3Vlcy4KK30KKwordm9p
ZCBMb2FkYWJsZVRleHRUcmFja0ltcGw6OnRyYWNrTG9hZFN0YXJ0ZWQoKQoreworICAgIG1fdGV4
dFRyYWNrQ2xpZW50LT50cmFja0xvYWRTdGFydGVkKCk7CisgICAgbV9yZWFkeVN0YXRlID0gVGV4
dFRyYWNrOjpMT0FESU5HOworfQorCit2b2lkIExvYWRhYmxlVGV4dFRyYWNrSW1wbDo6dHJhY2tM
b2FkRXJyb3IoKQoreworICAgIG1fdGV4dFRyYWNrQ2xpZW50LT50cmFja0xvYWRFcnJvcigpOwor
ICAgIG1fcmVhZHlTdGF0ZSA9IFRleHRUcmFjazo6RVJST1I7Cit9CisKK3ZvaWQgTG9hZGFibGVU
ZXh0VHJhY2tJbXBsOjp0cmFja0xvYWRDb21wbGV0ZWQoKQoreworICAgIG1fcmVhZHlTdGF0ZSA9
IFRleHRUcmFjazo6TE9BREVEOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuaAppbmRleCBlYTgxNjc0MTUyYzFi
ZjAxZTgwYmUwZjViMDhmMmNlNDljOTg2OGFkLi43MzQ2NTI1ODYyMmY4NmZmNGM1N2Q4YTVhM2U5
Y2U5MmQ0ZjE3NDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4
dFRyYWNrSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJ
bXBsLmgKQEAgLTM2LDM0ICszNiw1MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBUZXh0VHJhY2s7CiBjbGFzcyBUZXh0VHJh
Y2tDdWU7CiBjbGFzcyBUZXh0VHJhY2tDdWVMaXN0OwogCi1jbGFzcyBMb2FkYWJsZVRleHRUcmFj
a0ltcGwgOiBwdWJsaWMgVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSwgcHVibGljIEN1ZUxvYWRl
ciB7CitjbGFzcyBMb2FkYWJsZVRleHRUcmFja0NsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NPd25QdHI8TG9hZGFibGVUZXh0VHJhY2tJbXBsPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBr
aW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlz
RGVmYXVsdCkKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tMb2FkU3RhcnRlZCgpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdHJhY2tMb2FkRXJyb3IoKSA9IDA7Cit9OworCitjbGFzcyBMb2FkYWJsZVRl
eHRUcmFja0ltcGwgOiBwdWJsaWMgVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSwgcHVibGljIEN1
ZVBhcnNlckNsaWVudCwgcHVibGljIEN1ZUxvYWRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBh
c3NPd25QdHI8TG9hZGFibGVUZXh0VHJhY2tJbXBsPiBjcmVhdGUoTG9hZGFibGVUZXh0VHJhY2tD
bGllbnQqIGNsaWVudCwgY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBj
b25zdCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgTG9hZGFibGVUZXh0VHJhY2tJbXBsKGtpbmQsIGxhYmVsLCBsYW5n
dWFnZSwgaXNEZWZhdWx0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgTG9hZGFibGVU
ZXh0VHJhY2tJbXBsKGNsaWVudCwga2luZCwgbGFiZWwsIGxhbmd1YWdlLCBpc0RlZmF1bHQpKTsK
ICAgICB9CiAgICAgdmlydHVhbCB+TG9hZGFibGVUZXh0VHJhY2tJbXBsKCk7CiAKICAgICAvLyBU
ZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlIG1ldGhvZHMKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
VGV4dFRyYWNrQ3VlTGlzdD4gY3VlcygpIGNvbnN0OwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxU
ZXh0VHJhY2tDdWVMaXN0PiBhY3RpdmVDdWVzKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGxv
YWQoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1R5cGUo
Y29uc3QgU3RyaW5nJik7CisKKyAgICAvLyBDdWVQYXJzZXJDbGllbnQgbWV0aG9kcworICAgIHZp
cnR1YWwgdm9pZCBuZXdDdWVzUGFyc2VkKCk7CisgICAgdmlydHVhbCB2b2lkIHRyYWNrTG9hZFN0
YXJ0ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tMb2FkRXJyb3IoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgdHJhY2tMb2FkQ29tcGxldGVkKCk7CiAKICAgICAvLyBDdWVMb2FkZXIgaW50ZXJmYWNl
CiAgICAgdmlydHVhbCB2b2lkIG5ld0N1ZXNMb2FkZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZmV0
Y2hOZXdlc3RDdWVzKFZlY3RvcjxUZXh0VHJhY2tDdWUqPiYpOwogCiBwcml2YXRlOgotICAgIExv
YWRhYmxlVGV4dFRyYWNrSW1wbChjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFi
ZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNEZWZhdWx0KTsKKyAgICBMb2FkYWJs
ZVRleHRUcmFja0ltcGwoTG9hZGFibGVUZXh0VHJhY2tDbGllbnQqLCBjb25zdCBTdHJpbmcmIGtp
bmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNE
ZWZhdWx0KTsKIAotICAgIGJvb2wgbV9pc0RlZmF1bHQ7CisgICAgTG9hZGFibGVUZXh0VHJhY2tD
bGllbnQqIG1fdGV4dFRyYWNrQ2xpZW50OwogCiAgICAgQ3VlUGFyc2VyIG1fcGFyc2VyOwogICAg
IFJlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBtX2N1ZXM7CisgICAgCisgICAgYm9vbCBtX2lzRGVm
YXVsdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNr
LmNwcAppbmRleCA2MzNlNThkZWU5ZDI5MTZjODgxNWFjODk2ZDg1NTcxYWJlNDFhNGZjLi5lMzc3
MTEyOGU4Y2JjNGU4N2Q1OGNkOWRlNWEyOWNkMGQwYzI3NGY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
VHJhY2suY3BwCkBAIC00MSwxOSArNDEsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBOdWxsVGV4dFRyYWNrUHJpdmF0ZSA6IHB1YmxpYyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNl
IHsKIHB1YmxpYzoKLSAgICBOdWxsVGV4dFRyYWNrUHJpdmF0ZSgpOwotICAgIHZpcnR1YWwgfk51
bGxUZXh0VHJhY2tQcml2YXRlKCk7Ci0KLSAgICAvLyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNl
IG1ldGhvZHMKLSAgICB2aXJ0dWFsIFN0cmluZyBraW5kKCkgY29uc3QgeyByZXR1cm4gZW1wdHlT
dHJpbmcoKTsgfQotICAgIHZpcnR1YWwgU3RyaW5nIGxhYmVsKCkgY29uc3QgeyByZXR1cm4gZW1w
dHlTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgU3RyaW5nIGxhbmd1YWdlKCkgY29uc3QgeyByZXR1
cm4gZW1wdHlTdHJpbmcoKTsgfQotICAgIHZpcnR1YWwgVGV4dFRyYWNrOjpSZWFkeVN0YXRlIHJl
YWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBUZXh0VHJhY2s6Ok5PTkU7IH0KLSAgICB2aXJ0dWFs
IFRleHRUcmFjazo6TW9kZSBtb2RlKCkgY29uc3QgeyByZXR1cm4gVGV4dFRyYWNrOjpPRkY7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgc2V0TW9kZShUZXh0VHJhY2s6Ok1vZGUpIHsgfQorICAgIE51bGxU
ZXh0VHJhY2tQcml2YXRlKCkKKyAgICAgICAgOiBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlKGVt
cHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCksIGVtcHR5U3RyaW5nKCkpCisgICAgeworICAgIH0K
KyAgICB2aXJ0dWFsIH5OdWxsVGV4dFRyYWNrUHJpdmF0ZSgpIHsgfQorCisgICAgLy8gVGV4dFRy
YWNrUHJpdmF0ZUludGVyZmFjZSBtZXRob2QKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRy
YWNrQ3VlTGlzdD4gY3VlcygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gYWN0aXZlQ3VlcygpIGNvbnN0IHsgcmV0dXJuIDA7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSB7IH0KIH07CiAKIHN0YXRpYyBQ
YXNzT3duUHRyPE51bGxUZXh0VHJhY2tQcml2YXRlPiBjcmVhdGVOdWxsVGV4dFRyYWNrUHJpdmF0
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFja1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrUHJpdmF0ZS5oCmluZGV4IDJjY2M3YWY5NTI4
YWZlMWMzMjEyNzhhM2NmNTNiZDJiMTA4YTQyYTAuLmU1Njc1MmM3ZGI3NjNmNzY5OWZiMGE1YjY0
NTFjM2VjMGZjNzU0M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNr
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrUHJpdmF0ZS5oCkBA
IC0zNSw2ICszNSw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEN1ZUxvYWRlckNs
aWVudDsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBUZXh0VHJhY2tDdWVM
aXN0OwogCiBjbGFzcyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlIHsKQEAgLTYzLDkgKzY0LDEw
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gYWN0
aXZlQ3VlcygpIGNvbnN0ID0gMDsKIAogICAgIC8vIFRoaXMgbWV0aG9kIHNob3VsZCBvbmx5IGJl
IG92ZXJyaWRkZW4gYnkgdHJhY2tzIHRoYXQgbG9hZCBjdWUgZGF0YSBmcm9tIGEgVVJMLgotICAg
IHZpcnR1YWwgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBs
b2FkKGNvbnN0IFN0cmluZyYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIGZhbHNlOyB9CiAK
LXByaXZhdGU6Citwcm90ZWN0ZWQ6CiAgICAgU3RyaW5nIG1fa2luZDsKICAgICBTdHJpbmcgbV9s
YWJlbDsKICAgICBTdHJpbmcgbV9sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
cmFjay9DdWVQYXJzZXIuY3BwCmluZGV4IDA2NmExZWE2MDhhZmQ2MWVjMzRkM2RiYjFmNjA5MmRk
ZWI0YTE2NGUuLjQ4OTExNWFjZGZjM2U3NTg5NGJhYWI1NzdiM2Y0YmI2Y2FhNWZkNzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFyc2VyLmNwcApAQCAtMzQsNiArMzQs
OSBAQAogCiAjaW5jbHVkZSAiQ3VlUGFyc2VyLmgiCiAKKyNpbmNsdWRlICJSZXNvdXJjZVJlcXVl
c3QuaCIKKyNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogQ3VlUGFyc2VyOjpDdWVQYXJzZXIoKQpAQCAtNDMsMTkgKzQ2LDUyIEBAIEN1ZVBhcnNl
cjo6Q3VlUGFyc2VyKCkKIAogQ3VlUGFyc2VyOjp+Q3VlUGFyc2VyKCkKIHsKKyAgICBpZiAobV9s
b2FkZXIpCisgICAgICAgIG1fbG9hZGVyLT5jYW5jZWwoKTsKKyAgICBtX2xvYWRlciA9IDA7Cit9
CisKK3ZvaWQgQ3VlUGFyc2VyOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJsLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBDdWVQYXJzZXJDbGllbnQqIGNsaWVudCkKK3sKKyAgICBSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOworCisgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMg
b3B0aW9uczsKKyAgICBvcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID0gdHJ1ZTsKKyAgICBvcHRp
b25zLmNyb3NzT3JpZ2luUmVxdWVzdFBvbGljeSA9IEFsbG93Q3Jvc3NPcmlnaW5SZXF1ZXN0czsK
KworICAgIG1fY2xpZW50ID0gY2xpZW50OworCisgICAgbV9sb2FkZXIgPSBUaHJlYWRhYmxlTG9h
ZGVyOjpjcmVhdGUoY29udGV4dCwgdGhpcywgcmVxdWVzdCwgb3B0aW9ucyk7Cit9CisKK2Jvb2wg
Q3VlUGFyc2VyOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgLy8gRklY
TUUoNjI4OTMpOiBjaGVjayBhZ2FpbnN0IGEgbGlzdCBvZiBzdXBwb3J0ZWQgdHlwZXMKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQ3VlUGFyc2VyOjpkaWRSZWNlaXZlUmVzcG9uc2UoY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpCit7CisgICAgLy8gRklYTUUoNjI4OTMpOiBDcmVhdGUgbV9w
cml2YXRlIGJhc2VkIG9uIE1JTUUgdHlwZS4KKyAgICBtX2NsaWVudC0+dHJhY2tMb2FkU3RhcnRl
ZCgpOworfQorCit2b2lkIEN1ZVBhcnNlcjo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0
YSwgaW50IGxlbikKK3sKKyAgICAvLyBGSVhNRSg2Mjg5Myk6IFNlbmQgZGF0YSBhbG9uZyB0byBt
X3ByaXZhdGUgcGFyc2VyIHRvIGJlIHBhcnNlZC4KIH0KIAotdm9pZCBDdWVQYXJzZXI6OmxvYWQo
Y29uc3QgU3RyaW5nJikKK3ZvaWQgQ3VlUGFyc2VyOjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVk
IGxvbmcpCiB7Ci0gICAgLy8gRklYTUUoNjI4ODEpOiBJbXBsZW1lbnQuCisgICAgbV9jbGllbnQt
PnRyYWNrTG9hZENvbXBsZXRlZCgpOwogfQogCi12b2lkIEN1ZVBhcnNlcjo6ZGlkUmVjZWl2ZURh
dGEoY29uc3QgY2hhciosIGludCkKK3ZvaWQgQ3VlUGFyc2VyOjpkaWRGYWlsKGNvbnN0IFJlc291
cmNlRXJyb3ImKQogewotICAgIC8vIEZJWE1FKDYyODgxKTogSW1wbGVtZW50LgorICAgIG1fY2xp
ZW50LT50cmFja0xvYWRFcnJvcigpOwogfQogCi12b2lkIEN1ZVBhcnNlcjo6ZmV0Y2hQYXJzZWRD
dWVzKFZlY3RvcjxQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4gPiYpCit2b2lkIEN1ZVBhcnNlcjo6
ZmV0Y2hQYXJzZWRDdWVzKFZlY3RvcjxSZWZQdHI8VGV4dFRyYWNrQ3VlPiA+JikKIHsKICAgICAv
LyBGSVhNRSg2Mjg5Myk6IEltcGxlbWVudC4KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJh
Y2svQ3VlUGFyc2VyLmgKaW5kZXggNzdhNzlmNGIwZDc0ZGYxZTJiOTQ0ZWNlYjZjNmFmODI5NTdk
NThiYi4uNDU3NDk2NjdiNjM5N2NmNjNjZWE5ODA2ZjY4NjE3ZTkwNzZhM2YzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFyc2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFyc2VyLmgKQEAgLTQyLDIyICs0MiwzNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBj
bGFzcyBUZXh0VHJhY2tDdWU7CiAKK2NsYXNzIEN1ZVBhcnNlckNsaWVudCB7CitwdWJsaWM6Cisg
ICAgdmlydHVhbCB2b2lkIG5ld0N1ZXNQYXJzZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRy
YWNrTG9hZFN0YXJ0ZWQoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHRyYWNrTG9hZEVycm9yKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCB0cmFja0xvYWRDb21wbGV0ZWQoKSA9IDA7Cit9OworCiBj
bGFzcyBDdWVQYXJzZXIgOiBwdWJsaWMgVGhyZWFkYWJsZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6
CiAgICAgQ3VlUGFyc2VyKCk7CiAgICAgdmlydHVhbCB+Q3VlUGFyc2VyKCk7CiAKICAgICAvLyBU
aHJlYWRhYmxlTG9hZGVyQ2xpZW50IG1ldGhvZHMuCisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29u
c3QgY2hhciosIGludCk7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcp
OworICAgIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKLSAgICB2b2lkIGxv
YWQoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBmZXRjaFBhcnNlZEN1ZXMoVmVjdG9yPFBhc3NS
ZWZQdHI8VGV4dFRyYWNrQ3VlPiA+Jik7CisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBDdWVQYXJzZXJDbGllbnQqKTsKKyAgICBib29sIHN1cHBv
cnRzVHlwZShjb25zdCBTdHJpbmcmKTsKKyAgICAKKyAgICB2b2lkIGZldGNoUGFyc2VkQ3VlcyhW
ZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4gPiYpOwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxU
aHJlYWRhYmxlTG9hZGVyPiBtX2xvYWRlcjsKICAgICBPd25QdHI8Q3VlUGFyc2VyUHJpdmF0ZUlu
dGVyZmFjZT4gbV9wcml2YXRlOworICAgIEN1ZVBhcnNlckNsaWVudCogbV9jbGllbnQ7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98531</attachid>
            <date>2011-06-24 13:39:02 -0700</date>
            <delta_ts>2011-06-24 14:19:15 -0700</delta_ts>
            <desc>Removing TextTrackPrivateInterface, LoadableTextTrackImpl, and MutableTextTrackImpl.</desc>
            <filename>bug-62881-20110624133901.patch</filename>
            <type>text/plain</type>
            <size>49018</size>
            <attacher name="Anna Cavender">annacc</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODk2ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMWQ4Yzg1
OTZhYzYzNTlmOWYwN2NlMzRkNGU3YjcwNWI1MGRiYmJhNS4uNjE0OTAyMTEzZjFmNWM1NTg1Mjhl
NDhlMjE4MzIwMDFhZTY5MWQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE5NzYsOSArMTk3
Niw3IEBAIElGIChFTkFCTEVfVklERU9fVFJBQ0spCiAgICAgICAgIGh0bWwvQ3VlSW5kZXguY3Bw
CiAgICAgICAgIGh0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKICAgICAgICAgaHRtbC9Mb2FkYWJs
ZVRleHRUcmFjay5jcHAKLSAgICAgICAgaHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuY3BwCiAg
ICAgICAgIGh0bWwvTXV0YWJsZVRleHRUcmFjay5jcHAKLSAgICAgICAgaHRtbC9NdXRhYmxlVGV4
dFRyYWNrSW1wbC5jcHAKICAgICAgICAgaHRtbC9UZXh0VHJhY2suY3BwCiAgICAgICAgIGh0bWwv
VGV4dFRyYWNrQ3VlLmNwcAogICAgICAgICBodG1sL1RleHRUcmFja0N1ZUxpc3QuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggYTUzOGU4MTFiZjlhMmMzNThkYjcyZjA3MDgyYmJhNGUxYmEwNmM5ZC4uMjlmMGJm
OGNlYzkyM2YxZTQ4OGQ5Y2IwZTFiYTJlMmM3NDcyZGY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQxIEBACisyMDExLTA2LTI0ICBBbm5hIENhdmVuZGVyICA8YW5uYWNjQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMb2FkaW5n
IG91dC1vZi1iYW5kIHRleHQgdHJhY2sgZmlsZXMgZnJvbSA8dHJhY2s+LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjI4ODEKKworICAgICAgICBVc2Vz
IHRoZSBzcmMgYXR0cmlidXRlIG9mIDx0cmFjaz4gdXJscyB0byBsb2FkIG91dC1vZi1iYW5kIHRl
eHQgdHJhY2sKKyAgICAgICAgZmlsZXMgdXNpbmcgVGhyZWFkYWJsZUxvYWRlci4gIEFsc28gcmVt
b3ZlcyBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlCisgICAgICAgIChhcyB3ZWxsIGFzIExvYWRh
YmxlVGV4dFRyYWNrSW1wbCBhbmQgTXV0YWJsZVRleHRUcmFja0ltcGwpIGNsYXNzZXMuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgZmVhdHVyZSBpcyBoaWRkZW4gYmVoaW5kIFZJREVP
X1RSQUNLIGZlYXR1cmUKKyAgICAgICAgZGVmaW5lLCB3aGljaCBpcyB0dXJuZWQgb2ZmLgorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgICog
aHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0xvYWRhYmxlVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKiBodG1sL0xvYWRhYmxlVGV4dFRyYWNr
Lmg6CisgICAgICAgICogaHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIGh0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmg6IFJlbW92ZWQuCisgICAgICAg
ICogaHRtbC9NdXRhYmxlVGV4dFRyYWNrLmNwcDoKKyAgICAgICAgKiBodG1sL011dGFibGVUZXh0
VHJhY2suaDoKKyAgICAgICAgKiBodG1sL011dGFibGVUZXh0VHJhY2tJbXBsLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodG1sL011dGFibGVUZXh0VHJhY2tJbXBsLmg6IFJlbW92ZWQuCisgICAg
ICAgICogaHRtbC9UZXh0VHJhY2suY3BwOgorICAgICAgICAqIGh0bWwvVGV4dFRyYWNrLmg6Cisg
ICAgICAgICogaHRtbC9UZXh0VHJhY2tQcml2YXRlLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vdHJhY2svQ3VlUGFyc2VyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS90cmFjay9DdWVQ
YXJzZXIuaDoKKwogMjAxMS0wNi0yNCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRl
eCA5NjhkN2ZiZTk4M2E4ZTU4YjFhYmIwMjc1ZGQ5ZDVjZmEwNjUzM2QxLi5mY2YxYjFmNjEwYWU2
Zjc4ZGM2ZWI4ZWEwMzI1ZTAxZGEzNTZlODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtNjMs
NiArNjMsNyBAQCB3ZWJjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcWwgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvdHJhbnNj
b2RlciBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2sgXAogCS1J
JChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbiBcCiAJLUkkKHNyY2RpcikvU291
cmNlL1dlYkNvcmUvcGx1Z2lucyBcCiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy93aW4gXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggODlhNDgyNDA3ZGYwOGI0
NDgwM2FlNGQ1ZGNmNDY1YTQyZjNiYmU1My4uNGYxZWUwOTVkMWJhMDc0ODQyZTU2MWI3MjcxYjYz
YTU0NTNmMTUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNTk2LDYgKzE1
OTYsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvQ29sbGVj
dGlvblR5cGUuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBcCisJU291cmNlL1dlYkNvcmUv
aHRtbC9DdWVJbmRleC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvQ3VlSW5kZXguaCBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlSW5wdXRUeXBlLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1
dFR5cGUuY3BwIFwKQEAgLTE4MDUsMTEgKzE4MDcsMTUgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9odG1sL0xhYmVsc05vZGVMaXN0LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1Jl
bEF0dHJpYnV0ZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhRG9jdW1lbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUVycm9yLmggXAogCVNv
dXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL01vbnRoSW5wdXRUeXBlLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvTXV0YWJsZVRleHRU
cmFjay5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvTXV0YWJsZVRleHRUcmFjay5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2h0bWwvTnVtYmVySW5wdXRUeXBlLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0NT
U1ByZWxvYWRTY2FubmVyLmNwcCBcCkBAIC0xODk4LDYgKzE5MDQsMTIgQEAgd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0TWV0cmljcy5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dFRyYWNrQ3VlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tDdWUuaCBcCisJ
U291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tDdWVMaXN0LmNwcCBcCisJU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0VHJhY2tDdWVMaXN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlu
cHV0VHlwZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVSYW5nZXMuY3BwIFwKQEAgLTIwNzgsNiArMjA5MCw4IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2lu
QWNjZXNzQ29udHJvbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3Jvc3NPcmlnaW5QcmVm
bGlnaHRSZXN1bHRDYWNoZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdp
blByZWZsaWdodFJlc3VsdENhY2hlLmggXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9DdWVMb2Fk
ZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ3VlTG9hZGVyLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
VGltaW5nLmggXApAQCAtMjgyMyw2ICsyODM3LDkgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRUaW1lcnMuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGltZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuaCBcCisJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFyc2VyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdHJhY2svQ3VlUGFyc2VyUHJpdmF0ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9UcmVlU2hhcmVkLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1VSTFN0cmluZy5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VVUlELmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXgg
ODEyNDAwOWNhMmQyOWZjNGQ4ZDVlNjVhYTkwNWE1Yjg0OTlmMzY0ZC4uODBkNjYzODZmMGVjMDI4
MTVlMzZlYTFjN2M2MGMzOTk3N2RiNmYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzA0NywxNSAr
MzA0NywxMSBAQAogICAgICAgICAgICAgJ2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oJywKICAgICAg
ICAgICAgICdodG1sL0xvYWRhYmxlVGV4dFRyYWNrLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9M
b2FkYWJsZVRleHRUcmFjay5oJywKLSAgICAgICAgICAgICdodG1sL0xvYWRhYmxlVGV4dFRyYWNr
SW1wbC5jcHAnLAotICAgICAgICAgICAgJ2h0bWwvTG9hZGFibGVUZXh0VHJhY2tJbXBsLmgnLAog
ICAgICAgICAgICAgJ2h0bWwvTWVkaWFEb2N1bWVudC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwv
TWVkaWFEb2N1bWVudC5oJywKICAgICAgICAgICAgICdodG1sL01lZGlhRXJyb3IuaCcsCiAgICAg
ICAgICAgICAnaHRtbC9NdXRhYmxlVGV4dFRyYWNrLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9N
dXRhYmxlVGV4dFRyYWNrLmgnLAotICAgICAgICAgICAgJ2h0bWwvTXV0YWJsZVRleHRUcmFja0lt
cGwuY3BwJywKLSAgICAgICAgICAgICdodG1sL011dGFibGVUZXh0VHJhY2tJbXBsLmgnLAogICAg
ICAgICAgICAgJ2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwJywKICAgICAgICAgICAgICdodG1sL01v
bnRoSW5wdXRUeXBlLmgnLAogICAgICAgICAgICAgJ2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCcs
CkBAIC0zMDkxLDcgKzMwODcsNiBAQAogICAgICAgICAgICAgJ2h0bWwvVGV4dFRyYWNrQ3VlLmgn
LAogICAgICAgICAgICAgJ2h0bWwvVGV4dFRyYWNrQ3VlTGlzdC5jcHAnLAogICAgICAgICAgICAg
J2h0bWwvVGV4dFRyYWNrQ3VlTGlzdC5oJywKLSAgICAgICAgICAgICdodG1sL1RleHRUcmFja1By
aXZhdGVJbnRlcmZhY2UuaCcsCiAgICAgICAgICAgICAnaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCcs
CiAgICAgICAgICAgICAnaHRtbC9UaW1lSW5wdXRUeXBlLmgnLAogICAgICAgICAgICAgJ2h0bWwv
VGltZVJhbmdlcy5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8g
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBiMjRiMWFkMjVmNWIzNzE3NTI1MTVj
NWUwYzY5NjVhMjRlMDI2YWJkLi41NTk4OWVmNzk0ZWQxYzQyOWZkYzg2ZWQ1Mjg5ZTUzNDE2NWUy
MjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTczNiwxNyArMTczNiwxNCBAQCBIRUFERVJTICs9IFwK
ICAgICBodG1sL0xhYmVsc05vZGVMaXN0LmggXAogICAgIGh0bWwvTGlua1JlbEF0dHJpYnV0ZS5o
IFwKICAgICBodG1sL0xvYWRhYmxlVGV4dFRyYWNrLmggXAotICAgIGh0bWwvTG9hZGFibGVUZXh0
VHJhY2tJbXBsLmggXAogICAgIGh0bWwvTWVkaWFEb2N1bWVudC5oIFwKICAgICBodG1sL011dGFi
bGVUZXh0VHJhY2suaCBcCi0gICAgaHRtbC9NdXRhYmxlVGV4dFRyYWNrSW1wbC5oIFwKICAgICBo
dG1sL1BsdWdpbkRvY3VtZW50LmggXAogICAgIGh0bWwvU3RlcFJhbmdlLmggXAogICAgIGh0bWwv
VGV4dERvY3VtZW50LmggXAogICAgIGh0bWwvVGV4dFRyYWNrLmggXAogICAgIGh0bWwvVGV4dFRy
YWNrQ3VlLmggXAogICAgIGh0bWwvVGV4dFRyYWNrQ3VlTGlzdC5oIFwKLSAgICBodG1sL1RleHRU
cmFja1ByaXZhdGUuaCBcCiAgICAgaHRtbC9UaW1lUmFuZ2VzLmggXAogICAgIGh0bWwvVmFsaWRp
dHlTdGF0ZS5oIFwKICAgICBodG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBm
NjFkN2MyOTY2M2NkZWY4NDI3Yjg0OWM0OWEwMWFiYjIwZTI2OGFlLi44ZDRkNjFkMmJmYjlmZjBk
N2ZjOWVhZTJiMTdmNDk3YTI0ZjYxNWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MDIzLDE5ICs0MDIzLDE0IEBACiAJCUIx
QUQ0RTVEMTNBMTJBMEIwMDg0NkIyNyAvKiBDdWVJbmRleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFBRDRFNEMxM0ExMkEwQjAwODQ2QjI3IC8qIEN1
ZUluZGV4LmggKi87IH07CiAJCUIxQUQ0RTVFMTNBMTJBMEIwMDg0NkIyNyAvKiBMb2FkYWJsZVRl
eHRUcmFjay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMUFENEU0RDEzQTEyQTBCMDA4NDZCMjcgLyogTG9hZGFibGVUZXh0VHJhY2suY3BwICovOyB9
OwogCQlCMUFENEU1RjEzQTEyQTBCMDA4NDZCMjcgLyogTG9hZGFibGVUZXh0VHJhY2suaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQUQ0RTRFMTNBMTJB
MEIwMDg0NkIyNyAvKiBMb2FkYWJsZVRleHRUcmFjay5oICovOyB9OwotCQlCMUFENEU2MDEzQTEy
QTBCMDA4NDZCMjcgLyogTG9hZGFibGVUZXh0VHJhY2tJbXBsLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQUQ0RTRGMTNBMTJBMEIwMDg0NkIyNyAv
KiBMb2FkYWJsZVRleHRUcmFja0ltcGwuY3BwICovOyB9OwotCQlCMUFENEU2MTEzQTEyQTBCMDA4
NDZCMjcgLyogTG9hZGFibGVUZXh0VHJhY2tJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUFENEU1MDEzQTEyQTBCMDA4NDZCMjcgLyogTG9hZGFi
bGVUZXh0VHJhY2tJbXBsLmggKi87IH07CiAJCUIxQUQ0RTYyMTNBMTJBMEIwMDg0NkIyNyAvKiBN
dXRhYmxlVGV4dFRyYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEIxQUQ0RTUxMTNBMTJBMEIwMDg0NkIyNyAvKiBNdXRhYmxlVGV4dFRyYWNrLmNw
cCAqLzsgfTsKIAkJQjFBRDRFNjMxM0ExMkEwQjAwODQ2QjI3IC8qIE11dGFibGVUZXh0VHJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQUQ0RTUy
MTNBMTJBMEIwMDg0NkIyNyAvKiBNdXRhYmxlVGV4dFRyYWNrLmggKi87IH07Ci0JCUIxQUQ0RTY0
MTNBMTJBMEIwMDg0NkIyNyAvKiBNdXRhYmxlVGV4dFRyYWNrSW1wbC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUFENEU1MzEzQTEyQTBCMDA4NDZC
MjcgLyogTXV0YWJsZVRleHRUcmFja0ltcGwuY3BwICovOyB9OwotCQlCMUFENEU2NTEzQTEyQTBC
MDA4NDZCMjcgLyogTXV0YWJsZVRleHRUcmFja0ltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQUQ0RTU0MTNBMTJBMEIwMDg0NkIyNyAvKiBNdXRh
YmxlVGV4dFRyYWNrSW1wbC5oICovOyB9OwogCQlCMUFENEU2NjEzQTEyQTBCMDA4NDZCMjcgLyog
VGV4dFRyYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEIxQUQ0RTU1MTNBMTJBMEIwMDg0NkIyNyAvKiBUZXh0VHJhY2suY3BwICovOyB9OwogCQlC
MUFENEU2NzEzQTEyQTBCMDA4NDZCMjcgLyogVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUFENEU1NjEzQTEyQTBCMDA4NDZCMjcgLyog
VGV4dFRyYWNrLmggKi87IH07CiAJCUIxQUQ0RTY4MTNBMTJBMEIwMDg0NkIyNyAvKiBUZXh0VHJh
Y2tDdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QjFBRDRFNTcxM0ExMkEwQjAwODQ2QjI3IC8qIFRleHRUcmFja0N1ZS5jcHAgKi87IH07CiAJCUIx
QUQ0RTY5MTNBMTJBMEIwMDg0NkIyNyAvKiBUZXh0VHJhY2tDdWUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQUQ0RTU4MTNBMTJBMEIwMDg0NkIyNyAv
KiBUZXh0VHJhY2tDdWUuaCAqLzsgfTsKIAkJQjFBRDRFNkExM0ExMkEwQjAwODQ2QjI3IC8qIFRl
eHRUcmFja0N1ZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQjFBRDRFNTkxM0ExMkEwQjAwODQ2QjI3IC8qIFRleHRUcmFja0N1ZUxpc3QuY3Bw
ICovOyB9OwogCQlCMUFENEU2QjEzQTEyQTBCMDA4NDZCMjcgLyogVGV4dFRyYWNrQ3VlTGlzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjFBRDRFNUEx
M0ExMkEwQjAwODQ2QjI3IC8qIFRleHRUcmFja0N1ZUxpc3QuaCAqLzsgfTsKLQkJQjFBRDRFNkMx
M0ExMkEwQjAwODQ2QjI3IC8qIFRleHRUcmFja1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQUQ0RTVCMTNBMTJBMEIwMDg0NkIyNyAvKiBU
ZXh0VHJhY2tQcml2YXRlLmggKi87IH07CiAJCUIxQUQ0RTczMTNBMTJBNDYwMDg0NkIyNyAvKiBD
dWVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQjFBRDRFNzExM0ExMkE0NjAwODQ2QjI3IC8qIEN1ZUxvYWRlci5jcHAgKi87IH07CiAJCUIx
QUQ0RTc0MTNBMTJBNDYwMDg0NkIyNyAvKiBDdWVMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIxQUQ0RTcyMTNBMTJBNDYwMDg0NkIyNyAvKiBD
dWVMb2FkZXIuaCAqLzsgfTsKIAkJQjFBRDRFN0IxM0ExMkE3MjAwODQ2QjI3IC8qIEN1ZVBhcnNl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMUFE
NEU3ODEzQTEyQTcyMDA4NDZCMjcgLyogQ3VlUGFyc2VyLmNwcCAqLzsgfTsKQEAgLTEwNDU5LDE5
ICsxMDQ1NCwxNCBAQAogCQlCMUFENEU0QzEzQTEyQTBCMDA4NDZCMjcgLyogQ3VlSW5kZXguaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ3VlSW5kZXguaDsgcGF0aCA9IGh0bWwv
Q3VlSW5kZXguaDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlCMUFENEU0RDEzQTEy
QTBCMDA4NDZCMjcgLyogTG9hZGFibGVUZXh0VHJhY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gTG9hZGFibGVUZXh0VHJhY2suY3BwOyBwYXRoID0gaHRtbC9Mb2Fk
YWJsZVRleHRUcmFjay5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQjFBRDRF
NEUxM0ExMkEwQjAwODQ2QjI3IC8qIExvYWRhYmxlVGV4dFRyYWNrLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IExvYWRhYmxlVGV4dFRyYWNrLmg7IHBhdGggPSBodG1sL0xvYWRh
YmxlVGV4dFRyYWNrLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKLQkJQjFBRDRFNEYx
M0ExMkEwQjAwODQ2QjI3IC8qIExvYWRhYmxlVGV4dFRyYWNrSW1wbC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBMb2FkYWJsZVRleHRUcmFja0ltcGwuY3BwOyBwYXRo
ID0gaHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuY3BwOyBzb3VyY2VUcmVlID0gU09VUkNFX1JP
T1Q7IH07Ci0JCUIxQUQ0RTUwMTNBMTJBMEIwMDg0NkIyNyAvKiBMb2FkYWJsZVRleHRUcmFja0lt
cGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTG9hZGFibGVUZXh0VHJhY2tJ
bXBsLmg7IHBhdGggPSBodG1sL0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oOyBzb3VyY2VUcmVlID0g
U09VUkNFX1JPT1Q7IH07CiAJCUIxQUQ0RTUxMTNBMTJBMEIwMDg0NkIyNyAvKiBNdXRhYmxlVGV4
dFRyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE11dGFibGVU
ZXh0VHJhY2suY3BwOyBwYXRoID0gaHRtbC9NdXRhYmxlVGV4dFRyYWNrLmNwcDsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OwogCQlCMUFENEU1MjEzQTEyQTBCMDA4NDZCMjcgLyogTXV0YWJs
ZVRleHRUcmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNdXRhYmxlVGV4
dFRyYWNrLmg7IHBhdGggPSBodG1sL011dGFibGVUZXh0VHJhY2suaDsgc291cmNlVHJlZSA9IFNP
VVJDRV9ST09UOyB9OwotCQlCMUFENEU1MzEzQTEyQTBCMDA4NDZCMjcgLyogTXV0YWJsZVRleHRU
cmFja0ltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTXV0YWJs
ZVRleHRUcmFja0ltcGwuY3BwOyBwYXRoID0gaHRtbC9NdXRhYmxlVGV4dFRyYWNrSW1wbC5jcHA7
IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKLQkJQjFBRDRFNTQxM0ExMkEwQjAwODQ2QjI3
IC8qIE11dGFibGVUZXh0VHJhY2tJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IE11dGFibGVUZXh0VHJhY2tJbXBsLmg7IHBhdGggPSBodG1sL011dGFibGVUZXh0VHJhY2tJ
bXBsLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQjFBRDRFNTUxM0ExMkEwQjAw
ODQ2QjI3IC8qIFRleHRUcmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBUZXh0VHJhY2suY3BwOyBwYXRoID0gaHRtbC9UZXh0VHJhY2suY3BwOyBzb3VyY2VUcmVl
ID0gU09VUkNFX1JPT1Q7IH07CiAJCUIxQUQ0RTU2MTNBMTJBMEIwMDg0NkIyNyAvKiBUZXh0VHJh
Y2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4dFRyYWNrLmg7IHBhdGgg
PSBodG1sL1RleHRUcmFjay5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUIxQUQ0
RTU3MTNBMTJBMEIwMDg0NkIyNyAvKiBUZXh0VHJhY2tDdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gVGV4dFRyYWNrQ3VlLmNwcDsgcGF0aCA9IGh0bWwvVGV4dFRy
YWNrQ3VlLmNwcDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlCMUFENEU1ODEzQTEy
QTBCMDA4NDZCMjcgLyogVGV4dFRyYWNrQ3VlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IFRleHRUcmFja0N1ZS5oOyBwYXRoID0gaHRtbC9UZXh0VHJhY2tDdWUuaDsgc291cmNl
VHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlCMUFENEU1OTEzQTEyQTBCMDA4NDZCMjcgLyogVGV4
dFRyYWNrQ3VlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBU
ZXh0VHJhY2tDdWVMaXN0LmNwcDsgcGF0aCA9IGh0bWwvVGV4dFRyYWNrQ3VlTGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQjFBRDRFNUExM0ExMkEwQjAwODQ2QjI3IC8q
IFRleHRUcmFja0N1ZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4
dFRyYWNrQ3VlTGlzdC5oOyBwYXRoID0gaHRtbC9UZXh0VHJhY2tDdWVMaXN0Lmg7IHNvdXJjZVRy
ZWUgPSBTT1VSQ0VfUk9PVDsgfTsKLQkJQjFBRDRFNUIxM0ExMkEwQjAwODQ2QjI3IC8qIFRleHRU
cmFja1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4dFRyYWNr
UHJpdmF0ZS5oOyBwYXRoID0gaHRtbC9UZXh0VHJhY2tQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSBT
T1VSQ0VfUk9PVDsgfTsKIAkJQjFBRDRFNzExM0ExMkE0NjAwODQ2QjI3IC8qIEN1ZUxvYWRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDdWVMb2FkZXIuY3BwOyBw
YXRoID0gbG9hZGVyL0N1ZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsK
IAkJQjFBRDRFNzIxM0ExMkE0NjAwODQ2QjI3IC8qIEN1ZUxvYWRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBDdWVMb2FkZXIuaDsgcGF0aCA9IGxvYWRlci9DdWVMb2FkZXIu
aDsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlCMUFENEU3ODEzQTEyQTcyMDA4NDZC
MjcgLyogQ3VlUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEN1ZVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzY1MiwxOSAr
MTM2NDIsMTQgQEAKIAkJCQlCMUFENEU0QzEzQTEyQTBCMDA4NDZCMjcgLyogQ3VlSW5kZXguaCAq
LywKIAkJCQlCMUFENEU0RDEzQTEyQTBCMDA4NDZCMjcgLyogTG9hZGFibGVUZXh0VHJhY2suY3Bw
ICovLAogCQkJCUIxQUQ0RTRFMTNBMTJBMEIwMDg0NkIyNyAvKiBMb2FkYWJsZVRleHRUcmFjay5o
ICovLAotCQkJCUIxQUQ0RTRGMTNBMTJBMEIwMDg0NkIyNyAvKiBMb2FkYWJsZVRleHRUcmFja0lt
cGwuY3BwICovLAotCQkJCUIxQUQ0RTUwMTNBMTJBMEIwMDg0NkIyNyAvKiBMb2FkYWJsZVRleHRU
cmFja0ltcGwuaCAqLywKIAkJCQlCMUFENEU1MTEzQTEyQTBCMDA4NDZCMjcgLyogTXV0YWJsZVRl
eHRUcmFjay5jcHAgKi8sCiAJCQkJQjFBRDRFNTIxM0ExMkEwQjAwODQ2QjI3IC8qIE11dGFibGVU
ZXh0VHJhY2suaCAqLywKLQkJCQlCMUFENEU1MzEzQTEyQTBCMDA4NDZCMjcgLyogTXV0YWJsZVRl
eHRUcmFja0ltcGwuY3BwICovLAotCQkJCUIxQUQ0RTU0MTNBMTJBMEIwMDg0NkIyNyAvKiBNdXRh
YmxlVGV4dFRyYWNrSW1wbC5oICovLAogCQkJCUIxQUQ0RTU1MTNBMTJBMEIwMDg0NkIyNyAvKiBU
ZXh0VHJhY2suY3BwICovLAogCQkJCUIxQUQ0RTU2MTNBMTJBMEIwMDg0NkIyNyAvKiBUZXh0VHJh
Y2suaCAqLywKIAkJCQlCMUFENEU1NzEzQTEyQTBCMDA4NDZCMjcgLyogVGV4dFRyYWNrQ3VlLmNw
cCAqLywKIAkJCQlCMUFENEU1ODEzQTEyQTBCMDA4NDZCMjcgLyogVGV4dFRyYWNrQ3VlLmggKi8s
CiAJCQkJQjFBRDRFNTkxM0ExMkEwQjAwODQ2QjI3IC8qIFRleHRUcmFja0N1ZUxpc3QuY3BwICov
LAogCQkJCUIxQUQ0RTVBMTNBMTJBMEIwMDg0NkIyNyAvKiBUZXh0VHJhY2tDdWVMaXN0LmggKi8s
Ci0JCQkJQjFBRDRFNUIxM0ExMkEwQjAwODQ2QjI3IC8qIFRleHRUcmFja1ByaXZhdGUuaCAqLywK
IAkJCQk0MTgxNUMxQjEzODMxOTYzMDA1N0FBQTQgLyoganMgKi8sCiAJCQkJNDE3REE0Q0YxMzcz
NDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgKi8sCiAJCQkJNDE3REE0Q0UxMzczNDMyNjAw
N0M1N0ZCIC8qIEludGVybmFscy5oICovLApAQCAtMjMwNTEsMTMgKzIzMDM2LDEwIEBACiAJCQkJ
RkRGN0U5QzQxM0FDMjFEQjAwQTUxRUFDIC8qIEpTQXVkaW9CdWZmZXJDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjFBRDRFNUQxM0ExMkEwQjAwODQ2QjI3IC8qIEN1ZUluZGV4LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMUFENEU1RjEzQTEyQTBCMDA4NDZCMjcgLyogTG9hZGFibGVUZXh0
VHJhY2suaCBpbiBIZWFkZXJzICovLAotCQkJCUIxQUQ0RTYxMTNBMTJBMEIwMDg0NkIyNyAvKiBM
b2FkYWJsZVRleHRUcmFja0ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCUIxQUQ0RTYzMTNBMTJB
MEIwMDg0NkIyNyAvKiBNdXRhYmxlVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLywKLQkJCQlCMUFE
NEU2NTEzQTEyQTBCMDA4NDZCMjcgLyogTXV0YWJsZVRleHRUcmFja0ltcGwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIxQUQ0RTY3MTNBMTJBMEIwMDg0NkIyNyAvKiBUZXh0VHJhY2suaCBpbiBIZWFk
ZXJzICovLAogCQkJCUIxQUQ0RTY5MTNBMTJBMEIwMDg0NkIyNyAvKiBUZXh0VHJhY2tDdWUuaCBp
biBIZWFkZXJzICovLAogCQkJCUIxQUQ0RTZCMTNBMTJBMEIwMDg0NkIyNyAvKiBUZXh0VHJhY2tD
dWVMaXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQlCMUFENEU2QzEzQTEyQTBCMDA4NDZCMjcgLyog
VGV4dFRyYWNrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjFBRDRFNzQxM0ExMkE0NjAw
ODQ2QjI3IC8qIEN1ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjFBRDRFN0MxM0ExMkE3
MjAwODQ2QjI3IC8qIEN1ZVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjFBRDRFN0QxM0Ex
MkE3MjAwODQ2QjI3IC8qIEN1ZVBhcnNlclByaXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjU4
MTEsOSArMjU3OTMsNyBAQAogCQkJCUZERjdFOUMzMTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlv
QnVmZmVyQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjFBRDRFNUMxM0ExMkEwQjAw
ODQ2QjI3IC8qIEN1ZUluZGV4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIxQUQ0RTVFMTNBMTJB
MEIwMDg0NkIyNyAvKiBMb2FkYWJsZVRleHRUcmFjay5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlC
MUFENEU2MDEzQTEyQTBCMDA4NDZCMjcgLyogTG9hZGFibGVUZXh0VHJhY2tJbXBsLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUIxQUQ0RTYyMTNBMTJBMEIwMDg0NkIyNyAvKiBNdXRhYmxlVGV4dFRy
YWNrLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUIxQUQ0RTY0MTNBMTJBMEIwMDg0NkIyNyAvKiBN
dXRhYmxlVGV4dFRyYWNrSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCMUFENEU2NjEzQTEy
QTBCMDA4NDZCMjcgLyogVGV4dFRyYWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIxQUQ0RTY4
MTNBMTJBMEIwMDg0NkIyNyAvKiBUZXh0VHJhY2tDdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QjFBRDRFNkExM0ExMkEwQjAwODQ2QjI3IC8qIFRleHRUcmFja0N1ZUxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCBjMzgz
Y2M5ZmNmZGYwNDNlYTVjYjQ1YTE4OGZkNzdmNzg0NmVkMmYxLi5mYWM5YTkyMDdiMDE4M2JiNzEy
MzliNzAyZDQ2ZDI4YjNkMDYzYzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKQEAgLTg0LDYgKzg0LDEwIEBACiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyNpbmNsdWRlICJIVE1MVHJhY2tFbGVtZW50Lmgi
CisjZW5kaWYKKwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNTkwLDYgKzU5NCw5IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZEludGVybmFsKCkK
ICAgICB9CiAKICAgICBzZWxlY3RNZWRpYVJlc291cmNlKCk7CisjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQorICAgIGxvYWRUZXh0VHJhY2tzKCk7CisjZW5kaWYKIH0KIAogdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpzZWxlY3RNZWRpYVJlc291cmNlKCkKQEAgLTc2Niw2ICs3NzMsMTggQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29uc3QgS1VSTCYgaW5pdGlhbFVSTCwgQ29u
dGVudFR5cGUmIGNvbnRlbnQKICAgICAgICAgcmVuZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQo
KTsKIH0KIAorI2lmIEVOQUJMRShWSURFT19UUkFDSykKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
bG9hZFRleHRUcmFja3MoKQoreworICAgIGZvciAoTm9kZSogbm9kZSA9IGZpcnN0Q2hpbGQoKTsg
bm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKG5vZGUtPmhh
c1RhZ05hbWUodHJhY2tUYWcpKSB7CisgICAgICAgICAgICBIVE1MVHJhY2tFbGVtZW50KiB0cmFj
ayA9IHN0YXRpY19jYXN0PEhUTUxUcmFja0VsZW1lbnQqPihub2RlKTsKKyAgICAgICAgICAgIHRy
YWNrLT5sb2FkKEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAg
ICAgICAgfQorICAgIH0KK30KKyNlbmRpZgorCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmlzU2Fm
ZVRvTG9hZFVSTChjb25zdCBLVVJMJiB1cmwsIEludmFsaWRTb3VyY2VBY3Rpb24gYWN0aW9uSWZJ
bnZhbGlkKQogewogICAgIGlmICghdXJsLmlzVmFsaWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuaAppbmRleCBlMWVjNDU5NDJiMjU5NTUwZTljYjE4MWYzYWNjYzQxMDlj
NDkyZmYyLi42MjM4YjA0Y2QxMDRmNzYwMDk3NmJjZWQ0N2Q5NGVlY2I5ZjlkZmMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMzAwLDYgKzMwMCwxMCBAQCBwcml2
YXRlOgogICAgIEtVUkwgc2VsZWN0TmV4dFNvdXJjZUNoaWxkKENvbnRlbnRUeXBlKiwgSW52YWxp
ZFNvdXJjZUFjdGlvbik7CiAgICAgdm9pZCBtZWRpYUxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6
Ok5ldHdvcmtTdGF0ZSk7CiAKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgdm9pZCBsb2Fk
VGV4dFRyYWNrcygpOworI2VuZGlmCisKICAgICAvLyBUaGVzZSAiaW50ZXJuYWwiIGZ1bmN0aW9u
cyBkbyBub3QgY2hlY2sgdXNlciBnZXN0dXJlIHJlc3RyaWN0aW9ucy4KICAgICB2b2lkIGxvYWRJ
bnRlcm5hbCgpOwogICAgIHZvaWQgcGxheUludGVybmFsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVHJhY2tFbGVtZW50LmNwcAppbmRleCA2M2YyNzg4Yjg4MDYwYjhiYTc2NGYyOWViZWNlNmNi
NmRkYTFmNDQ2Li4zYWFiYWNjMzVlYzZhNmYzMDVkZjdkZTUzMmRkYzFkNGM3ODVlNDM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKQEAgLTQ1LDYgKzQ1LDEwIEBA
IGlubGluZSBIVE1MVHJhY2tFbGVtZW50OjpIVE1MVHJhY2tFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50CiAgICAgQVNTRVJUKGhhc1RhZ05hbWUodHJhY2tUYWcp
KTsKIH0KIAorSFRNTFRyYWNrRWxlbWVudDo6fkhUTUxUcmFja0VsZW1lbnQoKQoreworfQorCiBQ
YXNzUmVmUHRyPEhUTUxUcmFja0VsZW1lbnQ+IEhUTUxUcmFja0VsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBIVE1MVHJhY2tFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CkBA
IC0xMjMsNiArMTI3LDE0IEBAIGJvb2wgSFRNTFRyYWNrRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUo
QXR0cmlidXRlKiBhdHRyaWJ1dGUpIGNvbnN0CiAgICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgp
ID09IHNyY0F0dHI7CiB9CiAKK3ZvaWQgSFRNTFRyYWNrRWxlbWVudDo6bG9hZChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0KQoreworICAgIG1fdHJhY2sgPSBMb2FkYWJsZVRleHRUcmFj
azo6Y3JlYXRlKGtpbmQoKSwgbGFiZWwoKSwgc3JjbGFuZygpLCBpc0RlZmF1bHQoKSk7CisKKyAg
ICBpZiAoaGFzQXR0cmlidXRlKHNyY0F0dHIpKQorICAgICAgICBtX3RyYWNrLT5sb2FkKGdldE5v
bkVtcHR5VVJMQXR0cmlidXRlKHNyY0F0dHIpLCBjb250ZXh0KTsKK30KKwogfQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKaW5kZXggNDY5N2UwMmFiOGNlNzRi
ZDljMzg3N2IwNDI0Y2RkNmExOGQxOTA5YS4uOTQ2NTY0MmU1Njc1NzU2MDhhNjQ2OGQzMDNmODRk
YWQ2OGI3NWM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmgKQEAgLTI5
LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAKICNpbmNsdWRlICJIVE1MRWxl
bWVudC5oIgorI2luY2x1ZGUgIkxvYWRhYmxlVGV4dFRyYWNrLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDcsMTMgKzQ4LDE4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNyY2xhbmco
Y29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXRMYWJlbChjb25zdCBTdHJpbmcmKTsKICAgICB2
b2lkIHNldElzRGVmYXVsdChib29sKTsKKyAgICAKKyAgICB2b2lkIGxvYWQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCopOwogCiBwcml2YXRlOgogICAgIEhUTUxUcmFja0VsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+SFRNTFRyYWNrRWxlbWVudCgp
OwogCiAgICAgdmlydHVhbCB2b2lkIGluc2VydGVkSW50b1RyZWUoYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxSZW1vdmUoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0
cmlidXRlKikgY29uc3Q7CisgICAgCisgICAgUmVmUHRyPExvYWRhYmxlVGV4dFRyYWNrPiBtX3Ry
YWNrOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRl
eHRUcmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmNwcApp
bmRleCBkYjlkYWExNDVjODNmNmM2YWJiY2YzMDUxN2Q3N2E0YzNlYjlhZTE0Li40ZWIyNDg1YzRi
NTA2ZGJlODgxMTJhMjczODlmZjlmZTM0YTk4MzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xv
YWRhYmxlVGV4dFRyYWNrLmNwcApAQCAtMzIsMTkgKzMyLDUzIEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIExvYWRhYmxlVGV4dFRyYWNrOjpMb2FkYWJsZVRleHRUcmFjayhjb25zdCBTdHJpbmcm
IGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wg
aXNEZWZhdWx0KQorICAgIDogVGV4dFRyYWNrKGtpbmQsIGxhYmVsLCBsYW5ndWFnZSkKKyAgICAs
IG1faXNEZWZhdWx0KGlzRGVmYXVsdCkKIHsKLSAgICAvLyBGSVhNRSg2Mjg4MSk6IEltcGxlbWVu
dC4KLSAgICBtX3ByaXZhdGUgPSBMb2FkYWJsZVRleHRUcmFja0ltcGw6OmNyZWF0ZShraW5kLCBs
YWJlbCwgbGFuZ3VhZ2UsIGlzRGVmYXVsdCk7CiB9CiAKIExvYWRhYmxlVGV4dFRyYWNrOjp+TG9h
ZGFibGVUZXh0VHJhY2soKQogewotICAgIC8vIEZJWE1FKDYyODgxKTogSW1wbGVtZW50LgogfQog
Ci12b2lkIExvYWRhYmxlVGV4dFRyYWNrOjpsb2FkKGNvbnN0IFN0cmluZyYpCit2b2lkIExvYWRh
YmxlVGV4dFRyYWNrOjpsb2FkKGNvbnN0IFN0cmluZyYgdXJsLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0KQogewotICAgIC8vIEZJWE1FKDYyODgxKTogSW1wbGVtZW50LgorICAgIHJl
dHVybiBtX3BhcnNlci5sb2FkKHVybCwgY29udGV4dCwgdGhpcyk7Cit9CisKK2Jvb2wgTG9hZGFi
bGVUZXh0VHJhY2s6OnN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICByZXR1
cm4gbV9wYXJzZXIuc3VwcG9ydHNUeXBlKHVybCk7Cit9CisKK3ZvaWQgTG9hZGFibGVUZXh0VHJh
Y2s6Om5ld0N1ZXNQYXJzZWQoKQoreworICAgIC8vIEZJWE1FKDYyODgzKTogRmV0Y2ggbmV3IGN1
ZXMgZnJvbSBwYXJzZXIgYW5kIHRlbXBvcmFyaWx5IHN0b3JlIHRvIGdpdmUgdG8gQ3VlTG9hZGVy
Q2xpZW50IHdoZW4gZmV0Y2hOZXdDdWVzRnJvbUxvYWRlciBpcyBjYWxsZWQuCit9CisKK3ZvaWQg
TG9hZGFibGVUZXh0VHJhY2s6OnRyYWNrTG9hZFN0YXJ0ZWQoKQoreworICAgIHNldFJlYWR5U3Rh
dGUoVGV4dFRyYWNrOjpMT0FESU5HKTsKK30KKwordm9pZCBMb2FkYWJsZVRleHRUcmFjazo6dHJh
Y2tMb2FkRXJyb3IoKQoreworICAgIHNldFJlYWR5U3RhdGUoVGV4dFRyYWNrOjpFUlJPUik7Cit9
CisKK3ZvaWQgTG9hZGFibGVUZXh0VHJhY2s6OnRyYWNrTG9hZENvbXBsZXRlZCgpCit7CisgICAg
c2V0UmVhZHlTdGF0ZShUZXh0VHJhY2s6OkxPQURFRCk7Cit9CisKK3ZvaWQgTG9hZGFibGVUZXh0
VHJhY2s6Om5ld0N1ZXNMb2FkZWQoKQoreworICAgIC8vIEZJWE1FKDYyODg1KTogVGVsbCB0aGUg
Y2xpZW50IHRvIGZldGNoIHRoZSBsYXRlc3QgY3Vlcy4KK30KKwordm9pZCBMb2FkYWJsZVRleHRU
cmFjazo6ZmV0Y2hOZXdlc3RDdWVzKFZlY3RvcjxUZXh0VHJhY2tDdWUqPiYpCit7CisgICAgLy8g
RklYTUUoNjI4ODUpOiBJbXBsZW1lbnQuCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVUZXh0VHJhY2suaAppbmRleCBiNzEyOTYyMWRhNjI4OTk4
NjMxOGY3M2VkN2VjODI5YWNmODQyNzc0Li5jNTVlZDI2YTZhMmEwNTI2NGQyNDdmMDE1MDZiYWYw
ODMxYjU5OGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRy
YWNrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRleHRUcmFjay5oCkBAIC0y
OCwxNCArMjgsMjAgQEAKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAotI2luY2x1ZGUgIkxv
YWRhYmxlVGV4dFRyYWNrSW1wbC5oIgotI2luY2x1ZGUgIlBhc3NSZWZQdHIuaCIKKyNpbmNsdWRl
ICJDdWVMb2FkZXIuaCIKKyNpbmNsdWRlICJDdWVQYXJzZXIuaCIKICNpbmNsdWRlICJUZXh0VHJh
Y2suaCIKICNpbmNsdWRlICJUZXh0VHJhY2tDdWVMaXN0LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgTG9hZGFibGVUZXh0VHJhY2sgOiBwdWJsaWMgVGV4dFRyYWNrIHsKK2NsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitjbGFzcyBUZXh0VHJhY2s7CitjbGFzcyBUZXh0VHJhY2tD
dWU7CisKK2NsYXNzIExvYWRhYmxlVGV4dFRyYWNrIDogcHVibGljIFRleHRUcmFjaywgcHVibGlj
IEN1ZVBhcnNlckNsaWVudCwgcHVibGljIEN1ZUxvYWRlciB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8TG9hZGFibGVUZXh0VHJhY2s+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGtpbmQs
IGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIGJvb2wgaXNEZWZh
dWx0KQogICAgIHsKQEAgLTQzLDExICs0OSwyMyBAQCBwdWJsaWM6CiAgICAgfQogICAgIHZpcnR1
YWwgfkxvYWRhYmxlVGV4dFRyYWNrKCk7CiAKLSAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJik7
CisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
KyAgICBib29sIHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmKTsKKworICAgIHZpcnR1YWwgdm9p
ZCBuZXdDdWVzUGFyc2VkKCk7CisgICAgdmlydHVhbCB2b2lkIHRyYWNrTG9hZFN0YXJ0ZWQoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tMb2FkRXJyb3IoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJh
Y2tMb2FkQ29tcGxldGVkKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgbmV3Q3Vlc0xvYWRlZCgpOwor
ICAgIHZpcnR1YWwgdm9pZCBmZXRjaE5ld2VzdEN1ZXMoVmVjdG9yPFRleHRUcmFja0N1ZSo+Jik7
CiAKIHByaXZhdGU6CiAgICAgTG9hZGFibGVUZXh0VHJhY2soY29uc3QgU3RyaW5nJiBraW5kLCBj
b25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVs
dCk7CiAKKyAgICBDdWVQYXJzZXIgbV9wYXJzZXI7CisKKyAgICBib29sIG1faXNEZWZhdWx0Owog
fTsKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9Mb2FkYWJsZVRleHRUcmFja0ltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2Fk
YWJsZVRleHRUcmFja0ltcGwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZmZj
NjlkMmVmY2NiYzUyZjdiOTcyNzk3YWNhY2U4MjY3ODNlOWQwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTG9hZGFibGVU
ZXh0VHJhY2tJbXBsLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotCi0jaW5j
bHVkZSAiTG9hZGFibGVUZXh0VHJhY2tJbXBsLmgiCi0KLSNpbmNsdWRlICJUZXh0VHJhY2tDdWVM
aXN0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotTG9hZGFibGVUZXh0VHJhY2tJbXBsOjpM
b2FkYWJsZVRleHRUcmFja0ltcGwoY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxh
YmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCkKLSAgICA6IFRleHRU
cmFja1ByaXZhdGVJbnRlcmZhY2Uoa2luZCwgbGFiZWwsIGxhbmd1YWdlKQotICAgICwgbV9pc0Rl
ZmF1bHQoaXNEZWZhdWx0KQotewotfQotCi1Mb2FkYWJsZVRleHRUcmFja0ltcGw6On5Mb2FkYWJs
ZVRleHRUcmFja0ltcGwoKQotewotfQotCi1QYXNzUmVmUHRyPFRleHRUcmFja0N1ZUxpc3Q+IExv
YWRhYmxlVGV4dFRyYWNrSW1wbDo6Y3VlcygpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUUoNjI4ODUp
OiBJbXBsZW1lbnQuCi0gICAgcmV0dXJuIDA7Ci19Ci0KLVBhc3NSZWZQdHI8VGV4dFRyYWNrQ3Vl
TGlzdD4gTG9hZGFibGVUZXh0VHJhY2tJbXBsOjphY3RpdmVDdWVzKCkgY29uc3QKLXsKLSAgICAv
LyBGSVhNRSg2Mjg4NSk6IEltcGxlbWVudC4KLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBMb2Fk
YWJsZVRleHRUcmFja0ltcGw6OmZldGNoTmV3ZXN0Q3VlcyhWZWN0b3I8VGV4dFRyYWNrQ3VlKj4m
KQotewotICAgIC8vIEZJWE1FKDYyODg1KTogSW1wbGVtZW50LgotfQotCi12b2lkIExvYWRhYmxl
VGV4dFRyYWNrSW1wbDo6bG9hZChjb25zdCBTdHJpbmcmKQotewotICAgIC8vIEZJWE1FKDYyODgx
KTogSW1wbGVtZW50LgotfQotCi12b2lkIExvYWRhYmxlVGV4dFRyYWNrSW1wbDo6bmV3Q3Vlc0xv
YWRlZCgpCi17Ci0gICAgLy8gRklYTUUoNjI4ODEpOiBJbXBsZW1lbnQuCi19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0xvYWRhYmxlVGV4dFRyYWNrSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Mb2FkYWJsZVRl
eHRUcmFja0ltcGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWE4MTY3NDE1MmMx
YmYwMWU4MGJlMGY1YjA4ZjJjZTQ5Yzk4NjhhZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0xvYWRhYmxlVGV4dFRyYWNr
SW1wbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
TG9hZGFibGVUZXh0VHJhY2tJbXBsX2gKLSNkZWZpbmUgTG9hZGFibGVUZXh0VHJhY2tJbXBsX2gK
LQotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLQotI2luY2x1ZGUgIkN1ZUxvYWRlci5oIgotI2lu
Y2x1ZGUgIkN1ZVBhcnNlci5oIgotI2luY2x1ZGUgIlRleHRUcmFja1ByaXZhdGUuaCIKLSNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBUZXh0VHJhY2s7Ci1jbGFzcyBUZXh0VHJhY2tDdWU7Ci1j
bGFzcyBUZXh0VHJhY2tDdWVMaXN0OwotCi1jbGFzcyBMb2FkYWJsZVRleHRUcmFja0ltcGwgOiBw
dWJsaWMgVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSwgcHVibGljIEN1ZUxvYWRlciB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8TG9hZGFibGVUZXh0VHJhY2tJbXBsPiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGxh
bmd1YWdlLCBib29sIGlzRGVmYXVsdCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgTG9hZGFibGVUZXh0VHJhY2tJbXBsKGtpbmQsIGxhYmVsLCBsYW5ndWFnZSwgaXNEZWZhdWx0
KSk7Ci0gICAgfQotICAgIHZpcnR1YWwgfkxvYWRhYmxlVGV4dFRyYWNrSW1wbCgpOwotCi0gICAg
Ly8gVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSBtZXRob2RzCi0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPFRleHRUcmFja0N1ZUxpc3Q+IGN1ZXMoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8VGV4dFRyYWNrQ3VlTGlzdD4gYWN0aXZlQ3VlcygpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9p
ZCBsb2FkKGNvbnN0IFN0cmluZyYpOwotCi0gICAgLy8gQ3VlTG9hZGVyIGludGVyZmFjZQotICAg
IHZpcnR1YWwgdm9pZCBuZXdDdWVzTG9hZGVkKCk7Ci0gICAgdmlydHVhbCB2b2lkIGZldGNoTmV3
ZXN0Q3VlcyhWZWN0b3I8VGV4dFRyYWNrQ3VlKj4mKTsKLQotcHJpdmF0ZToKLSAgICBMb2FkYWJs
ZVRleHRUcmFja0ltcGwoY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBj
b25zdCBTdHJpbmcmIGxhbmd1YWdlLCBib29sIGlzRGVmYXVsdCk7Ci0KLSAgICBib29sIG1faXNE
ZWZhdWx0OwotCi0gICAgQ3VlUGFyc2VyIG1fcGFyc2VyOwotICAgIFJlZlB0cjxUZXh0VHJhY2tD
dWVMaXN0PiBtX2N1ZXM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL011dGFibGVUZXh0VHJhY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NdXRhYmxlVGV4dFRyYWNrLmNwcAppbmRleCA0MDMy
ZTRiNGJlY2Q4ZjJkMTZiMGMyNWM1NTkzMThlODdiMGM1N2U4Li40ZDY4MzU0Njk2NjY0NjlkOWNm
ZmY4MjYzYTJmMmM1MGEzNGJmNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL011
dGFibGVUZXh0VHJhY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTXV0YWJsZVRleHRU
cmFjay5jcHAKQEAgLTI5LDEzICsyOSwxNCBAQAogCiAjaW5jbHVkZSAiTXV0YWJsZVRleHRUcmFj
ay5oIgogCi0jaW5jbHVkZSAiTXV0YWJsZVRleHRUcmFja0ltcGwuaCIKKyNpbmNsdWRlICJUZXh0
VHJhY2suaCIKKyNpbmNsdWRlICJUZXh0VHJhY2tDdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBNdXRhYmxlVGV4dFRyYWNrOjpNdXRhYmxlVGV4dFRyYWNrKGNvbnN0IFN0cmluZyYga2lu
ZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKKyAgICA6IFRl
eHRUcmFjayhraW5kLCBsYWJlbCwgbGFuZ3VhZ2UpCiB7Ci0gICAgbV9wcml2YXRlID0gTXV0YWJs
ZVRleHRUcmFja0ltcGw6OmNyZWF0ZShraW5kLCBsYWJlbCwgbGFuZ3VhZ2UpOwogfQogCiB2b2lk
IE11dGFibGVUZXh0VHJhY2s6OmFkZEN1ZShQYXNzUmVmUHRyPFRleHRUcmFja0N1ZT4pCkBAIC00
OCw2ICs0OSwxNiBAQCB2b2lkIE11dGFibGVUZXh0VHJhY2s6OnJlbW92ZUN1ZShQYXNzUmVmUHRy
PFRleHRUcmFja0N1ZT4pCiAgICAgLy8gRklYTUUoNjI4OTApOiBJbXBsZW1lbnQuCiB9CiAKK3Zv
aWQgTXV0YWJsZVRleHRUcmFjazo6bmV3Q3Vlc0xvYWRlZCgpCit7CisgICAgLy8gRklYTUUoNjI4
OTApOiBJbXBsZW1lbnQuCit9CisKK3ZvaWQgTXV0YWJsZVRleHRUcmFjazo6ZmV0Y2hOZXdlc3RD
dWVzKFZlY3RvcjxUZXh0VHJhY2tDdWUqPiYpCit7CisgICAgLy8gRklYTUUoNjI4OTApOiBJbXBs
ZW1lbnQuCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL011dGFibGVUZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTXV0YWJsZVRleHRUcmFjay5oCmluZGV4IDgzMzNjYzlhOWQwZTdmOWNkYTNmMWQ1OGM4
MzNlYzU3NTM0NmRmOTcuLjYxOGMyNzIyZDVjMzI1OGNhNmIxN2RjMjc2MTBkNzM1Mjg5MDMxZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTXV0YWJsZVRleHRUcmFjay5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTXV0YWJsZVRleHRUcmFjay5oCkBAIC0yOCwxMyArMjgsMTYg
QEAKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKIAorI2luY2x1ZGUgIkN1ZUxvYWRlci5oIgog
I2luY2x1ZGUgIlRleHRUcmFjay5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFRleHRU
cmFja0N1ZTsKIAotY2xhc3MgTXV0YWJsZVRleHRUcmFjayA6IHB1YmxpYyBUZXh0VHJhY2sgewor
Y2xhc3MgTXV0YWJsZVRleHRUcmFjayA6IHB1YmxpYyBUZXh0VHJhY2ssIHB1YmxpYyBDdWVMb2Fk
ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE11dGFibGVUZXh0VHJhY2s+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmlu
ZyYgbGFuZ3VhZ2UpCiAgICAgewpAQCAtNDQsNiArNDcsMTAgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBhZGRDdWUoUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+KTsKICAgICB2b2lkIHJlbW92ZUN1ZShQ
YXNzUmVmUHRyPFRleHRUcmFja0N1ZT4pOworCisgICAgdmlydHVhbCB2b2lkIG5ld0N1ZXNMb2Fk
ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZmV0Y2hOZXdlc3RDdWVzKFZlY3RvcjxUZXh0VHJhY2tD
dWUqPiYpOworCiBwcml2YXRlOgogICAgIE11dGFibGVUZXh0VHJhY2soY29uc3QgU3RyaW5nJiBr
aW5kLCBjb25zdCBTdHJpbmcmIGxhYmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlKTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL011dGFibGVUZXh0VHJhY2tJbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTXV0YWJsZVRleHRUcmFja0ltcGwuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjMDg3MGIxZTIxOTMyNTQ4ODQ0ZmM3ODZjZDFhY2M3NjhmMWY1
ZTI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTXV0YWJsZVRleHRUcmFja0ltcGwuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsODEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCi0KLSNpbmNsdWRlICJNdXRhYmxlVGV4dFRyYWNrSW1wbC5oIgotCi0j
aW5jbHVkZSAiVGV4dFRyYWNrLmgiCi0jaW5jbHVkZSAiVGV4dFRyYWNrQ3VlLmgiCi0jaW5jbHVk
ZSAiVGV4dFRyYWNrQ3VlTGlzdC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLU11dGFibGVU
ZXh0VHJhY2tJbXBsOjpNdXRhYmxlVGV4dFRyYWNrSW1wbChjb25zdCBTdHJpbmcmIGtpbmQsIGNv
bnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UpCi0gICAgOiBUZXh0VHJh
Y2tQcml2YXRlSW50ZXJmYWNlKGtpbmQsIGxhYmVsLCBsYW5ndWFnZSkKLXsKLX0KLQotTXV0YWJs
ZVRleHRUcmFja0ltcGw6On5NdXRhYmxlVGV4dFRyYWNrSW1wbCgpCi17Ci19Ci0KLXZvaWQgTXV0
YWJsZVRleHRUcmFja0ltcGw6OmFkZEN1ZShUZXh0VHJhY2tDdWUqKQotewotICAgIC8vIEZJWE1F
KDYyODkwKTogSW1wbGVtZW50LgotfQotCi12b2lkIE11dGFibGVUZXh0VHJhY2tJbXBsOjpyZW1v
dmVDdWUoVGV4dFRyYWNrQ3VlKikKLXsKLSAgICAvLyBGSVhNRSg2Mjg5MCk6IEltcGxlbWVudC4K
LX0KLQotUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBNdXRhYmxlVGV4dFRyYWNrSW1wbDo6
Y3VlcygpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUUoNjI4ODUpOiBJbXBsZW1lbnQuCi0gICAgcmV0
dXJuIDA7Ci19Ci0KLVBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gTXV0YWJsZVRleHRUcmFj
a0ltcGw6OmFjdGl2ZUN1ZXMoKSBjb25zdAotewotICAgIC8vIEZJWE1FKDYyODg1KTogSW1wbGVt
ZW50LgotICAgIHJldHVybiAwOwotfQotCi12b2lkIE11dGFibGVUZXh0VHJhY2tJbXBsOjpuZXdD
dWVzTG9hZGVkKCkKLXsKLSAgICAvLyBGSVhNRSg2Mjg5MCk6IEltcGxlbWVudC4KLX0KLQotdm9p
ZCBNdXRhYmxlVGV4dFRyYWNrSW1wbDo6ZmV0Y2hOZXdlc3RDdWVzKFZlY3RvcjxUZXh0VHJhY2tD
dWUqPiYpCi17Ci0gICAgLy8gRklYTUUoNjI4OTApOiBJbXBsZW1lbnQuCi19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L011dGFibGVUZXh0VHJhY2tJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL011dGFibGVUZXh0
VHJhY2tJbXBsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1OTg1NGNmNmYzMzUw
MGQxMWE3MDc3MWJlY2U3ZTMxMGM1NDgxMzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9NdXRhYmxlVGV4dFRyYWNrSW1w
bC5oCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTXV0
YWJsZVRleHRUcmFja0ltcGxfaAotI2RlZmluZSBNdXRhYmxlVGV4dFRyYWNrSW1wbF9oCi0KLSNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCi0KLSNpbmNsdWRlICJDdWVMb2FkZXIuaCIKLSNpbmNsdWRl
ICJUZXh0VHJhY2tQcml2YXRlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ3VlTG9h
ZGVyQ2xpZW50OwotY2xhc3MgVGV4dFRyYWNrOwotY2xhc3MgVGV4dFRyYWNrQ3VlOwotY2xhc3Mg
VGV4dFRyYWNrQ3VlTGlzdDsKLQotY2xhc3MgTXV0YWJsZVRleHRUcmFja0ltcGwgOiBwdWJsaWMg
VGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSwgcHVibGljIEN1ZUxvYWRlciB7Ci1wdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NPd25QdHI8TXV0YWJsZVRleHRUcmFja0ltcGw+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2Up
Ci0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IE11dGFibGVUZXh0VHJhY2tJbXBs
KGtpbmQsIGxhYmVsLCBsYW5ndWFnZSkpOwotICAgIH0KLSAgICB2aXJ0dWFsIH5NdXRhYmxlVGV4
dFRyYWNrSW1wbCgpOwotCi0gICAgLy8gVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSBtZXRob2Rz
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUxpc3Q+IGN1ZXMoKSBjb25zdDsK
LSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gYWN0aXZlQ3VlcygpIGNv
bnN0OwotICAgIHZpcnR1YWwgdm9pZCBhZGRDdWUoVGV4dFRyYWNrQ3VlKik7Ci0gICAgdmlydHVh
bCB2b2lkIHJlbW92ZUN1ZShUZXh0VHJhY2tDdWUqKTsKLQotICAgIC8vIEN1ZUxvYWRlciBpbnRl
cmZhY2UKLSAgICB2aXJ0dWFsIHZvaWQgbmV3Q3Vlc0xvYWRlZCgpOwotICAgIHZpcnR1YWwgdm9p
ZCBmZXRjaE5ld2VzdEN1ZXMoVmVjdG9yPFRleHRUcmFja0N1ZSo+Jik7Ci0KLXByaXZhdGU6Ci0g
ICAgTXV0YWJsZVRleHRUcmFja0ltcGwoY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcm
IGxhYmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlKTsKLQotICAgIFJlZlB0cjxUZXh0VHJhY2tD
dWVMaXN0PiBtX2N1ZXM7Ci0gICAgVmVjdG9yPFRleHRUcmFja0N1ZSo+IG1fbmV3ZXN0Q3VlczsK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dFRyYWNrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dFRyYWNrLmNwcAppbmRleCA2MzNlNThkZWU5ZDI5MTZjODgxNWFjODk2ZDg1NTcxYWJl
NDFhNGZjLi5jYjBiMDQ2ZDU0YmZjYzEyNGMzYzgyMDQ4MTk5ODhhZGNhMmI4OTYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRUcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0VHJhY2suY3BwCkBAIC0zNSwzNCArMzUsMTUgQEAKICNpbmNsdWRlICJUZXh0
VHJhY2suaCIKIAogI2luY2x1ZGUgIlRleHRUcmFja0N1ZUxpc3QuaCIKLSNpbmNsdWRlICJUZXh0
VHJhY2tQcml2YXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTnVsbFRleHRU
cmFja1ByaXZhdGUgOiBwdWJsaWMgVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSB7Ci1wdWJsaWM6
Ci0gICAgTnVsbFRleHRUcmFja1ByaXZhdGUoKTsKLSAgICB2aXJ0dWFsIH5OdWxsVGV4dFRyYWNr
UHJpdmF0ZSgpOwotCi0gICAgLy8gVGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSBtZXRob2RzCi0g
ICAgdmlydHVhbCBTdHJpbmcga2luZCgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0K
LSAgICB2aXJ0dWFsIFN0cmluZyBsYWJlbCgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
IH0KLSAgICB2aXJ0dWFsIFN0cmluZyBsYW5ndWFnZSgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7IH0KLSAgICB2aXJ0dWFsIFRleHRUcmFjazo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkg
Y29uc3QgeyByZXR1cm4gVGV4dFRyYWNrOjpOT05FOyB9Ci0gICAgdmlydHVhbCBUZXh0VHJhY2s6
Ok1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJuIFRleHRUcmFjazo6T0ZGOyB9Ci0gICAgdmlydHVh
bCB2b2lkIHNldE1vZGUoVGV4dFRyYWNrOjpNb2RlKSB7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8VGV4dFRyYWNrQ3VlTGlzdD4gY3VlcygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8VGV4dFRyYWNrQ3VlTGlzdD4gYWN0aXZlQ3VlcygpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSB7IH0KLX07Ci0K
LXN0YXRpYyBQYXNzT3duUHRyPE51bGxUZXh0VHJhY2tQcml2YXRlPiBjcmVhdGVOdWxsVGV4dFRy
YWNrUHJpdmF0ZSgpCi17Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOdWxsVGV4dFRyYWNrUHJp
dmF0ZSgpKTsKLX0KLQotVGV4dFRyYWNrOjpUZXh0VHJhY2soKQotICAgIDogbV9wcml2YXRlKGNy
ZWF0ZU51bGxUZXh0VHJhY2tQcml2YXRlKCkpCitUZXh0VHJhY2s6OlRleHRUcmFjayhjb25zdCBT
dHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2Up
CisgICAgOiBtX2tpbmQoa2luZCkKKyAgICAsIG1fbGFiZWwobGFiZWwpCisgICAgLCBtX2xhbmd1
YWdlKGxhbmd1YWdlKQorICAgICwgbV9yZWFkeVN0YXRlKFRleHRUcmFjazo6Tk9ORSkKKyAgICAs
IG1fbW9kZShUZXh0VHJhY2s6OlNIT1dJTkcpCiB7CiB9CiAKQEAgLTcyLDI3ICs1MywzMiBAQCBU
ZXh0VHJhY2s6On5UZXh0VHJhY2soKQogCiBTdHJpbmcgVGV4dFRyYWNrOjpraW5kKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5raW5kKCk7CisgICAgcmV0dXJuIG1fa2luZDsKIH0K
IAogU3RyaW5nIFRleHRUcmFjazo6bGFiZWwoKSBjb25zdAogewotICAgIHJldHVybiBtX3ByaXZh
dGUtPmxhYmVsKCk7CisgICAgcmV0dXJuIG1fbGFiZWw7CiB9CiAKIFN0cmluZyBUZXh0VHJhY2s6
Omxhbmd1YWdlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5sYW5ndWFnZSgpOwor
ICAgIHJldHVybiBtX2xhbmd1YWdlOwogfQogCiBUZXh0VHJhY2s6OlJlYWR5U3RhdGUgVGV4dFRy
YWNrOjpyZWFkeVN0YXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5yZWFkeVN0
YXRlKCk7CisgICAgcmV0dXJuIG1fcmVhZHlTdGF0ZTsKK30KKwordm9pZCBUZXh0VHJhY2s6OnNl
dFJlYWR5U3RhdGUoUmVhZHlTdGF0ZSBzdGF0ZSkKK3sKKyAgICBtX3JlYWR5U3RhdGUgPSBzdGF0
ZTsKIH0KIAogVGV4dFRyYWNrOjpNb2RlIFRleHRUcmFjazo6bW9kZSgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fcHJpdmF0ZS0+bW9kZSgpOworICAgIHJldHVybiBtX21vZGU7CiB9CiAKIHZvaWQg
VGV4dFRyYWNrOjpzZXRNb2RlKHVuc2lnbmVkIHNob3J0IG1vZGUsIEV4Y2VwdGlvbkNvZGUmIGVj
KQpAQCAtMTAwLDE5ICs4NiwyMSBAQCB2b2lkIFRleHRUcmFjazo6c2V0TW9kZSh1bnNpZ25lZCBz
aG9ydCBtb2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAvLyA0LjguMTAuMTIuNSBPbiBzZXR0
aW5nIHRoZSBtb2RlLCBpZiB0aGUgbmV3IHZhbHVlIGlzIG5vdCBlaXRoZXIgMCwgMSwgb3IgMiwK
ICAgICAvLyB0aGUgdXNlciBhZ2VudCBtdXN0IHRocm93IGFuIElOVkFMSURfQUNDRVNTX0VSUiBl
eGNlcHRpb24uCiAgICAgaWYgKG1vZGUgPT0gVGV4dFRyYWNrOjpPRkYgfHwgbW9kZSA9PSBUZXh0
VHJhY2s6OkhJRERFTiB8fCBtb2RlID09IFRleHRUcmFjazo6U0hPV0lORykKLSAgICAgICAgbV9w
cml2YXRlLT5zZXRNb2RlKHN0YXRpY19jYXN0PE1vZGU+KG1vZGUpKTsKKyAgICAgICAgbV9tb2Rl
ID0gc3RhdGljX2Nhc3Q8TW9kZT4obW9kZSk7CiAgICAgZWxzZQogICAgICAgICBlYyA9IElOVkFM
SURfQUNDRVNTX0VSUjsKIH0KIAogUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBUZXh0VHJh
Y2s6OmN1ZXMoKSBjb25zdAogewotICAgIHJldHVybiBtX3ByaXZhdGUtPmN1ZXMoKTsKKyAgICAv
LyBGSVhNRSg2Mjg4NSk6IEltcGxlbWVudC4KKyAgICByZXR1cm4gMDsKIH0KIAogUGFzc1JlZlB0
cjxUZXh0VHJhY2tDdWVMaXN0PiBUZXh0VHJhY2s6OmFjdGl2ZUN1ZXMoKSBjb25zdAogewotICAg
IHJldHVybiBtX3ByaXZhdGUtPmFjdGl2ZUN1ZXMoKTsKKyAgICAvLyBGSVhNRSg2Mjg4NSk6IElt
cGxlbWVudC4KKyAgICByZXR1cm4gMDsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2suaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGV4dFRyYWNrLmgKaW5kZXggZTRlYTEwNzVmNDBjODVlOWY2MmJkZDFlNmQ4NWUwODlk
ZmEzMmE1MS4uOWE4MmY4M2VlMWY3MmRhZWQ2YzYyYzEwMGI1YjU0MDczODEwZmZhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHRUcmFjay5oCkBAIC0zNyw3ICszNyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgVGV4dFRyYWNrOwogY2xhc3MgVGV4dFRyYWNrQ3VlTGlzdDsKLWNsYXNzIFRleHRU
cmFja1ByaXZhdGVJbnRlcmZhY2U7CiAKIGNsYXNzIFRleHRUcmFja0NsaWVudCB7CiBwdWJsaWM6
CkBAIC00OSw5ICs0OCw5IEBAIHB1YmxpYzoKIAogY2xhc3MgVGV4dFRyYWNrIDogcHVibGljIFJl
ZkNvdW50ZWQ8VGV4dFRyYWNrPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4
dFRyYWNrPiBjcmVhdGUoKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRUcmFjaz4gY3JlYXRl
KGNvbnN0IFN0cmluZyYga2luZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBs
YW5ndWFnZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dFRyYWNrKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUZXh0VHJhY2soa2luZCwgbGFiZWwsIGxhbmd1
YWdlKSk7CiAgICAgfQogICAgIHZpcnR1YWwgflRleHRUcmFjaygpOwogCkBAIC03Myw4ICs3Miwx
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb2RlQ2hhbmdlZCgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAg
VGV4dFRyYWNrKCk7Ci0gICAgT3duUHRyPFRleHRUcmFja1ByaXZhdGVJbnRlcmZhY2U+IG1fcHJp
dmF0ZTsKKyAgICBUZXh0VHJhY2soY29uc3QgU3RyaW5nJiBraW5kLCBjb25zdCBTdHJpbmcmIGxh
YmVsLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlKTsKKworICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShS
ZWFkeVN0YXRlKTsKKworICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVMaXN0PiBtX2N1ZXM7CisKK3By
aXZhdGU6CisgICAgU3RyaW5nIG1fa2luZDsKKyAgICBTdHJpbmcgbV9sYWJlbDsKKyAgICBTdHJp
bmcgbV9sYW5ndWFnZTsKKyAgICBUZXh0VHJhY2s6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlOwor
ICAgIFRleHRUcmFjazo6TW9kZSBtX21vZGU7CiAKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGV4dFRyYWNrUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
VHJhY2tQcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjY2M3YWY5NTI4
YWZlMWMzMjEyNzhhM2NmNTNiZDJiMTA4YTQyYTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0VHJhY2tQcml2YXRl
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBUZXh0
VHJhY2tQcml2YXRlX2gKLSNkZWZpbmUgVGV4dFRyYWNrUHJpdmF0ZV9oCi0KLSNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCi0KLSNpbmNsdWRlICJUZXh0VHJhY2suaCIKLSNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWNsYXNzIEN1ZUxvYWRlckNsaWVudDsKLWNsYXNzIFRleHRUcmFja0N1ZUxpc3Q7Ci0K
LWNsYXNzIFRleHRUcmFja1ByaXZhdGVJbnRlcmZhY2UgewotICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFRleHRUcmFja1ByaXZhdGVJbnRlcmZhY2UpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
LXB1YmxpYzoKLSAgICBUZXh0VHJhY2tQcml2YXRlSW50ZXJmYWNlKGNvbnN0IFN0cmluZyYga2lu
ZCwgY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSkKLSAgICAgICAg
OiBtX2tpbmQoa2luZCkKLSAgICAgICAgLCBtX2xhYmVsKGxhYmVsKQotICAgICAgICAsIG1fbGFu
Z3VhZ2UobGFuZ3VhZ2UpCi0gICAgICAgICwgbV9yZWFkeVN0YXRlKFRleHRUcmFjazo6Tk9ORSkK
LSAgICAgICAgLCBtX21vZGUoVGV4dFRyYWNrOjpTSE9XSU5HKQotICAgIHsKLSAgICB9Ci0gICAg
dmlydHVhbCB+VGV4dFRyYWNrUHJpdmF0ZUludGVyZmFjZSgpIHsgfQotCi0gICAgdmlydHVhbCBT
dHJpbmcga2luZCgpIGNvbnN0IHsgcmV0dXJuIG1fa2luZDsgfQotICAgIHZpcnR1YWwgU3RyaW5n
IGxhYmVsKCkgY29uc3QgeyByZXR1cm4gbV9sYWJlbDsgfQotICAgIHZpcnR1YWwgU3RyaW5nIGxh
bmd1YWdlKCkgY29uc3QgeyByZXR1cm4gbV9sYW5ndWFnZTsgfQotCi0gICAgdmlydHVhbCBUZXh0
VHJhY2s6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlTdGF0
ZTsgfQotCi0gICAgdmlydHVhbCBUZXh0VHJhY2s6Ok1vZGUgbW9kZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbW9kZTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRNb2RlKFRleHRUcmFjazo6TW9kZSBtb2Rl
KSB7IG1fbW9kZSA9IG1vZGU7IH0KLQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUZXh0VHJhY2tD
dWVMaXN0PiBjdWVzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUZXh0VHJh
Y2tDdWVMaXN0PiBhY3RpdmVDdWVzKCkgY29uc3QgPSAwOwotCi0gICAgLy8gVGhpcyBtZXRob2Qg
c2hvdWxkIG9ubHkgYmUgb3ZlcnJpZGRlbiBieSB0cmFja3MgdGhhdCBsb2FkIGN1ZSBkYXRhIGZy
b20gYSBVUkwuCi0gICAgdmlydHVhbCB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJikgeyB9Ci0KLXBy
aXZhdGU6Ci0gICAgU3RyaW5nIG1fa2luZDsKLSAgICBTdHJpbmcgbV9sYWJlbDsKLSAgICBTdHJp
bmcgbV9sYW5ndWFnZTsKLSAgICBUZXh0VHJhY2s6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlOwot
ICAgIFRleHRUcmFjazo6TW9kZSBtX21vZGU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZgotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
cmFjay9DdWVQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdHJhY2svQ3VlUGFy
c2VyLmNwcAppbmRleCAwNjZhMWVhNjA4YWZkNjFlYzM0ZDNkYmIxZjYwOTJkZGViNGExNjRlLi4z
YjM1M2U3YzhjMzVkZWYyMzU0ODdmYjliNzYyYTI5YWQ0MDc1YTE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5jcHAKQEAgLTM0LDYgKzM0LDkgQEAKIAogI2lu
Y2x1ZGUgIkN1ZVBhcnNlci5oIgogCisjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCisjaW5j
bHVkZSAiVGhyZWFkYWJsZUxvYWRlci5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEN1ZVBh
cnNlcjo6Q3VlUGFyc2VyKCkKQEAgLTQzLDE5ICs0Niw1MiBAQCBDdWVQYXJzZXI6OkN1ZVBhcnNl
cigpCiAKIEN1ZVBhcnNlcjo6fkN1ZVBhcnNlcigpCiB7CisgICAgaWYgKG1fbG9hZGVyKQorICAg
ICAgICBtX2xvYWRlci0+Y2FuY2VsKCk7CisgICAgbV9sb2FkZXIgPSAwOworfQorCit2b2lkIEN1
ZVBhcnNlcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgQ3VlUGFyc2VyQ2xpZW50KiBjbGllbnQpCit7CisgICAgUmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QodXJsKTsKKworICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIG9wdGlvbnM7Cisg
ICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IHRydWU7CisgICAgb3B0aW9ucy5jcm9zc09y
aWdpblJlcXVlc3RQb2xpY3kgPSBBbGxvd0Nyb3NzT3JpZ2luUmVxdWVzdHM7CisKKyAgICBtX2Ns
aWVudCA9IGNsaWVudDsKKworICAgIG1fbG9hZGVyID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRl
KGNvbnRleHQsIHRoaXMsIHJlcXVlc3QsIG9wdGlvbnMpOworfQorCitib29sIEN1ZVBhcnNlcjo6
c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdXJsKQoreworICAgIC8vIEZJWE1FKDYyODkzKTog
Y2hlY2sgYWdhaW5zdCBhIGxpc3Qgb2Ygc3VwcG9ydGVkIHR5cGVzCisgICAgcmV0dXJuIGZhbHNl
OworfQorCit2b2lkIEN1ZVBhcnNlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcg
LyppZGVudGlmaWVyKi8sIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQoreworICAgIC8vIEZJWE1F
KDYyODkzKTogQ3JlYXRlIG1fcHJpdmF0ZSBiYXNlZCBvbiBNSU1FIHR5cGUuCisgICAgbV9jbGll
bnQtPnRyYWNrTG9hZFN0YXJ0ZWQoKTsKK30KKwordm9pZCBDdWVQYXJzZXI6OmRpZFJlY2VpdmVE
YXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW4pCit7CisgICAgLy8gRklYTUUoNjI4OTMpOiBT
ZW5kIGRhdGEgYWxvbmcgdG8gbV9wcml2YXRlIHBhcnNlciB0byBiZSBwYXJzZWQuCiB9CiAKLXZv
aWQgQ3VlUGFyc2VyOjpsb2FkKGNvbnN0IFN0cmluZyYpCit2b2lkIEN1ZVBhcnNlcjo6ZGlkRmlu
aXNoTG9hZGluZyh1bnNpZ25lZCBsb25nKQogewotICAgIC8vIEZJWE1FKDYyODgxKTogSW1wbGVt
ZW50LgorICAgIG1fY2xpZW50LT50cmFja0xvYWRDb21wbGV0ZWQoKTsKIH0KIAotdm9pZCBDdWVQ
YXJzZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQpCit2b2lkIEN1ZVBhcnNlcjo6
ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJikKIHsKLSAgICAvLyBGSVhNRSg2Mjg4MSk6IElt
cGxlbWVudC4KKyAgICBtX2NsaWVudC0+dHJhY2tMb2FkRXJyb3IoKTsKIH0KIAotdm9pZCBDdWVQ
YXJzZXI6OmZldGNoUGFyc2VkQ3VlcyhWZWN0b3I8UGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+ID4m
KQordm9pZCBDdWVQYXJzZXI6OmZldGNoUGFyc2VkQ3VlcyhWZWN0b3I8UmVmUHRyPFRleHRUcmFj
a0N1ZT4gPiYpCiB7CiAgICAgLy8gRklYTUUoNjI4OTMpOiBJbXBsZW1lbnQuCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90cmFjay9DdWVQYXJzZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oCmluZGV4IDc3YTc5ZjRiMGQ3NGRmMWUy
Yjk0NGVjZWI2YzZhZjgyOTU3ZDU4YmIuLjc0NGNjMzIyNzhjNWY0Y2Y5ZTRmODJjYTdjNTNhYjE3
YmQ4OWQ4Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBh
cnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RyYWNrL0N1ZVBhcnNlci5oCkBA
IC00MiwyMiArNDIsMzYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OwogY2xhc3MgVGV4dFRyYWNrQ3VlOwogCitjbGFzcyBDdWVQYXJzZXJD
bGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBuZXdDdWVzUGFyc2VkKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB0cmFja0xvYWRTdGFydGVkKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB0cmFja0xvYWRFcnJvcigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhY2tMb2FkQ29tcGxl
dGVkKCkgPSAwOworfTsKKwogY2xhc3MgQ3VlUGFyc2VyIDogcHVibGljIFRocmVhZGFibGVMb2Fk
ZXJDbGllbnQgewogcHVibGljOgogICAgIEN1ZVBhcnNlcigpOwogICAgIHZpcnR1YWwgfkN1ZVBh
cnNlcigpOwogCi0gICAgLy8gVGhyZWFkYWJsZUxvYWRlckNsaWVudCBtZXRob2RzLgorICAgIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQpOworICAgIHZv
aWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nKTsKKyAgICB2b2lkIGRpZEZhaWwoY29u
c3QgUmVzb3VyY2VFcnJvciYpOworCisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBDdWVQYXJzZXJDbGllbnQqKTsKKyAgICBib29sIHN1cHBvcnRz
VHlwZShjb25zdCBTdHJpbmcmKTsKIAotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKTsKLSAg
ICB2b2lkIGZldGNoUGFyc2VkQ3VlcyhWZWN0b3I8UGFzc1JlZlB0cjxUZXh0VHJhY2tDdWU+ID4m
KTsKKyAgICB2b2lkIGZldGNoUGFyc2VkQ3VlcyhWZWN0b3I8UmVmUHRyPFRleHRUcmFja0N1ZT4g
PiYpOwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxUaHJlYWRhYmxlTG9hZGVyPiBtX2xvYWRlcjsK
ICAgICBPd25QdHI8Q3VlUGFyc2VyUHJpdmF0ZUludGVyZmFjZT4gbV9wcml2YXRlOworICAgIEN1
ZVBhcnNlckNsaWVudCogbV9jbGllbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>
<flag name="review"
          id="92775"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>